{"version":3,"sources":["./src/app/admin/personal-data/personal-data.component.html","./src/app/app.component.html","./src/app/calculations/calculate/calculate.component.html","./src/app/eula/eula.component.html","./src/app/legal/legal.component.html","./src/app/non-supported-browser/non-supported-browser.component.html","./src/app/oauthcallback/oauthcallback.component.html","./src/app/privacy/privacy.component.html","./src/app/project/project-list.component.html","./src/app/project/project.component.html","./src/app/registrationcallback/registrationcallback.component.html","./src/app/report/report-viewer/report-viewer.component.html","./src/app/root/root.component.html","./src/app/settings/aznzcombination-factor/aznzcombination-factor.component.html","./src/app/settings/settings.component.html","./src/app/shared/check-box/check-box.component.html","./src/app/shared/cookie-notification/cookie-notification.component.html","./src/app/shared/information/information.component.html","./src/app/shared/navigation/navigation.component.html","./src/app/shared/search/search.component.html","./src/app/shared/shared.component.html","./src/app/shared/sorting/sorting.component.html","./src/app/software-popup/software-popup.component.html","./src/app/subproject/lineloads/lineloads.component.html","./src/app/subproject/pointloads/pointloads.component.html","./src/app/subproject/sub-project-list.component.html","./src/app/subproject/sub-project.component.html","./src/app/subproject/surfaceloads/surfaceloads.component.html","./src/app/survey/survey.component.html","./src/app/tips/tips.component.html","./src/app/units/force/force.component.html","./src/app/whats-new/whats-new.component.html","./src/$_lazy_route_resource lazy namespace object","./src/app/admin/personal-data/personal-data.component.scss","./src/app/admin/personal-data/personal-data.component.ts","./src/app/admin/personal-data/personal-data.module.ts","./src/app/admin/personal-data/personal-data.service.ts","./src/app/app.component.scss","./src/app/app.component.ts","./src/app/app.module.ts","./src/app/app.routing.ts","./src/app/calculations/calculate/calculate.component.scss","./src/app/calculations/calculate/calculate.component.ts","./src/app/calculations/calculations.service.ts","./src/app/common/AppConstants.ts","./src/app/common/AuthInterceptor.ts","./src/app/common/StateGenerator.ts","./src/app/common/generic-validator.ts","./src/app/common/http-client.ts","./src/app/common/index.ts","./src/app/common/safePipe.ts","./src/app/common/unit.helper.ts","./src/app/common/utils.ts","./src/app/eula/eula.component.scss","./src/app/eula/eula.component.ts","./src/app/eula/eula.module.ts","./src/app/eula/eula.service.ts","./src/app/legal/legal.component.scss","./src/app/legal/legal.component.ts","./src/app/logout.component.ts","./src/app/models/models.ts","./src/app/models/project.ts","./src/app/non-supported-browser/non-supported-browser.component.scss","./src/app/non-supported-browser/non-supported-browser.component.ts","./src/app/oauthcallback/oauthcallback.component.scss","./src/app/oauthcallback/oauthcallback.component.ts","./src/app/privacy/privacy.component.scss","./src/app/privacy/privacy.component.ts","./src/app/privacy/privacy.module.ts","./src/app/project/project-list.component.scss","./src/app/project/project-list.component.ts","./src/app/project/project-saveguard.service.ts","./src/app/project/project-status.ts","./src/app/project/project.component.scss","./src/app/project/project.component.ts","./src/app/project/project.module.ts","./src/app/project/project.service.ts","./src/app/project/projectNameValidator.directive.ts","./src/app/registrationcallback/registrationcallback.component.ts","./src/app/report/report-viewer/report-viewer.component.scss","./src/app/report/report-viewer/report-viewer.component.ts","./src/app/report/report.module.ts","./src/app/root/root.component.scss","./src/app/root/root.component.ts","./src/app/service/common/application-options.service.ts","./src/app/service/common/auth.service.ts","./src/app/service/common/longregistration.service.ts","./src/app/service/common/nav.service.ts","./src/app/service/common/routeguard.service.ts","./src/app/service/common/routing.service.ts","./src/app/service/common/shared.service.ts","./src/app/service/common/url.service.ts","./src/app/service/common/user.service.ts","./src/app/service/common/window.ref.service.ts","./src/app/service/config.service.ts","./src/app/service/util/app-storage.service.ts","./src/app/service/util/session-storage.service.ts","./src/app/settings/aznzcombination-factor/aznzcombination-factor.component.scss","./src/app/settings/aznzcombination-factor/aznzcombination-factor.component.ts","./src/app/settings/settings.component.scss","./src/app/settings/settings.component.ts","./src/app/settings/settings.module.ts","./src/app/settings/settings.service.ts","./src/app/shared/InputTrim.ts","./src/app/shared/check-box/check-box.component.scss","./src/app/shared/check-box/check-box.component.ts","./src/app/shared/cookie-notification/cookie-notification.component.scss","./src/app/shared/cookie-notification/cookie-notification.component.ts","./src/app/shared/dragndrop.directive.ts","./src/app/shared/information/information.component.scss","./src/app/shared/information/information.component.ts","./src/app/shared/navigation/navigation.component.scss","./src/app/shared/navigation/navigation.component.ts","./src/app/shared/not-only-numbers-validator.directive.ts","./src/app/shared/search/search.component.scss","./src/app/shared/search/search.component.ts","./src/app/shared/search/search.module.ts","./src/app/shared/search/search.service.ts","./src/app/shared/shared.component.css","./src/app/shared/shared.component.ts","./src/app/shared/shared.module.ts","./src/app/shared/sorting/sorting.component.scss","./src/app/shared/sorting/sorting.component.ts","./src/app/shared/translation/translation-loader.ts","./src/app/software-popup/software-popup.component.scss","./src/app/software-popup/software-popup.component.ts","./src/app/software-popup/software-popup.module.ts","./src/app/subproject/lineloads/lineloads.component.scss","./src/app/subproject/lineloads/lineloads.component.ts","./src/app/subproject/pointloads/pointloads.component.scss","./src/app/subproject/pointloads/pointloads.component.ts","./src/app/subproject/sub-project-list-component.scss","./src/app/subproject/sub-project-list.component.ts","./src/app/subproject/sub-project-saveguard.service.ts","./src/app/subproject/sub-project-status.ts","./src/app/subproject/sub-project.component.scss","./src/app/subproject/sub-project.component.ts","./src/app/subproject/sub-project.module.ts","./src/app/subproject/sub-project.service.ts","./src/app/subproject/surfaceloads/surfaceloads.component.scss","./src/app/subproject/surfaceloads/surfaceloads.component.ts","./src/app/subproject/valuesBetween.pipe.ts","./src/app/survey/survey.component.scss","./src/app/survey/survey.component.ts","./src/app/survey/survey.module.ts","./src/app/survey/survey.service.ts","./src/app/tips/tips.component.scss","./src/app/tips/tips.component.ts","./src/app/units/force/force.component.scss","./src/app/units/force/force.component.ts","./src/app/user-agreement-acceptguard.service.ts","./src/app/whats-new/whats-new.component.scss","./src/app/whats-new/whats-new.component.ts","./src/environments/environment.ts","./src/main.ts","./src/polyfills.ts","crypto (ignored)","fs (ignored)","http (ignored)","https (ignored)"],"names":[],"mappings":"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,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC7B,gCAAgC;QAChC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC7B,gCAAgC;QAChC,gCAAgC;QAChC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC7B,IAAI,C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","file":"main-es2015.js","sourcesContent":["export default \"
\\n
\\n
\\n
{{'gdpr-search-title' | translate}}
\\n
\\n
\\n \\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
{{'gdpr-connector-title' | translate}}
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
{{'gdpr-project-table-title' | translate}}
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
{{'gdpr-header-ranking' | translate}}{{'project-name' | translate}}{{'prepared-by' | translate}}{{'company' | translate}}{{'address1' | translate}}{{'phone' | translate}}{{'email' | translate}}
\\n {{i + 1}}\\n \\n {{personalDetail.project}}\\n \\n {{personalDetail.preparedBy}}\\n \\n {{personalDetail.company}}\\n \\n {{personalDetail.address}}\\n \\n {{personalDetail.phoneNumber}}\\n \\n {{personalDetail.email}}\\n
\\n {{'gdpr-project-table-norecords' | translate}}\\n
\\n
\\n
\\n \\n \\n
\\n
\\n\\n\\n \\n
{{ 'gdpr-delete-title' | translate | uppercase }}
\\n
\\n
\\n
\\n
\\n
\\n {{ 'gdpr-delete-message' | translate }}\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n\"","export default \"
\\n
\\n
\\n
\\n

Loading

\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n\\n
\\n
\\n
\\n
\\n \\n SHEAR CONNECTOR DESIGN\\n
\\n
\\n
\\n \\n
\\n
\\n
{{user.authentication.userName}}
\\n
\\n
\\n \\n
\\n \\n
\\n \\n
\\n \\n
    \\n
  • \\n
  • \\n
  • \\n
  • \\n
  • \\n
  • \\n
  • \\n
\\n
\\n
\\n \\n
    \\n
  • \\n
  • \\n
  • \\n
  • \\n
  • \\n
  • \\n
  • {{'version' | translate}} {{applicationVersion}}
  • \\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n\\n
\\n \\n \\n
{{ 'end-user-undertaking' | translate | uppercase }}
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n \\n
\\n \\n {{ 'eula-policy-document-link' | translate }}\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n
{{ 'legal-notices' | translate | uppercase }}
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n \\n \\n
{{ 'tips-header' | translate | uppercase }}
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n
\\n \\n \\n
{{ 'whats-new' | translate | uppercase }}
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n \\n
{{ 'whats-new' | translate | uppercase }}
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n
\\n \\n \\n
\\n \\n
\\n
\\n\\n\"","export default \"\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
{{'error-on-calculate' | translate}}
\\n

\\n
\\n
\\n
\\n
\\n
\\n
{{ 'warnings' | translate }}
\\n
\\n \\n
\\n
\\n
\\n
\\n
{{'demo-watermark' | translate}}
\\n
\\n
\\n
\\n
\\n

{{'calculations-ok' | translate}}

\\n
\\n
\\n
\\n
\\n
\\n
\\n {{'calculations-not-ok' | translate}}\\n
\\n
\\n
\\n \\n {{ 'ltb-criterion-warning' | translate }}\\n \\n
\\n
\\n
\\n
\\n
\\n {{'calculate-connector-type' | translate}}:\\n
\\n
\\n {{connectorType?.label}}\\n
\\n
\\n
\\n
\\n {{'calculate-total-number-of-x-hvb-connection' | translate}}:\\n
\\n
\\n {{calculateResult?.shearConnectionResult?.numberOfConnectors}}\\n pcs\\n
\\n
\\n
1\\\" class=\\\"row\\\">\\n
\\n {{'calculate-number-of-zones' | translate}}:\\n
\\n
\\n {{calculateResult?.shearConnectionResult?.numberOfZones}}\\n
\\n
\\n
\\n
\\n {{'calculate-degree-of-shear-connection' | translate}}:\\n
\\n
\\n \\n
\\n {{(calculateResult?.shearConnectionResult?.connectionDegree * 100)?.toFixed(1)}} %\\n
\\n
\\n {{(calculateResult?.shearConnectionResult?.connectionDegree * 100)?.toFixed(1)}} %\\n <\\n {{(calculateResult?.shearConnectionResult?.limConnectionDegree * 100)?.toFixed(1)}} %\\n
\\n {{'connection-degree-notification' | translate}}\\n
\\n
\\n
\\n {{(calculateResult?.shearConnectionResult?.connectionDegree * 100)?.toFixed(1)}} %\\n <\\n {{(calculateResult?.shearConnectionResult?.minConnectionDegree * 100)?.toFixed(1)}} %\\n
\\n
\\n {{(calculateResult?.shearConnectionResult?.connectionDegree * 100)?.toFixed(1)}} %\\n <\\n {{(createCommand.shearConnector.userConnectionDegree * 100)?.toFixed(1)}} %\\n
\\n
\\n
\\n
\\n
\\n
\\n {{'elastic-design' | translate}}\\n
\\n
\\n \\n\\n
\\n
1\\\" class=\\\"col-sm-12\\\">\\n {{'calculate-connection-zones' | translate}}:\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n\\n
\\n
\\n 1\\\">{{'calculate-connection-arrangement-for-zone' | translate}} {{i + 1}}\\n {{'calculate-connection-arrangement' | translate}}\\n
\\n
\\n
\\n
\\n
\\n {{'calculate-number-of-x-hvb-connection' | translate}}:\\n
\\n
\\n
\\n {{zone.numberOfConnectors}} pcs\\n
\\n
\\n
\\n
\\n
\\n {{'calculate-number-of-rows' | translate}}:\\n
\\n
\\n
\\n {{zone.numberOfRows}}\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n {{'calculate-spacing' | translate}}:\\n
\\n
\\n
\\n {{ UnitHelper.getReportLengthValue(zone?.connectorsSpacing, unitSystemId) }} {{unitSystem.dimensionUnitTitle}}\\n
\\n
\\n
\\n
\\n
\\n {{'calculate-connection-zone-length' | translate}}:\\n
\\n
\\n
\\n {{ UnitHelper.getReportLengthValue(zone?.rightPosition, unitSystemId) - UnitHelper.getReportLengthValue(zone?.leftPosition, unitSystemId) }} {{ unitSystem.dimensionUnitTitle }}\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n\\n
\\n
\\n
\\n {{'calculate-construction-stage' | translate}}\\n
\\n
\\n
\\n {{'calculate-construction-stage-section-resistance-bending-moment' | translate}}\\n
\\n
\\n {{'calculate-construction-stage-section-resistance-check-criterion' | translate}}\\n :\\n
\\n
\\n
\\n
\\n 1.0001 ? '#FF0000': '#000'\\\"\\n class=\\\"calculateValue\\\">\\n ΓM\\n \\n
\\n
\\n ' ? '#FF0000': '#000'\\\"\\n class=\\\"calculateValue\\\"\\n title=\\\"calculateResult.constructionStageResult.sectionResistance.bendingMomentCriterion\\\">\\n = {{calculateResult?.constructionStageResult?.sectionResistance?.bendingMomentCriterion?.toFixed(3)}}\\n {{getGTLSSymbol(calculateResult?.constructionStageResult?.sectionResistance?.bendingMomentCriterion, 1)}}\\n 1\\n \\n
\\n
\\n
\\n
\\n {{'calculate-construction-stage-web-buckling-resistance-to-shear-force' | translate}}\\n
\\n
\\n {{'calculate-construction-stage-web-buckling-no-verify' | translate}}\\n
\\n
\\n '\\\"\\n class=\\\"row\\\">\\n
\\n ΓVbf\\n
\\n
\\n = {{calculateResult?.constructionStageResult?.sectionResistance?.momentShearWebCriterion?.toFixed(3)}} {{getGTLSSymbol(calculateResult?.constructionStageResult?.sectionResistance?.momentShearWebCriterion, 1)}}\\n 1\\n
\\n
\\n
\\n
\\n {{'calculate-construction-stage-section-resistance-mv-interaction' | translate}}\\n
\\n
\\n {{'calculate-construction-stage-section-resistance-mv-check-criterion' | translate}}\\n :\\n
\\n
\\n
\\n
\\n ' ? '#FF0000': 'black'\\\"\\n class=\\\"calculateValue\\\">ΓMV\\n
\\n
\\n ' ? '#FF0000': 'black'\\\"\\n class=\\\"calculateValue\\\"\\n title=\\\"calculateResult.constructionStageResult.sectionResistance.verticalShearCriterion\\\"> = {{calculateResult?.constructionStageResult?.sectionResistance?.verticalShearCriterion?.toFixed(3)}} {{getGTLSSymbol(calculateResult?.constructionStageResult?.sectionResistance?.verticalShearCriterion, 1)}}\\n 1\\n
\\n
\\n
\\n
\\n {{'calculate-construction-stage-deflections' | translate}}\\n
\\n
{{'calculate-construction-stage-total-deflection' | translate}}:
\\n
\\n
\\n
\\n Wmax\\n
\\n
\\n = {{ UnitHelper.getReportLengthValue(calculateResult?.constructionStageResult?.totalDeflectionMax, unitSystemId, 3) }} {{unitSystem.dimensionUnitTitle}}\\n
\\n
\\n
\\n
\\n
\\n
\\n {{'calculate-construction-stage-deflection-under-live-loads' | translate}}\\n :\\n
\\n
\\n
\\n
\\n W3.max\\n
\\n
\\n = {{ UnitHelper.getReportLengthValue(calculateResult?.constructionStageResult?.liveLoadDeflectionMax, unitSystemId, 3) }} {{unitSystem.dimensionUnitTitle}}\\n
\\n
\\n
\\n
\\n
\\n
\\n {{'calculate-construction-stage-section-resistance-vertical-shear-force' | translate}}\\n
\\n
\\n {{'calculate-construction-stage-section-resistance-vertical-shear-force-check-criterion' | translate}}\\n :\\n
\\n
\\n
\\n
\\n ' ? '#FF0000': 'black'\\\"\\n class=\\\"calculateValue\\\">ΓV\\n
\\n
\\n ' ? '#FF0000': 'black'\\\"\\n class=\\\"calculateValue\\\"\\n title=\\\"calculateResult.constructionStageResult.sectionResistance.momentShearCriterion\\\"> = {{calculateResult?.constructionStageResult?.sectionResistance?.momentShearCriterion?.toFixed(3)}} {{getGTLSSymbol(calculateResult?.constructionStageResult?.sectionResistance?.momentShearCriterion, 1)}}\\n 1\\n
\\n
\\n
\\n
\\n {{'calculate-construction-stage-web-buckling-to-shear-force-mv-interaction' | translate}}\\n
\\n
\\n {{'calculate-construction-stage-web-buckling-to-shear-force-mv-no-verify' | translate}}\\n
\\n
\\n '\\\"\\n class=\\\"row\\\">\\n
\\n ΓMVbf\\n
\\n
\\n = {{calculateResult?.constructionStageResult?.sectionResistance?.shearWebCriterion?.toFixed(3)}} {{getGTLSSymbol(calculateResult?.constructionStageResult?.sectionResistance?.shearWebCriterion, 1)}}\\n 1\\n
\\n
\\n
\\n
\\n \\n {{'calculate-construction-stage-lateral-tortional-buckling-resistance' | translate}}\\n \\n
\\n
\\n {{'calculate-construction-stage-lateral-tortional-buckling-resistance-check-criterion' | translate}}\\n :\\n
\\n
\\n
\\n
\\n ' ? '#FF0000' : 'black'\\\"\\n class=\\\"calculateValue\\\">ΓLT\\n
\\n
\\n ' ? '#FF0000' : 'black'\\\"\\n class=\\\"calculateValue\\\"\\n title=\\\"calculateResult.constructionStageResult.ltbCriterion\\\"> = {{calculateResult?.constructionStageResult?.ltbCriterion?.toFixed(3)}} {{getGTLSSymbol(calculateResult?.constructionStageResult?.ltbCriterion, 1)}}\\n 1\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n {{'calculate-construction-stage' | translate}}\\n
\\n
\\n
\\n 0\\\">\\n
\\n {{ 'calculate-construction-stage-section-resistance' | translate }}\\n
\\n
\\n {{ 'calculate-construction-stage-section-resistance-check-criterion' | translate }}
\\n
\\n
\\n
\\n \\n ΓΥ\\n \\n
\\n
\\n 1 ? '#FF0000' : '#000'\\\"\\n class=\\\"calculateValue\\\">\\n {{ calculateResult.constructionStageResult.lfrd.yieldingCriterion.toFixed(3) }}\\n {{ getGTLSSymbol(calculateResult.constructionStageResult.lfrd.yieldingCriterion, 1)}}\\n 1\\n \\n
\\n
\\n
\\n
\\n \\n\\n 0\\\">\\n {{ 'calculate-construction-stage-compression-flange-resistance' | translate }}\\n
\\n {{ 'calculate-construction-stage-compression-flange-resistance-check-criterion' | translate }}
\\n
\\n
\\n
\\n \\n ΓFLB\\n \\n
\\n
\\n 1 ? '#FF0000' : '#000'\\\"\\n class=\\\"calculateValue\\\">\\n {{ calculateResult.constructionStageResult?.lfrd?.cfyCriterion.toFixed(3) }}\\n \\n
\\n
\\n
\\n
\\n \\n\\n 0\\\">\\n {{ 'calculate-construction-stage-compression-local-buckling-resistance' | translate }}\\n
\\n
\\n {{ 'calculate-construction-stage-compression-flange-resistance-check-criterion' | translate}}\\n
\\n
\\n
\\n
\\n \\n ΓVb\\n \\n
\\n
\\n 1 ? '#FF0000' : '#000'\\\"\\n class=\\\"calculateValue\\\">\\n {{ calculateResult.constructionStageResult?.lfrd?.flbCriterion.toFixed(3) }}\\n {{ getGTLSSymbol(calculateResult.constructionStageResult?.lfrd?.flbCriterion, 1)}} 1\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n {{ 'calculate-construction-stage-deflections' | translate }}\\n
\\n
\\n
{{ 'calculate-construction-stage-total-deflection' | translate }}
\\n
\\n
\\n
WMAX
\\n
\\n = {{ UnitHelper.getReportLengthValue(calculateResult?.constructionStageResult?.totalDeflectionMax, unitSystemId, 3) }} {{ unitSystem.dimensionUnitTitle }}\\n
\\n
\\n
\\n
\\n
\\n
{{ 'calculate-construction-stage-deflection-under-live-loads' | translate }}:
\\n\\n
\\n
\\n
W3,MAX
\\n
\\n =\\n {{ UnitHelper.getReportLengthValue(calculateResult?.constructionStageResult?.liveLoadDeflectionMax, unitSystemId, 3) }} {{unitSystem.dimensionUnitTitle}}\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n {{'calculate-construction-stage-shear-resistance' | translate}}\\n
\\n
\\n \\n {{ 'calculate-construction-stage-shear-resistance-check-criterion' | translate }}\\n \\n
\\n
\\n
\\n
ΓVb
\\n
\\n 1 ? '#FF0000' : '#000'\\\"\\n class=\\\"calculateValue\\\">\\n {{ calculateResult.constructionStageResult?.lfrd?.shearCriterion.toFixed(3) }}\\n {{ getGTLSSymbol(calculateResult.constructionStageResult?.lfrd?.shearCriterion, 1)}}\\n 1\\n \\n
\\n
\\n
\\n
\\n \\n {{ 'calculate-construction-stage-lateral-torsional-buckling-resistance' | translate }}\\n \\n
\\n
\\n {{ 'calculate-construction-stage-lateral-torsional-buckling-resistance-check-criterion' | translate}}\\n
\\n
\\n
\\n
\\n \\n ΓLT\\n \\n
\\n
\\n 1 ? '#FF0000' : '#000'\\\"\\n class=\\\"calculateValue\\\">\\n {{ calculateResult.constructionStageResult?.lfrd?.ltbCriterion.toFixed(3) }}\\n {{ getGTLSSymbol(calculateResult.constructionStageResult?.lfrd?.ltbCriterion, 1)}} 1\\n \\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n {{'calculate-construction-stage' | translate }}\\n \\n
\\n \\n
\\n
\\n \\n {{ 'section-bending-moment-capacity' | translate }}\\n \\n
\\n
\\n {{ 'section-bending-moment-capacity-check-criterion' | translate }}:\\n
\\n
\\n
\\n
\\n \\n ΓMs\\n \\n
\\n
\\n 1 ? '#FF0000' : '#000'\\\"\\n class=\\\"calculateValue\\\">\\n {{ calculateResult.constructionStageResult.sectionResistance.bendingMomentCriterion.toFixed(3)}}\\n {{ getGTLSSymbol(calculateResult.constructionStageResult.sectionResistance.bendingMomentCriterion, 1)}}\\n 1\\n \\n
\\n
\\n
\\n
\\n \\n {{'construction-stage-member-capacity' | translate }}\\n \\n
\\n
\\n {{ 'construction-stage-member-capacity-check-criterion' | translate }}:\\n
\\n
\\n
\\n
\\n \\n ΓMb\\n \\n
\\n
\\n 1 ? '#FF0000' : '#000'\\\"\\n class=\\\"calculateValue\\\">\\n {{ calculateResult.constructionStageResult.ltbCriterion.toFixed(3) }}\\n {{ getGTLSSymbol(calculateResult.constructionStageResult.ltbCriterion, 1) }}\\n 1\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n {{ 'construction-stage-shear-capacity' | translate}}\\n \\n
\\n
\\n {{ 'construction-stage-shear-capacity-check-criterion' | translate}}:\\n
\\n
\\n
\\n
\\n \\n ΓV\\n \\n
\\n
\\n ' ? '#FF0000': '#000'\\\"\\n class=\\\"calculateValue\\\"\\n title=\\\"calculateResult.constructionStageResult.sectionResistance.verticalShearCriterion\\\"> = {{calculateResult?.constructionStageResult?.sectionResistance?.verticalShearCriterion?.toFixed(3)}} {{getGTLSSymbol(calculateResult?.constructionStageResult?.sectionResistance?.verticalShearCriterion, 1)}}\\n 1\\n
\\n
\\n
\\n
\\n \\n {{ 'construction-stage-interaction-of-shear-and-bending' | translate}}\\n \\n
\\n
\\n {{ 'construction-stage-interaction-of-shear-and-bending-check-criterion' | translate }}:\\n
\\n
\\n
\\n
\\n \\n Γvm\\n \\n
\\n
\\n ' ? '#FF0000': '#000'\\\"\\n class=\\\"calculateValue\\\"\\n title=\\\"calculateResult.constructionStageResult.sectionResistance.momentShearCriterion\\\"> = {{calculateResult?.constructionStageResult?.sectionResistance?.momentShearCriterion?.toFixed(3)}} {{getGTLSSymbol(calculateResult?.constructionStageResult?.sectionResistance?.momentShearCriterion, 1)}}\\n 1\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n {{ 'calculate-construction-stage-deflections' | translate }}\\n \\n
\\n
{{ 'calculate-construction-stage-total-deflection' | translate }}
\\n
\\n
\\n
WMAX
\\n
\\n = {{ UnitHelper.getReportLengthValue(calculateResult?.constructionStageResult?.totalDeflectionMax, unitSystemId, 3) }} {{ unitSystem.dimensionUnitTitle }}\\n
\\n
\\n
\\n
\\n
\\n
\\n {{ 'calculate-construction-stage-deflection-under-live-loads' | translate }}:\\n
\\n \\n
\\n {{ 'calculate-construction-stage-incremental-deflection' | translate}}:\\n
\\n
\\n
\\n
\\n
W3,MAX
\\n
\\n =\\n {{ UnitHelper.getReportLengthValue(calculateResult.constructionStageResult.liveLoadDeflectionMax, unitSystemId, 3) }} {{ unitSystem.dimensionUnitTitle }}\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n\\n
\\n\\n
\\n
\\n
\\n {{'calculate-construction-stage-no-verify' | translate}}\\n {{ 'calculate-construction-stage-no-verify-aisc' | translate }}\\n
\\n
\\n
\\n
\\n {{'calculate-final-stage' | translate}}\\n
\\n\\n
\\n
\\n {{'calculate-final-stage-section-resistance-bending-moment' | translate}}\\n
\\n
\\n {{'calculate-final-stage-section-resistance-check-criterion' | translate}}\\n :\\n
\\n
\\n
\\n
\\n ' ? '#FF0000': '#000'\\\"\\n class=\\\"calculateValue\\\">ΓM\\n
\\n
\\n ' ? '#FF0000': '#000'\\\"\\n class=\\\"calculateValue\\\"\\n title=\\\"calculateResult.finalStageResult.sectionResistance.bendingMomentCriterion\\\"> = {{calculateResult?.finalStageResult?.sectionResistance?.bendingMomentCriterion?.toFixed(3)}} {{getGTLSSymbol(calculateResult?.finalStageResult?.sectionResistance?.bendingMomentCriterion, 1)}}\\n 1\\n
\\n
\\n
\\n
\\n
\\n
\\n {{'calculate-final-stage-section-resistance-check-steel-criterion' | translate}}\\n :\\n
\\n
\\n
\\n
\\n ' ? '#FF0000': '#000'\\\"\\n class=\\\"calculateValue\\\">ΓM,a\\n
\\n
\\n ' ? '#FF0000': '#000'\\\"\\n class=\\\"calculateValue\\\"\\n title=\\\"calculateResult.finalStageResult.sectionResistance.steelNormalStressCriterion\\\"> = {{calculateResult?.finalStageResult?.sectionResistance?.steelNormalStressCriterion?.toFixed(3)}} {{getGTLSSymbol(calculateResult?.finalStageResult?.sectionResistance?.steelNormalStressCriterion, 1)}}\\n 1\\n
\\n
\\n
\\n
\\n
\\n
\\n {{'calculate-final-stage-section-resistance-check-concrete-criterion' | translate}}\\n :\\n
\\n
\\n
\\n
\\n ' ? '#FF0000': '#000'\\\"\\n class=\\\"calculateValue\\\">ΓM,c\\n
\\n
\\n ' ? '#FF0000': '#000'\\\"\\n class=\\\"calculateValue\\\"\\n title=\\\"calculateResult.finalStageResult.sectionResistance.concreteNormalStressCriterion\\\"> = {{calculateResult?.finalStageResult?.sectionResistance?.concreteNormalStressCriterion?.toFixed(3)}} {{getGTLSSymbol(calculateResult?.finalStageResult?.sectionResistance?.concreteNormalStressCriterion, 1)}}\\n 1\\n
\\n
\\n
\\n
\\n {{'calculate-final-stage-web-buckling-resistance-to-shear-force' | translate}}\\n
\\n
\\n {{'calculate-final-stage-web-buckling-no-verify' | translate}}\\n
\\n
\\n '\\\"\\n class=\\\"row\\\">\\n
\\n ΓVbf\\n
\\n
\\n = {{calculateResult?.finalStageResult?.sectionResistance?.momentShearWebCriterion?.toFixed(3)}} {{getGTLSSymbol(calculateResult?.finalStageResult?.sectionResistance?.momentShearWebCriterion, 1)}}\\n 1\\n
\\n
\\n
\\n
\\n {{'calculate-final-stage-section-resistance-mv-interaction' | translate}}\\n
\\n
\\n {{'calculate-final-stage-section-resistance-mv-check-criterion' | translate}}\\n :\\n
\\n
\\n
\\n
\\n ' ? '#FF0000': '#000'\\\"\\n class=\\\"calculateValue\\\">ΓMv\\n
\\n
\\n ' ? '#FF0000': '#000'\\\"\\n class=\\\"calculateValue\\\"\\n title=\\\"calculateResult.finalStageResult.sectionResistance.verticalShearCriterion\\\"> = {{calculateResult?.finalStageResult?.sectionResistance?.verticalShearCriterion?.toFixed(3)}} {{getGTLSSymbol(calculateResult?.finalStageResult?.sectionResistance?.verticalShearCriterion, 1)}}\\n 1\\n
\\n
\\n
\\n
\\n
\\n
\\n {{'calculate-final-stage-section-resistance-vertical-shear-force' | translate}}\\n
\\n
\\n {{'calculate-final-stage-section-resistance-vertical-shear-force-check-criterion' | translate}}\\n :\\n
\\n
\\n
\\n
\\n ' ? '#FF0000': '#000'\\\"\\n class=\\\"calculateValue\\\">ΓV\\n
\\n
\\n ' ? '#FF0000': '#000'\\\"\\n class=\\\"calculateValue\\\"\\n title=\\\"calculateResult.finalStageResult.sectionResistance.momentShearCriterion\\\"> = {{calculateResult?.finalStageResult?.sectionResistance?.momentShearCriterion?.toFixed(3)}} {{getGTLSSymbol(calculateResult?.finalStageResult?.sectionResistance?.momentShearCriterion, 1)}}\\n 1\\n
\\n
\\n
\\n
\\n {{'calculate-final-stage-web-buckling-to-shear-force-mv-interaction' | translate}}\\n\\n
\\n
\\n {{'calculate-final-stage-web-buckling-to-shear-force-mv-no-verify' | translate}}\\n
\\n
\\n '\\\"\\n class=\\\"row\\\">\\n
\\n ΓMVbf\\n
\\n
\\n = {{calculateResult?.finalStageResult?.sectionResistance?.shearWebCriterion?.toFixed(3)}} {{getGTLSSymbol(calculateResult?.finalStageResult?.sectionResistance?.shearWebCriterion, 1)}}\\n 1\\n
\\n
\\n
\\n
\\n \\n {{'calculate-final-stage-natural-frequency' | translate}}\\n
\\n
\\n {{'calculate-final-stage-natural-frequency-natural-frequency' | translate}}\\n :\\n
\\n
\\n
\\n
\\n fmin\\n
\\n
\\n = {{calculateResult?.finalStageResult?.minimumFrequency?.toFixed(2)}} {{getGTLSSymbol(calculateResult?.finalStageResult?.minimumFrequency, calculateInput?.deformations?.frequencyLimit)}} {{calculateInput?.deformations?.frequencyLimit}}\\n Hz\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n {{ 'calculate-final-stage' | translate}}\\n
\\n
\\n
\\n {{ 'calculate-final-stage-section-resistance' | translate }}\\n
\\n
{{ 'calculate-final-stage-section-resistance-check-criterion' | translate }}
\\n
\\n
\\n
\\n \\n ΓΥ\\n \\n
\\n
1 ? '#FF0000' : '#000'\\\"\\n class=\\\"col-sm-9\\\">\\n {{ calculateResult.finalStageResult?.lfrd?.yieldingCriterion.toFixed(3) }}\\n {{ getGTLSSymbol(calculateResult.finalStageResult?.lfrd?.yieldingCriterion, 1)}}\\n 1\\n
\\n
\\n
\\n
\\n
\\n
\\n {{ 'calculate-final-stage-section-resistance-check-criterion-steel-section' | translate}}\\n
\\n
\\n
\\n
\\n Γσa\\n
\\n 1 ? '#FF0000': '#000'\\\"\\n class=\\\"col-sm-9\\\">\\n {{ calculateResult?.finalStageResult?.lfrd?.steelNormalStressCriterion.toFixed(3) }}\\n {{ getGTLSSymbol(calculateResult?.finalStageResult?.lfrd?.steelNormalStressCriterion, 1)}} 1\\n
\\n
\\n
\\n
\\n
\\n
\\n {{ 'calculate-final-stage-section-resistance-check-criterion-slab-section' | translate }}\\n
\\n
\\n
\\n
\\n Γσc\\n
\\n 1 ? '#FF0000' : '#000'\\\"\\n class=\\\"col-sm-9\\\">\\n {{ calculateResult?.finalStageResult?.lfrd?.concreteNormalStressCriterion.toFixed(3) }}\\n {{ getGTLSSymbol(calculateResult?.finalStageResult?.lfrd?.concreteNormalStressCriterion, 1)}} 1\\n
\\n
\\n
\\n
\\n {{ 'calculate-final-stage-shear-resistance' | translate }}\\n
\\n
\\n {{ 'calculate-final-stage-shear-resistance-check-criterion' | translate }}\\n
\\n
\\n
\\n
\\n ΓVb\\n
\\n
1 ? '#FF0000' : '#000'\\\"\\n class=\\\"col-sm-9\\\">\\n {{ calculateResult?.finalStageResult?.lfrd?.shearCriterion.toFixed(3) }}\\n {{ getGTLSSymbol(calculateResult?.finalStageResult?.lfrd?.shearCriterion, 1) }} 1\\n
\\n
\\n
\\n
\\n
\\n
\\n {{ 'calculate-final-stage-natural-frequency' | translate }}\\n
\\n
\\n {{ 'calculate-final-stage-natural-frequency-natural-frequency' | translate }}\\n
\\n
\\n
\\n
\\n Fn\\n
\\n
\\n {{ calculateResult?.finalStageResult?.walkingAcceleration?.naturalFrequency.toFixed(3) }} Hz\\n
\\n
\\n
\\n
\\n 0\\\">\\n {{ 'calculate-final-stage-vibration-due-walking-excitation' | translate }}\\n
\\n
\\n \\n {{ 'calculate-final-stage-vibration-weighted-peak-acceleration' | translate }}\\n \\n \\n {{ 'calculate-final-stage-vibration-weighted-rms-acceleration' | translate }}\\n \\n
\\n
\\n
\\n
\\n ap/g\\n
\\n
\\n calculateResult?.finalStageResult?.walkingAcceleration?.accelerationLimit ? '#FF0000': '#000'\\\"\\n class=\\\"calculateValue\\\">\\n = {{ calculateResult?.finalStageResult?.walkingAcceleration?.acceleration.toFixed(3) }}\\n {{ getGTLSSymbol(calculateResult?.finalStageResult?.walkingAcceleration?.acceleration, calculateResult?.finalStageResult?.walkingAcceleration?.accelerationLimit)}}\\n {{ calculateResult.finalStageResult.walkingAcceleration.accelerationLimit.toFixed(3)}}\\n \\n
\\n
\\n
\\n
\\n
\\n 0\\\">\\n \\n {{ 'calculate-final-stage-vibration-rhytmic-excitation' | translate }}\\n \\n
\\n
\\n {{ 'calculate-final-stage-vibration-peak-acceleration' | translate }}\\n
\\n
\\n
\\n
\\n ap>/g\\n
\\n
\\n calculateResult?.finalStageResult?.rhythmicAcceleration?.accelerationLimit ? '#FF0000': '#000'\\\"\\n class=\\\"calculateValue\\\">\\n = {{ calculateResult?.finalStageResult?.rhythmicAcceleration?.acceleration.toFixed(3)}}\\n {{ getGTLSSymbol(calculateResult?.finalStageResult?.rhythmicAcceleration?.acceleration, calculateResult?.finalStageResult?.rhythmicAcceleration?.accelerationLimit)}}\\n {{ calculateResult?.finalStageResult?.rhythmicAcceleration?.accelerationLimit.toFixed(3) }}\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n\\n
\\n
\\n {{'calculate-final-stage' | translate}}\\n
\\n
\\n
\\n {{'calculate-final-stage-section-bending-moment-capacity' | translate}}\\n
\\n
\\n {{'calculate-final-stage-section-bending-moment-capacity-check-criterion' | translate}}\\n :\\n
\\n
\\n
\\n
\\n ' ? '#FF0000': '#000'\\\"\\n class=\\\"calculateValue\\\">ΓMc\\n
\\n
\\n ' ? '#FF0000': '#000'\\\"\\n class=\\\"calculateValue\\\"\\n title=\\\"calculateResult.finalStageResult.sectionResistance.bendingMomentCriterion\\\"> = {{calculateResult?.finalStageResult?.sectionResistance?.bendingMomentCriterion?.toFixed(3)}} {{getGTLSSymbol(calculateResult?.finalStageResult?.sectionResistance?.bendingMomentCriterion, 1)}}\\n 1\\n
\\n
\\n
\\n
\\n {{'calculate-final-stage-shear-capacity' | translate}}\\n
\\n
\\n {{'calculate-final-stage-shear-capacity-check-criterion' | translate}}:\\n
\\n
\\n
\\n
\\n ' ? '#FF0000': '#000'\\\"\\n class=\\\"calculateValue\\\">Γv\\n
\\n
\\n ' ? '#FF0000': '#000'\\\"\\n class=\\\"calculateValue\\\"\\n title=\\\"calculateResult.finalStageResult.sectionResistance.verticalShearCriterion\\\"> =\\n {{ calculateResult?.finalStageResult?.sectionResistance?.verticalShearCriterion.toFixed(3)}}\\n {{ getGTLSSymbol(calculateResult?.finalStageResult?.sectionResistance?.verticalShearCriterion, 1)}}\\n 1\\n \\n
\\n
\\n
\\n
\\n \\n {{ 'calculate-final-stage-interaction-of-shear-and-bending' | translate }}\\n \\n
\\n
\\n {{'calculate-final-stage-interaction-of-shear-and-bending-check-criterion' | translate}}\\n :\\n
\\n
\\n
\\n
\\n ' ? '#FF0000': '#000'\\\"\\n class=\\\"calculateValue\\\">Γvm\\n
\\n
\\n ' ? '#FF0000': '#000'\\\"\\n class=\\\"calculateValue\\\"\\n title=\\\"calculateResult.finalStageResult.sectionResistance.momentShearCriterion\\\"> = {{calculateResult?.finalStageResult?.sectionResistance?.momentShearCriterion.toFixed(3)}} {{getGTLSSymbol(calculateResult?.finalStageResult?.sectionResistance?.momentShearCriterion, 1)}}\\n 1\\n
\\n
\\n
\\n
\\n
\\n
\\n {{'calculate-final-stage-natural-frequency' | translate}}\\n
\\n
\\n {{'calculate-final-stage-natural-frequency-natural-frequency' | translate}}\\n :\\n
\\n
\\n
\\n
\\n fmin\\n
\\n
\\n = {{calculateResult?.finalStageResult?.minimumFrequency?.toFixed(2)}} {{getGTLSSymbol(calculateResult?.finalStageResult?.minimumFrequency, calculateInput?.deformations?.frequencyLimit)}} {{calculateInput?.deformations?.frequencyLimit}}\\n Hz\\n
\\n
\\n
\\n
\\n 0\\\">\\n\\n {{ 'calculate-final-stage-vibration-due-walking-excitation' | translate }}\\n\\n
\\n
\\n \\n {{ 'calculate-final-stage-vibration-weighted-peak-acceleration' | translate }}:\\n \\n \\n {{ 'calculate-final-stage-vibration-weighted-rms-acceleration' | translate }}:\\n \\n
\\n
\\n
\\n
\\n ap/g\\n
\\n
\\n calculateResult?.finalStageResult?.walkingAcceleration?.accelerationLimit ? '#FF0000': '#000'\\\"\\n class=\\\"calculateValue\\\">\\n = {{ calculateResult?.finalStageResult?.walkingAcceleration?.acceleration.toFixed(3) }}\\n {{ getGTLSSymbol(calculateResult?.finalStageResult?.walkingAcceleration?.acceleration, calculateResult?.finalStageResult?.walkingAcceleration?.accelerationLimit)}}\\n {{ calculateResult.finalStageResult.walkingAcceleration.accelerationLimit.toFixed(3)}}\\n \\n
\\n
\\n
\\n
\\n
\\n 0\\\">\\n\\n \\n {{ 'calculate-final-stage-vibration-rhytmic-excitation' | translate }}\\n \\n
\\n
\\n {{ 'calculate-final-stage-vibration-peak-acceleration' | translate }}\\n
\\n
\\n
\\n
\\n ap>/g\\n
\\n
\\n calculateResult?.finalStageResult?.rhythmicAcceleration?.accelerationLimit ? '#FF0000': '#000'\\\"\\n class=\\\"calculateValue\\\">\\n = {{ calculateResult?.finalStageResult?.rhythmicAcceleration?.acceleration.toFixed(3)}}\\n {{ getGTLSSymbol(calculateResult?.finalStageResult?.rhythmicAcceleration?.acceleration, calculateResult?.finalStageResult?.rhythmicAcceleration?.accelerationLimit)}}\\n {{ calculateResult?.finalStageResult?.rhythmicAcceleration?.accelerationLimit.toFixed(3) }}\\n \\n
\\n
\\n
\\n
\\n
\\n \\n\\n \\n {{ 'calculate-final-stage-synchronised-crowd-movement' | translate }}\\n \\n
\\n
\\n {{ 'calculate-final-stage-synchronised-crowd-movement-frequency' | translate}}\\n :\\n
\\n
\\n
\\n
f1
\\n
\\n \\n {{ calculateResult?.finalStageResult?.minimumFrequency.toFixed(2) }}\\n {{ getGTLSSymbol(calculateResult?.finalStageResult?.minimumFrequency, calculateResult?.finalStageResult?.crowdMovementFrequency, true)}}\\n {{ calculateResult?.finalStageResult?.crowdMovementFrequency?.toFixed(3)}}Hz\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n {{'calculate-final-stage-deflections' | translate}}\\n
\\n
\\n {{'calculate-final-stage-total-deflection' | translate}}:\\n
\\n
\\n
\\n
\\n Wmax\\n
\\n
\\n = {{ UnitHelper.getReportLengthValue(calculateResult?.finalStageResult?.totalDeflectionMax, unitSystemId, 3) }} {{ unitSystem.dimensionUnitTitle }} {{getGTLSSymbol(calculateResult?.finalStageResult?.totalDeflectionMax * 1000, totalLoadDeflection?.label)}}\\n {{ (UnitHelper.roundToNonUniverseLength(calculateInput?.beamGeometry.beamLength, unitSystemId) / +totalLoadDeflection?.label?.match('[0-9]+')).toFixed(3) }} {{ unitSystem.dimensionUnitTitle }}\\n ({{totalLoadDeflection?.label}})\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n {{'calculate-final-stage-deflection-under-live-loads' | translate}}:\\n \\n \\n \\n {{ 'calculate-final-stage-incremental-deflection' | translate }}\\n \\n \\n
\\n
\\n
\\n
\\n W3.max\\n
\\n
\\n = {{ UnitHelper.getReportLengthValue(calculateResult?.finalStageResult?.liveLoadDeflectionMax, unitSystemId, 3) }} {{ unitSystem.dimensionUnitTitle }} {{getGTLSSymbol((calculateResult?.finalStageResult?.liveLoadDeflectionMax * 1000), deflectionLimit?.label)}}\\n {{ (UnitHelper.roundToNonUniverseLength(calculateInput?.beamGeometry.beamLength, unitSystemId) / +deflectionLimit?.label?.match('[0-9]+')).toFixed(3) }} {{ unitSystem.dimensionUnitTitle }}\\n ({{deflectionLimit?.label}})\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n\"","export default \"
\\n \\n \\n \\n \\n {{ dataItem | translate }}\\n \\n \\n {{ dataItem | translate }}\\n \\n \\n \\n \\n \\n \\n \\n {{ dataItem?.labelKey | translate }}\\n \\n \\n {{ dataItem?.labelKey | translate }}\\n \\n \\n \\n
\\n
\\n\"","export default \"\\n
\\nMIT License\\n

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

\\n
\\nISC License\\n

\\nhttps://spdx.org/licenses/ISC.html\\n

\\n
\\n

Copyright (c) 2004-2010 by Internet Systems Consortium, Inc. (\\\"ISC\\\")\\n
\\nCopyright (c) 1995-2003 by Internet Software Consortium\\n

\\n

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.\\n

\\n

THE SOFTWARE IS PROVIDED \\\"AS IS\\\" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

\\n
\\n
\\nApache 2.0 License \\n

http://www.apache.org/licenses/LICENSE-2.0\\n

\\n
\\n
\\n

Apache License

Version 2.0, January 2004

\\nhttp://www.apache.org/licenses/

\\n

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

\\n

1. Definitions.

\\n

\\\"License\\\" shall mean the terms and conditions for use, reproduction, and\\ndistribution as defined by Sections 1 through 9 of this document.

\\n

\\\"Licensor\\\" shall mean the copyright owner or entity authorized by the\\ncopyright owner that is granting the License.

\\n

\\\"Legal Entity\\\" shall mean the union of the acting entity and all other\\nentities that control, are controlled by, or are under common control with\\nthat entity. For the purposes of this definition, \\\"control\\\" means (i) the\\npower, direct or indirect, to cause the direction or management of such\\nentity, whether by contract or otherwise, or (ii) ownership of fifty\\npercent (50%) or more of the outstanding shares, or (iii) beneficial\\nownership of such entity.

\\n

\\\"You\\\" (or \\\"Your\\\") shall mean an individual or Legal Entity exercising\\npermissions granted by this License.

\\n

\\\"Source\\\" form shall mean the preferred form for making modifications,\\nincluding but not limited to software source code, documentation source,\\nand configuration files.

\\n

\\\"Object\\\" form shall mean any form resulting from mechanical transformation\\nor translation of a Source form, including but not limited to compiled\\nobject code, generated documentation, and conversions to other media types.

\\n

\\\"Work\\\" shall mean the work of authorship, whether in Source or Object form,\\nmade available under the License, as indicated by a copyright notice that\\nis included in or attached to the work (an example is provided in the\\nAppendix below).

\\n

\\\"Derivative Works\\\" shall mean any work, whether in Source or Object form,\\nthat is based on (or derived from) the Work and for which the editorial\\nrevisions, annotations, elaborations, or other modifications represent, as\\na whole, an original work of authorship. For the purposes of this License,\\nDerivative Works shall not include works that remain separable from, or\\nmerely link (or bind by name) to the interfaces of, the Work and Derivative\\nWorks thereof.

\\n

\\\"Contribution\\\" shall mean any work of authorship, including the original\\nversion of the Work and any modifications or additions to that Work or\\nDerivative Works thereof, that is intentionally submitted to Licensor for\\ninclusion in the Work by the copyright owner or by an individual or Legal\\nEntity authorized to submit on behalf of the copyright owner. For the\\npurposes of this definition, \\\"submitted\\\" means any form of electronic,\\nverbal, or written communication sent to the Licensor or its\\nrepresentatives, including but not limited to communication on electronic\\nmailing lists, source code control systems, and issue tracking systems that\\nare managed by, or on behalf of, the Licensor for the purpose of discussing\\nand improving the Work, but excluding communication that is conspicuously\\nmarked or otherwise designated in writing by the copyright owner as \\\"Not a\\nContribution.\\\"

\\n

\\\"Contributor\\\" shall mean Licensor and any individual or Legal Entity on\\nbehalf of whom a Contribution has been received by Licensor and\\nsubsequently incorporated within the Work.

\\n

2. Grant of Copyright License. Subject to the\\nterms and conditions of this License, each Contributor hereby grants to You\\na perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable\\ncopyright license to reproduce, prepare Derivative Works of, publicly\\ndisplay, publicly perform, sublicense, and distribute the Work and such\\nDerivative Works in Source or Object form.

\\n

3. Grant of Patent License. Subject to the terms\\nand conditions of this License, each Contributor hereby grants to You a\\nperpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable\\n(except as stated in this section) patent license to make, have made, use,\\noffer to sell, sell, import, and otherwise transfer the Work, where such\\nlicense applies only to those patent claims licensable by such Contributor\\nthat are necessarily infringed by their Contribution(s) alone or by\\ncombination of their Contribution(s) with the Work to which such\\nContribution(s) was submitted. If You institute patent litigation against\\nany entity (including a cross-claim or counterclaim in a lawsuit) alleging\\nthat the Work or a Contribution incorporated within the Work constitutes\\ndirect or contributory patent infringement, then any patent licenses\\ngranted to You under this License for that Work shall terminate as of the\\ndate such litigation is filed.

\\n

4. Redistribution. You may reproduce and\\ndistribute copies of the Work or Derivative Works thereof in any medium,\\nwith or without modifications, and in Source or Object form, provided that\\nYou meet the following conditions:

\\n
    \\n
  1. You must give any other recipients of the Work or Derivative Works a\\ncopy of this License; and
  2. \\n\\n
  3. You must cause any modified files to carry prominent notices stating\\nthat You changed the files; and
  4. \\n\\n
  5. You must retain, in the Source form of any Derivative Works that You\\ndistribute, all copyright, patent, trademark, and attribution notices from\\nthe Source form of the Work, excluding those notices that do not pertain to\\nany part of the Derivative Works; and
  6. \\n\\n
  7. If the Work includes a \\\"NOTICE\\\" text file as part of its distribution,\\nthen any Derivative Works that You distribute must include a readable copy\\nof the attribution notices contained within such NOTICE file, excluding\\nthose notices that do not pertain to any part of the Derivative Works, in\\nat least one of the following places: within a NOTICE text file distributed\\nas part of the Derivative Works; within the Source form or documentation,\\nif provided along with the Derivative Works; or, within a display generated\\nby the Derivative Works, if and wherever such third-party notices normally\\nappear. The contents of the NOTICE file are for informational purposes only\\nand do not modify the License. You may add Your own attribution notices\\nwithin Derivative Works that You distribute, alongside or as an addendum to\\nthe NOTICE text from the Work, provided that such additional attribution\\nnotices cannot be construed as modifying the License.\\n
    \\n
    \\nYou may add Your own copyright statement to Your modifications and may\\nprovide additional or different license terms and conditions for use,\\nreproduction, or distribution of Your modifications, or for any such\\nDerivative Works as a whole, provided Your use, reproduction, and\\ndistribution of the Work otherwise complies with the conditions stated in\\nthis License.\\n
  8. \\n
\\n

5. Submission of Contributions. Unless You\\nexplicitly state otherwise, any Contribution intentionally submitted for\\ninclusion in the Work by You to the Licensor shall be under the terms and\\nconditions of this License, without any additional terms or conditions.\\nNotwithstanding the above, nothing herein shall supersede or modify the\\nterms of any separate license agreement you may have executed with Licensor\\nregarding such Contributions.

\\n

6. Trademarks. This License does not grant\\npermission to use the trade names, trademarks, service marks, or product\\nnames of the Licensor, except as required for reasonable and customary use\\nin describing the origin of the Work and reproducing the content of the\\nNOTICE file.

\\n

7. Disclaimer of Warranty. Unless required by\\napplicable law or agreed to in writing, Licensor provides the Work (and\\neach Contributor provides its Contributions) on an \\\"AS IS\\\" BASIS, WITHOUT\\nWARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including,\\nwithout limitation, any warranties or conditions of TITLE,\\nNON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You\\nare solely responsible for determining the appropriateness of using or\\nredistributing the Work and assume any risks associated with Your exercise\\nof permissions under this License.

\\n

8. Limitation of Liability. In no event and\\nunder no legal theory, whether in tort (including negligence), contract, or\\notherwise, unless required by applicable law (such as deliberate and\\ngrossly negligent acts) or agreed to in writing, shall any Contributor be\\nliable to You for damages, including any direct, indirect, special,\\nincidental, or consequential damages of any character arising as a result\\nof this License or out of the use or inability to use the Work (including\\nbut not limited to damages for loss of goodwill, work stoppage, computer\\nfailure or malfunction, or any and all other commercial damages or losses),\\neven if such Contributor has been advised of the possibility of such\\ndamages.

\\n

9. Accepting Warranty or Additional Liability.\\nWhile redistributing the Work or Derivative Works thereof, You may choose\\nto offer, and charge a fee for, acceptance of support, warranty, indemnity,\\nor other liability obligations and/or rights consistent with this License.\\nHowever, in accepting such obligations, You may act only on Your own behalf\\nand on Your sole responsibility, not on behalf of any other Contributor,\\nand only if You agree to indemnify, defend, and hold each Contributor\\nharmless for any liability incurred by, or claims asserted against, such\\nContributor by reason of your accepting any such warranty or additional\\nliability.

\\n

END OF TERMS AND CONDITIONS

\\n \"","export default \"
\\n
\\n
\\n \\n
\\n
\\n
\\n
{{ 'improve-your-experience' | translate }}
\\n
\\n
\\n
\\n
\\n

{{ 'browser-we-dont-support' | translate}}

\\n
\\n
\\n
\\n
\\n

{{ 'to-use-software-update-your-browser' | translate }}

\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
{{ browser.minVersion}}+
\\n
\\n
\\n\\n
\\n
\\n
\\n
\\n\"","export default \"

\\n {{'loading' | translate}}\\n

\\n\"","export default \"\\n \\n
{{ 'privacy-policy' | translate | uppercase }}
\\n
\\n
\\n
\\n
\\n \\n \\n \\n {{ dataItem?.labelKey | translate }}\\n \\n \\n {{ dataItem?.labelKey | translate }}\\n \\n \\n
\\n
\\n \\n \\n \\n {{ dataItem?.labelKey | translate }}\\n \\n \\n {{ dataItem?.labelKey | translate }}\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n {{ 'tracking-policy-footnote' | translate }}\\n
\\n
\\n
\\n

\\n {{ 'marketing-policy-label' | translate }} {{ 'marketing-policy-link' | translate }}\\n

\\n

\\n {{ 'policy-document-label' | translate }} {{ 'policy-document-link' | translate }}\\n

\\n

\\n {{ 'policy-rights-page-label' | translate }} {{ 'policy-rights-page-link' | translate }}\\n

\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\"","export default \"\\n \\n
{{ 'new-project' | translate | uppercase }}
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n
\\n {{ 'project-name-already-taken' | translate }}\\n {{ 'project-name-cant-contain-only-numbers' | translate }}\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n \\n \\n
\\n

{{ 'or-drop-files-here' | translate }}

\\n
\\n \\n
\\n
\\n
\\n

{{ importProjectFile.name }}

\\n
\\n \\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n\\n\\n \\n
{{ 'new-project' | translate | uppercase }}
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n
\\n {{ 'project-name-already-taken' | translate}}\\n {{ 'project-name-cant-contain-only-numbers' | translate }}\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n
\\n {{ 'prepared-by-cant-contain-only-numbers' | translate }}\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n\\n\\n
\\n
\\n
\\n \\n
\\n
\\n
{{ 'delete' | translate | uppercase }}
\\n {{ 'delete-notification' | translate }}\\n
\\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
{{ 'projects' | translate | uppercase}}
\\n
\\n
\\n \\n \\n \\n \\n
\\n
\\n \\n \\n \\n \\n \\n
{{ dataItem.name}}
\\n\\n
\\n
\\n \\n \\n
{{ dataItem.preparedBy }}
\\n
\\n
\\n \\n \\n
{{ dataItem.createdOn.toLocaleString(locale, {hour12: false}) }}
\\n
\\n
\\n \\n \\n
{{ dataItem.updatedOn.toLocaleString(locale, {hour12: false}) }}
\\n
\\n
\\n \\n \\n \\n\\t\\t\\n \\n
\\n
\\n\"","export default \"\\n
\\n
\\n
\\n \\n
\\n
\\n
{{ 'save-on-leave' | translate }}
\\n
{{ 'do-you-want-to-save-your-changes' | translate }}
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n

{{ project?.name }}

\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n
\\n
\\n
\\n \\n
\\n \\n
\\n \\n
\\n \\n \\n
\\n \\n
\\n \\n
\\n \\n
\\n \\n \\n
\\n \\n
\\n \\n
\\n \\n
\\n \\n \\n
\\n \\n
\\n \\n
\\n \\n
\\n \\n \\n
\\n \\n
\\n \\n
\\n \\n
\\n
\\n \\n
\\n \\n
\\n \\n
\\n \\n \\n
\\n \\n
\\n \\n
\\n \\n
\\n \\n \\n
\\n \\n
\\n \\n
\\n \\n
\\n \\n \\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n \\n
\\n
\\n \\n
\\n \\n \\n {{ dataItem?.labelKey | translate }}\\n \\n \\n {{ dataItem?.labelKey | translate }}\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n \\n {{dataItem?.labelKey | translate }}\\n \\n \\n {{ dataItem?.labelKey | translate }}\\n \\n \\n {{ 'cant-change-unitsystem-with-existing-projects' | translate }} \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n \\n {{dataItem?.labelKey | translate }}\\n \\n \\n {{ dataItem?.labelKey | translate }}\\n \\n \\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n \\n {{dataItem?.labelKey | translate }}\\n \\n \\n {{ dataItem?.labelKey | translate }}\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n \\n \\n \\n
\\n \\n \\n {{dataItem?.labelKey | translate }}\\n \\n \\n {{ dataItem?.labelKey | translate }}\\n \\n \\n \\n {{ 'none-selected-for-countrynationalannexes' | translate }}\\n \\n
\\n
\\n {{ 'cant-change-county-if-subprojects-exists' | translate }}\\n
\\n \\n
\\n
\\n \\n
\\n \\n γ \\n \\n γ \\n
\\n \\n \\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n
\\n \\n
\\n
\\n \\n
\\n \\n
\\n
\\n \\n \\n
\\n \\n
\\n
\\n \\n
\\n \\n
\\n
\\n \\n \\n
\\n \\n
\\n
\\n \\n
\\n \\n
\\n
\\n \\n \\n
\\n \\n
\\n
\\n \\n
\\n \\n
\\n
\\n \\n \\n
\\n \\n
\\n
\\n \\n
\\n \\n
\\n
\\n \\n \\n
\\n \\n
\\n
\\n \\n
\\n \\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n\\n \\n \\n \\n \\n \\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n\"","export default \"

\\n {{'loading' | translate}}\\n

\\n\"","export default \"
\\n
\\n
\\n
\\n \\n \\n >     \\n \\n \\n \\n >    \\n \\n \\n >     {{ 'report' | translate | uppercase }}\\n
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n\"","export default \"\"","export default \"
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n {{ 'az-combination-factor-range-error' | translate }}\\n \\n
\\n
\\n \\n \\n \\n {{ 'az-combination-factor-range-error' | translate }}\\n \\n
\\n
\\n
\\n
\\n \\n \\n \\n {{ 'az-combination-factor-range-error' | translate }}\\n \\n
\\n
\\n \\n \\n \\n {{ 'az-combination-factor-range-error' | translate }}\\n \\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n {{ 'az-combination-factor-range-error' | translate }}\\n \\n
\\n
\\n \\n \\n \\n {{ 'az-combination-factor-range-error' | translate }}\\n \\n
\\n
\\n \\n \\n \\n {{ 'az-combination-factor-range-error' | translate }}\\n \\n
\\n
\\n
\\n
\\n \\n \\n \\n {{ 'az-combination-factor-range-error' | translate }}\\n \\n
\\n
\\n \\n \\n \\n {{ 'az-combination-factor-range-error' | translate }}\\n \\n
\\n
\\n
\\n
\\n\"","export default \"
\\n
\\n
\\n
\\n
\\n

{{'welcome-settings' | translate | uppercase }}

\\n
{{'settings-info' | translate}}
\\n
\\n
\\n
\\n
\\n
\\n

\\n \\n {{ \\\"settings-save-success\\\" | translate}}\\n

\\n

\\n \\n {{ \\\"settings-save-failure\\\" | translate}}\\n

\\n

\\n \\n {{ \\\"settings-open-failure\\\" | translate}}\\n

\\n
\\n\\n
\\n
\\n
\\n {{'global-settings' | translate}}\\n
\\n\\n
\\n
\\n \\n
\\n \\n \\n {{ dataItem?.labelKey | translate }}\\n \\n \\n {{ dataItem?.labelKey | translate }}\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n {{'project-settings' | translate}}\\n
\\n
\\n
\\n
\\n \\n
\\n \\n \\n {{ dataItem?.labelKey | translate }}\\n \\n \\n {{ dataItem?.labelKey | translate }}\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n \\n {{ dataItem?.labelKey | translate }}\\n \\n \\n {{ dataItem?.labelKey | translate }}\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n \\n {{ dataItem?.labelKey | translate }}\\n \\n \\n {{ dataItem?.labelKey | translate }}\\n \\n \\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n \\n {{ dataItem?.labelKey | translate }}\\n \\n \\n {{ dataItem?.labelKey | translate }}\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n
\\n \\n \\n {{ dataItem?.labelKey | translate }}\\n \\n \\n {{ dataItem?.labelKey | translate }}\\n \\n \\n\\n \\n {{ 'none-selected-for-countrynationalannexes' | translate }}\\n \\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n γ g \\n \\n γ q \\n
\\n \\n \\n \\n \\n
\\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n \\n \\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n \\n \\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n \\n \\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n \\n \\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n \\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n {{'sub-project-settings' | translate}}\\n
\\n
\\n
\\n
\\n \\n
\\n \\n \\n {{ dataItem?.labelKey | translate }}\\n \\n \\n {{ dataItem?.labelKey | translate }}\\n \\n \\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n
\\n\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n
\\n\\n
\\n
\\n\"","export default \"
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n {{this.label}}\\n
\\n
\\n
\\n
\\n\"","export default \"
\\n
\\n
\\n {{'cookie-info-text' | translate}}\\n \\n {{'cookie-info-privacy-policy' | translate}}\\n \\n
\\n
\\n \\n
\\n
\\n
\\n\"","export default \"'\\\">\\n
\\n
\\n

\\n
\\n
\\n\"","export default \"
\\n
\\n {{ navItem.routeName }}\\n {{ navItem.routeName }}\\n
\\n
\\n\"","export default \"
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n\"","export default \"

\\n shared works!\\n

\\n\"","export default \"
\\n \\n
\"","export default \"\\n \\n

SOFTWARE CALCOLO CONNETTORI A TAGLIO X-HVB

\\n
\\n
\\n

Calcolo veloce e affidabile di travi collaboranti e da oggi ancora più performante

\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n Per ulteriori quesiti potete contattarci a tecnici@hilti.com\\n
\\n
\\n oppure al numero 800927013\\n
\\n
\\n Per ulteriori informazioni: Calcolo connettori a taglio\\n
\\n
\\n
\\n
\\n
\\n

\\n Personalizza i tuoi progetti e calcola in modo preciso\\n \\n

\\n\\n
\\n
\\n
    \\n
  • Zonizzazione automatica per ottimizzare al meglio la progettzione dei connetori a taglio Hilti HVB
  • \\n
  • Hilti Engineering Judgement interno per i casi non coperti da ETA 15/0876
  • \\n
  • Definizione di aperture nel piano
  • \\n
  • Definizione del grado di connessione a taglio
  • \\n
  • Distanza dal bordo delle travi perimentrali ridotta secondo SCI pubblicazione P300
  • \\n
\\n
\\n
\\n
    \\n
  • Travi interne e d’angolo in configurazione semplicemente appoggiata, con geometria del profilo acciaio personalizzabile e grado dell’acciaio
  • \\n
  • Calcestruzzo normale o alleggerito
  • \\n
  • Solette piene (con o senza smusso) e solette con lamiera profilata
  • \\n
  • Carichi distribuiti, lineari e concentrati
  • \\n
  • Presenza o assenza di puntellamento in fase di costruzione
  • \\n
  • Progettazione plastica con grado completo o parziale di connessione
  • \\n
  • Verifiche del momento flettente e della resistenza di taglio, incluse verifiche dell’instabilità torsionale laterale e dell’anima della trave
  • \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n\"","export default \"\\n \\n
{{ 'line-load-title' | translate | uppercase }}
\\n
{{ 'line-load-title-aisc' | translate | uppercase }}
\\n = 2 * MAXLINELOADS\\\" class=\\\"btn action-button right-float\\\">\\n \\n
\\n \\n \\n {{dataItem.Type}}\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n \\n \\n \\n \\n
\\n
\\n
\\n
\\n\"","export default \"\\n \\n
{{ 'point-load-title' | translate | uppercase }}
\\n =2 * MAXPOINTLOADS\\\" class=\\\"btn action-button right-float\\\">\\n \\n
\\n \\n \\n {{dataItem.Type}}\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n \\n \\n \\n \\n
\\n
\\n
\\n\\n\"","export default \"\\n \\n
{{ 'new-sub-project' | translate | uppercase }}
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n \\n
\\n
\\n
{{ 'delete' | translate | uppercase }}
\\n {{ 'delete-sub-project-notification' | translate }} {{selectedSubProjectNames.toString()}} ?\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n\\n \\n
{{ 'subprojects' | translate | uppercase }}
\\n
\\n \\n \\n
\\n
\\n\\n \\n \\n \\n
{{ dataItem.name}}
\\n
\\n
\\n \\n \\n
{{ dataItem.createdOn.toLocaleString(locale, {hour12: false}) }}
\\n
\\n
\\n \\n \\n
{{ dataItem.updatedOn.toLocaleString(locale, {hour12: false}) }}
\\n
\\n
\\n \\n \\n
\\n
\\n\"","export default \"\\n \\n
{{ 'subproject-save-as' | translate | uppercase }}
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
{{ 'save-on-leave' | translate }}
\\n {{ 'do-you-want-to-save-your-changes' | translate }}\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n

{{ this.subProjectForm['controls'].subprojectName?.value }}

\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n \\n \\n \\n {{ 'sub-project-name-unique' | translate }}\\n \\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n \\n {{ dataItem?.labelKey | translate }}\\n \\n \\n {{ dataItem?.labelKey | translate }}\\n \\n \\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n \\n {{ dataItem?.labelKey | translate }}\\n \\n \\n {{ dataItem?.labelKey | translate }}\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n \\n {{ dataItem?.labelKey | translate }}\\n \\n \\n {{ dataItem?.labelKey | translate }}\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n
\\n \\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n
\\n \\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n {{ 'steel-profile' | translate }}\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n \\n {{ dataItem?.profileRange | translate }}\\n \\n \\n {{ dataItem?.profileRange | translate }}\\n \\n \\n
\\n
\\n
\\n \\n
\\n \\n \\n {{ dataItem?.label | translate }}\\n \\n \\n {{ dataItem?.label | translate }}\\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n \\n \\n
\\n
\\n \\n \\n \\n \\n \\n \\n
\\n
\\n \\n \\n \\n \\n
\\n
\\n \\n \\n \\n \\n
\\n
\\n \\n \\n \\n \\n
\\n
\\n \\n
\\n
\\n
\\n \\n
\\n \\n \\n {{ dataItem?.label | translate }}\\n \\n \\n {{ dataItem?.label | translate }}\\n \\n \\n
\\n
\\n
\\n \\n
\\n \\n \\n {{ dataItem?.label | translate }}\\n \\n \\n {{ dataItem?.label | translate }}\\n \\n \\n
\\n
\\n
\\n \\n
\\n \\n
\\n {{'custom-steel-grade-warning' | translate}}\\n \\n \\n
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n {{ 'concrete' | translate}}\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n \\n {{ dataItem?.labelKey | translate }}\\n \\n \\n {{ dataItem?.labelKey | translate }}\\n \\n \\n
\\n
\\n
\\n \\n \\n
= 1400\\\">\\n {{ 'density-notice-eurocode' | translate }}\\n
\\n
\\n \\n {{ 'please-contact-hilti-for-lower-density' | translate }}\\n
\\n
\\n
\\n \\n \\n \\n
= 1400\\\">\\n {{ 'density-notice-eurocode' | translate }}\\n
\\n
\\n \\n {{ 'please-contact-hilti-for-lower-density' | translate }}\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n \\n {{ dataItem?.label | translate }}\\n \\n \\n {{ dataItem?.label | translate }}\\n \\n \\n
\\n
\\n
\\n \\n \\n \\n {{ dataItem?.label | translate }}\\n \\n \\n {{ dataItem?.label | translate }}\\n \\n \\n
\\n
\\n \\n \\n \\n \\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n {{ 'reinforcement' | translate}}\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n \\n {{ dataItem?.label | translate }}\\n \\n \\n {{ dataItem?.label | translate }}\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n {{ 'slab' | translate }}\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n \\n {{ dataItem?.labelKey | translate }}\\n \\n \\n {{ dataItem?.labelKey | translate }}\\n \\n \\n
\\n
\\n
\\n \\n
\\n \\n
\\n \\n \\n \\n {{ 'slab-thickness-is-not-fulfill-asnzs-requirements' | translate}}\\n \\n
\\n
\\n \\n
\\n \\n
\\n \\n \\n
\\n
\\n \\n \\n \\n \\n {{'concrete-cover-yes-info' | translate}}\\n \\n \\n \\n \\n {{'concrete-cover-no-info-eurocode' | translate}}\\n \\n \\n {{'concrete-cover-no-info-aisc' | translate }}\\n \\n \\n {{ 'concrete-cover-no-info-asnzs' | translate }}\\n \\n \\n\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n \\n {{ 'profiled-sheeting-eurocode' | translate }}\\n \\n \\n {{ 'profiled-sheeting-aisc' | translate }}\\n \\n \\n {{ 'profiled-sheeting-asnzs' | translate }}\\n \\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n
\\n \\n \\n {{ dataItem?.labelKey | translate }}\\n \\n \\n {{ dataItem?.labelKey | translate }}\\n \\n \\n \\n \\n
\\n
\\n
\\n \\n \\n \\n
\\n \\n \\n {{ dataItem?.label | translate }}\\n \\n \\n {{ dataItem?.label | translate }}\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n
\\n \\n \\n
\\n
\\n \\n
\\n \\n \\n \\n {{ dataItem?.gage }}\\n \\n \\n {{ dataItem?.gage }}\\n \\n \\n
\\n \\n \\n
\\n
\\n \\n
\\n \\n
\\n \\n \\n \\n \\n
\\n
\\n \\n
\\n \\n
\\n \\n \\n
\\n
\\n \\n
\\n \\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n
\\n \\n \\n
\\n
0\\\">\\n \\n
\\n \\n
\\n \\n
\\n
1\\\">\\n \\n
\\n \\n
\\n \\n
\\n
\\n \\n
\\n \\n
\\n \\n \\n
\\n
\\n \\n
\\n \\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n
\\n
\\n \\n \\n \\n \\n
\\n
\\n \\n \\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n
\\n
\\n \\n \\n \\n \\n
\\n
\\n \\n \\n
\\n \\n \\n
\\n
\\n
\\n
\\n
{{'load-one' | translate}}
\\n \\n
\\n
\\n
{{'load-zero' | translate}}
\\n \\n
\\n
\\n
{{'load-two' | translate}}
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n 0 && subProjectForm.value.beamLength\\\"\\n [lengthUnitTitle] = \\\"unitSystem.lengthUnitTitle\\\"\\n [forceUnitTitle] = \\\"unitSystem.forceUnitTitle\\\"\\n [beamLength]=\\\"subProjectForm.value.beamLength\\\"\\n [liveLineLoads]=\\\"subProjectModel.load.loadCases[3].lineLoads\\\"\\n [deadLineLoads]=\\\"subProjectModel.load.loadCases[1].lineLoads\\\" [designCode]=\\\"project?.designCode\\\"\\n (lineLoadsUpdated)=\\\"onLineLoadUpdated($event)\\\">\\n \\n 0 && subProjectForm.value.beamLength\\\"\\n [lengthUnitTitle] = \\\"unitSystem.lengthUnitTitle\\\"\\n [forceUnitTitle] = \\\"unitSystem.forceUnitTitle\\\"\\n [beamLength]=\\\"subProjectForm.value.beamLength\\\"\\n [livePointLoads]=\\\"subProjectModel.load.loadCases[3].pointLoads\\\"\\n [deadPointLoads]=\\\"subProjectModel.load.loadCases[1].pointLoads\\\"\\n (pointLoadsUpdated)=\\\"onPointLoadUpdated($event)\\\">\\n \\n 0\\\"\\n [lengthUnitTitle] = \\\"unitSystem.lengthUnitTitle\\\"\\n [forceUnitTitle] = \\\"unitSystem.forceUnitTitle\\\"\\n [surfaceLoads]=\\\"subProjectModel.load.loadCases[3].distributedSurfaceLoad\\\"\\n (surfaceLoadsUpdated)=\\\"onSurfaceLoadUpdated($event)\\\">\\n \\n
\\n
\\n
\\n \\n
\\n
\\n
{{'patch-loads-live' | translate}}
\\n \\n
\\n
\\n
{{'point-loads-live' | translate}}
\\n \\n
\\n
\\n
{{'patch-loads-dead' | translate}}
\\n \\n
\\n
\\n
{{'point-loads-dead' | translate}}
\\n \\n
\\n
\\n
{{'surface-loads-live' | translate}}
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n \\n \\n \\n {{ dataItem?.label }}\\n \\n \\n {{ dataItem?.label }}\\n \\n \\n
\\n
\\n \\n \\n \\n {{ dataItem?.labelKey | translate}}\\n \\n \\n {{ dataItem?.labelKey | translate }}\\n \\n \\n
\\n
\\n \\n \\n \\n\\n
\\n
\\n \\n
\\n
\\n {{ filteredConnectorOrientations[0].labelKey | translate}}\\n
\\n \\n \\n {{ dataItem?.labelKey | translate}}\\n \\n \\n {{ dataItem?.labelKey | translate }}\\n \\n \\n \\n \\n
\\n
\\n
\\n \\n\\n \\n \\n \\n \\n \\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n \\n \\n \\n {{ dataItem?.labelKey | translate }}\\n \\n \\n {{ dataItem?.labelKey | translate }}\\n \\n \\n
\\n
\\n \\n \\n \\n {{ dataItem?.label }}\\n \\n \\n {{ dataItem?.label }}\\n \\n \\n
\\n
\\n \\n \\n \\n {{ dataItem?.label }}%\\n \\n \\n {{ dataItem?.label }}%\\n \\n \\n
\\n
\\n \\n \\n \\n {{ dataItem?.label}}\\n \\n \\n {{ dataItem?.label}}\\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n \\n
\\n
\\n \\n \\n \\n {{ dataItem?.label}}\\n \\n \\n {{ dataItem?.label}}\\n \\n \\n
\\n
\\n \\n \\n \\n \\n
\\n
\\n \\n \\n \\n {{dataItem?.label }}%\\n \\n \\n {{dataItem?.label }}%\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n {{ 'parameters-for-check-of-vibration' | translate}}\\n
\\n
\\n \\n \\n \\n {{ dataItem?.label}}\\n \\n \\n {{ dataItem?.label}}\\n \\n \\n
\\n
\\n
\\n
\\n\\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n {{ dataItem?.label }}\\n \\n \\n {{ dataItem?.label }}\\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n \\n {{'fraction-of-permanent-load-range'| translate}}\\n \\n
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n
{{ 'type-of-excitation'| translate }}
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n \\n \\n {{ dataItem?.label | translate}}\\n \\n \\n {{ dataItem?.label |translate }}\\n \\n \\n
\\n
\\n \\n {{'walking-excitation-vibration-check' | translate}}\\n
\\n
\\n \\n \\n \\n {{ dataItem?.label }}\\n \\n \\n {{ dataItem?.label }}\\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n \\n {{ dataItem?.label | translate}}\\n \\n \\n {{ dataItem?.label |translate }}\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n

\\n \\n \\n

\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\"","export default \"\\n \\n
{{ 'surface-load-title' | translate | uppercase }}
\\n
\\n \\n \\n {{'load-live' | translate}}\\n \\n \\n \\n \\n\\n\"","export default \"\\n \\n \\n \\n
\\n
\\n\"","export default \"
\\n

\\n
    \\n
  1. \\n
  2. \\n
  3. \\n
  4. \\n
  5. \\n
\\n

\\n

\\n
\\n\"","export default \"\\n {{forceUnitTitle}}\\n {{forceUnitTitle}}/{{lengthUnitTitle}}\\n \\n {{forceUnitTitle}}/{{lengthUnitTitle}}{{exponent}}\\n \\n\\n\\n\"","export default \"
\\n

\\n {{ note.title }}\\n \\n

\\n
\\n
\\n
    \\n
  • \\n
\\n
\\n
\\n
\\n\"","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./src/$$_lazy_route_resource lazy recursive\";","export default \".form-group {\\n width: 500px; }\\n\\n.row {\\n margin: 5px; }\\n\\n.btn {\\n margin-top: 10px; }\\n\\n.table {\\n table-layout: fixed; }\\n\\n.table th, .table td {\\n padding: 2px;\\n vertical-align: middle;\\n word-wrap: break-word; }\\n\\n.container {\\n margin-bottom: 40px; }\\n\\n.form {\\n font-family: \\\"HiltiSmallRoman\\\";\\n font-size: 14px; }\\n\\n.btn-secondary {\\n color: #fff;\\n background-color: #6c757d;\\n border-color: #6c757d; }\\n\\n.btn-secondary:active:enabled {\\n color: #fff;\\n background-color: #4c5257;\\n border-color: #4c5257; }\\n\\n.btn-secondary:hover:enabled {\\n color: #fff;\\n background-color: #4c5257;\\n border-color: #4c5257; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9idWlsZHMvYnUtZi1wcy9zaGVhci1jb25uZWN0b3IvZGVwbG95L2NvZGUvaHZiLXdlYi9odmItYXBwL3NyYy9hcHAvYWRtaW4vcGVyc29uYWwtZGF0YS9wZXJzb25hbC1kYXRhLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksYUFBWSxFQUNmOztBQUNEO0VBQ0ksWUFBVyxFQUNkOztBQUNEO0VBQ0ksaUJBQWdCLEVBQ25COztBQUNEO0VBQ0ksb0JBQW1CLEVBQ3RCOztBQUNEO0VBQ0ksYUFBWTtFQUNaLHVCQUFzQjtFQUN0QixzQkFBb0IsRUFDdkI7O0FBQ0Q7RUFDSSxvQkFBbUIsRUFDdEI7O0FBQ0Q7RUFDSSwrQkFBOEI7RUFDOUIsZ0JBQWUsRUFDbEI7O0FBQ0Q7RUFDSSxZQUFXO0VBQ1gsMEJBQXlCO0VBQ3pCLHNCQUFxQixFQUN4Qjs7QUFDRDtFQUNJLFlBQVc7RUFDWCwwQkFBeUI7RUFDekIsc0JBQXFCLEVBQ3hCOztBQUNEO0VBQ0ksWUFBVztFQUNYLDBCQUF5QjtFQUN6QixzQkFBcUIsRUFDeEIiLCJmaWxlIjoic3JjL2FwcC9hZG1pbi9wZXJzb25hbC1kYXRhL3BlcnNvbmFsLWRhdGEuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZm9ybS1ncm91cHsgICAgXG4gICAgd2lkdGg6IDUwMHB4O1xufVxuLnJvdyB7XG4gICAgbWFyZ2luOiA1cHg7XG59XG4uYnRue1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG59XG4udGFibGV7XG4gICAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbn1cbi50YWJsZSB0aCwgLnRhYmxlIHRke1xuICAgIHBhZGRpbmc6IDJweDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyAgICBcbiAgICB3b3JkLXdyYXA6YnJlYWstd29yZDtcbn1cbi5jb250YWluZXJ7XG4gICAgbWFyZ2luLWJvdHRvbTogNDBweDtcbn1cbi5mb3JteyAgICBcbiAgICBmb250LWZhbWlseTogXCJIaWx0aVNtYWxsUm9tYW5cIjtcbiAgICBmb250LXNpemU6IDE0cHg7XG59XG4uYnRuLXNlY29uZGFyeSB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzZjNzU3ZDtcbiAgICBib3JkZXItY29sb3I6ICM2Yzc1N2Q7ICAgIFxufVxuLmJ0bi1zZWNvbmRhcnk6YWN0aXZlOmVuYWJsZWQge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM0YzUyNTc7IFxuICAgIGJvcmRlci1jb2xvcjogIzRjNTI1Nztcbn1cbi5idG4tc2Vjb25kYXJ5OmhvdmVyOmVuYWJsZWQge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM0YzUyNTc7IFxuICAgIGJvcmRlci1jb2xvcjogIzRjNTI1Nztcbn0iXX0= */\"","import { UserService } from './../../service/common/user.service';\n\nimport { Component, ElementRef, OnInit, ViewChild, ViewChildren } from '@angular/core';\nimport { FormBuilder, FormControl, FormControlName, FormGroup, Validators } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Angular2Csv } from 'angular2-csv';\nimport { PersonalData } from 'app/models/models';\nimport { INavItem, NavService } from '../../service/common/nav.service';\nimport { SharedService } from '../../service/common/shared.service';\nimport { PersonalDataService } from './personal-data.service';\n\n@Component({\n selector: 'personal-data',\n templateUrl: './personal-data.component.html',\n styleUrls: ['./personal-data.component.scss']\n})\n\nexport class PersonalDataComponent implements OnInit {\n public static HOME = '/projects';\n\n @ViewChildren(FormControlName, { read: ElementRef }) formInputElements: ElementRef[];\n @ViewChild('username', { static: false }) username: ElementRef;\n\n public gdprForm: FormGroup;\n public personalDetails: PersonalData[] = [];\n\n public userEmail: string;\n public showDeleteDialog: boolean;\n\n constructor(\n private sharedService: SharedService,\n private fb: FormBuilder,\n private router: Router,\n private user: UserService,\n private translate: TranslateService,\n private personalDataService: PersonalDataService,\n private navService: NavService) {\n }\n\n ngOnInit() {\n this.sharedService.changeBreadCrumb('gdpr');\n this.updateNav();\n this.initializeForm();\n }\n\n private updateNav() {\n try {\n this.navService.setNav([{\n routeName: 'Home',\n routeUrl: PersonalDataComponent.HOME\n }, {\n routeName: 'gdpr',\n routeUrl: undefined\n }]);\n } catch (err) {\n\n }\n }\n\n public isPersonalDataEmpty() {\n return this.personalDetails == null || this.personalDetails.length == 0;\n }\n\n public initializeForm() {\n this.gdprForm = this.fb.group({\n username: new FormControl('', Validators.required),\n tracking: new FormControl(false, Validators.required)\n });\n }\n\n public searchPersonalData() {\n const username = this.gdprForm.value.username;\n\n this.personalDetails = [];\n this.personalDataService.get(username).subscribe(result => {\n if (result == null) {\n this.userEmail = null;\n this.gdprForm.get('tracking').setValue(false);\n }\n else {\n this.userEmail = result.email;\n this.gdprForm.get('tracking').setValue(result.tracking);\n\n this.personalDetails = result.data;\n }\n });\n }\n public exportCSV() {\n\n const exportingData = this.personalDetails.map((value, index) => {\n return {\n [0]: index + 1,\n [1]: value.project,\n [2]: value.preparedBy,\n [3]: value.company,\n [4]: value.address,\n [5]: value.phoneNumber,\n [6]: value.email\n };\n });\n // tslint:disable-next-line\n new Angular2Csv(exportingData, 'gdpr', {\n showLabels: true,\n headers: [\n this.translate.instant('gdpr-header-ranking'),\n this.translate.instant('project-name'),\n this.translate.instant('prepared-by'),\n this.translate.instant('company'),\n this.translate.instant('address1'),\n this.translate.instant('phone'),\n this.translate.instant('email')]\n });\n }\n public deleteData() {\n this.showDeleteDialog = true;\n }\n public onDelete() {\n const username = this.gdprForm.value.username;\n this.personalDataService.remove(username).subscribe(result => {\n this.showDeleteDialog = false;\n this.searchPersonalData();\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { GridModule } from '@progress/kendo-angular-grid';\nimport { LayoutModule } from '@progress/kendo-angular-layout';\nimport { DialogModule } from '@progress/kendo-angular-dialog';\nimport { PersonalDataService } from './personal-data.service';\nimport { SharedModule } from './../../shared/shared.module';\nimport { PersonalDataComponent } from './personal-data.component';\nimport { SettingsService } from '../../settings/settings.service';\nimport { RouteGuard } from './../../service/common/routeguard.service';\n\n@NgModule({\n imports: [\n SharedModule,\n ReactiveFormsModule,\n RouterModule.forChild([\n { path: 'gdpr', component: PersonalDataComponent, canActivate: [RouteGuard] }\n ]),\n GridModule,\n LayoutModule,\n DialogModule\n ],\n declarations: [\n PersonalDataComponent\n ],\n providers: [\n SettingsService,\n PersonalDataService\n ],\n exports: [\n PersonalDataComponent\n ]\n})\nexport class PersonalDataModule { };\n","\nimport { HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { ConfigService } from 'app/service/config.service';\nimport { environment } from 'environments/environment';\nimport { Observable } from 'rxjs';\nimport { HttpClient } from './../../common/http-client';\nimport * as models from './../../models/models';\n\n@Injectable()\nexport class PersonalDataService {\n private _personalDataUrl = '';\n constructor(private configService: ConfigService, private _http: HttpClient) {\n if (environment.localTesting) {\n this._personalDataUrl = `${this.configService.config.serviceUrl}/users/personaldata`;\n } else {\n this._personalDataUrl = `${this.configService.config.serviceUrl}asws/profishvb/shear_connector_users/v1/personaldata`;\n }\n }\n\n public get(email: string): Observable {\n let params = new HttpParams();\n params = params.append('email', email);\n return this._http\n .get(`${this._personalDataUrl}`, params);\n }\n\n public remove(email: string): Observable {\n return this._http\n .delete(`${this._personalDataUrl}?email=${email}`);\n }\n}\n","export default \".hui-header {\\n width: 100%;\\n height: 64px;\\n background-color: #FFF;\\n position: relative;\\n display: block;\\n border-bottom: 4px solid #E7E5E2;\\n padding: 0; }\\n .hui-header .logo {\\n display: inline-block;\\n padding: 17px 0;\\n line-height: 30px;\\n cursor: pointer; }\\n .hui-header .logo:focus {\\n outline: none; }\\n .hui-header .logo img {\\n margin: 0 16px;\\n float: left; }\\n .hui-header .logo span {\\n color: #524F53;\\n font-weight: bold;\\n font-size: 16px; }\\n .flex-direction {\\n display: -webkit-flex;\\n display: flex;\\n flex-direction: row-reverse; }\\n nav {\\n padding: 5px 20px;\\n background-color: #CFCCC5; }\\n .nav-item {\\n font-family: HiltiSmallRoman;\\n position: relative;\\n min-height: 40px; }\\n .nav-item ul {\\n list-style-type: none;\\n padding-left: 25px; }\\n .nav-line {\\n width: 2px;\\n height: calc(100% - 52px);\\n position: absolute;\\n background-color: #D2051E;\\n margin-left: 16px;\\n margin-top: 2px; }\\n .logo-txt {\\n color: #534F53;\\n font-size: 18px;\\n font-weight: 400;\\n margin-left: 30px; }\\n .nav-right-divider {\\n border-right: 2px solid #999999; }\\n .nav-left-divider {\\n border-left: 2px solid #999999; }\\n .dropdown-menu {\\n border: 1px solid #F3F2F0;\\n border-radius: 0px !important; }\\n .dropdown-menu button {\\n font-weight: bold;\\n font-size: 0.85em;\\n border-radius: 0;\\n color: #191919; }\\n .dropdown-menu button:hover {\\n background-color: #F3F2F0; }\\n .dropdown-menu ul {\\n background-color: #FFF;\\n right: 155px;\\n position: absolute;\\n margin-top: -37px;\\n list-style-type: none;\\n min-width: 230px;\\n padding: 0;\\n transition: opacity 3s; }\\n .dropdown-menu ul li button {\\n color: #191919;\\n width: 100%;\\n border-radius: 0;\\n font-weight: bold;\\n font-size: 0.85em; }\\n .nav-icon {\\n float: right;\\n margin-right: 10px;\\n font-size: 19px; }\\n .dropdown-divider {\\n margin: 0; }\\n .dropdown-menu .divider.dropdown-divider {\\n margin-left: .5rem;\\n margin-right: .5rem;\\n background-color: #CFCCC5; }\\n .dropdown-menu li {\\n margin: 1px; }\\n .dropdown-menu li .btn-link {\\n color: white; }\\n .dropdown-menu li #version {\\n color: #191919;\\n font-weight: bold;\\n font-size: 0.85em; }\\n .dropdown-menu li .btn-link:hover {\\n background-color: #DDDCDD;\\n color: #534F53; }\\n .dots {\\n margin-left: 20px;\\n float: right; }\\n .dropdown-toggle::after {\\n display: none; }\\n .btn {\\n padding: 0;\\n padding-left: 1rem; }\\n .btn-link {\\n color: #534F53;\\n text-decoration: none;\\n cursor: pointer;\\n box-shadow: none;\\n -moz-appearance: none;\\n border: none;\\n width: 100%;\\n text-align: left; }\\n .btn-secondary.dropdown-toggle {\\n color: #534F53;\\n background: none;\\n border: none;\\n width: 150px;\\n border-radius: 0px;\\n cursor: pointer;\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n box-shadow: none; }\\n .version-padding {\\n padding-left: 17px; }\\n .test-watermark {\\n padding-left: 20px;\\n font-size: 1.25rem; }\\n .truncate {\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis; }\\n .username {\\n width: 200px !important;\\n margin-left: 10px; }\\n .eula-control-checkbox {\\n height: 12px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9idWlsZHMvYnUtZi1wcy9zaGVhci1jb25uZWN0b3IvZGVwbG95L2NvZGUvaHZiLXdlYi9odmItYXBwL3NyYy9hcHAvYXBwLmNvbXBvbmVudC5zY3NzIiwiL2J1aWxkcy9idS1mLXBzL3NoZWFyLWNvbm5lY3Rvci9kZXBsb3kvY29kZS9odmItd2ViL2h2Yi1hcHAvbm9kZV9tb2R1bGVzL2hpbHRpLXVpLWxpYnJhcnkvYXNzZXRzL3Nhc3MvX2h1aS1jb2xvcnMuc2NzcyIsIi9idWlsZHMvYnUtZi1wcy9zaGVhci1jb25uZWN0b3IvZGVwbG95L2NvZGUvaHZiLXdlYi9odmItYXBwL3NyYy9fdmFyaWFibGVzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0E7RUFDRSxZQUFXO0VBQ1gsYUFBWTtFQUNaLHVCQ1VjO0VEVGQsbUJBQWtCO0VBQ2xCLGVBQWM7RUFDZCxpQ0NIOEI7RURJOUIsV0FBVSxFQXFCWDtFQTVCRDtJQWFJLHNCQUFxQjtJQUNyQixnQkFBZTtJQUNmLGtCQUFpQjtJQUNqQixnQkFBZSxFQVdoQjtFQTNCSDtNQVdNLGNBQWEsRUFDZDtFQVpMO01BbUJNLGVBQWM7TUFDZCxZQUFXLEVBQ1o7RUFyQkw7TUF1Qk0sZUNmYTtNRGdCYixrQkFBaUI7TUFDakIsZ0JBQWUsRUFDaEI7RUFJTDtFQUNFLHNCQUFxQjtFQUVyQixjQUFhO0VBQ2IsNEJBQTJCLEVBQzVCO0VBR0Q7RUFDSSxrQkFBaUI7RUFDakIsMEJDbkM0QixFRG9DL0I7RUFDRDtFQUNJLDZCQUE0QjtFQUM1QixtQkFBa0I7RUFDbEIsaUJBQWdCLEVBS25CO0VBUkQ7SUFLUSxzQkFBcUI7SUFDckIsbUJBQWtCLEVBQ3JCO0VBRUw7RUFDSSxXQUFVO0VBQ1YsMEJBQXlCO0VBQ3pCLG1CQUFrQjtFQUNsQiwwQkN4RG1CO0VEeURuQixrQkFBaUI7RUFDakIsZ0JBQWUsRUFDbEI7RUFDRDtFQUNJLGVFMURpQjtFRjJEakIsZ0JBQWU7RUFDZixpQkFBZ0I7RUFDaEIsa0JBQWlCLEVBQ3BCO0VBQ0Q7RUFDSSxnQ0UvRDJCLEVGZ0U5QjtFQUNEO0VBQ0ksK0JFbEUyQixFRm1FOUI7RUFFRDtFQWFFLDBCQ25GOEI7RURvRjlCLDhCQUE2QixFQXNCOUI7RUFwQ0Q7SUFFSSxrQkFBaUI7SUFDakIsa0JBQWlCO0lBQ2pCLGlCQUFnQjtJQUNoQixlQzlEbUIsRUQrRHBCO0VBTkg7SUFTSSwwQkV2RWlCLEVGeUVsQjtFQVhIO0lBaUJJLHVCQzVFWTtJRDZFWixhQUFZO0lBQ1osbUJBQWtCO0lBQ2xCLGtCQUFpQjtJQUNqQixzQkFBcUI7SUFDckIsaUJBQWdCO0lBQ2hCLFdBQVU7SUFDVix1QkFBc0IsRUFXdkI7RUFuQ0g7TUE0QlEsZUNyRmU7TURzRmYsWUFBVztNQUNYLGlCQUFnQjtNQUNoQixrQkFBaUI7TUFDakIsa0JBQWlCLEVBQ2xCO0VBTVA7RUFDSSxhQUFZO0VBQ1osbUJBQWtCO0VBQ2xCLGdCQUFlLEVBQ2xCO0VBQ0Q7RUFDSSxVQUFTLEVBQ1o7RUFDRDtFQUNJLG1CQUFrQjtFQUNsQixvQkFBbUI7RUFDbkIsMEJDckg0QixFRHNIL0I7RUFDRDtFQUNJLFlBQVcsRUFDZDtFQUNEO0VBQ0ksYUFBWSxFQUNmO0VBQ0Q7RUFDSSxlQ3BIbUI7RURxSHJCLGtCQUFpQjtFQUNqQixrQkFBaUIsRUFDbEI7RUFDRDtFQUNJLDBCQy9IbUI7RURnSW5CLGVFdklpQixFRndJcEI7RUFDRDtFQUNJLGtCQUFpQjtFQUNqQixhQUFZLEVBQ2Y7RUFDRDtFQUNJLGNBQ0osRUFBQztFQUNEO0VBQ0ksV0FBVTtFQUNWLG1CQUFrQixFQUNyQjtFQUNEO0VBQ0ssZUVySmdCO0VGc0pqQixzQkFBcUI7RUFDckIsZ0JBQWU7RUFDZixpQkFBZ0I7RUFDaEIsc0JBQXFCO0VBQ3JCLGFBQVk7RUFDWixZQUFXO0VBQ1gsaUJBQWdCLEVBQ25CO0VBQ0Q7RUFDSSxlRS9KaUI7RUZnS2pCLGlCQUFnQjtFQUNoQixhQUFZO0VBQ1osYUFBWTtFQUNaLG1CQUFrQjtFQUNsQixnQkFBZTtFQUNmLHlCQUF3QjtFQUN6QixzQkFBd0I7RUFDeEIsaUJBQWdCLEVBQ2xCO0VBQ0Q7RUFDSSxtQkFBa0IsRUFDckI7RUFRRDtFQUNJLG1CQUFrQjtFQUNsQixtQkFBa0IsRUFDckI7RUFFRDtFQUNFLG9CQUFtQjtFQUNuQixpQkFBZ0I7RUFDaEIsd0JBQXVCLEVBQ3hCO0VBRUQ7RUFDSSx3QkFBdUI7RUFDdkIsa0JBQWlCLEVBQ3BCO0VBRUQ7RUFDSSxhQUFZLEVBQ2YiLCJmaWxlIjoic3JjL2FwcC9hcHAuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAaW1wb3J0ICcuLi92YXJpYWJsZXMnO1xuQGltcG9ydCBcIm5vZGVfbW9kdWxlcy9oaWx0aS11aS1saWJyYXJ5L2Fzc2V0cy9zYXNzL2h1aS1jb2xvcnNcIjtcblxuLmh1aS1oZWFkZXIge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA2NHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkaHVpLXdoaXRlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3JkZXItYm90dG9tOiA0cHggc29saWQgJGh1aS1oZWF2eS1jb25jcmV0ZS0tMjA7XG4gIHBhZGRpbmc6IDA7XG5cbiAgLmxvZ28ge1xuICAgICY6Zm9jdXMge1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBhZGRpbmc6IDE3cHggMDtcbiAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICBpbWcge1xuICAgICAgbWFyZ2luOiAwIDE2cHg7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG4gICAgc3BhbiB7XG4gICAgICBjb2xvcjogJGh1aS1zdGVlbDtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgIH1cbiAgfVxufVxuXG4uZmxleC1kaXJlY3Rpb24ge1xuICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG59XG5cblxubmF2IHtcbiAgICBwYWRkaW5nOiA1cHggMjBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaGlsdGktY29uY3JldGUtbGlnaHRlbi0xO1xufVxuLm5hdi1pdGVtIHtcbiAgICBmb250LWZhbWlseTogSGlsdGlTbWFsbFJvbWFuO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtaW4taGVpZ2h0OiA0MHB4O1xuICAgIHVsIHtcbiAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDI1cHg7XG4gICAgfVxufVxuLm5hdi1saW5lIHtcbiAgICB3aWR0aDogMnB4O1xuICAgIGhlaWdodDogY2FsYygxMDAlIC0gNTJweCk7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRoaWx0aS1yZWQ7XG4gICAgbWFyZ2luLWxlZnQ6IDE2cHg7XG4gICAgbWFyZ2luLXRvcDogMnB4O1xufVxuLmxvZ28tdHh0IHtcbiAgICBjb2xvcjogJGhpbHRpLXN0ZWVsO1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIG1hcmdpbi1sZWZ0OiAzMHB4O1xufVxuLm5hdi1yaWdodC1kaXZpZGVyIHtcbiAgICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCAkaGlsdGktc3RlZWwtbGlnaHRlbi0xO1xufVxuLm5hdi1sZWZ0LWRpdmlkZXIge1xuICAgIGJvcmRlci1sZWZ0OiAycHggc29saWQgJGhpbHRpLXN0ZWVsLWxpZ2h0ZW4tMTtcbn1cblxuLmRyb3Bkb3duLW1lbnUge1xuICBidXR0b24ge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGZvbnQtc2l6ZTogMC44NWVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgY29sb3I6ICRodWktYmxhY2stLTkwO1xuICB9XG5cbiAgYnV0dG9uOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaGlsdGktaG92ZXI7XG5cbiAgfVxuXG4gIGJvcmRlcjogMXB4IHNvbGlkICRodWktaGVhdnktY29uY3JldGUtLTEwO1xuICBib3JkZXItcmFkaXVzOiAwcHggIWltcG9ydGFudDtcblxuICB1bCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGh1aS13aGl0ZTtcbiAgICByaWdodDogMTU1cHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIG1hcmdpbi10b3A6IC0zN3B4O1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICBtaW4td2lkdGg6IDIzMHB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAzcztcblxuICAgIGxpIHtcbiAgICAgIGJ1dHRvbiB7XG4gICAgICAgIGNvbG9yOiAkaHVpLWJsYWNrLS05MDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBmb250LXNpemU6IDAuODVlbTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuXG4ubmF2LWljb24ge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgZm9udC1zaXplOiAxOXB4O1xufVxuLmRyb3Bkb3duLWRpdmlkZXIge1xuICAgIG1hcmdpbjogMDtcbn1cbi5kcm9wZG93bi1tZW51IC5kaXZpZGVyLmRyb3Bkb3duLWRpdmlkZXIge1xuICAgIG1hcmdpbi1sZWZ0OiAuNXJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IC41cmVtO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRoaWx0aS1jb25jcmV0ZS1saWdodGVuLTE7XG59XG4uZHJvcGRvd24tbWVudSBsaSB7XG4gICAgbWFyZ2luOiAxcHg7XG59XG4uZHJvcGRvd24tbWVudSBsaSAuYnRuLWxpbmsge1xuICAgIGNvbG9yOiB3aGl0ZTtcbn1cbi5kcm9wZG93bi1tZW51IGxpICN2ZXJzaW9uIHtcbiAgICBjb2xvcjogJGh1aS1ibGFjay0tOTA7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDAuODVlbTtcbn1cbi5kcm9wZG93bi1tZW51IGxpIC5idG4tbGluazpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGh1aS1zdGVlbC0tMjA7XG4gICAgY29sb3I6ICRoaWx0aS1zdGVlbDtcbn1cbi5kb3RzIHtcbiAgICBtYXJnaW4tbGVmdDogMjBweDtcbiAgICBmbG9hdDogcmlnaHQ7XG59XG4uZHJvcGRvd24tdG9nZ2xlOjphZnRlciB7XG4gICAgZGlzcGxheTpub25lXG59XG4uYnRuIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBhZGRpbmctbGVmdDogMXJlbTtcbn1cbi5idG4tbGluayB7XG4gICAgIGNvbG9yOiAkaGlsdGktc3RlZWw7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi5idG4tc2Vjb25kYXJ5LmRyb3Bkb3duLXRvZ2dsZSB7XG4gICAgY29sb3I6ICRoaWx0aS1zdGVlbDtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICB3aWR0aDogMTUwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAtbW96LWFwcGVhcmFuY2U6ICAgIG5vbmU7XG4gICBib3gtc2hhZG93OiBub25lO1xufVxuLnZlcnNpb24tcGFkZGluZyB7XG4gICAgcGFkZGluZy1sZWZ0OiAxN3B4O1xufVxuQG1peGluIHRyYW5zZm9ybSgkdHJhbnNmb3Jtcykge1xuXHQgICAtbW96LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG5cdCAgICAgLW8tdHJhbnNmb3JtOiAkdHJhbnNmb3Jtcztcblx0ICAgIC1tcy10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuXHQtd2Via2l0LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgICAgdHJhbnNmb3JtOiAkdHJhbnNmb3Jtcztcbn1cbi50ZXN0LXdhdGVybWFyayB7XG4gICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbn1cblxuLnRydW5jYXRlIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG5cbi51c2VybmFtZSB7XG4gICAgd2lkdGg6IDIwMHB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG59XG5cbi5ldWxhLWNvbnRyb2wtY2hlY2tib3h7XG4gICAgaGVpZ2h0OiAxMnB4O1xufVxuXG4iLCIvL0NvbG9yc1xuLy9UT0RPOiByZW1vdmUgcHJlZml4IGh1aSBpbiBjb2xvcnMgdmFyaWFibGVcbiRodWktaGlsdGktcmVkOiAjRDIwNTFFO1xuJGh1aS1kYXJrLXJlZDogI0FCMDExNTtcbiRodWktZXJyb3ItcmVkOiAjRkYwMDAwO1xuJGh1aS1oZWF2eS1jb25jcmV0ZS0tMTA6ICNGM0YyRjA7XG4kaHVpLWhlYXZ5LWNvbmNyZXRlLS0yMDogI0U3RTVFMjtcbiRodWktaGVhdnktY29uY3JldGUtLTMwOiAjREJEOEQzO1xuJGh1aS1oZWF2eS1jb25jcmV0ZS0tNDA6ICNDRkNDQzU7XG4kaHVpLWhlYXZ5LWNvbmNyZXRlLS02MDogI0I3QjNBQTtcbiRodWktaGVhdnktY29uY3JldGUtLTgwOiAjQTA5OThCO1xuJGh1aS1zdGVlbDogIzUyNEY1MztcbiRodWktc3RlZWwtLTIwOiAjREREQ0REO1xuJGh1aS1zdGVlbC0tNDA6ICNCQUI5QkE7XG4kaHVpLXN0ZWVsLS02MDogIzk3OTU5ODtcbiRodWktc3RlZWwtLTgwOiAjNzU3Mjc1O1xuJGh1aS13aGl0ZTogI0ZGRjtcbiRodWktYmxhY2s6ICMwMDA7XG4kaHVpLWJsYWNrLS05MDogIzE5MTkxOTtcbiRodWktYmxhY2stLTQwOiAjOTk5OTk5O1xuJGh1aS1ncmVlbjogIzE5QUYzNztcbiRodWktZ3JlZW4tLTQwOiAjQTNERkFGO1xuJGh1aS1kYXJrLWJsdWU6ICMwMDVGOTY7XG5cbiRodWktYnVyZ3VuZHk6ICM2NzFDM0U7XG5cbiRjdGE6ICRodWktaGlsdGktcmVkO1xuJHByaW1hcnk6ICRodWktc3RlZWw7XG4kc2Vjb25kYXJ5OiAkaHVpLWhlYXZ5LWNvbmNyZXRlLS0yMDtcbiRzdWNjZXNzOiAjMTlBRjM3O1xuJGRhbmdlcjogI0ZGMDAwMDtcbiR3YXJuaW5nOiAjRkZBRjAwO1xuXG4kdGhlbWUtY29sb3JzOiAoXG4gIFwiY3RhXCI6ICRjdGEsXG4gIFwiaGVhdnktY29uY3JldGUtLTEwXCI6ICRodWktaGVhdnktY29uY3JldGUtLTEwLFxuICBcImhlYXZ5LWNvbmNyZXRlLS0yMFwiOiAkaHVpLWhlYXZ5LWNvbmNyZXRlLS0yMCxcbik7XG4iLCJAaW1wb3J0IFwiLi9ub2RlX21vZHVsZXMvaGlsdGktdWktbGlicmFyeS9hc3NldHMvc2Fzcy9odWktY29sb3JzXCI7XG4kaGlsdGktY29uY3JldGU6ICRodWktaGVhdnktY29uY3JldGUtLTQwO1xuJGhpbHRpLWNvbmNyZXRlLWxpZ2h0ZW4tMTogJGh1aS1oZWF2eS1jb25jcmV0ZS0tNDA7XG4kaGlsdGktY29uY3JldGUtbGlnaHRlbi0yOiAjRUZFQkU1O1xuJGhpbHRpLWNvbmNyZXRlLWRhcmtlbi0yOiAjODg3RjZFO1xuJGhpbHRpLXN0ZWVsOiAjNTM0RjUzO1xuJGhpbHRpLXN0ZWVsLWxpZ2h0ZW4tMTogIzk5OTk5OTtcbiRoaWx0aS1zdGVlbC1saWdodGVuLTI6ICNEREREREQ7XG4kaGlsdGktcmViZWwtYmx1ZTogIzM4ODBCMDtcbiRoaWx0aS1yZWJlbC1ibHVlLWxpZ2h0ZW4tMTogI0NDREZFQjtcbiRoaWx0aS1saWdodC1ncmV5OiAjRkFGQUZBO1xuJGhpbHRpLXJlZDogJGh1aS1oaWx0aS1yZWQ7XG4kaGlsdGktcGxhY2Vob2xkZXI6ICNkN2Q3ZDc7XG4kaGlsdGktaG92ZXI6ICNGM0YyRjA7XG4kaGlsdGktc2VsZWN0ZWQ6ICNEOEQ4RDg7XG4kaGlsdGktZGlzYWJsZWQ6ICNFN0U1RTE7XG4kdGFic3RyaXAtY29udGVudC1wYWRkaW5nLXg6IDBweDtcbiR0YWJzdHJpcC1jb250ZW50LXBhZGRpbmcteTogMHB4O1xuJHRhYnN0cmlwLWNvbnRlbnQtYm9yZGVyLXdpZHRoOiAwcHg7XG4kZ3JpZC1oZWFkZXItYmc6IHdoaXRlO1xuJGdyaWQtYm9yZGVyOiByZ2JhKCRodWktaGVhdnktY29uY3JldGUtLTIwLCAwKTtcbiRncmlkLWhlYWRlci1ib3JkZXI6IHJnYmEoJGh1aS1oZWF2eS1jb25jcmV0ZS0tMjAsIDEpO1xuJGdyaWQtYWx0LWJnOiByZ2JhKHdoaXRlLCAwKTtcbiRncmlkLWhvdmVyZWQtYmc6ICRodWktc3RlZWwtLTIwO1xuIl19 */\"","\nimport { Subscription } from 'rxjs';\n\nimport { Location } from '@angular/common';\nimport { HttpClient } from '@angular/common/http';\nimport { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, NavigationEnd, NavigationStart, Router } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { IToasterConfig, ToasterConfig } from 'angular2-toaster';\nimport { environment } from 'environments/environment';\nimport { pairwise } from 'rxjs/operators';\nimport { AppConstants } from './common/AppConstants';\nimport { Settings } from './models/models';\nimport { AuthService } from './service/common/auth.service';\nimport { ApplicationOptionsService } from './service/common/application-options.service';\nimport { INavItem, NavService } from './service/common/nav.service';\nimport { SharedService } from './service/common/shared.service';\nimport { UrlService } from './service/common/url.service';\nimport { UserService } from './service/common/user.service';\nimport { WindowRefService } from './service/common/window.ref.service';\nimport { ConfigService } from './service/config.service';\nimport { AppStorageService } from './service/util/app-storage.service';\nimport { SessionStorageService } from './service/util/session-storage.service';\nimport { SettingsService } from './settings/settings.service';\nimport { SearchService } from './shared/search/search.service';\nimport { SurveyService } from './survey/survey.service';\n\n@Component({\n selector: 'app-root',\n templateUrl: 'app.component.html',\n styleUrls: ['app.component.scss']\n})\nexport class AppComponent implements OnInit {\n private language: string;\n private langSubscription: Subscription;\n private settingsSubscription: Subscription;\n private langOptions: any[] = [];\n private referenceUrl: string;\n private techSpecUrlEc: string;\n private techSpecUrlAisc: string;\n private techSpecUrlAsnzs: string;\n public notifyOptions: any;\n public showLoader = false;\n public toasterConfig: ToasterConfig;\n private navToggle = false;\n public showEulaDialog = false;\n public showPrivacyDialog = false;\n public showTipsDialog = false;\n public showLegalNotices = false;\n public eulaReadOnly = false;\n public navItems: INavItem[] = [];\n public showSupportMenu = false;\n public showAdditionalMenu = false;\n public policyHref = '';\n public privacyAccepted = false;\n public showSurveyDialog = false;\n public isShowDialogAfterLogin = true;\n public languages: Map = new Map();\n public surveyData: any;\n public showWhatsNewDialog = false;\n public showSoftwarePopupDialog = false;\n private settings: Settings;\n\n constructor(\n public translate: TranslateService,\n public user: UserService,\n public auth: AuthService,\n public location: Location,\n public router: Router,\n public http: HttpClient,\n public route: ActivatedRoute,\n public sessionStorageService: SessionStorageService,\n public appStorageService: AppStorageService,\n public sharedService: SharedService,\n public applicationOptionsService: ApplicationOptionsService,\n public windowRef: WindowRefService,\n public activatedRoute: ActivatedRoute,\n public searchService: SearchService,\n public navService: NavService,\n public settingsService: SettingsService,\n public urlService: UrlService,\n public surveyService: SurveyService,\n private configService: ConfigService\n ) {\n this.appStorageService.set(AppConstants.LOCALE, window.navigator.language);\n this.language = window.navigator.language; // Two character language like 'en'\n\n this.langOptions = this.applicationOptionsService.options ? this.applicationOptionsService.options.languages : [];\n const filtered = this.langOptions.filter(item => item.value === this.language);\n this.referenceUrl = filtered && filtered.length > 0 ? filtered[0].referenceUrl : AppConstants.DEFAULT_REFERENCE_URL;\n this.techSpecUrlEc = AppConstants.DEFAULT_TECH_SPEC_EC;\n this.techSpecUrlAisc = AppConstants.DEFAULT_TECH_SPEC_AISC;\n this.techSpecUrlAsnzs = AppConstants.DEFAULT_TECH_SPEC_ASNZS;\n this.sharedService.$loader.subscribe(visible => {\n this.showLoader = visible;\n });\n this.sharedService.$showEulaDialog.subscribe(visible => {\n this.showEulaDialog = visible;\n });\n this.sharedService.$showDialogAfterLogin.subscribe(visible => {\n if (visible) {\n const eulaId = this.appStorageService.get(AppConstants.HVB_EULA) || this.appStorageService.get(AppConstants.HVB_PREVIOUS_USER);\n if (eulaId && eulaId === this.user.authentication.userId) {\n this.goToSoftwarePopup();\n }\n }\n });\n this.navService.$navItemsChanged.subscribe(navItems => {\n this.navItems = navItems;\n });\n // Use pairwise to see the flow\n this.router.events.pipe(pairwise()).subscribe((event: any[]) => {\n // console.log('Pairwise subscribe on router = ', event);\n if (event[0] instanceof NavigationEnd && event[1] instanceof NavigationStart) {\n if (event[0].url !== '/oauth_callback') {\n appStorageService.set(AppConstants.ReturnUrl, event[0].url);\n }\n }\n });\n\n this.toasterConfig = new ToasterConfig({\n limit: 3,\n tapToDismiss: true,\n showCloseButton: true,\n newestOnTop: true,\n timeout: 3000,\n preventDuplicates: true,\n animation: 'slideUp',\n positionClass: 'toast-bottom-center'\n });\n\n this.languages.set('en', 1033);\n this.languages.set('fr', 1036);\n this.languages.set('it', 1040);\n this.languages.set('pt', 2070);\n this.languages.set('es', 1034);\n this.languages.set('nl', 1043);\n this.languages.set('de', 1031);\n this.languages.set('bg', 1026);\n this.languages.set('ro', 1048);\n this.languages.set('cs', 1029);\n this.languages.set('hu', 1038);\n this.languages.set('sk', 1051);\n }\n public get applicationVersion() {\n return this.configService.config.applicationVersion;\n }\n isSearchRoute() {\n if (this.router.url === '/projects' || this.router.url === '/settings') {\n return true;\n }\n }\n\n goToSettings() {\n this.router.navigate(['/settings']);\n }\n\n goToPrivacyPolicy() {\n this.showPrivacyDialog = true;\n this.isShowDialogAfterLogin = false;\n }\n\n goToTips() {\n this.showTipsDialog = true;\n }\n\n goToEndUserAgreement() {\n this.eulaReadOnly = true;\n }\n\n goToLegalNotices() {\n this.showLegalNotices = true;\n }\n\n goToReference() {\n window.open(this.referenceUrl);\n }\n\n goToTutorials() {\n this.urlService.getCurrentUrls().subscribe(url => {\n window.open(url.tutorual);\n });\n }\n\n goToXHvbSpecification() {\n this.urlService.getCurrentUrls().subscribe(url => {\n window.open(url.XHvbSpecification);\n });\n }\n\n goToProductPage() {\n this.urlService.getCurrentUrls().subscribe(url => {\n window.open(url.productPage);\n });\n }\n\n goToHelpdesk() {\n this.urlService.getCurrentUrls().subscribe(url => {\n window.open(url.helpdesk);\n });\n }\n\n goToTechnicalSpecEc() {\n window.open(this.techSpecUrlEc);\n }\n goToTechnicalSpecAisc() {\n window.open(this.techSpecUrlAisc);\n }\n\n goToTechnicalSpecAsnzs() {\n window.open(this.techSpecUrlAsnzs);\n }\n\n goToSoftware() {\n this.urlService.getCurrentUrls().subscribe(url => {\n window.open(url.software);\n });\n }\n\n goToDataSubProcessors() {\n window.open(AppConstants.SUBPROCESSOR_LIST_URL);\n }\n\n goToRoute(navItem: INavItem) {\n if (navItem.routeUrl) {\n this.router.navigateByUrl(navItem.routeUrl);\n }\n }\n\n goToWhatsNew() {\n this.showWhatsNewDialog = true;\n }\n\n goToSoftwarePopup() {\n if (this.settings\n && this.settings.countryNationalAnnexes === 7\n && this.settings.language === 'it'\n && this.settings.eTag !== AppConstants.E_TAG) {\n this.showSoftwarePopupDialog = true;\n }\n }\n\n cancelLegal() {\n this.showLegalNotices = false;\n }\n\n cancelPrivacy() {\n this.showPrivacyDialog = false;\n }\n\n cancelTips() {\n this.showTipsDialog = false;\n }\n\n closeSurvey(result) {\n this.showSurveyDialog = false;\n this.goToSoftwarePopup();\n }\n\n cancelWhatsNewDialog() {\n this.showWhatsNewDialog = false;\n }\n\n onCloseSoftwarePopupDialog(isNeverShowAgain) {\n this.showSoftwarePopupDialog = false;\n if (isNeverShowAgain) {\n this.settings.eTag = AppConstants.E_TAG;\n this.settingsService.saveSettings(this.settings).subscribe(settings => this.settings = settings);\n }\n }\n acceptEula() {\n this.user.authentication.eulaAcceptance = this.user.authentication.userId;\n this.appStorageService.set(AppConstants.HVB_EULA, this.user.authentication.userId);\n this.sharedService.showEulaDialog(false);\n this.showPrivacyDialog = true;\n }\n\n cancelEula() {\n if (this.eulaReadOnly) {\n this.eulaReadOnly = false;\n return;\n }\n if (this.user && this.user.authentication) {\n this.user.authentication.eulaAcceptance = null;\n this.appStorageService.set(AppConstants.HVB_EULA, this.user.authentication.eulaAcceptance);\n }\n this.logout();\n this.sharedService.showEulaDialog(false);\n }\n\n onClosePolicyDialogNotify(event) {\n this.showPrivacyDialog = false;\n if (this.isShowDialogAfterLogin) {\n this.goToSoftwarePopup();\n }\n }\n\n shouldEulaShown(): Boolean {\n const eulaId = this.appStorageService.get(AppConstants.HVB_EULA) || this.appStorageService.get(AppConstants.HVB_PREVIOUS_USER);\n return (\n this.showEulaDialog\n || this.eulaReadOnly\n || (this.user.authentication && eulaId && this.user.authentication.userId !== eulaId));\n }\n\n logout() {\n this.auth.logout();\n if (environment.localTesting) {\n this.router.navigate(['/logout']);\n }\n }\n\n async ngOnInit() {\n this.eulaReadOnly = false;\n if (location.pathname === '/logout') {\n return;\n }\n this.user.authenticatedFromStorage();\n \n if(this.user.isAuthenticated) {\n await this.applicationOptionsService.initialize();\n }\n\n console.log('Language = ', this.language);\n\n this.langSubscription = this.sharedService.language$.subscribe(item => {\n this.language = item;\n this.translate.setDefaultLang(this.language);\n });\n\n this.settingsSubscription = this.sharedService.$settings.subscribe(settings => {\n if (settings) {\n this.urlService.getCurrentUrlsBySettings(settings).subscribe(urls => {\n if (urls) {\n const languageUrls = urls.languages.filter(p => p.value === this.language);\n this.policyHref = (languageUrls.length > 0 ? languageUrls[0] : urls.languages[0]).ppurl;\n }\n });\n this.settings = settings;\n this.sharedService.changeLanguage(settings.language);\n }\n });\n\n if (environment.localTesting) {\n this.appStorageService.set(AppConstants.ReturnUrl, location.href);\n this.router.navigate(['/oauth_callback']);\n }\n }\n\n showSurvey() {\n const region = this.applicationOptionsService.options.nationalAnnexes\n .filter(c => c.id === this.settings.countryNationalAnnexes);\n\n this.surveyData = {\n applicationId: AppConstants.APPLICATION_ID,\n applicationVersion: this.configService.config.applicationVersion,\n languageId: this.languages.get(this.settings.language),\n regionId: this.settings.countryNationalAnnexes,\n region: region && region.length === 1 ? region[0].label : 'None'\n };\n\n if (environment.localTesting) {\n this.surveyData.userName = this.user.authentication.userName;\n this.surveyData.userId = this.user.authentication.userId;\n } else {\n this.surveyData.accessToken = this.user.authentication.accessToken;\n }\n\n this.surveyService.getSurveyAvailability(this.surveyData.applicationId, this.surveyData.languageId, this.surveyData.regionId)\n .then(isAvailable => {\n if (isAvailable) {\n this.showSurveyDialog = true;\n } else {\n this.goToSoftwarePopup();\n }\n });\n }\n\n toggleNav(onlyClose = false): void {\n if (onlyClose) {\n this.navToggle = false;\n } else {\n this.navToggle = !this.navToggle;\n }\n }\n navClass(): string {\n if (this.navToggle) {\n return '';\n } else {\n return 'collapse';\n }\n }\n}\n","import { HttpClientModule } from '@angular/common/http';\nimport { APP_INITIALIZER, NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\nimport { DialogModule } from '@progress/kendo-angular-dialog';\nimport { DropDownsModule } from '@progress/kendo-angular-dropdowns';\nimport { ToasterModule } from 'angular2-toaster';\nimport {\n ActionItemModule,\n ButtonModule,\n CheckboxModule,\n HeaderModule,\n LabelModule,\n MenuModule,\n TextInputModule\n} from 'hilti-ui-library';\nimport { PersonalDataModule } from './admin/personal-data/personal-data.module';\nimport { AppComponent } from './app.component';\nimport { AppRoutingModule } from './app.routing';\nimport { httpInterceptorProviders } from './common';\nimport { HttpClient } from './common/http-client';\nimport { SafePipe } from './common/safePipe';\nimport { EulaModule } from './eula/eula.module';\nimport { LegalComponent } from './legal/legal.component';\nimport { LogoutComponent } from './logout.component';\nimport { NonSupportedBrowserComponent } from './non-supported-browser/non-supported-browser.component';\nimport { OauthcallbackComponent } from './oauthcallback/oauthcallback.component';\nimport { PrivacyModule } from './privacy/privacy.module';\nimport { ProjectModule } from './project/project.module';\nimport { RegistrationCallbackComponent } from './registrationcallback/registrationcallback.component';\nimport { ReportModule } from './report/report.module';\nimport { RootComponent } from './root/root.component';\nimport { AuthService } from './service/common/auth.service';\nimport { NavService } from './service/common/nav.service';\nimport { RouteGuard } from './service/common/routeguard.service';\nimport { SharedService } from './service/common/shared.service';\nimport { UrlService } from './service/common/url.service';\nimport { UserService } from './service/common/user.service';\nimport { WindowRefService } from './service/common/window.ref.service';\nimport { ConfigService } from './service/config.service';\nimport { AppStorageService } from './service/util/app-storage.service';\nimport { SessionStorageService } from './service/util/session-storage.service';\nimport { SettingsModule } from './settings/settings.module';\nimport { NavigationComponent } from './shared/navigation/navigation.component';\nimport { SearchModule } from './shared/search/search.module';\nimport { SharedModule } from './shared/shared.module';\nimport { SoftwarePopupModule } from './software-popup/software-popup.module';\nimport { SurveyModule } from './survey/survey.module';\nimport { TipsComponent } from './tips/tips.component';\nimport { UserAgreementAcceptGaurd } from './user-agreement-acceptguard.service';\nimport { WhatsNewComponent } from './whats-new/whats-new.component';\n\n@NgModule({\n declarations: [\n AppComponent,\n LogoutComponent,\n RootComponent,\n LegalComponent,\n OauthcallbackComponent,\n SafePipe,\n NavigationComponent,\n TipsComponent,\n WhatsNewComponent,\n NonSupportedBrowserComponent,\n RegistrationCallbackComponent\n ],\n imports: [\n BrowserModule,\n FormsModule,\n HttpClientModule,\n HttpClientModule,\n AppRoutingModule,\n ProjectModule,\n SharedModule,\n SettingsModule,\n PrivacyModule,\n SearchModule,\n ToasterModule,\n ReportModule,\n DialogModule,\n NgbModule,\n DropDownsModule,\n EulaModule,\n PersonalDataModule,\n SurveyModule,\n SoftwarePopupModule,\n HeaderModule,\n TextInputModule,\n LabelModule,\n ButtonModule,\n MenuModule,\n ActionItemModule,\n CheckboxModule,\n ReactiveFormsModule\n ],\n providers: [\n httpInterceptorProviders,\n UserService,\n AuthService,\n SessionStorageService,\n AppStorageService,\n SharedService,\n UrlService,\n HttpClient,\n RouteGuard,\n UserAgreementAcceptGaurd,\n WindowRefService,\n NavService,\n ConfigService,\n {\n provide: APP_INITIALIZER,\n useFactory: (configService: ConfigService) => () => configService.loadConfig(),\n deps: [ConfigService],\n multi: true\n }\n ],\n exports: [\n ],\n bootstrap: [AppComponent]\n})\nexport class AppModule { }\n","import { EulaComponent } from './eula/eula.component';\nimport { UserAgreementAcceptGaurd } from './user-agreement-acceptguard.service';\nimport { LogoutComponent } from './logout.component';\nimport { Routes, RouterModule } from '@angular/router';\nimport { ProjectListComponent } from './project/project-list.component';\nimport { ProjectComponent } from './project/project.component';\nimport { SubProjectComponent } from './subproject/sub-project.component';\nimport { RouteGuard } from './service/common/routeguard.service';\nimport { OauthcallbackComponent } from './oauthcallback/oauthcallback.component';\nimport { ReportViewerComponent } from './report/report-viewer/report-viewer.component';\nimport { SubProjectSaveGuard } from './subproject/sub-project-saveguard.service';\nimport { ProjectSaveGuard } from './project/project-saveguard.service';\nimport { NgModule } from '@angular/core';\nimport { SettingsComponent } from './settings/settings.component';\nimport { RegistrationCallbackComponent } from './registrationcallback/registrationcallback.component';\n\nconst appRoutes: Routes = [\n { path: 'logout', component: LogoutComponent, data: { breadcrumb: 'logout' } },\n { path: 'oauth_callback', component: OauthcallbackComponent },\n { path: 'registration_callback', component: RegistrationCallbackComponent},\n { path: 'projects', component: ProjectListComponent , data: { breadcrumb: 'project-list' }, canActivate: [RouteGuard] },\n { path: 'eula', component: EulaComponent , data: { breadcrumb: 'project-list' }, canActivate: [RouteGuard] },\n { path: 'project', component: ProjectComponent , data: { breadcrumb: 'project' }, canActivate: [RouteGuard, UserAgreementAcceptGaurd], canDeactivate: [ProjectSaveGuard] },\n { path: 'subproject', component: SubProjectComponent , data: { breadcrumb: 'subproject' }, canActivate: [RouteGuard, UserAgreementAcceptGaurd], canDeactivate: [SubProjectSaveGuard] },\n { path: 'report', component: ReportViewerComponent , data: { breadcrumb: 'report' }, canActivate: [RouteGuard, UserAgreementAcceptGaurd] },\n { path: 'settings', component: SettingsComponent, canActivate: [RouteGuard] },\n { path: '**', redirectTo: 'projects', data: { breadcrumb: 'project-list' }, canActivate: [RouteGuard] },\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(appRoutes)],\n exports: [RouterModule]\n})\nexport class AppRoutingModule { }\n","export default \".ltb-warning span {\\n color: #AB0115; }\\n\\n.calculateHeader {\\n text-align: left;\\n font-weight: bold;\\n padding-top: 10px;\\n display: flex; }\\n\\n.calculateLabel {\\n text-align: left; }\\n\\n.calculateValue {\\n text-align: left; }\\n\\n.indent {\\n margin: 0px;\\n margin-left: 0px; }\\n\\n.watermark {\\n position: absolute;\\n z-index: 100;\\n font-size: 45px;\\n transform: rotate(-38deg) translate(-181px, 478%);\\n color: #f6f6f6; }\\n\\n.connection-degree-notification {\\n color: #D2051E; }\\n\\n.notes {\\n font-size: small;\\n font-style: italic;\\n padding-left: 30px; }\\n\\n.calculate-result-heading {\\n height: 32px; }\\n\\n.calculate-result-heading .image-calculation-ok {\\n background: url('alert_positive.png') no-repeat;\\n background-size: cover;\\n display: inline-block;\\n width: 32px;\\n height: 32px; }\\n\\n.calculate-result-heading .image-calculation-not-ok {\\n background: url('alert_error.png') no-repeat;\\n background-size: cover;\\n display: inline-block;\\n width: 32px;\\n height: 32px; }\\n\\n.calculate-result-heading .heading-text {\\n display: inline-block;\\n vertical-align: top;\\n padding: 3px;\\n font-size: 1.3em;\\n font-weight: bold; }\\n\\n.section-heading {\\n font-weight: bold;\\n font-size: 1.1em;\\n padding-left: 10px;\\n border-bottom: 1px solid #CFCCC5; }\\n\\n.section-content {\\n margin: 20px; }\\n\\n.col-sm-7 {\\n padding-left: 0px; }\\n\\n.col-sm-9 {\\n padding: 0px;\\n margin: 0px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9idWlsZHMvYnUtZi1wcy9zaGVhci1jb25uZWN0b3IvZGVwbG95L2NvZGUvaHZiLXdlYi9odmItYXBwL3NyYy9hcHAvY2FsY3VsYXRpb25zL2NhbGN1bGF0ZS9jYWxjdWxhdGUuY29tcG9uZW50LnNjc3MiLCIvYnVpbGRzL2J1LWYtcHMvc2hlYXItY29ubmVjdG9yL2RlcGxveS9jb2RlL2h2Yi13ZWIvaHZiLWFwcC9ub2RlX21vZHVsZXMvaGlsdGktdWktbGlicmFyeS9hc3NldHMvc2Fzcy9faHVpLWNvbG9ycy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBO0VBRUksZUNGa0IsRURHbkI7O0FBR0g7RUFDSSxpQkFBZ0I7RUFDaEIsa0JBQWlCO0VBQ2pCLGtCQUFpQjtFQUNqQixjQUFhLEVBQ2hCOztBQUVEO0VBQ0ksaUJBQWdCLEVBQ25COztBQUVEO0VBQ0ksaUJBQWUsRUFDbEI7O0FBRUQ7RUFDSSxZQUFXO0VBQ1gsaUJBekIyQixFQTBCOUI7O0FBU0Q7RUFDSSxtQkFBa0I7RUFDbEIsYUFBWTtFQUNaLGdCQUFlO0VBTFQsa0RBTW1EO0VBQ3pELGVBQWMsRUFDakI7O0FBRUQ7RUFDSSxlQzNDbUIsRUQ0Q3RCOztBQUVEO0VBQ0ksaUJBQWdCO0VBQ2hCLG1CQUFrQjtFQUNsQixtQkFBa0IsRUFDckI7O0FBRUQ7RUFDRSxhQUFZLEVBeUJiOztBQTFCRDtJQUlJLGdEQUFzRTtJQUN0RSx1QkFBc0I7SUFDdEIsc0JBQXFCO0lBQ3JCLFlBQVc7SUFDWCxhQUFZLEVBQ2I7O0FBVEg7SUFZSSw2Q0FBbUU7SUFDbkUsdUJBQXNCO0lBQ3RCLHNCQUFxQjtJQUNyQixZQUFXO0lBQ1gsYUFBWSxFQUNiOztBQWpCSDtJQW9CSSxzQkFBcUI7SUFDckIsb0JBQW1CO0lBQ25CLGFBQVk7SUFDWixpQkFBZ0I7SUFDaEIsa0JBQWlCLEVBQ2xCOztBQUdIO0VBQ0Usa0JBQWlCO0VBQ2pCLGlCQUFnQjtFQUNoQixtQkFBa0I7RUFDbEIsaUNDOUU4QixFRCtFL0I7O0FBRUQ7RUFDRSxhQUFZLEVBQ2I7O0FBRUQ7RUFDRSxrQkFBaUIsRUFDbEI7O0FBRUQ7RUFDRSxhQUFZO0VBQ1osWUFBVyxFQUNaIiwiZmlsZSI6InNyYy9hcHAvY2FsY3VsYXRpb25zL2NhbGN1bGF0ZS9jYWxjdWxhdGUuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAaW1wb3J0ICcuLy4uLy4uLy4uL192YXJpYWJsZXMuc2Nzcyc7XG4kY2FsY3VsYXRlLXN0YW5kYXJkLWluZGVudDogMHB4O1xuXG4ubHRiLXdhcm5pbmcge1xuICBzcGFuIHtcbiAgICBjb2xvcjogJGh1aS1kYXJrLXJlZDtcbiAgfVxufVxuXG4uY2FsY3VsYXRlSGVhZGVyIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHBhZGRpbmctdG9wOiAxMHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG59XG5cbi5jYWxjdWxhdGVMYWJlbCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLmNhbGN1bGF0ZVZhbHVlIHtcbiAgICB0ZXh0LWFsaWduOmxlZnQ7XG59XG5cbi5pbmRlbnQge1xuICAgIG1hcmdpbjogMHB4O1xuICAgIG1hcmdpbi1sZWZ0OiAkY2FsY3VsYXRlLXN0YW5kYXJkLWluZGVudDtcbn1cblxuQG1peGluIHRyYW5zZm9ybSgkdHJhbnNmb3Jtcykge1xuXHQgICAtbW96LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG5cdCAgICAgLW8tdHJhbnNmb3JtOiAkdHJhbnNmb3Jtcztcblx0ICAgIC1tcy10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuXHQtd2Via2l0LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgICAgdHJhbnNmb3JtOiAkdHJhbnNmb3Jtcztcbn1cbi53YXRlcm1hcmsge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAxMDA7XG4gICAgZm9udC1zaXplOiA0NXB4O1xuICAgIEBpbmNsdWRlIHRyYW5zZm9ybShyb3RhdGUoLTM4ZGVnKSB0cmFuc2xhdGUoLTE4MXB4LCA0NzglKSk7XG4gICAgY29sb3I6ICNmNmY2ZjY7XG59XG5cbi5jb25uZWN0aW9uLWRlZ3JlZS1ub3RpZmljYXRpb24ge1xuICAgIGNvbG9yOiRoaWx0aS1yZWRcbn1cblxuLm5vdGVze1xuICAgIGZvbnQtc2l6ZTogc21hbGw7XG4gICAgZm9udC1zdHlsZTogaXRhbGljOztcbiAgICBwYWRkaW5nLWxlZnQ6IDMwcHg7XG59XG5cbi5jYWxjdWxhdGUtcmVzdWx0LWhlYWRpbmcge1xuICBoZWlnaHQ6IDMycHg7XG5cbiAgLmltYWdlLWNhbGN1bGF0aW9uLW9rIHtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi8uLi8uLi9hc3NldHMvaW1hZ2VzL2FsZXJ0X3Bvc2l0aXZlLnBuZ1wiKSBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDMycHg7XG4gICAgaGVpZ2h0OiAzMnB4O1xuICB9XG5cbiAgLmltYWdlLWNhbGN1bGF0aW9uLW5vdC1vayB7XG4gICAgYmFja2dyb3VuZDogdXJsKFwiLi4vLi4vLi4vYXNzZXRzL2ltYWdlcy9hbGVydF9lcnJvci5wbmdcIikgbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAzMnB4O1xuICAgIGhlaWdodDogMzJweDtcbiAgfVxuXG4gIC5oZWFkaW5nLXRleHQge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIHBhZGRpbmc6IDNweDtcbiAgICBmb250LXNpemU6IDEuM2VtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB9XG59XG5cbi5zZWN0aW9uLWhlYWRpbmcge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiAxLjFlbTtcbiAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGh1aS1oZWF2eS1jb25jcmV0ZS0tNDA7XG59XG5cbi5zZWN0aW9uLWNvbnRlbnQge1xuICBtYXJnaW46IDIwcHg7XG59XG5cbi5jb2wtc20tNyB7XG4gIHBhZGRpbmctbGVmdDogMHB4O1xufVxuXG4uY29sLXNtLTkge1xuICBwYWRkaW5nOiAwcHg7XG4gIG1hcmdpbjogMHB4O1xufVxuIiwiLy9Db2xvcnNcbi8vVE9ETzogcmVtb3ZlIHByZWZpeCBodWkgaW4gY29sb3JzIHZhcmlhYmxlXG4kaHVpLWhpbHRpLXJlZDogI0QyMDUxRTtcbiRodWktZGFyay1yZWQ6ICNBQjAxMTU7XG4kaHVpLWVycm9yLXJlZDogI0ZGMDAwMDtcbiRodWktaGVhdnktY29uY3JldGUtLTEwOiAjRjNGMkYwO1xuJGh1aS1oZWF2eS1jb25jcmV0ZS0tMjA6ICNFN0U1RTI7XG4kaHVpLWhlYXZ5LWNvbmNyZXRlLS0zMDogI0RCRDhEMztcbiRodWktaGVhdnktY29uY3JldGUtLTQwOiAjQ0ZDQ0M1O1xuJGh1aS1oZWF2eS1jb25jcmV0ZS0tNjA6ICNCN0IzQUE7XG4kaHVpLWhlYXZ5LWNvbmNyZXRlLS04MDogI0EwOTk4QjtcbiRodWktc3RlZWw6ICM1MjRGNTM7XG4kaHVpLXN0ZWVsLS0yMDogI0RERENERDtcbiRodWktc3RlZWwtLTQwOiAjQkFCOUJBO1xuJGh1aS1zdGVlbC0tNjA6ICM5Nzk1OTg7XG4kaHVpLXN0ZWVsLS04MDogIzc1NzI3NTtcbiRodWktd2hpdGU6ICNGRkY7XG4kaHVpLWJsYWNrOiAjMDAwO1xuJGh1aS1ibGFjay0tOTA6ICMxOTE5MTk7XG4kaHVpLWJsYWNrLS00MDogIzk5OTk5OTtcbiRodWktZ3JlZW46ICMxOUFGMzc7XG4kaHVpLWdyZWVuLS00MDogI0EzREZBRjtcbiRodWktZGFyay1ibHVlOiAjMDA1Rjk2O1xuXG4kaHVpLWJ1cmd1bmR5OiAjNjcxQzNFO1xuXG4kY3RhOiAkaHVpLWhpbHRpLXJlZDtcbiRwcmltYXJ5OiAkaHVpLXN0ZWVsO1xuJHNlY29uZGFyeTogJGh1aS1oZWF2eS1jb25jcmV0ZS0tMjA7XG4kc3VjY2VzczogIzE5QUYzNztcbiRkYW5nZXI6ICNGRjAwMDA7XG4kd2FybmluZzogI0ZGQUYwMDtcblxuJHRoZW1lLWNvbG9yczogKFxuICBcImN0YVwiOiAkY3RhLFxuICBcImhlYXZ5LWNvbmNyZXRlLS0xMFwiOiAkaHVpLWhlYXZ5LWNvbmNyZXRlLS0xMCxcbiAgXCJoZWF2eS1jb25jcmV0ZS0tMjBcIjogJGh1aS1oZWF2eS1jb25jcmV0ZS0tMjAsXG4pO1xuIl19 */\"","import { Component, Input, OnInit } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ConfigService } from 'app/service/config.service';\nimport { UnitHelper } from '../../common/unit.helper';\nimport * as models from '../../models/models';\nimport { CalculationsService } from '../calculations.service';\n\n@Component({\n selector: 'app-calculate',\n templateUrl: './calculate.component.html',\n styleUrls: ['./calculate.component.scss']\n})\nexport class CalculateComponent implements OnInit {\n private compositeCrossSectionDrawing = '';\n private beamGeometryDrawingStream = '';\n public calculateResult: models.Calculate.CalculationResult;\n private createCommand: models.Calculate.CreateCommand;\n public error = false;\n public errorNotStop = false;\n public pdfError = false;\n public showHtml: boolean;\n private connectorType: any;\n private totalLoadDeflection: any;\n private deflectionLimit: any;\n private errorLabels: any[] = [];\n private listOfNotes: string[] = [];\n private errorMessages: any[] = [];\n private errorMessagesNotStop: any[] = [];\n private errorLabelsNotStop: any[] = [];\n private zones: any[] = [];\n private connectionZones: string;\n public enableReportButton = true;\n public UnitHelper = UnitHelper;\n public showWatermark = false;\n public showConnectionDegree = true;\n public showLimConnectionDegree = false;\n public showMinConnectionDegree = false;\n public showUserConnectionDegree = false;\n public showScopeExtensionsWarningOnTop = false;\n public showScopeExtensionsWarningInZones = false;\n public showLtbCriterionWarning = false;\n\n @Input() private calculateInput: models.Calculate.CreateCommand;\n @Input() private connectorTypes: any[] = [];\n @Input() private totalLoadDeflections: any[] = [];\n @Input() private deflectionLimits: any[] = [];\n @Input() private designCode: number;\n @Input() private unitSystem: models.UnitSystem;\n @Input() private unitSystemId: number;\n @Input() private validationRanges: models.ErrorCodesTranslationValidationRanges;\n\n constructor(private configService: ConfigService, private service: CalculationsService, private translate: TranslateService) {\n this.showHtml = false;\n this.showWatermark = this.configService.config.beta;\n }\n\n ngOnInit() {\n this.error = false;\n }\n\n public updateErrors(errors: string[]) {\n if (errors == null || errors.length === 0) {\n errors = [];\n errors.push('cannot-calculate');\n }\n this.errorLabels = errors;\n console.log('Errors = ', errors);\n this.updateZones([]);\n this.updateConnectionZones('');\n this.error = true;\n this.pdfError = true;\n this.hidePanel();\n }\n\n public updateZones(zones: any[]) {\n this.zones = zones;\n }\n\n public updateConnectionZones(drawing: string) {\n this.connectionZones = drawing;\n }\n\n public updateCalculations(command: models.Calculate.CreateCommand, calculation: models.Calculate.CalculationResult): void {\n this.createCommand = command;\n this.calculateResult = calculation;\n this.errorLabels = [];\n this.errorMessages = [];\n this.errorLabelsNotStop = [];\n this.errorMessagesNotStop = [];\n this.showLimConnectionDegree = false;\n this.showMinConnectionDegree = false;\n this.showUserConnectionDegree = false;\n this.showConnectionDegree = true;\n this.showScopeExtensionsWarningInZones = false;\n this.showScopeExtensionsWarningOnTop = false;\n\n if (this.calculateResult.errorCodesNotStop.length > 0) {\n this.errorLabelsNotStop = this.calculateResult.errorCodesNotStop.map(item => 'error-code-' + item);\n this.errorMessagesNotStop = this.errorLabelsNotStop.map(item => this.translate.instant(item));\n this.errorNotStop = true;\n } else {\n this.errorNotStop = false;\n this.errorLabelsNotStop = [];\n }\n\n if (this.calculateResult.errorCodes.length > 0) {\n this.enableReportButton = false;\n this.errorLabels = this.calculateResult.errorCodes.map(item => 'error-code-' + item);\n this.errorMessages = this.errorLabels.map(item => this.translate.instant(item, this.validationRanges));\n // Calculations were successful but there was an error in generating report\n // We can display calculations\n this.pdfError = (this.errorLabels.length === 1 && (this.errorLabels[0] === 'error-code-998' ||\n this.errorLabels[0] === 'error-code-998'));\n this.error = true;\n if (this.error && this.pdfError) {\n this.showPanel();\n } else {\n this.hidePanel();\n }\n } else {\n this.error = false;\n this.pdfError = false;\n this.errorLabels = [];\n this.showPanel();\n\n if (command.generalInformation.scopeExtensions.extension1\n && command.generalInformation.scopeExtensions.extension2\n && calculation.shearConnectionResult.listOfNumberOfRows) {\n\n const listNumberOfRows = calculation.shearConnectionResult.listOfNumberOfRows.slice(1);\n this.showScopeExtensionsWarningInZones = listNumberOfRows.some(number => number === 1)\n && listNumberOfRows.some(number => number !== 1);\n\n this.showScopeExtensionsWarningOnTop = !this.showScopeExtensionsWarningInZones && (listNumberOfRows.every(number => number === 1)\n || (command.steelProfile.flangeThickness >= 0.006 && command.steelProfile.flangeThickness < 0.008));\n }\n }\n\n if (this.calculateResult.shearConnectionResult.limConnectionDegree > this.calculateResult.shearConnectionResult.connectionDegree) {\n this.showConnectionDegree = false;\n if (this.calculateInput.shearConnector.connectionDegreeValue === 0\n && this.calculateResult.shearConnectionResult.connectionDegree >= this.calculateResult.shearConnectionResult.minConnectionDegree) {\n this.showLimConnectionDegree = true;\n } else {\n if (this.createCommand.shearConnector.connectionDegreeValue === 2) {\n if (this.calculateResult.shearConnectionResult.connectionDegree < this.calculateResult.shearConnectionResult.minConnectionDegree\n && this.calculateResult.shearConnectionResult.connectionDegree < this.createCommand.shearConnector.userConnectionDegree) {\n this.showUserConnectionDegree = true;\n }\n if (this.calculateResult.shearConnectionResult.connectionDegree >= this.calculateResult.shearConnectionResult.minConnectionDegree\n && this.calculateResult.shearConnectionResult.connectionDegree < this.createCommand.shearConnector.userConnectionDegree) {\n this.showUserConnectionDegree = true;\n }\n } else {\n if (this.calculateResult.shearConnectionResult.minConnectionDegree >\n this.calculateResult.shearConnectionResult.connectionDegree) {\n this.showMinConnectionDegree = true;\n }\n }\n }\n }\n if (this.calculateInput.shearConnector) {\n this.connectorType = this.connectorTypes.filter(item =>\n item.value === +this.calculateInput.shearConnector.connectorTypeValue)[0];\n }\n if (this.calculateInput && this.calculateInput.deformations && this.calculateInput.deformations.compositeDeflectionLimit) {\n this.deflectionLimit = this.deflectionLimits.filter(item => item.value ===\n this.calculateInput.deformations.compositeDeflectionLimit)[0];\n }\n if (this.calculateInput && this.calculateInput.deformations && this.calculateInput.deformations.totalDeflectionLimit) {\n this.totalLoadDeflection = this.deflectionLimits.filter(item => item.value ===\n this.calculateInput.deformations.totalDeflectionLimit)[0];\n }\n if (this.calculateResult.listOfNotes) {\n this.listOfNotes = this.calculateResult.listOfNotes;\n }\n if (this.calculateInput.deformations.performLateralTorsionBucklingCheck) {\n this.showLtbCriterionWarning = true;\n } else {\n this.showLtbCriterionWarning = false;\n }\n }\n\n public totalDeflectionValid() {\n let valid = true;\n valid = this.calculateResult.finalStageResult && this.calculateResult.finalStageResult.totalDeflectionMax &&\n (this.calculateResult.finalStageResult.totalDeflectionMax * 1000) >\n ((this.calculateInput.beamGeometry.beamLength * 1000) / this.calculateInput.deformations.totalDeflectionLimit) ? false : true;\n return valid;\n }\n\n public totalDeflectionUnderLiveLoadsValid() {\n let valid = true;\n valid = this.calculateResult.finalStageResult && this.calculateResult.finalStageResult.liveLoadDeflectionMax &&\n (this.calculateResult.finalStageResult.liveLoadDeflectionMax * 1000) >\n ((this.calculateInput.beamGeometry.beamLength * 1000) / this.calculateInput.deformations.compositeDeflectionLimit) ? false : true;\n return valid;\n }\n\n public getGTLSSymbol(val1, label) {\n const minCalculationAssumption = 0.0001;\n // tslint:disable-next-line:no-eval\n const execVal1 = eval(val1);\n let execVal2 = 1;\n if (label && label.replace) {\n // tslint:disable-next-line:no-eval\n execVal2 = eval(label.replace('L', this.calculateInput.beamGeometry.beamLength * 1000));\n } else {\n // tslint:disable-next-line:no-eval\n execVal2 = eval(label);\n }\n\n if (execVal1 > execVal2 + minCalculationAssumption) {\n return '>';\n } else if (execVal1 + minCalculationAssumption < execVal2) {\n return '<';\n } else {\n return '=';\n }\n\n }\n\n public showPanel(): void {\n this.showHtml = true;\n }\n\n public hidePanel(): void {\n this.showHtml = false;\n }\n}\n","import { Injectable, OnInit } from '@angular/core';\nimport { ConfigService } from 'app/service/config.service';\nimport { environment } from 'environments/environment';\nimport { Observable } from 'rxjs';\nimport { HttpClient } from './../common/http-client';\nimport * as models from './../models/models';\nimport { UserService } from './../service/common/user.service';\n\n@Injectable()\nexport class CalculationsService implements OnInit {\n\n private _calculationsUrl = '';\n // Need to send length in meters and force in Newtons\n constructor(private configService: ConfigService, private _http: HttpClient, private user: UserService) {\n if (environment.localTesting) {\n this._calculationsUrl = `${this.configService.config.serviceUrl}calculations/`;\n } else {\n this._calculationsUrl = `${this.configService.config.serviceUrl}asws/common/shear_connector_calculation/v1/`;\n }\n }\n\n ngOnInit(): void {\n console.log('User Data = ', this.user);\n }\n\n\n /**\n * Do not change any thing this drawing is in milli meters and is set in the sub project\n * @param steelSectionDrawing\n */\n getSteelSectionDrawing(steelSectionDrawing: models.SteelSectionDrawing): Observable {\n return this._http\n .post(`${this._calculationsUrl}steelSectionDrawing`, steelSectionDrawing);\n }\n\n\n /**\n *\n * @param beamGeometryDrawing\n */\n getBeamGeometryDrawing(beamGeometryDrawing: models.BeamGeometryDrawing): Observable {\n return this._http\n .post(`${this._calculationsUrl}beamGeometryDrawing`, beamGeometryDrawing);\n }\n\n /**\n * Do not change any thing this drawing is in milli meters and is set in the sub project\n * @param compositeCrossSectionDrawing\n */\n getCompositeCrossSectionDrawing(compositeCrossSectionDrawing: models.CompositeCrossSectionDrawing): Observable {\n return this._http\n .post(`${this._calculationsUrl}compositeCrossSectionDrawing`, compositeCrossSectionDrawing);\n }\n\n getLWCDensity(value: number): Observable {\n return this._http\n .post(`${this._calculationsUrl}density`, { density: value });\n }\n\n /**\n * Do not change any thing this drawing is in milli meters and is set in the sub project\n * @param compositeBeamDrawing\n */\n getCompositeBeamDrawing(compositeBeamDrawing: models.CompositeBeamDrawing): Observable {\n return this._http\n .post(`${this._calculationsUrl}compositeBeamDrawing`, compositeBeamDrawing)\n }\n\n getConnectionZonesDrawing(connectionZonesDrawing: models.Calculate.ConnectionZonesDrawing): Observable {\n return this._http\n .post(`${this._calculationsUrl}connectionZonesDrawing`, connectionZonesDrawing);\n }\n\n /**\n * Do not change any thing this drawing is in milli meters and is set in the sub project\n * @param slabDrawing\n */\n getSlabDrawing1(slabDrawing: models.SlabDrawing): Observable {\n return this._http\n .post(`${this._calculationsUrl}slabDrawing1`, slabDrawing)\n }\n\n /**\n * Do not change any thing this drawing is in milli meters and is set in the sub project\n * @param slabDrawing\n */\n\n getSlabDrawing2(slabDrawing: models.SlabDrawing): Observable {\n return this._http\n .post(`${this._calculationsUrl}slabDrawing2`, slabDrawing);\n }\n\n getBeamLoadDrawing(beamLoadDrawing: models.BeamLoadDrawing): Observable {\n return this._http\n .post(`${this._calculationsUrl}beamLoadDrawing`, beamLoadDrawing)\n }\n\n /**\n * Do not change any thing this drawing is in milli meters and is set in the sub project\n * @param profiledSheetingDrawing\n */\n getProfiledSheetingDrawing(profiledSheetingDrawing: models.ProfiledSheetingDrawing): Observable {\n return this._http\n .post(`${this._calculationsUrl}profiledSheetingDrawing`, profiledSheetingDrawing);\n }\n\n getLoadDrawing(loadDrawing: models.LoadDrawing): Observable {\n return this._http\n .post(`${this._calculationsUrl}loadsDrawing`, loadDrawing);\n }\n\n getCalculationResults(subProject: models.Calculate.CreateCommand): Observable {\n return this._http\n .post(`${this._calculationsUrl}calculate`, subProject);\n }\n\n getdefaultCompositeLiveLoad(defaultCompositeLiveLoad: models.DefaultCompositeLiveLoad): Observable {\n return this._http\n .post(`${this._calculationsUrl}defaultCompositeLiveLoad`, defaultCompositeLiveLoad);\n }\n\n getCompositeSelfWeight(compositeSelfWeight: models.CompositeSelfWeight): Observable {\n return this._http\n .post(`${this._calculationsUrl}compositeSelfWeight`, compositeSelfWeight);\n }\n\n getReport(reportData: models.Calculate.CreateCommand): Observable {\n return this._http\n .post(`${this._calculationsUrl}report`, reportData);\n }\n\n getDxf(dxfDrawing: models.Calculate.DXFDrawing): Observable {\n return this._http\n .post(`${this._calculationsUrl}exportDxf`, dxfDrawing);\n }\n\n getBillOfMaterials(bomData: models.Calculate.BOMInput): Observable {\n return this._http\n .post(`${this._calculationsUrl}billOfMaterials`, bomData);\n }\n\n}\n","export const AppConstants = {\n RegistrationStateStorageKey: 'registrationState',\n RegistrationReturnUrl: 'registrationReturnUrl',\n RegistrationCallback: '/registration_callback',\n OauthCallBack: 'oauth_callback',\n ReturnUrl: 'return_url',\n authenticationStorageKey: 'authentication',\n LOCALE: 'locale',\n HVB_EULA: 'hvb_eula',\n HVB_PREVIOUS_USER: 'hvb_previous_user',\n HVB_PRIVACY_POLICY: 'hvb_privacy_policy',\n SHOW_COOKIE_INFO: 'show_cookie_info',\n DEFAULT_REFERENCE_URL: 'https://www.hilti.com.tr/medias/sys_master/documents/h4c/9154842722334/X-HVB_Specification_Binder_Technical_information_ASSET_DOC_4666585.pdf',\n DEFAULT_TECH_SPEC_EC: 'assets/references/HSCD - Technical specifications - DRV_HVB_MT_003_N.pdf',\n DEFAULT_TECH_SPEC_AISC: 'assets/references/HSCD - Technical specifications - DRV_HVB_MT_006_E.pdf',\n DEFAULT_TECH_SPEC_ASNZS: 'assets/references/HSCD - Technical specifications - DRV_HVB_MT_009_C.pdf',\n DEFAULT_LICENSE: 'assets/licenses/LICENSES.txt',\n PRIVACY_BASE_URL: 'assets/references/privacyPolicy/Privacy_Policy_${lang}.pdf',\n PRIVACY_MARKETING_URL: 'preferences?email:${email}&uid:${uid}&country:${country}&lang:${lang}',\n SUBPROCESSOR_LIST_URL: 'https://profis3-public-docs.hilti.com/P3HVB/AGR/SubprocessorList_en.pdf',\n DEFAULT_LOADCATEGORY_EU: 1,\n DEFAULT_LOADCATEGORY_US: 7,\n DEFAULT_LOADCATEGORY_ASNZS: 18,\n UNIT_SYSTEM_MI: 1,\n UNIT_SYSTEM_US: 2,\n UNIT_MM_ID: 1,\n UNIT_CM_ID: 2,\n UNIT_M_ID: 3,\n UNIT_KN_ID: 1,\n UNIT_daN_ID: 2,\n UNIT_N_ID: 3,\n UNIT_FT_ID: 4,\n UNIT_KIP_ID: 4,\n UNIT_LBF_ID: 5,\n UNIT_MM_STR: 'mm',\n UNIT_CM_STR: 'cm',\n UNIT_M_STR: 'm',\n UNIT_KN_STR: 'kN',\n UNIT_daN_STR: 'daN',\n UNIT_N_STR: 'N',\n UNIT_FT_STR: 'ft',\n UNIT_IN_STR: 'in',\n UNIT_LBF_STR: 'lbf',\n UNIT_KIP_STR: 'kip',\n UNIT_KG_M_STR: 'kg/㎥',\n UNIT_LB_FT_STR: 'lb/ft',\n UNIT_MPA_STR: 'MPa',\n UNIT_PSI_STR: 'psi',\n UNIT_KSI_STR: 'ksi',\n APPLICATION_ID: '0DC6BD51-4D46-4857-A2A4-8149B9174618',\n E_TAG: '1.0.0.0'\n}\n","import { Injectable } from '@angular/core';\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponseBase } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport { AuthService } from 'app/service/common/auth.service';\nimport { StateGenerator } from './../common/StateGenerator';\nimport { AppStorageService } from 'app/service/util/app-storage.service';\nimport { AppConstants } from './AppConstants';\n\n@Injectable()\nexport class Interceptor implements HttpInterceptor {\n\n\tconstructor(\n\t\tprivate authService: AuthService,\n\t\tprivate appStorageService: AppStorageService) {\n\t}\n\n\tintercept(req: HttpRequest, next: HttpHandler): Observable> {\n\t\treturn next.handle(req)\n\t\t\t.pipe(\n\t\t\t\tcatchError(async error => {\n\t\t\t\t\tawait this.handleError(req, error);\n\t\t\t\t\tthrow error;\n\t\t\t\t})\n\t\t\t);\n\t}\n\n\tprivate async handleError(req: HttpRequest, error: unknown) {\n\t\tconst httpResponse = error instanceof HttpResponseBase ? error : undefined;\n\n\t\tif (httpResponse != null && httpResponse.status === 401) {\n\t\t\tlocation.assign(this.getAuthURL());\n\t\t}\n\t}\n\n\tprivate getAuthURL(): string {\n\t\tconst state = StateGenerator.generateState();\n\n\t\tconst locale = this.appStorageService.get(AppConstants.LOCALE);\n\t\tconst authURL = this.authService.getAuthorizeUrl(locale.toString(), state);\n\t\treturn authURL;\n\t}\n}\n","export class StateGenerator {\n public static generateState() {\n const chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\n const length = 5;\n let result = '';\n for (let i = length; i > 0; --i) {\n result += chars[Math.round(Math.random() * (chars.length - 1))];\n }\n return result;\n }\n}\n","import { FormGroup } from '@angular/forms';\n\n// Generic validator for Reactive forms\n// Implemented as a class, not a service, so it can retain state for multiple forms.\nexport class GenericValidator {\n\n // Provide the set of valid validation messages\n // Stucture:\n // controlName1: {\n // validationRuleName1: 'Validation Message.',\n // validationRuleName2: 'Validation Message.'\n // },\n // controlName2: {\n // validationRuleName1: 'Validation Message.',\n // validationRuleName2: 'Validation Message.'\n // }\n constructor(private validationMessages: { [key: string]: { [key: string]: string } }) {\n\n }\n\n // Processes each control within a FormGroup\n // And returns a set of validation messages to display\n // Structure\n // controlName1: 'Validation Message.',\n // controlName2: 'Validation Message.'\n processMessages(container: FormGroup): { [key: string]: string } {\n const messages = {};\n for (const controlKey in container.controls) {\n if (container.controls.hasOwnProperty(controlKey)) {\n const c = container.controls[controlKey];\n // If it is a FormGroup, process its child controls.\n if (c instanceof FormGroup) {\n const childMessages = this.processMessages(c);\n Object.assign(messages, childMessages);\n } else {\n // Only validate if there are validation messages for the control\n if (this.validationMessages[controlKey]) {\n messages[controlKey] = '';\n if ((c.dirty || c.touched) && c.errors) {\n Object.keys(c.errors).map(messageKey => {\n if (this.validationMessages[controlKey][messageKey]) {\n messages[controlKey] += this.validationMessages[controlKey][messageKey] + ' ';\n }\n });\n }\n }\n }\n }\n }\n return messages;\n }\n}\n","import { HttpClient as AngularHttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { environment } from 'environments/environment';\nimport { Observable } from 'rxjs';\nimport { UserService } from './../service/common/user.service';\n\n@Injectable()\nexport class HttpClient {\n\n constructor(private http: AngularHttpClient, private userService: UserService) { }\n\n createAuthorizationHeader(headers: HttpHeaders) {\n if (this.userService.authentication && this.userService.authentication.accessToken) {\n headers = headers.append('Authorization', `Bearer ${this.userService.authentication.accessToken}`);\n if (environment.localTesting) {\n headers = headers.append('HC-UID', this.userService.authentication.userId);\n headers = headers.append('HC-User', this.userService.authentication.userName);\n headers = headers.append('HC-CustomerID', this.userService.authentication.company);\n headers = headers.append('HC-CustomerOriginID', this.userService.authentication.company);\n headers = headers.append('HC-Country', 'US');\n headers = headers.append('Access-Control-Allow-Origin', '*');\n headers = headers.append('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept');\n }\n }\n headers = headers.append('content-type', 'application/json');\n return headers;\n }\n\n public get(url, params?: HttpParams, authorizationRequired = true): Observable {\n let headers = new HttpHeaders();\n // IE 11 issue with caching\n if (/MSIE 9/i.test(navigator.userAgent) || /MSIE 10/i.test(navigator.userAgent) || /rv:11.0/i.test(navigator.userAgent)) {\n if (!params) {\n params = new HttpParams();\n }\n params = params.append('d', new Date().getTime().toString());\n }\n\n if (authorizationRequired) {\n headers = this.createAuthorizationHeader(headers);\n }\n const requestOption = Object.assign({}, { params: params }, { headers: headers });\n return this.http.get(url, requestOption);\n }\n\n public post(url, data, optionalHeaders?: HttpHeaders): Observable {\n let headers = new HttpHeaders();\n headers = this.createAuthorizationHeader(headers);\n if (optionalHeaders) {\n optionalHeaders.keys().forEach(item => {\n headers = headers.delete(item);\n if (item !== 'content-type') {\n headers = headers.append(item, optionalHeaders.get(item));\n }\n });\n }\n const requestOption = Object.assign({}, optionalHeaders, { headers: headers });\n return this.http.post(url, data, requestOption);\n }\n public put(url, data): Observable {\n let headers = new HttpHeaders();\n headers = this.createAuthorizationHeader(headers);\n return this.http.put(url, data, {\n headers: headers\n });\n }\n public delete(url) {\n let headers = new HttpHeaders();\n headers = this.createAuthorizationHeader(headers);\n return this.http.delete(url, {\n headers: headers\n });\n }\n}\n","import { HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { ClassProvider } from '@angular/core';\nimport { Interceptor } from './AuthInterceptor';\n\n\nexport const httpInterceptorProviders: ClassProvider[] = [\n { provide: HTTP_INTERCEPTORS, useClass: Interceptor, multi: true }\n];\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Pipe({ name: 'safe' })\nexport class SafePipe implements PipeTransform {\n constructor(private sanitizer: DomSanitizer) { }\n\n transform(url) {\n return this.sanitizer.bypassSecurityTrustResourceUrl(url);\n }\n}\n","import { AppConstants } from './AppConstants';\nimport * as models from '../models/models';\nimport { Injectable } from '@angular/core';\n\n@Injectable()\nexport class UnitHelper {\n\n public static getDbToDisplayForceFactor(loadUnit: number): number {\n switch (loadUnit) {\n case AppConstants.UNIT_KN_ID:\n return 1;\n case AppConstants.UNIT_daN_ID:\n return 10;\n case AppConstants.UNIT_N_ID:\n return 1000;\n case AppConstants.UNIT_LBF_ID:\n return 1000;\n case AppConstants.UNIT_KIP_ID:\n return 1;\n default:\n return 1;\n }\n }\n\n public static getDisplayToDbForceFactor(loadUnit: number): number {\n switch (loadUnit) {\n case AppConstants.UNIT_KN_ID:\n return 1;\n case AppConstants.UNIT_daN_ID:\n return 0.01;\n case AppConstants.UNIT_N_ID:\n return 0.001;\n case AppConstants.UNIT_LBF_ID:\n return 0.001;\n case AppConstants.UNIT_KIP_ID:\n return 1;\n default:\n return 1;\n }\n }\n\n private static getDisplayFromApiForceFactor(loadUnit: number): number {\n switch (loadUnit) {\n case AppConstants.UNIT_KN_ID:\n return 0.001;\n case AppConstants.UNIT_daN_ID:\n return 0.1;\n case AppConstants.UNIT_N_ID:\n return 1;\n case AppConstants.UNIT_LBF_ID:\n return 12 ** 2;\n case AppConstants.UNIT_KIP_ID:\n return 0.144;\n default:\n return 1;\n }\n }\n\n private static getApiFromDisplayForceFactor(loadUnit: number): number {\n switch (loadUnit) {\n case AppConstants.UNIT_KN_ID:\n return 1000;\n case AppConstants.UNIT_daN_ID:\n return 10;\n case AppConstants.UNIT_N_ID:\n return 1;\n case AppConstants.UNIT_LBF_ID:\n return 1 / 12 ** 2;\n case AppConstants.UNIT_KIP_ID:\n return 6.9444444;\n default:\n return 1;\n }\n }\n\n private static getApiFromPointLoad(loadUnit: number): number {\n switch (loadUnit) {\n case AppConstants.UNIT_KN_ID:\n return 1000;\n case AppConstants.UNIT_daN_ID:\n return 10;\n case AppConstants.UNIT_N_ID:\n return 1;\n case AppConstants.UNIT_LBF_ID:\n return 1;\n case AppConstants.UNIT_KIP_ID:\n return 1000;\n default:\n return 1;\n }\n }\n\n private static getApiFromLoadsForce(loadUnit: number): number {\n switch (loadUnit) {\n case AppConstants.UNIT_KN_ID:\n return 1000;\n case AppConstants.UNIT_daN_ID:\n return 10;\n case AppConstants.UNIT_N_ID:\n return 1;\n case AppConstants.UNIT_LBF_ID:\n return 1 / 12;\n case AppConstants.UNIT_KIP_ID:\n return 83.34444;\n default:\n return 1;\n }\n }\n\n public static roundLoadFromApi = (num, loadUnit: number): number => {\n num = (num * UnitHelper.getDisplayFromApiForceFactor(loadUnit));\n return Math.round(num * 100000) / 100000; // Javascript rounding fix - Upto 5 decimal points\n }\n\n public static roundLoadToApi = (num, loadUnit: number): number => {\n num = (num * UnitHelper.getApiFromDisplayForceFactor(loadUnit));\n return Math.round(num * 100000) / 100000; // Javascript rounding fix - Upto 4 decimal points\n }\n\n public static roundPatchLoad = (num, loadUnit: number): number => {\n num = (num * UnitHelper.getApiFromLoadsForce(loadUnit));\n return Math.round(num * 100000) / 100000;\n }\n public static roundPointLoad = (num, loadunit: number): number => {\n num = (num * UnitHelper.getApiFromPointLoad(loadunit));\n return Math.round(num * 100000) / 100000;\n }\n\n public static roundLoadFromDisplay = (num, loadUnit: number): number => {\n num = (num * UnitHelper.getDisplayFromApiForceFactor(loadUnit));\n return Math.round(num * 100000) / 100000; // Javascript rounding fix - Upto 4 decimal points\n }\n\n public static roundLoadToDb = (num, loadUnit: number): number => {\n num = num * UnitHelper.getDisplayToDbForceFactor(loadUnit);\n return Math.round(num * 100000) / 100000; // Javascript rounding fix - Upto 5 decimal points\n }\n\n /**\n * Converts length in specified unit\n * @param num - length which will be converted\n * @param unit - destination unit system (1: Metric Unit system, 2: US customary)\n * @param sourceUnit - Current unit for 'num'\n * @param destination - for metric only, describes output unit mm or meters.\n */\n public static roundToUniverseLength = (num, unit: number, sourceUnit = undefined, destination: 'mm' | 'm' = 'm'): number => {\n if (sourceUnit !== undefined) {\n if (unit === 2 && sourceUnit === 1) {\n return Math.round(UnitHelper.convertMMToInch(num) * 100000) / 100000;\n }\n }\n if (destination === 'm') {\n num = unit === AppConstants.UNIT_SYSTEM_MI ? num / 1000 : num;\n }\n return Math.round(num * 100000) / 100000; // Javascript rounding fix - Upto 5 decimal points\n }\n\n public static getDensity(num, unit: number) {\n return unit === AppConstants.UNIT_SYSTEM_MI ? num : num / Math.pow(12, 3);\n }\n\n public static getConcreteStrength(num, unit: number) {\n if (unit === AppConstants.UNIT_SYSTEM_MI) {\n return num * 1000000;\n } else {\n return num;\n }\n }\n\n public static roundToNonUniverseLength = (num, unit: number): number => {\n num = unit === AppConstants.UNIT_SYSTEM_MI ? num * 1000 : num * 12;\n return Math.round(num * 100000) / 100000; // Javascript rounding fix - Upto 5 decimal points\n }\n\n public static roundYieldStrengthFromMpa = (num): number => {\n return num * 1000000; // Multiply by 10 power 6 to convert from Mpa to Pa\n }\n\n public static getYieldStrength(num, unitSystem, sourceUnitSystem) {\n if (sourceUnitSystem === unitSystem) {\n return unitSystem === AppConstants.UNIT_SYSTEM_MI ? UnitHelper.roundYieldStrengthFromMpa(num) : num * 1000;\n } else {\n if (sourceUnitSystem === AppConstants.UNIT_SYSTEM_MI && unitSystem === AppConstants.UNIT_SYSTEM_US) {\n return UnitHelper.convertMpaToKsi(num) * 1000;\n }\n if (sourceUnitSystem === AppConstants.UNIT_SYSTEM_US && unitSystem === AppConstants.UNIT_SYSTEM_MI) {\n return UnitHelper.convertKsiToMpa(num);\n }\n }\n }\n\n private static getForceUnitTitle = (loadUnit: number): string => {\n switch (loadUnit) {\n case AppConstants.UNIT_KN_ID:\n return AppConstants.UNIT_KN_STR;\n case AppConstants.UNIT_daN_ID:\n return AppConstants.UNIT_daN_STR;\n case AppConstants.UNIT_N_ID:\n return AppConstants.UNIT_N_STR;\n case AppConstants.UNIT_LBF_ID:\n return AppConstants.UNIT_LBF_STR;\n case AppConstants.UNIT_KIP_ID:\n return AppConstants.UNIT_KIP_STR;\n default:\n return AppConstants.UNIT_KN_STR;\n }\n }\n\n public static lbfft2TolbfInch2(num) {\n return num / (12 ** 2);\n }\n\n public static getStressValue(num: number, unitSystem: number, sourceUnitSystem) {\n if (sourceUnitSystem === unitSystem) {\n return unitSystem === AppConstants.UNIT_SYSTEM_MI ? num : this.lbfft2TolbfInch2(num);\n } else if (sourceUnitSystem === AppConstants.UNIT_SYSTEM_MI && unitSystem === AppConstants.UNIT_SYSTEM_US) {\n return num * 0.0014223369;\n } else if (sourceUnitSystem === AppConstants.UNIT_SYSTEM_US && unitSystem === AppConstants.UNIT_SYSTEM_MI) {\n return UnitHelper.convertPsfToKgm2(num);\n }\n }\n\n public static getReportLengthValue(num: number, unitSystemId: number, fractionDigits = 3) {\n if (unitSystemId === 1) {\n return (num.toFixed(fractionDigits)) * 1000;\n } else {\n return num.toFixed(fractionDigits);\n }\n }\n\n private static getLengthUnitTitle = (lengthUnit: number): string => {\n switch (lengthUnit) {\n case AppConstants.UNIT_M_ID:\n return AppConstants.UNIT_M_STR;\n case AppConstants.UNIT_CM_ID:\n return AppConstants.UNIT_CM_STR;\n case AppConstants.UNIT_MM_ID:\n return AppConstants.UNIT_MM_STR;\n case AppConstants.UNIT_FT_ID:\n return AppConstants.UNIT_FT_STR;\n default:\n return AppConstants.UNIT_M_STR;\n }\n }\n\n private static getDimensionUnitTitle = (unit: number): string => {\n switch (unit) {\n case AppConstants.UNIT_SYSTEM_MI:\n return AppConstants.UNIT_MM_STR;\n case AppConstants.UNIT_SYSTEM_US:\n return AppConstants.UNIT_IN_STR;\n default:\n return AppConstants.UNIT_MM_STR;\n }\n }\n\n private static getDensityUnitTitle = (unit: number): string => {\n switch (unit) {\n case AppConstants.UNIT_SYSTEM_MI:\n return AppConstants.UNIT_KG_M_STR;\n case AppConstants.UNIT_SYSTEM_US:\n return AppConstants.UNIT_LB_FT_STR;\n default:\n return AppConstants.UNIT_KG_M_STR;\n }\n }\n\n private static getStressUnitTitle = (unit: number): string => {\n switch (unit) {\n case AppConstants.UNIT_SYSTEM_MI:\n return AppConstants.UNIT_MPA_STR;\n case AppConstants.UNIT_SYSTEM_US:\n return AppConstants.UNIT_PSI_STR;\n default:\n return AppConstants.UNIT_MPA_STR;\n }\n }\n\n private static getStressUnitForMaterialsTitle = (unit: number): string => {\n switch (unit) {\n case AppConstants.UNIT_SYSTEM_MI:\n return AppConstants.UNIT_MPA_STR;\n case AppConstants.UNIT_SYSTEM_US:\n return AppConstants.UNIT_KSI_STR;\n default:\n return AppConstants.UNIT_MPA_STR;\n }\n }\n\n public static getUnitSystem = (unit: number, loadUnit: number, lengthUnit: number): models.UnitSystem => {\n return {\n 'lengthUnitTitle': UnitHelper.getLengthUnitTitle(lengthUnit),\n 'forceUnitTitle': UnitHelper.getForceUnitTitle(loadUnit),\n 'dimensionUnitTitle': UnitHelper.getDimensionUnitTitle(unit),\n 'densityUnitTitle': UnitHelper.getDensityUnitTitle(unit),\n 'stressUnitTitle': UnitHelper.getStressUnitTitle(unit),\n 'surfaceWeightUnitTitle': UnitHelper.getDensityUnitTitle(unit),\n 'stressUnitForMaterialsTitle': UnitHelper.getStressUnitForMaterialsTitle(unit)\n };\n }\n\n public static convertMMToInch(value: number) {\n const num = value * 0.0393701;\n return Math.round(num * 100000) / 100000; // Javascript rounding fix - Upto 5 decimal points\n }\n public static convertInchToMm(value: number) {\n const num = value * 25.4;\n return Math.round(num * 100000) / 100000;\n }\n\n public static ftToInches(value: number) {\n const num = value * 12;\n return Math.round(num * 100000) / 100000;\n }\n\n public static convertKgM2ToLbFt2(value: number): number {\n return value * 0.20482;\n }\n\n public static convertMpaToKsi(value: number): number {\n return value * 0.1450377;\n }\n\n private static convertKsiToMpa(num: number) {\n return num * 6.89476;\n }\n\n public static convertPsfToKgm2(num: number) {\n return num * 4.8824276270581;\n }\n}\n","import * as models from '../models/models';\n\nexport class Guid {\n public static newGuid() {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n const r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);\n return v.toString(16);\n });\n }\n}\n\nexport class NationalAnnexSortingHelper {\n public static getSortedNationalAnnexes(nationalAnnexes: models.NationalAnnex[], designCode: number) {\n return nationalAnnexes.filter(c => c.designCodeId === designCode).sort((a, b) => {\n if (a.label === 'None') {\n return -1;\n }\n if (b.label === 'None') {\n return -1;\n }\n if (a.label === b.label){\n return 0;\n }\n if (a.label > b.label) {\n return 1;\n }\n if (a.label < b.label) {\n return -1;\n }\n });\n }\n}\n","export default \".watermark {\\n position: absolute;\\n z-index: 100;\\n font-size: 45px;\\n transform: rotate(-47deg) translate(-200px, 500%);\\n color: lightgrey; }\\n\\n.eula-header {\\n font-family: 'HiltiSmallBold';\\n text-align: center !important; }\\n\\np.left-margin {\\n margin-left: 10px; }\\n\\n.dropdown-wrapper {\\n margin-bottom: 15px;\\n display: inline-flex;\\n justify-content: space-between;\\n width: 100%; }\\n\\n.eula-select {\\n font-size: 1em;\\n margin-top: 5px;\\n width: 150px; }\\n\\n.w-40 {\\n width: 40%; }\\n\\n/deep/ .k-list .k-item.k-state-selected {\\n background-color: #D2051E; }\\n\\n/deep/ .k-textbox::-moz-selection, .k-input::-moz-selection, .k-textarea::-moz-selection {\\n background-color: #D2051E; }\\n\\n/deep/ .k-textbox::selection, .k-input::selection, .k-textarea::selection {\\n background-color: #D2051E; }\\n\\n/deep/ .k-widget ::-moz-selection, .k-block ::-moz-selection {\\n background-color: #D2051E; }\\n\\n/deep/ .k-widget ::selection, .k-block ::selection {\\n background-color: #D2051E; }\\n\\n/deep/ .k-textbox::-moz-selection, .k-input::-moz-selection, .k-textarea::-moz-selection {\\n background-color: #D2051E; }\\n\\n/deep/ .k-textbox::selection, .k-input::selection, .k-textarea::selection {\\n background-color: #D2051E; }\\n\\n/deep/ .k-widget ::-moz-selection, .k-block ::-moz-selection {\\n background-color: #D2051E; }\\n\\n/deep/ .k-widget ::selection, .k-block ::selection {\\n background-color: #D2051E; }\\n\\n/deep/ .k-textbox::-moz-selection, .k-input::-moz-selection, .k-textarea::-moz-selection {\\n background-color: #D2051E; }\\n\\n/deep/ .k-textbox::selection, .k-input::selection, .k-textarea::selection {\\n background-color: #D2051E; }\\n\\n/deep/ .k-widget ::-moz-selection, .k-block ::-moz-selection {\\n background-color: #D2051E; }\\n\\n/deep/ .k-widget ::selection, .k-block ::selection {\\n background-color: #D2051E; }\\n\\n/deep/ .k-textbox::-moz-selection, .k-input::-moz-selection, .k-textarea::-moz-selection {\\n background-color: #D2051E; }\\n\\n/deep/ .k-textbox::selection, .k-input::selection, .k-textarea::selection {\\n background-color: #D2051E; }\\n\\n/deep/ .k-widget ::-moz-selection, .k-block ::-moz-selection {\\n background-color: #D2051E; }\\n\\n/deep/ .k-widget ::selection, .k-block ::selection {\\n background-color: #D2051E; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9idWlsZHMvYnUtZi1wcy9zaGVhci1jb25uZWN0b3IvZGVwbG95L2NvZGUvaHZiLXdlYi9odmItYXBwL3NyYy9hcHAvZXVsYS9ldWxhLmNvbXBvbmVudC5zY3NzIiwiL2J1aWxkcy9idS1mLXBzL3NoZWFyLWNvbm5lY3Rvci9kZXBsb3kvY29kZS9odmItd2ViL2h2Yi1hcHAvbm9kZV9tb2R1bGVzL2hpbHRpLXVpLWxpYnJhcnkvYXNzZXRzL3Nhc3MvX2h1aS1jb2xvcnMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFVQTtFQUNJLG1CQUFrQjtFQUNsQixhQUFZO0VBQ1osZ0JBQWU7RUFOVCxrREFPbUQ7RUFDekQsaUJBQWUsRUFDbEI7O0FBRUQ7RUFDSSw4QkFBNkI7RUFDN0IsOEJBQTRCLEVBQy9COztBQUVEO0VBQ0ksa0JBQWlCLEVBQ3BCOztBQUVEO0VBQ0ksb0JBQW1CO0VBQ25CLHFCQUFvQjtFQUNwQiwrQkFBOEI7RUFDOUIsWUFBVyxFQUNkOztBQUVEO0VBQ0ksZUFBYztFQUNkLGdCQUFlO0VBQ2YsYUFBWSxFQUNmOztBQUNEO0VBQ0UsV0FBVSxFQUNYOztBQUVEO0VBQ0ksMEJDMUNtQixFRDJDdEI7O0FBRUQ7RUFDSSwwQkM5Q21CLEVEK0N0Qjs7QUFGRDtFQUNJLDBCQzlDbUIsRUQrQ3RCOztBQUVEO0VBQ0ksMEJDbERtQixFRG1EdEI7O0FBRkQ7RUFDSSwwQkNsRG1CLEVEbUR0Qjs7QUFFRDtFQUNJLDBCQ3REbUIsRUR1RHRCOztBQUZEO0VBQ0ksMEJDdERtQixFRHVEdEI7O0FBQ0Q7RUFDSSwwQkN6RG1CLEVEMER0Qjs7QUFGRDtFQUNJLDBCQ3pEbUIsRUQwRHRCOztBQUVEO0VBQ0ksMEJDN0RtQixFRDhEdEI7O0FBRkQ7RUFDSSwwQkM3RG1CLEVEOER0Qjs7QUFFRDtFQUNJLDBCQ2pFbUIsRURrRXRCOztBQUZEO0VBQ0ksMEJDakVtQixFRGtFdEI7O0FBRUQ7RUFDSSwwQkNyRW1CLEVEc0V0Qjs7QUFGRDtFQUNJLDBCQ3JFbUIsRURzRXRCOztBQUVEO0VBQ0ksMEJDekVtQixFRDBFdEI7O0FBRkQ7RUFDSSwwQkN6RW1CLEVEMEV0QiIsImZpbGUiOiJzcmMvYXBwL2V1bGEvZXVsYS5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIkBpbXBvcnQgJy4uLy4uLy4uL3NyYy9fdmFyaWFibGVzLnNjc3MnO1xuXG5AbWl4aW4gdHJhbnNmb3JtKCR0cmFuc2Zvcm1zKSB7XG5cdCAgIC1tb3otdHJhbnNmb3JtOiAkdHJhbnNmb3Jtcztcblx0ICAgICAtby10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuXHQgICAgLW1zLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG5cdC13ZWJraXQtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgICAgICB0cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xufVxuXG4ud2F0ZXJtYXJrIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogMTAwO1xuICAgIGZvbnQtc2l6ZTogNDVweDtcbiAgICBAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlKC00N2RlZykgdHJhbnNsYXRlKC0yMDBweCwgNTAwJSkpO1xuICAgIGNvbG9yOmxpZ2h0Z3JleTtcbn1cblxuLmV1bGEtaGVhZGVyIHtcbiAgICBmb250LWZhbWlseTogJ0hpbHRpU21hbGxCb2xkJztcbiAgICB0ZXh0LWFsaWduOmNlbnRlciAhaW1wb3J0YW50O1xufVxuXG5wLmxlZnQtbWFyZ2luIHtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbn1cblxuLmRyb3Bkb3duLXdyYXBwZXIge1xuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4uZXVsYS1zZWxlY3Qge1xuICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgIG1hcmdpbi10b3A6IDVweDtcbiAgICB3aWR0aDogMTUwcHg7XG59XG4udy00MCB7XG4gIHdpZHRoOiA0MCU7XG59XG5cbi9kZWVwLyAuay1saXN0IC5rLWl0ZW0uay1zdGF0ZS1zZWxlY3RlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGhpbHRpLXJlZDtcbn1cblxuL2RlZXAvIC5rLXRleHRib3g6OnNlbGVjdGlvbiwgLmstaW5wdXQ6OnNlbGVjdGlvbiwgLmstdGV4dGFyZWE6OnNlbGVjdGlvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGhpbHRpLXJlZDtcbn1cblxuL2RlZXAvIC5rLXdpZGdldCA6OnNlbGVjdGlvbiwgLmstYmxvY2sgOjpzZWxlY3Rpb24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRoaWx0aS1yZWQ7XG59XG5cbi9kZWVwLyAuay10ZXh0Ym94OjpzZWxlY3Rpb24sIC5rLWlucHV0OjpzZWxlY3Rpb24sIC5rLXRleHRhcmVhOjpzZWxlY3Rpb24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRoaWx0aS1yZWQ7XG59XG4vZGVlcC8gLmstd2lkZ2V0IDo6c2VsZWN0aW9uLCAuay1ibG9jayA6OnNlbGVjdGlvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGhpbHRpLXJlZDtcbn1cblxuL2RlZXAvIC5rLXRleHRib3g6OnNlbGVjdGlvbiwgLmstaW5wdXQ6OnNlbGVjdGlvbiwgLmstdGV4dGFyZWE6OnNlbGVjdGlvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGhpbHRpLXJlZDtcbn1cblxuL2RlZXAvIC5rLXdpZGdldCA6OnNlbGVjdGlvbiwgLmstYmxvY2sgOjpzZWxlY3Rpb24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRoaWx0aS1yZWQ7XG59XG5cbi9kZWVwLyAuay10ZXh0Ym94OjpzZWxlY3Rpb24sIC5rLWlucHV0OjpzZWxlY3Rpb24sIC5rLXRleHRhcmVhOjpzZWxlY3Rpb24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRoaWx0aS1yZWQ7XG59XG5cbi9kZWVwLyAuay13aWRnZXQgOjpzZWxlY3Rpb24sIC5rLWJsb2NrIDo6c2VsZWN0aW9uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaGlsdGktcmVkO1xufVxuIiwiLy9Db2xvcnNcbi8vVE9ETzogcmVtb3ZlIHByZWZpeCBodWkgaW4gY29sb3JzIHZhcmlhYmxlXG4kaHVpLWhpbHRpLXJlZDogI0QyMDUxRTtcbiRodWktZGFyay1yZWQ6ICNBQjAxMTU7XG4kaHVpLWVycm9yLXJlZDogI0ZGMDAwMDtcbiRodWktaGVhdnktY29uY3JldGUtLTEwOiAjRjNGMkYwO1xuJGh1aS1oZWF2eS1jb25jcmV0ZS0tMjA6ICNFN0U1RTI7XG4kaHVpLWhlYXZ5LWNvbmNyZXRlLS0zMDogI0RCRDhEMztcbiRodWktaGVhdnktY29uY3JldGUtLTQwOiAjQ0ZDQ0M1O1xuJGh1aS1oZWF2eS1jb25jcmV0ZS0tNjA6ICNCN0IzQUE7XG4kaHVpLWhlYXZ5LWNvbmNyZXRlLS04MDogI0EwOTk4QjtcbiRodWktc3RlZWw6ICM1MjRGNTM7XG4kaHVpLXN0ZWVsLS0yMDogI0RERENERDtcbiRodWktc3RlZWwtLTQwOiAjQkFCOUJBO1xuJGh1aS1zdGVlbC0tNjA6ICM5Nzk1OTg7XG4kaHVpLXN0ZWVsLS04MDogIzc1NzI3NTtcbiRodWktd2hpdGU6ICNGRkY7XG4kaHVpLWJsYWNrOiAjMDAwO1xuJGh1aS1ibGFjay0tOTA6ICMxOTE5MTk7XG4kaHVpLWJsYWNrLS00MDogIzk5OTk5OTtcbiRodWktZ3JlZW46ICMxOUFGMzc7XG4kaHVpLWdyZWVuLS00MDogI0EzREZBRjtcbiRodWktZGFyay1ibHVlOiAjMDA1Rjk2O1xuXG4kaHVpLWJ1cmd1bmR5OiAjNjcxQzNFO1xuXG4kY3RhOiAkaHVpLWhpbHRpLXJlZDtcbiRwcmltYXJ5OiAkaHVpLXN0ZWVsO1xuJHNlY29uZGFyeTogJGh1aS1oZWF2eS1jb25jcmV0ZS0tMjA7XG4kc3VjY2VzczogIzE5QUYzNztcbiRkYW5nZXI6ICNGRjAwMDA7XG4kd2FybmluZzogI0ZGQUYwMDtcblxuJHRoZW1lLWNvbG9yczogKFxuICBcImN0YVwiOiAkY3RhLFxuICBcImhlYXZ5LWNvbmNyZXRlLS0xMFwiOiAkaHVpLWhlYXZ5LWNvbmNyZXRlLS0xMCxcbiAgXCJoZWF2eS1jb25jcmV0ZS0tMjBcIjogJGh1aS1oZWF2eS1jb25jcmV0ZS0tMjAsXG4pO1xuIl19 */\"","\nimport { SharedService } from './../service/common/shared.service';\nimport { Component, OnInit } from '@angular/core';\nimport { EulaService } from './eula.service';\nimport { SettingsService } from '../settings/settings.service';\nimport { SessionStorageService } from '../service/util/session-storage.service';\nimport { AppConstants } from '../common/AppConstants';\nimport { Language, Settings } from '../models/models';\nimport { ApplicationOptionsService } from '../service/common/application-options.service';\nimport { UserService } from 'app/service/common/user.service';\nimport { SettingsComponent } from '../settings/settings.component';\nimport * as _ from 'lodash';\n\n@Component({\n // tslint:disable-next-line:component-selector\n selector: 'eula',\n templateUrl: './eula.component.html',\n styleUrls: ['./eula.component.scss']\n})\nexport class EulaComponent implements OnInit {\n public eulaText: string;\n public selectedEulaLanguage: { culture, value, label };\n public selectedCountry: string;\n public countries: string[];\n public eulaLanguages: Map;\n public settings: Settings;\n public uiLanguages: Language[];\n public selectedUiLanguage: Language;\n public currentUiLanguage: Language;\n\n constructor(private sharedService: SharedService,\n private eulaService: EulaService,\n private settingsService: SettingsService,\n private applicationOptionsService: ApplicationOptionsService,\n public sessionStorageService: SessionStorageService,\n private userService: UserService\n ) {\n this.eulaText = '';\n }\n\n async ngOnInit() {\n this.eulaLanguages = this.sharedService.getSupportedLocales();\n\n this.countries = Array.from(this.eulaLanguages.keys());\n\n if(!this.applicationOptionsService.initialized){\n await this.applicationOptionsService.initialize();\n }\n\n this.initializeData();\n }\n\n initializeData() {\n const languagesOptions = this.applicationOptionsService.options.languages;\n this.uiLanguages = _.sortBy(languagesOptions, [function (o) { return o.label; }]);\n\n this.settingsService.getSettings().subscribe(settings => {\n if (settings) {\n this.setDefualtCountry(settings);\n this.setDefaultUiLanguage(settings);\n } else {\n this.sharedService.$settings.subscribe(settings => {\n if (settings) {\n this.setDefualtCountry(settings);\n this.setDefaultUiLanguage(settings);\n }\n });\n }\n });\n }\n\n setDefualtCountry(settings) {\n const countryOfResidence = this.userService.getAuthentication().countryOfResidence;\n this.settings = settings;\n if (countryOfResidence) {\n let country = 'none';\n this.eulaLanguages.forEach((item, key) => {\n if (item[0].isoCode === countryOfResidence) {\n country = key;\n }\n });\n if (country) {\n this.selectedCountry = country;\n this.setEulaLanguage(this.eulaLanguages.get(country)[0]);\n } else {\n this.selectedCountry = 'none';\n this.setEulaLanguage(this.eulaLanguages.get('none')[0]);\n }\n return;\n }\n let currentCountry = this.countries[4];\n const countries = this.applicationOptionsService.options.nationalAnnexes;\n if (countries.length > 0) {\n const currentNationalAnnexes = countries.filter(c => c.id === settings.countryNationalAnnexes);\n if (currentNationalAnnexes.length > 0) {\n const nationalCountry = this.countries.find(c => c === currentNationalAnnexes[0].labelKey);\n currentCountry = nationalCountry ? nationalCountry : currentCountry;\n }\n }\n this.selectedCountry = currentCountry;\n const currentCountryEulaLanguages = this.eulaLanguages.get(currentCountry);\n const countryEulaLanguage = currentCountryEulaLanguages.find(l => l.value === this.settings.language);\n this.setEulaLanguage(countryEulaLanguage == null ? currentCountryEulaLanguages[0] : countryEulaLanguage);\n }\n\n setDefaultUiLanguage(settings) {\n this.selectedUiLanguage = this.uiLanguages.filter(item => (item.value === (settings && settings.language ? settings.language || 'en' : 'en')))[0];\n this.currentUiLanguage = this.selectedUiLanguage;\n }\n\n countryChange(event: string) {\n if (this.selectedCountry !== event) {\n this.selectedCountry = event;\n const currentCountryEulaLanguages = this.eulaLanguages.get(this.selectedCountry);\n const countryEulaLanguage = currentCountryEulaLanguages.find(l => l.value === this.settings.language);\n this.setEulaLanguage(countryEulaLanguage == null ? currentCountryEulaLanguages[0] : countryEulaLanguage);\n }\n }\n\n setEulaLanguage(language: { culture, value, label }) {\n this.selectedEulaLanguage = language;\n const countries = this.applicationOptionsService.options.nationalAnnexes;\n if (countries.length > 0) {\n const nationalAnnexes = countries.find(c => c.labelKey === this.selectedCountry).id;\n const designCode = countries.find(c => c.labelKey === this.selectedCountry).designCodeId;\n if (this.settings\n && (this.settings.countryNationalAnnexes !== nationalAnnexes)) {\n this.settings.countryNationalAnnexes = nationalAnnexes;\n this.settings.designCode = designCode;\n if (designCode === 2 && nationalAnnexes === 30) { // set default settings for US users\n this.settings.unit = AppConstants.UNIT_SYSTEM_US;\n this.settings.loadUnit = AppConstants.UNIT_KIP_ID;\n this.settings.lengthUnit = AppConstants.UNIT_FT_ID;\n this.settings.loadCategory = AppConstants.DEFAULT_LOADCATEGORY_US;\n } else {\n this.settings.unit = AppConstants.UNIT_SYSTEM_MI;\n this.settings.loadUnit = AppConstants.UNIT_KN_ID;\n this.settings.lengthUnit = AppConstants.UNIT_M_ID;\n this.settings.loadCategory = AppConstants.DEFAULT_LOADCATEGORY_EU;\n }\n if (designCode === 2) {\n this.settings.usDeadLoad1 = SettingsComponent.DEFAULT_US_DEAD_LOAD_1_AISC;\n this.settings.usDeadLoad2 = SettingsComponent.DEFAULT_US_DEAD_LOAD_2_AISC;\n this.settings.usLiveLoad2 = SettingsComponent.DEFAULT_US_LIVE_LOAD_2_AISC;\n }\n if (designCode === 3) {\n this.settings.usDeadLoad1 = SettingsComponent.DEFAULT_US_DEAD_LOAD_1_ASNZS;\n this.settings.usDeadLoad2 = SettingsComponent.DEFAULT_US_DEAD_LOAD_2_ASNZS;\n this.settings.usLiveLoad2 = SettingsComponent.DEFAULT_US_LIVE_LOAD_2_ASNZS;\n this.settings.asPhiM = SettingsComponent.DEFAULT_COMB_FACTORS_ASNZS.ASPhiM;\n this.settings.asPhiMb = SettingsComponent.DEFAULT_COMB_FACTORS_ASNZS.ASPhiMb;\n this.settings.asPhiVc = SettingsComponent.DEFAULT_COMB_FACTORS_ASNZS.ASPhiVc;\n this.settings.asPhiVm = SettingsComponent.DEFAULT_COMB_FACTORS_ASNZS.ASPhiVm;\n this.settings.asPhiS = SettingsComponent.DEFAULT_COMB_FACTORS_ASNZS.ASPhiS;\n this.settings.asPhiC = SettingsComponent.DEFAULT_COMB_FACTORS_ASNZS.ASPhiC;\n this.settings.asPhiVf = SettingsComponent.DEFAULT_COMB_FACTORS_ASNZS.ASPhiVf;\n this.settings.asPhiSC = SettingsComponent.DEFAULT_COMB_FACTORS_ASNZS.ASPhiSC;\n this.settings.asPhiSR = SettingsComponent.DEFAULT_COMB_FACTORS_ASNZS.ASPhiSR;\n this.settings.loadCategory = AppConstants.DEFAULT_LOADCATEGORY_ASNZS;\n }\n this.settingsService.saveSettings(this.settings).subscribe(s => {\n this.settings = s;\n this.sharedService.changeSettings(s);\n });\n }\n }\n this.updateEulaText(`eula_${this.selectedEulaLanguage.culture}.htm`);\n }\n\n uiLanguageChange(event) {\n this.selectedUiLanguage = event;\n this.settings.language = event.value;\n this.sharedService.changeLanguage(this.selectedUiLanguage.value);\n this.settingsService.saveSettings(this.settings).subscribe(s => {\n this.settings = s;\n });\n\n const currentCountryEulaLanguages = this.eulaLanguages.get(this.selectedCountry);\n const countryEulaLanguage = currentCountryEulaLanguages.find(l => l.value === this.settings.language);\n this.setEulaLanguage(countryEulaLanguage == null ? currentCountryEulaLanguages[0] : countryEulaLanguage);\n }\n\n updateEulaText(eulaFile: string) {\n this.eulaService.getEulaText(eulaFile)\n .subscribe(eulaText => this.eulaText = eulaText.replace('{subProcessorListUrl}', AppConstants.SUBPROCESSOR_LIST_URL));\n }\n}\n","import { EulaService } from './eula.service';\nimport { EulaComponent } from './eula.component';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { DropDownsModule } from '@progress/kendo-angular-dropdowns';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n TranslateModule,\n DropDownsModule,\n FormsModule\n ],\n declarations: [\n EulaComponent\n ],\n exports: [\n EulaComponent\n ],\n providers: [\n EulaService\n ]\n})\nexport class EulaModule { }\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { ConfigService } from 'app/service/config.service';\nimport { catchError } from 'rxjs/operators';\n\n@Injectable()\nexport class EulaService {\n private _eulaUrl = './assets/eula/';\n constructor(private _http: HttpClient, private configService: ConfigService) {\n }\n\n public getEulaText(eulaFile: string) {\n return this._http\n .get(`${this.configService.config.eulaUrl}${eulaFile}`, {responseType: 'text'})\n .pipe(catchError(error => {\n return this._http.get(`${this._eulaUrl}eula_en_GB.htm`, {responseType: 'text' });\n }));\n }\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2xlZ2FsL2xlZ2FsLmNvbXBvbmVudC5zY3NzIn0= */\"","import { TranslateService } from '@ngx-translate/core';\nimport { Component, OnInit } from '@angular/core';\n\n\n@Component({\n selector: 'legal',\n templateUrl: './legal.component.html',\n styleUrls: ['./legal.component.scss']\n})\nexport class LegalComponent implements OnInit {\n\n constructor(public translate: TranslateService) { }\n\n ngOnInit() {\n }\n\n}\n","import { Component } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Router } from '@angular/router';\nimport { AppStorageService } from './service/util/app-storage.service';\nimport { AppConstants } from './common/AppConstants';\n@Component({\n template: `

{{message | translate}}


`\n})\nexport class LogoutComponent {\n public message = 'logout-success';\n constructor(private translate: TranslateService, private router: Router, private appStorageService: AppStorageService) {\n if (!this.translate.currentLang) {\n this.translate.use(translate.getBrowserLang());\n }\n }\n\n goToProjects() {\n this.appStorageService.set(AppConstants.ReturnUrl, location.origin);\n window.location.href = location.origin;\n }\n}\n","export interface Option {\n id: number;\n label: string;\n labelKey: string;\n value: T;\n}\n\nexport interface ConstructionOption extends Option {\n designCode: number;\n}\n\nclass NationalConcreteClasses {\n id: number;\n nationalAnnexId: number;\n concreteClassId: number;\n}\n\nexport interface Options {\n beamDesigns: Option[];\n beamLocations: Option[];\n beamTypes: Option[];\n combinationFactors: CombinationFactor[];\n concreteClasses: ConcreteClass[];\n concreteStrengths: ConcreteStrength[];\n concreteInterfaces: ConcreteInterface[];\n concreteTypes: Option[];\n constructionTypes: ConstructionOption[];\n deflectionLimits: DeflectionLimit[];\n designCodes: Option[];\n languages: Language[];\n loadUnits: LengthUnit[];\n lengthUnits: ForceUnit[];\n liveLoadPercents: Option[];\n nationalAnnexes: NationalAnnex[];\n loadCategories: LoadCategory[];\n partialFactors: PartialFactor[];\n profileSheetings: ProfileSheeting[];\n reinforcementSteelGrades: Option[];\n shearConnectionDegrees: Option[];\n shearConnectorOrientations: Option[];\n shearConnectorTypes: ShearConnectorType[];\n sheetingOrientations: Option[];\n slabTypes: SlabType[];\n steelGrades: SteelGrade[];\n steelProfileRanges: SteelProfileRange[];\n steelProfiles: SteelProfile[];\n unitSystems: Option[];\n walkingActivities: Option[];\n rytmicExitations: Option[];\n damplings: Damplings[];\n steelStandards: SteelStandards[];\n nationalSteelProfileRanges: NationalSteelProfileRanges[];\n nationalConcreteClasses: NationalConcreteClasses[];\n nationalShearConnectorTypes: NationalShearConnectorTypes[];\n}\n\nexport interface NationalShearConnectorTypes {\n id: number;\n shearConnectorTypeId: number;\n nationalAnnexId: number;\n}\n\nexport interface NationalSteelProfileRanges {\n id: number;\n nationalAnnexId: number;\n steelProfileRangeId: number;\n}\n\nexport interface Damplings extends Option {\n designCodeId: number;\n}\n\n\nexport interface SteelStandards extends Option {\n countryId: number;\n}\n\nexport interface SteelGrade extends Option {\n designCodeId: number;\n steelStandard: number;\n}\n\nexport interface LengthUnit extends Option {\n unitSystemId: number;\n}\n\nexport interface DeflectionLimit extends Option {\n designCodeId: number;\n showInLiveLoad: boolean;\n showInTotalLoad: boolean;\n}\n\nexport interface ForceUnit extends Option {\n unitSystemId: number;\n}\n\nexport interface SlabType extends Option {\n designCode: number;\n}\n\nexport interface ShearConnectorType extends Option {\n minSlabThicknessWithOutCorrosion?: string;\n minSlabThicknessWithCorrosion: string;\n}\n\nexport interface Language extends Option {\n referenceUrl: number;\n culture: number;\n}\n\nexport interface CombinationFactor {\n id: number;\n value: number;\n nationalAnnexId: number;\n loadCategoryId: number;\n}\n\nexport interface ConcreteClass extends Option {\n concreteType: number[];\n}\n\nexport interface ConcreteStrength extends Option {\n unitSystemId: number;\n}\n\nexport interface ConcreteInterface extends Option {\n concreteTypeId: number;\n concreteTypeValue: number;\n}\n\nexport interface DeflectionsCheck {\n liveLoadDeflecionCheck: boolean;\n liveLoadDeflecionMax: number;\n totalDeflectionCheck: boolean;\n totalDeflectionMax: number;\n}\n\nexport interface Deformations {\n id?: number;\n constructionTypeId: number;\n precamber: number;\n totalDeflectionLimit: number;\n compositeDeflectionLimit: number;\n percentageLiveLoad: number;\n frequencyLimit: number;\n dampling?: number;\n walkingActivity?: number;\n walkingExcitationCheck?: number;\n rhythmicExcitationCheck?: number;\n rhythmicActivity?: number;\n incrementalDeflectionCheck?: number;\n performLateralTorsionBucklingCheck?: number;\n permanentLoadFraction?: number;\n}\n\nexport interface LocationProperty {\n id?: number;\n location: number;\n value: number;\n}\n\nexport interface LineLoad {\n id?: number;\n endLoad: LocationProperty;\n originLoad: LocationProperty;\n}\n\nexport interface LoadCase {\n id: number;\n combinationFactor: number;\n lineLoads: LineLoad[];\n pointLoads: LocationProperty[];\n distributedSurfaceLoad: number;\n sequence: number;\n}\n\nexport interface Loads {\n id: number;\n userCompositeSelfWeight: number;\n loadCases: LoadCase[];\n}\n\nexport interface Location {\n address1: string;\n address2: string;\n city: string;\n country: string;\n state: string;\n zip: string;\n}\n\nexport interface PartialFactor {\n id: number;\n nationalAnnexId: number;\n gammaG: number;\n gammaQ: number;\n gammaC: number;\n gammaM0: number;\n gammaM1: number;\n gammaS: number;\n gammaV: number;\n gammaP: number;\n asPhiM: number;\n asPhiMb: number;\n asPhiVc: number;\n asPhiVm: number;\n asPhiS: number;\n asPhiC: number;\n asPhiVf: number;\n asPhiSC: number;\n asPhiSR: number;\n}\n\nexport interface ProfileSheeting {\n id?: number;\n profileName?: string;\n sheetingOrientationId?: number;\n sheetingOrientationValue?: number;\n pitch?: number;\n ribBottomWidth?: number;\n ribTopWidth?: number;\n ribHeight?: number;\n thickness?: number;\n surfaceWeight?: number;\n yieldStrength?: number;\n numberRibStiffeners?: number;\n ribStiffenerWidth?: number;\n stiffenersSpacing?: number;\n continuousForPerpendicular?: boolean;\n topStiffenerHeight?: number;\n}\n\nexport interface ProjectGridView {\n id: number;\n name: string;\n createdOn: Date;\n updatedOn: Date;\n preparedBy: string;\n subProjects: SubProjectGridView[];\n}\n\nexport interface SubProjectGridView {\n id: number;\n name: string;\n createdOn: Date;\n}\n\nexport interface Project {\n id?: number;\n name: string;\n company: string;\n address1: string;\n address2?: string;\n city?: string;\n stateProvince?: string;\n postalCode?: string;\n country: string;\n contractor: string;\n reference?: string;\n responsible?: string;\n phone: string;\n email: string;\n preparedBy: string;\n designCode: number;\n countryNationalAnnexes: number;\n language: string;\n loadUnit: number;\n lengthUnit: number;\n loadCategory?: number;\n ulsGammaG: number;\n ulsGammaQ: number;\n structuralSteelSection: number;\n structuralSteelElement: number;\n concrete: number;\n connector: number;\n reinforcement: number;\n steelProfile: number;\n combinationFactor?: number;\n comments: string;\n unit: number;\n usDeadLoad1: number;\n usDeadLoad2: number;\n usLiveLoad2: number;\n usPhiElastic: number;\n asPhiM: number;\n asPhiMb: number;\n asPhiVc: number;\n asPhiVm: number;\n asPhiS: number;\n asPhiC: number;\n asPhiVf: number;\n asPhiSC: number;\n asPhiSR: number;\n}\n\nexport interface SteelProfile {\n id?: number;\n customProfile: boolean;\n profileName?: string;\n steelGradeId: number;\n steelGradeValue?: number;\n height: number;\n flangeWidth: number;\n webThickness: number;\n flangeThickness: number;\n label: string;\n rootRadius: number;\n radius: number;\n yieldStrength?: number;\n elasticImposed?: boolean;\n class3Imposed?: boolean;\n steelStandardNZS?: number;\n unitSystem?: number;\n}\n\nexport interface SteelProfileRange {\n beamRegion: string;\n description: string;\n dimension: string;\n id: number;\n profileRange: string;\n designCodeId: number;\n}\n\nexport interface ConcreteSlab {\n id?: number;\n slabThickness: number;\n concreteTypeId: number;\n concreteTypeValue?: number;\n concreteClassId: number;\n concreteClassValue?: number;\n concreteDensity: number;\n coverRequired: boolean;\n haunchHeight?: number;\n concreteStrengthUS?: number;\n concreteStrengthId?: number;\n aggregatesDensity: number;\n}\n\nexport interface BeamGeometry {\n id?: number;\n beamLength: number;\n leftSpacing: number;\n rightSpacing: number;\n beamTypeId: number;\n beamTypeValue?: number;\n beamLocationId: number;\n beamLocationValue?: number;\n slabTypeId: number;\n slabTypeValue?: number;\n leftOpening: boolean;\n leftOpeningPosition: number;\n rightOpening: boolean;\n rightOpeningPosition: number;\n}\n\nexport interface ShearConnector {\n id?: number;\n connectionDegreeId: number;\n connectionDegreeValue?: number;\n connectorTypeId: number;\n connectorTypeValue?: number;\n connectorsOrientationId: number;\n connectorsOrientationValue?: number;\n userConnectionDegree: number;\n optimizationOption: number;\n}\n\nexport interface Reinforcement {\n id?: number;\n steelGradeId: number;\n steelGradeValue?: number;\n}\n\nexport interface SubProject {\n id?: number;\n projectId?: number;\n projectName?: string;\n createdOn?: string;\n updatedOn?: string;\n name?: string;\n beamGeometry?: BeamGeometry;\n steelProfile?: SteelProfile;\n concreteSlab?: ConcreteSlab;\n reinforcement?: Reinforcement;\n profileSheeting?: ProfileSheeting;\n shearConnector?: ShearConnector;\n load?: Loads;\n deformation?: Deformations;\n partialFactors: PartialFactor;\n loadCategory: number;\n combinationFactor: number;\n liveLoadReduction: boolean;\n designCode: number;\n}\n\nexport interface LoadCategory {\n id: number;\n value: number;\n label: string;\n labelKey: string;\n designCodeId: number;\n liveLoadReduction: boolean;\n}\n\nexport interface NationalAnnex {\n id: number;\n value: number;\n label: string;\n labelKey: string;\n designCodeId: number;\n countryCode: string;\n}\n\nexport interface Drawing {\n pictureWidth: number;\n pictureHeight: number;\n lengthUnit: number;\n showSymbol: boolean;\n unitSystem: number;\n designCode: number;\n}\n\nexport interface SteelSectionDrawing extends Drawing {\n steelProfile: SteelProfile;\n profileSheeting?: ProfileSheeting;\n drawingType: number;\n}\n\nexport interface SlabDrawing extends Drawing {\n beamGeometry: BeamGeometry;\n steelProfile: SteelProfile;\n profileSheeting?: ProfileSheeting;\n concreteSlab: ConcreteSlab;\n}\n\nexport interface BeamLoadDrawing extends Drawing {\n beamGeometry: BeamGeometry;\n steelProfile: SteelProfile;\n}\n\nexport interface BeamGeometryDrawing extends Drawing {\n beamGeometry: BeamGeometry;\n}\n\nexport interface CompositeCrossSectionDrawing extends Drawing {\n concreteSlab: ConcreteSlab;\n beamGeometry: BeamGeometry;\n profileSheeting?: ProfileSheeting;\n shearConnector?: ShearConnector;\n steelProfile: SteelProfile;\n connectorsSpacing?: number;\n numberOfRows: number;\n}\n\nexport interface CompositeSelfWeight {\n concreteSlab: ConcreteSlab;\n beamGeometry: BeamGeometry;\n steelProfile: SteelProfile;\n profileSheeting: ProfileSheeting;\n}\n\nexport interface DefaultCompositeLiveLoad {\n generalInformation: Calculate.GeneralInformation;\n beamGeometry: BeamGeometry;\n}\nexport interface LoadDrawing extends Drawing {\n concreteSlab: ConcreteSlab;\n beamGeometry: BeamGeometry;\n steelProfile: SteelProfile;\n loads: Loads;\n loadCaseIndex: number;\n forceUnit: number;\n type: Calculate.LoadDrawingType;\n}\n// tslint:disable-next-line\nexport interface CompositeBeamDrawing extends CompositeCrossSectionDrawing {\n\n}\n\nexport interface ProfiledSheetingDrawing extends Drawing {\n profileSheeting: ProfileSheeting;\n}\n\nexport interface Version {\n first: number;\n second: number;\n third: number;\n beta: number;\n}\n\nexport interface Settings {\n designCode: number;\n countryNationalAnnexes: number;\n language: string;\n loadUnit: number;\n lengthUnit: number;\n loadCategory: number;\n ulsGammaG: number;\n ulsGammaQ: number;\n structuralSteelSection: number;\n structuralSteelElement: number;\n concrete: number;\n connector: number;\n reinforcement: number;\n steelProfile: number;\n combinationFactor: number;\n trackingPolicy: boolean;\n region: string;\n customerId?: string;\n name: string;\n eTag?: string;\n unit: number;\n usDeadLoad1: number;\n usDeadLoad2: number;\n usLiveLoad2: number;\n usPhiElastic: number;\n liveLoadReduction: boolean;\n asPhiM: number;\n asPhiMb: number;\n asPhiVc: number;\n asPhiVm: number;\n asPhiS: number;\n asPhiC: number;\n asPhiVf: number;\n asPhiSC: number;\n asPhiSR: number;\n}\n\nexport interface GridProject {\n id: number;\n name: string;\n selected: boolean;\n subProjects: Map;\n}\n\nexport interface GridSubProject {\n id: number;\n selected: boolean;\n}\n\nexport namespace Calculate {\n\n // command\n\n export interface CreateCommand {\n generalInformation: GeneralInformation;\n partialFactors: PartialFactors;\n beamGeometry: BeamGeometry;\n concreteSlab: ConcreteSlab;\n profileSheeting: ProfileSheeting;\n shearConnector: ShearConnector;\n steelProfile: SteelProfile;\n reInforcementSteelBars: ReInforcementSteelBars;\n loads: Loads;\n deformations: Deformations;\n version: Version;\n lengthUnit: LengthUnitEnum;\n forceUnit: ForceUnitEnum;\n designCode: number;\n detailedSheet: boolean;\n }\n\n export interface Deformations {\n constructionTypeValue: number;\n precamber: number;\n totalDeflectionLimit: number;\n compositeDeflectionLimit: number;\n percentageLiveLoad: number;\n frequencyLimit: number;\n incrementalDeflectionCheck: boolean;\n permanentLoadFraction: number;\n rhythmicExcitationCheck?: number;\n performLateralTorsionBucklingCheck?: boolean;\n }\n\n export interface Loads {\n id: number;\n loadCases: LoadCase[];\n userCompositeSelfWeight: number;\n }\n\n export interface LoadCases {\n id: number;\n combinationFactor: number;\n distributedSurfaceLoad: number;\n pointLoads: LocationProperty[];\n lineLoads: LineLoad[];\n sequence: number;\n }\n\n export interface LineLoad {\n originLoad: LocationProperty;\n endLoad: LocationProperty;\n }\n\n export interface LocationProperty {\n location: number;\n value: number;\n }\n\n\n export interface ReInforcementSteelBars {\n steelGradeValue: number;\n }\n\n export interface SteelProfile {\n customProfile: boolean;\n profileName: string;\n steelGradeValue: number;\n height: number;\n flangeWidth: number;\n webThickness: number;\n flangeThickness: number;\n rootRadius: number;\n radius: number;\n yieldStrength: number;\n elasticImposed: boolean;\n class3Imposed: boolean;\n }\n\n export interface ShearConnector {\n connectionDegreeValue: number;\n connectorTypeValue: number;\n connectorsOrientationValue: number;\n userConnectionDegree: number;\n optimizationOption: number;\n }\n\n export interface ProfileSheeting {\n profileName: string;\n sheetingOrientationValue: number;\n pitch: number;\n ribBottomWidth: number;\n ribTopWidth: number;\n ribHeight: number;\n thickness: number;\n surfaceWeight: number;\n yieldStrength: number;\n numberRibStiffeners: number;\n ribStiffenerWidth: number;\n stiffenersSpacing: number;\n continuousForPerpendicular: boolean;\n topStiffenerHeight: number;\n }\n\n export interface ConcreteSlab {\n slabThickness: number;\n concreteTypeValue: number;\n concreteClassValue: number;\n concreteDensity: number;\n coverRequired: boolean;\n }\n\n export interface BeamGeometry {\n beamLength: number;\n leftSpacing: number;\n rightSpacing: number;\n beamTypeValue: number;\n beamLocationValue: number;\n slabTypeValue: number;\n }\n\n export enum LoadDrawingType {\n SIMPLE_LOADS = 0,\n LINE_LOADS = 1,\n POINT_LOADS = 2\n }\n\n export enum LengthUnitEnum {\n METER = 1,\n CENTIMETER = 2,\n MILLIMETER = 3,\n FOOT = 4\n }\n\n export enum ForceUnitEnum {\n KILO_NEWTONS = 1,\n DECA_NEWTONS = 2,\n NEWTONS = 3,\n POUND_FORCE = 4,\n KILO_POUND = 5\n }\n\n export interface PartialFactors {\n gammaG: number;\n gammaQ: number;\n gammaC: number;\n gammaM0: number;\n gammaM1: number;\n gammaS: number;\n gammaV: number;\n gammaP: number;\n combinationFactor: number;\n asPhiC: number;\n asPhiM: number;\n asPhiMb: number;\n asPhiS: number;\n asPhiSC: number;\n asPhiSR: number;\n asPhiVM: number;\n asPhiVc: number;\n asPhiVf: number;\n }\n\n export interface GeneralInformation {\n companyAddress: string;\n companyName: string;\n nationalAnnexValue: number;\n projectName: string;\n projectReferences: string;\n subProject: string;\n contractor: string;\n userName: string;\n loadedAreasCategory: number;\n scopeExtensions: ScopeExtensions;\n phoneFax: string;\n website: string;\n comments: string;\n email: string;\n date: string;\n standard: number;\n unit: number;\n liveLoadReduction: boolean;\n }\n\n export interface ScopeExtensions {\n extension1: boolean;\n extension2: boolean;\n }\n\n // result\n\n export interface ConstructionStageResult {\n ltbCriterion: number;\n ltbResistance: number;\n sectionResistance: SectionResistanceCheck;\n totalDeflectionMax: number;\n liveLoadDeflectionMax: number;\n lfrd: LfrdCheckUs;\n }\n\n export interface LfrdCheckUs {\n flangeClass: number;\n cfyStrength: number;\n cfyCriterion: number;\n ltbStrength: number;\n ltbCriterion: number;\n ltbBendingMoment: number;\n shearStrength: number;\n shearCriterion: number;\n flbCriterion: number;\n shearMax: number;\n steelNormalStressMax: number;\n concreteNormalStressCriterion: number;\n concreteNormalStressMax: number;\n yieldingStrength: number;\n yieldingCriterion: number;\n bendingMomentMax: number;\n webClass: number;\n steelNormalStressCriterion: number;\n flbStrength: number;\n }\n\n export interface TransverseReinforcement {\n minAreaTopReinforcement: number;\n minAreaBottomReinforcement: number;\n designStress: number;\n designResistance: number;\n criterion: number;\n }\n\n export interface SectionResistanceCheck {\n bendingMomentCriterion: number;\n bendingMomentMax: number;\n momentForMomentShear: number;\n momentShearCriterion: number;\n momentShearResistance: number;\n plasticMomentResistance: number;\n shearForMomentShear: number;\n verticalShearCriterion: number;\n verticalShearMax: number;\n verticalShearResistance: number;\n shearWebResistance: number;\n shearWebCriterion: number;\n momentWebBuckling: number;\n shearWebBuckling: number;\n momentShearWebCriterion: number;\n sectionClass: number;\n }\n\n export interface FinalStageResult {\n crowdMovementFrequency?: number;\n minimumFrequency: number;\n sectionResistance: SectionResistanceCheck;\n totalDeflectionMax: number;\n liveLoadDeflectionMax: number;\n walkingAcceleration?: Acceleration;\n rhythmicAcceleration?: Acceleration;\n lfrd?: LfrdCheckUs;\n }\n\n export interface Acceleration {\n naturalFrequency: number;\n accelerationLimit: number;\n acceleration: number;\n }\n\n export interface ShearConnectionResult {\n connectionDegree: number;\n connectorsSpacing: number;\n minConnectionDegree: number;\n numberOfConnectors: number;\n numberOfRows: number;\n reductionFactor: number;\n shearResistance: number;\n limConnectionDegree: number;\n isOptimized: boolean;\n numberOfZones: number;\n listOfShearResistance: number[];\n listOfReductionFactor: number[];\n listOfNumberOfConnectors: number[];\n listOfNumberOfRows: number[];\n listOfConnectorsSpacing: number[];\n listOfLeftPosition: number[];\n listOfRightPosition: number[];\n }\n\n export interface CalculationResult {\n errorCodes: number[];\n errorCodesNotStop: number[];\n constructionStageResult: ConstructionStageResult;\n finalStageResult: FinalStageResult;\n shearConnectionResult: ShearConnectionResult;\n reinforcementResult: TransverseReinforcement;\n pdfStream: any;\n listOfNotes: string[];\n designCriteriaOk: boolean;\n isElasticFinalStage: boolean;\n ltbCriterionIsOK: boolean;\n }\n\n export interface DXFDrawing {\n concreteSlab: ConcreteSlab;\n beamGeometry: BeamGeometry;\n profileSheeting?: ProfileSheeting;\n shearConnector?: ShearConnector;\n steelProfile: SteelProfile;\n shearConnectionResult: ShearConnectionResult;\n lengthUnit: number;\n language: string;\n }\n\n export interface DxfResult {\n drawing: string;\n drawingSuccessful: boolean;\n }\n\n export interface BOMInput {\n generalInformation: GeneralInformation;\n shearConnector: ShearConnector;\n shearConnectionResult: ShearConnectionResult;\n numberOfConnectors: Number;\n connectorType: Number;\n version: Version;\n language: string;\n }\n\n export interface BOMResult {\n errorCode: number;\n pdfStream: any;\n }\n\n export interface ConnectionZonesDrawing extends Drawing {\n concreteSlab: ConcreteSlab;\n beamGeometry: BeamGeometry;\n profileSheeting?: ProfileSheeting;\n steelProfile: SteelProfile;\n shearConnectionResult: ShearConnectionResult;\n language: string;\n }\n}\n\nexport interface PersonalDataGrid {\n email: string;\n company: string;\n tracking: boolean;\n data: PersonalData[];\n}\n\nexport interface PersonalData {\n project: string;\n phoneNumber: string;\n address: string;\n preparedBy: string;\n email: string;\n company: string;\n}\n\nexport interface ReleaseNote {\n title: string;\n content: string[];\n isCollapsed: boolean;\n}\n\nexport interface UnitSystem {\n lengthUnitTitle: string;\n forceUnitTitle: string;\n dimensionUnitTitle: string;\n densityUnitTitle: string;\n stressUnitTitle: string;\n stressUnitForMaterialsTitle: string;\n surfaceWeightUnitTitle: string;\n}\nexport interface UsGage {\n gage: number;\n inch: number;\n}\n\nexport interface ErrorCodesTranslationValidationRanges {\n beamLengthMin: number;\n beamLengthMax: number;\n beamLengthUnit: string;\n leftSpacingMinLength: number;\n leftSpacingMaxLength: number;\n steelStrengthMin: number;\n steelStrengthMax: number;\n steelStrengthUnit: string;\n concreteDensityMin: number;\n concreteDensityMax: number;\n concreteDensityUnit: string;\n sheetingOrientationStrengthMin: number;\n sheetingOrientationStrengthMax: number;\n steelProfileWebThicknessMin: number;\n steelProfileFlangeWidth: number;\n dimensionUnitTitle: string;\n incorectSlabThicknessIncreaseValue: number;\n profileSheetingThicknessMin: number;\n profileSheetingThicknessMax: number;\n profileSheetingCustomTroughspacingMin: number;\n profileSheetingCustomTroughspacingMax: number;\n profileSheetingBottomWidthMin: number;\n profileSheetingBottomWidthMax: number;\n savMax: number;\n profileSheetingCustomSurfaceWidthMin: number;\n profileSheetingCustomSurfaceWidthMax: number;\n surfaceWeightUnitTitle: string;\n profileSheetingThicknessSmallConnectors: number;\n profileSheetingThicknessLargeConnectors: number;\n}\n\nexport interface BrowserInformation {\n name: string;\n version: number;\n}\n\nexport interface AgregatedDensityResult {\n density: number;\n}\n","import { SubProject } from './models';\n\nexport class Project {\n projectId: number;\n subProjects: SubProject[];\n}\n\n","export default \".error-wrapper {\\n z-index: 20000;\\n position: fixed;\\n width: 100%;\\n height: 100%;\\n top: 0;\\n left: 0;\\n background-color: #B7B3AA; }\\n\\n.browser-message-container {\\n border: 1px solid #999999;\\n background-color: #FFF;\\n width: 550px;\\n padding-bottom: 20px; }\\n\\n.browser-message-container figure {\\n margin: 10px; }\\n\\n.browser-message-container h6 {\\n text-transform: none; }\\n\\n.browser-message-container .experience-title {\\n font-size: 1.3em;\\n font-weight: bold; }\\n\\n.browser-message-container .browser-not-supported-title {\\n font-size: 1.15em;\\n font-weight: bold; }\\n\\n.browser-message-container .browser-not-supported-subtitle {\\n font-size: 0.9em; }\\n\\n.logo {\\n margin-top: 10px;\\n width: 100px;\\n height: 40px; }\\n\\n.browser-item {\\n height: 80px;\\n width: 80px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9idWlsZHMvYnUtZi1wcy9zaGVhci1jb25uZWN0b3IvZGVwbG95L2NvZGUvaHZiLXdlYi9odmItYXBwL3NyYy9hcHAvbm9uLXN1cHBvcnRlZC1icm93c2VyL25vbi1zdXBwb3J0ZWQtYnJvd3Nlci5jb21wb25lbnQuc2NzcyIsIi9idWlsZHMvYnUtZi1wcy9zaGVhci1jb25uZWN0b3IvZGVwbG95L2NvZGUvaHZiLXdlYi9odmItYXBwL25vZGVfbW9kdWxlcy9oaWx0aS11aS1saWJyYXJ5L2Fzc2V0cy9zYXNzL19odWktY29sb3JzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7RUFDRSxlQUFjO0VBQ2QsZ0JBQWU7RUFDZixZQUFXO0VBQ1gsYUFBWTtFQUNaLE9BQUs7RUFDTCxRQUFNO0VBQ04sMEJDQThCLEVEQy9COztBQUVEO0VBQ0UsMEJDTXFCO0VETHJCLHVCQ0VjO0VERGQsYUFBWTtFQUNaLHFCQUFvQixFQWtCckI7O0FBdEJEO0lBTUksYUFBWSxFQUNiOztBQVBIO0lBU0kscUJBQW9CLEVBQ3JCOztBQVZIO0lBWUksaUJBQWdCO0lBQ2hCLGtCQUFpQixFQUNsQjs7QUFkSDtJQWdCSSxrQkFBaUI7SUFDakIsa0JBQWlCLEVBQ2xCOztBQWxCSDtJQW9CSSxpQkFBZ0IsRUFDakI7O0FBR0g7RUFDRSxpQkFBZ0I7RUFDaEIsYUFBWTtFQUNaLGFBQVksRUFDYjs7QUFFRDtFQUNFLGFBQVk7RUFDWixZQUFXLEVBQ1oiLCJmaWxlIjoic3JjL2FwcC9ub24tc3VwcG9ydGVkLWJyb3dzZXIvbm9uLXN1cHBvcnRlZC1icm93c2VyLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCAnLi4vLi4vdmFyaWFibGVzJztcblxuLmVycm9yLXdyYXBwZXIge1xuICB6LWluZGV4OiAyMDAwMDtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB0b3A6MDtcbiAgbGVmdDowO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkaHVpLWhlYXZ5LWNvbmNyZXRlLS02MDtcbn1cblxuLmJyb3dzZXItbWVzc2FnZS1jb250YWluZXIge1xuICBib3JkZXI6IDFweCBzb2xpZCAkaHVpLWJsYWNrLS00MDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGh1aS13aGl0ZTtcbiAgd2lkdGg6IDU1MHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMjBweDtcbiAgZmlndXJlIHtcbiAgICBtYXJnaW46IDEwcHg7XG4gIH1cbiAgaDYge1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICB9XG4gIC5leHBlcmllbmNlLXRpdGxlIHtcbiAgICBmb250LXNpemU6IDEuM2VtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB9XG4gIC5icm93c2VyLW5vdC1zdXBwb3J0ZWQtdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMS4xNWVtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB9XG4gIC5icm93c2VyLW5vdC1zdXBwb3J0ZWQtc3VidGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMC45ZW07XG4gIH1cbn1cblxuLmxvZ28ge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xuICB3aWR0aDogMTAwcHg7XG4gIGhlaWdodDogNDBweDtcbn1cblxuLmJyb3dzZXItaXRlbSB7XG4gIGhlaWdodDogODBweDtcbiAgd2lkdGg6IDgwcHg7XG59XG4iLCIvL0NvbG9yc1xuLy9UT0RPOiByZW1vdmUgcHJlZml4IGh1aSBpbiBjb2xvcnMgdmFyaWFibGVcbiRodWktaGlsdGktcmVkOiAjRDIwNTFFO1xuJGh1aS1kYXJrLXJlZDogI0FCMDExNTtcbiRodWktZXJyb3ItcmVkOiAjRkYwMDAwO1xuJGh1aS1oZWF2eS1jb25jcmV0ZS0tMTA6ICNGM0YyRjA7XG4kaHVpLWhlYXZ5LWNvbmNyZXRlLS0yMDogI0U3RTVFMjtcbiRodWktaGVhdnktY29uY3JldGUtLTMwOiAjREJEOEQzO1xuJGh1aS1oZWF2eS1jb25jcmV0ZS0tNDA6ICNDRkNDQzU7XG4kaHVpLWhlYXZ5LWNvbmNyZXRlLS02MDogI0I3QjNBQTtcbiRodWktaGVhdnktY29uY3JldGUtLTgwOiAjQTA5OThCO1xuJGh1aS1zdGVlbDogIzUyNEY1MztcbiRodWktc3RlZWwtLTIwOiAjREREQ0REO1xuJGh1aS1zdGVlbC0tNDA6ICNCQUI5QkE7XG4kaHVpLXN0ZWVsLS02MDogIzk3OTU5ODtcbiRodWktc3RlZWwtLTgwOiAjNzU3Mjc1O1xuJGh1aS13aGl0ZTogI0ZGRjtcbiRodWktYmxhY2s6ICMwMDA7XG4kaHVpLWJsYWNrLS05MDogIzE5MTkxOTtcbiRodWktYmxhY2stLTQwOiAjOTk5OTk5O1xuJGh1aS1ncmVlbjogIzE5QUYzNztcbiRodWktZ3JlZW4tLTQwOiAjQTNERkFGO1xuJGh1aS1kYXJrLWJsdWU6ICMwMDVGOTY7XG5cbiRodWktYnVyZ3VuZHk6ICM2NzFDM0U7XG5cbiRjdGE6ICRodWktaGlsdGktcmVkO1xuJHByaW1hcnk6ICRodWktc3RlZWw7XG4kc2Vjb25kYXJ5OiAkaHVpLWhlYXZ5LWNvbmNyZXRlLS0yMDtcbiRzdWNjZXNzOiAjMTlBRjM3O1xuJGRhbmdlcjogI0ZGMDAwMDtcbiR3YXJuaW5nOiAjRkZBRjAwO1xuXG4kdGhlbWUtY29sb3JzOiAoXG4gIFwiY3RhXCI6ICRjdGEsXG4gIFwiaGVhdnktY29uY3JldGUtLTEwXCI6ICRodWktaGVhdnktY29uY3JldGUtLTEwLFxuICBcImhlYXZ5LWNvbmNyZXRlLS0yMFwiOiAkaHVpLWhlYXZ5LWNvbmNyZXRlLS0yMCxcbik7XG4iXX0= */\"","import { Component, OnInit } from '@angular/core';\nimport { BrowserInformation } from '../models/models';\n@Component({\n selector: 'app-non-supported-browser',\n templateUrl: './non-supported-browser.component.html',\n styleUrls: ['./non-supported-browser.component.scss']\n})\nexport class NonSupportedBrowserComponent implements OnInit {\n isBrowserSupported = true;\n supportedBrowser = [\n { name: 'Chrome', minVersion: 47, image: 'assets/browsers/chrome.png' },\n { name: 'Firefox', minVersion: 43, image: 'assets/browsers/firefox.png' },\n { name: 'Microsoft Edge', minVersion: 20, image: 'assets/browsers/edge.png' }\n ];\n constructor() { }\n\n ngOnInit() {\n const currentBrowser = this.detectBrowser();\n this.validateBrowser(currentBrowser);\n }\n\n validateBrowser(currentBrowser: BrowserInformation) {\n const browser = this.supportedBrowser.find(x => x.name === currentBrowser.name);\n if (browser) {\n currentBrowser.version >= browser.minVersion ? this.isBrowserSupported = true : this.isBrowserSupported = false;\n } else {\n this.isBrowserSupported = false;\n }\n }\n\n detectBrowser(): BrowserInformation {\n const nAgt = navigator.userAgent;\n let browserName = navigator.appName;\n let fullVersion = '' + parseFloat(navigator.appVersion);\n let majorVersion = parseInt(navigator.appVersion, 10);\n let nameOffset, verOffset, ix;\n\n if ((verOffset = nAgt.indexOf('OPR/')) !== -1) {\n browserName = 'Opera';\n fullVersion = nAgt.substring(verOffset + 4);\n } else if ((verOffset = nAgt.indexOf('Opera')) !== -1) {\n browserName = 'Opera';\n fullVersion = nAgt.substring(verOffset + 6);\n if ((verOffset = nAgt.indexOf('Version')) !== -1) {\n fullVersion = nAgt.substring(verOffset + 8);\n }\n } else if ((verOffset = nAgt.indexOf('MSIE')) !== -1) {\n browserName = 'Microsoft Internet Explorer';\n fullVersion = nAgt.substring(verOffset + 5);\n } else if ((verOffset = nAgt.indexOf('Edge')) !== -1) {\n browserName = 'Microsoft Edge';\n fullVersion = nAgt.substring(verOffset + 5);\n } else if ((verOffset = nAgt.indexOf('Edg')) !== -1) {\n browserName = 'Microsoft Edge';\n fullVersion = nAgt.substring(verOffset + 4);\n } else if ((verOffset = nAgt.indexOf('Chrome')) !== -1) {\n browserName = 'Chrome';\n fullVersion = nAgt.substring(verOffset + 7);\n } else if ((verOffset = nAgt.indexOf('Safari')) !== -1) {\n browserName = 'Safari';\n fullVersion = nAgt.substring(verOffset + 7);\n if ((verOffset = nAgt.indexOf('Version')) !== -1) {\n fullVersion = nAgt.substring(verOffset + 8);\n }\n } else if ((verOffset = nAgt.indexOf('Firefox')) !== -1) {\n browserName = 'Firefox';\n fullVersion = nAgt.substring(verOffset + 8);\n } else if ( (nameOffset = nAgt.lastIndexOf(' ') + 1) <\n (verOffset = nAgt.lastIndexOf('/')) ) {\n browserName = nAgt.substring(nameOffset, verOffset);\n fullVersion = nAgt.substring(verOffset + 1);\n if (browserName.toLowerCase() === browserName.toUpperCase()) {\n browserName = navigator.appName;\n }\n }\n if ((ix = fullVersion.indexOf(';')) !== -1) {\n fullVersion = fullVersion.substring(0, ix);\n }\n if ((ix = fullVersion.indexOf(' ')) !== -1) {\n fullVersion = fullVersion.substring(0, ix);\n }\n\n majorVersion = parseInt('' + fullVersion, 10);\n if (isNaN(majorVersion)) {\n fullVersion = '' + parseFloat(navigator.appVersion);\n majorVersion = parseInt(navigator.appVersion, 10);\n }\n return {\n name: browserName,\n version: majorVersion\n };\n }\n\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL29hdXRoY2FsbGJhY2svb2F1dGhjYWxsYmFjay5jb21wb25lbnQuc2NzcyJ9 */\"","\nimport { zip as observableZip, Subscription, Observable } from 'rxjs';\n\nimport { merge } from 'rxjs/operators';\nimport { SettingsService } from './../settings/settings.service';\nimport { AppStorageService } from '../service/util/app-storage.service';\nimport { WindowRefService } from '../service/common/window.ref.service';\nimport { ApplicationOptionsService } from '../service/common/application-options.service';\nimport { SharedService } from '../service/common/shared.service';\nimport { Component, OnInit } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport * as _ from 'lodash';\nimport { AppConstants } from '../common/AppConstants';\nimport { SessionStorageService } from '../service/util/session-storage.service';\nimport { Router, ActivatedRoute, Params } from '@angular/router';\nimport { AuthService } from '../service/common/auth.service';\nimport { UserService } from '../service/common/user.service';\nimport * as Models from '../models/models';\nimport { environment } from 'environments/environment';\n@Component({\n selector: 'app-oauthcallback',\n templateUrl: './oauthcallback.component.html',\n styleUrls: ['./oauthcallback.component.scss']\n})\nexport class OauthcallbackComponent implements OnInit {\n\n private code: string;\n private state: string;\n private language: string;\n private subscription: Subscription;\n\n constructor(\n private translate: TranslateService,\n private user: UserService,\n private auth: AuthService,\n private router: Router,\n private route: ActivatedRoute,\n private sessionStorageService: SessionStorageService,\n private appStorageService: AppStorageService,\n private sharedService: SharedService,\n private applicationOptionsService: ApplicationOptionsService,\n windowRef: WindowRefService,\n private settingsService: SettingsService) {\n this.appStorageService.set(AppConstants.LOCALE, windowRef.nativeWindow.navigator.language);\n this.language = window.navigator.language; // Two character language like 'en-US'\n }\n\n async ngOnInit() {\n /**\n * if user is not authenticated and url does not includes oauth_callback then call the authorize URL\n * For development mimic oauth flow\n */\n this.subscription = this.sharedService.language$\n .subscribe(item => { this.language = item; this.translate.setDefaultLang(this.language); });\n this.retrieveCode();\n /**\n * If the user is not autheticated and location URL contains oauth_callback then call the token url\n * using the code param in the URL\n */\n if ((!this.user.isAuthenticated || environment.localTesting) && _.includes(location.href, AppConstants.OauthCallBack)) {\n if (this.code && !_.isEmpty(this.code) && this.state && !_.isEmpty(this.state)) {\n this.auth.getToken(this.code, this.state).subscribe(async data => {\n this.auth.login(data);\n this.onPostAuthentication().subscribe(async result => {\n await this.applicationOptionsService.initialize();\n this.updateLicenceData(result);\n this.detectLanguage(result);\n this.setInitiazationData(result);\n this.sharedService.showDialogAfterLogin(true);\n this.navigateToReturnUrl();\n });\n });\n }\n }\n /**\n * If the user is authenticated then go to home page\n */\n if (this.user.isAuthenticated && _.includes(location.href, AppConstants.OauthCallBack)) {\n this.onPostAuthentication().subscribe(async result => {\n await this.applicationOptionsService.initialize();\n this.updateLicenceData(result);\n this.setInitiazationData(result);\n this.sharedService.showDialogAfterLogin(true);\n this.navigateToReturnUrl();\n });\n }\n }\n\n\n private detectLanguage(settings: Models.Settings | null): void {\n const auth = this.user.getAuthentication();\n if (!settings) {\n const locales = this.sharedService.getSupportedLocales();\n const defaultLang = 'en';\n locales.forEach((item, key) => {\n if (item[0].isoCode === auth.countryOfResidence) {\n return this.sharedService.changeLanguage(item[0].value);\n }\n });\n return this.sharedService.changeLanguage(defaultLang);\n }\n }\n\n private retrieveCode() {\n if (environment.localTesting) {\n this.code = 'test';\n this.state = 'test';\n }\n this.route.queryParams.pipe(merge(this.route.params)).subscribe((params: any) => {\n this.code = this.code || (!_.isEmpty(params['code']) ? params['code'] : null);\n this.state = this.state || (!_.isEmpty(params['state']) ? params['state'] : null);\n });\n }\n\n private updateLicenceData(settings: Models.Settings) {\n if (settings == null) {\n return;\n }\n\n if (settings.name !== this.user.authentication.userName ||\n settings.customerId !== this.user.authentication.customerOriginID ||\n settings.region !== window.navigator.language\n ) {\n settings.name = this.user.authentication.userName;\n settings.customerId = this.user.authentication.customerOriginID;\n settings.region = window.navigator.language;\n this.settingsService.saveSettings(settings).subscribe();\n }\n }\n\n private setInitiazationData(result: Models.Settings) {\n this.user.defaultSettings = result;\n if (this.user.defaultSettings) {\n this.sharedService.changeSettings(this.user.defaultSettings);\n }\n }\n\n private getReturnUrl(): string {\n let returnUrl = this.appStorageService.get(AppConstants.ReturnUrl);\n if (!this.user.isEulaAccepted) {\n returnUrl = '';\n }\n return returnUrl;\n }\n\n private navigateToReturnUrl(): void {\n const returnUrl = this.getReturnUrl();\n returnUrl !== null && !_.isEmpty(returnUrl) && returnUrl !== '/' && !_.includes(returnUrl, 'logout')\n && !_.includes(returnUrl, 'register')\n ? location.href = returnUrl : this.router.navigate(['/projects']);\n\n }\n\n private onPostAuthentication(): Observable {\n return this.settingsService.getSettings();\n }\n}\n","export default \".k-checkbox-label::before {\\n border-color: grey; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9idWlsZHMvYnUtZi1wcy9zaGVhci1jb25uZWN0b3IvZGVwbG95L2NvZGUvaHZiLXdlYi9odmItYXBwL3NyYy9hcHAvcHJpdmFjeS9wcml2YWN5LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksbUJBQW1CLEVBQ3RCIiwiZmlsZSI6InNyYy9hcHAvcHJpdmFjeS9wcml2YWN5LmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmstY2hlY2tib3gtbGFiZWw6OmJlZm9yZXtcbiAgICBib3JkZXItY29sb3IgOiBncmV5O1xufSJdfQ== */\"","import { SettingsService } from '../settings/settings.service';\nimport { Component, EventEmitter, Output} from '@angular/core';\nimport { FormGroup, Validators, FormControl } from '@angular/forms';\n\nimport { SharedService } from '../service/common/shared.service';\nimport * as models from './../models/models';\nimport { AppConstants } from '../common/AppConstants';\nimport { AppStorageService } from '../service/util/app-storage.service';\nimport { UserService } from '../service/common/user.service';\nimport { Authentication } from './../models/authentication';\nimport { SessionStorageService } from '../service/util/session-storage.service';\nimport { UrlService } from '../service/common/url.service';\nimport * as _ from 'lodash';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ConfigService } from 'app/service/config.service';\nimport { ApplicationOptionsService } from 'app/service/common/application-options.service';\n\n@Component({\n selector: 'privacy',\n templateUrl: './privacy.component.html',\n styleUrls: ['./privacy.component.scss']\n})\nexport class PrivacyComponent {\n @Output() notify: EventEmitter = new EventEmitter();\n\n public policyMarketingHref = '';\n public policyMarketingTemplate = this.configService.config.profileUrl + AppConstants.PRIVACY_MARKETING_URL;\n\n public countries: Map = new Map();\n public policyForm: FormGroup = new FormGroup({\n tracking: new FormControl(false, Validators.required)\n });\n private settings: models.Settings;\n\n public selectedUrlsLanguage = {\n 'name': 'english',\n 'dsrurl': 'https://www.hilti.com',\n 'ppurl': 'https://www.hilti.com',\n 'marketingUrl': 'https://www.hilti.com',\n 'value': 'en'\n };\n public selectedCountry: any = [{\n 'name': 'english',\n 'dsrurl': 'https://www.hilti.com',\n 'ppurl': 'https://www.hilti.com',\n 'marketingUrl': 'https://www.hilti.com',\n 'value': 'en'\n }];\n public nationalAnnexes: any[];\n public uiLanguages: models.Language[];\n public selectedUiLanguage: models.Language;\n public currentUiLanguage: models.Language;\n\n constructor(\n private configService: ConfigService,\n private settingsService: SettingsService,\n public sharedService: SharedService,\n public appStorageService: AppStorageService,\n public sessionStorageService: SessionStorageService,\n public user: UserService,\n public translate: TranslateService,\n public urlService: UrlService,\n public applicationOptionsService: ApplicationOptionsService) {\n this.countries.set(1, 'EN');\n this.countries.set(2, 'FR');\n\n this.countries.set(3, 'ES');\n this.countries.set(4, 'PT');\n this.countries.set(5, 'BE');\n this.countries.set(6, 'LUX');\n this.countries.set(7, 'IT');\n this.countries.set(8, 'EN');\n this.countries.set(9, 'CZ');\n this.countries.set(10, 'BG');\n this.countries.set(11, 'RO');\n this.countries.set(12, 'EN');\n // this.countries.set(13, 'EE');\n this.countries.set(14, 'HU');\n // this.countries.set(15, 'LT');\n // this.countries.set(16, 'LV');\n this.countries.set(17, 'SK');\n this.countries.set(18, 'SI');\n this.countries.set(19, 'ZA');\n this.countries.set(20, 'SG');\n this.countries.set(21, 'TR');\n this.countries.set(22, 'AE');\n this.countries.set(23, 'QA');\n this.countries.set(24, 'SA');\n this.countries.set(25, 'AT');\n this.countries.set(26, 'DE');\n this.countries.set(27, 'NL');\n this.countries.set(28, 'PL');\n this.countries.set(29, 'CH');\n this.countries.set(30, 'US');\n this.countries.set(31, 'CA');\n this.countries.set(32, 'MX');\n this.countries.set(33, 'CO');\n this.countries.set(34, 'AR');\n this.countries.set(35, 'CL');\n this.countries.set(36, 'BR');\n this.countries.set(37, 'PE');\n this.countries.set(38, 'AU');\n this.countries.set(39, 'NZ');\n this.countries.set(47, 'GR');\n this.countries.set(48, 'RS');\n this.countries.set(49, 'HR');\n this.countries.set(50, 'IE');\n this.countries.set(51, 'SV');\n\n const authentication: Authentication = this.sessionStorageService.get(AppConstants.authenticationStorageKey);\n\n this.policyMarketingTemplate = this.policyMarketingTemplate.replace('${email}', authentication.userName);\n this.policyMarketingTemplate = this.policyMarketingTemplate.replace('${uid}', authentication.userId);\n const sessionStorageNationalAnnexes = this.applicationOptionsService.options.nationalAnnexes;\n // tslint:disable-next-line:max-line-length\n const filteredNationalAnnexes = sessionStorageNationalAnnexes\n .filter(item => item.labelKey !== 'none'\n && item.id !== 13\n && item.id !== 15\n && item.id !== 16\n && item.id !== 40\n && item.id !== 41\n && item.id !== 42\n && item.id !== 43\n && item.id !== 44\n );\n const noneNationalAnnex = sessionStorageNationalAnnexes.filter(item => item.labelKey === 'none')[0];\n const nationalAnnexes = _.sortBy(filteredNationalAnnexes, [function (o) { return o.label; }]);\n nationalAnnexes.push(noneNationalAnnex);\n this.nationalAnnexes = nationalAnnexes;\n const languagesOptions = this.applicationOptionsService.options.languages;\n this.uiLanguages = _.sortBy(languagesOptions, [function (o) { return o.label; }]);\n\n this.settingsService.getSettings().subscribe(settings => {\n this.settings = settings;\n this.policyForm.get('tracking').setValue(settings.trackingPolicy);\n this.selectedCountry = this.nationalAnnexes.find(c => c.id === settings.countryNationalAnnexes);\n this.selectedUiLanguage = this.uiLanguages.filter(item => (item.value === (settings && settings.language ? settings.language || 'en' : 'en')))[0];\n this.currentUiLanguage = this.selectedUiLanguage;\n this.setUrlsLanguage();\n });\n }\n\n acceptPrivacy() {\n this.settings.trackingPolicy = this.policyForm.value.tracking;\n this.settingsService.saveSettings(this.settings).subscribe(() => {\n this.appStorageService.set(AppConstants.HVB_PRIVACY_POLICY, this.user.authentication.userId);\n this.notify.emit(true);\n });\n }\n\n cancelPrivacy() {\n this.sharedService.changeLanguage(this.currentUiLanguage.value);\n this.notify.emit(false);\n }\n\n countryChange(event) {\n if (this.selectedCountry !== event) {\n this.selectedCountry = event;\n this.settings.countryNationalAnnexes = event.id;\n this.setUrlsLanguage();\n }\n }\n\n setUrlsLanguage() {\n this.urlService.getCurrentUrlsBySettings(this.settings).subscribe((urls) => {\n this.selectedUrlsLanguage = urls.languages.find(l => l.value === this.settings.language) || urls.languages[0];\n this.policyMarketingHref = this.policyMarketingTemplate.replace('${country}', this.countries.get(this.selectedCountry.id));\n this.policyMarketingHref = this.policyMarketingHref.replace('${lang}', this.selectedUrlsLanguage.value);\n });\n }\n\n uiLanguageChange(event) {\n this.selectedUiLanguage = event;\n this.settings.language = event.value;\n this.sharedService.changeLanguage(this.selectedUiLanguage.value);\n this.setUrlsLanguage();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { DialogModule } from '@progress/kendo-angular-dialog';\nimport { DropDownsModule } from '@progress/kendo-angular-dropdowns';\n\nimport { ButtonModule, CheckboxModule } from 'hilti-ui-library';\nimport { SettingsService } from '../settings/settings.service';\nimport { SharedModule } from './../shared/shared.module';\nimport { PrivacyComponent } from './privacy.component';\n\n@NgModule({\n imports: [\n CommonModule,\n SharedModule,\n ReactiveFormsModule,\n DialogModule,\n DropDownsModule,\n FormsModule,\n ButtonModule,\n CheckboxModule\n ],\n declarations: [\n PrivacyComponent\n ],\n providers: [\n SettingsService\n ],\n exports: [\n PrivacyComponent\n ]\n})\nexport class PrivacyModule {};\n","export default \".action-button {\\n cursor: pointer;\\n position: relative;\\n text-align: left;\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n height: 34px;\\n width: 34px;\\n padding: 0;\\n border-radius: 0;\\n margin-left: 5px;\\n color: #757275; }\\n .action-button :first-child {\\n position: absolute;\\n left: 0;\\n top: 0;\\n bottom: 0;\\n width: 32px;\\n height: 32px;\\n line-height: 34px;\\n font-size: 1.6em;\\n text-align: center;\\n border-right: 1px solid transparent; }\\n .action-button :hover {\\n color: #191919; }\\n .dropzone {\\n width: 450px;\\n min-height: 200px;\\n padding: 1.7rem;\\n text-align: center;\\n border: dashed 1px #534F53;\\n position: relative;\\n margin: 0 auto; }\\n .dropzone input {\\n opacity: 0;\\n position: absolute;\\n z-index: 2;\\n width: 100%;\\n height: 100%;\\n top: 0;\\n left: 0; }\\n .dropzone label {\\n color: white;\\n width: 183px;\\n height: 44px;\\n border-radius: 21.5px;\\n background-color: red;\\n padding: 8px 16px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9idWlsZHMvYnUtZi1wcy9zaGVhci1jb25uZWN0b3IvZGVwbG95L2NvZGUvaHZiLXdlYi9odmItYXBwL3NyYy9hcHAvcHJvamVjdC9wcm9qZWN0LWxpc3QuY29tcG9uZW50LnNjc3MiLCIvYnVpbGRzL2J1LWYtcHMvc2hlYXItY29ubmVjdG9yL2RlcGxveS9jb2RlL2h2Yi13ZWIvaHZiLWFwcC9ub2RlX21vZHVsZXMvaGlsdGktdWktbGlicmFyeS9hc3NldHMvc2Fzcy9faHVpLWNvbG9ycy5zY3NzIiwiL2J1aWxkcy9idS1mLXBzL3NoZWFyLWNvbm5lY3Rvci9kZXBsb3kvY29kZS9odmItd2ViL2h2Yi1hcHAvc3JjL192YXJpYWJsZXMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTtFQUNJLGdCQUFlO0VBQ2YsbUJBQWlCO0VBQ2pCLGlCQUFlO0VBQ2Ysb0JBQWtCO0VBQ2xCLGlCQUFlO0VBQ2Ysd0JBQXNCO0VBQ3RCLGFBQVc7RUFDWCxZQUFVO0VBQ1YsV0FBUztFQUNULGlCQUFnQjtFQUNoQixpQkFBZ0I7RUFDaEIsZUNDbUIsRURldEI7RUE1QkQ7SUFjUSxtQkFBaUI7SUFDakIsUUFBTTtJQUNOLE9BQUs7SUFDTCxVQUFRO0lBQ1IsWUFBVTtJQUNWLGFBQVk7SUFDWixrQkFBZ0I7SUFDaEIsaUJBQWU7SUFDZixtQkFBaUI7SUFDakIsb0NBQWtDLEVBQ3JDO0VBeEJMO0lBMEJRLGVDVmUsRURXbEI7RUFHTDtFQUNFLGFBQVk7RUFDWixrQkFBaUI7RUFDakIsZ0JBQWU7RUFDZixtQkFBa0I7RUFDbEIsMkJFaENtQjtFRmlDbkIsbUJBQWtCO0VBQ2xCLGVBQWMsRUFxQmY7RUE1QkQ7SUFVSSxXQUFVO0lBQ1YsbUJBQWtCO0lBQ2xCLFdBQVU7SUFDVixZQUFXO0lBQ1gsYUFBWTtJQUNaLE9BQU07SUFDTixRQUFPLEVBQ1I7RUFqQkg7SUFvQkksYUFBWTtJQUNaLGFBQVk7SUFDWixhQUFZO0lBQ1osc0JBQXFCO0lBQ3JCLHNCQUFxQjtJQUNyQixrQkFBaUIsRUFDbEIiLCJmaWxlIjoic3JjL2FwcC9wcm9qZWN0L3Byb2plY3QtbGlzdC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIkBpbXBvcnQgJy4uLy4uL3ZhcmlhYmxlcyc7XG5AaW1wb3J0IFwibm9kZV9tb2R1bGVzL2hpbHRpLXVpLWxpYnJhcnkvYXNzZXRzL3Nhc3MvaHVpLWNvbG9yc1wiO1xuLmFjdGlvbi1idXR0b24ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBwb3NpdGlvbjpyZWxhdGl2ZTtcbiAgICB0ZXh0LWFsaWduOmxlZnQ7XG4gICAgd2hpdGUtc3BhY2U6bm93cmFwO1xuICAgIG92ZXJmbG93OmhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO1xuICAgIGhlaWdodDozNHB4O1xuICAgIHdpZHRoOjM0cHg7XG4gICAgcGFkZGluZzowO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgICBjb2xvcjogJGh1aS1zdGVlbC0tODA7XG4gICAgOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgcG9zaXRpb246YWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6MDtcbiAgICAgICAgdG9wOjA7XG4gICAgICAgIGJvdHRvbTowO1xuICAgICAgICB3aWR0aDozMnB4O1xuICAgICAgICBoZWlnaHQ6IDMycHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OjM0cHg7XG4gICAgICAgIGZvbnQtc2l6ZToxLjZlbTtcbiAgICAgICAgdGV4dC1hbGlnbjpjZW50ZXI7XG4gICAgICAgIGJvcmRlci1yaWdodDoxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgfVxuICAgIDpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAkaHVpLWJsYWNrLS05MDtcbiAgICB9XG59XG5cbi5kcm9wem9uZSB7XG4gIHdpZHRoOiA0NTBweDtcbiAgbWluLWhlaWdodDogMjAwcHg7XG4gIHBhZGRpbmc6IDEuN3JlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXI6IGRhc2hlZCAxcHggJGhpbHRpLXN0ZWVsO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbjogMCBhdXRvO1xuXG4gIGlucHV0IHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAyO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgfVxuXG4gIGxhYmVsIHtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgd2lkdGg6IDE4M3B4O1xuICAgIGhlaWdodDogNDRweDtcbiAgICBib3JkZXItcmFkaXVzOiAyMS41cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmVkO1xuICAgIHBhZGRpbmc6IDhweCAxNnB4O1xuICB9XG5cbn1cblxuXG5cbiIsIi8vQ29sb3JzXG4vL1RPRE86IHJlbW92ZSBwcmVmaXggaHVpIGluIGNvbG9ycyB2YXJpYWJsZVxuJGh1aS1oaWx0aS1yZWQ6ICNEMjA1MUU7XG4kaHVpLWRhcmstcmVkOiAjQUIwMTE1O1xuJGh1aS1lcnJvci1yZWQ6ICNGRjAwMDA7XG4kaHVpLWhlYXZ5LWNvbmNyZXRlLS0xMDogI0YzRjJGMDtcbiRodWktaGVhdnktY29uY3JldGUtLTIwOiAjRTdFNUUyO1xuJGh1aS1oZWF2eS1jb25jcmV0ZS0tMzA6ICNEQkQ4RDM7XG4kaHVpLWhlYXZ5LWNvbmNyZXRlLS00MDogI0NGQ0NDNTtcbiRodWktaGVhdnktY29uY3JldGUtLTYwOiAjQjdCM0FBO1xuJGh1aS1oZWF2eS1jb25jcmV0ZS0tODA6ICNBMDk5OEI7XG4kaHVpLXN0ZWVsOiAjNTI0RjUzO1xuJGh1aS1zdGVlbC0tMjA6ICNERERDREQ7XG4kaHVpLXN0ZWVsLS00MDogI0JBQjlCQTtcbiRodWktc3RlZWwtLTYwOiAjOTc5NTk4O1xuJGh1aS1zdGVlbC0tODA6ICM3NTcyNzU7XG4kaHVpLXdoaXRlOiAjRkZGO1xuJGh1aS1ibGFjazogIzAwMDtcbiRodWktYmxhY2stLTkwOiAjMTkxOTE5O1xuJGh1aS1ibGFjay0tNDA6ICM5OTk5OTk7XG4kaHVpLWdyZWVuOiAjMTlBRjM3O1xuJGh1aS1ncmVlbi0tNDA6ICNBM0RGQUY7XG4kaHVpLWRhcmstYmx1ZTogIzAwNUY5NjtcblxuJGh1aS1idXJndW5keTogIzY3MUMzRTtcblxuJGN0YTogJGh1aS1oaWx0aS1yZWQ7XG4kcHJpbWFyeTogJGh1aS1zdGVlbDtcbiRzZWNvbmRhcnk6ICRodWktaGVhdnktY29uY3JldGUtLTIwO1xuJHN1Y2Nlc3M6ICMxOUFGMzc7XG4kZGFuZ2VyOiAjRkYwMDAwO1xuJHdhcm5pbmc6ICNGRkFGMDA7XG5cbiR0aGVtZS1jb2xvcnM6IChcbiAgXCJjdGFcIjogJGN0YSxcbiAgXCJoZWF2eS1jb25jcmV0ZS0tMTBcIjogJGh1aS1oZWF2eS1jb25jcmV0ZS0tMTAsXG4gIFwiaGVhdnktY29uY3JldGUtLTIwXCI6ICRodWktaGVhdnktY29uY3JldGUtLTIwLFxuKTtcbiIsIkBpbXBvcnQgXCIuL25vZGVfbW9kdWxlcy9oaWx0aS11aS1saWJyYXJ5L2Fzc2V0cy9zYXNzL2h1aS1jb2xvcnNcIjtcbiRoaWx0aS1jb25jcmV0ZTogJGh1aS1oZWF2eS1jb25jcmV0ZS0tNDA7XG4kaGlsdGktY29uY3JldGUtbGlnaHRlbi0xOiAkaHVpLWhlYXZ5LWNvbmNyZXRlLS00MDtcbiRoaWx0aS1jb25jcmV0ZS1saWdodGVuLTI6ICNFRkVCRTU7XG4kaGlsdGktY29uY3JldGUtZGFya2VuLTI6ICM4ODdGNkU7XG4kaGlsdGktc3RlZWw6ICM1MzRGNTM7XG4kaGlsdGktc3RlZWwtbGlnaHRlbi0xOiAjOTk5OTk5O1xuJGhpbHRpLXN0ZWVsLWxpZ2h0ZW4tMjogI0RERERERDtcbiRoaWx0aS1yZWJlbC1ibHVlOiAjMzg4MEIwO1xuJGhpbHRpLXJlYmVsLWJsdWUtbGlnaHRlbi0xOiAjQ0NERkVCO1xuJGhpbHRpLWxpZ2h0LWdyZXk6ICNGQUZBRkE7XG4kaGlsdGktcmVkOiAkaHVpLWhpbHRpLXJlZDtcbiRoaWx0aS1wbGFjZWhvbGRlcjogI2Q3ZDdkNztcbiRoaWx0aS1ob3ZlcjogI0YzRjJGMDtcbiRoaWx0aS1zZWxlY3RlZDogI0Q4RDhEODtcbiRoaWx0aS1kaXNhYmxlZDogI0U3RTVFMTtcbiR0YWJzdHJpcC1jb250ZW50LXBhZGRpbmcteDogMHB4O1xuJHRhYnN0cmlwLWNvbnRlbnQtcGFkZGluZy15OiAwcHg7XG4kdGFic3RyaXAtY29udGVudC1ib3JkZXItd2lkdGg6IDBweDtcbiRncmlkLWhlYWRlci1iZzogd2hpdGU7XG4kZ3JpZC1ib3JkZXI6IHJnYmEoJGh1aS1oZWF2eS1jb25jcmV0ZS0tMjAsIDApO1xuJGdyaWQtaGVhZGVyLWJvcmRlcjogcmdiYSgkaHVpLWhlYXZ5LWNvbmNyZXRlLS0yMCwgMSk7XG4kZ3JpZC1hbHQtYmc6IHJnYmEod2hpdGUsIDApO1xuJGdyaWQtaG92ZXJlZC1iZzogJGh1aS1zdGVlbC0tMjA7XG4iXX0= */\"","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { DataStateChangeEvent, GridComponent, PageChangeEvent, SelectionEvent } from '@progress/kendo-angular-grid';\nimport { SortDescriptor } from '@progress/kendo-data-query';\nimport { ConfigService } from 'app/service/config.service';\nimport { environment } from 'environments/environment';\nimport * as FileSaver from 'file-saver';\nimport { Subject } from 'rxjs';\nimport { SharedService } from '../service/common/shared.service';\nimport { SearchService } from '../shared/search/search.service';\nimport * as models from './../models/models';\nimport { Project } from './../models/project';\nimport { AuthService } from './../service/common/auth.service';\nimport { UserService } from './../service/common/user.service';\nimport { WindowRefService } from './../service/common/window.ref.service';\nimport { AppStorageService } from './../service/util/app-storage.service';\nimport { SettingsService } from './../settings/settings.service';\nimport { ProjectStatus } from './project-status';\nimport * as _ from 'lodash';\nimport { ProjectService } from './project.service';\n\n@Component({\n templateUrl: './project-list.component.html',\n styleUrls: ['./project-list.component.scss']\n})\nexport class ProjectListComponent implements OnInit {\n public sort: SortDescriptor[] = [];\n public gridView: ProjectService;\n @ViewChild(GridComponent, { static: true }) grid: GridComponent;\n public skip = 0;\n public pageSize = 10;\n public pageNumber = 1;\n public start = 0;\n private editDataItem: Project;\n private isNew: boolean;\n public shouldSortAscending = true;\n public searchString = '';\n public sortBy = '';\n private sortTitle = '';\n public sortOptions: string[];\n public sortOption: string;\n private language: string;\n public newProjectName: string;\n public newProjectPreparedBy: string;\n public showNewProjectDialog: boolean;\n public showDeleteDialog: boolean;\n public selectedProjects: Map;\n public selectProjectTrigger: number;\n public selectProjectEvent: SelectionEvent;\n public locale: string;\n public showImportDialog: boolean;\n public importProjectName: string;\n public importProjectFile: any;\n public showExport = false;\n public areItemsSelected: boolean;\n public disableCreateButton = false;\n public disableImportButton = false;\n public isImportedFileValid = false;\n public subprojectListShouldBeUpdated = new Subject();\n\n constructor(\n private configService: ConfigService,\n private service: ProjectService,\n private sharedService: SharedService,\n private activatedRoute: ActivatedRoute,\n private router: Router,\n private translate: TranslateService,\n private user: UserService,\n private settingsService: SettingsService,\n private windowRef: WindowRefService,\n private searchService: SearchService,\n private appStorage: AppStorageService,\n private auth: AuthService) {\n this.selectProjectTrigger = 0;\n this.sortBy = 'updatedOn';\n this.shouldSortAscending = false;\n this.gridView = service;\n this.showImportDialog = false;\n this.selectedProjects = new Map();\n this.areItemsSelected = false;\n }\n\n public ngOnInit(): void {\n this.sharedService.showLoader(true);\n this.settingsService.getSettings().subscribe(defaultSettings => {\n this.sharedService.showLoader(false);\n if (!defaultSettings) {\n this.router.navigate(['/settings']);\n } else {\n this.user.defaultSettings = defaultSettings;\n this.language = this.user.defaultSettings && this.user.defaultSettings.language ? this.user.defaultSettings.language :\n window.navigator.language;\n this.locale = window.navigator.language; // The date formats will be displayed in browser's locale always\n console.log('Project List Language = ', this.language);\n }\n });\n this.service.query({\n pageNumber: this.pageNumber, pageSize: this.pageSize, searchString: this.searchString,\n sortBy: this.sortBy, shouldSortAscending: this.shouldSortAscending\n });\n\n this.searchService.searchEvent.subscribe((searchText) => {\n this.search(searchText);\n });\n }\n\n public dataStateChange({ skip, take, sort }: DataStateChangeEvent): void {\n (skip > 0) ? this.pageNumber = (skip / take) + 1 : this.pageNumber = 1;\n if (sort && sort.length > 0) {\n this.sort = sort;\n this.sortBy = this.sort[0].field;\n this.shouldSortAscending = this.sort[0].dir === 'asc' ? true : false;\n }\n this.service.query({\n pageNumber: this.pageNumber, pageSize: this.pageSize,\n searchString: this.searchString, sortBy: this.sortBy, shouldSortAscending: this.shouldSortAscending\n });\n }\n public addHandler() {\n this.editDataItem = new Project();\n this.isNew = true;\n }\n\n public editHandler({ dataItem }) {\n this.editDataItem = dataItem;\n this.isNew = false;\n }\n\n public pageChange(event: PageChangeEvent): void {\n this.skip = event.skip;\n this.pageNumber = (this.skip > 0) ? this.pageNumber = (this.skip / event.take) + 1 : 1;\n this.service.query({\n pageNumber: this.pageNumber, pageSize: this.pageSize,\n searchString: this.searchString, sortBy: this.sortBy, shouldSortAscending: this.shouldSortAscending\n });\n }\n\n public logout(): void {\n this.auth.logout();\n if (environment.localTesting) {\n this.router.navigate(['/logout']);\n }\n }\n\n public cancelHandler() {\n this.editDataItem = undefined;\n }\n\n public saveHandler(project: Project) {\n this.editDataItem = undefined;\n }\n\n onProjectSelect(dataItem) {\n\n this.router.navigate(['/project', { id: dataItem.id }]);\n }\n\n search(val: string): void {\n this.searchString = val;\n this.pageNumber = 1;\n this.skip = 0;\n this.service.query({\n pageNumber: this.pageNumber, pageSize: this.pageSize,\n searchString: this.searchString, sortBy: this.sortBy, shouldSortAscending: this.shouldSortAscending\n });\n }\n\n saveProejct() {\n if (this.disableCreateButton) {\n this.service.createProject({\n name: this.newProjectName,\n preparedBy: this.newProjectPreparedBy\n }).subscribe(\n (project) => this.onSaveComplete(project),\n (error: any) => this.onSaveFailure(error)\n );\n }\n }\n\n addNewProject() {\n this.newProjectName = '';\n this.newProjectPreparedBy = this.user.authentication.userName;\n this.showNewProjectDialog = true;\n }\n\n private createNewProjectAndOpen() {\n if (this.newProjectName && this.newProjectName.length >= 3) {\n this.disableCreateButton = true;\n this.sharedService.showLoader(true);\n this.service.searchForProject(this.newProjectName).subscribe(response => {\n if (response.totalCount > 0) {\n response.projects.forEach(project => {\n if (project.name.toLowerCase() === this.newProjectName.toLowerCase()) {\n this.sharedService.popFailure('project-name-must-be-unique');\n this.disableCreateButton = false;\n this.sharedService.showLoader(false);\n }\n });\n this.saveProejct();\n } else {\n this.saveProejct();\n }\n }, () => { this.sharedService.showLoader(false); this.disableCreateButton = false; });\n\n }\n }\n\n private onSaveComplete(project, isNew = true): void {\n this.disableCreateButton = false;\n this.sharedService.showLoader(false);\n this.router.navigate(['/project', { id: project.id, isNew: isNew }]);\n }\n\n private onSaveFailure(error) {\n this.showNewProjectSaveFailedMessage();\n }\n\n private onProjectStatusChangeSuccess(status) {\n if (status === ProjectStatus.deleted) {\n this.areItemsSelected = false;\n this.selectedProjects.clear();\n this.sharedService.popSuccess('item-delete');\n }\n this.service.query({\n pageNumber: this.pageNumber, pageSize: this.pageSize, searchString: this.searchString,\n sortBy: this.sortBy, shouldSortAscending: this.shouldSortAscending\n });\n this.subprojectListShouldBeUpdated.next();\n }\n\n showNewProjectSaveFailedMessage = () => {\n this.sharedService.showLoader(false);\n this.sharedService.popFailure('project-create-failure');\n }\n\n public onDelete(selectedProjects: Map) {\n this.setStatus(selectedProjects, ProjectStatus.deleted);\n }\n\n public checkSelectedItems() {\n let areItemsSelected = false;\n this.selectedProjects.forEach(pr => {\n if (pr.selected) {\n areItemsSelected = true;\n } else {\n pr.subProjects.forEach(sp => {\n if (sp.selected) {\n areItemsSelected = true;\n }\n });\n }\n });\n this.areItemsSelected = areItemsSelected;\n }\n\n private setStatus(selectedProjects: Map, status: number): void {\n const projectIds: number[] = [];\n const subProjectIds: number[] = [];\n selectedProjects.forEach(pr => {\n if (pr.selected) {\n projectIds.push(pr.id);\n } else {\n pr.subProjects.forEach(sp => {\n if (sp.selected) {\n subProjectIds.push(sp.id);\n }\n })\n }\n })\n this.showDeleteDialog = false;\n if (projectIds.length > 0 || subProjectIds.length > 0) {\n this.service.setStatus(projectIds, subProjectIds, status)\n .subscribe(\n () => this.onProjectStatusChangeSuccess(status),\n (error: any) => this.sharedService.popFailure(error)\n );\n }\n }\n\n public deleteProject(): void {\n this.showDeleteDialog = true;\n }\n\n public onProjectSelected(event: SelectionEvent) {\n if (event.deselectedRows.length > 0) {\n event.deselectedRows.forEach(row => {\n if (this.selectedProjects.has(row.dataItem.id)) {\n this.selectedProjects.get(row.dataItem.id).selected = false;\n }\n });\n }\n if (event.selectedRows.length > 0) {\n event.selectedRows.forEach(row => {\n if (this.selectedProjects.has(row.dataItem.id)) {\n this.selectedProjects.get(row.dataItem.id).selected = true;\n } else {\n this.selectedProjects.set(row.dataItem.id, {\n id: row.dataItem.id,\n name: row.dataItem.name,\n selected: true,\n subProjects: new Map(),\n });\n }\n });\n }\n this.selectProjectEvent = event;\n this.checkSelectedItems();\n\n }\n\n public exportProject() {\n this.selectedProjects.forEach(pr => {\n const subProjectIds: number[] = [];\n pr.subProjects.forEach(sp => {\n if (sp.selected) {\n subProjectIds.push(sp.id);\n }\n })\n if (subProjectIds.length > 0 || pr.selected) {\n this.service.getProjectJson(pr.id, subProjectIds)\n .subscribe((data) => {\n const jsonData = new Blob([JSON.stringify(data)], { type: 'application/json' });\n const filename = pr.name + '-' + (new Date).toISOString() + '.json';\n FileSaver.saveAs(jsonData, filename);\n }\n , error => {\n console.log('Error export project');\n }, () => {\n });\n }\n })\n }\n\n public selectSubProject(event) {\n this.selectProjectEvent = null;\n if (!this.selectedProjects.has(event.projectId)) {\n this.selectedProjects.set(event.projectId, {\n id: event.projectId,\n name: event.projectName,\n selected: false,\n subProjects: new Map(),\n });\n }\n this.selectedProjects.get(event.projectId).subProjects.forEach(sp => sp.selected = false);\n event.selectedSubProjectsIds.forEach(id => {\n if (this.selectedProjects.get(event.projectId).subProjects.has(id)) {\n this.selectedProjects.get(event.projectId).subProjects.get(id).selected = true;\n } else {\n this.selectedProjects.get(event.projectId).subProjects.set(id, {\n selected: true,\n id: id,\n });\n }\n });\n if (event.selectedSubProjectsIds.length < event.subProjectCount) {\n this.selectedProjects.get(event.projectId).selected = false;\n } else {\n this.selectedProjects.get(event.projectId).selected = true;\n }\n this.checkSelectedItems();\n }\n\n public onProjectClick(project: any): void {\n this.router.navigate(['/project', { id: project.id }]);\n }\n\n openImportDialog() {\n this.importProjectName = '';\n this.isImportedFileValid = false;\n this.showImportDialog = true;\n }\n\n importFileChange(importFileEvent: any) {\n this.importProjectFile = importFileEvent.target.files[0] ? importFileEvent.target.files[0] : null;\n if (this.importProjectFile) {\n this.isImportedFileValid = this.importProjectFile.name.split('.').pop().toLowerCase() === 'json';\n } else {\n this.isImportedFileValid = false;\n }\n }\n\n public importProjectAndOpen() {\n this.disableImportButton = true;\n this.sharedService.showLoader(true);\n this.service.searchForProject(this.importProjectName).subscribe(response => {\n if (response.totalCount > 0) {\n response.projects.forEach(project => {\n if (project.name.toLowerCase() === this.importProjectName.toLowerCase()) {\n this.sharedService.popFailure('project-name-must-be-unique');\n this.disableImportButton = false;\n this.sharedService.showLoader(false);\n }\n });\n this.importProject();\n } else {\n this.importProject();\n }\n }, () => { this.sharedService.showLoader(false); this.disableImportButton = false; });\n }\n private importProject() {\n if (this.disableImportButton) {\n this.service.importProject(this.importProjectName, this.importProjectFile)\n .subscribe(\n (project) => this.onSaveComplete(project, false),\n (error: any) => {\n this.sharedService.showLoader(false);\n this.sharedService.popFailure('json-file-corrupted');\n });\n }\n }\n\n onFileDropped($event: FileList[]) {\n this.importProjectFile = $event[0];\n this.isImportedFileValid = this.importProjectFile.name.split('.').pop().toLowerCase() === 'json';\n }\n}\n","import { Injectable } from '@angular/core';\nimport { CanDeactivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\nimport { ProjectComponent } from './project.component';\nimport { Observable } from 'rxjs';\n\n@Injectable()\nexport class ProjectSaveGuard implements CanDeactivate {\n constructor() {\n\n }\n\n canDeactivate(component: ProjectComponent,\n currentRoute: ActivatedRouteSnapshot,\n currentState: RouterStateSnapshot,\n nextState: RouterStateSnapshot): Observable | Promise | boolean {\n\n if (component.projectForm.dirty) {\n component.showSaveOnDestroyDialog = true;\n return component.$saveOnLeaveObs;\n } else {\n return true;\n }\n }\n}\n","export enum ProjectStatus {\n active = 0,\n deleted = 1,\n}\n","export default \"fieldset {\\n border-bottom: 0px;\\n border-left: 0px;\\n border-right: 0px;\\n border-top: 1px solid #DDDDDD; }\\n\\nfieldset legend {\\n width: inherit; }\\n\\n.safety-legend {\\n text-align: left;\\n padding-right: .5rem;\\n font-size: .8rem;\\n color: #534F53; }\\n\\n.form-group {\\n margin-bottom: .25rem; }\\n\\ntextarea {\\n resize: none;\\n min-height: 76px;\\n max-height: 76px; }\\n\\n/deep/ .general-error > ul > li:nth-child(1) ::after {\\n color: red !important;\\n content: \\\"*\\\"; }\\n\\n/deep/ .safetyfactor-error > ul > li:nth-child(2) ::after {\\n color: red !important;\\n content: \\\"*\\\"; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9idWlsZHMvYnUtZi1wcy9zaGVhci1jb25uZWN0b3IvZGVwbG95L2NvZGUvaHZiLXdlYi9odmItYXBwL3NyYy9hcHAvcHJvamVjdC9wcm9qZWN0LmNvbXBvbmVudC5zY3NzIiwiL2J1aWxkcy9idS1mLXBzL3NoZWFyLWNvbm5lY3Rvci9kZXBsb3kvY29kZS9odmItd2ViL2h2Yi1hcHAvc3JjL192YXJpYWJsZXMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTtFQUNJLG1CQUFrQjtFQUNsQixpQkFBZ0I7RUFDaEIsa0JBQWlCO0VBQ2pCLDhCQ0MyQixFREE5Qjs7QUFDRDtFQUNJLGVBQWMsRUFDakI7O0FBQ0Q7RUFDSSxpQkFBZ0I7RUFDaEIscUJBQW9CO0VBQ3BCLGlCQUFnQjtFQUNoQixlQ1ZpQixFRFdwQjs7QUFDRDtFQUNJLHNCQUFxQixFQUN4Qjs7QUFDRDtFQUNJLGFBQVk7RUFDWixpQkFBZ0I7RUFDaEIsaUJBQWdCLEVBQ25COztBQUVEO0VBRVEsc0JBQXFCO0VBQ3JCLGFBQVksRUFDZjs7QUFHTDtFQUVRLHNCQUFxQjtFQUNyQixhQUFZLEVBQ2YiLCJmaWxlIjoic3JjL2FwcC9wcm9qZWN0L3Byb2plY3QuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAaW1wb3J0ICcuLi8uLi92YXJpYWJsZXMnO1xuXG5maWVsZHNldCB7XG4gICAgYm9yZGVyLWJvdHRvbTogMHB4O1xuICAgIGJvcmRlci1sZWZ0OiAwcHg7XG4gICAgYm9yZGVyLXJpZ2h0OiAwcHg7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRoaWx0aS1zdGVlbC1saWdodGVuLTI7XG59XG5maWVsZHNldCBsZWdlbmQge1xuICAgIHdpZHRoOiBpbmhlcml0O1xufVxuLnNhZmV0eS1sZWdlbmQge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgcGFkZGluZy1yaWdodDogLjVyZW07XG4gICAgZm9udC1zaXplOiAuOHJlbTtcbiAgICBjb2xvcjogJGhpbHRpLXN0ZWVsO1xufVxuLmZvcm0tZ3JvdXAge1xuICAgIG1hcmdpbi1ib3R0b206IC4yNXJlbTtcbn1cbnRleHRhcmVhIHtcbiAgICByZXNpemU6IG5vbmU7XG4gICAgbWluLWhlaWdodDogNzZweDtcbiAgICBtYXgtaGVpZ2h0OiA3NnB4O1xufVxuXG4vZGVlcC8gLmdlbmVyYWwtZXJyb3IgPiB1bCA+IGxpOm50aC1jaGlsZCgxKSB7XG4gICAgOjphZnRlciB7XG4gICAgICAgIGNvbG9yOiByZWQgIWltcG9ydGFudDtcbiAgICAgICAgY29udGVudDogXCIqXCI7XG4gICAgfVxufVxuXG4vZGVlcC8gLnNhZmV0eWZhY3Rvci1lcnJvciA+IHVsID4gbGk6bnRoLWNoaWxkKDIpIHtcbiAgICA6OmFmdGVyIHtcbiAgICAgICAgY29sb3I6IHJlZCAhaW1wb3J0YW50O1xuICAgICAgICBjb250ZW50OiBcIipcIjtcbiAgICB9XG59XG5cbiIsIkBpbXBvcnQgXCIuL25vZGVfbW9kdWxlcy9oaWx0aS11aS1saWJyYXJ5L2Fzc2V0cy9zYXNzL2h1aS1jb2xvcnNcIjtcbiRoaWx0aS1jb25jcmV0ZTogJGh1aS1oZWF2eS1jb25jcmV0ZS0tNDA7XG4kaGlsdGktY29uY3JldGUtbGlnaHRlbi0xOiAkaHVpLWhlYXZ5LWNvbmNyZXRlLS00MDtcbiRoaWx0aS1jb25jcmV0ZS1saWdodGVuLTI6ICNFRkVCRTU7XG4kaGlsdGktY29uY3JldGUtZGFya2VuLTI6ICM4ODdGNkU7XG4kaGlsdGktc3RlZWw6ICM1MzRGNTM7XG4kaGlsdGktc3RlZWwtbGlnaHRlbi0xOiAjOTk5OTk5O1xuJGhpbHRpLXN0ZWVsLWxpZ2h0ZW4tMjogI0RERERERDtcbiRoaWx0aS1yZWJlbC1ibHVlOiAjMzg4MEIwO1xuJGhpbHRpLXJlYmVsLWJsdWUtbGlnaHRlbi0xOiAjQ0NERkVCO1xuJGhpbHRpLWxpZ2h0LWdyZXk6ICNGQUZBRkE7XG4kaGlsdGktcmVkOiAkaHVpLWhpbHRpLXJlZDtcbiRoaWx0aS1wbGFjZWhvbGRlcjogI2Q3ZDdkNztcbiRoaWx0aS1ob3ZlcjogI0YzRjJGMDtcbiRoaWx0aS1zZWxlY3RlZDogI0Q4RDhEODtcbiRoaWx0aS1kaXNhYmxlZDogI0U3RTVFMTtcbiR0YWJzdHJpcC1jb250ZW50LXBhZGRpbmcteDogMHB4O1xuJHRhYnN0cmlwLWNvbnRlbnQtcGFkZGluZy15OiAwcHg7XG4kdGFic3RyaXAtY29udGVudC1ib3JkZXItd2lkdGg6IDBweDtcbiRncmlkLWhlYWRlci1iZzogd2hpdGU7XG4kZ3JpZC1ib3JkZXI6IHJnYmEoJGh1aS1oZWF2eS1jb25jcmV0ZS0tMjAsIDApO1xuJGdyaWQtaGVhZGVyLWJvcmRlcjogcmdiYSgkaHVpLWhlYXZ5LWNvbmNyZXRlLS0yMCwgMSk7XG4kZ3JpZC1hbHQtYmc6IHJnYmEod2hpdGUsIDApO1xuJGdyaWQtaG92ZXJlZC1iZzogJGh1aS1zdGVlbC0tMjA7XG4iXX0= */\"","\nimport { forkJoin as observableForkJoin, Subject, Subscription } from 'rxjs';\n\nimport { mergeMap, debounceTime } from 'rxjs/operators';\nimport { UserService } from './../service/common/user.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { SessionStorageService } from './../service/util/session-storage.service';\nimport { Component, OnInit, AfterViewInit, ElementRef, ViewChild, OnDestroy } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\nimport { SharedService } from '../service/common/shared.service';\nimport { ActivatedRoute, Router, Params } from '@angular/router';\nimport { ProjectService } from './project.service';\nimport * as _ from 'lodash';\nimport { GenericValidator } from './../common/generic-validator';\nimport { TabStripComponent } from '@progress/kendo-angular-layout';\nimport { CustomValidators } from 'ng2-validation';\nimport { NavService, INavItem } from '../service/common/nav.service';\nimport { SubProjectService } from 'app/subproject/sub-project.service';\nimport { NationalAnnexSortingHelper } from '../common/utils';\nimport { SettingsComponent } from '../settings/settings.component';\nimport { SubProjectStatus } from 'app/subproject/sub-project-status';\nimport { ApplicationOptionsService } from 'app/service/common/application-options.service';\nimport { Options, PartialFactor, Project, SubProject } from 'app/models/models';\n\n@Component({\n selector: 'app-project',\n templateUrl: './project.component.html',\n styleUrls: ['./project.component.scss']\n})\n\nexport class ProjectComponent implements OnInit, AfterViewInit, OnDestroy {\n public static UNITS_ID = 3;\n public static DEFAULT_NATIONAL_ANNEX = 7;\n public static DEFAULT_LOAD = 1;\n public static DEFAULT_DESIGN_CODE = 1;\n public static DEFAULT_LANGUAGE_CODE = 'en';\n public static DEFAULT_UNIT_SYSTEM = 1;\n public static DEFAULT_US_DEAD_LOAD_1 = 1.4;\n public static DEFAULT_US_DEAD_LOAD_2 = 1.2;\n public static DEFAULT_US_LIVE_LOAD_2 = 1.6;\n public static DEFAULT_US_PHI_ELASTIC = 0.9;\n @ViewChild('projectTabStrip', { static: true }) projectTabStrip: TabStripComponent;\n @ViewChild('generalGroup', { static: false }) generalGroupElement: ElementRef;\n @ViewChild('metricSystemGroup', { static: false }) metricSystemGroupElement: ElementRef;\n @ViewChild('usSystemGroup', { static: false }) usSystemGroupElement: ElementRef;\n @ViewChild('projectName', { static: false }) projectNameElement: ElementRef;\n @ViewChild('company', { static: false }) companyElement: ElementRef;\n @ViewChild('address1', { static: false }) address1Element: ElementRef;\n @ViewChild('address2', { static: false }) address2Element: ElementRef;\n @ViewChild('city', { static: false }) cityElement: ElementRef;\n @ViewChild('state', { static: false }) stateElement: ElementRef;\n @ViewChild('postalCode', { static: false }) postalCodeElement: ElementRef;\n @ViewChild('contractorName', { static: false }) contractorNameElement: ElementRef;\n @ViewChild('reference', { static: false }) referenceElement: ElementRef;\n @ViewChild('responsible', { static: false }) responsibleElement: ElementRef;\n @ViewChild('preparedBy', { static: false }) preparedByElement: ElementRef;\n @ViewChild('designCode', { static: false }) designCodeElement: ElementRef;\n @ViewChild('countryNationalAnnexes', { static: false }) nationalAnnexesElement: ElementRef;\n @ViewChild('loadUnit', { static: false }) codeElement: ElementRef;\n @ViewChild('lengthUnit', { static: false }) lengthUnitElement: ElementRef;\n @ViewChild('language', { static: false }) languageElement: ElementRef;\n @ViewChild('ulsGammaG', { static: false }) ulsGammaGElement: ElementRef;\n @ViewChild('ulsGammaQ', { static: false }) ulsGammaQElement: ElementRef;\n @ViewChild('sectionResistance', { static: false }) sectionResistanceElement: ElementRef;\n @ViewChild('elementResistance', { static: false }) elementResistanceElement: ElementRef;\n @ViewChild('steelProfile', { static: false }) steelProfileElement: ElementRef;\n @ViewChild('reinforcementSafety', { static: false }) reinforcementSafetyElement: ElementRef;\n @ViewChild('concrete', { static: false }) concreteElement: ElementRef;\n @ViewChild('connectorResistance', { static: false }) connectorResistanceElement: ElementRef;\n public projectForm: FormGroup;\n public generalGroup: FormGroup;\n public metricSystemGroup: FormGroup;\n public usSystemGroup: FormGroup;\n public asSystemGroup: FormGroup;\n public loadUnits: any[] = [];\n public lengthUnits: any[] = [];\n public languages: any[] = [];\n public nationalAnnexes: any[] = [];\n public loadCategories: any[] = [];\n public partialFactors: PartialFactor[] = [];\n public displayMessage: { [key: string]: string } = {};\n public designCodes: any[] = [];\n public unitSystems: any[] = [];\n public validationMessages: { [key: string]: { [key: string]: string } };\n public safetyFactor: any;\n public dropDownOptions: Options;\n public genericValidator: GenericValidator;\n public generalInformation: any;\n public projectId: number;\n public formErrors: any;\n public subProjectParam: any;\n public selectedTab: number;\n public language: string;\n public isNew: boolean;\n public showSaveOnDestroyDialog = false;\n public _saveOnLeaveSubject: Subject = new Subject();\n public $saveOnLeaveObs = this._saveOnLeaveSubject.asObservable();\n public project: Project | undefined;\n public canChangeUnitSystem = true;\n public canChangeCountry = true;\n public subprojects: SubProject[];\n public initialized = false;\n private subProjectSubscription: Subscription;\n\n constructor(private projectService: ProjectService,\n private subProjectService: SubProjectService,\n private sharedService: SharedService,\n private user: UserService,\n private sessionStorageService: SessionStorageService,\n private activatedRoute: ActivatedRoute,\n public translate: TranslateService,\n private fb: FormBuilder,\n private router: Router,\n private navService: NavService,\n private applicationOptionsService: ApplicationOptionsService) {\n this.subProjectParam = {};\n\n this.projectId = this.activatedRoute.snapshot.params['id'] as number;\n this.subProjectParam.id = this.projectId;\n this.isNew = this.activatedRoute.snapshot.params['isNew'] === 'true';\n\n this.activatedRoute.params.subscribe((params: Params) => {\n if (params['isNew']) {\n this.isNew = params['isNew'] === 'true';\n }\n });\n\n this.validationMessages = {\n projectName: {\n required: 'project-name-is-required'\n },\n preparedBy: {\n required: 'preparedby-is-required'\n }, ulsGammaG: {\n required: 'uls-combination-g-is-required'\n }, ulsGammaQ: {\n required: 'uls-combination-q-is-required'\n }, concrete: {\n required: 'concrete-is-required'\n }, reinforcementSafety: {\n required: 'reinforcement-safety-is-required'\n }, steelProfile: {\n required: 'steel-profile-is-required'\n }, connectorResistance: {\n required: 'connector-resistance-is-required'\n }, sectionResistance: {\n required: 'section-resistance-is-required'\n }, elementResistance: {\n required: 'element-resistance-is-required'\n }\n\n };\n this.genericValidator = new GenericValidator(this.validationMessages);\n this.initForm();\n }\n\n\n saveOnLeave(doSave = true, doLeave = true) {\n if (doSave) {\n this.saveProject(doLeave);\n } else {\n this.showSaveOnDestroyDialog = false;\n this._saveOnLeaveSubject.next(doLeave);\n }\n }\n\n onTabSelected(event) {\n this.selectedTab = event.index;\n }\n\n resetGeneralInformation(): void {\n this.generalInformation = {\n id: null,\n name: '',\n company: '',\n address1: '',\n contractor: '',\n comments: '',\n preparedBy: '',\n phone: '',\n email: ''\n };\n }\n\n private updateNav() {\n try {\n this.navService.setNav([{\n routeName: 'Home',\n routeUrl: '/projects'\n }, {\n routeName: this.generalGroup.get('projectName').value,\n routeUrl: undefined\n }\n ]);\n } catch (err) {\n\n }\n }\n\n backToProjects() {\n this.router.navigate(['/projects']);\n }\n\n onNationalAnnexChange(nationalAnnex) {\n this.projectForm.patchValue({\n metricSystemGroup: this.getPartialFactors(nationalAnnex.id)\n });\n }\n\n activateValueChanges() {\n this.generalGroup.get('projectName').valueChanges.pipe(debounceTime(200)).subscribe(() => {\n this.updateNav();\n });\n this.metricSystemGroup.get('countryNationalAnnexes').valueChanges.pipe(debounceTime(500)).subscribe(na => {\n this.onNationalAnnexChange(na);\n });\n this.projectForm.get('unitSystem').valueChanges.pipe(debounceTime(500)).subscribe(unitSystem => {\n this.onUnitSystemChange(unitSystem.id);\n });\n this.projectForm.get('designCode').valueChanges.pipe(debounceTime(500)).subscribe(designCode => {\n this.onDesignCodeChange(designCode.id);\n });\n }\n\n async ngOnInit() {\n this.sharedService.changeBreadCrumb('project');\n this.setDropDowns(this.applicationOptionsService.options);\n if (this.projectId) {\n this.sharedService.showLoader(true);\n this.subprojects = (await this.projectService.getsubProjects(this.projectId).toPromise()).subProjects;\n\n this.projectService.getProjectById(this.projectId).subscribe(\n (response: Project) => {\n this.project = this.initializeProject(response);\n this.onUnitSystemChange(this.project.unit);\n this.loadForm(this.project);\n this.subProjectSubscription = this.subProjectService.subProjectStatusChange.subscribe(subProjectStatusResponse => {\n const deletedSubprojectIds = subProjectStatusResponse.subProjects\n .filter(subproject => subproject.status == SubProjectStatus.deleted)\n .map(subproject => subproject.id);\n\n this.subprojects = this.subprojects.filter(x => !deletedSubprojectIds.includes(x.id))\n this.checkThatUserCanChangeUnitSystem();\n this.checkThatUserCanChangeCountry();\n });\n this.checkThatUserCanChangeCountry();\n this.checkThatUserCanChangeUnitSystem();\n this.subProjectParam = this.project;\n this.activateValueChanges();\n this.updateNav();\n if (this.isNew) {\n this.saveProject(false);\n }\n },\n (error: any) => {\n this.sharedService.showLoader(false);\n this.sharedService.popFailure('project-open-failure');\n console.log(error);\n },\n () => {\n this.initialized = true;\n this.sharedService.showLoader(false);\n }\n );\n } else {\n this.activateValueChanges();\n }\n }\n\n ngAfterViewInit() {\n\n }\n\n ngOnDestroy(): void {\n this.subProjectSubscription.unsubscribe();\n this.navService.setNav(null);\n }\n\n setDropDowns(options: Options): void {\n this.loadUnits = _.sortBy(options.loadUnits, [function (o) { return o.label; }]);\n this.lengthUnits = _.sortBy(options.lengthUnits, [function (o) { return o.label; }]);\n this.languages = _.sortBy(options.languages, [function (o) { return o.label; }]);\n // Sort the National Annexes with out None and add None to the end\n const filteredNationalAnnexes = options.nationalAnnexes.filter(item => item.labelKey !== 'none' && item.id !== 13 && item.id !== 15 && item.id !== 16);\n const noneNationalAnnex = options.nationalAnnexes.filter(item => item.labelKey === 'none')[0];\n const nationalAnnexes = _.sortBy(filteredNationalAnnexes, [function (o) { return o.label; }]);\n nationalAnnexes.push(noneNationalAnnex);\n this.nationalAnnexes = nationalAnnexes;\n this.partialFactors = options.partialFactors;\n this.designCodes = options.designCodes;\n this.unitSystems = options.unitSystems;\n this.dropDownOptions = options;\n }\n\n getPartialFactors(nationalAnnexId: number): any {\n this.safetyFactor = this.partialFactors.filter(item => item.nationalAnnexId === nationalAnnexId)[0];\n return {\n sectionResistance: this.safetyFactor.gammaM0,\n concrete: this.safetyFactor.gammaC,\n reinforcementSafety: this.safetyFactor.gammaS,\n ulsGammaG: this.safetyFactor.gammaG,\n ulsGammaQ: this.safetyFactor.gammaQ,\n steelProfile: this.safetyFactor.gammaP,\n connectorResistance: this.safetyFactor.gammaV,\n elementResistance: this.safetyFactor.gammaM1\n };\n }\n\n initializeProject(data: Project): Project {\n const settings = this.user.defaultSettings;\n const project: Project = {\n id: data.id,\n name: data.name,\n company: data.company,\n address1: data.address1,\n address2: data.address2,\n city: data.city,\n stateProvince: data.stateProvince,\n postalCode: data.postalCode,\n country: null,\n contractor: data.contractor,\n reference: data.reference,\n responsible: data.responsible,\n phone: data.phone,\n email: data.email,\n preparedBy: data.preparedBy,\n comments: data.comments,\n\n ulsGammaG: this.isNew ? settings.ulsGammaG : data.ulsGammaG,\n ulsGammaQ: this.isNew ? settings.ulsGammaQ : data.ulsGammaQ,\n designCode: this.isNew ? settings.designCode : data.designCode,\n countryNationalAnnexes: this.isNew ? settings.countryNationalAnnexes : data.countryNationalAnnexes,\n language: this.isNew ? settings.language : data.language,\n loadUnit: this.isNew ? settings.loadUnit : data.loadUnit,\n lengthUnit: this.isNew ? settings.lengthUnit : data.lengthUnit,\n structuralSteelSection: this.isNew ? settings.structuralSteelSection : data.structuralSteelSection,\n structuralSteelElement: this.isNew ? settings.structuralSteelElement : data.structuralSteelElement,\n concrete: this.isNew ? settings.concrete : data.concrete,\n connector: this.isNew ? settings.connector : data.connector,\n reinforcement: this.isNew ? settings.reinforcement : data.reinforcement,\n steelProfile: this.isNew ? settings.steelProfile : data.steelProfile,\n\n unit: this.isNew ? (settings.unit ? settings.unit : ProjectComponent.DEFAULT_UNIT_SYSTEM)\n : (data.unit ? data.unit : ProjectComponent.DEFAULT_UNIT_SYSTEM),\n usDeadLoad1: this.isNew ? (settings.usDeadLoad1 ? settings.usDeadLoad1 : ProjectComponent.DEFAULT_US_DEAD_LOAD_1)\n : (data.usDeadLoad1 ? data.usDeadLoad1 : ProjectComponent.DEFAULT_US_DEAD_LOAD_1),\n usDeadLoad2: this.isNew ? (settings.usDeadLoad2 ? settings.usDeadLoad2 : ProjectComponent.DEFAULT_US_DEAD_LOAD_2)\n : (data.usDeadLoad2 ? data.usDeadLoad2 : ProjectComponent.DEFAULT_US_DEAD_LOAD_2),\n usLiveLoad2: this.isNew ? (settings.usLiveLoad2 ? settings.usLiveLoad2 : ProjectComponent.DEFAULT_US_LIVE_LOAD_2)\n : (data.usLiveLoad2 ? data.usLiveLoad2 : ProjectComponent.DEFAULT_US_LIVE_LOAD_2),\n usPhiElastic: this.isNew ? (settings.usPhiElastic ? settings.usPhiElastic : ProjectComponent.DEFAULT_US_PHI_ELASTIC)\n : (data.usPhiElastic ? data.usPhiElastic : ProjectComponent.DEFAULT_US_PHI_ELASTIC),\n asPhiM: this.isNew ? settings.asPhiM : data.asPhiM,\n asPhiMb: this.isNew ? settings.asPhiMb : data.asPhiMb,\n asPhiVc: this.isNew ? settings.asPhiVc : data.asPhiVc,\n asPhiVm: this.isNew ? settings.asPhiVm : data.asPhiVm,\n asPhiS: this.isNew ? settings.asPhiS : data.asPhiS,\n asPhiC: this.isNew ? settings.asPhiC : data.asPhiC,\n asPhiVf: this.isNew ? settings.asPhiVf : data.asPhiVf,\n asPhiSC: this.isNew ? settings.asPhiSC : data.asPhiSC,\n asPhiSR: this.isNew ? settings.asPhiSR : data.asPhiSR\n };\n return project;\n }\n\n mapModel(): Project {\n const form = this.projectForm.getRawValue();\n const project: Project = {\n 'id': this.projectId || 0,\n 'name': form.generalGroup.projectName,\n 'company': form.generalGroup.company,\n 'address1': form.generalGroup.address1,\n 'address2': form.generalGroup.address2,\n 'city': form.generalGroup.city,\n 'stateProvince': form.generalGroup.state,\n 'postalCode': form.generalGroup.postalCode,\n 'country': null,\n 'contractor': form.generalGroup.contractorName,\n 'phone': form.generalGroup.phone,\n 'reference': form.generalGroup.reference,\n 'responsible': form.generalGroup.responsible,\n 'preparedBy': form.generalGroup.preparedBy,\n 'email': form.generalGroup.email,\n 'comments': form.generalGroup.comments,\n\n 'designCode': form.designCode.id,\n 'unit': form.unitSystem.id,\n 'loadUnit': form.loadUnit.id,\n 'lengthUnit': form.lengthUnit.id,\n\n 'language': this.user.defaultSettings.language,\n 'countryNationalAnnexes': form.metricSystemGroup.countryNationalAnnexes.id,\n 'ulsGammaG': form.metricSystemGroup.ulsGammaG,\n 'ulsGammaQ': form.metricSystemGroup.ulsGammaQ,\n 'structuralSteelSection': form.metricSystemGroup.sectionResistance,\n 'structuralSteelElement': form.metricSystemGroup.elementResistance,\n 'concrete': form.metricSystemGroup.concrete,\n 'connector': form.metricSystemGroup.connectorResistance,\n 'reinforcement': form.metricSystemGroup.reinforcementSafety,\n 'steelProfile': form.metricSystemGroup.steelProfile,\n\n 'usDeadLoad1': form.usSystemGroup.usDeadLoad1,\n 'usDeadLoad2': form.usSystemGroup.usDeadLoad2,\n 'usLiveLoad2': form.usSystemGroup.usLiveLoad2,\n 'usPhiElastic': form.metricSystemGroup.usPhiElastic,\n asPhiSR: form.asSystemGroup.asPhiSR,\n asPhiSC: form.asSystemGroup.asPhiSC,\n asPhiVf: form.asSystemGroup.asPhiVf,\n asPhiC: form.asSystemGroup.asPhiC,\n asPhiS: form.asSystemGroup.asPhiS,\n asPhiVm: form.asSystemGroup.asPhiVm,\n asPhiVc: form.asSystemGroup.asPhiVc,\n asPhiMb: form.asSystemGroup.asPhiMb,\n asPhiM: form.asSystemGroup.asPhiM\n };\n\n return project;\n }\n\n private recursiveMarkAsTouched = (formElement: any) => {\n if (formElement.controls) {\n _.values(formElement.controls).forEach((formControl) => {\n this.recursiveMarkAsTouched(formControl);\n });\n }\n if (formElement.markAsTouched) {\n formElement.markAsTouched();\n }\n }\n\n public saveProject(doLeave: boolean): void {\n this.recursiveMarkAsTouched(this.projectForm);\n window.scrollTo(0, 0);\n if (this.projectForm.valid) {\n const updatedModel = this.mapModel();\n this.sharedService.showLoader(true);\n if (this.projectId > 0) {\n this.projectService.updateProject(updatedModel).pipe(mergeMap((project) =>\n this.projectService.getsubProjects(project.id), (project, dataSub) => {\n return { project: project, dataSub: dataSub };\n })).subscribe(({ project, dataSub }) => {\n const request = [];\n if (dataSub && dataSub.subProjects && dataSub.subProjects.length > 0) {\n const options = this.applicationOptionsService.options;\n dataSub.subProjects.forEach((subProject: SubProject) => {\n const combinationFactor = options.combinationFactors.filter(\n cf => cf.nationalAnnexId === updatedModel.countryNationalAnnexes && cf.loadCategoryId === subProject.loadCategory);\n if (combinationFactor.length > 0 && subProject.combinationFactor !== combinationFactor[0].value) {\n subProject.combinationFactor = combinationFactor[0].value;\n request.push(this.subProjectService.updateSubProject(subProject));\n }\n });\n }\n if (request.length > 0) {\n observableForkJoin(request).subscribe(() => this.onSaveComplete(project, doLeave));\n } else {\n this.onSaveComplete(project, doLeave);\n }\n },\n (error: any) => this.onSaveFailure(error, false),\n () => this.sharedService.showLoader(false));\n } else {\n this.projectService.createProject(updatedModel)\n .subscribe(\n (project) => this.onSaveComplete(project, doLeave),\n (error: any) => this.onSaveFailure(error, false),\n () => {\n this.sharedService.showLoader(false);\n }\n );\n }\n } else {\n // select the correct tab\n if (!(this.projectForm.controls).generalGroup.valid) {\n this.projectTabStrip.selectTab(0);\n if (!(this.projectForm.controls).generalGroup.controls.projectName.valid) {\n this.projectNameElement.nativeElement.focus();\n } else if (!(this.projectForm.controls).generalGroup.controls.company.valid) {\n this.companyElement.nativeElement.focus();\n } else if (!(this.projectForm.controls).generalGroup.controls.address1.valid) {\n this.address1Element.nativeElement.focus();\n } else if (!(this.projectForm.controls).generalGroup.controls.address2.valid) {\n this.address2Element.nativeElement.focus();\n } else if (!(this.projectForm.controls).generalGroup.controls.city.valid) {\n this.cityElement.nativeElement.focus();\n } else if (!(this.projectForm.controls).generalGroup.controls.state.valid) {\n this.stateElement.nativeElement.focus();\n } else if (!(this.projectForm.controls).generalGroup.controls.postalCode.valid) {\n this.postalCodeElement.nativeElement.focus();\n } else if (!(this.projectForm.controls).generalGroup.controls.contractorName.valid) {\n this.contractorNameElement.nativeElement.focus();\n } else if (!(this.projectForm.controls).generalGroup.controls.reference.valid) {\n this.referenceElement.nativeElement.focus();\n } else if (!(this.projectForm.controls).metricSystemGroup.valid) {\n this.projectTabStrip.selectTab(1);\n } else if (!(this.projectForm.controls).metricSystemGroup.controls.ulsGammaG.valid) {\n this.ulsGammaGElement.nativeElement.focus();\n } else if (!(this.projectForm.controls).metricSystemGroup.controls.ulsGammaQ.valid) {\n this.ulsGammaQElement.nativeElement.focus();\n } else if (!(this.projectForm.controls).metricSystemGroup.controls.sectionResistance.valid) {\n this.sectionResistanceElement.nativeElement.focus();\n } else if (!(this.projectForm.controls).metricSystemGroup.controls.elementResistance.valid) {\n this.elementResistanceElement.nativeElement.focus();\n } else if (!(this.projectForm.controls).metricSystemGroup.controls.steelProfile.valid) {\n this.steelProfileElement.nativeElement.focus();\n } else if (!(this.projectForm.controls).metricSystemGroup.controls.reinforcementSafety.valid) {\n this.reinforcementSafetyElement.nativeElement.focus();\n } else if (!(this.projectForm.controls).metricSystemGroup.controls.concrete.valid) {\n this.concreteElement.nativeElement.focus();\n } else if (!(this.projectForm.controls).metricSystemGroup.controls.connectorResistance.valid) {\n this.connectorResistanceElement.nativeElement.focus();\n }\n }\n }\n }\n\n private onUnitSystemChange(unitSystemId) {\n this.setUnits(unitSystemId);\n this.projectForm.get('loadUnit').setValue(this.loadUnits[0]);\n this.projectForm.get('lengthUnit').setValue(this.lengthUnits[0]);\n }\n\n private onDesignCodeChange(designCode) {\n const selectedDesignCode = this.designCodes.find(dc => dc.id === designCode);\n this.projectForm.get('unitSystem').setValue(this.unitSystems.find(us => us.id === selectedDesignCode.defaultUnitSystem));\n this.nationalAnnexes = NationalAnnexSortingHelper.getSortedNationalAnnexes(this.dropDownOptions.nationalAnnexes, designCode);\n this.metricSystemGroup.get('countryNationalAnnexes').setValue(this.nationalAnnexes[0]);\n if (designCode === 1 || designCode === 3) {\n this.projectForm.get('unitSystem').disable({ emitEvent: false });\n } else {\n this.projectForm.get('unitSystem').enable({ emitEvent: false });\n }\n this.getULSCombFactor(designCode);\n }\n private getULSCombFactor(designCode: number) {\n if (designCode === 2) {\n this.usSystemGroup.get('usDeadLoad1').setValue(SettingsComponent.DEFAULT_US_DEAD_LOAD_1_AISC);\n this.usSystemGroup.get('usDeadLoad2').setValue(SettingsComponent.DEFAULT_US_DEAD_LOAD_2_AISC);\n this.usSystemGroup.get('usLiveLoad2').setValue(SettingsComponent.DEFAULT_US_LIVE_LOAD_2_AISC);\n }\n if (designCode === 3) {\n this.usSystemGroup.get('usDeadLoad1').setValue(SettingsComponent.DEFAULT_US_DEAD_LOAD_1_ASNZS);\n this.usSystemGroup.get('usDeadLoad2').setValue(SettingsComponent.DEFAULT_US_DEAD_LOAD_2_ASNZS);\n this.usSystemGroup.get('usLiveLoad2').setValue(SettingsComponent.DEFAULT_US_LIVE_LOAD_2_ASNZS);\n }\n }\n\n private setUnits(unitSystemId): void {\n this.lengthUnits = this.dropDownOptions.lengthUnits.filter(l => l.unitSystemId === unitSystemId && (l.id === 3 || l.id === 4));\n this.loadUnits = this.dropDownOptions.loadUnits.filter(l => l.unitSystemId === unitSystemId);\n }\n\n private onSaveComplete(project, doLeave: boolean): void {\n this.subProjectParam = project;\n this.projectForm.markAsPristine();\n this.sharedService.showLoader(false);\n this._saveOnLeaveSubject.next(doLeave);\n if (this.isNew) {\n this.sharedService.popSuccess('project-create-success');\n } else {\n this.sharedService.popSuccess('project-save-success');\n }\n if (!doLeave) {\n this.router.navigate(['/project', { id: project.id }]);\n }\n }\n\n\n checkThatUserCanChangeUnitSystem() {\n if (this.subprojects && this.subprojects.length > 0) {\n this.projectForm.get('unitSystem').disable({ emitEvent: false });\n this.projectForm.get('designCode').disable({ emitEvent: false });\n this.canChangeUnitSystem = false;\n }\n else {\n this.canChangeUnitSystem = true;\n this.projectForm.get('designCode').enable({ emitEvent: false });\n this.projectForm.get('unitSystem').enable({ emitEvent: false });\n }\n\n if (this.projectForm.value.designCode && (this.projectForm.value.designCode.id === 1 || this.projectForm.value.designCode.id === 3)) {\n this.projectForm.get('unitSystem').disable({ emitEvent: false });\n }\n }\n checkThatUserCanChangeCountry() {\n if (this.subprojects && this.subprojects.length > 0) {\n this.metricSystemGroup.get('countryNationalAnnexes').disable({ emitEvent: false });\n this.canChangeCountry = false;\n } else {\n this.metricSystemGroup.get('countryNationalAnnexes').enable({ emitEvent: false });\n this.canChangeCountry = true;\n }\n }\n\n private onSaveFailure(error, doLeave: boolean): void {\n this.sharedService.showLoader(false);\n this._saveOnLeaveSubject.next(doLeave);\n if (this.isNew) {\n this.sharedService.popFailure('project-create-failure');\n } else {\n this.sharedService.popFailure('project-save-failure');\n }\n }\n\n private initForm(): void {\n this.generalGroup = this.fb.group({\n projectName: [null, [Validators.required, CustomValidators.rangeLength([3, 50])]],\n company: [null, [CustomValidators.rangeLength([0, 50])]],\n address1: [null, [CustomValidators.rangeLength([0, 50])]],\n address2: [null, [CustomValidators.rangeLength([0, 50])]],\n city: [null, [CustomValidators.rangeLength([0, 50])]],\n state: [null, [CustomValidators.rangeLength([0, 10])]],\n postalCode: [null, [CustomValidators.rangeLength([0, 20])]],\n\n contractorName: [null, [CustomValidators.rangeLength([0, 50])]],\n reference: [null, [CustomValidators.rangeLength([0, 50])]],\n responsible: [null, [CustomValidators.rangeLength([0, 50])]],\n email: [null, [CustomValidators.email]],\n preparedBy: [null, [Validators.required, CustomValidators.rangeLength([3, 50])]],\n\n phone: [null, [Validators.pattern('^(\\\\+[1-9][0-9]*(\\\\([0-9]*\\\\)|-[0-9]*-))?[0]?[1-9][0-9\\\\- ]*$'),\n CustomValidators.rangeLength([10, 15])]],\n comments: [null]\n });\n\n this.metricSystemGroup = this.fb.group({\n countryNationalAnnexes: [null, [Validators.required]],\n sectionResistance: [null, [Validators.required, CustomValidators.range([1, 2])]],\n elementResistance: [null, [Validators.required, CustomValidators.range([1, 2])]],\n steelProfile: [null, [Validators.required, CustomValidators.range([1, 2])]],\n reinforcementSafety: [null, [Validators.required, CustomValidators.range([1, 2])]],\n concrete: [null, [Validators.required, CustomValidators.range([1, 2])]],\n connectorResistance: [null, [Validators.required, CustomValidators.range([1, 2])]],\n ulsGammaG: [null, [Validators.required, CustomValidators.range([1, 2])]],\n ulsGammaQ: [null, [Validators.required, CustomValidators.range([1, 2])]],\n usPhiElastic: [null, [Validators.required, Validators.min(0.5), Validators.max(1)]]\n });\n\n this.usSystemGroup = this.fb.group({\n usDeadLoad1: [null, [Validators.required, Validators.max(2), Validators.min(1)]],\n usDeadLoad2: [null, [Validators.required, Validators.max(2), Validators.min(1)]],\n usLiveLoad2: [null, [Validators.required, Validators.max(2), Validators.min(1)]]\n });\n\n this.asSystemGroup = this.fb.group({\n asPhiM: [null, [Validators.required, Validators.min(0.5), Validators.max(1)]],\n asPhiMb: [null, [Validators.required, Validators.min(0.5), Validators.max(1)]],\n asPhiVc: [null, [Validators.required, Validators.min(0.5), Validators.max(1)]],\n asPhiVm: [null, [Validators.required, Validators.min(0.5), Validators.max(1)]],\n asPhiS: [null, [Validators.required, Validators.min(0.5), Validators.max(1)]],\n asPhiC: [null, [Validators.required, Validators.min(0.5), Validators.max(1)]],\n asPhiVf: [null, [Validators.required, Validators.min(0.5), Validators.max(1)]],\n asPhiSC: [null, [Validators.required, Validators.min(0.5), Validators.max(1)]],\n asPhiSR: [null, [Validators.required, Validators.min(0.5), Validators.max(1)]]\n });\n\n this.projectForm = this.fb.group({\n generalGroup: this.generalGroup,\n designCode: [null, [Validators.required]],\n unitSystem: [null, [Validators.required]],\n lengthUnit: [null, [Validators.required]],\n loadUnit: [null, [Validators.required]],\n metricSystemGroup: this.metricSystemGroup,\n usSystemGroup: this.usSystemGroup,\n asSystemGroup: this.asSystemGroup\n });\n }\n\n loadForm(data: Project): void {\n const designCode = this.designCodes.filter(item => item.id === data.designCode)[0] || this.designCodes[0];\n this.nationalAnnexes = NationalAnnexSortingHelper.getSortedNationalAnnexes(this.dropDownOptions.nationalAnnexes, designCode.id);\n const nationalAnnex = this.nationalAnnexes.filter(item => item.id === data.countryNationalAnnexes)[0] || this.nationalAnnexes[1];\n const unitSystem = this.unitSystems.filter(item => item.id === data.unit)[0] || this.unitSystems[0];\n const lengthUnit = this.lengthUnits.filter(item => item.id === data.lengthUnit)[0] || this.lengthUnits[0];\n const loadUnit = this.loadUnits.filter(item => item.id === data.loadUnit)[0] || this.loadUnits[0];\n const settings = this.user.defaultSettings;\n\n this.generalGroup.get('projectName').setValue(data.name);\n this.generalGroup.get('company').setValue(data.company);\n this.generalGroup.get('address1').setValue(data.address1);\n this.generalGroup.get('address2').setValue(data.address2);\n this.generalGroup.get('city').setValue(data.city);\n this.generalGroup.get('state').setValue(data.stateProvince);\n this.generalGroup.get('postalCode').setValue(data.postalCode);\n this.generalGroup.get('contractorName').setValue(data.contractor);\n this.generalGroup.get('reference').setValue(data.reference);\n this.generalGroup.get('responsible').setValue(data.responsible);\n this.generalGroup.get('email').setValue(data.email);\n this.generalGroup.get('preparedBy').setValue(data.preparedBy);\n this.generalGroup.get('phone').setValue(data.phone);\n this.generalGroup.get('comments').setValue(data.comments);\n\n this.projectForm.get('designCode').setValue(designCode);\n this.metricSystemGroup.get('countryNationalAnnexes').setValue(nationalAnnex);\n this.metricSystemGroup.get('sectionResistance').setValue(data.structuralSteelSection || settings.structuralSteelSection);\n this.metricSystemGroup.get('elementResistance').setValue(data.structuralSteelElement || settings.structuralSteelElement);\n this.metricSystemGroup.get('steelProfile').setValue(data.steelProfile || settings.steelProfile);\n this.metricSystemGroup.get('reinforcementSafety').setValue(data.reinforcement || settings.reinforcement);\n this.metricSystemGroup.get('concrete').setValue(data.concrete || settings.concrete);\n this.metricSystemGroup.get('connectorResistance').setValue(data.connector || settings.connector);\n this.metricSystemGroup.get('ulsGammaG').setValue(data.ulsGammaG || settings.ulsGammaG);\n this.metricSystemGroup.get('ulsGammaQ').setValue(data.ulsGammaQ || settings.ulsGammaQ);\n this.metricSystemGroup.get('usPhiElastic').setValue(data.usPhiElastic || settings.usPhiElastic);\n\n this.usSystemGroup.get('usDeadLoad1').setValue(data.usDeadLoad1 || settings.usDeadLoad1);\n this.usSystemGroup.get('usDeadLoad2').setValue(data.usDeadLoad2 || settings.usDeadLoad2);\n this.usSystemGroup.get('usLiveLoad2').setValue(data.usLiveLoad2 || settings.usLiveLoad2);\n\n this.projectForm.get('unitSystem').setValue(unitSystem);\n this.projectForm.get('lengthUnit').setValue(lengthUnit);\n this.projectForm.get('loadUnit').setValue(loadUnit);\n this.asSystemGroup.get('asPhiM').setValue(data.asPhiM || SettingsComponent.DEFAULT_COMB_FACTORS_ASNZS.ASPhiM);\n this.asSystemGroup.get('asPhiMb').setValue(data.asPhiMb || SettingsComponent.DEFAULT_COMB_FACTORS_ASNZS.ASPhiMb);\n this.asSystemGroup.get('asPhiVc').setValue(data.asPhiVc || SettingsComponent.DEFAULT_COMB_FACTORS_ASNZS.ASPhiVc);\n this.asSystemGroup.get('asPhiVm').setValue(data.asPhiVm || SettingsComponent.DEFAULT_COMB_FACTORS_ASNZS.ASPhiVm);\n this.asSystemGroup.get('asPhiS').setValue(data.asPhiS || SettingsComponent.DEFAULT_COMB_FACTORS_ASNZS.ASPhiS);\n this.asSystemGroup.get('asPhiC').setValue(data.asPhiC || SettingsComponent.DEFAULT_COMB_FACTORS_ASNZS.ASPhiC);\n this.asSystemGroup.get('asPhiVf').setValue(data.asPhiVf || SettingsComponent.DEFAULT_COMB_FACTORS_ASNZS.ASPhiVf);\n this.asSystemGroup.get('asPhiSC').setValue(data.asPhiSC || SettingsComponent.DEFAULT_COMB_FACTORS_ASNZS.ASPhiSC);\n this.asSystemGroup.get('asPhiSR').setValue(data.asPhiSR || SettingsComponent.DEFAULT_COMB_FACTORS_ASNZS.ASPhiSR);\n // fix: some legacy project has no design code value, assign default settings (for combination factors) for this project and save it\n if (!data.designCode) {\n this.saveProject(false);\n }\n this.checkThatUserCanChangeUnitSystem();\n }\n\n doCancel(e) {\n this.router.navigate(['/projects']);\n }\n}\n","import { UserAgreementAcceptGaurd } from './../user-agreement-acceptguard.service';\nimport { SharedModule } from './../shared/shared.module';\nimport { NgModule } from '@angular/core';\nimport { SortingComponent } from './../shared/sorting/sorting.component';\nimport { ProjectListComponent } from './project-list.component';\nimport { ProjectService } from './project.service';\nimport { RouterModule } from '@angular/router';\nimport {BodyModule, GridModule} from '@progress/kendo-angular-grid';\nimport { LayoutModule } from '@progress/kendo-angular-layout';\nimport { ProjectComponent } from './project.component';\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\nimport { ApplicationOptionsService } from '../service/common/application-options.service';\nimport { SubProjectModule } from './../subproject/sub-project.module';\nimport { RouteGuard } from './../service/common/routeguard.service';\nimport { DialogModule } from '@progress/kendo-angular-dialog';\nimport { SearchService } from '../shared/search/search.service';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { ProjectSaveGuard } from './project-saveguard.service';\nimport { ProjectNameValidator } from './projectNameValidator.directive';\nimport {SettingsModule} from '../settings/settings.module';\nimport {ButtonModule, CheckboxModule, LabelModule} from 'hilti-ui-library';\nimport {DropDownListModule} from '@progress/kendo-angular-dropdowns';\n@NgModule({\n imports: [\n SharedModule,\n RouterModule.forChild([\n {path: 'projects', component: ProjectListComponent, canActivate: [RouteGuard, UserAgreementAcceptGaurd]},\n {\n path: 'project',\n component: ProjectComponent,\n canActivate: [RouteGuard, UserAgreementAcceptGaurd],\n canDeactivate: [ProjectSaveGuard]\n },\n {\n path: 'project/:id',\n component: ProjectComponent,\n canActivate: [RouteGuard, UserAgreementAcceptGaurd],\n canDeactivate: [ProjectSaveGuard]\n }\n ]),\n GridModule,\n LayoutModule,\n ReactiveFormsModule,\n SubProjectModule,\n DialogModule,\n FormsModule,\n BrowserAnimationsModule,\n SettingsModule,\n CheckboxModule,\n BodyModule,\n ButtonModule,\n LabelModule,\n DropDownListModule\n ],\n declarations: [\n ProjectListComponent,\n ProjectComponent,\n SortingComponent,\n ProjectNameValidator\n ],\n providers: [\n ProjectService,\n ApplicationOptionsService,\n SearchService,\n ProjectSaveGuard,\n UserAgreementAcceptGaurd\n ]\n})\nexport class ProjectModule { }\n","import { HttpHeaders, HttpParams, HttpResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { GridDataResult } from '@progress/kendo-angular-grid';\nimport { ConfigService } from 'app/service/config.service';\nimport { environment } from 'environments/environment';\nimport { BehaviorSubject, Observable, throwError as observableThrowError } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { SharedService } from '../service/common/shared.service';\nimport { HttpClient } from './../common/http-client';\nimport { Project as ProjectModel } from './../models/models';\nimport { Project } from 'app/models/project';\n\n@Injectable()\nexport class ProjectService extends BehaviorSubject {\n private _projectsUrl = '';\n constructor(private configService: ConfigService, private _http: HttpClient, private sharedService: SharedService) {\n super(null);\n if (environment.localTesting) {\n this._projectsUrl = `${this.configService.config.serviceUrl}projects/`;\n } else {\n this._projectsUrl = `${this.configService.config.serviceUrl}asws/profishvb/shear_connector_projects/v1/`;\n }\n }\n\n private mapDate(item): void {\n item.createdOn = new Date(item.createdOn);\n item.updatedOn = new Date(item.updatedOn);\n }\n\n public query(state): void {\n this.sharedService.showLoader(true);\n this.getProjects(state)\n .subscribe(x => {\n x.data.map(this.mapDate);\n this.sharedService.showLoader(false);\n super.next(x);\n });\n }\n\n public searchForProject(projectName: string): Observable {\n let params = new HttpParams();\n params = params.append('query.pageNumber', '1');\n params = params.append('query.pageSize', '100');\n params = params.append('query.searchString', projectName);\n params = params.append('query.sortBy', 'name');\n params = params.append('query.shouldSortAscending', 'true');\n return this._http\n .get(`${this._projectsUrl}search`, params);\n }\n\n getProjects(state: any): Observable {\n let params = new HttpParams();\n params = params.append('query.pageNumber', state.pageNumber);\n params = params.append('query.pageSize', state.pageSize);\n params = params.append('query.searchString', state.searchString);\n params = params.append('query.sortBy', state.sortBy);\n params = params.append('query.shouldSortAscending', state.shouldSortAscending);\n return this._http\n .get(`${this._projectsUrl}search`, params).pipe(map(response => {\n const result = {\n data: response.projects,\n total: response.totalCount\n };\n return result;\n }));\n }\n\n getsubProjects(projectId: number): Observable {\n return this._http.get(`${this._projectsUrl}${projectId}/subProjects`);\n }\n\n public getProjectById(id: number): Observable {\n return this._http\n .get(`${this._projectsUrl}${id}`);\n }\n\n public updateProject(project: ProjectModel) {\n return this._http\n .put(`${this._projectsUrl}${project.id}`, project);\n }\n\n public createProject(project: ProjectModel) {\n return this._http\n .post(`${this._projectsUrl}`, project);\n }\n\n public setStatus(projectIds: number[], subProjectIds: number[], status: number) {\n return this._http\n .put(`${this._projectsUrl}/setStatus`, {\n status: status,\n projectIds: projectIds,\n subProjectIds: subProjectIds\n });\n }\n\n public getProjectJson(id: number, subProjectIds?: number[]) {\n const params = new HttpParams();\n subProjectIds.forEach(id => {\n params.append('subProjectIds', id.toString());\n });\n return this._http\n .get(`${this._projectsUrl}${id}/exportJson`, params);\n }\n\n\n public importProject(projectName: string, projectFile): Observable {\n const formData: FormData = new FormData();\n formData.append('uploadFile', projectFile, projectFile.name);\n let headers = new HttpHeaders();\n headers = headers.append('content-type', 'multipart/form-data');\n return this._http\n .post(`${this._projectsUrl}import?projectName=${projectName}`, formData, headers);\n }\n}\n","\nimport { Directive, Injectable } from '@angular/core';\nimport { AbstractControl, NG_ASYNC_VALIDATORS, ValidationErrors, Validator } from '@angular/forms';\nimport { Observable, of } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { ProjectService } from './project.service';\n@Injectable()\n@Directive({\n selector: '[uniqueProjectName][ngModel]',\n providers: [\n {\n provide: NG_ASYNC_VALIDATORS, useExisting: ProjectNameValidator, multi: true\n }\n ]\n})\nexport class ProjectNameValidator implements Validator {\n\n constructor(private service: ProjectService) {\n }\n\n validate(c: AbstractControl): Observable {\n if (c.value.lenght < 3) {\n return of({ nameToShort: true });\n }\n return this.service.searchForProject(c.value).pipe(map((item: any) => {\n return (item.projects.findIndex(i => i.name === c.value) >= 0) ? { projectNameAlreadyTaken: true } : null;\n }));\n }\n}\n","import { merge } from 'rxjs/operators';\nimport { Component, OnInit } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport * as _ from 'lodash';\nimport { AppConstants } from '../common/AppConstants';\nimport { SessionStorageService } from '../service/util/session-storage.service';\nimport { ActivatedRoute } from '@angular/router';\nimport { AuthService } from '../service/common/auth.service';\nimport { environment } from 'environments/environment';\n@Component({\n selector: 'app-registrationcallback',\n templateUrl: './registrationcallback.component.html',\n styleUrls: []\n})\nexport class RegistrationCallbackComponent implements OnInit {\n private state: string;\n\n constructor(\n private auth: AuthService,\n private route: ActivatedRoute,\n private sessionStorageService: SessionStorageService) {\n }\n\n ngOnInit() {\n // check state\n this.retrieveState();\n const savedState = this.sessionStorageService.get(AppConstants.RegistrationStateStorageKey);\n if (!this.state || _.isEmpty(this.state) || this.state != savedState) {\n // state does not match\n console.log('Failed to verify state!');\n }\n\n // cleanup\n this.sessionStorageService.remove(AppConstants.RegistrationStateStorageKey);\n this.sessionStorageService.remove(AppConstants.RegistrationReturnUrl);\n\n // invalidate login\n this.auth.invalidateLogin();\n\n // redirect to login to retrieve new token with all customer data\n location.assign(this.auth.getAuthURL());\n }\n\n private retrieveState() {\n if (environment.localTesting) {\n this.state = 'test';\n }\n this.route.queryParams.pipe(merge(this.route.params)).subscribe((params: any) => {\n this.state = this.state || (!_.isEmpty(params['state']) ? params['state'] : null);\n });\n }\n}\n","export default \"#title {\\n letter-spacing: 0.5px;\\n font-size: 16px; }\\n\\n#title .btn {\\n letter-spacing: 0.5px;\\n font-size: 16px;\\n font-family: HiltiSmallBold; }\\n\\n#title .btn-link {\\n color: #534F53;\\n cursor: pointer;\\n font-family: HiltiSmallBold; }\\n\\n#title .btn-link :hover {\\n color: #534F53;\\n font-style: italic;\\n text-decoration: none; }\\n\\n.report-wrapper {\\n border-style: solid;\\n border-width: 1px;\\n border-color: black;\\n padding-top: 100px;\\n padding-bottom: 50px;\\n padding-left: 20px;\\n padding-right: 20px;\\n background-color: #CFCCC5; }\\n\\n.report-border {\\n border-style: solid;\\n border-width: 1px; }\\n\\n.hilti-page-button {\\n cursor: hand;\\n font-family: 'HiltiSmallRoman';\\n color: #534F53;\\n background-color: #EFEBE5;\\n border: 1px solid #CFCCC5;\\n height: 40px;\\n width: 30px;\\n margin: 0px 0px;\\n padding: 10px; }\\n\\n.hilti-page-button:hover {\\n color: #EFEBE5;\\n background-color: #887F6E;\\n border: 1px solid #CFCCC5; }\\n\\n.hilti-page-button.inactiveLink {\\n color: #EFEBE5;\\n background-color: #CFCCC5;\\n border: 1px solid #CFCCC5; }\\n\\n.subProjectTitle {\\n font-family: HiltiSmallBold; }\\n\\n.page-item:first-child .page-link {\\n border-bottom-left-radius: 0px;\\n border-top-left-radius: 0px; }\\n\\n.page-item:last-child .page-link {\\n border-bottom-right-radius: 0px;\\n border-top-right-radius: 0px; }\\n\\n/deep/ .k-draghandle {\\n background-color: #887F6E !important;\\n border-color: #887F6E !important; }\\n\\n/deep/ .k-slider .k-slider-selection {\\n background-color: #887F6E !important; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9idWlsZHMvYnUtZi1wcy9zaGVhci1jb25uZWN0b3IvZGVwbG95L2NvZGUvaHZiLXdlYi9odmItYXBwL3NyYy9hcHAvcmVwb3J0L3JlcG9ydC12aWV3ZXIvcmVwb3J0LXZpZXdlci5jb21wb25lbnQuc2NzcyIsIi9idWlsZHMvYnUtZi1wcy9zaGVhci1jb25uZWN0b3IvZGVwbG95L2NvZGUvaHZiLXdlYi9odmItYXBwL3NyYy9fdmFyaWFibGVzLnNjc3MiLCIvYnVpbGRzL2J1LWYtcHMvc2hlYXItY29ubmVjdG9yL2RlcGxveS9jb2RlL2h2Yi13ZWIvaHZiLWFwcC9ub2RlX21vZHVsZXMvaGlsdGktdWktbGlicmFyeS9hc3NldHMvc2Fzcy9faHVpLWNvbG9ycy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBO0VBQ0ksc0JBQXFCO0VBQ3JCLGdCQUFlLEVBQ2xCOztBQUNEO0VBQ0ksc0JBQXFCO0VBQ3JCLGdCQUFlO0VBQ2YsNEJBQTJCLEVBQzlCOztBQUNEO0VBQ0ksZUNQaUI7RURRakIsZ0JBQWU7RUFDZiw0QkFBMkIsRUFNOUI7O0FBVEQ7SUFLUSxlQ1hhO0lEWWIsbUJBQWtCO0lBQ2xCLHNCQUFxQixFQUN4Qjs7QUFHTDtFQUNJLG9CQUFrQjtFQUNsQixrQkFBZ0I7RUFDaEIsb0JBQWtCO0VBQ2xCLG1CQUFpQjtFQUNqQixxQkFBbUI7RUFDbkIsbUJBQWlCO0VBQ2pCLG9CQUFrQjtFQUNsQiwwQkV0QjRCLEVGdUIvQjs7QUFFRDtFQUNJLG9CQUFrQjtFQUNsQixrQkFBZ0IsRUFDbkI7O0FBRUQ7RUFDSSxhQUFZO0VBQ1osK0JBQThCO0VBQzlCLGVDcENpQjtFRHFDakIsMEJDdkM4QjtFRHdDOUIsMEJFbkM0QjtFRm9DNUIsYUFBWTtFQUNaLFlBQVc7RUFDWCxnQkFBZTtFQUNmLGNBQVksRUFDZjs7QUFFRDtFQUNJLGVDaEQ4QjtFRGlEOUIsMEJDaEQ2QjtFRGlEN0IsMEJFN0M0QixFRjhDL0I7O0FBRUQ7RUFDSSxlQ3REOEI7RUR1RDlCLDBCRWxENEI7RUZtRDVCLDBCRW5ENEIsRUZvRC9COztBQUdEO0VBQ0ksNEJBQTJCLEVBQzlCOztBQUVEO0VBQ0ksK0JBQThCO0VBQzlCLDRCQUEyQixFQUM5Qjs7QUFFRDtFQUNJLGdDQUErQjtFQUMvQiw2QkFBNEIsRUFDL0I7O0FBRUQ7RUFDSSxxQ0FBcUQ7RUFDckQsaUNBQWlELEVBQ3BEOztBQUVEO0VBQ0kscUNBQXFELEVBQ3hEIiwiZmlsZSI6InNyYy9hcHAvcmVwb3J0L3JlcG9ydC12aWV3ZXIvcmVwb3J0LXZpZXdlci5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIkBpbXBvcnQgJy4uLy4uLy4uL3ZhcmlhYmxlcyc7XG5cbiN0aXRsZSB7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4O1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbn1cbiN0aXRsZSAuYnRuIHsgICBcbiAgICBsZXR0ZXItc3BhY2luZzogMC41cHg7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZvbnQtZmFtaWx5OiBIaWx0aVNtYWxsQm9sZDtcbn0gXG4jdGl0bGUgLmJ0bi1saW5rIHsgXG4gICAgY29sb3I6ICRoaWx0aS1zdGVlbDsgIFxuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmb250LWZhbWlseTogSGlsdGlTbWFsbEJvbGQ7XG4gICAgOmhvdmVyIHsgXG4gICAgICAgIGNvbG9yOiAkaGlsdGktc3RlZWw7XG4gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH0gIFxufVxuXG4ucmVwb3J0LXdyYXBwZXIge1xuICAgIGJvcmRlci1zdHlsZTpzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6MXB4O1xuICAgIGJvcmRlci1jb2xvcjpibGFjaztcbiAgICBwYWRkaW5nLXRvcDoxMDBweDtcbiAgICBwYWRkaW5nLWJvdHRvbTo1MHB4O1xuICAgIHBhZGRpbmctbGVmdDoyMHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6MjBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaGlsdGktY29uY3JldGUtbGlnaHRlbi0xO1xufVxuXG4ucmVwb3J0LWJvcmRlciB7XG4gICAgYm9yZGVyLXN0eWxlOnNvbGlkO1xuICAgIGJvcmRlci13aWR0aDoxcHg7XG59XG5cbi5oaWx0aS1wYWdlLWJ1dHRvbiB7XG4gICAgY3Vyc29yOiBoYW5kO1xuICAgIGZvbnQtZmFtaWx5OiAnSGlsdGlTbWFsbFJvbWFuJztcbiAgICBjb2xvcjogJGhpbHRpLXN0ZWVsO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRoaWx0aS1jb25jcmV0ZS1saWdodGVuLTI7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGhpbHRpLWNvbmNyZXRlO1xuICAgIGhlaWdodDogNDBweDtcbiAgICB3aWR0aDogMzBweDtcbiAgICBtYXJnaW46IDBweCAwcHg7XG4gICAgcGFkZGluZzoxMHB4O1xufVxuXG4uaGlsdGktcGFnZS1idXR0b246aG92ZXIge1xuICAgIGNvbG9yOiAkaGlsdGktY29uY3JldGUtbGlnaHRlbi0yO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRoaWx0aS1jb25jcmV0ZS1kYXJrZW4tMjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkaGlsdGktY29uY3JldGUtbGlnaHRlbi0xO1xufVxuXG4uaGlsdGktcGFnZS1idXR0b24uaW5hY3RpdmVMaW5rIHtcbiAgICBjb2xvcjogJGhpbHRpLWNvbmNyZXRlLWxpZ2h0ZW4tMjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaGlsdGktY29uY3JldGU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGhpbHRpLWNvbmNyZXRlO1xufVxuXG5cbi5zdWJQcm9qZWN0VGl0bGUge1xuICAgIGZvbnQtZmFtaWx5OiBIaWx0aVNtYWxsQm9sZDsgXG59XG5cbi5wYWdlLWl0ZW06Zmlyc3QtY2hpbGQgLnBhZ2UtbGluayB7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMHB4O1xuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDBweDtcbn1cblxuLnBhZ2UtaXRlbTpsYXN0LWNoaWxkIC5wYWdlLWxpbmsge1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwcHg7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDBweDtcbn1cblxuL2RlZXAvIC5rLWRyYWdoYW5kbGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRoaWx0aS1jb25jcmV0ZS1kYXJrZW4tMiAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogJGhpbHRpLWNvbmNyZXRlLWRhcmtlbi0yICFpbXBvcnRhbnQ7XG59XG5cbi9kZWVwLyAuay1zbGlkZXIgLmstc2xpZGVyLXNlbGVjdGlvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGhpbHRpLWNvbmNyZXRlLWRhcmtlbi0yICFpbXBvcnRhbnQ7XG59XG4iLCJAaW1wb3J0IFwiLi9ub2RlX21vZHVsZXMvaGlsdGktdWktbGlicmFyeS9hc3NldHMvc2Fzcy9odWktY29sb3JzXCI7XG4kaGlsdGktY29uY3JldGU6ICRodWktaGVhdnktY29uY3JldGUtLTQwO1xuJGhpbHRpLWNvbmNyZXRlLWxpZ2h0ZW4tMTogJGh1aS1oZWF2eS1jb25jcmV0ZS0tNDA7XG4kaGlsdGktY29uY3JldGUtbGlnaHRlbi0yOiAjRUZFQkU1O1xuJGhpbHRpLWNvbmNyZXRlLWRhcmtlbi0yOiAjODg3RjZFO1xuJGhpbHRpLXN0ZWVsOiAjNTM0RjUzO1xuJGhpbHRpLXN0ZWVsLWxpZ2h0ZW4tMTogIzk5OTk5OTtcbiRoaWx0aS1zdGVlbC1saWdodGVuLTI6ICNEREREREQ7XG4kaGlsdGktcmViZWwtYmx1ZTogIzM4ODBCMDtcbiRoaWx0aS1yZWJlbC1ibHVlLWxpZ2h0ZW4tMTogI0NDREZFQjtcbiRoaWx0aS1saWdodC1ncmV5OiAjRkFGQUZBO1xuJGhpbHRpLXJlZDogJGh1aS1oaWx0aS1yZWQ7XG4kaGlsdGktcGxhY2Vob2xkZXI6ICNkN2Q3ZDc7XG4kaGlsdGktaG92ZXI6ICNGM0YyRjA7XG4kaGlsdGktc2VsZWN0ZWQ6ICNEOEQ4RDg7XG4kaGlsdGktZGlzYWJsZWQ6ICNFN0U1RTE7XG4kdGFic3RyaXAtY29udGVudC1wYWRkaW5nLXg6IDBweDtcbiR0YWJzdHJpcC1jb250ZW50LXBhZGRpbmcteTogMHB4O1xuJHRhYnN0cmlwLWNvbnRlbnQtYm9yZGVyLXdpZHRoOiAwcHg7XG4kZ3JpZC1oZWFkZXItYmc6IHdoaXRlO1xuJGdyaWQtYm9yZGVyOiByZ2JhKCRodWktaGVhdnktY29uY3JldGUtLTIwLCAwKTtcbiRncmlkLWhlYWRlci1ib3JkZXI6IHJnYmEoJGh1aS1oZWF2eS1jb25jcmV0ZS0tMjAsIDEpO1xuJGdyaWQtYWx0LWJnOiByZ2JhKHdoaXRlLCAwKTtcbiRncmlkLWhvdmVyZWQtYmc6ICRodWktc3RlZWwtLTIwO1xuIiwiLy9Db2xvcnNcbi8vVE9ETzogcmVtb3ZlIHByZWZpeCBodWkgaW4gY29sb3JzIHZhcmlhYmxlXG4kaHVpLWhpbHRpLXJlZDogI0QyMDUxRTtcbiRodWktZGFyay1yZWQ6ICNBQjAxMTU7XG4kaHVpLWVycm9yLXJlZDogI0ZGMDAwMDtcbiRodWktaGVhdnktY29uY3JldGUtLTEwOiAjRjNGMkYwO1xuJGh1aS1oZWF2eS1jb25jcmV0ZS0tMjA6ICNFN0U1RTI7XG4kaHVpLWhlYXZ5LWNvbmNyZXRlLS0zMDogI0RCRDhEMztcbiRodWktaGVhdnktY29uY3JldGUtLTQwOiAjQ0ZDQ0M1O1xuJGh1aS1oZWF2eS1jb25jcmV0ZS0tNjA6ICNCN0IzQUE7XG4kaHVpLWhlYXZ5LWNvbmNyZXRlLS04MDogI0EwOTk4QjtcbiRodWktc3RlZWw6ICM1MjRGNTM7XG4kaHVpLXN0ZWVsLS0yMDogI0RERENERDtcbiRodWktc3RlZWwtLTQwOiAjQkFCOUJBO1xuJGh1aS1zdGVlbC0tNjA6ICM5Nzk1OTg7XG4kaHVpLXN0ZWVsLS04MDogIzc1NzI3NTtcbiRodWktd2hpdGU6ICNGRkY7XG4kaHVpLWJsYWNrOiAjMDAwO1xuJGh1aS1ibGFjay0tOTA6ICMxOTE5MTk7XG4kaHVpLWJsYWNrLS00MDogIzk5OTk5OTtcbiRodWktZ3JlZW46ICMxOUFGMzc7XG4kaHVpLWdyZWVuLS00MDogI0EzREZBRjtcbiRodWktZGFyay1ibHVlOiAjMDA1Rjk2O1xuXG4kaHVpLWJ1cmd1bmR5OiAjNjcxQzNFO1xuXG4kY3RhOiAkaHVpLWhpbHRpLXJlZDtcbiRwcmltYXJ5OiAkaHVpLXN0ZWVsO1xuJHNlY29uZGFyeTogJGh1aS1oZWF2eS1jb25jcmV0ZS0tMjA7XG4kc3VjY2VzczogIzE5QUYzNztcbiRkYW5nZXI6ICNGRjAwMDA7XG4kd2FybmluZzogI0ZGQUYwMDtcblxuJHRoZW1lLWNvbG9yczogKFxuICBcImN0YVwiOiAkY3RhLFxuICBcImhlYXZ5LWNvbmNyZXRlLS0xMFwiOiAkaHVpLWhlYXZ5LWNvbmNyZXRlLS0xMCxcbiAgXCJoZWF2eS1jb25jcmV0ZS0tMjBcIjogJGh1aS1oZWF2eS1jb25jcmV0ZS0tMjAsXG4pO1xuIl19 */\"","import { Component, OnInit } from '@angular/core';\nimport { SharedService } from '../../service/common/shared.service';\nimport { ActivatedRoute, Params, Router } from '@angular/router';\nimport { SessionStorageService } from './../../service/util/session-storage.service';\nimport { InputsModule } from '@progress/kendo-angular-inputs';\n@Component({\n selector: 'app-pdf-viewer',\n templateUrl: './report-viewer.component.html',\n styleUrls: ['./report-viewer.component.scss']\n})\nexport class ReportViewerComponent implements OnInit {\n\n public page = 1;\n public pdfSrc: any;\n public numPages = 0;\n public pages: Array;\n public projectId: number;\n public projectName: string;\n public subProjectId: number;\n public subProjectName: string;\n public zoom: number;\n constructor(\n private sharedService: SharedService,\n private route: ActivatedRoute,\n private router: Router,\n private sessionStorageService: SessionStorageService\n ) {\n\n this.route.params.subscribe((params) => {\n if (params['projectId']) {\n this.projectId = +params['projectId'];\n }\n\n if (params['projectName']) {\n this.projectName = params['projectName'];\n }\n\n if (params['subProjectId']) {\n this.subProjectId = +params['subProjectId'];\n }\n\n if (params['subProjectName']) {\n this.subProjectName = params['subProjectName'];\n }\n\n });\n this.zoom = 1;\n this.pdfSrc = 'data:application/pdf;base64, ' + this.sessionStorageService.get('pdf');\n }\n\n ngOnInit() {\n\n }\n\n public pdfLoaded(pdf) {\n this.page = 1;\n this.numPages = pdf.numPages;\n this.pages = [];\n for (let count = 0; count < this.numPages; count++) {\n this.pages.push((count + 1));\n }\n }\n\n public setPage(pageNum: number) {\n this.page = pageNum;\n }\n\n public prevPage() {\n this.page = Math.max(1, this.page - 1);\n }\n\n public nextPage() {\n this.page = Math.min(this.numPages, this.page + 1);\n }\n\n public getCurrentClass(p: number) {\n if (this.page === p) {\n return 'inactiveLink';\n } else {\n return '';\n }\n }\n\n public isMobile = (): boolean => {\n let check = false;\n const str = navigator.userAgent || navigator.vendor || (window).opera;\n if (\n /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(str) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(str.substr(0, 4))) {\n check = true;\n }\n return check;\n }\n\n public backToProjects = (): void => {\n this.router.navigate(['/projects']);\n }\n\n public backToProject = () => {\n this.router.navigate(['/project', { id: this.projectId }]);\n }\n\n public backToSubProject = () => {\n this.router.navigate(['/subproject', { projectId: this.projectId, id: this.subProjectId }]);\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReportViewerComponent } from './report-viewer/report-viewer.component';\nimport { RouterModule } from '@angular/router';\nimport { RouteGuard } from './../service/common/routeguard.service';\nimport { SharedModule } from './../shared/shared.module';\nimport { PdfViewerComponent} from 'ng2-pdf-viewer';\nimport { InputsModule } from '@progress/kendo-angular-inputs';\nimport { FormsModule } from '@angular/forms';\n@NgModule({\n imports: [\n CommonModule,\n RouterModule.forChild([\n { path: 'report', component: ReportViewerComponent, canActivate: [RouteGuard] }\n ]),\n SharedModule,\n FormsModule,\n InputsModule\n ],\n declarations: [ReportViewerComponent, PdfViewerComponent]\n})\nexport class ReportModule { }\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3Jvb3Qvcm9vdC5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit } from '@angular/core';\n\n@Component({\n templateUrl: './root.component.html',\n styleUrls: ['./root.component.scss']\n})\nexport class RootComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '../../common/http-client';\n\nimport { environment } from 'environments/environment';\nimport { ConfigService } from '../config.service';\nimport { Options } from 'app/models/models';\n\n@Injectable()\nexport class ApplicationOptionsService {\n private _initialized = false;\n public options: Options;\n\n constructor(private _http: HttpClient, private configService: ConfigService) { }\n\n public async initialize() {\n if (this._initialized) {\n console.info('ApplicationOptionsService already initialized');\n return;\n }\n\n this.options = await this._http.get(`${this.optionsUrl}`).toPromise()\n this._initialized = true;\n }\n public get initialized() {\n return this._initialized;\n }\n \n private get optionsUrl(): string {\n const baseUrl = this.configService.config.serviceUrl;\n return environment.localTesting ? `${baseUrl}options/` : `${baseUrl}asws/profishvb/shear_connector_options/v1/`;\n }\n}\n","import pkceChallenge from 'pkce-challenge';\nimport { Observable, throwError as observableThrowError } from 'rxjs';\n\nimport { catchError } from 'rxjs/operators';\nimport { AppStorageService } from './../util/app-storage.service';\n\nimport { Injectable } from '@angular/core';\nimport { ActivatedRoute, Params } from '@angular/router';\n\n\nimport { HttpHeaders } from '@angular/common/http';\nimport { StateGenerator } from '../../common/StateGenerator';\nimport { environment } from 'environments/environment';\nimport { HttpClient } from '../../common/http-client';\nimport * as _ from 'lodash';\nimport { ConfigService } from '../config.service';\nimport { AppConstants } from '../../common/AppConstants';\nimport { Authentication } from '../../models/authentication';\nimport { SessionStorageService } from '../util/session-storage.service';\nimport { UserService } from './user.service';\n\n@Injectable()\nexport class AuthService {\n private authenticationUrl: string;\n private oAuthCallbackUrl: string;\n private tokenUrl: string;\n private authenticated = false;\n private token: string;\n private expires: any = 0;\n private clientId: string;\n private user: UserService;\n private state: string;\n private authorizeUrl: string;\n private logoutUrl: string;\n // tslint:disable-next-line\n public static countries = [\n 'US', 'IT', 'ES', 'FR', 'BE', 'LU', 'PT'\n ]\n // tslint:disable-next-line\n public static languages = [\n 'en', 'it', 'es', 'fr', 'nl', 'pt'\n ];\n public cultures = new Array();\n // tslint:disable-next-line\n public static validLocales = [\n 'en_US', 'it_IT', 'es_ES', 'fr_BE', 'nl_BE', 'fr_LU', 'pt_PT', 'fr_FR',\n 'en-US', 'it-IT', 'es-ES', 'fr-BE', 'nl-BE', 'fr-LU', 'pt-PT', 'fr-FR',\n 'en', 'it', 'es', 'fr', 'nl', 'pt'\n ];\n\n constructor(private configService: ConfigService, private http: HttpClient, private httpClient: HttpClient, user: UserService, private sessionStorageService: SessionStorageService,\n private activatedRoute: ActivatedRoute, private appStorageService: AppStorageService) {\n this.user = user;\n this.sessionStorageService = sessionStorageService;\n this.activatedRoute = activatedRoute;\n this.activatedRoute.queryParams.subscribe((params: Params) => {\n this.state = params['state'];\n });\n\n this.authenticationUrl = this.configService.config.authenticationUrl;\n this.oAuthCallbackUrl = this.configService.config.callbackUrl;\n this.clientId = this.configService.config.clientId;\n this.tokenUrl = this.configService.config.tokenUrl;\n this.authorizeUrl = this.configService.config.authorizeUrl;\n this.logoutUrl = this.configService.config.logoutUrl;\n this.cultures.push({ lang: 'en', locale: 'en_US' });\n this.cultures.push({ lang: 'es', locale: 'es_ES' });\n this.cultures.push({ lang: 'pt', locale: 'pt_PT' });\n this.cultures.push({ lang: 'fr', locale: 'fr_FR' });\n this.cultures.push({ lang: 'nl', locale: 'nl_BE' });\n this.cultures.push({ lang: 'it', locale: 'it_IT' });\n }\n\n\n /**\n * Login to application\n **/\n public login(authenticationData: any) {\n const auth = {\n accessToken: authenticationData.access_token,\n subscriptionInfo: authenticationData.subscription_info,\n userId: authenticationData.subscription_info.UID,\n userName: authenticationData.subscription_info.LogonID,\n license: authenticationData.subscription_info.AuthorizationEntryList[0].Licenses,\n company: authenticationData.subscription_info.CustomerID,\n customerOriginID: authenticationData.subscription_info.AuthorizationEntryList[0].CustomerOriginID,\n eulaAcceptance: this.appStorageService.get(AppConstants.HVB_EULA),\n countryOfResidence: authenticationData.subscription_info.CountryOfResidence\n };\n // console.log('Session Storage ', this.sessionStorageService);\n // if (auth.accessToken && (!storagekey || (storagekey && storagekey === this.state))) {\n if (auth.accessToken) {\n this.user.setAuthenticated({\n accessToken: auth.accessToken,\n license: auth.license,\n userId: auth.userId,\n userName: auth.userName,\n company: auth.company,\n countryOfResidence: auth.countryOfResidence,\n customerOriginID: auth.customerOriginID,\n eulaAcceptance: auth.eulaAcceptance\n });\n\n return true;\n }\n\n return false;\n }\n public logout() {\n let accessToken = '';\n if (this.user && this.user.authentication) {\n accessToken = this.user.authentication.accessToken;\n }\n const lang = this.appStorageService.get(AppConstants.LOCALE);\n const logoutUrl = this.authenticationUrl.concat('/', this.logoutUrl);\n\n const form = document.createElement('form');\n\n form.method = 'POST';\n form.action = logoutUrl;\n\n const clientIdInput = document.createElement('input');\n clientIdInput.value = this.clientId;\n clientIdInput.name = 'client_id';\n form.appendChild(clientIdInput);\n\n const langInput = document.createElement('input');\n langInput.value = lang;\n langInput.name = 'lang';\n form.appendChild(langInput);\n\n const accessTokenInput = document.createElement('input');\n accessTokenInput.value = accessToken;\n accessTokenInput.name = 'access_token';\n form.appendChild(accessTokenInput);\n\n const logoutUriInput = document.createElement('input');\n logoutUriInput.value = window.location.origin + '/logout';\n logoutUriInput.name = 'logout_uri';\n form.appendChild(logoutUriInput);\n\n this.invalidateLogin();\n if (!environment.localTesting) {\n form.style.display = 'none';\n document.body.appendChild(form);\n form.submit();\n }\n }\n\n public invalidateLogin() {\n // invalidate authentication on client\n this.user.invalidateAuthentication();\n this.appStorageService.remove(AppConstants.ReturnUrl);\n this.appStorageService.remove(AppConstants.LOCALE);\n }\n\n getAuthURL(): string {\n const state = StateGenerator.generateState();\n\n const locale = this.appStorageService.get(AppConstants.LOCALE);\n const authURL = this.getAuthorizeUrl(locale.toString(), state);\n return authURL;\n }\n\n public getLocale(): string {\n let authLang = 'en_US';\n const navLanguage = window.navigator.language;\n if (!navLanguage) {\n return authLang;\n }\n if (navLanguage.length === 2) { // Format is 2 char like 'en' or 'it etc\n const result = this.cultures.find(item => item.lang === navLanguage);\n authLang = result ? result.locale : authLang;\n } else {\n let navLocale = navLanguage.split('-');\n if (navLocale.length === 2) { // Format is 'en-US, 'it-IT' etc\n const navLocaleLang = navLocale[0] + '_' + navLocale[1];\n const result = AuthService.validLocales.find(lang => lang == navLocaleLang);\n authLang = result ? navLocaleLang : authLang;\n } else {\n navLocale = navLanguage.split('_');\n if (navLocale.length === 2) { // Format is 'en_US, 'it_IT' etc\n const result = AuthService.validLocales.find(lang => lang == navLanguage);\n authLang = result ? navLanguage : authLang;\n }\n }\n }\n return authLang;\n }\n\n public getCountry(): string {\n const locale = this.getLocale();\n const navLocale = locale.split('_'); // get locale returns in xx_YY format\n let authCountry = 'US';\n if (navLocale.length === 2) {\n const navCountry = navLocale[1];\n const result = AuthService.countries.find(country => country == navCountry);\n authCountry = result ? result : authCountry;\n }\n return authCountry;\n }\n\n public getAuthorizeUrl(lang: string, state: string): string {\n const currentLocale = this.getLocale(); // We will use window navigator language for the locale for auth related stuff\n\n const { code_verifier, code_challenge } = pkceChallenge();\n this.sessionStorageService.set('code_verifier', code_verifier);\n\n const url = this.authenticationUrl\n .concat('/', this.authorizeUrl)\n .concat('?client_id=', this.clientId)\n .concat('&redirect_uri=', this.oAuthCallbackUrl)\n .concat('&response_type=', 'code')\n .concat('&scope=', 'HC.Request.AllScopes')\n .concat('&state=', state)\n .concat('&lang=', currentLocale)\n .concat('&code_challenge=', code_challenge)\n .concat('&code_challenge_method=', 'S256');\n\n console.log('Calling Authorize URL ', url);\n console.log('Browser Locale ', window.navigator.language);\n return url;\n }\n\n\n public getToken(code: string, state: string): Observable {\n // get access token via code\n if (!environment.localTesting) {\n const verifier = this.sessionStorageService.get('code_verifier');\n this.sessionStorageService.remove('code_verifier');\n\n let headers = new HttpHeaders();\n headers = headers.append('Content-Type', 'application/x-www-form-urlencoded');\n\n const url = this.authenticationUrl.concat('/', this.tokenUrl);\n\n const data = ''\n .concat('grant_type=', 'authorization_code')\n .concat('&code=', code)\n .concat('&client_id=', this.clientId)\n .concat('&redirect_uri=', this.oAuthCallbackUrl)\n .concat('&code_verifier=', verifier);\n\n console.log('Getting access token with url and data:', ''.concat('url=', url, ' data=', data));\n return this.http.post(url, data, headers)\n .pipe(catchError((error: any) => observableThrowError(error ? error || 'unable-to-get-security-token' : 'unable-to-get-security-token'))); // ...errors if any\n } else {\n return this.http.get('assets/auth-response.json')\n .pipe(catchError((error: any) => observableThrowError(error ? error || 'unable-to-get-security-token' : 'unable-to-get-security-token'))); // ...errors if any\n }\n }\n\n}\n","import { Injectable } from '@angular/core';\r\nimport { AppConstants } from '../../common/AppConstants';\r\nimport { StateGenerator } from '../../common/StateGenerator';\r\nimport { ConfigService } from '../config.service';\r\nimport { SessionStorageService } from '../util/session-storage.service';\r\nimport { RoutingService } from './routing.service';\r\nimport { UserService } from './user.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class LongregistrationService {\r\n listOfEnabledCountries = [\r\n 'AE', // United Arab Emirates\r\n 'AR', // Argentina\r\n 'AT', // Austria\r\n 'AU', // Australia\r\n 'BE', // Belgium\r\n 'BG', // Bulgaria\r\n 'BH', // Bahrain\r\n 'BR', // Brazil\r\n 'BY', // Belarus\r\n 'CA', // Canada\r\n 'CH', // Switzerland\r\n 'CL', // Chile\r\n 'CZ', // Czech Republic\r\n 'DE', // Germany\r\n 'EE', // Estonia\r\n 'ES', // Spain\r\n 'FR', // France\r\n 'GB', // United Kingdom\r\n 'GR', // Greece\r\n 'HR', // Croatia\r\n 'HU', // Hungary\r\n 'IL', // Israel\r\n 'IT', // Italy\r\n 'KZ', // Kazakhstan\r\n 'KW', // Kuwait\r\n 'LT', // Lithuania\r\n 'LU', // Luxembourg\r\n 'LV', // Latvia\r\n 'MX', // Mexico\r\n 'NL', // Netherlands\r\n 'NZ', // New Zealand\r\n 'OM', // Oman\r\n 'PE', // Peru\r\n 'PH', // Philippines\r\n 'PL', // Poland\r\n 'PT', // Portugal\r\n 'QA', // Qatar\r\n 'RO', // Romania\r\n 'RS', // Serbia\r\n 'SA', // Saudi Arabia\r\n 'SG', // Singapore\r\n 'SI', // Slovenia\r\n 'SK', // Slovakia\r\n 'TR', // Turkey\r\n 'UA', // Ukraine\r\n 'US', // United States\r\n 'ZA' // South Africa\r\n ];\r\n\r\n constructor(\r\n private userService: UserService,\r\n private sessionStorageService: SessionStorageService,\r\n private routingService: RoutingService,\r\n private configService: ConfigService\r\n ) { }\r\n\r\n public isLongRegistrationNeeded(): boolean {\r\n const doesCountrySupportLongRegistration = (countryCode: string) => {\r\n if (countryCode == null) {\r\n return false;\r\n }\r\n\r\n const supportedCountry = this.listOfEnabledCountries.filter(x => x == countryCode);\r\n\r\n if (supportedCountry && supportedCountry.length > 0) {\r\n return true;\r\n }\r\n\r\n return false;\r\n };\r\n\r\n const auth = this.userService.getAuthentication();\r\n if (!auth) {\r\n return false;\r\n }\r\n\r\n //\r\n // Check order is important here\r\n //\r\n if (this.isInternalHiltiUser(auth.userName) || // 1.) Check if user is internal - @hilti.com\r\n auth.customerOriginID || // 2.) Check if customer origin ID is already set (long registration already finished).\r\n !doesCountrySupportLongRegistration(auth.countryOfResidence) // 3.) Check if country isn't supported.\r\n ) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n public async redirectToLongRegistration() {\r\n // Long registration needs Base64-encoded state!\r\n const stateEncoded = btoa(StateGenerator.generateState());\r\n this.sessionStorageService.set(AppConstants.RegistrationStateStorageKey, stateEncoded);\r\n\r\n // Save the current url for when we get back from the login page\r\n this.sessionStorageService.set(AppConstants.RegistrationReturnUrl, this.routingService.currentPath);\r\n\r\n const auth = this.userService.getAuthentication();\r\n\r\n const url = new URL(this.configService.config.longRegistrationUrl);\r\n // Country has to be upper case!\r\n url.searchParams.append('country', auth.countryOfResidence.toUpperCase());\r\n // Language only (without culture)!\r\n // We are not passing language (optional) because HOL cannot fallback to default language if our language is not supported (HOL throws error if country=DE and language=en)\r\n // url.searchParams.append('language', language);\r\n url.searchParams.append('redirect_url', this.routingService.buildRedirectUri(AppConstants.RegistrationCallback));\r\n url.searchParams.append('app_id', 'HSCD');\r\n url.searchParams.append('state', stateEncoded);\r\n url.searchParams.append('clientid', this.configService.config.clientId);\r\n\r\n window.location.href = url.toString();\r\n\r\n // return a promise that is never resolved or rejected since we are waiting for page navigation\r\n return new Promise(() => { });\r\n }\r\n\r\n private isInternalHiltiUser(userName: string) {\r\n // that's how hilti cloud filters them\r\n return userName.indexOf('@hilti.com') > 0;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable()\nexport class NavService {\n private _navSource = new BehaviorSubject>([]);\n public $navItemsChanged = this._navSource.asObservable();\n constructor() {\n\n }\n\n public setNav(navItems: Array) {\n this._navSource.next(navItems);\n }\n}\n\nexport interface INavItem {\n routeUrl: string;\n routeName: string;\n navId: string; // page element identifier\n}\n","\nimport { AppStorageService } from './../util/app-storage.service';\nimport { StateGenerator } from './../../common/StateGenerator';\nimport { AppConstants } from './../../common/AppConstants';\nimport {\n ActivatedRouteSnapshot,\n RouterStateSnapshot\n} from '@angular/router';\nimport { CanActivate } from '@angular/router';\nimport { UserService } from './user.service';\nimport { AuthService } from './auth.service';\nimport { Injectable } from '@angular/core';\nimport { environment } from 'environments/environment';\nimport { LongregistrationService } from './longregistration.service';\nimport { ApplicationOptionsService } from './application-options.service';\n\n\n@Injectable()\nexport class RouteGuard implements CanActivate {\n constructor(\n private userService: UserService,\n private authService: AuthService,\n private applicationOptionsService: ApplicationOptionsService,\n private longRegistrationService: LongregistrationService) {\n }\n\n async canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise {\n if (this.longRegistrationService.isLongRegistrationNeeded()) {\n this.longRegistrationService.redirectToLongRegistration();\n }\n if (!environment.localTesting) {\n if (!this.userService.isAuthenticated) {\n location.assign(this.authService.getAuthURL());\n } else {\n await this.applicationOptionsService.initialize();\n return true;\n }\n } else if (environment.localTesting && this.userService.isAuthenticated) {\n await this.applicationOptionsService.initialize();\n return true;\n }\n }\n}\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RoutingService {\r\n public get currentUrl() {\r\n return new URL(window.location.href);\r\n }\r\n\r\n public get currentPath() {\r\n return this.currentUrl.pathname;\r\n }\r\n\r\n public buildRedirectUri(path: string) {\r\n return window.location.origin + path;\r\n }\r\n}\r\n","import { TranslateService } from '@ngx-translate/core';\nimport { ToasterService, Toast } from 'angular2-toaster';\nimport { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { Settings, UnitSystem } from '../../models/models';\n\n@Injectable()\nexport class SharedService {\n private _breadcrumbSource = new BehaviorSubject('home');\n breadCrumb$ = this._breadcrumbSource.asObservable();\n\n // Observable lang Source\n private _languageSource = new BehaviorSubject('en');\n // Observable lang stream\n language$ = this._languageSource.asObservable();\n\n // control the show EULA dialog\n private _showEulaDialog = new BehaviorSubject(false);\n public $showEulaDialog = this._showEulaDialog.asObservable();\n\n // control the show dialog after login\n private _showDialogAfterLogin = new BehaviorSubject(false);\n public $showDialogAfterLogin = this._showDialogAfterLogin.asObservable();\n\n // control the loading screen\n private _loaderSource = new BehaviorSubject(false);\n public $loader = this._loaderSource.asObservable();\n\n private _pdfDataReady = new BehaviorSubject(null);\n public $pdfDataReady = this._pdfDataReady.asObservable();\n\n private _settingsSource = new BehaviorSubject(null);\n public $settings = this._settingsSource.asObservable();\n\n constructor(private toasterService: ToasterService,\n private translate: TranslateService) {\n }\n\n public showEulaDialog(show: boolean) {\n this._showEulaDialog.next(show);\n }\n\n public showDialogAfterLogin(show: boolean) {\n this._showDialogAfterLogin.next(show);\n }\n\n public showLoader(show: boolean) {\n this._loaderSource.next(show);\n }\n // service command\n changeLanguage(lang) {\n if (this._languageSource.value !== lang) {\n this._languageSource.next(lang);\n }\n }\n // service command\n changeSettings(settings) {\n this._settingsSource.next(settings);\n }\n // service command\n changeBreadCrumb(breadcrumb) {\n this._breadcrumbSource.next(breadcrumb);\n }\n public pdfDataRready(pdfData) {\n this._pdfDataReady.next(pdfData);\n }\n public popToast = (toastType: string, body: string) => {\n this.toasterService.pop({\n type: toastType,\n body: this.translate.instant(body)\n });\n }\n\n public popFailure = (body: string) => {\n this.popToast('error', body);\n }\n\n public popSuccess = (body: string) => {\n this.popToast('success', body);\n }\n\n public getSupportedLocales() {\n const languages = new Map();\n languages.set('argentina', [{ 'culture': 'es_AR', 'label': 'spanish', 'value': 'es', isoCode: 'AR' }]);\n languages.set('australia', [{ 'culture': 'en_AU', 'label': 'english', 'value': 'en', 'isoCode': 'AU' }]);\n languages.set('austria', [{ 'culture': 'en_AT', 'label': 'german', 'value': 'de', 'isoCode': 'AT' }]);\n languages.set('belgium', [\n { 'culture': 'fr_BE', 'value': 'fr', 'label': 'french', 'isoCode': 'BE' },\n { 'culture': 'nl_BE', 'value': 'nl', 'label': 'dutch', 'isoCode': 'BE' }\n ]);\n languages.set('brazil', [{ 'culture': 'pt_BR', 'label': 'Portuguese', 'value': 'pt', isoCode: 'BR' }]);\n languages.set('bulgaria', [\n { 'culture': 'bg_BG', 'label': 'bulgarian', 'value': 'bg', 'isoCode': 'BG' },\n { 'culture': 'en_BG', 'label': 'english', 'value': 'en', 'isoCode': 'BG' }\n ]);\n languages.set('canada', [\n { 'culture': 'en_US', 'label': 'english', value: 'en', 'isoCode': 'CA' }\n ]);\n languages.set('chile', [{ 'culture': 'es_CL', 'label': 'spanish', 'value': 'es', isoCode: 'CL' }]);\n languages.set('colombia', [{ 'culture': 'es_CO', 'label': 'spanish', 'value': 'es', isoCode: 'CO' }]);\n languages.set('croatia', [{ 'culture': 'en_HR', 'label': 'english', 'value': 'en', isoCode: 'HR' }]);\n languages.set('czech-republic', [\n { 'culture': 'cs_CZ', 'label': 'czech', 'value': 'cs', 'isoCode': 'CZ' },\n { 'culture': 'en_CZ', 'label': 'english', 'value': 'en', 'isoCode': 'CZ' }\n ]);\n // languages.set('estonia', [{ 'culture': 'en_US', 'label': 'english', 'value': 'en' }]);\n languages.set('france', [{ 'culture': 'fr_FR', 'label': 'french', 'value': 'fr', 'isoCode': 'FR' }]);\n languages.set('germany', [{ 'culture': 'en_DE', 'label': 'german', 'value': 'de', 'isoCode': 'DE' }]);\n languages.set('greece', [{ 'culture': 'en_GR', 'label': 'english', 'value': 'en', 'isoCode': 'GR' }]);\n languages.set('hungary', [\n { 'culture': 'hu_HU', 'label': 'hungarian', 'value': 'hu', 'isoCode': 'HU' },\n { 'culture': 'en_HU', 'label': 'english', 'value': 'en', 'isoCode': 'HU' }\n ]);\n languages.set('italy', [{ 'culture': 'it_IT', 'label': 'italian', 'value': 'it', 'isoCode': 'IT' }]);\n languages.set('ireland', [{ 'culture': 'en-IE', 'label': 'english', 'value': 'en', 'isoCode': 'IE' }]);\n languages.set('israel', [{ 'culture': 'il_EN', 'label': 'english', 'value': 'en', 'isoCode': 'IL' }]);\n // languages.set('latvia', [{ 'culture': 'en_US', 'label': 'english', 'value': 'en' }]);\n // languages.set('lithuania', [{ 'culture': 'en_US', 'label': 'english', 'value': 'en' }]);\n languages.set('luxemburg', [{ 'culture': 'fr_LU', 'label': 'french', 'value': 'fr', 'isoCode': 'LU' }]);\n languages.set('mexico', [{ 'culture': 'es_MX', 'label': 'spanish', 'value': 'es', isoCode: 'MX' }]);\n languages.set('netherlands', [{ 'culture': 'en_NL', 'label': 'dutch', 'value': 'nl', 'isoCode': 'NL' }]);\n languages.set('new-zealand', [{ 'culture': 'en_NZ', 'label': 'english', 'value': 'en', 'isoCode': 'NZ' }]);\n languages.set('peru', [{ 'culture': 'es_PE', 'label': 'spanish', 'value': 'es', isoCode: 'PE' }]);\n languages.set('poland', [{ 'culture': 'en_PL', 'label': 'polish', 'value': 'pl', 'isoCode': 'PL' }]);\n languages.set('portugal', [{ 'culture': 'pt_PT', 'label': 'portuguese', 'value': 'pt', 'isoCode': 'PT' }]);\n languages.set('qatar', [{ 'culture': 'ar_QA', 'label': 'english', 'value': 'en', 'isoCode': 'QA' }]);\n languages.set('romania', [\n { 'culture': 'ro_RO', 'label': 'romanian', 'value': 'ro', 'isoCode': 'RO' },\n { 'culture': 'en_RO', 'label': 'english', 'value': 'en', 'isoCode': 'RO' }\n ]);\n languages.set('saudi-arabia', [{ 'culture': 'ar_SA', 'label': 'english', 'value': 'en', 'isoCode': 'SA' }]);\n languages.set('serbia', [{ 'culture': 'en_RS', 'label': 'english', 'value': 'en', 'isoCode': 'RS' }]);\n languages.set('singapore', [{ 'culture': 'en_SG', 'label': 'english', 'value': 'en', 'isoCode': 'SG' }]);\n languages.set('slovakia', [\n { 'culture': 'sk_SK', 'label': 'slovak', 'value': 'sk', 'isoCode': 'SK' },\n { 'culture': 'en_SK', 'label': 'english', 'value': 'en', 'isoCode': 'SK' }\n ]);\n languages.set('slovenia', [\n { 'culture': 'sl_SI', 'label': 'Slovenian', 'value': 'en', 'isoCode': 'SI' }\n ]);\n languages.set('south-africa', [{ 'culture': 'en_ZA', 'label': 'english', 'value': 'en', isoCode: 'ZA' }]);\n languages.set('spain', [{ 'culture': 'es_ES', 'label': 'spanish', 'value': 'es', isoCode: 'ES' }]);\n languages.set('sweden', [{ 'culture': 'en_SV', 'label': 'english', 'value': 'en', isoCode: 'SV' }]);\n languages.set('switzerland', [{ 'culture': 'en_CH', 'label': 'german', 'value': 'de', isoCode: 'CH' }]);\n languages.set('turkey', [{ 'culture': 'tr_TR', 'label': 'Turkish', 'value': 'tr', isoCode: 'TR' }]);\n languages.set('emirates', [{ 'culture': 'ar_AE', 'label': 'english', 'value': 'en', isoCode: 'AE' }]);\n languages.set('united-kingdom', [{ 'culture': 'en_GB', 'label': 'english', 'value': 'en', isoCode: 'GB' }]);\n languages.set('united-states', [{ 'culture': 'en_US', 'label': 'English', 'value': 'en', isoCode: 'US' }]);\n languages.set('none', [{ 'culture': 'en_US', 'label': 'english', 'value': 'en', isoCode: 'none' }]);\n return languages;\n }\n}\n","import { HttpClient } from './../../common/http-client';\n\nimport {empty as observableEmpty, Observable } from 'rxjs';\n\nimport {mergeMap} from 'rxjs/operators';\nimport { Injectable } from '@angular/core';\nimport { SettingsService } from '../../settings/settings.service';\nimport { ApplicationOptionsService } from './application-options.service';\nimport { Settings } from 'app/models/models';\n\n@Injectable()\nexport class UrlService {\n\n constructor(\n private _http: HttpClient,\n private _settingsService: SettingsService,\n private applicationOptionsService: ApplicationOptionsService) {\n }\n\n public getCurrentUrls(): Observable {\n return this._settingsService.getSettings().pipe(mergeMap(settings => {\n return this.getCurrentUrlsBySettings(settings);\n }));\n }\n\n public getCurrentUrlsBySettings(settings: Settings): Observable {\n const options = this.applicationOptionsService.options;\n if (settings && options) {\n const currentCountry = options.nationalAnnexes.filter(c => c.id === settings.countryNationalAnnexes)[0].labelKey;\n return this._http.get(`./assets/url/${currentCountry.toLowerCase()}-url-setting.json`);\n } else {\n return observableEmpty();\n }\n }\n}\n","import { EventEmitter, Injectable, Output } from '@angular/core';\nimport { JwtHelperService } from '@auth0/angular-jwt';\nimport { environment } from 'environments/environment';\nimport * as _ from 'lodash';\nimport { AppConstants } from './../../common/AppConstants';\nimport { Authentication } from './../../models/authentication';\nimport { Settings, UnitSystem } from './../../models/models';\nimport { AppStorageService } from './../util/app-storage.service';\nimport { SessionStorageService } from './../util/session-storage.service';\n\n@Injectable()\nexport class UserService {\n public authentication: Authentication;\n public defaultSettings: Settings;\n public unitSystem: UnitSystem;\n private isTest: boolean;\n private jwtHelper = new JwtHelperService();\n @Output()\n authenticated: EventEmitter = new EventEmitter();\n\n constructor(\n private appStorage: AppStorageService,\n private sessionStorageService: SessionStorageService,\n private appStorageService: AppStorageService) {\n this.isTest = environment.localTesting ? true : false;\n }\n\n public get isEulaAccepted(): boolean {\n return _.isObject(this.authentication) &&\n !_.isNull(this.authentication.eulaAcceptance) && !_.isEmpty(this.authentication.eulaAcceptance) &&\n this.authentication.eulaAcceptance === this.authentication.userId;\n }\n\n public get isAuthenticated() {\n let isAuthenticated: boolean = _.isObject(this.authentication) &&\n !_.isNull(this.authentication.accessToken) && !_.isEmpty(this.authentication.accessToken);\n if (isAuthenticated && !this.isTest) {\n isAuthenticated = !this.jwtHelper.isTokenExpired(this.authentication.accessToken);\n }\n return isAuthenticated;\n }\n\n public setAuthenticated(data: Authentication, remember?: boolean) {\n console.log('Set Authenticated, Data = ', data['userId'], data['userName'], data['company']);\n this.authentication = {\n accessToken: data.accessToken,\n license: data.license,\n userId: data.userId,\n userName: data.userName,\n company: data.company,\n customerOriginID: data.customerOriginID,\n eulaAcceptance: this.appStorageService.get(AppConstants.HVB_EULA),\n countryOfResidence: data.countryOfResidence\n };\n // save to session\n this.sessionStorageService.set(AppConstants.authenticationStorageKey, this.authentication);\n if (remember) {\n this.appStorage.set(AppConstants.authenticationStorageKey, this.authentication);\n } else {\n this.appStorage.remove(AppConstants.authenticationStorageKey);\n }\n this.authenticated.emit(this.authentication);\n }\n\n public getAuthentication() {\n return this.authentication;\n }\n\n public invalidateAuthentication() {\n this.authentication = null;\n this.sessionStorageService.remove(AppConstants.authenticationStorageKey);\n this.appStorage.remove(AppConstants.authenticationStorageKey);\n if (this.appStorage.get(AppConstants.HVB_EULA)) {\n this.appStorage.set(AppConstants.HVB_PREVIOUS_USER, this.appStorage.get(AppConstants.HVB_EULA));\n }\n this.appStorage.remove(AppConstants.HVB_EULA);\n }\n\n public authenticatedFromStorage() {\n this.authentication = this.sessionStorageService.get(AppConstants.authenticationStorageKey) ||\n this.appStorage.get(AppConstants.authenticationStorageKey);\n\n if (!this.isAuthenticated) {\n this.invalidateAuthentication();\n } else {\n // trigger authenticated event\n this.authenticated.emit(this.authentication);\n }\n }\n\n public onAuthenticated(fn: (authentication: Authentication) => void) {\n // tslint:disable-next-line\n this.authenticated.subscribe((authentication) => { fn; });\n }\n\n}\n","import { Injectable } from '@angular/core';\n\nfunction getWindow(): any {\n return window;\n}\n\n@Injectable()\nexport class WindowRefService {\n get nativeWindow(): any {\n return getWindow();\n }\n}\n","import { Injectable } from '@angular/core';\nimport schema from '../../environments/environment.local.json';\nimport { environment } from 'environments/environment';\nexport type Environment = typeof schema;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ConfigService {\n private _config: Environment;\n\n constructor() { }\n\n async loadConfig(){\n if (environment.production) {\n const response = await fetch('/assets/config.json');\n const config = await response.json();\n this._config = config as Environment;\n }\n else {\n this._config = require('../../environments/environment.local.json') as Environment;\n }\n\n return Promise.resolve();\n }\n\n public get config() {\n return this._config;\n }\n}\n","/**\n * AppStorage interface\n **/\nexport interface IAppStorageService {\n get(key: string): T;\n set(key: string, value: any): void;\n remove(key: string): void;\n}\n\n/**\n * Local storage dictionary\n **/\nexport class AppStorageService implements IAppStorageService {\n get(key: string) {\n try {\n return JSON.parse(localStorage.getItem(key));\n } catch (e) {\n console.error(e);\n return null;\n }\n }\n\n set(key: string, value: T) {\n localStorage.setItem(key, JSON.stringify(value));\n }\n\n remove(key: string) {\n localStorage.removeItem(key);\n }\n}\n","export class SessionStorageService {\n get(key: string) {\n return JSON.parse(sessionStorage.getItem(key));\n }\n\n set(key: string, value: T) {\n sessionStorage.setItem(key, JSON.stringify(value));\n }\n\n remove(key: string) {\n sessionStorage.removeItem(key);\n }\n}\n\n\n","export default \".definition-states {\\n padding-left: 20px; }\\n\\n.align-center {\\n align-items: center; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9idWlsZHMvYnUtZi1wcy9zaGVhci1jb25uZWN0b3IvZGVwbG95L2NvZGUvaHZiLXdlYi9odmItYXBwL3NyYy9hcHAvc2V0dGluZ3MvYXpuemNvbWJpbmF0aW9uLWZhY3Rvci9hem56Y29tYmluYXRpb24tZmFjdG9yLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsbUJBQWtCLEVBQ25COztBQUNEO0VBQ0Usb0JBQW1CLEVBQ3BCIiwiZmlsZSI6InNyYy9hcHAvc2V0dGluZ3MvYXpuemNvbWJpbmF0aW9uLWZhY3Rvci9hem56Y29tYmluYXRpb24tZmFjdG9yLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmRlZmluaXRpb24tc3RhdGVzIHtcbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xufVxuLmFsaWduLWNlbnRlciB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4iXX0= */\"","import {Component, Input, OnInit} from '@angular/core';\nimport {FormGroup} from '@angular/forms';\n\n@Component({\n selector: 'app-aznzcombination-factor',\n templateUrl: './aznzcombination-factor.component.html',\n styleUrls: ['./aznzcombination-factor.component.scss']\n})\nexport class AZNZCombinationFactorComponent implements OnInit {\n @Input() parentForm: FormGroup;\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","export default \".subText {\\n font-size: .8rem;\\n color: #671C3E;\\n font-weight: bold; }\\n\\nfieldset {\\n border-bottom: 0px;\\n border-left: 0px;\\n border-right: 0px;\\n border-top: 1px solid #DDDDDD; }\\n\\nfieldset legend {\\n border-bottom: 1px solid #DDDCDD;\\n padding: 10px;\\n margin-bottom: 0px; }\\n\\n.save-legend {\\n color: white;\\n text-align: right;\\n padding-left: .5rem; }\\n\\n.safety-legend {\\n text-align: left;\\n padding-right: .5rem;\\n font-size: 1rem;\\n color: #534F53;\\n font-weight: bolder;\\n background-color: #FFF; }\\n\\n.save-button {\\n color: white;\\n background-color: #3880B0;\\n cursor: pointer;\\n position: relative;\\n text-align: left;\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n height: 34px;\\n width: 34px;\\n padding: 0;\\n border-radius: 0; }\\n\\n.save-button :first-child {\\n position: absolute;\\n left: 0;\\n top: 0;\\n bottom: 0;\\n width: 32px;\\n line-height: 34px;\\n font-size: 1.6em;\\n text-align: center;\\n border-right: 1px solid transparent; }\\n\\n.save-button:hover {\\n color: #3880B0;\\n background-color: white; }\\n\\n.save-button:disabled {\\n background-color: #999999; }\\n\\n.save-button:disabled:hover {\\n color: white;\\n background-color: #999999;\\n cursor: not-allowed; }\\n\\n.back-button {\\n color: white;\\n background-color: #3880B0;\\n cursor: pointer;\\n position: relative;\\n text-align: left;\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n height: 34px;\\n width: 34px;\\n padding: 0;\\n border-radius: 0; }\\n\\n.back-button :first-child {\\n position: absolute;\\n left: 0;\\n top: 0;\\n bottom: 0;\\n width: 32px;\\n line-height: 34px;\\n font-size: 1.2em;\\n text-align: center;\\n border-right: 1px solid transparent; }\\n\\n.back-button:hover {\\n color: #3880B0;\\n background-color: white; }\\n\\n.input-group-addon {\\n height: calc(2.25rem + 2px);\\n padding-top: 28px;\\n border: 0;\\n padding-left: 5px; }\\n\\n.align-center {\\n align-items: center; }\\n\\n.definition-states {\\n padding-left: 20px; }\\n\\n.hui-card {\\n padding: 0px; }\\n\\n.settings-container {\\n background-color: #FFF; }\\n\\n.setting-block {\\n background-color: #FAFAFA; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9idWlsZHMvYnUtZi1wcy9zaGVhci1jb25uZWN0b3IvZGVwbG95L2NvZGUvaHZiLXdlYi9odmItYXBwL3NyYy9hcHAvc2V0dGluZ3Mvc2V0dGluZ3MuY29tcG9uZW50LnNjc3MiLCIvYnVpbGRzL2J1LWYtcHMvc2hlYXItY29ubmVjdG9yL2RlcGxveS9jb2RlL2h2Yi13ZWIvaHZiLWFwcC9ub2RlX21vZHVsZXMvaGlsdGktdWktbGlicmFyeS9hc3NldHMvc2Fzcy9faHVpLWNvbG9ycy5zY3NzIiwiL2J1aWxkcy9idS1mLXBzL3NoZWFyLWNvbm5lY3Rvci9kZXBsb3kvY29kZS9odmItd2ViL2h2Yi1hcHAvc3JjL192YXJpYWJsZXMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQTtFQUNJLGlCQUFnQjtFQUNoQixlQ3FCa0I7RURwQmxCLGtCQUFpQixFQUNwQjs7QUFDRDtFQUNJLG1CQUFrQjtFQUNsQixpQkFBZ0I7RUFDaEIsa0JBQWlCO0VBQ2pCLDhCRUgyQixFRkk5Qjs7QUFDRDtFQUNJLGlDQ0RtQjtFREVyQixjQUFhO0VBQ2IsbUJBQWtCLEVBQ25COztBQUNEO0VBQ0ksYUFBWTtFQUNaLGtCQUFpQjtFQUNqQixvQkFBbUIsRUFDdEI7O0FBQ0Q7RUFDSSxpQkFBZ0I7RUFDaEIscUJBQW9CO0VBQ3BCLGdCQUFlO0VBQ2YsZUVyQmlCO0VGc0JqQixvQkFBbUI7RUFDbkIsdUJDWlksRURhZjs7QUFDRDtFQUNJLGFBQVk7RUFDWiwwQkV4QnNCO0VGeUJ0QixnQkFBZTtFQUNmLG1CQUFpQjtFQUNqQixpQkFBZTtFQUNmLG9CQUFrQjtFQUNsQixpQkFBZTtFQUNmLHdCQUFzQjtFQUN0QixhQUFXO0VBQ1gsWUFBVTtFQUNWLFdBQVM7RUFDVCxpQkFBZ0IsRUFZbkI7O0FBeEJEO0lBY1EsbUJBQWlCO0lBQ2pCLFFBQU07SUFDTixPQUFLO0lBQ0wsVUFBUTtJQUNSLFlBQVU7SUFDVixrQkFBZ0I7SUFDaEIsaUJBQWU7SUFDZixtQkFBaUI7SUFDakIsb0NBQWtDLEVBQ3JDOztBQUVMO0VBQ0ksZUVoRHNCO0VGaUR0Qix3QkFBc0IsRUFDekI7O0FBQ0Q7RUFDSSwwQkV0RDJCLEVGdUQ5Qjs7QUFDRDtFQUNJLGFBQVk7RUFDWiwwQkUxRDJCO0VGMkQzQixvQkFBbUIsRUFDdEI7O0FBQ0Q7RUFDSSxhQUFZO0VBQ1osMEJFN0RzQjtFRjhEdEIsZ0JBQWU7RUFDZixtQkFBaUI7RUFDakIsaUJBQWU7RUFDZixvQkFBa0I7RUFDbEIsaUJBQWU7RUFDZix3QkFBc0I7RUFDdEIsYUFBVztFQUNYLFlBQVU7RUFDVixXQUFTO0VBQ1QsaUJBQWdCLEVBWW5COztBQXhCRDtJQWNRLG1CQUFpQjtJQUNqQixRQUFNO0lBQ04sT0FBSztJQUNMLFVBQVE7SUFDUixZQUFVO0lBQ1Ysa0JBQWdCO0lBQ2hCLGlCQUFlO0lBQ2YsbUJBQWlCO0lBQ2pCLG9DQUFrQyxFQUNyQzs7QUFFTDtFQUNJLGVFckZzQjtFRnNGdEIsd0JBQXNCLEVBQ3pCOztBQUNEO0VBQ0ksNEJBQTJCO0VBQzNCLGtCQUFpQjtFQUNqQixVQUFTO0VBQ1Qsa0JBQ0osRUFBQzs7QUFDRDtFQUNJLG9CQUFtQixFQUN0Qjs7QUFDRDtFQUNJLG1CQUFrQixFQUNyQjs7QUFFRDtFQUNFLGFBQVksRUFDYjs7QUFFRDtFQUNFLHVCQ2xHYyxFRG1HZjs7QUFFRDtFQUNFLDBCQUF5QixFQUMxQiIsImZpbGUiOiJzcmMvYXBwL3NldHRpbmdzL3NldHRpbmdzLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCAnLi4vLi4vdmFyaWFibGVzJztcbi5zdWJUZXh0IHtcbiAgICBmb250LXNpemU6IC44cmVtO1xuICAgIGNvbG9yOiAkaHVpLWJ1cmd1bmR5O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuZmllbGRzZXQge1xuICAgIGJvcmRlci1ib3R0b206IDBweDtcbiAgICBib3JkZXItbGVmdDogMHB4O1xuICAgIGJvcmRlci1yaWdodDogMHB4O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkaGlsdGktc3RlZWwtbGlnaHRlbi0yO1xufVxuZmllbGRzZXQgbGVnZW5kIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGh1aS1zdGVlbC0tMjA7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDBweDtcbn1cbi5zYXZlLWxlZ2VuZCB7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIHBhZGRpbmctbGVmdDogLjVyZW07XG59XG4uc2FmZXR5LWxlZ2VuZCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAuNXJlbTtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgY29sb3I6ICRoaWx0aS1zdGVlbDtcbiAgICBmb250LXdlaWdodDogYm9sZGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRodWktd2hpdGU7XG59XG4uc2F2ZS1idXR0b24ge1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaGlsdGktcmViZWwtYmx1ZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgcG9zaXRpb246cmVsYXRpdmU7XG4gICAgdGV4dC1hbGlnbjpsZWZ0O1xuICAgIHdoaXRlLXNwYWNlOm5vd3JhcDtcbiAgICBvdmVyZmxvdzpoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzplbGxpcHNpcztcbiAgICBoZWlnaHQ6MzRweDtcbiAgICB3aWR0aDozNHB4O1xuICAgIHBhZGRpbmc6MDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIDpmaXJzdC1jaGlsZCB7XG4gICAgICAgIHBvc2l0aW9uOmFic29sdXRlO1xuICAgICAgICBsZWZ0OjA7XG4gICAgICAgIHRvcDowO1xuICAgICAgICBib3R0b206MDtcbiAgICAgICAgd2lkdGg6MzJweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6MzRweDtcbiAgICAgICAgZm9udC1zaXplOjEuNmVtO1xuICAgICAgICB0ZXh0LWFsaWduOmNlbnRlcjtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OjFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICB9XG59XG4uc2F2ZS1idXR0b246aG92ZXIge1xuICAgIGNvbG9yOiRoaWx0aS1yZWJlbC1ibHVlO1xuICAgIGJhY2tncm91bmQtY29sb3I6d2hpdGU7XG59XG4uc2F2ZS1idXR0b246ZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRoaWx0aS1zdGVlbC1saWdodGVuLTE7XG59XG4uc2F2ZS1idXR0b246ZGlzYWJsZWQ6aG92ZXIge1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaGlsdGktc3RlZWwtbGlnaHRlbi0xO1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG4uYmFjay1idXR0b24ge1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaGlsdGktcmViZWwtYmx1ZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgcG9zaXRpb246cmVsYXRpdmU7XG4gICAgdGV4dC1hbGlnbjpsZWZ0O1xuICAgIHdoaXRlLXNwYWNlOm5vd3JhcDtcbiAgICBvdmVyZmxvdzpoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzplbGxpcHNpcztcbiAgICBoZWlnaHQ6MzRweDtcbiAgICB3aWR0aDozNHB4O1xuICAgIHBhZGRpbmc6MDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIDpmaXJzdC1jaGlsZCB7XG4gICAgICAgIHBvc2l0aW9uOmFic29sdXRlO1xuICAgICAgICBsZWZ0OjA7XG4gICAgICAgIHRvcDowO1xuICAgICAgICBib3R0b206MDtcbiAgICAgICAgd2lkdGg6MzJweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6MzRweDtcbiAgICAgICAgZm9udC1zaXplOjEuMmVtO1xuICAgICAgICB0ZXh0LWFsaWduOmNlbnRlcjtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OjFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICB9XG59XG4uYmFjay1idXR0b246aG92ZXIge1xuICAgIGNvbG9yOiRoaWx0aS1yZWJlbC1ibHVlO1xuICAgIGJhY2tncm91bmQtY29sb3I6d2hpdGU7XG59XG4uaW5wdXQtZ3JvdXAtYWRkb24ge1xuICAgIGhlaWdodDogY2FsYygyLjI1cmVtICsgMnB4KTtcbiAgICBwYWRkaW5nLXRvcDogMjhweDtcbiAgICBib3JkZXI6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiA1cHhcbn1cbi5hbGlnbi1jZW50ZXIge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4uZGVmaW5pdGlvbi1zdGF0ZXMge1xuICAgIHBhZGRpbmctbGVmdDogMjBweDtcbn1cblxuLmh1aS1jYXJkIHtcbiAgcGFkZGluZzogMHB4O1xufVxuXG4uc2V0dGluZ3MtY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGh1aS13aGl0ZTtcbn1cblxuLnNldHRpbmctYmxvY2sge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkFGQUZBO1xufVxuIiwiLy9Db2xvcnNcbi8vVE9ETzogcmVtb3ZlIHByZWZpeCBodWkgaW4gY29sb3JzIHZhcmlhYmxlXG4kaHVpLWhpbHRpLXJlZDogI0QyMDUxRTtcbiRodWktZGFyay1yZWQ6ICNBQjAxMTU7XG4kaHVpLWVycm9yLXJlZDogI0ZGMDAwMDtcbiRodWktaGVhdnktY29uY3JldGUtLTEwOiAjRjNGMkYwO1xuJGh1aS1oZWF2eS1jb25jcmV0ZS0tMjA6ICNFN0U1RTI7XG4kaHVpLWhlYXZ5LWNvbmNyZXRlLS0zMDogI0RCRDhEMztcbiRodWktaGVhdnktY29uY3JldGUtLTQwOiAjQ0ZDQ0M1O1xuJGh1aS1oZWF2eS1jb25jcmV0ZS0tNjA6ICNCN0IzQUE7XG4kaHVpLWhlYXZ5LWNvbmNyZXRlLS04MDogI0EwOTk4QjtcbiRodWktc3RlZWw6ICM1MjRGNTM7XG4kaHVpLXN0ZWVsLS0yMDogI0RERENERDtcbiRodWktc3RlZWwtLTQwOiAjQkFCOUJBO1xuJGh1aS1zdGVlbC0tNjA6ICM5Nzk1OTg7XG4kaHVpLXN0ZWVsLS04MDogIzc1NzI3NTtcbiRodWktd2hpdGU6ICNGRkY7XG4kaHVpLWJsYWNrOiAjMDAwO1xuJGh1aS1ibGFjay0tOTA6ICMxOTE5MTk7XG4kaHVpLWJsYWNrLS00MDogIzk5OTk5OTtcbiRodWktZ3JlZW46ICMxOUFGMzc7XG4kaHVpLWdyZWVuLS00MDogI0EzREZBRjtcbiRodWktZGFyay1ibHVlOiAjMDA1Rjk2O1xuXG4kaHVpLWJ1cmd1bmR5OiAjNjcxQzNFO1xuXG4kY3RhOiAkaHVpLWhpbHRpLXJlZDtcbiRwcmltYXJ5OiAkaHVpLXN0ZWVsO1xuJHNlY29uZGFyeTogJGh1aS1oZWF2eS1jb25jcmV0ZS0tMjA7XG4kc3VjY2VzczogIzE5QUYzNztcbiRkYW5nZXI6ICNGRjAwMDA7XG4kd2FybmluZzogI0ZGQUYwMDtcblxuJHRoZW1lLWNvbG9yczogKFxuICBcImN0YVwiOiAkY3RhLFxuICBcImhlYXZ5LWNvbmNyZXRlLS0xMFwiOiAkaHVpLWhlYXZ5LWNvbmNyZXRlLS0xMCxcbiAgXCJoZWF2eS1jb25jcmV0ZS0tMjBcIjogJGh1aS1oZWF2eS1jb25jcmV0ZS0tMjAsXG4pO1xuIiwiQGltcG9ydCBcIi4vbm9kZV9tb2R1bGVzL2hpbHRpLXVpLWxpYnJhcnkvYXNzZXRzL3Nhc3MvaHVpLWNvbG9yc1wiO1xuJGhpbHRpLWNvbmNyZXRlOiAkaHVpLWhlYXZ5LWNvbmNyZXRlLS00MDtcbiRoaWx0aS1jb25jcmV0ZS1saWdodGVuLTE6ICRodWktaGVhdnktY29uY3JldGUtLTQwO1xuJGhpbHRpLWNvbmNyZXRlLWxpZ2h0ZW4tMjogI0VGRUJFNTtcbiRoaWx0aS1jb25jcmV0ZS1kYXJrZW4tMjogIzg4N0Y2RTtcbiRoaWx0aS1zdGVlbDogIzUzNEY1MztcbiRoaWx0aS1zdGVlbC1saWdodGVuLTE6ICM5OTk5OTk7XG4kaGlsdGktc3RlZWwtbGlnaHRlbi0yOiAjREREREREO1xuJGhpbHRpLXJlYmVsLWJsdWU6ICMzODgwQjA7XG4kaGlsdGktcmViZWwtYmx1ZS1saWdodGVuLTE6ICNDQ0RGRUI7XG4kaGlsdGktbGlnaHQtZ3JleTogI0ZBRkFGQTtcbiRoaWx0aS1yZWQ6ICRodWktaGlsdGktcmVkO1xuJGhpbHRpLXBsYWNlaG9sZGVyOiAjZDdkN2Q3O1xuJGhpbHRpLWhvdmVyOiAjRjNGMkYwO1xuJGhpbHRpLXNlbGVjdGVkOiAjRDhEOEQ4O1xuJGhpbHRpLWRpc2FibGVkOiAjRTdFNUUxO1xuJHRhYnN0cmlwLWNvbnRlbnQtcGFkZGluZy14OiAwcHg7XG4kdGFic3RyaXAtY29udGVudC1wYWRkaW5nLXk6IDBweDtcbiR0YWJzdHJpcC1jb250ZW50LWJvcmRlci13aWR0aDogMHB4O1xuJGdyaWQtaGVhZGVyLWJnOiB3aGl0ZTtcbiRncmlkLWJvcmRlcjogcmdiYSgkaHVpLWhlYXZ5LWNvbmNyZXRlLS0yMCwgMCk7XG4kZ3JpZC1oZWFkZXItYm9yZGVyOiByZ2JhKCRodWktaGVhdnktY29uY3JldGUtLTIwLCAxKTtcbiRncmlkLWFsdC1iZzogcmdiYSh3aGl0ZSwgMCk7XG4kZ3JpZC1ob3ZlcmVkLWJnOiAkaHVpLXN0ZWVsLS0yMDtcbiJdfQ== */\"","\nimport { Observable, merge, fromEvent as observableFromEvent } from 'rxjs';\nimport { AfterViewInit, Component, ElementRef, OnDestroy, OnInit, ViewChild, ViewChildren } from '@angular/core';\nimport { FormBuilder, FormControlName, FormGroup, Validators } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport * as _ from 'lodash';\nimport { CustomValidators } from 'ng2-validation';\nimport { debounceTime } from 'rxjs/operators';\nimport { AppConstants } from '../common/AppConstants';\nimport { NationalAnnexSortingHelper } from '../common/utils';\nimport { INavItem, NavService } from '../service/common/nav.service';\nimport { SharedService } from '../service/common/shared.service';\nimport { UserService } from './../service/common/user.service';\nimport { AppStorageService } from './../service/util/app-storage.service';\nimport { SettingsService } from './settings.service';\nimport { ApplicationOptionsService } from 'app/service/common/application-options.service';\nimport { Language, Option, Options, PartialFactor, Settings } from 'app/models/models';\n\n@Component({\n selector: 'app-settings',\n templateUrl: './settings.component.html',\n styleUrls: ['./settings.component.scss']\n})\n\nexport class SettingsComponent implements OnInit, OnDestroy, AfterViewInit {\n public static ATTR_READONLY = false;\n public static DEFAULT_LENGTH_UNIT_ID = 3; // meter\n public static DEFAULT_LOAD_UNIT_ID = 1; // kilo Newton\n public static DEFAULT_NATIONAL_ANNEX = 7;\n public static DEFAULT_LOAD_CATEGORY = 1;\n public static DEFAULT_LOAD = 1;\n public static DEFAULT_DESIGN_CODE = 1;\n public static DEFAULT_LANGUAGE_CODE = 'en';\n public static HOME = '/projects';\n public static DEFAULT_UNIT_SYSTEM = 1;\n public static DEFAULT_US_DEAD_LOAD_1_AISC = 1.4;\n public static DEFAULT_US_DEAD_LOAD_2_AISC = 1.2;\n public static DEFAULT_US_LIVE_LOAD_2_AISC = 1.6;\n public static DEFAULT_US_DEAD_LOAD_1_ASNZS = 1.35;\n public static DEFAULT_US_DEAD_LOAD_2_ASNZS = 1.2;\n public static DEFAULT_US_LIVE_LOAD_2_ASNZS = 1.5;\n public static DEFAULT_US_PHI_ELASTIC = 0.9;\n public static DEFAULT_LIVE_LOAD_REDUCTION = false;\n public static DEFAULT_COMB_FACTORS_ASNZS = {\n ASPhiM: 0.9,\n ASPhiMb: 0.9,\n ASPhiVc: 0.9,\n ASPhiVm: 0.9,\n ASPhiS: 0.9,\n ASPhiC: 0.8,\n ASPhiVf: 0.9,\n ASPhiSC: 0.8,\n ASPhiSR: 0.63\n };\n\n @ViewChildren(FormControlName, { read: ElementRef }) formInputElements: ElementRef[];\n @ViewChild('combinationFactor', { static: false }) combinationFactorElement: ElementRef;\n @ViewChild('ulsGammaG', { static: false }) ulsGammaGElement: ElementRef;\n @ViewChild('ulsGammaQ', { static: false }) ulsGammaQElement: ElementRef;\n @ViewChild('sectionResistance', { static: false }) sectionResistanceElement: ElementRef;\n @ViewChild('elementResistance', { static: false }) elementResistanceElement: ElementRef;\n @ViewChild('steelProfile', { static: false }) steelProfileElement: ElementRef;\n @ViewChild('reinforcementSafety', { static: false }) reinforcementSafetyElement: ElementRef;\n @ViewChild('concrete', { static: false }) concreteElement: ElementRef;\n @ViewChild('connectorResistance', { static: false }) connectorResistanceElement: ElementRef;\n\n public settingsForm: FormGroup;\n\n public validationMessages: { [key: string]: { [key: string]: string } };\n public loadUnits: any[] = [];\n public lengthUnits: any[] = [];\n public languages: Language[] = [];\n public nationalAnnexes: any[] = [];\n public loadCategories: any[] = [];\n public designCodes: any[] = [];\n public combinationFactors: any[] = [];\n public partialFactors: PartialFactor[] = [];\n public unitSystems: any[] = [];\n public dropDownOptions: Options;\n public safetyFactor: any;\n public errorMessage: string;\n public returnUrl: string;\n\n // notification variables\n public saveSuccess = false;\n public saveError = false;\n public getError = false;\n\n constructor(\n private settingsService: SettingsService,\n private sharedService: SharedService,\n private appStorageService: AppStorageService,\n private fb: FormBuilder,\n private router: Router,\n private user: UserService,\n public translate: TranslateService,\n private navService: NavService,\n private applicationOptionsService: ApplicationOptionsService) {\n\n this.validationMessages = {\n ulsGammaG: {\n required: 'uls-combination-g-is-required'\n }, ulsGammaQ: {\n required: 'uls-combination-q-is-required'\n }, concrete: {\n required: 'concrete-is-required'\n }, reinforcement: {\n required: 'reinforcement-safety-is-required'\n }, combinationFactor: {\n required: 'combination-factor-is-required'\n }, steelProfile: {\n required: 'steel-profile-is-required'\n }, connector: {\n required: 'connector-resistance-is-required'\n }, structuralSteelSection: {\n required: 'section-resistance-is-required'\n }, structuralSteelElement: {\n required: 'element-resistance-is-required'\n }\n };\n this.returnUrl = this.appStorageService.get(AppConstants.ReturnUrl);\n console.log('Reading return url from local storage = ', this.returnUrl);\n }\n\n ngOnInit() {\n this.sharedService.changeBreadCrumb('Settings');\n this.updateNav();\n this.dropDownOptions = this.applicationOptionsService.options;\n this.setDropDowns(this.dropDownOptions);\n this.initializeSettingForm();\n this.sharedService.showLoader(true);\n this.settingsService.getSettings().subscribe(defaultSettings => {\n if (defaultSettings) {\n this.sharedService.changeLanguage(defaultSettings.language);\n this.loadForm(defaultSettings);\n } else {\n this.loadEmptySettings();\n this.onSaveSettings();\n }\n this.activateValueChanges();\n },\n (error: any) => {\n this.loadEmptySettings();\n this.onGetFailure(error);\n console.log(error);\n }\n ,\n () => {\n this.sharedService.showLoader(false);\n });\n }\n\n private populateSettings(defaultSettings: any) {\n if (!defaultSettings) { return; }\n this.user.defaultSettings = defaultSettings;\n this.onLanguageChange(defaultSettings.language);\n }\n\n private getSettings() {\n this.sharedService.showLoader(true);\n this.settingsService.getSettings().subscribe(defaultSettings => {\n this.populateSettings(defaultSettings);\n }, (error: any) => {\n console.log('Error getting settings ', error);\n },\n () => {\n this.sharedService.showLoader(false);\n });\n }\n\n ngOnDestroy() {\n this.getSettings(); // Reload settings to make sure we have correct settings from the database that application can use.\n }\n\n private updateNav() {\n try {\n this.navService.setNav([{\n routeName: 'Home',\n routeUrl: SettingsComponent.HOME\n }\n ]);\n } catch (err) {\n\n }\n }\n\n getPartialFactors(nationalAnnexId: number): PartialFactor {\n return this.partialFactors.find(item => item.nationalAnnexId === nationalAnnexId);\n }\n\n ngAfterViewInit() {\n if (this.formInputElements) {\n const controls: Observable[] = this.formInputElements\n .map((formControl: ElementRef) => observableFromEvent(formControl.nativeElement, 'change'));\n }\n }\n\n private setULSCombFactors(designCodeId: number) {\n this.settingsForm.get('usDeadLoad1').setValue(\n designCodeId === 2 ? SettingsComponent.DEFAULT_US_DEAD_LOAD_1_AISC : SettingsComponent.DEFAULT_US_DEAD_LOAD_1_ASNZS);\n this.settingsForm.get('usDeadLoad2').setValue(\n designCodeId === 2 ? SettingsComponent.DEFAULT_US_DEAD_LOAD_2_AISC : SettingsComponent.DEFAULT_US_DEAD_LOAD_2_ASNZS);\n this.settingsForm.get('usLiveLoad2').setValue(\n designCodeId === 2 ? SettingsComponent.DEFAULT_US_LIVE_LOAD_2_AISC : SettingsComponent.DEFAULT_US_LIVE_LOAD_2_ASNZS);\n }\n\n private setSafetyFactors(nationalAnnex: Option, loadCategory: Option) {\n const partialFactors = this.getPartialFactors(nationalAnnex.id);\n const combinationFactor = this.combinationFactors.\n filter(item => item.nationalAnnexId === nationalAnnex.id && item.loadCategoryId === loadCategory.id)[0].value;\n this.settingsForm.get('ulsGammaG').setValue(partialFactors.gammaG);\n this.settingsForm.get('ulsGammaQ').setValue(partialFactors.gammaQ);\n this.settingsForm.get('structuralSteelSection').setValue(partialFactors.gammaM0);\n this.settingsForm.get('structuralSteelElement').setValue(partialFactors.gammaM1);\n this.settingsForm.get('concrete').setValue(partialFactors.gammaC);\n this.settingsForm.get('connector').setValue(partialFactors.gammaV);\n this.settingsForm.get('reinforcement').setValue(partialFactors.gammaS);\n this.settingsForm.get('steelProfile').setValue(partialFactors.gammaP);\n this.settingsForm.get('combinationFactor').setValue(combinationFactor);\n }\n\n private setDropDowns(options: Options): void {\n this.setUnits(options, SettingsComponent.DEFAULT_UNIT_SYSTEM);\n this.languages = _.sortBy(options.languages, [function (o) { return o.label; }]);\n // Sort the National Annexes with out None and add None to the end\n const filteredNationalAnnexes = options.nationalAnnexes.filter(\n item =>\n item.labelKey !== 'none'\n && item.id !== 13\n && item.id !== 15\n && item.id !== 16);\n const noneNationalAnnex = options.nationalAnnexes.filter(item => item.labelKey === 'none')[0];\n const nationalAnnexes = _.sortBy(filteredNationalAnnexes, [function (o) { return o.label; }]);\n nationalAnnexes.push(noneNationalAnnex);\n this.nationalAnnexes = NationalAnnexSortingHelper.getSortedNationalAnnexes(this.dropDownOptions.nationalAnnexes,\n SettingsComponent.DEFAULT_DESIGN_CODE);\n const filteredLoadCategories = options.loadCategories.filter(c => c.designCodeId === SettingsComponent.DEFAULT_DESIGN_CODE);\n this.loadCategories = _.sortBy(filteredLoadCategories, [function (o) { return o.id; }]);\n this.partialFactors = options.partialFactors;\n this.designCodes = options.designCodes;\n this.unitSystems = options.unitSystems;\n this.combinationFactors = options.combinationFactors;\n }\n\n private setUnits(options, unitSystemId): void {\n this.lengthUnits = options.lengthUnits.filter(l => l.unitSystemId === unitSystemId && (l.id === 3 || l.id === 4));\n this.loadUnits = options.loadUnits.filter(l => l.unitSystemId === unitSystemId);\n }\n\n private loadEmptySettings(): void {\n const partialFactors = this.getPartialFactors(SettingsComponent.DEFAULT_NATIONAL_ANNEX);\n const combinationFactor = this.combinationFactors.filter(item =>\n item.nationalAnnexId === SettingsComponent.DEFAULT_NATIONAL_ANNEX\n && item.loadCategoryId === SettingsComponent.DEFAULT_LOAD_CATEGORY)[0].value;\n this.loadForm({\n 'designCode': SettingsComponent.DEFAULT_DESIGN_CODE,\n 'countryNationalAnnexes': SettingsComponent.DEFAULT_NATIONAL_ANNEX,\n 'language': SettingsComponent.DEFAULT_LANGUAGE_CODE,\n 'loadUnit': SettingsComponent.DEFAULT_LOAD_UNIT_ID,\n 'lengthUnit': SettingsComponent.DEFAULT_LENGTH_UNIT_ID,\n 'loadCategory': SettingsComponent.DEFAULT_LOAD,\n 'ulsGammaG': partialFactors.gammaG,\n 'ulsGammaQ': partialFactors.gammaQ,\n 'structuralSteelSection': partialFactors.gammaM0,\n 'structuralSteelElement': partialFactors.gammaM1,\n 'concrete': partialFactors.gammaC,\n 'connector': partialFactors.gammaV,\n 'reinforcement': partialFactors.gammaS,\n 'steelProfile': partialFactors.gammaP,\n 'combinationFactor': combinationFactor,\n 'unit': SettingsComponent.DEFAULT_UNIT_SYSTEM,\n 'usDeadLoad1': SettingsComponent.DEFAULT_US_DEAD_LOAD_1_AISC,\n 'usDeadLoad2': SettingsComponent.DEFAULT_US_DEAD_LOAD_2_AISC,\n 'usLiveLoad2': SettingsComponent.DEFAULT_US_LIVE_LOAD_2_AISC,\n 'usPhiElastic': SettingsComponent.DEFAULT_US_PHI_ELASTIC,\n 'liveLoadReduction': SettingsComponent.DEFAULT_LIVE_LOAD_REDUCTION,\n 'asPhiM': SettingsComponent.DEFAULT_COMB_FACTORS_ASNZS.ASPhiM,\n 'asPhiMb': SettingsComponent.DEFAULT_COMB_FACTORS_ASNZS.ASPhiMb,\n 'asPhiVc': SettingsComponent.DEFAULT_COMB_FACTORS_ASNZS.ASPhiVc,\n 'asPhiVm': SettingsComponent.DEFAULT_COMB_FACTORS_ASNZS.ASPhiVm,\n 'asPhiS': SettingsComponent.DEFAULT_COMB_FACTORS_ASNZS.ASPhiS,\n 'asPhiC': SettingsComponent.DEFAULT_COMB_FACTORS_ASNZS.ASPhiS,\n 'asPhiVf': SettingsComponent.DEFAULT_COMB_FACTORS_ASNZS.ASPhiVf,\n 'asPhiSC': SettingsComponent.DEFAULT_COMB_FACTORS_ASNZS.ASPhiSC,\n 'asPhiSR': SettingsComponent.DEFAULT_COMB_FACTORS_ASNZS.ASPhiSR\n });\n this.settingsForm.markAsDirty();\n }\n\n\n private loadForm(settings: Settings): void {\n\n const lang = this.languages.filter(item => (item.value === (settings && settings.language ? settings.language || 'en' : 'en')))[0];\n const designCode = this.designCodes.filter(item => (item.id === (settings && settings.designCode ? settings.designCode || 1 : 1)))[0];\n this.nationalAnnexes = NationalAnnexSortingHelper.getSortedNationalAnnexes(this.dropDownOptions.nationalAnnexes,\n designCode.id);\n const nationalAnnexId = settings && settings.countryNationalAnnexes ?\n settings.countryNationalAnnexes : SettingsComponent.DEFAULT_NATIONAL_ANNEX;\n const nationalAnnex = this.nationalAnnexes.filter(item => item.id === nationalAnnexId)[0];\n const unitSystem = this.unitSystems.filter(item => (item.id === (settings && settings.unit ? settings.unit || 1 : 1)))[0];\n this.setUnits(this.dropDownOptions, unitSystem.id);\n const loadUnit = this.loadUnits.filter(item => (item.id === (settings && settings.loadUnit ? settings.loadUnit || 1 : 1)))[0];\n const lengthUnit = this.lengthUnits.filter(item => (item.id === (settings && settings.lengthUnit ? settings.lengthUnit || 1 : 1)))[0];\n this.loadCategories = this.dropDownOptions.loadCategories.filter(c => c.designCodeId === designCode.id);\n // tslint:disable-next-line:max-line-length\n const loadCategory = this.loadCategories.filter(item => (item.id === (settings && settings.loadCategory ? settings.loadCategory || 1 : 1)))[0];\n const combinationFactor = settings && settings.combinationFactor ? settings.combinationFactor : this.combinationFactors.filter(item => item.nationalAnnexId === nationalAnnex.id && item.loadCategoryId === loadCategory.id)[0].value;\n const partialFactors = this.getPartialFactors(nationalAnnex.id);\n\n // this.partialFactors\n if (this.settingsForm) {\n this.settingsForm.get('designCode').setValue(designCode);\n this.settingsForm.get('nationalAnnexes').setValue(nationalAnnex);\n this.settingsForm.get('language').setValue(lang);\n this.settingsForm.get('loadUnit').setValue(loadUnit);\n this.settingsForm.get('lengthUnit').setValue(lengthUnit);\n this.settingsForm.get('loadCategory').setValue(loadCategory);\n this.settingsForm.get('ulsGammaG').setValue(settings.ulsGammaG || partialFactors.gammaG);\n this.settingsForm.get('ulsGammaQ').setValue(settings.ulsGammaQ || partialFactors.gammaQ);\n this.settingsForm.get('structuralSteelSection').setValue(settings.structuralSteelSection || partialFactors.gammaM0);\n this.settingsForm.get('structuralSteelElement').setValue(settings.structuralSteelElement || partialFactors.gammaM1);\n this.settingsForm.get('concrete').setValue(settings.concrete || partialFactors.gammaC);\n this.settingsForm.get('connector').setValue(settings.connector || partialFactors.gammaV);\n this.settingsForm.get('reinforcement').setValue(settings.reinforcement || partialFactors.gammaS);\n this.settingsForm.get('steelProfile').setValue(settings.steelProfile || partialFactors.gammaP);\n this.settingsForm.get('combinationFactor').setValue(combinationFactor);\n this.settingsForm.get('unitSystem').setValue(unitSystem);\n this.settingsForm.get('usDeadLoad1').setValue(settings.usDeadLoad1 ? settings.usDeadLoad1 : SettingsComponent.DEFAULT_US_DEAD_LOAD_1_AISC);\n this.settingsForm.get('usDeadLoad2').setValue(settings.usDeadLoad2 ? settings.usDeadLoad2 : SettingsComponent.DEFAULT_US_DEAD_LOAD_2_AISC);\n this.settingsForm.get('usLiveLoad2').setValue(settings.usLiveLoad2 ? settings.usLiveLoad2 : SettingsComponent.DEFAULT_US_LIVE_LOAD_2_AISC);\n // tslint:disable-next-line:max-line-length\n this.settingsForm.get('usPhiElastic').setValue(settings.usPhiElastic ? settings.usPhiElastic : SettingsComponent.DEFAULT_US_PHI_ELASTIC);\n this.settingsForm.get('liveLoadReduction').setValue(settings.liveLoadReduction.toString());\n this.settingsForm.get('asPhiM').setValue(settings.asPhiM || SettingsComponent.DEFAULT_COMB_FACTORS_ASNZS.ASPhiM);\n this.settingsForm.get('asPhiMb').setValue(settings.asPhiMb || SettingsComponent.DEFAULT_COMB_FACTORS_ASNZS.ASPhiMb);\n this.settingsForm.get('asPhiVc').setValue(settings.asPhiVc || SettingsComponent.DEFAULT_COMB_FACTORS_ASNZS.ASPhiVc);\n this.settingsForm.get('asPhiVm').setValue(settings.asPhiVm || SettingsComponent.DEFAULT_COMB_FACTORS_ASNZS.ASPhiVm);\n this.settingsForm.get('asPhiS').setValue(settings.asPhiS || SettingsComponent.DEFAULT_COMB_FACTORS_ASNZS.ASPhiS);\n this.settingsForm.get('asPhiC').setValue(settings.asPhiC || SettingsComponent.DEFAULT_COMB_FACTORS_ASNZS.ASPhiC);\n this.settingsForm.get('asPhiVf').setValue(settings.asPhiVf || SettingsComponent.DEFAULT_COMB_FACTORS_ASNZS.ASPhiVf);\n this.settingsForm.get('asPhiSC').setValue(settings.asPhiSC || SettingsComponent.DEFAULT_COMB_FACTORS_ASNZS.ASPhiSC);\n this.settingsForm.get('asPhiSR').setValue(settings.asPhiSR || SettingsComponent.DEFAULT_COMB_FACTORS_ASNZS.ASPhiSR);\n } else {\n\n // Need to break fields section wise :ToDo\n this.settingsForm = this.fb.group({\n designCode: [{ value: designCode, disabled: SettingsComponent.ATTR_READONLY }, [Validators.required]],\n nationalAnnexes: [nationalAnnex, [Validators.required]],\n language: [lang, [Validators.required]],\n loadUnit: [{ value: loadUnit, disabled: SettingsComponent.ATTR_READONLY }, [Validators.required]],\n lengthUnit: [{ value: lengthUnit, disabled: SettingsComponent.ATTR_READONLY }, [Validators.required]],\n loadCategory: [loadCategory, [Validators.required]],\n ulsGammaG: [settings.ulsGammaG || partialFactors.gammaG, [Validators.required, CustomValidators.range([1, 2])]],\n ulsGammaQ: [settings.ulsGammaQ || partialFactors.gammaQ, [Validators.required, CustomValidators.range([1, 2])]],\n // tslint:disable-next-line:max-line-length\n structuralSteelSection: [settings.structuralSteelSection || partialFactors.gammaM0, [Validators.required, CustomValidators.range([1, 2])]],\n structuralSteelElement: [settings.structuralSteelElement || partialFactors.gammaM1, [Validators.required, CustomValidators.range([1, 2])]],\n concrete: [settings.concrete || partialFactors.gammaC, [Validators.required, CustomValidators.range([1, 2])]],\n connector: [settings.connector || partialFactors.gammaV, [Validators.required, CustomValidators.range([1, 2])]],\n reinforcement: [settings.reinforcement || partialFactors.gammaS, [Validators.required, CustomValidators.range([1, 2])]],\n steelProfile: [settings.steelProfile || partialFactors.gammaP, [Validators.required, CustomValidators.range([1, 2])]],\n combinationFactor: [combinationFactor, [Validators.required, CustomValidators.range([0, 1])]],\n unitSystem: [{ value: unitSystem, disabled: SettingsComponent.ATTR_READONLY }, [Validators.required]],\n usDeadLoad1: [{ value: settings.usDeadLoad1, disabled: SettingsComponent.ATTR_READONLY }, [Validators.required, Validators.max(2), Validators.min(1)]],\n usDeadLoad2: [{ value: settings.usDeadLoad2, disabled: SettingsComponent.ATTR_READONLY }, [Validators.required, Validators.max(2), Validators.min(1)]],\n usLiveLoad2: [{ value: settings.usLiveLoad2, disabled: SettingsComponent.ATTR_READONLY }, [Validators.required, Validators.max(2), Validators.min(1)]],\n usPhiElastic: [{ value: settings.usPhiElastic, disabled: SettingsComponent.ATTR_READONLY }, [Validators.required, Validators.min(0.5), Validators.max(1)]],\n liveLoadReduction: [{ value: settings.liveLoadReduction, disabled: SettingsComponent.ATTR_READONLY }, [Validators.required]],\n asPhiM: [{ value: settings.asPhiM }, [Validators.required, Validators.min(0.5), Validators.max(1)]],\n asPhiMb: [{ value: settings.asPhiMb }, [Validators.required, Validators.min(0.5), Validators.max(1)]],\n asPhiVc: [{ value: settings.asPhiVc }, [Validators.required, Validators.min(0.5), Validators.max(1)]],\n asPhiVm: [{ value: settings.asPhiVm }, [Validators.required, Validators.min(0.5), Validators.max(1)]],\n asPhiS: [{ value: settings.asPhiS }, [Validators.required, Validators.min(0.5), Validators.max(1)]],\n asPhiC: [{ value: settings.asPhiC }, [Validators.required, Validators.min(0.5), Validators.max(1)]],\n asPhiVf: [{ value: settings.asPhiVf }, [Validators.required, Validators.min(0.5), Validators.max(1)]],\n asPhiSC: [{ value: settings.asPhiSC }, [Validators.required, Validators.min(0.5), Validators.max(1)]],\n asPhiSR: [{ value: settings.asPhiSR }, [Validators.required, Validators.min(0.5), Validators.max(1)]]\n });\n }\n }\n\n private mapModel = (): Settings => {\n const settings: Settings = {\n 'designCode': this.settingsForm.value.designCode.id,\n 'countryNationalAnnexes': this.settingsForm.value.nationalAnnexes.id,\n 'language': this.settingsForm.value.language.value,\n 'loadUnit': SettingsComponent.ATTR_READONLY ? SettingsComponent.DEFAULT_LOAD_UNIT_ID : this.settingsForm.value.loadUnit.id,\n 'lengthUnit': SettingsComponent.ATTR_READONLY ? SettingsComponent.DEFAULT_LENGTH_UNIT_ID : this.settingsForm.value.lengthUnit.id,\n 'loadCategory': this.settingsForm.value.loadCategory.id,\n 'ulsGammaG': this.settingsForm.value.ulsGammaG,\n 'ulsGammaQ': this.settingsForm.value.ulsGammaQ,\n 'structuralSteelSection': this.settingsForm.value.structuralSteelSection,\n 'structuralSteelElement': this.settingsForm.value.structuralSteelElement,\n 'concrete': this.settingsForm.value.concrete,\n 'connector': this.settingsForm.value.connector,\n 'reinforcement': this.settingsForm.value.reinforcement,\n 'steelProfile': this.settingsForm.value.steelProfile,\n 'combinationFactor': +this.settingsForm.value.combinationFactor,\n 'trackingPolicy': this.user.defaultSettings ? this.user.defaultSettings.trackingPolicy : false,\n 'name': this.user.authentication.userName,\n 'customerId': this.user.authentication.customerOriginID,\n 'region': window.navigator.language,\n 'unit': this.settingsForm.getRawValue().unitSystem.id,\n 'usDeadLoad1': this.settingsForm.value.usDeadLoad1,\n 'usDeadLoad2': this.settingsForm.value.usDeadLoad2,\n 'usLiveLoad2': this.settingsForm.value.usLiveLoad2,\n 'usPhiElastic': this.settingsForm.value.usPhiElastic,\n 'liveLoadReduction': this.settingsForm.value.liveLoadReduction,\n 'asPhiMb': this.settingsForm.value.asPhiMb,\n 'asPhiVc': this.settingsForm.value.asPhiVc,\n 'asPhiVm': this.settingsForm.value.asPhiVm,\n 'asPhiS': this.settingsForm.value.asPhiS,\n 'asPhiC': this.settingsForm.value.asPhiC,\n 'asPhiVf': this.settingsForm.value.asPhiVf,\n 'asPhiSC': this.settingsForm.value.asPhiSC,\n 'asPhiSR': this.settingsForm.value.asPhiSR,\n 'asPhiM': this.settingsForm.value.asPhiM\n };\n\n return settings;\n }\n\n public onSaveSettings(): void {\n if (this.settingsForm.dirty) {\n if (this.settingsForm.valid) {\n const updatedModel = this.mapModel();\n this.sharedService.showLoader(true);\n this.settingsService.saveSettings(updatedModel)\n .subscribe(settingsResponse => {\n this.populateSettings(settingsResponse);\n this.sharedService.changeSettings(settingsResponse);\n this.onSaveSettingsComplete();\n },\n (error: any) => this.onSaveFailure(error)\n ,\n () => {\n this.sharedService.showLoader(false);\n });\n } else {\n if (!(this.settingsForm.controls).combinationFactor.valid) {\n this.combinationFactorElement.nativeElement.focus();\n } else if (!(this.settingsForm.controls).ulsGammaG.valid) {\n this.ulsGammaGElement.nativeElement.focus();\n } else if (!(this.settingsForm.controls).ulsGammaQ.valid) {\n this.ulsGammaQElement.nativeElement.focus();\n } else if (!(this.settingsForm.controls).structuralSteelSection.valid) {\n this.sectionResistanceElement.nativeElement.focus();\n } else if (!(this.settingsForm.controls).structuralSteelElement.valid) {\n this.elementResistanceElement.nativeElement.focus();\n } else if (!(this.settingsForm.controls).steelProfile.valid) {\n this.steelProfileElement.nativeElement.focus();\n } else if (!(this.settingsForm.controls).reinforcement.valid) {\n this.reinforcementSafetyElement.nativeElement.focus();\n } else if (!(this.settingsForm.controls).concrete.valid) {\n this.concreteElement.nativeElement.focus();\n } else if (!(this.settingsForm.controls).connector.valid) {\n this.connectorResistanceElement.nativeElement.focus();\n }\n }\n }\n }\n initializeSettingForm() {\n this.loadForm({\n designCode: 1,\n countryNationalAnnexes: 1,\n language: 'en',\n loadUnit: 0,\n lengthUnit: 0,\n loadCategory: 0,\n ulsGammaG: 0,\n ulsGammaQ: 0,\n combinationFactor: null,\n structuralSteelSection: 0,\n structuralSteelElement: 0,\n concrete: 0,\n connector: 0,\n reinforcement: 0,\n steelProfile: 0,\n unit: 0,\n usDeadLoad1: 0,\n usDeadLoad2: 0,\n usLiveLoad2: 0,\n usPhiElastic: 0,\n liveLoadReduction: false\n });\n }\n\n activateValueChanges() {\n this.settingsForm.get('language').valueChanges.pipe(debounceTime(500)).subscribe(lang => {\n this.onLanguageChange(lang.value);\n });\n\n this.settingsForm.get('designCode').valueChanges.pipe(debounceTime(500)).subscribe(designCode => {\n this.onDesignCodeChange(designCode.id);\n });\n\n this.settingsForm.get('unitSystem').valueChanges.pipe(debounceTime(500)).subscribe(unitSystem => {\n this.onUnitSystemChange(unitSystem.id);\n });\n\n merge(this.settingsForm.get('nationalAnnexes').valueChanges,\n this.settingsForm.get('loadCategory').valueChanges).pipe(debounceTime(500)).subscribe((e) => {\n const nationalAnnex = this.settingsForm.value.nationalAnnexes;\n const loadCategory = this.settingsForm.value.loadCategory;\n const designCode = this.settingsForm.value.designCode;\n if (designCode.id === 1) {\n this.setSafetyFactors(nationalAnnex, loadCategory);\n }\n if (designCode.id === 2) {\n this.settingsForm.get('liveLoadReduction').setValue(loadCategory.liveLoadReduction.toString());\n }\n });\n }\n\n private onLanguageChange(language) {\n if (typeof language === 'string') {\n this.sharedService.changeLanguage(language);\n } else {\n this.sharedService.changeLanguage(language.value);\n }\n }\n\n private onDesignCodeChange(designCode) {\n const selectedDesignCode = this.designCodes.find(dc => dc.id === designCode);\n this.settingsForm.get('unitSystem').setValue(this.unitSystems.find(us => us.id === selectedDesignCode.defaultUnitSystem));\n // tslint:disable-next-line:max-line-length\n const filteredLoadCategories = this.dropDownOptions.loadCategories.filter(c => c.designCodeId === designCode);\n this.loadCategories = _.sortBy(filteredLoadCategories, [function (o) { return o.id; }]);\n this.settingsForm.get('loadCategory').setValue(filteredLoadCategories[0]);\n\n this.nationalAnnexes = NationalAnnexSortingHelper.getSortedNationalAnnexes(this.dropDownOptions.nationalAnnexes, designCode);\n this.settingsForm.get('nationalAnnexes').setValue(this.nationalAnnexes[0]);\n this.setULSCombFactors(designCode);\n this.setCapacityFactors(designCode);\n }\n\n private setCapacityFactors(designCode: number) {\n if (designCode !== 3) {\n return;\n }\n const factors = this.getPartialFactors(this.settingsForm.get('nationalAnnexes').value.id);\n this.settingsForm.get('asPhiM').setValue(factors.asPhiM);\n this.settingsForm.get('asPhiMb').setValue(factors.asPhiMb);\n this.settingsForm.get('asPhiVc').setValue(factors.asPhiVc);\n this.settingsForm.get('asPhiVm').setValue(factors.asPhiVm);\n this.settingsForm.get('asPhiS').setValue(factors.asPhiS);\n this.settingsForm.get('asPhiC').setValue(factors.asPhiC);\n this.settingsForm.get('asPhiVf').setValue(factors.asPhiVf);\n this.settingsForm.get('asPhiSC').setValue(factors.asPhiSC);\n this.settingsForm.get('asPhiSR').setValue(factors.asPhiSR);\n }\n\n private onUnitSystemChange(unitSystemId) {\n this.setUnits(this.dropDownOptions, unitSystemId);\n this.settingsForm.get('loadUnit').setValue(this.loadUnits[0]);\n this.settingsForm.get('lengthUnit').setValue(this.lengthUnits[0]);\n }\n\n public goBacktoPrevious(): void {\n\n if (!this.returnUrl || this.returnUrl === '/settings' || this.returnUrl === '/logout') {\n this.router.navigate([SettingsComponent.HOME]);\n } else {\n try {\n if (_.includes(this.returnUrl, 'isNew')) {\n this.returnUrl = _.replace(this.returnUrl, new RegExp('isNew=true', 'g'), 'isNew=false');\n }\n this.router.navigateByUrl(this.returnUrl);\n } catch (err) {\n this.router.navigate([SettingsComponent.HOME]);\n }\n }\n }\n\n public goToProjectList(): void {\n this.router.navigate([SettingsComponent.HOME]);\n }\n\n private onSaveSettingsComplete(): void {\n this.sharedService.popSuccess('settings-save-success');\n this.settingsForm.markAsPristine({ onlySelf: true });\n this.router.navigate([SettingsComponent.HOME]);\n }\n\n private onSaveFailure(error): void {\n this.sharedService.popFailure('settings-save-failure');\n }\n\n private onGetFailure(error): void {\n this.sharedService.popFailure('settings-open-failure');\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\n\nimport { DropDownListModule } from '@progress/kendo-angular-dropdowns';\nimport { ButtonModule, CardModule, DropdownModule } from 'hilti-ui-library';\nimport { RouteGuard } from './../service/common/routeguard.service';\nimport { SharedModule } from './../shared/shared.module';\nimport { AZNZCombinationFactorComponent } from './aznzcombination-factor/aznzcombination-factor.component';\nimport { SettingsComponent } from './settings.component';\nimport { SettingsService } from './settings.service';\n\n@NgModule({\n imports: [\n SharedModule,\n RouterModule.forChild([\n { path: 'settings', component: SettingsComponent, canActivate: [RouteGuard] }\n ]),\n ReactiveFormsModule,\n CardModule,\n DropdownModule,\n ButtonModule,\n DropDownListModule\n ],\n declarations: [\n SettingsComponent,\n AZNZCombinationFactorComponent\n ],\n exports: [\n AZNZCombinationFactorComponent\n ],\n providers: [\n SettingsService\n ]\n})\nexport class SettingsModule { }\n","\nimport { Injectable } from '@angular/core';\nimport { HttpClient } from './../common/http-client';\n\nimport { ConfigService } from 'app/service/config.service';\nimport { environment } from 'environments/environment';\nimport { Observable } from 'rxjs';\nimport { Settings } from 'app/models/models';\n\n\n@Injectable()\nexport class SettingsService {\n\n public settings: Settings;\n\n constructor(private configService: ConfigService, private _http: HttpClient) { }\n\n public getSettings(): Observable {\n return this._http.get(`${this.settingsUrl}settings`);\n }\n\n public saveSettings(settings: Settings): Observable {\n return this._http.put(`${this.settingsUrl}settings`, settings);\n }\n\n private get settingsUrl(): string {\n const baseUrl = this.configService.config.serviceUrl;\n const path = environment.localTesting ? 'users/' : 'asws/profishvb/shear_connector_users/v1/';\n return `${baseUrl}${path}`;\n }\n}\n","import { Directive, HostListener, forwardRef } from '@angular/core';\nimport { DefaultValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n// tslint:disable-next-line\nconst TRIM_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n // tslint:disable-next-line\n useExisting: forwardRef(() => InputTrim),\n multi: true\n};\n\n/**\n * The trim accessor for writing trimmed value and listening to changes that is\n * used by the {@link NgModel}, {@link FormControlDirective}, and\n * {@link FormControlName} directives.\n */\n@Directive({\n selector:\n `input:not([type=checkbox]):not([type=radio]):not([type=password])[formControlName],\n input:not([type=checkbox]):not([type=radio]):not([type=password])[formControl],\n input:not([type=checkbox]):not([type=radio]):not([type=password])[ngModel],\n textarea[formControlName],\n textarea[formControl],\n textarea[ngModel],\n [ngDefaultControl]`,\n providers: [TRIM_VALUE_ACCESSOR]\n})\nexport class InputTrim extends DefaultValueAccessor {\n\n @HostListener('input', ['$event.target.value'])\n ngOnChange = (val: string) => {\n this.onChange(val.trim());\n };\n\n writeValue(value: any): void {\n if (typeof value === 'string') {\n value = value.trim();\n }\n\n super.writeValue(value);\n }\n\n}\n","export default \"* {\\n box-sizing: border-box; }\\n\\n.checkbox-control .control-container .checkbox {\\n width: 100%; }\\n\\n.checkbox {\\n display: flex;\\n align-items: center;\\n cursor: pointer;\\n min-height: 45px; }\\n\\n.checkbox.disabled {\\n cursor: not-allowed;\\n opacity: 0.75; }\\n\\n.checkbox .checkbox-button {\\n flex-shrink: 0;\\n width: 20px;\\n height: 22px;\\n position: relative;\\n outline: none; }\\n\\n.checkbox .checkbox-button input {\\n display: none; }\\n\\n.checkbox .checkbox-button input:checked + span:after {\\n visibility: visible; }\\n\\n.checkbox .checkbox-button span {\\n width: 20px;\\n height: 20px;\\n left: 0;\\n top: 0;\\n position: absolute;\\n border: 2px solid #000000;\\n background: none; }\\n\\n.checkbox .checkbox-button span:after {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADMAAAAXCAYAAACmnHcKAAAAAklEQVR4AewaftIAAAE7SURBVN3BsU1bUQBA0XufGMHjpPAQjGCKiCKzUEQ0KTyKC8bxCJFuXLgg6OH4YyMin2PFrRjckMENGVyRGl9ocCVqHKjxRay4lBpvVPIB6hp4BNbACtgDO+BnteOEOy6kxhWod8AzsOFvK+AeuFd/Ad+r30wMLqDGRCXLPQMbTtsAz7xj8IqaGmdQY6KShdQ1sOE8G3XNxOBIjSM1TlBjopKPeWSZRyYGB2q8ocaEGhOVfNyaZdZMDA4qmVDjFTUmKrnMimVWTAyOKplQ40CNiUout2eZPRODVyqZUGOikut4YZkXJgZvVHKGSq7niWWemBhMVHJCJVdU7YAt59lWOyYG76hkopLP8QBsOW0LPPAOK05R46iST6augR/AN2AF7IEX4KnacYIV/6J2IP85K27F4IYMbsjghvwBFleG6ooFyBYAAAAASUVORK5CYII=\\\");\\n background-position: 1px 1px;\\n width: 15px;\\n min-width: 15px;\\n height: 15px;\\n content: ' ';\\n position: absolute;\\n visibility: hidden;\\n background-size: 32px; }\\n\\n.checkbox .checkbox-label {\\n overflow-x: hidden;\\n text-overflow: ellipsis;\\n padding-left: 10px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9idWlsZHMvYnUtZi1wcy9zaGVhci1jb25uZWN0b3IvZGVwbG95L2NvZGUvaHZiLXdlYi9odmItYXBwL3NyYy9hcHAvc2hhcmVkL2NoZWNrLWJveC9jaGVjay1ib3guY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFHSSx1QkFBc0IsRUFDekI7O0FBRUQ7RUFDSSxZQUFXLEVBQ2Q7O0FBRUQ7RUFDSSxjQUFhO0VBQ2Isb0JBQW1CO0VBQ25CLGdCQUFlO0VBQ2YsaUJBQWdCLEVBQ25COztBQUVEO0VBQ0ksb0JBQW1CO0VBQ25CLGNBQWEsRUFDaEI7O0FBRUQ7RUFDSSxlQUFjO0VBQ2QsWUFBVztFQUNYLGFBQVk7RUFDWixtQkFBa0I7RUFDbEIsY0FBYSxFQUNoQjs7QUFFRDtFQUNJLGNBQWEsRUFDaEI7O0FBRUQ7RUFDSSxvQkFBbUIsRUFDdEI7O0FBRUQ7RUFDSSxZQUFXO0VBQ1gsYUFBWTtFQUNaLFFBQU87RUFDUCxPQUFNO0VBQ04sbUJBQWtCO0VBQ2xCLDBCQUF5QjtFQUN6QixpQkFBZ0IsRUFDbkI7O0FBRUQ7RUFDRSxvakJBQW1qQjtFQUNuakIsNkJBQTRCO0VBQzVCLFlBQVc7RUFDWCxnQkFBZTtFQUNmLGFBQVk7RUFDWixhQUFZO0VBQ1osbUJBQWtCO0VBQ2xCLG1CQUFrQjtFQUNsQixzQkFBcUIsRUFDdEI7O0FBRUQ7RUFDSSxtQkFBa0I7RUFDbEIsd0JBQXVCO0VBQ3ZCLG1CQUFrQixFQUNyQiIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9jaGVjay1ib3gvY2hlY2stYm94LmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiKiB7XG4gICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4uY2hlY2tib3gtY29udHJvbCAuY29udHJvbC1jb250YWluZXIgLmNoZWNrYm94IHtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLmNoZWNrYm94IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIG1pbi1oZWlnaHQ6IDQ1cHg7XG59XG5cbi5jaGVja2JveC5kaXNhYmxlZCB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBvcGFjaXR5OiAwLjc1O1xufVxuXG4uY2hlY2tib3ggLmNoZWNrYm94LWJ1dHRvbiB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgaGVpZ2h0OiAyMnB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdXRsaW5lOiBub25lO1xufVxuXG4uY2hlY2tib3ggLmNoZWNrYm94LWJ1dHRvbiBpbnB1dCB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLmNoZWNrYm94IC5jaGVja2JveC1idXR0b24gaW5wdXQ6Y2hlY2tlZCtzcGFuOmFmdGVyIHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xufVxuXG4uY2hlY2tib3ggLmNoZWNrYm94LWJ1dHRvbiBzcGFuIHtcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICMwMDAwMDA7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbn1cblxuLmNoZWNrYm94IC5jaGVja2JveC1idXR0b24gc3BhbjphZnRlciB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFETUFBQUFYQ0FZQUFBQ21uSGNLQUFBQUFrbEVRVlI0QWV3YWZ0SUFBQUU3U1VSQlZOM0JzVTFiVVFCQTBYdWZHTUhqcFBBUWpHQ0tpQ0t6VUVRMEtUeUtDOGJ4Q0pGdVhMZ2c2T0g0WXlNaW4yUEZyUmpja01FTkdWeVJHbDlvY0NWcUhLanhSYXk0bEJwdlZQSUI2aHA0Qk5iQUN0Z0RPK0JudGVPRU95Nmt4aFdvZDhBenNPRnZLK0FldUZkL0FkK3IzMHdNTHFER1JDWExQUU1iVHRzQXo3eGo4SXFhR21kUVk2S1NoZFExc09FOEczWE54T0JJalNNMVRsQmpvcEtQZVdTWlJ5WUdCMnE4b2NhRUdoT1ZmTnlhWmRaTURBNHFtVkRqRlRVbUtybk1pbVZXVEF5T0twbFE0MENOaVVvdXQyZVpQUk9EVnlxWlVHT2lrdXQ0WVprWEpnWnZWSEtHU3E3bmlXV2VtQmhNVkhKQ0pWZFU3WUF0NTlsV095WUc3Nmhrb3BMUDhRQnNPVzBMUFBBT0swNVI0NmlTVDZhdWdSL0FOMkFGN0lFWDRLbmFjWUlWLzZKMklQODVLMjdGNElZTWJzamdodndCRmxlRzZvb0Z5QllBQUFBQVNVVk9SSzVDWUlJPScpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxcHggMXB4O1xuICB3aWR0aDogMTVweDtcbiAgbWluLXdpZHRoOiAxNXB4O1xuICBoZWlnaHQ6IDE1cHg7XG4gIGNvbnRlbnQ6ICcgJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIGJhY2tncm91bmQtc2l6ZTogMzJweDtcbn1cblxuLmNoZWNrYm94IC5jaGVja2JveC1sYWJlbCB7XG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbn1cbiJdfQ== */\"","import { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\n\n@Component({\n selector: 'app-custom-check-box',\n templateUrl: './check-box.component.html',\n styleUrls: ['./check-box.component.scss']\n})\nexport class CheckBoxComponent {\n @Input() id;\n @Input() isChecked: boolean;\n @Input() label;\n @Output() isCheckedChange: EventEmitter = new EventEmitter();\n\n public checkBoxForm: FormGroup = new FormGroup({\n input: new FormControl(false, Validators.required)\n });\n\n public onChangeCheckBoxValue() {\n this.isChecked = !(this.isChecked);\n this.checkBoxForm.get('input').setValue(this.isChecked);\n this.isCheckedChange.emit(this.isChecked);\n }\n}\n","export default \".info-block-wrapper {\\n z-index: 999;\\n position: fixed;\\n height: 158px;\\n width: 100%;\\n border-top: #D2051E 3px solid;\\n bottom: 0;\\n background-color: #EFEBE5; }\\n .info-block-wrapper .info-block {\\n width: 80%;\\n margin: 10px auto 40px; }\\n .info-block-wrapper .info-block a {\\n color: #671A3D;\\n font-weight: bold;\\n cursor: pointer; }\\n .info-block-wrapper .button-wrapper {\\n background-color: #CFCCC5;\\n padding: 5px;\\n border: #CFCCC5 2px solid; }\\n .info-block-wrapper .button-wrapper button {\\n display: block;\\n color: white;\\n background-color: #D2051E;\\n border: none;\\n margin: 5px auto;\\n font-weight: bold;\\n cursor: pointer;\\n height: 44px;\\n letter-spacing: 1px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9idWlsZHMvYnUtZi1wcy9zaGVhci1jb25uZWN0b3IvZGVwbG95L2NvZGUvaHZiLXdlYi9odmItYXBwL3NyYy9hcHAvc2hhcmVkL2Nvb2tpZS1ub3RpZmljYXRpb24vY29va2llLW5vdGlmaWNhdGlvbi5jb21wb25lbnQuc2NzcyIsIi9idWlsZHMvYnUtZi1wcy9zaGVhci1jb25uZWN0b3IvZGVwbG95L2NvZGUvaHZiLXdlYi9odmItYXBwL3NyYy9fdmFyaWFibGVzLnNjc3MiLCIvYnVpbGRzL2J1LWYtcHMvc2hlYXItY29ubmVjdG9yL2RlcGxveS9jb2RlL2h2Yi13ZWIvaHZiLWFwcC9ub2RlX21vZHVsZXMvaGlsdGktdWktbGlicmFyeS9hc3NldHMvc2Fzcy9faHVpLWNvbG9ycy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBO0VBQ0UsYUFBWTtFQUNaLGdCQUFlO0VBQ2YsY0FBYTtFQUNiLFlBQVc7RUFDWCw4QkFBZ0M7RUFDaEMsVUFBUztFQUNULDBCQ05nQyxFRGdDakM7RUFqQ0Q7SUFTSSxXQUFTO0lBQ1QsdUJBQXNCLEVBTXZCO0VBaEJIO01BWU0sZUFBYztNQUNkLGtCQUFpQjtNQUNqQixnQkFBZSxFQUNoQjtFQWZMO0lBa0JJLDBCRVo0QjtJRmE1QixhQUFZO0lBQ1osMEJBQTJDLEVBWTVDO0VBaENIO01Bc0JNLGVBQWM7TUFDZCxhQUFZO01BQ1osMEJFeEJpQjtNRnlCakIsYUFBVztNQUNYLGlCQUFnQjtNQUNoQixrQkFBaUI7TUFDakIsZ0JBQWU7TUFDZixhQUFZO01BQ1osb0JBQW1CLEVBQ3BCIiwiZmlsZSI6InNyYy9hcHAvc2hhcmVkL2Nvb2tpZS1ub3RpZmljYXRpb24vY29va2llLW5vdGlmaWNhdGlvbi5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIkBpbXBvcnQgJy4uLy4uLy4uL192YXJpYWJsZXMuc2Nzcyc7XG5cbi5pbmZvLWJsb2NrLXdyYXBwZXIge1xuICB6LWluZGV4OiA5OTk7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgaGVpZ2h0OiAxNThweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci10b3A6ICRoaWx0aS1yZWQgM3B4IHNvbGlkO1xuICBib3R0b206IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICRoaWx0aS1jb25jcmV0ZS1saWdodGVuLTI7XG4gIC5pbmZvLWJsb2NrIHtcbiAgICB3aWR0aDo4MCU7XG4gICAgbWFyZ2luOiAxMHB4IGF1dG8gNDBweDtcbiAgICBhIHtcbiAgICAgIGNvbG9yOiAjNjcxQTNEO1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuICB9XG4gIC5idXR0b24td3JhcHBlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGhpbHRpLWNvbmNyZXRlO1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICBib3JkZXI6ICRoaWx0aS1jb25jcmV0ZS1saWdodGVuLTEgMnB4IHNvbGlkO1xuICAgIGJ1dHRvbiB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRoaWx0aS1yZWQ7XG4gICAgICBib3JkZXI6bm9uZTtcbiAgICAgIG1hcmdpbjogNXB4IGF1dG87XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGhlaWdodDogNDRweDtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gICAgfVxuICB9XG59XG5cbiIsIkBpbXBvcnQgXCIuL25vZGVfbW9kdWxlcy9oaWx0aS11aS1saWJyYXJ5L2Fzc2V0cy9zYXNzL2h1aS1jb2xvcnNcIjtcbiRoaWx0aS1jb25jcmV0ZTogJGh1aS1oZWF2eS1jb25jcmV0ZS0tNDA7XG4kaGlsdGktY29uY3JldGUtbGlnaHRlbi0xOiAkaHVpLWhlYXZ5LWNvbmNyZXRlLS00MDtcbiRoaWx0aS1jb25jcmV0ZS1saWdodGVuLTI6ICNFRkVCRTU7XG4kaGlsdGktY29uY3JldGUtZGFya2VuLTI6ICM4ODdGNkU7XG4kaGlsdGktc3RlZWw6ICM1MzRGNTM7XG4kaGlsdGktc3RlZWwtbGlnaHRlbi0xOiAjOTk5OTk5O1xuJGhpbHRpLXN0ZWVsLWxpZ2h0ZW4tMjogI0RERERERDtcbiRoaWx0aS1yZWJlbC1ibHVlOiAjMzg4MEIwO1xuJGhpbHRpLXJlYmVsLWJsdWUtbGlnaHRlbi0xOiAjQ0NERkVCO1xuJGhpbHRpLWxpZ2h0LWdyZXk6ICNGQUZBRkE7XG4kaGlsdGktcmVkOiAkaHVpLWhpbHRpLXJlZDtcbiRoaWx0aS1wbGFjZWhvbGRlcjogI2Q3ZDdkNztcbiRoaWx0aS1ob3ZlcjogI0YzRjJGMDtcbiRoaWx0aS1zZWxlY3RlZDogI0Q4RDhEODtcbiRoaWx0aS1kaXNhYmxlZDogI0U3RTVFMTtcbiR0YWJzdHJpcC1jb250ZW50LXBhZGRpbmcteDogMHB4O1xuJHRhYnN0cmlwLWNvbnRlbnQtcGFkZGluZy15OiAwcHg7XG4kdGFic3RyaXAtY29udGVudC1ib3JkZXItd2lkdGg6IDBweDtcbiRncmlkLWhlYWRlci1iZzogd2hpdGU7XG4kZ3JpZC1ib3JkZXI6IHJnYmEoJGh1aS1oZWF2eS1jb25jcmV0ZS0tMjAsIDApO1xuJGdyaWQtaGVhZGVyLWJvcmRlcjogcmdiYSgkaHVpLWhlYXZ5LWNvbmNyZXRlLS0yMCwgMSk7XG4kZ3JpZC1hbHQtYmc6IHJnYmEod2hpdGUsIDApO1xuJGdyaWQtaG92ZXJlZC1iZzogJGh1aS1zdGVlbC0tMjA7XG4iLCIvL0NvbG9yc1xuLy9UT0RPOiByZW1vdmUgcHJlZml4IGh1aSBpbiBjb2xvcnMgdmFyaWFibGVcbiRodWktaGlsdGktcmVkOiAjRDIwNTFFO1xuJGh1aS1kYXJrLXJlZDogI0FCMDExNTtcbiRodWktZXJyb3ItcmVkOiAjRkYwMDAwO1xuJGh1aS1oZWF2eS1jb25jcmV0ZS0tMTA6ICNGM0YyRjA7XG4kaHVpLWhlYXZ5LWNvbmNyZXRlLS0yMDogI0U3RTVFMjtcbiRodWktaGVhdnktY29uY3JldGUtLTMwOiAjREJEOEQzO1xuJGh1aS1oZWF2eS1jb25jcmV0ZS0tNDA6ICNDRkNDQzU7XG4kaHVpLWhlYXZ5LWNvbmNyZXRlLS02MDogI0I3QjNBQTtcbiRodWktaGVhdnktY29uY3JldGUtLTgwOiAjQTA5OThCO1xuJGh1aS1zdGVlbDogIzUyNEY1MztcbiRodWktc3RlZWwtLTIwOiAjREREQ0REO1xuJGh1aS1zdGVlbC0tNDA6ICNCQUI5QkE7XG4kaHVpLXN0ZWVsLS02MDogIzk3OTU5ODtcbiRodWktc3RlZWwtLTgwOiAjNzU3Mjc1O1xuJGh1aS13aGl0ZTogI0ZGRjtcbiRodWktYmxhY2s6ICMwMDA7XG4kaHVpLWJsYWNrLS05MDogIzE5MTkxOTtcbiRodWktYmxhY2stLTQwOiAjOTk5OTk5O1xuJGh1aS1ncmVlbjogIzE5QUYzNztcbiRodWktZ3JlZW4tLTQwOiAjQTNERkFGO1xuJGh1aS1kYXJrLWJsdWU6ICMwMDVGOTY7XG5cbiRodWktYnVyZ3VuZHk6ICM2NzFDM0U7XG5cbiRjdGE6ICRodWktaGlsdGktcmVkO1xuJHByaW1hcnk6ICRodWktc3RlZWw7XG4kc2Vjb25kYXJ5OiAkaHVpLWhlYXZ5LWNvbmNyZXRlLS0yMDtcbiRzdWNjZXNzOiAjMTlBRjM3O1xuJGRhbmdlcjogI0ZGMDAwMDtcbiR3YXJuaW5nOiAjRkZBRjAwO1xuXG4kdGhlbWUtY29sb3JzOiAoXG4gIFwiY3RhXCI6ICRjdGEsXG4gIFwiaGVhdnktY29uY3JldGUtLTEwXCI6ICRodWktaGVhdnktY29uY3JldGUtLTEwLFxuICBcImhlYXZ5LWNvbmNyZXRlLS0yMFwiOiAkaHVpLWhlYXZ5LWNvbmNyZXRlLS0yMCxcbik7XG4iXX0= */\"","import { Component, Output, EventEmitter } from '@angular/core';\nimport { AppStorageService } from '../../service/util/app-storage.service';\nimport { AppConstants } from '../../common/AppConstants';\n\n@Component({\n selector: 'app-cookie-notification',\n templateUrl: './cookie-notification.component.html',\n styleUrls: ['./cookie-notification.component.scss']\n})\nexport class CookieNotificationComponent {\n @Output() viewPrivacyPolicy: EventEmitter = new EventEmitter();\n public showInfo = false;\n\n constructor(private appStorageService: AppStorageService) {\n if (this.appStorageService.get(AppConstants.SHOW_COOKIE_INFO) !== true) {\n this.showInfo = true;\n }\n }\n\n public toggleDisplayStatus() {\n this.showInfo = !this.showInfo;\n this.appStorageService.set(AppConstants.SHOW_COOKIE_INFO, true);\n }\n\n public viewPolicy() {\n this.viewPrivacyPolicy.emit();\n }\n}\n","import { Directive, EventEmitter, HostBinding, HostListener, Output } from '@angular/core';\n\n@Directive({\n selector: '[appDragndrop]'\n})\nexport class DragndropDirective {\n\n constructor() { }\n\n // tslint:disable-next-line\n @HostBinding('class.fileover') fileOver: boolean;\n // tslint:disable-next-line\n @Output() filesDropped = new EventEmitter();\n\n @HostListener('dragover', ['$event']) onDragOver(e) {\n e.preventDefault();\n e.stopPropagation();\n }\n\n @HostListener('dragleave', ['$event']) public onDragLeave(e) {\n e.preventDefault();\n e.stopPropagation();\n }\n\n @HostListener('drop', ['$event']) public onDrop(e) {\n e.preventDefault();\n e.stopPropagation();\n this.fileOver = false;\n const files = e.dataTransfer.files;\n if (files.length > 0) {\n this.filesDropped.emit(files);\n }\n }\n\n}\n","export default \".info-label {\\n cursor: pointer; }\\n\\n.info-panel, .info-panel-without-text {\\n position: absolute;\\n background: rgba(0, 0, 0, 0.85);\\n width: 300px;\\n padding: 5px;\\n color: white;\\n rigth: 50px;\\n z-index: 1000;\\n margin: 7px; }\\n\\n.info-panel:after, .info-panel-without-text:after {\\n bottom: 100%;\\n left: 50%;\\n border: solid transparent;\\n content: \\\"\\\";\\n height: 0;\\n width: 0;\\n position: absolute;\\n pointer-events: none;\\n border-color: rgba(44, 44, 44, 0);\\n border-bottom-color: #4d4d4d;\\n border-width: 7px;\\n margin-left: -70px; }\\n\\n.info-panel-without-text {\\n width: 300px;\\n color: white;\\n left: 0px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9idWlsZHMvYnUtZi1wcy9zaGVhci1jb25uZWN0b3IvZGVwbG95L2NvZGUvaHZiLXdlYi9odmItYXBwL3NyYy9hcHAvc2hhcmVkL2luZm9ybWF0aW9uL2luZm9ybWF0aW9uLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsZ0JBQWUsRUFDaEI7O0FBQ0Q7RUFDRSxtQkFBa0I7RUFDbEIsZ0NBQTRCO0VBQzVCLGFBQVk7RUFDWixhQUFZO0VBQ1osYUFBWTtFQUNaLFlBQVc7RUFDWCxjQUFhO0VBQ2IsWUFBVyxFQWVaOztBQXZCRDtJQVVJLGFBQVk7SUFDWixVQUFTO0lBQ1QsMEJBQXlCO0lBQ3pCLFlBQVc7SUFDWCxVQUFTO0lBQ1QsU0FBUTtJQUNSLG1CQUFrQjtJQUNsQixxQkFBb0I7SUFDcEIsa0NBQWlDO0lBQ2pDLDZCQUE0QjtJQUM1QixrQkFBaUI7SUFDakIsbUJBQWtCLEVBQ25COztBQUdIO0VBRUUsYUFBWTtFQUNaLGFBQVk7RUFDWixVQUFTLEVBR1YiLCJmaWxlIjoic3JjL2FwcC9zaGFyZWQvaW5mb3JtYXRpb24vaW5mb3JtYXRpb24uY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuaW5mby1sYWJlbCB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5pbmZvLXBhbmVsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuODUpO1xuICB3aWR0aDogMzAwcHg7XG4gIHBhZGRpbmc6IDVweDtcbiAgY29sb3I6IHdoaXRlO1xuICByaWd0aDogNTBweDtcbiAgei1pbmRleDogMTAwMDtcbiAgbWFyZ2luOiA3cHg7XG4gICY6YWZ0ZXIge1xuICAgIGJvdHRvbTogMTAwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgYm9yZGVyOiBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGhlaWdodDogMDtcbiAgICB3aWR0aDogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDQ0LCA0NCwgNDQsIDApO1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICM0ZDRkNGQ7XG4gICAgYm9yZGVyLXdpZHRoOiA3cHg7XG4gICAgbWFyZ2luLWxlZnQ6IC03MHB4O1xuICB9XG59XG5cbi5pbmZvLXBhbmVsLXdpdGhvdXQtdGV4dCB7XG4gIEBleHRlbmQgLmluZm8tcGFuZWw7XG4gIHdpZHRoOiAzMDBweDtcbiAgY29sb3I6IHdoaXRlO1xuICBsZWZ0OiAwcHg7XG4gICY6YWZ0ZXIge1xuICB9XG59XG4iXX0= */\"","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'app-info',\n templateUrl: './information.component.html',\n styleUrls: ['./information.component.scss']\n})\nexport class InformationComponent {\n @Input()\n public infoTitle: string;\n @Input()\n public infoText: string;\n public isTooltipVisible = false;\n\n constructor() { }\n}\n","export default \".breadcrumb-panel {\\n background-color: #FFF;\\n width: 100%;\\n border-bottom: 4px solid #E7E5E2;\\n padding: 10px 20px 10px; }\\n\\n.breadcrumb-item a:link, .breadcrumb-item a:visited {\\n font-weight: 600; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9idWlsZHMvYnUtZi1wcy9zaGVhci1jb25uZWN0b3IvZGVwbG95L2NvZGUvaHZiLXdlYi9odmItYXBwL3NyYy9hcHAvc2hhcmVkL25hdmlnYXRpb24vbmF2aWdhdGlvbi5jb21wb25lbnQuc2NzcyIsIi9idWlsZHMvYnUtZi1wcy9zaGVhci1jb25uZWN0b3IvZGVwbG95L2NvZGUvaHZiLXdlYi9odmItYXBwL25vZGVfbW9kdWxlcy9oaWx0aS11aS1saWJyYXJ5L2Fzc2V0cy9zYXNzL19odWktY29sb3JzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7RUFDRSx1QkNhYztFRFpkLFlBQVc7RUFDWCxpQ0NDOEI7RURBOUIsd0JBQXVCLEVBQ3hCOztBQUVEO0VBRUksaUJBQWdCLEVBQ2pCIiwiZmlsZSI6InNyYy9hcHAvc2hhcmVkL25hdmlnYXRpb24vbmF2aWdhdGlvbi5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIkBpbXBvcnQgJy4uLy4uLy4uL3ZhcmlhYmxlcyc7XG5cbi5icmVhZGNydW1iLXBhbmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGh1aS13aGl0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1ib3R0b206IDRweCBzb2xpZCAkaHVpLWhlYXZ5LWNvbmNyZXRlLS0yMDtcbiAgcGFkZGluZzogMTBweCAyMHB4IDEwcHg7XG59XG5cbi5icmVhZGNydW1iLWl0ZW0ge1xuICBhOmxpbmssIGE6dmlzaXRlZCB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgfVxufVxuIiwiLy9Db2xvcnNcbi8vVE9ETzogcmVtb3ZlIHByZWZpeCBodWkgaW4gY29sb3JzIHZhcmlhYmxlXG4kaHVpLWhpbHRpLXJlZDogI0QyMDUxRTtcbiRodWktZGFyay1yZWQ6ICNBQjAxMTU7XG4kaHVpLWVycm9yLXJlZDogI0ZGMDAwMDtcbiRodWktaGVhdnktY29uY3JldGUtLTEwOiAjRjNGMkYwO1xuJGh1aS1oZWF2eS1jb25jcmV0ZS0tMjA6ICNFN0U1RTI7XG4kaHVpLWhlYXZ5LWNvbmNyZXRlLS0zMDogI0RCRDhEMztcbiRodWktaGVhdnktY29uY3JldGUtLTQwOiAjQ0ZDQ0M1O1xuJGh1aS1oZWF2eS1jb25jcmV0ZS0tNjA6ICNCN0IzQUE7XG4kaHVpLWhlYXZ5LWNvbmNyZXRlLS04MDogI0EwOTk4QjtcbiRodWktc3RlZWw6ICM1MjRGNTM7XG4kaHVpLXN0ZWVsLS0yMDogI0RERENERDtcbiRodWktc3RlZWwtLTQwOiAjQkFCOUJBO1xuJGh1aS1zdGVlbC0tNjA6ICM5Nzk1OTg7XG4kaHVpLXN0ZWVsLS04MDogIzc1NzI3NTtcbiRodWktd2hpdGU6ICNGRkY7XG4kaHVpLWJsYWNrOiAjMDAwO1xuJGh1aS1ibGFjay0tOTA6ICMxOTE5MTk7XG4kaHVpLWJsYWNrLS00MDogIzk5OTk5OTtcbiRodWktZ3JlZW46ICMxOUFGMzc7XG4kaHVpLWdyZWVuLS00MDogI0EzREZBRjtcbiRodWktZGFyay1ibHVlOiAjMDA1Rjk2O1xuXG4kaHVpLWJ1cmd1bmR5OiAjNjcxQzNFO1xuXG4kY3RhOiAkaHVpLWhpbHRpLXJlZDtcbiRwcmltYXJ5OiAkaHVpLXN0ZWVsO1xuJHNlY29uZGFyeTogJGh1aS1oZWF2eS1jb25jcmV0ZS0tMjA7XG4kc3VjY2VzczogIzE5QUYzNztcbiRkYW5nZXI6ICNGRjAwMDA7XG4kd2FybmluZzogI0ZGQUYwMDtcblxuJHRoZW1lLWNvbG9yczogKFxuICBcImN0YVwiOiAkY3RhLFxuICBcImhlYXZ5LWNvbmNyZXRlLS0xMFwiOiAkaHVpLWhlYXZ5LWNvbmNyZXRlLS0xMCxcbiAgXCJoZWF2eS1jb25jcmV0ZS0tMjBcIjogJGh1aS1oZWF2eS1jb25jcmV0ZS0tMjAsXG4pO1xuIl19 */\"","import { Component, OnInit } from '@angular/core';\nimport { NavService, INavItem } from '../../service/common/nav.service';\nimport { Router } from '@angular/router';\n@Component({\n selector: 'app-navigation',\n templateUrl: './navigation.component.html',\n styleUrls: ['./navigation.component.scss']\n})\nexport class NavigationComponent implements OnInit {\n\n public showNavBar = false;\n private navItems: Array = [];\n constructor(private navService: NavService, private router: Router) {\n this.navService.$navItemsChanged.subscribe(navItems => {\n if (!navItems) {\n this.showNavBar = false;\n } else {\n this.showNavBar = true;\n this.navItems = navItems;\n }\n });\n }\n\n navigate(navItem: INavItem) {\n if (navItem.routeUrl) {\n this.router.navigateByUrl(navItem.routeUrl);\n }\n }\n\n ngOnInit() {\n }\n\n}\n","import { Directive } from '@angular/core';\nimport {AbstractControl, NG_VALIDATORS, ValidationErrors, Validator} from '@angular/forms';\n\n@Directive({\n selector: '[appNotOnlyNumbersValidator][ngModel]',\n providers: [{provide: NG_VALIDATORS, useExisting: NotOnlyNumbersValidatorDirective, multi: true}]\n})\nexport class NotOnlyNumbersValidatorDirective implements Validator {\n\n constructor() {\n }\n\n validate(c: AbstractControl): ValidationErrors | null {\n if (c.value === '') {\n return null;\n }\n const regex = new RegExp('(?!^\\\\d+$)^.+$');\n if (!regex.test(c.value)) {\n return { onlyNumbers: true};\n } else {\n return null;\n }\n }\n\n}\n","export default \".search-icon {\\n cursor: pointer;\\n color: #3880B0;\\n background-color: #EFEBE5;\\n padding: 5px;\\n border: 1px solid #CFCCC5; }\\n\\n/* do not group these rules */\\n\\n*::-webkit-input-placeholder {\\n color: #d7d7d7; }\\n\\n*:-moz-placeholder {\\n /* FF 4-18 */\\n color: #d7d7d7; }\\n\\n*::-moz-placeholder {\\n /* FF 19+ */\\n color: #d7d7d7; }\\n\\n*:-ms-input-placeholder {\\n /* IE 10+ */\\n color: #d7d7d7; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9idWlsZHMvYnUtZi1wcy9zaGVhci1jb25uZWN0b3IvZGVwbG95L2NvZGUvaHZiLXdlYi9odmItYXBwL3NyYy9hcHAvc2hhcmVkL3NlYXJjaC9zZWFyY2guY29tcG9uZW50LnNjc3MiLCIvYnVpbGRzL2J1LWYtcHMvc2hlYXItY29ubmVjdG9yL2RlcGxveS9jb2RlL2h2Yi13ZWIvaHZiLWFwcC9zcmMvX3ZhcmlhYmxlcy5zY3NzIiwiL2J1aWxkcy9idS1mLXBzL3NoZWFyLWNvbm5lY3Rvci9kZXBsb3kvY29kZS9odmItd2ViL2h2Yi1hcHAvbm9kZV9tb2R1bGVzL2hpbHRpLXVpLWxpYnJhcnkvYXNzZXRzL3Nhc3MvX2h1aS1jb2xvcnMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQTtFQUNJLGdCQUFlO0VBQ2YsZUNLc0I7RURKdEIsMEJDRDhCO0VERTlCLGFBQVk7RUFDWiwwQkVFNEIsRUZEL0I7O0FBQ0QsOEJBQThCOztBQUM5QjtFQUNJLGVDRXVCLEVERDFCOztBQUNEO0VBQ0ksYUFBYTtFQUNiLGVDRnVCLEVERzFCOztBQUNEO0VBQ0ksWUFBWTtFQUNaLGVDTnVCLEVETzFCOztBQUNEO0VBQ0ksWUFBWTtFQUNaLGVDVnVCLEVEVzFCIiwiZmlsZSI6InNyYy9hcHAvc2hhcmVkL3NlYXJjaC9zZWFyY2guY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAaW1wb3J0ICcuLi8uLi8uLi92YXJpYWJsZXMnO1xuLnNlYXJjaC1pY29ue1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBjb2xvcjogJGhpbHRpLXJlYmVsLWJsdWU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGhpbHRpLWNvbmNyZXRlLWxpZ2h0ZW4tMjtcbiAgICBwYWRkaW5nOiA1cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGhpbHRpLWNvbmNyZXRlO1xufVxuLyogZG8gbm90IGdyb3VwIHRoZXNlIHJ1bGVzICovXG4qOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogJGhpbHRpLXBsYWNlaG9sZGVyO1xufVxuKjotbW96LXBsYWNlaG9sZGVyIHtcbiAgICAvKiBGRiA0LTE4ICovXG4gICAgY29sb3I6ICRoaWx0aS1wbGFjZWhvbGRlcjtcbn1cbio6Oi1tb3otcGxhY2Vob2xkZXIge1xuICAgIC8qIEZGIDE5KyAqL1xuICAgIGNvbG9yOiAkaGlsdGktcGxhY2Vob2xkZXI7XG59XG4qOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgLyogSUUgMTArICovXG4gICAgY29sb3I6ICRoaWx0aS1wbGFjZWhvbGRlcjtcbn1cbiIsIkBpbXBvcnQgXCIuL25vZGVfbW9kdWxlcy9oaWx0aS11aS1saWJyYXJ5L2Fzc2V0cy9zYXNzL2h1aS1jb2xvcnNcIjtcbiRoaWx0aS1jb25jcmV0ZTogJGh1aS1oZWF2eS1jb25jcmV0ZS0tNDA7XG4kaGlsdGktY29uY3JldGUtbGlnaHRlbi0xOiAkaHVpLWhlYXZ5LWNvbmNyZXRlLS00MDtcbiRoaWx0aS1jb25jcmV0ZS1saWdodGVuLTI6ICNFRkVCRTU7XG4kaGlsdGktY29uY3JldGUtZGFya2VuLTI6ICM4ODdGNkU7XG4kaGlsdGktc3RlZWw6ICM1MzRGNTM7XG4kaGlsdGktc3RlZWwtbGlnaHRlbi0xOiAjOTk5OTk5O1xuJGhpbHRpLXN0ZWVsLWxpZ2h0ZW4tMjogI0RERERERDtcbiRoaWx0aS1yZWJlbC1ibHVlOiAjMzg4MEIwO1xuJGhpbHRpLXJlYmVsLWJsdWUtbGlnaHRlbi0xOiAjQ0NERkVCO1xuJGhpbHRpLWxpZ2h0LWdyZXk6ICNGQUZBRkE7XG4kaGlsdGktcmVkOiAkaHVpLWhpbHRpLXJlZDtcbiRoaWx0aS1wbGFjZWhvbGRlcjogI2Q3ZDdkNztcbiRoaWx0aS1ob3ZlcjogI0YzRjJGMDtcbiRoaWx0aS1zZWxlY3RlZDogI0Q4RDhEODtcbiRoaWx0aS1kaXNhYmxlZDogI0U3RTVFMTtcbiR0YWJzdHJpcC1jb250ZW50LXBhZGRpbmcteDogMHB4O1xuJHRhYnN0cmlwLWNvbnRlbnQtcGFkZGluZy15OiAwcHg7XG4kdGFic3RyaXAtY29udGVudC1ib3JkZXItd2lkdGg6IDBweDtcbiRncmlkLWhlYWRlci1iZzogd2hpdGU7XG4kZ3JpZC1ib3JkZXI6IHJnYmEoJGh1aS1oZWF2eS1jb25jcmV0ZS0tMjAsIDApO1xuJGdyaWQtaGVhZGVyLWJvcmRlcjogcmdiYSgkaHVpLWhlYXZ5LWNvbmNyZXRlLS0yMCwgMSk7XG4kZ3JpZC1hbHQtYmc6IHJnYmEod2hpdGUsIDApO1xuJGdyaWQtaG92ZXJlZC1iZzogJGh1aS1zdGVlbC0tMjA7XG4iLCIvL0NvbG9yc1xuLy9UT0RPOiByZW1vdmUgcHJlZml4IGh1aSBpbiBjb2xvcnMgdmFyaWFibGVcbiRodWktaGlsdGktcmVkOiAjRDIwNTFFO1xuJGh1aS1kYXJrLXJlZDogI0FCMDExNTtcbiRodWktZXJyb3ItcmVkOiAjRkYwMDAwO1xuJGh1aS1oZWF2eS1jb25jcmV0ZS0tMTA6ICNGM0YyRjA7XG4kaHVpLWhlYXZ5LWNvbmNyZXRlLS0yMDogI0U3RTVFMjtcbiRodWktaGVhdnktY29uY3JldGUtLTMwOiAjREJEOEQzO1xuJGh1aS1oZWF2eS1jb25jcmV0ZS0tNDA6ICNDRkNDQzU7XG4kaHVpLWhlYXZ5LWNvbmNyZXRlLS02MDogI0I3QjNBQTtcbiRodWktaGVhdnktY29uY3JldGUtLTgwOiAjQTA5OThCO1xuJGh1aS1zdGVlbDogIzUyNEY1MztcbiRodWktc3RlZWwtLTIwOiAjREREQ0REO1xuJGh1aS1zdGVlbC0tNDA6ICNCQUI5QkE7XG4kaHVpLXN0ZWVsLS02MDogIzk3OTU5ODtcbiRodWktc3RlZWwtLTgwOiAjNzU3Mjc1O1xuJGh1aS13aGl0ZTogI0ZGRjtcbiRodWktYmxhY2s6ICMwMDA7XG4kaHVpLWJsYWNrLS05MDogIzE5MTkxOTtcbiRodWktYmxhY2stLTQwOiAjOTk5OTk5O1xuJGh1aS1ncmVlbjogIzE5QUYzNztcbiRodWktZ3JlZW4tLTQwOiAjQTNERkFGO1xuJGh1aS1kYXJrLWJsdWU6ICMwMDVGOTY7XG5cbiRodWktYnVyZ3VuZHk6ICM2NzFDM0U7XG5cbiRjdGE6ICRodWktaGlsdGktcmVkO1xuJHByaW1hcnk6ICRodWktc3RlZWw7XG4kc2Vjb25kYXJ5OiAkaHVpLWhlYXZ5LWNvbmNyZXRlLS0yMDtcbiRzdWNjZXNzOiAjMTlBRjM3O1xuJGRhbmdlcjogI0ZGMDAwMDtcbiR3YXJuaW5nOiAjRkZBRjAwO1xuXG4kdGhlbWUtY29sb3JzOiAoXG4gIFwiY3RhXCI6ICRjdGEsXG4gIFwiaGVhdnktY29uY3JldGUtLTEwXCI6ICRodWktaGVhdnktY29uY3JldGUtLTEwLFxuICBcImhlYXZ5LWNvbmNyZXRlLS0yMFwiOiAkaHVpLWhlYXZ5LWNvbmNyZXRlLS0yMCxcbik7XG4iXX0= */\"","import { Component, OnInit, Input, Output, EventEmitter, AfterViewInit } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators, FormControl } from '@angular/forms';\nimport { Observable } from 'rxjs';\nimport { SearchService } from './search.service';\nimport * as models from './../../models/models';\nimport * as _ from 'lodash';\n\n@Component({\n selector: 'app-search',\n templateUrl: './search.component.html',\n styleUrls: ['./search.component.scss']\n})\nexport class SearchComponent implements OnInit {\n searchgroup: FormGroup;\n searchBox: FormControl;\n @Input() placeHolder: string;\n constructor(private searchService: SearchService) {\n\n }\n ngOnInit() {\n this.searchgroup = new FormGroup({ searchBox: new FormControl() });\n }\n ngOnDestory() {\n }\n\n public searchbtn() {\n const txtdata = this.searchgroup.get('searchBox').value;\n if (txtdata) {\n this.searchService.searchEvent.emit(txtdata);\n } else {\n this.searchService.searchEvent.emit('');\n }\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SearchService } from './search.service';\nimport { SearchComponent } from './search.component';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ButtonModule } from 'hilti-ui-library';\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n TranslateModule,\n ButtonModule\n ],\n declarations: [\n SearchComponent\n ],\n exports: [\n SearchComponent\n ],\n providers: [\n SearchService\n ]\n})\nexport class SearchModule { }\n","import { Injectable, EventEmitter } from '@angular/core';\n\n@Injectable()\nexport class SearchService {\n public searchEvent: EventEmitter = new EventEmitter();\n constructor() {\n\n }\n\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9zaGFyZWQuY29tcG9uZW50LmNzcyJ9 */\"","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-shared',\n templateUrl: './shared.component.html',\n styleUrls: ['./shared.component.css']\n})\nexport class SharedComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { SharedComponent } from './shared.component';\nimport { RouterModule } from '@angular/router';\nimport { TranslateModule, TranslateLoader, TranslateService } from '@ngx-translate/core';\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\nimport { ToasterService, ToasterModule } from 'angular2-toaster';\nimport { NgModule, ModuleWithProviders } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { InputTrim } from 'app/shared/InputTrim';\nimport { InformationComponent } from './information/information.component';\nimport { CookieNotificationComponent } from './cookie-notification/cookie-notification.component';\nimport { CheckBoxComponent } from './check-box/check-box.component';\nimport { NotOnlyNumbersValidatorDirective } from './not-only-numbers-validator.directive';\nimport {HttpClient} from '@angular/common/http';\nimport { DragndropDirective } from './dragndrop.directive';\nimport {TranslationLoader} from './translation/translation-loader';\n\nexport function HttpLoaderFactory(http: HttpClient) {\n return new TranslateHttpLoader(http);\n}\n\n@NgModule({\n declarations: [\n SharedComponent,\n InputTrim,\n InformationComponent,\n CookieNotificationComponent,\n CheckBoxComponent,\n NotOnlyNumbersValidatorDirective,\n DragndropDirective\n ],\n imports: [\n CommonModule,\n TranslateModule.forRoot({\n loader: {\n provide: TranslateLoader,\n useClass: TranslationLoader,\n useFactory: HttpLoaderFactory,\n deps: [HttpClient]\n }\n }),\n RouterModule,\n ToasterModule,\n ReactiveFormsModule,\n FormsModule\n ],\n exports: [\n CommonModule,\n TranslateModule,\n ToasterModule,\n SharedComponent,\n InputTrim,\n InformationComponent,\n CookieNotificationComponent,\n CheckBoxComponent,\n NotOnlyNumbersValidatorDirective,\n DragndropDirective\n ],\n providers: [\n TranslateService,\n ToasterService\n ]\n})\nexport class SharedModule {\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: SharedModule\n };\n }\n}\n","export default \".sorting {\\n appearance: none;\\n -moz-appearance: none;\\n /* Firefox */\\n -webkit-appearance: none;\\n /* Safari and Chrome */\\n background: url('drop-down-arrow.png') no-repeat right #FEFEFE;\\n float: right;\\n border: 1px solid #dddddd;\\n height: calc(2.25rem + 2px);\\n width: 180px;\\n padding: 0px 10px;\\n font-size: 14px;\\n margin-right: -15px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9idWlsZHMvYnUtZi1wcy9zaGVhci1jb25uZWN0b3IvZGVwbG95L2NvZGUvaHZiLXdlYi9odmItYXBwL3NyYy9hcHAvc2hhcmVkL3NvcnRpbmcvc29ydGluZy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLGlCQUFlO0VBQ2Ysc0JBQW9CO0VBQUUsYUFBYTtFQUNuQyx5QkFBdUI7RUFBRSx1QkFBdUI7RUFDaEQsK0RBQXFGO0VBQ3JGLGFBQVc7RUFDWCwwQkFBd0I7RUFDeEIsNEJBQTJCO0VBQzNCLGFBQVc7RUFDWCxrQkFBaUI7RUFDakIsZ0JBQWU7RUFDZixvQkFBbUIsRUFDdEIiLCJmaWxlIjoic3JjL2FwcC9zaGFyZWQvc29ydGluZy9zb3J0aW5nLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnNvcnRpbmd7XG4gICAgYXBwZWFyYW5jZTpub25lO1xuICAgIC1tb3otYXBwZWFyYW5jZTpub25lOyAvKiBGaXJlZm94ICovXG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7IC8qIFNhZmFyaSBhbmQgQ2hyb21lICovXG4gICAgYmFja2dyb3VuZDogdXJsKCcuLi8uLi8uLi9hc3NldHMvaW1hZ2VzL2Ryb3AtZG93bi1hcnJvdy5wbmcnKSBuby1yZXBlYXQgcmlnaHQgI0ZFRkVGRTtcbiAgICBmbG9hdDpyaWdodDtcbiAgICBib3JkZXI6MXB4IHNvbGlkICNkZGRkZGQ7XG4gICAgaGVpZ2h0OiBjYWxjKDIuMjVyZW0gKyAycHgpO1xuICAgIHdpZHRoOjE4MHB4O1xuICAgIHBhZGRpbmc6IDBweCAxMHB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBtYXJnaW4tcmlnaHQ6IC0xNXB4O1xufVxuIl19 */\"","import { Component, OnInit, Input, Output, EventEmitter, AfterViewInit } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators, FormControl } from '@angular/forms';\nimport { Observable } from 'rxjs';\nimport * as models from './../../models/models';\nimport * as _ from 'lodash';\n\n@Component({\n selector: 'app-sorting',\n templateUrl: './sorting.component.html',\n styleUrls: ['./sorting.component.scss']\n})\n\nexport class SortingComponent implements OnInit {\n @Input() sortOption: string;\n @Input() sortOptions: string[];\n @Output() value = new EventEmitter();\n sortinggroup: FormGroup;\n sortingcombo: FormControl;\n constructor() { }\n\n ngOnInit() {\n this.sortinggroup = new FormGroup({ sortingcombo: new FormControl() });\n }\n\n ngAfterViewInit() {\n this.sortinggroup.get('sortingcombo').valueChanges.subscribe(val => {\n this.value.emit(val);\n });\n }\n ngOnDestory() {\n // destroy\n }\n\n}\n","\nimport { Observable, of, combineLatest } from 'rxjs';\n\nimport {catchError, map} from 'rxjs/operators';\nimport { TranslateLoader } from '@ngx-translate/core';\nimport {HttpClient} from '@angular/common/http';\n\nexport class TranslationLoader implements TranslateLoader {\n constructor(private http: HttpClient) { }\n\n public getTranslation(lang: string): Observable {\n const language = lang.substr(0, 2);\n const textTranslation = this.http.get(`/assets/i18n/${language}.json`).pipe(\n catchError((err) => of({})), );\n const infoTranslation = this.http.get(`/assets/i18n/info/info_${language}.json`).pipe(\n catchError((err) => of({})), );\n return combineLatest([textTranslation, infoTranslation])\n .pipe(map(([a, b]) => {\n return Object.assign({}, a, b);\n }));\n }\n}\n","export default \".software-popup-title {\\n color: #D2051E;\\n padding-top: 40px; }\\n\\n.software-popup-burgundy {\\n color: #671A3D; }\\n\\n.software-popup-personal-title {\\n height: 38px;\\n line-height: 38px;\\n margin-bottom: 0px;\\n font-weight: 700;\\n position: relative;\\n overflow: hidden;\\n border-bottom: 1px solid #CFCCC5;\\n border-top: 1px solid #CFCCC5;\\n cursor: pointer; }\\n\\n.new-feature-list {\\n padding: 0;\\n background-color: #DDDCDD;\\n border-bottom: 1px solid #BAB9BA; }\\n\\n.software-popup-bordered-div {\\n border: 1px dotted black;\\n padding: 0 10px 0 10px;\\n margin-top: 10px; }\\n\\n.software-popup-div {\\n padding: 0 10px 0 10px; }\\n\\n.software-popup-new-image {\\n width: 80px;\\n float: right;\\n bottom: 100px;\\n left: 40px;\\n position: relative; }\\n\\n.software-popup-hilti-logo {\\n float: right; }\\n\\n.software-popup-actions {\\n width: 100%;\\n margin-top: 15px;\\n padding-bottom: 15px; }\\n\\n.software-popup-text-left {\\n float: left;\\n width: auto; }\\n\\n.software-popup-text-right {\\n float: right;\\n clear: none;\\n width: initial;\\n display: block; }\\n\\n.row {\\n padding-top: 10px; }\\n\\n.section-collapse {\\n border: none;\\n background: none;\\n padding: 0;\\n position: absolute;\\n right: 0;\\n z-index: 10;\\n background-color: #fff;\\n cursor: pointer; }\\n\\n.section-collapse:focus {\\n outline: none; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9idWlsZHMvYnUtZi1wcy9zaGVhci1jb25uZWN0b3IvZGVwbG95L2NvZGUvaHZiLXdlYi9odmItYXBwL3NyYy9hcHAvc29mdHdhcmUtcG9wdXAvc29mdHdhcmUtcG9wdXAuY29tcG9uZW50LnNjc3MiLCIvYnVpbGRzL2J1LWYtcHMvc2hlYXItY29ubmVjdG9yL2RlcGxveS9jb2RlL2h2Yi13ZWIvaHZiLWFwcC9ub2RlX21vZHVsZXMvaGlsdGktdWktbGlicmFyeS9hc3NldHMvc2Fzcy9faHVpLWNvbG9ycy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBO0VBQ0csZUFBYztFQUNkLGtCQUFpQixFQUNuQjs7QUFFRDtFQUNHLGVBQWMsRUFDaEI7O0FBRUQ7RUFDSSxhQUFXO0VBQ1gsa0JBQWdCO0VBQ2hCLG1CQUFpQjtFQUNqQixpQkFBZTtFQUNmLG1CQUFpQjtFQUNqQixpQkFBZTtFQUNmLGlDQ1o0QjtFRGE1Qiw4QkNiNEI7RURjNUIsZ0JBQWUsRUFDbEI7O0FBRUQ7RUFDSSxXQUFVO0VBQ1YsMEJDZm1CO0VEZ0JuQixpQ0NmbUIsRURnQnRCOztBQUVEO0VBQ0kseUJBQXdCO0VBQ3hCLHVCQUFzQjtFQUN0QixpQkFBZ0IsRUFDbkI7O0FBRUQ7RUFDSSx1QkFBc0IsRUFDekI7O0FBRUQ7RUFDSSxZQUFXO0VBQ1gsYUFBWTtFQUNaLGNBQWE7RUFDYixXQUFVO0VBQ1YsbUJBQWtCLEVBQ3JCOztBQUVEO0VBQ0ksYUFBWSxFQUNmOztBQUVEO0VBQ0ksWUFBVztFQUNYLGlCQUFnQjtFQUNoQixxQkFBb0IsRUFDdkI7O0FBR0Q7RUFDSSxZQUFXO0VBQ1gsWUFBVyxFQUNkOztBQUVEO0VBQ0ksYUFBWTtFQUNaLFlBQVc7RUFDWCxlQUFjO0VBQ2QsZUFBYyxFQUNqQjs7QUFFRDtFQUNJLGtCQUFpQixFQUNwQjs7QUFDRDtFQUNFLGFBQVc7RUFDWCxpQkFBZTtFQUNmLFdBQVM7RUFDVCxtQkFBaUI7RUFDakIsU0FBTztFQUNQLFlBQVU7RUFDVix1QkFBcUI7RUFDckIsZ0JBQWUsRUFLaEI7O0FBYkQ7SUFXSSxjQUFhLEVBQ2QiLCJmaWxlIjoic3JjL2FwcC9zb2Z0d2FyZS1wb3B1cC9zb2Z0d2FyZS1wb3B1cC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIkBpbXBvcnQgJy4uLy4uLy4uL3NyYy9fdmFyaWFibGVzLnNjc3MnO1xuXG5cblxuLnNvZnR3YXJlLXBvcHVwLXRpdGxlIHtcbiAgIGNvbG9yOiAjRDIwNTFFO1xuICAgcGFkZGluZy10b3A6IDQwcHg7XG59XG5cbi5zb2Z0d2FyZS1wb3B1cC1idXJndW5keSB7XG4gICBjb2xvcjogIzY3MUEzRDtcbn1cblxuLnNvZnR3YXJlLXBvcHVwLXBlcnNvbmFsLXRpdGxlIHtcbiAgICBoZWlnaHQ6MzhweDtcbiAgICBsaW5lLWhlaWdodDozOHB4O1xuICAgIG1hcmdpbi1ib3R0b206MHB4O1xuICAgIGZvbnQtd2VpZ2h0OjcwMDtcbiAgICBwb3NpdGlvbjpyZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzpoaWRkZW47XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRodWktaGVhdnktY29uY3JldGUtLTQwO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkaHVpLWhlYXZ5LWNvbmNyZXRlLS00MDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5uZXctZmVhdHVyZS1saXN0IHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRodWktc3RlZWwtLTIwO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkaHVpLXN0ZWVsLS00MDtcbn1cblxuLnNvZnR3YXJlLXBvcHVwLWJvcmRlcmVkLWRpdiB7XG4gICAgYm9yZGVyOiAxcHggZG90dGVkIGJsYWNrO1xuICAgIHBhZGRpbmc6IDAgMTBweCAwIDEwcHg7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbn1cblxuLnNvZnR3YXJlLXBvcHVwLWRpdiB7XG4gICAgcGFkZGluZzogMCAxMHB4IDAgMTBweDtcbn1cblxuLnNvZnR3YXJlLXBvcHVwLW5ldy1pbWFnZSB7XG4gICAgd2lkdGg6IDgwcHg7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIGJvdHRvbTogMTAwcHg7XG4gICAgbGVmdDogNDBweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5zb2Z0d2FyZS1wb3B1cC1oaWx0aS1sb2dvIHtcbiAgICBmbG9hdDogcmlnaHQ7XG59XG5cbi5zb2Z0d2FyZS1wb3B1cC1hY3Rpb25zIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAxNXB4O1xufVxuXG5cbi5zb2Z0d2FyZS1wb3B1cC10ZXh0LWxlZnQge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiBhdXRvO1xufVxuXG4uc29mdHdhcmUtcG9wdXAtdGV4dC1yaWdodCB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIGNsZWFyOiBub25lO1xuICAgIHdpZHRoOiBpbml0aWFsO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4ucm93IHtcbiAgICBwYWRkaW5nLXRvcDogMTBweDtcbn1cbi5zZWN0aW9uLWNvbGxhcHNlIHtcbiAgYm9yZGVyOm5vbmU7XG4gIGJhY2tncm91bmQ6bm9uZTtcbiAgcGFkZGluZzowO1xuICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgcmlnaHQ6MDtcbiAgei1pbmRleDoxMDtcbiAgYmFja2dyb3VuZC1jb2xvcjojZmZmO1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxufVxuIiwiLy9Db2xvcnNcbi8vVE9ETzogcmVtb3ZlIHByZWZpeCBodWkgaW4gY29sb3JzIHZhcmlhYmxlXG4kaHVpLWhpbHRpLXJlZDogI0QyMDUxRTtcbiRodWktZGFyay1yZWQ6ICNBQjAxMTU7XG4kaHVpLWVycm9yLXJlZDogI0ZGMDAwMDtcbiRodWktaGVhdnktY29uY3JldGUtLTEwOiAjRjNGMkYwO1xuJGh1aS1oZWF2eS1jb25jcmV0ZS0tMjA6ICNFN0U1RTI7XG4kaHVpLWhlYXZ5LWNvbmNyZXRlLS0zMDogI0RCRDhEMztcbiRodWktaGVhdnktY29uY3JldGUtLTQwOiAjQ0ZDQ0M1O1xuJGh1aS1oZWF2eS1jb25jcmV0ZS0tNjA6ICNCN0IzQUE7XG4kaHVpLWhlYXZ5LWNvbmNyZXRlLS04MDogI0EwOTk4QjtcbiRodWktc3RlZWw6ICM1MjRGNTM7XG4kaHVpLXN0ZWVsLS0yMDogI0RERENERDtcbiRodWktc3RlZWwtLTQwOiAjQkFCOUJBO1xuJGh1aS1zdGVlbC0tNjA6ICM5Nzk1OTg7XG4kaHVpLXN0ZWVsLS04MDogIzc1NzI3NTtcbiRodWktd2hpdGU6ICNGRkY7XG4kaHVpLWJsYWNrOiAjMDAwO1xuJGh1aS1ibGFjay0tOTA6ICMxOTE5MTk7XG4kaHVpLWJsYWNrLS00MDogIzk5OTk5OTtcbiRodWktZ3JlZW46ICMxOUFGMzc7XG4kaHVpLWdyZWVuLS00MDogI0EzREZBRjtcbiRodWktZGFyay1ibHVlOiAjMDA1Rjk2O1xuXG4kaHVpLWJ1cmd1bmR5OiAjNjcxQzNFO1xuXG4kY3RhOiAkaHVpLWhpbHRpLXJlZDtcbiRwcmltYXJ5OiAkaHVpLXN0ZWVsO1xuJHNlY29uZGFyeTogJGh1aS1oZWF2eS1jb25jcmV0ZS0tMjA7XG4kc3VjY2VzczogIzE5QUYzNztcbiRkYW5nZXI6ICNGRjAwMDA7XG4kd2FybmluZzogI0ZGQUYwMDtcblxuJHRoZW1lLWNvbG9yczogKFxuICBcImN0YVwiOiAkY3RhLFxuICBcImhlYXZ5LWNvbmNyZXRlLS0xMFwiOiAkaHVpLWhlYXZ5LWNvbmNyZXRlLS0xMCxcbiAgXCJoZWF2eS1jb25jcmV0ZS0tMjBcIjogJGh1aS1oZWF2eS1jb25jcmV0ZS0tMjAsXG4pO1xuIl19 */\"","import { Component, EventEmitter, Output} from '@angular/core';\nimport {TranslateService} from '@ngx-translate/core';\n\n@Component({\n selector: 'app-software-popup',\n templateUrl: './software-popup.component.html',\n styleUrls: ['./software-popup.component.scss']\n})\nexport class SoftwarePopupComponent {\n @Output() notify: EventEmitter = new EventEmitter();\n public isChecked: boolean;\n newFeatureCollapsed = false;\n constructor (public translate: TranslateService) {\n this.isChecked = false;\n }\n\n public onAccept() {\n this.notify.emit(this.isChecked);\n }\n\n public onCancel() {\n this.notify.emit(false);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { DialogModule } from '@progress/kendo-angular-dialog';\nimport { SharedModule } from '../shared/shared.module';\nimport { SoftwarePopupComponent } from './software-popup.component';\nimport {ButtonModule, CheckboxModule} from 'hilti-ui-library';\n\n@NgModule({\n imports: [\n CommonModule,\n SharedModule,\n ReactiveFormsModule,\n DialogModule,\n FormsModule,\n CheckboxModule,\n ButtonModule\n ],\n declarations: [\n SoftwarePopupComponent\n ],\n exports: [\n SoftwarePopupComponent\n ]\n})\nexport class SoftwarePopupModule {};\n","export default \".k-button {\\n color: #757275;\\n width: 32px;\\n height: 32px;\\n line-height: 34px;\\n font-size: 1.6em;\\n text-align: center;\\n border-width: 0px;\\n background-color: inherit; }\\n\\n.k-list .k-item.k-state-selected {\\n background-color: #671C3E; }\\n\\n.k-dropdown {\\n -webkit-appearance: none;\\n border: 1px solid #DDDDDD; }\\n\\n/deep/ .k-grid-content {\\n border: 2px solid #E7E5E2; }\\n\\n.k-input {\\n -webkit-appearance: none;\\n border: 1px solid #DDDDDD; }\\n\\n.k-numerictextbox {\\n -webkit-appearance: none;\\n border: 1px solid #DDDDDD; }\\n\\n/deep/ .k-gird tr {\\n word-wrap: break-word;\\n white-space: initial; }\\n\\n/deep/ .k-gird td {\\n word-wrap: break-word;\\n white-space: initial; }\\n\\n/deep/ .k-gird th {\\n word-wrap: break-word;\\n white-space: initial; }\\n\\n/deep/ .k-grid-header .k-header {\\n white-space: normal; }\\n\\n/deep/ .k-grid th {\\n white-space: normal; }\\n\\n/deep/ .k-header {\\n white-space: normal; }\\n\\n/deep/ .k-list .k-item.k-state-selected {\\n background-color: #D2051E; }\\n\\n/deep/ .k-textbox::-moz-selection, .k-input::-moz-selection, .k-textarea::-moz-selection {\\n background-color: #D2051E; }\\n\\n/deep/ .k-textbox::selection, .k-input::selection, .k-textarea::selection {\\n background-color: #D2051E; }\\n\\n/deep/ .k-widget ::-moz-selection, .k-block ::-moz-selection {\\n background-color: #D2051E; }\\n\\n/deep/ .k-widget ::selection, .k-block ::selection {\\n background-color: #D2051E; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9idWlsZHMvYnUtZi1wcy9zaGVhci1jb25uZWN0b3IvZGVwbG95L2NvZGUvaHZiLXdlYi9odmItYXBwL3NyYy9hcHAvc3VicHJvamVjdC9saW5lbG9hZHMvbGluZWxvYWRzLmNvbXBvbmVudC5zY3NzIiwiL2J1aWxkcy9idS1mLXBzL3NoZWFyLWNvbm5lY3Rvci9kZXBsb3kvY29kZS9odmItd2ViL2h2Yi1hcHAvbm9kZV9tb2R1bGVzL2hpbHRpLXVpLWxpYnJhcnkvYXNzZXRzL3Nhc3MvX2h1aS1jb2xvcnMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQTtFQUNJLGVDYW1CO0VEWm5CLFlBQVU7RUFDVixhQUFZO0VBQ1osa0JBQWdCO0VBQ2hCLGlCQUFlO0VBQ2YsbUJBQWlCO0VBQ2pCLGtCQUFpQjtFQUNqQiwwQkFBeUIsRUFDNUI7O0FBQ0Q7RUFDSSwwQkNZa0IsRURYckI7O0FBQ0Q7RUFDSSx5QkFBd0I7RUFDeEIsMEJBQXlCLEVBQzVCOztBQUVEO0VBQ0UsMEJDZDhCLEVEZS9COztBQUVEO0VBQ0kseUJBQXdCO0VBQ3hCLDBCQUF5QixFQUM1Qjs7QUFDRDtFQUNJLHlCQUF3QjtFQUN4QiwwQkFBeUIsRUFDNUI7O0FBRUQ7RUFDSSxzQkFBcUI7RUFDckIscUJBQW9CLEVBQ3ZCOztBQUVEO0VBQ0ksc0JBQXFCO0VBQ3JCLHFCQUFvQixFQUN2Qjs7QUFFRDtFQUNJLHNCQUFxQjtFQUNyQixxQkFBb0IsRUFDdkI7O0FBRUQ7RUFDSSxvQkFBbUIsRUFDdEI7O0FBRUQ7RUFDSSxvQkFBbUIsRUFDdEI7O0FBRUQ7RUFDSSxvQkFBbUIsRUFDdEI7O0FBRUQ7RUFDSSwwQkMxRG1CLEVEMkR0Qjs7QUFFRDtFQUNJLDBCQzlEbUIsRUQrRHRCOztBQUZEO0VBQ0ksMEJDOURtQixFRCtEdEI7O0FBRUQ7RUFDSSwwQkNsRW1CLEVEbUV0Qjs7QUFGRDtFQUNJLDBCQ2xFbUIsRURtRXRCIiwiZmlsZSI6InNyYy9hcHAvc3VicHJvamVjdC9saW5lbG9hZHMvbGluZWxvYWRzLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCAnLi4vLi4vLi4vdmFyaWFibGVzJztcbi5rLWJ1dHRvbntcbiAgICBjb2xvcjogJGh1aS1zdGVlbC0tODA7XG4gICAgd2lkdGg6MzJweDtcbiAgICBoZWlnaHQ6IDMycHg7XG4gICAgbGluZS1oZWlnaHQ6MzRweDtcbiAgICBmb250LXNpemU6MS42ZW07XG4gICAgdGV4dC1hbGlnbjpjZW50ZXI7XG4gICAgYm9yZGVyLXdpZHRoOiAwcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbn1cbi5rLWxpc3QgLmstaXRlbS5rLXN0YXRlLXNlbGVjdGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiRodWktYnVyZ3VuZHk7XG59XG4uay1kcm9wZG93biB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNEREREREQ7XG59XG5cbi9kZWVwLyAuay1ncmlkLWNvbnRlbnQge1xuICBib3JkZXI6IDJweCBzb2xpZCAkaHVpLWhlYXZ5LWNvbmNyZXRlLS0yMDtcbn1cblxuLmstaW5wdXQge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjREREREREO1xufVxuLmstbnVtZXJpY3RleHRib3gge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjREREREREO1xufVxuXG4vZGVlcC8gLmstZ2lyZCB0cntcbiAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgd2hpdGUtc3BhY2U6IGluaXRpYWw7XG59XG5cbi9kZWVwLyAuay1naXJkIHRke1xuICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgICB3aGl0ZS1zcGFjZTogaW5pdGlhbDtcbn1cblxuL2RlZXAvIC5rLWdpcmQgdGh7XG4gICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAgIHdoaXRlLXNwYWNlOiBpbml0aWFsO1xufVxuXG4vZGVlcC8gLmstZ3JpZC1oZWFkZXIgLmstaGVhZGVyIHtcbiAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xufVxuXG4vZGVlcC8gLmstZ3JpZCB0aCB7XG4gICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbn1cblxuL2RlZXAvIC5rLWhlYWRlciB7XG4gICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbn1cblxuL2RlZXAvIC5rLWxpc3QgLmstaXRlbS5rLXN0YXRlLXNlbGVjdGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaGlsdGktcmVkO1xufVxuXG4vZGVlcC8gLmstdGV4dGJveDo6c2VsZWN0aW9uLCAuay1pbnB1dDo6c2VsZWN0aW9uLCAuay10ZXh0YXJlYTo6c2VsZWN0aW9uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaGlsdGktcmVkO1xufVxuXG4vZGVlcC8gLmstd2lkZ2V0IDo6c2VsZWN0aW9uLCAuay1ibG9jayA6OnNlbGVjdGlvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGhpbHRpLXJlZDtcbn1cblxuXG5cbiIsIi8vQ29sb3JzXG4vL1RPRE86IHJlbW92ZSBwcmVmaXggaHVpIGluIGNvbG9ycyB2YXJpYWJsZVxuJGh1aS1oaWx0aS1yZWQ6ICNEMjA1MUU7XG4kaHVpLWRhcmstcmVkOiAjQUIwMTE1O1xuJGh1aS1lcnJvci1yZWQ6ICNGRjAwMDA7XG4kaHVpLWhlYXZ5LWNvbmNyZXRlLS0xMDogI0YzRjJGMDtcbiRodWktaGVhdnktY29uY3JldGUtLTIwOiAjRTdFNUUyO1xuJGh1aS1oZWF2eS1jb25jcmV0ZS0tMzA6ICNEQkQ4RDM7XG4kaHVpLWhlYXZ5LWNvbmNyZXRlLS00MDogI0NGQ0NDNTtcbiRodWktaGVhdnktY29uY3JldGUtLTYwOiAjQjdCM0FBO1xuJGh1aS1oZWF2eS1jb25jcmV0ZS0tODA6ICNBMDk5OEI7XG4kaHVpLXN0ZWVsOiAjNTI0RjUzO1xuJGh1aS1zdGVlbC0tMjA6ICNERERDREQ7XG4kaHVpLXN0ZWVsLS00MDogI0JBQjlCQTtcbiRodWktc3RlZWwtLTYwOiAjOTc5NTk4O1xuJGh1aS1zdGVlbC0tODA6ICM3NTcyNzU7XG4kaHVpLXdoaXRlOiAjRkZGO1xuJGh1aS1ibGFjazogIzAwMDtcbiRodWktYmxhY2stLTkwOiAjMTkxOTE5O1xuJGh1aS1ibGFjay0tNDA6ICM5OTk5OTk7XG4kaHVpLWdyZWVuOiAjMTlBRjM3O1xuJGh1aS1ncmVlbi0tNDA6ICNBM0RGQUY7XG4kaHVpLWRhcmstYmx1ZTogIzAwNUY5NjtcblxuJGh1aS1idXJndW5keTogIzY3MUMzRTtcblxuJGN0YTogJGh1aS1oaWx0aS1yZWQ7XG4kcHJpbWFyeTogJGh1aS1zdGVlbDtcbiRzZWNvbmRhcnk6ICRodWktaGVhdnktY29uY3JldGUtLTIwO1xuJHN1Y2Nlc3M6ICMxOUFGMzc7XG4kZGFuZ2VyOiAjRkYwMDAwO1xuJHdhcm5pbmc6ICNGRkFGMDA7XG5cbiR0aGVtZS1jb2xvcnM6IChcbiAgXCJjdGFcIjogJGN0YSxcbiAgXCJoZWF2eS1jb25jcmV0ZS0tMTBcIjogJGh1aS1oZWF2eS1jb25jcmV0ZS0tMTAsXG4gIFwiaGVhdnktY29uY3JldGUtLTIwXCI6ICRodWktaGVhdnktY29uY3JldGUtLTIwLFxuKTtcbiJdfQ== */\"","import { AppConstants } from './../../common/AppConstants';\nimport { UserAgreementAcceptGaurd } from './../../user-agreement-acceptguard.service';\nimport { Component, Input, Output, EventEmitter, OnChanges, SimpleChanges, SimpleChange, OnInit } from '@angular/core';\nimport { Validators, FormBuilder, FormGroup, FormControl, AbstractControl, ValidatorFn } from '@angular/forms';\nimport { CustomValidators } from 'ng2-validation';\nimport { GridDataResult } from '@progress/kendo-angular-grid';\nimport { State, process } from '@progress/kendo-data-query';\nimport { TranslateService } from '@ngx-translate/core';\nimport * as models from './../../models/models';\nimport { SharedService } from '../../service/common/shared.service';\n\n@Component({\n selector: 'line-loads',\n templateUrl: './lineloads.component.html',\n styleUrls: ['./lineloads.component.scss']\n})\nexport class LineloadsComponent implements OnChanges, OnInit {\n public DEADLOAD = this.translate.instant('load-dead');\n public LIVELOAD = this.translate.instant('load-live');\n public ORIGIN: string;\n public WIDTH: string;\n public LOAD1: string;\n public LOAD2: string;\n public MAXLINELOADS = 3;\n @Input()\n public forceUnitTitle: string;\n @Input()\n public lengthUnitTitle: string;\n @Input()\n public liveLineLoads: any[];\n @Input()\n public deadLineLoads: any[];\n @Input()\n public beamLength: number;\n @Input()\n public designCode: number;\n public lineLoadsData: any[];\n public loadType = [];\n public formGroup: FormGroup;\n private editedRowIndex: number;\n @Output()\n public lineLoadsUpdated: EventEmitter = new EventEmitter();\n constructor(private sharedService: SharedService,\n private translate: TranslateService) {\n this.loadType = [this.DEADLOAD, this.LIVELOAD];\n this.populateLineLoadsData(this.liveLineLoads, this.deadLineLoads);\n }\n\n ngOnInit() {\n this.populateLineLoadsData(this.liveLineLoads, this.deadLineLoads);\n const loadStr = ' (' + this.forceUnitTitle + '/' + this.lengthUnitTitle + ')';\n const lengthStr = ' (' + this.lengthUnitTitle + ')';\n this.ORIGIN = this.translate.instant('origin') + lengthStr;\n this.WIDTH = this.translate.instant('length') + lengthStr;\n this.LOAD1 = this.translate.instant('load1') + loadStr;\n this.LOAD2 = this.translate.instant('load2') + loadStr;\n }\n\n public populateLineLoadsData = (liveLineLoads: any[], deadLineLoads: any[]): void => {\n this.lineLoadsData = [];\n if (deadLineLoads) {\n deadLineLoads.forEach(ll => this.lineLoadsData.push({\n 'Origin': ll.originLoad.location,\n 'Load_at_Origin': ll.originLoad.value,\n 'Width': (ll.endLoad.location - ll.originLoad.location), // Width = end - origin\n 'Load_at_End': ll.endLoad.value,\n 'Id': ll.id,\n 'OriginLoadId': ll.originLoad.id,\n 'EndLoadId': ll.endLoad.id,\n 'Type': this.DEADLOAD,\n 'GridId': this.generateRowId(),\n }));\n }\n if (liveLineLoads) {\n liveLineLoads.forEach(ll => this.lineLoadsData.push({\n 'Origin': ll.originLoad.location,\n 'Load_at_Origin': ll.originLoad.value,\n 'Width': (ll.endLoad.location - ll.originLoad.location), // Width = end - origin\n 'Load_at_End': ll.endLoad.value,\n 'Id': ll.id,\n 'OriginLoadId': ll.originLoad.id,\n 'EndLoadId': ll.endLoad.id,\n 'Type': this.LIVELOAD,\n 'GridId': this.generateRowId(),\n }));\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const liveLineLoads: SimpleChange = changes.liveLineLoads;\n const deadLineLoads: SimpleChange = changes.deadLineLoads;\n this.lineLoadsData = [];\n if (deadLineLoads) {\n deadLineLoads.currentValue.forEach(ll => this.lineLoadsData.push({\n 'Origin': ll.originLoad.location,\n 'Load_at_Origin': ll.originLoad.value,\n 'Width': (ll.endLoad.location - ll.originLoad.location), // Width = end - origin\n 'Load_at_End': ll.endLoad.value,\n 'Id': ll.id,\n 'OriginLoadId': ll.originLoad.id,\n 'EndLoadId': ll.endLoad.id,\n 'Type': this.DEADLOAD,\n 'GridId': this.generateRowId(),\n }));\n }\n if (liveLineLoads) {\n liveLineLoads.currentValue.forEach(ll => this.lineLoadsData.push({\n 'Origin': ll.originLoad.location,\n 'Load_at_Origin': ll.originLoad.value,\n 'Width': (ll.endLoad.location - ll.originLoad.location), // Width = end - origin\n 'Load_at_End': ll.endLoad.value,\n 'Id': ll.id,\n 'OriginLoadId': ll.originLoad.id,\n 'EndLoadId': ll.endLoad.id,\n 'Type': this.LIVELOAD,\n 'GridId': this.generateRowId(),\n }));\n }\n }\n\n public addHandler({ sender }) {\n this.closeEditor(sender);\n this.formGroup = new FormGroup({\n 'Origin': new FormControl(0,\n Validators.compose([Validators.required,\n CustomValidators.min(0),\n Validators.pattern(/^\\d{1,5}(\\.\\d{1,4})?$/)])),\n 'Load_at_Origin': new FormControl(0,\n Validators.compose([Validators.required,\n CustomValidators.min(0),\n Validators.pattern(/^\\d{1,6}(\\.\\d{1,4})?$/)])),\n 'Width': new FormControl(0,\n Validators.compose([Validators.required,\n CustomValidators.min(0),\n Validators.pattern(/^\\d{1,5}(\\.\\d{1,4})?$/)])),\n 'Load_at_End': new FormControl(0,\n Validators.compose([Validators.required,\n CustomValidators.min(0),\n Validators.pattern(/^\\d{1,6}(\\.\\d{1,4})?$/)])),\n 'Id': new FormControl(),\n 'OriginLoadId': new FormControl(),\n 'EndLoadId': new FormControl(),\n 'Type': new FormControl(this.DEADLOAD, Validators.required),\n 'GridId': new FormControl(this.generateRowId()),\n });\n sender.addRow(this.formGroup);\n }\n\n public editHandler({ sender, rowIndex, dataItem }) {\n this.closeEditor(sender);\n this.formGroup = new FormGroup({\n 'Origin': new FormControl(dataItem.Origin,\n Validators.compose([Validators.required, CustomValidators.min(0),\n Validators.pattern(/^\\d{1,5}(\\.\\d{1,4})?$/)])),\n 'Load_at_Origin': new FormControl(dataItem.Load_at_Origin,\n Validators.compose([Validators.required, CustomValidators.min(0),\n Validators.pattern(/^\\d{1,6}(\\.\\d{1,4})?$/)])),\n 'Width': new FormControl(dataItem.Width,\n Validators.compose([Validators.required, CustomValidators.min(0),\n Validators.pattern(/^\\d{1,5}(\\.\\d{1,4})?$/)])),\n 'Load_at_End': new FormControl(dataItem.Load_at_End,\n Validators.compose([Validators.required, CustomValidators.min(0),\n Validators.pattern(/^\\d{1,6}(\\.\\d{1,4})?$/)])),\n 'Id': new FormControl(dataItem.Id),\n 'OriginLoadId': new FormControl(dataItem.OriginLoadId),\n 'EndLoadId': new FormControl(dataItem.EndLoadId),\n 'Type': new FormControl(dataItem.Type, Validators.required),\n 'GridId': new FormControl(dataItem.GridId),\n });\n sender.editRow(rowIndex, this.formGroup);\n }\n\n\n public cancelHandler({ sender, rowIndex }) {\n this.closeEditor(sender, rowIndex);\n }\n\n public closeEditor(grid, rowIndex = this.editedRowIndex) {\n grid.closeRow(rowIndex);\n this.editedRowIndex = undefined;\n }\n\n public saveHandler({ sender, rowIndex, formGroup, isNew }) {\n const editedItem = formGroup.value;\n if (editedItem.Origin > this.beamLength || (editedItem.Origin + editedItem.Width) > this.beamLength) {\n this.sharedService.popFailure('check-location');\n return;\n }\n\n if (this.lineLoadsData.filter(l => (l.Type === editedItem.Type)\n && (l.GridId !== editedItem.GridId)).length >= this.MAXLINELOADS) {\n sender.closeRow(rowIndex);\n this.sharedService.popFailure('reached-limit-of-records');\n return;\n }\n\n if (!isNew) {\n const index = this.lineLoadsData.findIndex(l => l.GridId === editedItem.GridId);\n this.lineLoadsData.splice(index, 1, editedItem);\n } else {\n this.lineLoadsData.push(editedItem);\n }\n this.updateLoadData();\n sender.closeRow(rowIndex);\n }\n\n public removeHandler({ dataItem }) {\n const index = this.lineLoadsData.findIndex(p => p.GridId === dataItem.GridId);\n if (index >= 0) {\n this.lineLoadsData.splice(index, 1);\n this.updateLoadData();\n }\n }\n\n private updateLoadData() {\n this.deadLineLoads = [];\n this.liveLineLoads = [];\n for (const lineLoad of this.lineLoadsData) {\n if (lineLoad.Type === this.LIVELOAD) {\n this.liveLineLoads.push({\n 'id': lineLoad.Id,\n 'endLoad': {\n 'id': lineLoad.EndLoadId,\n 'location': lineLoad.Origin + lineLoad.Width,\n 'value': lineLoad.Load_at_End\n },\n 'originLoad': {\n 'id': lineLoad.OriginLoadId,\n 'location': lineLoad.Origin,\n 'value': lineLoad.Load_at_Origin\n }\n });\n } else {\n this.deadLineLoads.push({\n 'id': lineLoad.Id,\n 'endLoad': {\n 'id': lineLoad.EndLoadId,\n 'location': lineLoad.Origin + lineLoad.Width,\n 'value': lineLoad.Load_at_End\n },\n 'originLoad': {\n 'id': lineLoad.OriginLoadId,\n 'location': lineLoad.Origin,\n 'value': lineLoad.Load_at_Origin\n }\n });\n }\n }\n this.lineLoadsUpdated.emit({\n liveLineLoads: this.liveLineLoads,\n deadLineLoads: this.deadLineLoads\n });\n }\n\n private generateRowId() {\n return Math.floor(Math.random() * Date.now());\n }\n}\n","export default \".k-button {\\n color: #757275;\\n width: 32px;\\n height: 32px;\\n line-height: 34px;\\n font-size: 1.6em;\\n text-align: center;\\n border-width: 0px;\\n background-color: inherit; }\\n\\n.k-list .k-item.k-state-selected {\\n background-color: #671C3E; }\\n\\n.k-dropdown {\\n -webkit-appearance: none;\\n border: 1px solid #DDDDDD; }\\n\\n.k-gird tr {\\n word-wrap: break-word;\\n white-space: initial; }\\n\\n.k-gird td {\\n word-wrap: break-word;\\n white-space: initial; }\\n\\n.k-gird th {\\n word-wrap: break-word;\\n white-space: initial; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9idWlsZHMvYnUtZi1wcy9zaGVhci1jb25uZWN0b3IvZGVwbG95L2NvZGUvaHZiLXdlYi9odmItYXBwL3NyYy9hcHAvc3VicHJvamVjdC9wb2ludGxvYWRzL3BvaW50bG9hZHMuY29tcG9uZW50LnNjc3MiLCIvYnVpbGRzL2J1LWYtcHMvc2hlYXItY29ubmVjdG9yL2RlcGxveS9jb2RlL2h2Yi13ZWIvaHZiLWFwcC9ub2RlX21vZHVsZXMvaGlsdGktdWktbGlicmFyeS9hc3NldHMvc2Fzcy9faHVpLWNvbG9ycy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBO0VBQ0ksZUNhbUI7RURabkIsWUFBVTtFQUNWLGFBQVk7RUFDWixrQkFBZ0I7RUFDaEIsaUJBQWU7RUFDZixtQkFBaUI7RUFDakIsa0JBQWlCO0VBQ2pCLDBCQUF5QixFQUM1Qjs7QUFDRDtFQUNJLDBCQ1lrQixFRFhyQjs7QUFDRDtFQUNJLHlCQUF3QjtFQUN4QiwwQkFBeUIsRUFDNUI7O0FBR0Q7RUFDSSxzQkFBcUI7RUFDckIscUJBQW9CLEVBQ3ZCOztBQUVEO0VBQ0ksc0JBQXFCO0VBQ3JCLHFCQUFvQixFQUN2Qjs7QUFFRDtFQUNJLHNCQUFxQjtFQUNyQixxQkFBb0IsRUFDdkIiLCJmaWxlIjoic3JjL2FwcC9zdWJwcm9qZWN0L3BvaW50bG9hZHMvcG9pbnRsb2Fkcy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIkBpbXBvcnQgJy4uLy4uLy4uL3ZhcmlhYmxlcyc7XG4uay1idXR0b257XG4gICAgY29sb3I6ICRodWktc3RlZWwtLTgwO1xuICAgIHdpZHRoOjMycHg7XG4gICAgaGVpZ2h0OiAzMnB4O1xuICAgIGxpbmUtaGVpZ2h0OjM0cHg7XG4gICAgZm9udC1zaXplOjEuNmVtO1xuICAgIHRleHQtYWxpZ246Y2VudGVyO1xuICAgIGJvcmRlci13aWR0aDogMHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG59XG4uay1saXN0IC5rLWl0ZW0uay1zdGF0ZS1zZWxlY3RlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGh1aS1idXJndW5keTtcbn1cbi5rLWRyb3Bkb3duIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI0RERERERDtcbn1cblxuXG4uay1naXJkIHRye1xuICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgICB3aGl0ZS1zcGFjZTogaW5pdGlhbDtcbn1cblxuLmstZ2lyZCB0ZHtcbiAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgd2hpdGUtc3BhY2U6IGluaXRpYWw7XG59XG5cbi5rLWdpcmQgdGh7XG4gICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAgIHdoaXRlLXNwYWNlOiBpbml0aWFsO1xufVxuIiwiLy9Db2xvcnNcbi8vVE9ETzogcmVtb3ZlIHByZWZpeCBodWkgaW4gY29sb3JzIHZhcmlhYmxlXG4kaHVpLWhpbHRpLXJlZDogI0QyMDUxRTtcbiRodWktZGFyay1yZWQ6ICNBQjAxMTU7XG4kaHVpLWVycm9yLXJlZDogI0ZGMDAwMDtcbiRodWktaGVhdnktY29uY3JldGUtLTEwOiAjRjNGMkYwO1xuJGh1aS1oZWF2eS1jb25jcmV0ZS0tMjA6ICNFN0U1RTI7XG4kaHVpLWhlYXZ5LWNvbmNyZXRlLS0zMDogI0RCRDhEMztcbiRodWktaGVhdnktY29uY3JldGUtLTQwOiAjQ0ZDQ0M1O1xuJGh1aS1oZWF2eS1jb25jcmV0ZS0tNjA6ICNCN0IzQUE7XG4kaHVpLWhlYXZ5LWNvbmNyZXRlLS04MDogI0EwOTk4QjtcbiRodWktc3RlZWw6ICM1MjRGNTM7XG4kaHVpLXN0ZWVsLS0yMDogI0RERENERDtcbiRodWktc3RlZWwtLTQwOiAjQkFCOUJBO1xuJGh1aS1zdGVlbC0tNjA6ICM5Nzk1OTg7XG4kaHVpLXN0ZWVsLS04MDogIzc1NzI3NTtcbiRodWktd2hpdGU6ICNGRkY7XG4kaHVpLWJsYWNrOiAjMDAwO1xuJGh1aS1ibGFjay0tOTA6ICMxOTE5MTk7XG4kaHVpLWJsYWNrLS00MDogIzk5OTk5OTtcbiRodWktZ3JlZW46ICMxOUFGMzc7XG4kaHVpLWdyZWVuLS00MDogI0EzREZBRjtcbiRodWktZGFyay1ibHVlOiAjMDA1Rjk2O1xuXG4kaHVpLWJ1cmd1bmR5OiAjNjcxQzNFO1xuXG4kY3RhOiAkaHVpLWhpbHRpLXJlZDtcbiRwcmltYXJ5OiAkaHVpLXN0ZWVsO1xuJHNlY29uZGFyeTogJGh1aS1oZWF2eS1jb25jcmV0ZS0tMjA7XG4kc3VjY2VzczogIzE5QUYzNztcbiRkYW5nZXI6ICNGRjAwMDA7XG4kd2FybmluZzogI0ZGQUYwMDtcblxuJHRoZW1lLWNvbG9yczogKFxuICBcImN0YVwiOiAkY3RhLFxuICBcImhlYXZ5LWNvbmNyZXRlLS0xMFwiOiAkaHVpLWhlYXZ5LWNvbmNyZXRlLS0xMCxcbiAgXCJoZWF2eS1jb25jcmV0ZS0tMjBcIjogJGh1aS1oZWF2eS1jb25jcmV0ZS0tMjAsXG4pO1xuIl19 */\"","import { UserService } from './../../service/common/user.service';\nimport { Component, Input, Output, EventEmitter, OnChanges, SimpleChanges, SimpleChange, OnInit } from '@angular/core';\nimport { Validators, FormBuilder, FormGroup, FormControl } from '@angular/forms';\nimport { GridDataResult } from '@progress/kendo-angular-grid';\nimport { State, process } from '@progress/kendo-data-query';\nimport { TranslateService } from '@ngx-translate/core';\n\nimport { SharedService } from '../../service/common/shared.service';\nimport { UnitSystem } from 'app/models/models';\n\n@Component({\n selector: 'point-loads',\n templateUrl: './pointloads.component.html',\n styleUrls: ['./pointloads.component.scss']\n})\nexport class PointloadsComponent implements OnChanges, OnInit {\n public DEADLOAD = this.translate.instant('load-dead');\n public LIVELOAD = this.translate.instant('load-live');\n public POSITION: string;\n public LOAD0: string;\n public MAXPOINTLOADS = 10;\n @Input()\n public forceUnitTitle: string;\n @Input()\n public lengthUnitTitle: string;\n @Input()\n public livePointLoads: any[];\n @Input()\n public deadPointLoads: any[];\n @Input()\n public beamLength: number;\n public pointLoadsData: any[];\n public loadType = [];\n private editedRowIndex: number;\n public formGroup: FormGroup;\n private forceFactor: number;\n @Output()\n public pointLoadsUpdated: EventEmitter = new EventEmitter();\n constructor(private sharedService: SharedService,\n private user: UserService,\n private translate: TranslateService) {\n this.loadType = [this.DEADLOAD, this.LIVELOAD];\n this.pointLoadsData = [];\n }\n\n ngOnInit() {\n this.pointLoadsData = [];\n this.populatePointLoadsData(this.livePointLoads, this.deadPointLoads);\n const loadStr = ' (' + this.forceUnitTitle + ')';\n const lengthStr = ' (' + this.lengthUnitTitle + ')';\n this.POSITION = this.translate.instant('position') + lengthStr;\n this.LOAD0 = this.translate.instant('load0') + loadStr;\n }\n\n populatePointLoadsData = (livePointLoads: any[], deadPointLoads: any[]): void => {\n this.pointLoadsData = [];\n deadPointLoads.forEach(pl => this.pointLoadsData.push({\n 'Load_Position': pl.location,\n 'Load': pl.value,\n 'Id': pl.id,\n 'Type': this.DEADLOAD,\n 'GridId': this.generateRowId(),\n }));\n livePointLoads.forEach(pl => this.pointLoadsData.push({\n 'Load_Position': pl.location,\n 'Load': pl.value,\n 'Id': pl.id,\n 'Type': this.LIVELOAD,\n 'GridId': this.generateRowId(),\n }));\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const livePointLoads: SimpleChange = changes.livePointLoads;\n const deadPointLoads: SimpleChange = changes.deadPointLoads;\n this.pointLoadsData = [];\n if (deadPointLoads) {\n deadPointLoads.currentValue.forEach(pl => this.pointLoadsData.push({\n 'Load_Position': pl.location,\n 'Load': pl.value,\n 'Id': pl.id,\n 'Type': this.DEADLOAD,\n 'GridId': this.generateRowId(),\n }));\n }\n if (livePointLoads) {\n livePointLoads.currentValue.forEach(pl => this.pointLoadsData.push({\n 'Load_Position': pl.location,\n 'Load': pl.value,\n 'Id': pl.id,\n 'Type': this.LIVELOAD,\n 'GridId': this.generateRowId(),\n }));\n }\n }\n\n public addHandler({ sender }) {\n this.closeEditor(sender);\n this.formGroup = new FormGroup({\n 'Load_Position': new FormControl(0, Validators.compose([Validators.required,\n Validators.pattern(/^\\d{1,5}(\\.\\d{1,4})?$/)])),\n 'Load': new FormControl(0, Validators.compose([Validators.required,\n Validators.pattern(/^\\d{1,6}(\\.\\d{1,4})?$/)])),\n 'Id': new FormControl(),\n 'Type': new FormControl(this.DEADLOAD, Validators.required),\n 'GridId': new FormControl(this.generateRowId()),\n });\n sender.addRow(this.formGroup);\n }\n\n public editHandler({ sender, rowIndex, dataItem }) {\n this.closeEditor(sender);\n this.formGroup = new FormGroup({\n 'Load_Position': new FormControl(dataItem.Load_Position,\n Validators.compose([Validators.required, Validators.pattern(/^\\d{1,5}(\\.\\d{1,4})?$/)])),\n 'Load': new FormControl(dataItem.Load,\n Validators.compose([Validators.required,\n Validators.pattern(/^\\d{1,6}(\\.\\d{1,4})?$/)])),\n 'Id': new FormControl(dataItem.Id),\n 'Type': new FormControl(dataItem.Type, Validators.required),\n 'GridId': new FormControl(dataItem.GridId),\n });\n sender.editRow(rowIndex, this.formGroup);\n }\n\n public cancelHandler({ sender, rowIndex }) {\n this.closeEditor(sender, rowIndex);\n }\n\n public closeEditor(grid, rowIndex = this.editedRowIndex) {\n grid.closeRow(rowIndex);\n this.editedRowIndex = undefined;\n }\n\n public saveHandler({ sender, rowIndex, formGroup, isNew }) {\n const editedItem = formGroup.value;\n if (editedItem.Load_Position > this.beamLength) {\n this.sharedService.popFailure('check-location');\n return;\n }\n\n if (this.pointLoadsData.filter(l => (l.Type === editedItem.Type)\n && (l.GridId !== editedItem.GridId)).length >= this.MAXPOINTLOADS) {\n sender.closeRow(rowIndex);\n this.sharedService.popFailure('reached-limit-of-records');\n return;\n }\n\n this.deadPointLoads = [];\n this.livePointLoads = [];\n if (!isNew) {\n const index = this.pointLoadsData.findIndex(l => l.GridId === editedItem.GridId);\n this.pointLoadsData.splice(index, 1, editedItem);\n } else {\n this.pointLoadsData.push(editedItem);\n }\n for (const pointLoad of this.pointLoadsData) {\n if (pointLoad.Type === this.LIVELOAD) {\n this.livePointLoads.push({\n id: pointLoad.Id,\n location: pointLoad.Load_Position,\n value: pointLoad.Load\n });\n } else {\n this.deadPointLoads.push({\n id: pointLoad.Id,\n location: pointLoad.Load_Position,\n value: pointLoad.Load\n });\n }\n }\n this.pointLoadsUpdated.emit({\n livePointLoads: this.livePointLoads,\n deadPointLoads: this.deadPointLoads\n });\n sender.closeRow(rowIndex);\n }\n\n public removeHandler({ dataItem }) {\n const index = this.pointLoadsData.findIndex(p => p.GridId === dataItem.GridId);\n if (index >= 0) {\n this.pointLoadsData.splice(index, 1);\n this.updateLoadData();\n }\n }\n\n private updateLoadData() {\n this.deadPointLoads = [];\n this.livePointLoads = [];\n for (const pointLoad of this.pointLoadsData) {\n if (pointLoad.Type === this.LIVELOAD) {\n this.livePointLoads.push({\n id: pointLoad.Id,\n location: pointLoad.Load_Position,\n value: pointLoad.Load\n });\n } else {\n this.deadPointLoads.push({\n id: pointLoad.Id,\n location: pointLoad.Load_Position,\n value: pointLoad.Load\n });\n }\n }\n this.pointLoadsUpdated.emit({\n livePointLoads: this.livePointLoads,\n deadPointLoads: this.deadPointLoads\n });\n }\n\n private generateRowId() {\n return Math.floor(Math.random() * Date.now());\n }\n}\n","export default \".k-grid-toolbar {\\n padding: 3px 3px;\\n background-color: #EFEBE5; }\\n\\n.action-button {\\n color: white;\\n cursor: pointer;\\n position: relative;\\n text-align: left;\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n height: 34px;\\n width: 34px;\\n padding: 0;\\n border-radius: 0;\\n margin-left: 5px; }\\n\\n.action-button :first-child {\\n position: absolute;\\n left: 0;\\n top: 0;\\n bottom: 0;\\n width: 32px;\\n height: 32px;\\n line-height: 34px;\\n font-size: 1.6em;\\n text-align: center; }\\n\\n.action-button :hover {\\n background-color: white; }\\n\\n.info {\\n margin-left: 10px;\\n font-style: italic; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9idWlsZHMvYnUtZi1wcy9zaGVhci1jb25uZWN0b3IvZGVwbG95L2NvZGUvaHZiLXdlYi9odmItYXBwL3NyYy9hcHAvc3VicHJvamVjdC9zdWItcHJvamVjdC1saXN0LWNvbXBvbmVudC5zY3NzIiwiL2J1aWxkcy9idS1mLXBzL3NoZWFyLWNvbm5lY3Rvci9kZXBsb3kvY29kZS9odmItd2ViL2h2Yi1hcHAvc3JjL192YXJpYWJsZXMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQTtFQUNJLGlCQUFnQjtFQUNoQiwwQkNBOEIsRURDakM7O0FBQ0Q7RUFDSSxhQUFZO0VBQ1osZ0JBQWU7RUFDZixtQkFBaUI7RUFDakIsaUJBQWU7RUFDZixvQkFBa0I7RUFDbEIsaUJBQWU7RUFDZix3QkFBc0I7RUFDdEIsYUFBVztFQUNYLFlBQVU7RUFDVixXQUFTO0VBQ1QsaUJBQWdCO0VBQ2hCLGlCQUFnQixFQWVuQjs7QUEzQkQ7SUFjUSxtQkFBaUI7SUFDakIsUUFBTTtJQUNOLE9BQUs7SUFDTCxVQUFRO0lBQ1IsWUFBVTtJQUNWLGFBQVk7SUFDWixrQkFBZ0I7SUFDaEIsaUJBQWU7SUFDZixtQkFBaUIsRUFDcEI7O0FBdkJMO0lBeUJRLHdCQUFzQixFQUN6Qjs7QUFHTDtFQUNJLGtCQUFpQjtFQUNqQixtQkFBa0IsRUFDckIiLCJmaWxlIjoic3JjL2FwcC9zdWJwcm9qZWN0L3N1Yi1wcm9qZWN0LWxpc3QtY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAaW1wb3J0ICcuLi8uLi92YXJpYWJsZXMnO1xuLmstZ3JpZC10b29sYmFyIHtcbiAgICBwYWRkaW5nOiAzcHggM3B4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRoaWx0aS1jb25jcmV0ZS1saWdodGVuLTI7XG59XG4uYWN0aW9uLWJ1dHRvbiB7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBwb3NpdGlvbjpyZWxhdGl2ZTtcbiAgICB0ZXh0LWFsaWduOmxlZnQ7XG4gICAgd2hpdGUtc3BhY2U6bm93cmFwO1xuICAgIG92ZXJmbG93OmhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO1xuICAgIGhlaWdodDozNHB4O1xuICAgIHdpZHRoOjM0cHg7XG4gICAgcGFkZGluZzowO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgICA6Zmlyc3QtY2hpbGQge1xuICAgICAgICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgICAgICAgbGVmdDowO1xuICAgICAgICB0b3A6MDtcbiAgICAgICAgYm90dG9tOjA7XG4gICAgICAgIHdpZHRoOjMycHg7XG4gICAgICAgIGhlaWdodDogMzJweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6MzRweDtcbiAgICAgICAgZm9udC1zaXplOjEuNmVtO1xuICAgICAgICB0ZXh0LWFsaWduOmNlbnRlcjtcbiAgICB9XG4gICAgOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtcbiAgICB9XG59XG5cbi5pbmZvIHtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG4iLCJAaW1wb3J0IFwiLi9ub2RlX21vZHVsZXMvaGlsdGktdWktbGlicmFyeS9hc3NldHMvc2Fzcy9odWktY29sb3JzXCI7XG4kaGlsdGktY29uY3JldGU6ICRodWktaGVhdnktY29uY3JldGUtLTQwO1xuJGhpbHRpLWNvbmNyZXRlLWxpZ2h0ZW4tMTogJGh1aS1oZWF2eS1jb25jcmV0ZS0tNDA7XG4kaGlsdGktY29uY3JldGUtbGlnaHRlbi0yOiAjRUZFQkU1O1xuJGhpbHRpLWNvbmNyZXRlLWRhcmtlbi0yOiAjODg3RjZFO1xuJGhpbHRpLXN0ZWVsOiAjNTM0RjUzO1xuJGhpbHRpLXN0ZWVsLWxpZ2h0ZW4tMTogIzk5OTk5OTtcbiRoaWx0aS1zdGVlbC1saWdodGVuLTI6ICNEREREREQ7XG4kaGlsdGktcmViZWwtYmx1ZTogIzM4ODBCMDtcbiRoaWx0aS1yZWJlbC1ibHVlLWxpZ2h0ZW4tMTogI0NDREZFQjtcbiRoaWx0aS1saWdodC1ncmV5OiAjRkFGQUZBO1xuJGhpbHRpLXJlZDogJGh1aS1oaWx0aS1yZWQ7XG4kaGlsdGktcGxhY2Vob2xkZXI6ICNkN2Q3ZDc7XG4kaGlsdGktaG92ZXI6ICNGM0YyRjA7XG4kaGlsdGktc2VsZWN0ZWQ6ICNEOEQ4RDg7XG4kaGlsdGktZGlzYWJsZWQ6ICNFN0U1RTE7XG4kdGFic3RyaXAtY29udGVudC1wYWRkaW5nLXg6IDBweDtcbiR0YWJzdHJpcC1jb250ZW50LXBhZGRpbmcteTogMHB4O1xuJHRhYnN0cmlwLWNvbnRlbnQtYm9yZGVyLXdpZHRoOiAwcHg7XG4kZ3JpZC1oZWFkZXItYmc6IHdoaXRlO1xuJGdyaWQtYm9yZGVyOiByZ2JhKCRodWktaGVhdnktY29uY3JldGUtLTIwLCAwKTtcbiRncmlkLWhlYWRlci1ib3JkZXI6IHJnYmEoJGh1aS1oZWF2eS1jb25jcmV0ZS0tMjAsIDEpO1xuJGdyaWQtYWx0LWJnOiByZ2JhKHdoaXRlLCAwKTtcbiRncmlkLWhvdmVyZWQtYmc6ICRodWktc3RlZWwtLTIwO1xuIl19 */\"","import { AfterViewChecked, Component, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { SortDescriptor } from '@progress/kendo-data-query';\nimport * as _ from 'lodash';\nimport { Subject, Subscription } from 'rxjs';\nimport { UserService } from '../service/common/user.service';\nimport { SubProjectService } from '../subproject/sub-project.service';\nimport * as models from './../models/models';\nimport { ProjectService } from './../project/project.service';\nimport { SharedService } from './../service/common/shared.service';\nimport { SubProjectStatus } from './sub-project-status';\n@Component({\n selector: 'sub-project-list',\n templateUrl: './sub-project-list.component.html',\n styleUrls: ['./sub-project-list-component.scss']\n})\nexport class SubProjectListComponent implements OnInit, OnDestroy, AfterViewChecked {\n @Input()\n public project: any;\n @Input()\n public newenabled = false;\n @Input()\n public selectProjectEvent: any;\n @Input()\n public showDeleteButton = true;\n @Input()\n public selectedProjects: Map = new Map();\n @Input()\n public updateListEvent?: Subject;\n @Input()\n public subprojects?: models.SubProject[];\n\n @Output()\n select = new EventEmitter();\n\n public showNewSubProjectDialog = false;\n public newSubProjectName: string;\n public language: string;\n public selectedSubProjectNames: string[];\n public selectedSubProjectIds: number[];\n public showDeleteDialog: boolean;\n public locale: string;\n public sort: SortDescriptor[] = [];\n public gridView: any;\n public skip = 0;\n public pazeSize = 4;\n public isProjectSelected: boolean;\n public disableCreateButton: boolean;\n private updateListSubscription: Subscription;\n\n\n constructor(private service: ProjectService,\n public translate: TranslateService,\n private subProjectService: SubProjectService,\n private router: Router,\n private sharedService: SharedService,\n private user: UserService,\n public myElement: ElementRef) {\n this.selectedSubProjectIds = [];\n this.selectedSubProjectNames = [];\n this.isProjectSelected = false;\n this.disableCreateButton = false;\n }\n\n public ngOnInit(): void {\n if (!this.subprojects) {\n this.loadSubprojects();\n }\n else {\n this.gridView = this.subprojects;\n if (this.selectedProjects.has(this.project.id)) {\n if (this.selectedProjects.get(this.project.id).selected) {\n this.isProjectSelected = true;\n }\n }\n }\n\n this.language = this.user.defaultSettings && this.user.defaultSettings.language ? this.user.defaultSettings.language :\n window.navigator.language;\n this.locale = window.navigator.language; // The date formats will be displayed in browser's locale always\n if (this.updateListEvent) {\n this.updateListSubscription = this.updateListEvent.subscribe(() => {\n this.loadSubprojects();\n });\n }\n }\n\n private loadSubprojects(): void {\n if (this.project.id) {\n this.service.getsubProjects(this.project.id)\n .subscribe(data => {\n data.subProjects.map(this.mapDate);\n this.gridView = data.subProjects;\n if (this.selectedProjects.has(this.project.id)) {\n if (this.selectedProjects.get(this.project.id).selected) {\n this.isProjectSelected = true;\n }\n }\n });\n }\n }\n\n ngAfterViewChecked() {\n if (this.isProjectSelected) {\n this.isProjectSelected = false;\n const checkboxes = this.myElement.nativeElement.getElementsByClassName('k-checkbox');\n for (let i = 0; i < checkboxes.length; i++) {\n if (!checkboxes[i].checked) {\n checkboxes[i].click();\n }\n }\n } else if (this.selectProjectEvent) {\n if (this.selectProjectEvent.selectedRows.some(p => p.dataItem.id === this.project.id)) {\n const checkboxes = this.myElement.nativeElement.getElementsByClassName('k-checkbox');\n for (let i = 0; i < checkboxes.length; i++) {\n if (!checkboxes[i].checked) {\n checkboxes[i].click();\n }\n }\n } else if (this.selectProjectEvent.deselectedRows.some(p => p.dataItem.id === this.project.id)) {\n const checkboxes = this.myElement.nativeElement.getElementsByClassName('k-checkbox');\n for (let i = 0; i < checkboxes.length; i++) {\n if (checkboxes[i].checked) {\n checkboxes[i].click();\n }\n }\n }\n }\n }\n\n public mapDate(item): void {\n item.createdOn = new Date(item.createdOn);\n item.updatedOn = new Date(item.updatedOn);\n }\n\n public onSubProjectSelect(subProject) {\n this.router.navigate(['/subproject', { projectid: this.project.id, id: subProject.id }]);\n }\n\n public addNewSubProject() {\n this.newSubProjectName = '';\n this.showNewSubProjectDialog = true;\n }\n\n public createNewSubProjectAndOpen = (): void => {\n if (this.newSubProjectName && this.newSubProjectName.length >= 3) {\n this.disableCreateButton = true;\n this.sharedService.showLoader(true);\n this.subProjectService.createSubProject({\n projectId: this.project.id,\n name: this.newSubProjectName\n })\n .subscribe(\n (project) => {\n this.onNewSubProjectComplete(project);\n this.disableCreateButton = false;\n },\n (error: any) => {\n this.sharedService.popFailure(error);\n this.disableCreateButton = false;\n });\n }\n }\n\n public newSubProjectInvalid = (): boolean => {\n if (this.disableCreateButton) {\n return true;\n }\n const foundIndex = _.findIndex(this.gridView, (item) => {\n return ((item).name).toLowerCase() === this.newSubProjectName.toLowerCase();\n });\n return !this.newSubProjectName || this.newSubProjectName.length < 3 || foundIndex >= 0;\n }\n\n public onNewSubProjectComplete(subProject: models.SubProject) {\n this.router.navigate(['/subproject', { projectid: this.project.id, id: subProject.id, isNew: true }]);\n }\n\n public deleteSubProject(subProject) {\n this.showDeleteDialog = true;\n }\n\n public onDelete(ids: number[]) {\n this.setStatus(ids, SubProjectStatus.deleted);\n this.selectedSubProjectIds = [];\n this.selectedSubProjectNames = [];\n }\n\n private setStatus(id: number[], status: number): void {\n this.showDeleteDialog = false;\n this.subProjectService.setStatus(id, status)\n .subscribe(\n () => this.onSubProjectStatusChangeSuccess(status),\n (error: any) => this.sharedService.popFailure(error)\n );\n }\n\n private onSubProjectStatusChangeSuccess(status) {\n if (status === SubProjectStatus.deleted) {\n this.sharedService.popSuccess('sub-project-delete');\n }\n if (this.project.id) {\n this.service.getsubProjects(this.project.id)\n .subscribe(data => {\n data.subProjects.map(this.mapDate);\n this.gridView = data.subProjects;\n });\n }\n }\n\n\n public onSubProjectSelected(event: any) {\n if (event.deselectedRows.length > 0) {\n event.deselectedRows.forEach(row => {\n const nameIndex = this.selectedSubProjectNames.indexOf(row.dataItem.name);\n if (nameIndex > -1) {\n this.selectedSubProjectNames.splice(nameIndex, 1);\n }\n const idIndex = this.selectedSubProjectIds.indexOf(row.dataItem.id);\n if (idIndex > -1) {\n this.selectedSubProjectIds.splice(idIndex, 1);\n }\n });\n }\n if (event.selectedRows.length > 0) {\n event.selectedRows.forEach(row => {\n this.selectedSubProjectNames.push(row.dataItem.name);\n this.selectedSubProjectIds.push(row.dataItem.id);\n });\n }\n const subProjectCount = this.myElement.nativeElement.getElementsByClassName('k-checkbox').length;\n this.select.emit({ projectId: this.project.id, projectName: this.project.name, selectedSubProjectsIds: this.selectedSubProjectIds, subProjectCount: subProjectCount });\n }\n\n ngOnDestroy() {\n this.select.emit({ projectId: this.project.id, projectName: this.project.name, selectedSubProjectsIds: [], subProjectCount: 0 });\n if (this.updateListSubscription) {\n this.updateListSubscription.unsubscribe();\n }\n\n }\n}\n\n","import { Injectable } from '@angular/core';\nimport { CanDeactivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\nimport { SubProjectComponent } from './sub-project.component';\nimport { Observable } from 'rxjs';\n\n@Injectable()\nexport class SubProjectSaveGuard implements CanDeactivate {\n constructor() {\n\n }\n\n canDeactivate(component: SubProjectComponent,\n currentRoute: ActivatedRouteSnapshot,\n currentState: RouterStateSnapshot,\n nextState: RouterStateSnapshot): Observable | Promise | boolean {\n\n if (component.subProjectForm.dirty) {\n component.showSaveOnDestroyDialog = true;\n return component.$saveOnLeaveObs;\n } else {\n return true;\n }\n }\n}\n","export enum SubProjectStatus {\n active = 0,\n deleted = 1,\n}\n","export default \"#title {\\n letter-spacing: 0.5px;\\n font-size: 16px; }\\n\\n#title .btn {\\n letter-spacing: 0.5px;\\n font-size: 16px;\\n font-family: HiltiSmallBold; }\\n\\n#title .btn-link {\\n color: #534F53;\\n cursor: pointer;\\n font-family: HiltiSmallBold; }\\n\\n#title .btn-link :hover {\\n color: #534F53;\\n font-style: italic;\\n text-decoration: none; }\\n\\nsub {\\n bottom: -0.15em;\\n margin-left: 3px; }\\n\\nsup {\\n top: -1.5em !important;\\n left: 1.2rem; }\\n\\n.superscript {\\n vertical-align: super;\\n font-size: smaller;\\n line-height: normal; }\\n\\n.subProjectPanel {\\n padding-left: 0px;\\n padding-right: 0px;\\n min-width: 1040px;\\n width: 100%; }\\n\\ninput[type=\\\"radio\\\"]:focus {\\n outline: none; }\\n\\n.greekSymbol {\\n font-style: italic; }\\n\\n/deep/ .general-error > ul > li:nth-child(1) ::after {\\n color: red !important;\\n content: \\\"*\\\"; }\\n\\n/deep/ .geometry-error > ul > li:nth-child(2) ::after {\\n color: red !important;\\n content: \\\"*\\\"; }\\n\\n/deep/ .materials-error > ul > li:nth-child(3) ::after {\\n color: red !important;\\n content: \\\"*\\\"; }\\n\\n/deep/ .slab-error > ul > li:nth-child(4) ::after {\\n color: red !important;\\n content: \\\"*\\\"; }\\n\\n/deep/ .loads-error > ul > li:nth-child(5) ::after {\\n color: red !important;\\n content: \\\"*\\\"; }\\n\\n/deep/ .shearconnection-error > ul > li:nth-child(6) ::after {\\n color: red !important;\\n content: \\\"*\\\"; }\\n\\n/deep/ .deformations-error > ul > li:nth-child(7) ::after {\\n color: red !important;\\n content: \\\"*\\\"; }\\n\\n.k-grid-header .k-header {\\n white-space: normal; }\\n\\n.k-grid th {\\n white-space: normal; }\\n\\n.k-header {\\n white-space: normal; }\\n\\n.k-checkbox:checked + .k-checkbox-label::before {\\n background-color: #0275d8;\\n border-color: #0275d8; }\\n\\n.k-checkbox-label::before {\\n border-color: grey; }\\n\\n.w-15 {\\n width: 15% !important; }\\n\\n.panel {\\n padding-top: 3em; }\\n\\n.section-header {\\n font-size: 1.3em;\\n color: black;\\n font-weight: bold;\\n padding: 10px;\\n border-bottom: 1px solid #DBD8D3; }\\n\\n.section-content {\\n border-bottom: 1px solid #DBD8D3;\\n padding: 15px; }\\n\\n.calculation-actions button {\\n padding: 10px;\\n font-size: 1.1em;\\n color: #005F96;\\n font-weight: bold;\\n background-color: inherit;\\n border-width: 0px; }\\n\\n.calculation-actions button:disabled {\\n color: #BAB9BA; }\\n\\n.calculation-actions button:not([disabled]):hover {\\n color: #005F96;\\n font-weight: bold;\\n background-color: #DDDCDD;\\n text-decoration: none; }\\n\\n.calculation-actions button:focus {\\n outline: none; }\\n\\n#additionalLoad {\\n margin-bottom: 40px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9idWlsZHMvYnUtZi1wcy9zaGVhci1jb25uZWN0b3IvZGVwbG95L2NvZGUvaHZiLXdlYi9odmItYXBwL3NyYy9hcHAvc3VicHJvamVjdC9zdWItcHJvamVjdC5jb21wb25lbnQuc2NzcyIsIi9idWlsZHMvYnUtZi1wcy9zaGVhci1jb25uZWN0b3IvZGVwbG95L2NvZGUvaHZiLXdlYi9odmItYXBwL3NyYy9fdmFyaWFibGVzLnNjc3MiLCIvYnVpbGRzL2J1LWYtcHMvc2hlYXItY29ubmVjdG9yL2RlcGxveS9jb2RlL2h2Yi13ZWIvaHZiLWFwcC9ub2RlX21vZHVsZXMvaGlsdGktdWktbGlicmFyeS9hc3NldHMvc2Fzcy9faHVpLWNvbG9ycy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBO0VBQ0Usc0JBQXFCO0VBQ3JCLGdCQUFlLEVBQ2hCOztBQUNEO0VBQ0Usc0JBQXFCO0VBQ3JCLGdCQUFlO0VBQ2YsNEJBQTJCLEVBQzVCOztBQUNEO0VBQ0UsZUNObUI7RURPbkIsZ0JBQWU7RUFDZiw0QkFBMkIsRUFNNUI7O0FBVEQ7SUFLSSxlQ1ZpQjtJRFdqQixtQkFBa0I7SUFDbEIsc0JBQXFCLEVBQ3RCOztBQUdIO0VBQ0UsZ0JBQWU7RUFDZixpQkFBZ0IsRUFDakI7O0FBQ0Q7RUFDRSx1QkFBc0I7RUFDdEIsYUFBWSxFQUNiOztBQUVEO0VBQ0Usc0JBQXFCO0VBQ3JCLG1CQUFrQjtFQUNsQixvQkFBbUIsRUFDcEI7O0FBRUQ7RUFDRSxrQkFBaUI7RUFDakIsbUJBQWtCO0VBQ2xCLGtCQUFpQjtFQUNqQixZQUFXLEVBQ1o7O0FBRUQ7RUFDRSxjQUFhLEVBQ2Q7O0FBQ0Q7RUFDRSxtQkFDRixFQUFDOztBQUVEO0VBRUksc0JBQXFCO0VBQ3JCLGFBQVksRUFDYjs7QUFHSDtFQUVJLHNCQUFxQjtFQUNyQixhQUFZLEVBQ2I7O0FBR0g7RUFFSSxzQkFBcUI7RUFDckIsYUFBWSxFQUNiOztBQUdIO0VBRUksc0JBQXFCO0VBQ3JCLGFBQVksRUFDYjs7QUFHSDtFQUVJLHNCQUFxQjtFQUNyQixhQUFZLEVBQ2I7O0FBR0g7RUFFSSxzQkFBcUI7RUFDckIsYUFBWSxFQUNiOztBQUdIO0VBRUksc0JBQXFCO0VBQ3JCLGFBQVksRUFDYjs7QUFJSDtFQUNFLG9CQUFtQixFQUNwQjs7QUFFRDtFQUNFLG9CQUFtQixFQUNwQjs7QUFFRDtFQUNFLG9CQUFtQixFQUNwQjs7QUFFRDtFQUNFLDBCQUF3QjtFQUN4QixzQkFBcUIsRUFDdEI7O0FBQ0Q7RUFDRSxtQkFBbUIsRUFDcEI7O0FBR0Q7RUFDRSxzQkFBcUIsRUFDdEI7O0FBQ0Q7RUFDRSxpQkFBZ0IsRUFDakI7O0FBRUQ7RUFDRSxpQkFBZ0I7RUFDaEIsYUFBWTtFQUNaLGtCQUFpQjtFQUNqQixjQUFhO0VBQ2IsaUNFOUg4QixFRitIL0I7O0FBRUQ7RUFDRSxpQ0VsSThCO0VGbUk5QixjQUFhLEVBQ2Q7O0FBRUQ7RUFFSSxjQUFhO0VBQ2IsaUJBQWdCO0VBQ2hCLGVFM0htQjtFRjRIbkIsa0JBQWlCO0VBQ2pCLDBCQUF5QjtFQUN6QixrQkFBaUIsRUFJbEI7O0FBWEg7SUFTTSxlRXpJaUIsRUYwSWxCOztBQVZMO0VBYUksZUVwSW1CO0VGcUluQixrQkFBaUI7RUFDakIsMEJFaEptQjtFRmlKbkIsc0JBQXFCLEVBQ3RCOztBQWpCSDtFQW1CSSxjQUFhLEVBQ2Q7O0FBR0g7RUFDRSxvQkFBbUIsRUFDcEIiLCJmaWxlIjoic3JjL2FwcC9zdWJwcm9qZWN0L3N1Yi1wcm9qZWN0LmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCAnLi4vLi4vdmFyaWFibGVzJztcbiN0aXRsZSB7XG4gIGxldHRlci1zcGFjaW5nOiAwLjVweDtcbiAgZm9udC1zaXplOiAxNnB4O1xufVxuI3RpdGxlIC5idG4ge1xuICBsZXR0ZXItc3BhY2luZzogMC41cHg7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC1mYW1pbHk6IEhpbHRpU21hbGxCb2xkO1xufVxuI3RpdGxlIC5idG4tbGluayB7XG4gIGNvbG9yOiAkaGlsdGktc3RlZWw7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC1mYW1pbHk6IEhpbHRpU21hbGxCb2xkO1xuICA6aG92ZXIge1xuICAgIGNvbG9yOiAkaGlsdGktc3RlZWw7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxufVxuXG5zdWIge1xuICBib3R0b206IC0wLjE1ZW07XG4gIG1hcmdpbi1sZWZ0OiAzcHg7XG59XG5zdXAge1xuICB0b3A6IC0xLjVlbSAhaW1wb3J0YW50O1xuICBsZWZ0OiAxLjJyZW07XG59XG5cbi5zdXBlcnNjcmlwdCB7XG4gIHZlcnRpY2FsLWFsaWduOiBzdXBlcjtcbiAgZm9udC1zaXplOiBzbWFsbGVyO1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xufVxuXG4uc3ViUHJvamVjdFBhbmVsIHtcbiAgcGFkZGluZy1sZWZ0OiAwcHg7XG4gIHBhZGRpbmctcmlnaHQ6IDBweDtcbiAgbWluLXdpZHRoOiAxMDQwcHg7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG5pbnB1dFt0eXBlPVwicmFkaW9cIl06Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xufVxuLmdyZWVrU3ltYm9sIHtcbiAgZm9udC1zdHlsZTogaXRhbGljXG59XG5cbi9kZWVwLyAuZ2VuZXJhbC1lcnJvciA+IHVsID4gbGk6bnRoLWNoaWxkKDEpIHtcbiAgOjphZnRlciB7XG4gICAgY29sb3I6IHJlZCAhaW1wb3J0YW50O1xuICAgIGNvbnRlbnQ6IFwiKlwiO1xuICB9XG59XG5cbi9kZWVwLyAuZ2VvbWV0cnktZXJyb3IgPiB1bCA+IGxpOm50aC1jaGlsZCgyKSB7XG4gIDo6YWZ0ZXIge1xuICAgIGNvbG9yOiByZWQgIWltcG9ydGFudDtcbiAgICBjb250ZW50OiBcIipcIjtcbiAgfVxufVxuXG4vZGVlcC8gLm1hdGVyaWFscy1lcnJvciA+IHVsID4gbGk6bnRoLWNoaWxkKDMpIHtcbiAgOjphZnRlciB7XG4gICAgY29sb3I6IHJlZCAhaW1wb3J0YW50O1xuICAgIGNvbnRlbnQ6IFwiKlwiO1xuICB9XG59XG5cbi9kZWVwLyAuc2xhYi1lcnJvciA+IHVsID4gbGk6bnRoLWNoaWxkKDQpIHtcbiAgOjphZnRlciB7XG4gICAgY29sb3I6IHJlZCAhaW1wb3J0YW50O1xuICAgIGNvbnRlbnQ6IFwiKlwiO1xuICB9XG59XG5cbi9kZWVwLyAubG9hZHMtZXJyb3IgPiB1bCA+IGxpOm50aC1jaGlsZCg1KSB7XG4gIDo6YWZ0ZXIge1xuICAgIGNvbG9yOiByZWQgIWltcG9ydGFudDtcbiAgICBjb250ZW50OiBcIipcIjtcbiAgfVxufVxuXG4vZGVlcC8gLnNoZWFyY29ubmVjdGlvbi1lcnJvciA+IHVsID4gbGk6bnRoLWNoaWxkKDYpIHtcbiAgOjphZnRlciB7XG4gICAgY29sb3I6IHJlZCAhaW1wb3J0YW50O1xuICAgIGNvbnRlbnQ6IFwiKlwiO1xuICB9XG59XG5cbi9kZWVwLyAuZGVmb3JtYXRpb25zLWVycm9yID4gdWwgPiBsaTpudGgtY2hpbGQoNykge1xuICA6OmFmdGVyIHtcbiAgICBjb2xvcjogcmVkICFpbXBvcnRhbnQ7XG4gICAgY29udGVudDogXCIqXCI7XG4gIH1cbn1cblxuXG4uay1ncmlkLWhlYWRlciAuay1oZWFkZXIge1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xufVxuXG4uay1ncmlkIHRoIHtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbn1cblxuLmstaGVhZGVyIHtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbn1cblxuLmstY2hlY2tib3g6Y2hlY2tlZCArIC5rLWNoZWNrYm94LWxhYmVsOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiMwMjc1ZDg7XG4gIGJvcmRlci1jb2xvcjogIzAyNzVkODtcbn1cbi5rLWNoZWNrYm94LWxhYmVsOjpiZWZvcmUge1xuICBib3JkZXItY29sb3IgOiBncmV5O1xufVxuXG5cbi53LTE1IHtcbiAgd2lkdGg6IDE1JSAhaW1wb3J0YW50O1xufVxuLnBhbmVsIHtcbiAgcGFkZGluZy10b3A6IDNlbTtcbn1cblxuLnNlY3Rpb24taGVhZGVyIHtcbiAgZm9udC1zaXplOiAxLjNlbTtcbiAgY29sb3I6IGJsYWNrO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgcGFkZGluZzogMTBweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRodWktaGVhdnktY29uY3JldGUtLTMwO1xufVxuXG4uc2VjdGlvbi1jb250ZW50IHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRodWktaGVhdnktY29uY3JldGUtLTMwO1xuICBwYWRkaW5nOiAxNXB4O1xufVxuXG4uY2FsY3VsYXRpb24tYWN0aW9ucyB7XG4gIGJ1dHRvbiB7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICBmb250LXNpemU6IDEuMWVtO1xuICAgIGNvbG9yOiAkaHVpLWRhcmstYmx1ZTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICAgIGJvcmRlci13aWR0aDogMHB4O1xuICAgICY6ZGlzYWJsZWQge1xuICAgICAgY29sb3I6ICRodWktc3RlZWwtLTQwO1xuICAgIH1cbiAgfVxuICBidXR0b246bm90KFtkaXNhYmxlZF0pOmhvdmVyIHtcbiAgICBjb2xvcjogJGh1aS1kYXJrLWJsdWU7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGh1aS1zdGVlbC0tMjA7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG4gIGJ1dHRvbjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxufVxuXG4jYWRkaXRpb25hbExvYWQge1xuICBtYXJnaW4tYm90dG9tOiA0MHB4O1xufVxuIiwiQGltcG9ydCBcIi4vbm9kZV9tb2R1bGVzL2hpbHRpLXVpLWxpYnJhcnkvYXNzZXRzL3Nhc3MvaHVpLWNvbG9yc1wiO1xuJGhpbHRpLWNvbmNyZXRlOiAkaHVpLWhlYXZ5LWNvbmNyZXRlLS00MDtcbiRoaWx0aS1jb25jcmV0ZS1saWdodGVuLTE6ICRodWktaGVhdnktY29uY3JldGUtLTQwO1xuJGhpbHRpLWNvbmNyZXRlLWxpZ2h0ZW4tMjogI0VGRUJFNTtcbiRoaWx0aS1jb25jcmV0ZS1kYXJrZW4tMjogIzg4N0Y2RTtcbiRoaWx0aS1zdGVlbDogIzUzNEY1MztcbiRoaWx0aS1zdGVlbC1saWdodGVuLTE6ICM5OTk5OTk7XG4kaGlsdGktc3RlZWwtbGlnaHRlbi0yOiAjREREREREO1xuJGhpbHRpLXJlYmVsLWJsdWU6ICMzODgwQjA7XG4kaGlsdGktcmViZWwtYmx1ZS1saWdodGVuLTE6ICNDQ0RGRUI7XG4kaGlsdGktbGlnaHQtZ3JleTogI0ZBRkFGQTtcbiRoaWx0aS1yZWQ6ICRodWktaGlsdGktcmVkO1xuJGhpbHRpLXBsYWNlaG9sZGVyOiAjZDdkN2Q3O1xuJGhpbHRpLWhvdmVyOiAjRjNGMkYwO1xuJGhpbHRpLXNlbGVjdGVkOiAjRDhEOEQ4O1xuJGhpbHRpLWRpc2FibGVkOiAjRTdFNUUxO1xuJHRhYnN0cmlwLWNvbnRlbnQtcGFkZGluZy14OiAwcHg7XG4kdGFic3RyaXAtY29udGVudC1wYWRkaW5nLXk6IDBweDtcbiR0YWJzdHJpcC1jb250ZW50LWJvcmRlci13aWR0aDogMHB4O1xuJGdyaWQtaGVhZGVyLWJnOiB3aGl0ZTtcbiRncmlkLWJvcmRlcjogcmdiYSgkaHVpLWhlYXZ5LWNvbmNyZXRlLS0yMCwgMCk7XG4kZ3JpZC1oZWFkZXItYm9yZGVyOiByZ2JhKCRodWktaGVhdnktY29uY3JldGUtLTIwLCAxKTtcbiRncmlkLWFsdC1iZzogcmdiYSh3aGl0ZSwgMCk7XG4kZ3JpZC1ob3ZlcmVkLWJnOiAkaHVpLXN0ZWVsLS0yMDtcbiIsIi8vQ29sb3JzXG4vL1RPRE86IHJlbW92ZSBwcmVmaXggaHVpIGluIGNvbG9ycyB2YXJpYWJsZVxuJGh1aS1oaWx0aS1yZWQ6ICNEMjA1MUU7XG4kaHVpLWRhcmstcmVkOiAjQUIwMTE1O1xuJGh1aS1lcnJvci1yZWQ6ICNGRjAwMDA7XG4kaHVpLWhlYXZ5LWNvbmNyZXRlLS0xMDogI0YzRjJGMDtcbiRodWktaGVhdnktY29uY3JldGUtLTIwOiAjRTdFNUUyO1xuJGh1aS1oZWF2eS1jb25jcmV0ZS0tMzA6ICNEQkQ4RDM7XG4kaHVpLWhlYXZ5LWNvbmNyZXRlLS00MDogI0NGQ0NDNTtcbiRodWktaGVhdnktY29uY3JldGUtLTYwOiAjQjdCM0FBO1xuJGh1aS1oZWF2eS1jb25jcmV0ZS0tODA6ICNBMDk5OEI7XG4kaHVpLXN0ZWVsOiAjNTI0RjUzO1xuJGh1aS1zdGVlbC0tMjA6ICNERERDREQ7XG4kaHVpLXN0ZWVsLS00MDogI0JBQjlCQTtcbiRodWktc3RlZWwtLTYwOiAjOTc5NTk4O1xuJGh1aS1zdGVlbC0tODA6ICM3NTcyNzU7XG4kaHVpLXdoaXRlOiAjRkZGO1xuJGh1aS1ibGFjazogIzAwMDtcbiRodWktYmxhY2stLTkwOiAjMTkxOTE5O1xuJGh1aS1ibGFjay0tNDA6ICM5OTk5OTk7XG4kaHVpLWdyZWVuOiAjMTlBRjM3O1xuJGh1aS1ncmVlbi0tNDA6ICNBM0RGQUY7XG4kaHVpLWRhcmstYmx1ZTogIzAwNUY5NjtcblxuJGh1aS1idXJndW5keTogIzY3MUMzRTtcblxuJGN0YTogJGh1aS1oaWx0aS1yZWQ7XG4kcHJpbWFyeTogJGh1aS1zdGVlbDtcbiRzZWNvbmRhcnk6ICRodWktaGVhdnktY29uY3JldGUtLTIwO1xuJHN1Y2Nlc3M6ICMxOUFGMzc7XG4kZGFuZ2VyOiAjRkYwMDAwO1xuJHdhcm5pbmc6ICNGRkFGMDA7XG5cbiR0aGVtZS1jb2xvcnM6IChcbiAgXCJjdGFcIjogJGN0YSxcbiAgXCJoZWF2eS1jb25jcmV0ZS0tMTBcIjogJGh1aS1oZWF2eS1jb25jcmV0ZS0tMTAsXG4gIFwiaGVhdnktY29uY3JldGUtLTIwXCI6ICRodWktaGVhdnktY29uY3JldGUtLTIwLFxuKTtcbiJdfQ== */\"","import {\n of as observableOf,\n concat as observableConcat,\n merge as observableMerge,\n fromEvent as observableFromEvent,\n zip as observableZip,\n Observable,\n Subject\n} from 'rxjs';\nimport { toArray, debounceTime } from 'rxjs/operators';\nimport { UnitHelper } from './../common/unit.helper';\nimport { PointloadsComponent } from './pointloads/pointloads.component';\nimport { LineloadsComponent } from './lineloads/lineloads.component';\nimport { UserService } from './../service/common/user.service';\nimport { Component, OnInit, OnDestroy, ViewChild, AfterViewInit, ElementRef, ViewChildren } from '@angular/core';\nimport {\n FormGroup,\n FormBuilder,\n Validators,\n FormControlName,\n ValidatorFn,\n AbstractControl\n} from '@angular/forms';\nimport { SharedService } from '../service/common/shared.service';\nimport { ActivatedRoute, Router, Params } from '@angular/router';\nimport * as _ from 'lodash';\nimport { TabStripComponent } from '@progress/kendo-angular-layout';\nimport { ProjectService } from '../project/project.service';\nimport { SubProjectService } from './sub-project.service';\nimport * as models from './../models/models';\nimport { CalculateComponent } from './../calculations/calculate/calculate.component';\nimport { CalculationsService } from './../calculations/calculations.service';\nimport { SessionStorageService } from './../service/util/session-storage.service';\nimport { AppConstants } from '../common/AppConstants';\nimport { CustomValidators } from 'ng2-validation';\nimport { TranslateService } from '@ngx-translate/core';\nimport { NavService, INavItem } from '../service/common/nav.service';\nimport * as FileSaver from 'file-saver';\nimport { ConfigService } from 'app/service/config.service';\nimport { ApplicationOptionsService } from 'app/service/common/application-options.service';\n\n@Component({\n selector: 'app-subproject',\n templateUrl: './sub-project.component.html',\n styleUrls: ['./sub-project.component.scss']\n})\n\nexport class SubProjectComponent implements AfterViewInit, OnDestroy, OnInit {\n\n public static DEFAULT_STEEL_PROFILE_NAME = 'IPE 100';\n public static DEFAULT_LOAD = 1;\n public static DEFAULT_ID = 1;\n public static DEFAULT_LIVELOAD_PERCENT_ID = 3;\n public static GENERAL = 0;\n public static BEAM_GEOMETRY = 1;\n public static MATERIAL = 2;\n public static SLAB = 3;\n public static LOADS = 4;\n public static ADDITIONAL_LOADS = 5;\n public static CONNECTOR = 6;\n public static DEFORMATION = 7;\n public static CALCULATE = 8;\n public static ADDITIONAL_LOAD_DRAWING_WIDTH = 400;\n public static LOAD_DRAWING_WIDTH = 450;\n public static DRAWING_WIDTH = 450;\n public static DRAWING_HEIGHT = 300;\n public static LOAD_DRAWING_HEIGHT = 100;\n public static DEFAULT_CONCRETE_CLASS_ID = 2;\n public static DEFAULT_LIVE_LOAD_DEFL_ID_EURO = 6;\n public static DEFAULT_LIVE_LOAD_DEFL_ID_AMERICAN = 13;\n public static DEFAULT_LIVE_LOAD_DEFL_ID_AUNZ = 19;\n public static DEFAULT_DAMPLING_ID_US = 1;\n public static DEFAULT_DAMPLING_ID_ASNZS = 6;\n public static DEFAULT_DEFLECTION_LIMIT_ID_EURO = 4;\n public static DEFAULT_DEFLECTION_LIMIT_ID_AMERICAN = 12;\n public static DEFAULT_DEFLECTION_LIMIT_ID_AUNZ = 17;\n public static DEFAULT_STEELGRADE_ID_EURO = 1;\n public static DEFAULT_REINFORCEMENT_ID_EURO = 1;\n public static DEFAULT_CONSTRUCTIONTYPE_ID_EURO = 1;\n public static DEFAULT_STEELGRADE_ID_US = 5;\n public static DEFAULT_REINFORCEMENT_ID_US = 5;\n public static DEFAULT_CONSTRUCTIONTYPE_ID_US = 3;\n public static DEFAULT_STEELGRADE_ID_AU = 13;\n public static DEFAULT_STEELGRADE_ID_NZ = 13;\n public static DEFAULT_REINFORCEMENT_ID_AUNZ = 7;\n public static DEFAULT_CONSTRUCTIONTYPE_AUNZ = 5;\n public static DEFAULT_UNIT_SYSTEM = 1;\n public static DEFAULT_STEELGRAGE_META_ID = 8;\n public static META_COUNTRIES = [22, 24, 19, 23, 21, 40, 41, 42, 43, 44];\n public static DEFAULT_PROFILE_ASNSZ = 'Dimond Structural - Flatdeck 0.75';\n public static CUSTOM_CONCRETE_METRIC = {\n min: 21,\n maxNormal: 50,\n maxLight: 41\n };\n public static CUSTOM_CONCRETE_IMPERIAL = {\n min: 3000,\n maxNormal: 7250,\n maxLight: 6000\n };\n public static CUSTOM_CONCRETE_ASNZS = {\n min: 20,\n max: 50\n };\n public static CUSTOM_STEELGRADE_YIELD_STRENGTH_METRIC = {\n min: 170,\n max: 355\n };\n public static CUSTOM_STEELGRADE_YIELD_STRENGTH_IMPERIAL = {\n min: 25,\n max: 50\n };\n public static PROFILED_SHEETING_CUSTOM_YIELD_STRENGTH_METRIC = {\n min: 170,\n max: 600\n };\n public static PROFILED_SHEETING_CUSTOM_YIELD_STRENGTH_IMPERIAL = {\n min: 25,\n max: 85\n };\n public static CONCRETE_DENSITY_METRIC = {\n min: 1750,\n max: 2500\n };\n public static CONCRETE_DENSITY_IMPERIAL = {\n min: 90,\n max: 155\n };\n public static CONCRETE_DENSITY_ASNZS = {\n min: 1750,\n max: 2800\n };\n public static CONCRETE_DENSITY_AGGREGATES_METRIC = {\n min: 1400,\n max: 2000\n };\n public static CONCRETE_DENSITY_AGGREGATES_IMPERIAL = {\n min: 90,\n max: 125\n };\n public static CONCRETE_DENSITY_AGGREGATES_ASNZS = {\n min: 1400,\n max: 2000\n };\n public static BEAM_LENGTH_METRIC = {\n min: 2,\n max: 20\n };\n public static BEAM_LENGTH_IMPERIAL = {\n min: 1.64,\n max: 66\n };\n public static BEAM_SPACING_EDGE_METRIC_MIN = 0.5;\n public static BEAM_SPACING_INTERMEDIATE_METRIC_MIN = 0.15;\n public static BEAM_SPACING_EDGE_IMPERIAL_MIN = 1.64;\n public static BEAM_SPACING_INTERMEDIATE_IMPERIAL_MIN = 0.49;\n public static STEEL_PROFILE_CUSTOM_HEIGHT_METRIC = {\n min: 100,\n max: 1120\n };\n public static STEEL_PROFILE_CUSTOM_HEIGHT_IMPERIAL = {\n min: 4,\n max: 44\n };\n public static STEEL_PROFILE_CUSTOM_ROOT_RADIUS_METRIC = {\n min: 0,\n max: 30\n };\n public static STEEL_PROFILE_CUSTOM_ROOT_RADIUS_IMPERIAL = {\n min: 0,\n max: 1.2\n };\n public static PROFILED_SHEETING_CUSTOM_DECK_DEPTH_METRIC = {\n min: 30,\n max: 80\n };\n public static PROFILED_SHEETING_CUSTOM_DECK_DEPTH_IMPERIAL = {\n min: 1,\n max: 3\n };\n public static PROFILED_SHEETING_CUSTOM_BOTTOM_WIDTH_METRIC = {\n min: 30,\n max: 400\n };\n public static PROFILED_SHEETING_CUSTOM_BOTTOM_WIDTH_IMPERIAL = {\n min: 1,\n max: 16\n };\n public static PROFILED_SHEETING_CUSTOM_TOP_WIDTH_METRIC = {\n min: 30,\n max: 400\n };\n public static PROFILED_SHEETING_CUSTOM_TOP_WIDTH_IMPERIAL = {\n min: 1,\n max: 16\n };\n public static PROFILED_SHEETING_CUSTOM_TROUGHSPACING_METRIC = {\n min: 100,\n max: 600\n };\n public static PROFILED_SHEETING_CUSTOM_TROUGHSPACING_IMPERIAL = {\n min: 4,\n max: 24\n };\n public static PROFILED_SHEETING_CUSTOM_RIB_STIFFENER_WIDTH_METRIC = {\n min: 0,\n max: 50\n };\n public static PROFILED_SHEETING_CUSTOM_RIB_STIFFENER_WIDTH_IMPERIAL = {\n min: 0,\n max: 2\n };\n public static PROFILED_SHEETING_CUSTOM_STIFFENERS_SPACING_METRIC = {\n min: 0,\n max: 200\n };\n public static PROFILED_SHEETING_CUSTOM_STIFFENERS_SPACING_IMPERIAL = {\n min: 0,\n max: 8\n };\n public static STEEL_PROFILE_CUSTOM_WEB_THICKNESS_METRIC = {\n min: 3\n };\n public static STEEL_PROFILE_CUSTOM_WEB_THICKNESS_IMPERIAL = {\n min: 0.125\n };\n public static STEEL_PROFILE_CUSTOM_FLANGE_WIDTH_METRIC = {\n min: 6\n };\n public static STEEL_PROFILE_CUSTOM_FLANGE_WIDTH_IMPERIAL = {\n min: 0.22\n };\n\n public static CONCRETE_STRENGTH_US_METRIC = 21;\n public static CONCRETE_STRENGTH_US_IMPERIAL = 3000;\n\n public static DEFAULT_WALKING_ACTIVITY = 1;\n public static DEFAULT_RHYTMIC_ACTIVITY = 1;\n private _saveOnLeaveSubject: Subject = new Subject();\n public $saveOnLeaveObs = this._saveOnLeaveSubject.asObservable();\n public showSaveOnDestroyDialog = false;\n\n @ViewChild(CalculateComponent, { static: false })\n public calculateComponent: CalculateComponent;\n @ViewChild(LineloadsComponent, { static: false })\n public lineloadsComponent: LineloadsComponent;\n @ViewChild(PointloadsComponent, { static: false })\n public pointloadsComponent: PointloadsComponent;\n @ViewChild(TabStripComponent, { static: true })\n public tabstripComponent: TabStripComponent;\n @ViewChildren(FormControlName, { read: ElementRef }) formInputElements: ElementRef[] = [];\n\n public project: models.Project;\n private subProjectModel: models.SubProject = {};\n public surfaceLiveLoadsDrawing = '';\n public standardLoadDrawing0 = '';\n public standardLoadDrawing1 = '';\n public standardLoadDrawing2 = '';\n public liveLineLoadsDrawing = '';\n public livePointLoadsDrawing = '';\n public deadLineLoadsDrawing = '';\n public deadPointLoadsDrawing = '';\n public compositeCrossSectionDrawing = '';\n public slabDrawing1 = '';\n public slabDrawing2 = '';\n public beamLoadDrawing = '';\n public beamLoadDrawing1 = '';\n public compositeBeamDrawing = '';\n public steelSectionDrawingStream1 = '';\n public steelSectionDrawingStream2 = '';\n public beamGeometryDrawingStream = '';\n public profiledSheetingDrawing = '';\n public steelProfilesPerRange: any[] = [];\n public concreteClassesPerConcreteType: any[] = [];\n public beamLocationB1Text: string;\n public beamLocationB2Text: string;\n public beamLocationB1Error: string;\n public beamLocationB2Error: string;\n public displayMessage: { [key: string]: string } = {};\n public validationMessages: { [key: string]: { [key: string]: string } };\n public beamLocations: any[] = [];\n public beamTypes: any[] = [];\n public nationalAnnexes: any[] = [];\n public loadCategories: any[] = [];\n public combinationFactors: any[] = [];\n public partialFactors: any[] = [];\n public beamDesigns: any[] = [];\n public slabTypes: any[] = [];\n public profileTypes: any[] = [];\n public steelprofiles: any[] = [];\n public steelGrades: any[] = [];\n public steelStandards: models.SteelStandards[] = [];\n public concreteTypes: any[] = [];\n public concreteClasses: any[] = [];\n public concreteStrengths: any[] = [];\n public reinforcementSteelGrades: any[] = [];\n public sheetingOrientations: any[] = [];\n public profileSheetings: any[] = [];\n public shearConnectionDegrees: any[] = [];\n public shearConnectorOrientations: any[] = [];\n public shearConnectorTypes: any[] = [];\n public deflectionLimits: any[] = [];\n public totalDeflectionLimits: any[] = [];\n public liveLoadPercentages: any[] = [];\n public totalLoadDeflections: any[] = [];\n public constructionTypes: models.ConstructionOption[] = [];\n public subProjectForm: FormGroup;\n public dropDownOptions: models.Options;\n public calculatedSelfWeightNewtons: number;\n public calculatedLiveLoadNewtons: number;\n public calculatedSelfWeightDisplay: number;\n public calculatedLiveLoadDisplay: number;\n public projectId = 0;\n public subProjectId = 0;\n public saveError: boolean;\n public calculateError: boolean;\n public selectedTab: number;\n public selectedSteelProfile: models.SteelProfile;\n public overrideSelfWeight: boolean;\n public overrideLiveLoad: boolean;\n public partialFactor: models.PartialFactor;\n public filteredConnectorTypes: any[];\n public filteredConnectorOrientations: any[];\n public isNew = false;\n public showSaveAsSubProjectDialog = false;\n public saveAsSubProjectName = '';\n public enableReportButton = true;\n public calculateInput: models.Calculate.CreateCommand;\n public subProjects: Array;\n public displayCoverRequiredYes = false;\n public displayCoverRequiredNo = false;\n public displayWalkingExitationNote = false;\n public calculationResponse: models.Calculate.CalculationResult;\n public appVersion: models.Version;\n public disableCreateButton = false;\n public hideAdditionalLoad = true;\n public forceFactor: number;\n public unitSystem: models.UnitSystem = {};\n public unit: number;\n public gages: models.UsGage[] = [\n { gage: 26, inch: 0.01875 },\n { gage: 24, inch: 0.025 },\n { gage: 22, inch: 0.03125 },\n { gage: 20, inch: 0.0375 },\n { gage: 18, inch: 0.05 },\n { gage: 16, inch: 0.0625 },\n ];\n\n\n public damplings: models.Damplings[] = [];\n public walkingActivity: models.Option[] = [];\n public rhythmicActivity: models.Option[] = [];\n\n public validationValues = {\n 'steelProfileCustomSteelGradeYieldStrength': {\n 'min': null,\n 'max': null\n },\n 'concreteDensityRange': {\n 'min': null,\n 'max': null\n },\n 'concreteDensityAggregatesRange': {\n 'min': null,\n 'max': null\n },\n 'customDefinedConcreteRange': {\n 'min': null,\n 'max': null\n },\n 'beamLengthRange': {\n 'min': null,\n 'max': null\n },\n 'beamSpacingLeft': {\n 'min': null,\n 'max': null\n },\n 'beamSpacingRight': {\n 'min': null,\n 'max': null\n },\n 'profiledSheetingCustomYieldStrength': {\n 'min': null,\n 'max': null\n },\n 'steelProfileCustomHeight': {\n 'min': null,\n 'max': null\n },\n 'steelProfileCustomRootRadius': {\n 'min': null,\n 'max': null\n },\n 'profiledSheetingCustomDeckDepth': {\n 'min': null,\n 'max': null\n },\n 'profiledSheetingCustomBottomWidth': {\n 'min': null,\n 'max': null\n },\n 'profiledSheetingCustomTopWidth': {\n 'min': null,\n 'max': null\n },\n 'profiledSheetingCustomTroughSpacing': {\n 'min': null,\n 'max': null\n },\n 'profiledSheetingCustomRibStiffenerWidth': {\n 'min': null,\n 'max': null\n },\n 'profiledSheetingCustomStiffenersSpacing': {\n 'min': null,\n 'max': null\n },\n 'steelProfileCustomWebThickness': {\n 'min': null\n },\n 'steelProfileCustomFlangeThickness': {\n 'min': null\n }\n };\n\n // subjects\n private drawCompositeSubject: Subject;\n private isFormValidSubject: Subject;\n\n public DEFAULT_DROPDOWNS = {\n beamDesignId: 1,\n beamLocationId: 1,\n steelProfileTypeId: 1,\n steelGradeId: 1,\n concreteTypeId: 1,\n concreteDensityId: 1,\n constructionTypeId: 1,\n connectorTypeId: 1,\n connectorsOrientationId: 3,\n reInforcementId: 1,\n slabTypeId: 1,\n slabTypeIdAuNz: 6,\n profiledSheetingOrientation: 1,\n profileSheetingTypeId: 1,\n shearConnectorTypeId: 1,\n degreeOfShearConnectionId: 2,\n shearConnectorOrientationId: 2,\n sheetingOrientationId: 1\n };\n\n private calculationMessagesValuesRanges: models.ErrorCodesTranslationValidationRanges;\n\n constructor(\n private configService: ConfigService,\n private sharedService: SharedService,\n private subProjectService: SubProjectService,\n private projectService: ProjectService,\n private sessionStorageService: SessionStorageService,\n private fb: FormBuilder, private router: Router,\n private calculationsService: CalculationsService,\n private route: ActivatedRoute,\n private user: UserService,\n public translate: TranslateService,\n private navService: NavService,\n private applicationOptionsService: ApplicationOptionsService) {\n this.initializeSubProjectForm();\n this.drawCompositeSubject = new Subject();\n this.drawCompositeSubject.pipe(debounceTime(1000)).subscribe({\n next: this.debouncedCompositeDrawings,\n error: null,\n complete: null\n });\n this.isFormValidSubject = new Subject();\n this.isFormValidSubject.pipe(debounceTime(600)).subscribe({ next: this.debouncedIsFormValid, error: null, complete: null });\n this.dropDownOptions = this.applicationOptionsService.options;\n this.setDropDowns(this.dropDownOptions);\n const version = this.configService.config.applicationVersion.split('.');\n this.appVersion = {\n first: Number(version[0]),\n second: Number(version[1]),\n third: Number(version[2]),\n beta: this.configService.config.beta ? 1 : 0\n };\n }\n\n ngOnInit(): void {\n\n if (!this.user.defaultSettings) {\n this.router.navigate(['/settings']);\n }\n\n this.route.params.subscribe(params => {\n this.handleParams(params);\n });\n\n this.projectService.getsubProjects(this.projectId).subscribe((data) => {\n this.subProjects = _.isArray(data.subProjects) ? data.subProjects : [];\n });\n\n this.sharedService.changeBreadCrumb('subproject');\n this.init();\n }\n\n init = (): any => {\n this.sharedService.showLoader(true);\n const combine = observableZip(\n this.subProjectService.getSubProjectById(this.subProjectId),\n this.projectService.getProjectById(this.projectId));\n combine.subscribe(([subProject, project]) => {\n if (subProject) {\n this.project = project;\n this.project.unit = this.project.unit ? this.project.unit : SubProjectComponent.DEFAULT_UNIT_SYSTEM;\n\n // SubProject.steelProfile.profileName == null is HACK to check if subroject was correctly created\n this.subProjectModel = this.isNew || subProject.steelProfile.profileName == null ? this.initializeDefaultSubProject(subProject, project) : subProject;\n\n this.subProjectModel.projectName = project.name;\n if (!this.subProjectModel.profileSheeting.profileName) {\n Object.assign(this.subProjectModel.profileSheeting, this.getDefaultCustomProfileSheeting(project.unit));\n }\n if (!this.subProjectModel.steelProfile.yieldStrength) {\n this.subProjectModel.steelProfile.yieldStrength = this.getDefaultSteelProfileYieldStrength(project.unit);\n }\n\n if (!this.subProjectModel.deformation.walkingActivity) {\n this.subProjectModel.deformation.walkingActivity = SubProjectComponent.DEFAULT_WALKING_ACTIVITY;\n }\n\n if (!this.subProjectModel.deformation.rhythmicActivity) {\n this.subProjectModel.deformation.rhythmicActivity = SubProjectComponent.DEFAULT_RHYTMIC_ACTIVITY;\n }\n\n if (!this.subProjectModel.deformation.dampling) {\n this.subProjectModel.deformation.dampling = 1;\n }\n if (this.subProjectModel.deformation.compositeDeflectionLimit < 8 && this.project.designCode === 2) {\n this.subProjectModel.deformation.compositeDeflectionLimit = SubProjectComponent.DEFAULT_LIVE_LOAD_DEFL_ID_AMERICAN;\n }\n if (this.subProjectModel.deformation.totalDeflectionLimit < 8 && this.project.designCode === 2) {\n this.subProjectModel.deformation.totalDeflectionLimit = SubProjectComponent.DEFAULT_DEFLECTION_LIMIT_ID_AMERICAN;\n }\n\n if (this.subProjectModel.deformation.constructionTypeId <= 2 && this.project.designCode === 2) {\n this.subProjectModel.deformation.constructionTypeId = 3;\n }\n\n if (this.project.designCode === 2 && this.subProjectModel.beamGeometry.slabTypeId === 1) {\n this.subProjectModel.beamGeometry.slabTypeId = 3;\n }\n if (this.project.designCode === 2 && this.subProjectModel.beamGeometry.slabTypeId === 2) {\n this.subProjectModel.beamGeometry.slabTypeId = 4;\n }\n\n if (this.project.designCode === 3 && this.subProjectModel.beamGeometry.slabTypeId === 1) {\n this.subProjectModel.beamGeometry.slabTypeId = 5;\n }\n if (this.project.designCode === 3 && this.subProjectModel.beamGeometry.slabTypeId === 2) {\n this.subProjectModel.beamGeometry.slabTypeId = 6;\n }\n\n if (this.project.designCode === 2 && this.project.unit === 2 && this.subProjectModel.steelProfile.yieldStrength >= 50) {\n // convert psi => ksi for existing projects\n this.subProjectModel.steelProfile.yieldStrength = this.subProjectModel.steelProfile.yieldStrength / 1000;\n }\n if (this.project.designCode === 2 && this.project.unit === 2 && this.subProjectModel.profileSheeting.yieldStrength >= 85) {\n this.subProjectModel.profileSheeting.yieldStrength = this.subProjectModel.profileSheeting.yieldStrength / 1000;\n }\n if (this.subProjectModel.shearConnector.userConnectionDegree < 10) {\n this.subProjectModel.shearConnector.userConnectionDegree = 10;\n }\n\n if (this.project.designCode === 3) {\n if (this.subProjectModel.steelProfile.steelStandardNZS === 0) {\n this.subProjectModel.steelProfile.steelStandardNZS = this.project.countryNationalAnnexes === 38 ? 1 : 2;\n }\n }\n\n if (this.project.designCode === 3 && this.subProjectModel.steelProfile.steelGradeId === 9) {\n this.subProjectModel.steelProfile.steelGradeId = 13;\n }\n if (this.subProjectModel.concreteSlab.concreteClassId === 0) {\n this.subProjectModel.concreteSlab.concreteClassId = 1;\n }\n if (this.subProjectModel.beamGeometry.beamLocationId === 0) {\n this.subProjectModel.beamGeometry.beamLocationId = 1;\n }\n if (this.subProjectModel.beamGeometry.slabTypeId === 0) {\n this.subProjectModel.beamGeometry.slabTypeId = 1;\n }\n\n if (this.subProjectModel.load.loadCases.length === 0) {\n this.subProjectModel.load.loadCases = this.getDefaultLoadCases();\n }\n\n const minConcreteStrenghUS = this.project.unit === 1 ? SubProjectComponent.CONCRETE_STRENGTH_US_METRIC : SubProjectComponent.CONCRETE_STRENGTH_US_IMPERIAL;\n if (this.subProjectModel.concreteSlab.concreteStrengthUS < minConcreteStrenghUS) {\n this.subProjectModel.concreteSlab.concreteStrengthUS = minConcreteStrenghUS;\n }\n\n this.partialFactor = this.getPartialFactorFromProject(project);\n this.forceFactor = UnitHelper.getDbToDisplayForceFactor(project.loadUnit);\n this.unitSystem = UnitHelper.getUnitSystem(project.unit, project.loadUnit, project.lengthUnit);\n this.initializeLoadCasesInDisplayUnits();\n this.setValidators(project.unit);\n this.populateSubProjectForm();\n this.updateNav();\n if (this.isNew) {\n this.saveSubProject(false);\n }\n this.activateValueChanges();\n }\n },\n (error: any) => console.log(error),\n () => this.sharedService.showLoader(false));\n }\n\n private initializeDefaultSubProject = (subProject: models.SubProject, project: models.Project): models.SubProject => {\n subProject.beamGeometry.beamLength = project.unit === 1 ? 2 : 20;\n subProject.beamGeometry.beamLocationId = this.DEFAULT_DROPDOWNS.beamLocationId;\n // tslint:disable-next-line:max-line-length\n subProject.beamGeometry.beamLocationValue = this.dropDownOptions.beamLocations.find(bl => bl.id === this.DEFAULT_DROPDOWNS.beamLocationId).value;\n subProject.beamGeometry.beamTypeId = 2;\n subProject.beamGeometry.beamTypeValue = 1;\n subProject.beamGeometry.leftOpening = false;\n subProject.beamGeometry.leftOpeningPosition = project.unit === 1 ? 0.25 : 1;\n subProject.beamGeometry.leftSpacing = project.unit === 1 ? 0.5 : 2;\n subProject.beamGeometry.rightOpening = false;\n subProject.beamGeometry.rightOpeningPosition = project.unit === 1 ? 0.25 : 1;\n subProject.beamGeometry.rightSpacing = project.unit === 1 ? 0.5 : 2;\n subProject.beamGeometry.slabTypeId = this.DEFAULT_DROPDOWNS.slabTypeId;\n subProject.beamGeometry.slabTypeValue = this.dropDownOptions.slabTypes.find(sl => sl.id === this.DEFAULT_DROPDOWNS.slabTypeId).value;\n\n subProject.combinationFactor = this.user.defaultSettings.combinationFactor;\n\n subProject.concreteSlab.concreteClassId = SubProjectComponent.DEFAULT_CONCRETE_CLASS_ID;\n // tslint:disable-next-line:max-line-length\n subProject.concreteSlab.concreteClassValue = this.dropDownOptions.concreteClasses.find(cc => cc.id === SubProjectComponent.DEFAULT_CONCRETE_CLASS_ID).value;\n subProject.concreteSlab.concreteDensity = project.unit === 1 ? SubProjectComponent.CONCRETE_DENSITY_METRIC.max : SubProjectComponent.CONCRETE_DENSITY_IMPERIAL.max;\n subProject.concreteSlab.aggregatesDensity = project.unit === 1 ? SubProjectComponent.CONCRETE_DENSITY_AGGREGATES_METRIC.max : SubProjectComponent.CONCRETE_DENSITY_AGGREGATES_IMPERIAL.max;\n subProject.concreteSlab.concreteTypeId = this.DEFAULT_DROPDOWNS.concreteTypeId;\n // tslint:disable-next-line:max-line-length\n subProject.concreteSlab.concreteTypeValue = this.dropDownOptions.concreteTypes.find(ct => ct.id === this.DEFAULT_DROPDOWNS.concreteTypeId).value;\n subProject.concreteSlab.coverRequired = this.project.designCode === 1 ? false : true;\n subProject.concreteSlab.haunchHeight = 0;\n subProject.concreteSlab.concreteStrengthUS = project.unit === 1 ? SubProjectComponent.CONCRETE_STRENGTH_US_METRIC : SubProjectComponent.CONCRETE_STRENGTH_US_IMPERIAL;\n subProject.concreteSlab.slabThickness = project.unit === 1 ? 200 : 8;\n\n subProject.deformation.frequencyLimit = 3;\n subProject.deformation.percentageLiveLoad = 3;\n subProject.deformation.precamber = 0;\n subProject.deformation.incrementalDeflectionCheck = 0;\n subProject.deformation.permanentLoadFraction = 0.0;\n subProject.loadCategory = this.user.defaultSettings.loadCategory;\n subProject.liveLoadReduction = this.user.defaultSettings.liveLoadReduction;\n subProject.shearConnector.connectionDegreeId = this.DEFAULT_DROPDOWNS.degreeOfShearConnectionId;\n subProject.shearConnector.connectorTypeId = this.DEFAULT_DROPDOWNS.connectorTypeId;\n subProject.shearConnector.connectorsOrientationId = this.DEFAULT_DROPDOWNS.connectorsOrientationId;\n subProject.shearConnector.optimizationOption = 1;\n subProject.shearConnector.userConnectionDegree = 10;\n\n subProject.steelProfile.customProfile = false;\n subProject.steelProfile.elasticImposed = false;\n subProject.steelProfile.flangeThickness = project.unit === 1 ? 5 : 0.25;\n subProject.steelProfile.flangeWidth = project.unit === 1 ? 100 : 4;\n subProject.steelProfile.height = project.unit === 1 ? 100 : 4;\n if (project.designCode === 1 && this.project.unit === AppConstants.UNIT_SYSTEM_MI) {\n subProject.steelProfile.profileName = 'IPE 100';\n } else if (project.designCode === 3) {\n subProject.steelProfile.profileName = '310UBP149';\n } else {\n subProject.steelProfile.profileName = 'W44X335';\n }\n subProject.steelProfile.radius = 0;\n subProject.steelProfile.rootRadius = project.unit === 1 ? 3 : 0.08;\n switch (project.designCode) {\n case 1:\n subProject.steelProfile.steelGradeId = SubProjectComponent.DEFAULT_STEELGRADE_ID_EURO;\n subProject.reinforcement.steelGradeId = SubProjectComponent.DEFAULT_REINFORCEMENT_ID_EURO;\n subProject.deformation.constructionTypeId = SubProjectComponent.DEFAULT_CONSTRUCTIONTYPE_ID_EURO;\n subProject.deformation.totalDeflectionLimit = SubProjectComponent.DEFAULT_LIVE_LOAD_DEFL_ID_EURO;\n subProject.deformation.compositeDeflectionLimit = SubProjectComponent.DEFAULT_LIVE_LOAD_DEFL_ID_EURO;\n break;\n case 2:\n subProject.steelProfile.steelGradeId = SubProjectComponent.DEFAULT_STEELGRADE_ID_US;\n subProject.reinforcement.steelGradeId = SubProjectComponent.DEFAULT_REINFORCEMENT_ID_US;\n subProject.deformation.constructionTypeId = SubProjectComponent.DEFAULT_CONSTRUCTIONTYPE_ID_US;\n subProject.deformation.totalDeflectionLimit = SubProjectComponent.DEFAULT_DEFLECTION_LIMIT_ID_AMERICAN;\n subProject.deformation.compositeDeflectionLimit = SubProjectComponent.DEFAULT_LIVE_LOAD_DEFL_ID_AMERICAN;\n subProject.deformation.dampling = SubProjectComponent.DEFAULT_DAMPLING_ID_US;\n if (SubProjectComponent.META_COUNTRIES.find(x => x === project.countryNationalAnnexes)) {\n subProject.steelProfile.profileName = 'IPE 100';\n subProject.steelProfile.steelGradeId = SubProjectComponent.DEFAULT_STEELGRAGE_META_ID;\n subProject.shearConnector.userConnectionDegree = 25;\n }\n break;\n case 3:\n if (this.project.countryNationalAnnexes === 38) {\n subProject.steelProfile.steelGradeId = SubProjectComponent.DEFAULT_STEELGRADE_ID_AU;\n subProject.shearConnector.connectorsOrientationId = 2;\n } else {\n subProject.steelProfile.steelGradeId = SubProjectComponent.DEFAULT_STEELGRADE_ID_NZ;\n subProject.shearConnector.connectorsOrientationId = 1;\n }\n Object.assign(subProject.profileSheeting, this.getDefaultCustomProfileSheeting(project.unit));\n subProject.reinforcement.steelGradeId = SubProjectComponent.DEFAULT_REINFORCEMENT_ID_AUNZ;\n subProject.deformation.constructionTypeId = SubProjectComponent.DEFAULT_CONSTRUCTIONTYPE_AUNZ;\n subProject.deformation.totalDeflectionLimit = SubProjectComponent.DEFAULT_DEFLECTION_LIMIT_ID_AUNZ;\n subProject.deformation.compositeDeflectionLimit = SubProjectComponent.DEFAULT_LIVE_LOAD_DEFL_ID_AUNZ;\n subProject.beamGeometry.slabTypeId = this.DEFAULT_DROPDOWNS.slabTypeIdAuNz;\n subProject.shearConnector.connectorTypeId = 4;\n subProject.shearConnector.connectorTypeValue = 2;\n subProject.concreteSlab.slabThickness = project.unit === 1 ? 125 : 5;\n subProject.shearConnector.connectorsOrientationValue = 0;\n subProject.deformation.dampling = SubProjectComponent.DEFAULT_DAMPLING_ID_ASNZS;\n subProject.profileSheeting.profileName = SubProjectComponent.DEFAULT_PROFILE_ASNSZ;\n subProject.profileSheeting.sheetingOrientationId = 1;\n break;\n }\n // tslint:disable-next-line:max-line-length\n subProject.steelProfile.steelGradeValue = this.dropDownOptions.steelGrades.find(st => st.id === subProject.steelProfile.steelGradeId).value;\n subProject.steelProfile.webThickness = project.unit === 1 ? 4 : 0.125;\n\n subProject.deformation.walkingExcitationCheck = 1;\n subProject.deformation.rhythmicExcitationCheck = 0;\n subProject.deformation.walkingActivity = this.walkingActivity.find(x => x.id === 1).id;\n subProject.deformation.rhythmicActivity = this.rhythmicActivity.find(x => x.id === 1).id;\n subProject.load.loadCases = this.getDefaultLoadCases();\n if (this.project.countryNationalAnnexes === 38) {\n subProject.steelProfile.steelStandardNZS = 1;\n }\n if (this.project.countryNationalAnnexes === 39) {\n subProject.steelProfile.steelStandardNZS = 2;\n }\n subProject.deformation.performLateralTorsionBucklingCheck =\n this.getDefaultLateralTorsionBucklingCheckValue(project.countryNationalAnnexes);\n return subProject;\n }\n\n getDefaultLoadCases() {\n const loadCases = [];\n for (let i = 0; i < 4; i++) {\n loadCases[i] = {\n id: 0,\n distributedSurfaceLoad: 0,\n pointLoads: [], lineLoads: [],\n combinationFactor: this.user.defaultSettings.combinationFactor,\n sequence: i\n };\n }\n return loadCases;\n }\n\n private getDefaultLateralTorsionBucklingCheckValue(nationalAnnex: number) {\n if (SubProjectComponent.META_COUNTRIES.find(x => x === nationalAnnex)) {\n return 0;\n }\n return 1;\n }\n\n getDefaultCustomProfileSheeting = (unit: number): models.ProfileSheeting => {\n return {\n continuousForPerpendicular: true,\n numberRibStiffeners: 0,\n pitch: unit === 1 ? 100 : 4,\n profileName: 'Custom',\n ribBottomWidth: unit === 1 ? 30 : 1.25,\n ribHeight: unit === 1 ? 30 : 1.25,\n ribStiffenerWidth: 0,\n ribTopWidth: unit === 1 ? 30 : 1.25,\n sheetingOrientationId: this.DEFAULT_DROPDOWNS.sheetingOrientationId,\n sheetingOrientationValue: this.dropDownOptions.sheetingOrientations.find(so => so.id === this.DEFAULT_DROPDOWNS.sheetingOrientationId).value,\n stiffenersSpacing: 0,\n surfaceWeight: unit === 1 ? 20 : 4,\n thickness: unit === 1 ? 1 : 0.05,\n yieldStrength: unit === 1 ? 170 : 25\n };\n }\n\n getDefaultSteelProfileYieldStrength = (unit: number): number => {\n return unit === 1 ? 170 : 25;\n }\n\n handleParams = (params: Params): void => {\n if (params['projectid']) {\n this.projectId = +params['projectid']; // (+) converts string 'projectid' to a number\n }\n if (params['id']) {\n this.subProjectId = +params['id']; // (+) converts string 'id' to a number\n }\n if (params['isNew']) {\n this.isNew = params['isNew'] === 'true';\n }\n\n if (!this.subProjectId || !this.projectId) {\n this.router.navigate(['/project']);\n }\n }\n\n private updateNav() {\n try {\n this.navService.setNav([{\n routeName: 'Home',\n routeUrl: '/projects'\n }, {\n routeName: this.project.name,\n routeUrl: `/project;id=${this.projectId}`\n }, {\n routeName: this.subProjectForm['controls'].subprojectName.value,\n routeUrl: undefined\n }\n ]);\n } catch (err) {\n\n }\n }\n\n getUnitSystemValue = (unit: number): number => {\n const unitSystem = this.dropDownOptions.unitSystems.find(u => u.id === unit);\n return unitSystem ? unitSystem.value : 0;\n }\n\n getStandardValue = (designCode: number): number => {\n const standard = this.dropDownOptions.designCodes.find(u => u.id === designCode);\n return standard ? standard.value : 0;\n }\n\n populateLoadCategory = (data): void => {\n const settings = this.user.defaultSettings;\n const defaultLoadCateogry = settings && settings.loadCategory > 0 ? settings.loadCategory : SubProjectComponent.DEFAULT_LOAD;\n const loadCategory = this.subProjectModel.loadCategory ?\n (this.subProjectModel.loadCategory > 0 ? this.subProjectModel.loadCategory : defaultLoadCateogry) : defaultLoadCateogry;\n const defaultCombinationFactor = this.combinationFactors.filter(item => item.nationalAnnexId === data.countryNationalAnnexes && item.loadCategoryId === loadCategory)[0].value;\n const combinationFactor = this.subProjectModel.id === undefined || this.subProjectModel.id === 0 ?\n (settings && settings.combinationFactor ? settings.combinationFactor : defaultCombinationFactor) :\n ((this.subProjectModel.loadCategory && this.subProjectModel.loadCategory > 0) ?\n this.subProjectModel.combinationFactor : defaultCombinationFactor);\n this.subProjectModel.loadCategory = loadCategory;\n this.subProjectModel.combinationFactor = combinationFactor;\n }\n\n initializeLoadCasesInDisplayUnits = () => {\n for (const loadcase of this.subProjectModel.load.loadCases) {\n for (const pointLoad of loadcase.pointLoads) {\n pointLoad.location = pointLoad.location;\n pointLoad.value = pointLoad.value * this.forceFactor;\n }\n for (const lineload of loadcase.lineLoads) {\n lineload.originLoad.location = lineload.originLoad.location;\n lineload.originLoad.value = lineload.originLoad.value * this.forceFactor;\n lineload.endLoad.location = lineload.endLoad.location;\n lineload.endLoad.value = lineload.endLoad.value * this.forceFactor;\n }\n loadcase.distributedSurfaceLoad = loadcase.distributedSurfaceLoad * this.forceFactor;\n }\n this.subProjectModel.load.userCompositeSelfWeight =\n this.subProjectModel.load.userCompositeSelfWeight * this.forceFactor;\n }\n\n ngAfterViewInit() {\n const controlChanges: Observable[] = this.formInputElements\n .map((formControl: ElementRef) => observableFromEvent(formControl.nativeElement, 'change'));\n observableMerge(this.subProjectForm.valueChanges, ...controlChanges).pipe(debounceTime(800)).subscribe(value => {\n for (const controlIndex in this.subProjectForm.controls) {\n if (this.subProjectForm.controls[controlIndex] != null) {\n this.subProjectForm.controls[controlIndex].markAsTouched();\n }\n }\n });\n }\n\n ngOnDestroy() {\n this.navService.setNav(null);\n }\n\n public saveOnLeave(doSave = true, doLeave = true) {\n if (doSave) {\n this.saveSubProject(doLeave);\n } else {\n this.showSaveOnDestroyDialog = false;\n this._saveOnLeaveSubject.next(doLeave);\n }\n }\n\n setDropDowns = (options: models.Options) => {\n this.beamLocations = _.sortBy(options.beamLocations, [function (o) { return o.label; }]);\n this.beamDesigns = _.sortBy(options.beamDesigns, [function (o) { return o.label; }]);\n this.beamTypes = _.sortBy(options.beamTypes, [function (o) { return o.label; }]);\n this.slabTypes = _.sortBy(options.slabTypes, [function (o) { return o.label; }]);\n this.profileTypes = _.sortBy(options.steelProfileRanges,\n [function (o) { return o.profileRange === 'Custom' ? 'ZZZ' : o.profileRange; }]);\n this.steelprofiles = _.sortBy(options.steelProfiles, [function (o) { return o.label === 'Custom' ? 'ZZZ' : o.label; }]);\n this.steelGrades = _.sortBy(options.steelGrades, [function (o) { return o.label === 'Custom' ? 'ZZZ' : o.label; }]);\n this.concreteTypes = _.sortBy(options.concreteTypes, [function (o) { return o.label === 'Custom' ? 'ZZZ' : o.label; }]);\n this.concreteClasses = _.sortBy(options.concreteClasses, [function (o) { return o.label === 'Custom' ? 'ZZZ' : o.label; }]);\n this.concreteStrengths = _.sortBy(options.concreteStrengths, [function (o) { return o.label; }]);\n this.reinforcementSteelGrades = _.sortBy(options.reinforcementSteelGrades, [function (o) { return o.label; }]);\n this.sheetingOrientations = _.sortBy(options.sheetingOrientations, [function (o) { return o.label; }]);\n this.shearConnectionDegrees = _.sortBy(options.shearConnectionDegrees, [function (o) { return o.label; }]);\n this.shearConnectorOrientations = _.sortBy(options.shearConnectorOrientations, [function (o) { return o.label; }]);\n this.filteredConnectorOrientations = this.shearConnectorOrientations;\n this.shearConnectorTypes = _.sortBy(options.shearConnectorTypes, [function (o) { return o.id; }]);\n this.filteredConnectorTypes = this.shearConnectorTypes;\n this.deflectionLimits = _.sortBy(options.deflectionLimits, [function (o) { return o.label; }]);\n this.liveLoadPercentages = _.sortBy(options.liveLoadPercents, [function (o) { return o.label; }]);\n this.totalLoadDeflections = _.sortBy(options.deflectionLimits, [function (o) { return o.label; }]);\n // @ts-ignore\n this.constructionTypes = _.sortBy(options.constructionTypes, [function (o) { return o.label; }]);\n this.loadCategories = _.sortBy(options.loadCategories, [function (o) { return o.id; }]);\n this.nationalAnnexes = _.sortBy(options.nationalAnnexes, [function (o) { return o.label; }]);\n this.combinationFactors = options.combinationFactors;\n this.partialFactors = options.partialFactors;\n this.walkingActivity = options.walkingActivities;\n this.rhythmicActivity = options.rytmicExitations;\n this.damplings = options.damplings;\n }\n\n public getCurrentProfileSheetings(options, countryNationalAnnexes) {\n const currentNationalProfileSheetings = options.nationalProfileSheetings.filter(function (np) { return np.nationalAnnexId === countryNationalAnnexes; });\n const currentProfileSheetings = currentNationalProfileSheetings.map(function (ps) { return options.profileSheetings.find(op => op.id === ps.profileSheetingId); });\n return _.sortBy(currentProfileSheetings, [function (o) { return o.label === 'Custom' ? 'ZZZ' : o.label; }]);\n }\n\n setBeamLabels = (key: string): void => {\n if (key === 'edge-beam') {\n this.beamLocationB1Text = 'edge-spacing-b1';\n this.beamLocationB2Text = 'adjacent-beam-spacing-b2';\n this.beamLocationB1Error = 'edge-beam-spacing-range';\n this.beamLocationB2Error = 'adjacent-beam-spacing-range';\n } else {\n this.beamLocationB1Text = 'beam-spacing-left';\n this.beamLocationB2Text = 'beam-spacing-right';\n this.beamLocationB1Error = 'left-beam-spacing-range';\n this.beamLocationB2Error = 'right-beam-spacing-range';\n }\n }\n\n setCombinationFactorAndPartialFactors = (loadCategory): void => {\n const nationalAnnex = this.project.countryNationalAnnexes;\n\n if (this.project.designCode === 1) {\n const combinationFactor = this.combinationFactors.\n filter(item => item.nationalAnnexId === nationalAnnex && item.loadCategoryId === loadCategory.id)[0];\n this.subProjectForm.get('combinationFactor').setValue(combinationFactor.value);\n }\n if (this.project.designCode === 2) {\n this.subProjectForm.get('liveLoadReduction').setValue('false');\n }\n }\n\n calcuateLWCDensity(value) {\n if (this.project.designCode === 1) {\n this.calculationsService.getLWCDensity(+value).subscribe(result => {\n this.subProjectForm.get('concreteDensity').setValue(result.density);\n })\n }\n else {\n this.subProjectForm.get('concreteDensity').setValue(value);\n }\n }\n\n activateValueChanges() {\n this.subProjectForm.get('subprojectName').valueChanges.pipe(debounceTime(200)).subscribe(data => {\n this.updateNav();\n });\n\n this.subProjectForm.get('aggregatesDensity').valueChanges.pipe(debounceTime(200)).subscribe(data => {\n this.calcuateLWCDensity(data);\n });\n\n this.subProjectForm.get('loadCategory').valueChanges.pipe(debounceTime(500)).subscribe(data => {\n this.onLoadCategoryChange(data);\n });\n\n // Beam Geometry\n this.subProjectForm.get('beamLocation').valueChanges.pipe(debounceTime(500)).subscribe(data => {\n this.subProjectForm.get('beamSpacingLeft').updateValueAndValidity();\n this.onBeamLocationChange(data);\n });\n this.subProjectForm.get('beamLength').valueChanges.pipe(debounceTime(500)).subscribe(data => {\n this.onBeamLengthChange(data);\n });\n this.subProjectForm.get('beamSpacingRight').valueChanges.pipe(debounceTime(500)).subscribe(data => {\n this.subProjectForm.get('rightOpeningPosition').updateValueAndValidity();\n this.onBeamSpacingRightChange(data);\n });\n this.subProjectForm.get('beamSpacingLeft').valueChanges.pipe(debounceTime(500)).subscribe(data => {\n this.subProjectForm.get('leftOpeningPosition').updateValueAndValidity();\n this.onBeamSpacingLeftChange(data);\n });\n this.subProjectForm.get('leftOpening').valueChanges.subscribe(data => {\n this.onLeftOpeningChange(data);\n this.validateAndDrawBeamGeometry();\n });\n this.subProjectForm.get('leftOpeningPosition').valueChanges.pipe(debounceTime(500)).subscribe(data => {\n this.validateAndDrawBeamGeometry();\n });\n this.subProjectForm.get('rightOpening').valueChanges.subscribe(data => {\n this.onRightOpeningChange(data);\n this.validateAndDrawBeamGeometry();\n });\n this.subProjectForm.get('rightOpeningPosition').valueChanges.pipe(debounceTime(500)).subscribe(data => {\n this.validateAndDrawBeamGeometry();\n });\n // Materials\n\n this.subProjectForm.get('profileType').valueChanges.pipe(debounceTime(500)).subscribe(data => {\n this.onProfileTypeChange(data);\n });\n\n this.subProjectForm.get('steelProfile').valueChanges.pipe(debounceTime(500)).subscribe(data => {\n this.onSteelProfileChange(data);\n });\n\n this.subProjectForm.get('steelGrade').valueChanges.pipe(debounceTime(500)).subscribe(steelGrade => {\n this.validateAndDrawSteelProfile();\n });\n\n this.subProjectForm.get('elasticImposed').valueChanges.pipe(debounceTime(500)).subscribe(() => {\n this.onElasticImposedChange();\n });\n\n this.subProjectForm.get('steelProfileCustomSteelGradeYieldStrength').valueChanges.pipe(debounceTime(500)).subscribe(data => {\n this.validateAndDrawSteelProfile();\n });\n\n this.subProjectForm.get('steelProfileCustomHeight').valueChanges.pipe(debounceTime(500)).subscribe(data => {\n this.validateAndDrawSteelProfile();\n });\n\n this.subProjectForm.get('steelProfileCustomFlangeWidth').valueChanges.pipe(debounceTime(500)).subscribe(data => {\n this.validateAndDrawSteelProfile();\n });\n\n this.subProjectForm.get('steelProfileCustomWebThickness').valueChanges.pipe(debounceTime(500)).subscribe(data => {\n this.validateAndDrawSteelProfile();\n });\n\n this.subProjectForm.get('profileSheetingCustomThicknessGage').valueChanges.pipe(debounceTime(500)).subscribe(data => {\n this.onGageThicknessChange(data);\n });\n\n this.subProjectForm.get('steelProfileCustomFlangeThickness').valueChanges.pipe(debounceTime(500)).subscribe(data => {\n this.validateAndDrawSteelProfile();\n });\n\n this.subProjectForm.get('steelProfileCustomRootRadius').valueChanges.pipe(debounceTime(500)).subscribe(data => {\n this.validateAndDrawSteelProfile();\n });\n\n this.subProjectForm.get('concreteType').valueChanges.pipe(debounceTime(500)).subscribe(concreteType => {\n this.onConcreteTypeChange(concreteType);\n });\n\n this.subProjectForm.get('profiledSheetingType').valueChanges.pipe(debounceTime(500)).subscribe(data => {\n this.onProfiledSheetingTypeChange(data);\n });\n\n this.subProjectForm.get('profiledSheetingCustomThickness').valueChanges.pipe(debounceTime(1000)).subscribe(data => {\n this.getSlabDrawing();\n });\n\n this.subProjectForm.get('profiledSheetingCustomDeckDepth').valueChanges.pipe(debounceTime(500)).subscribe(data => {\n this.getSlabDrawing();\n });\n\n this.subProjectForm.get('profiledSheetingCustomTroughSpacing').valueChanges.pipe(debounceTime(500)).subscribe(data => {\n this.getSlabDrawing();\n });\n\n this.subProjectForm.get('profiledSheetingCustomBottomWidth').valueChanges.pipe(debounceTime(500)).subscribe(data => {\n this.subProjectForm.get('profiledSheetingCustomTroughSpacing').updateValueAndValidity();\n this.getSlabDrawing();\n });\n\n this.subProjectForm.get('profiledSheetingCustomTopWidth').valueChanges.pipe(debounceTime(500)).subscribe(data => {\n this.subProjectForm.get('profiledSheetingCustomTroughSpacing').updateValueAndValidity();\n this.getSlabDrawing();\n });\n\n this.subProjectForm.get('profiledSheetingCustomNumberRibStiffeners').valueChanges.pipe(debounceTime(500)).subscribe(data => {\n this.onProfiledSheetingCustomNumberRibStiffenersChange(data);\n this.getSlabDrawing();\n });\n\n this.subProjectForm.get('profiledSheetingCustomRibStiffenerWidth').valueChanges.pipe(debounceTime(500)).subscribe(data => {\n this.subProjectForm.get('profiledSheetingCustomBottomWidth').updateValueAndValidity();\n this.getSlabDrawing();\n });\n\n this.subProjectForm.get('profiledSheetingCustomStiffenersSpacing').valueChanges.pipe(debounceTime(500)).subscribe(data => {\n this.subProjectForm.get('profiledSheetingCustomBottomWidth').updateValueAndValidity();\n this.getSlabDrawing();\n });\n\n this.subProjectForm.get('profiledSheetingCustomSurfaceWeight').valueChanges.pipe(debounceTime(500)).subscribe(data => {\n this.getSlabDrawing();\n });\n\n this.subProjectForm.get('profiledSheetingCustomYieldStrength').valueChanges.pipe(debounceTime(500)).subscribe(data => {\n this.getSlabDrawing();\n });\n\n this.subProjectForm.get('profiledSheetingOrientation').valueChanges.pipe(debounceTime(500)).subscribe(data => {\n this.onProfiledSheetingOrientationChange(data);\n });\n\n this.subProjectForm.get('slabType').valueChanges.subscribe(slabType => {\n this.onSlabTypeChange(slabType);\n });\n\n this.subProjectForm.get('slabThickness').valueChanges.pipe(debounceTime(500)).subscribe(slabThickness => {\n this.onSlabThicknessChange(slabThickness);\n });\n\n this.subProjectForm.get('haunchHeight').valueChanges.pipe(debounceTime(500)).subscribe(data => {\n this.onHaunchHeightChange(data);\n });\n\n this.subProjectForm.get('liveLoadInConstruction').valueChanges.pipe(debounceTime(500)).subscribe(data => {\n this.onLiveLoadInConstructionChanges(data);\n });\n\n this.subProjectForm.get('permanentLoad').valueChanges.pipe(debounceTime(500)).subscribe(data => {\n this.onPermanentLoadChanges(data);\n });\n\n\n this.subProjectForm.get('userSelfWeight').valueChanges.pipe(debounceTime(1000)).subscribe(userWeight => {\n this.onUserSelfWeightChanges(userWeight);\n });\n\n this.subProjectForm.get('liveLoad').valueChanges.pipe(debounceTime(1000)).subscribe(userLiveLoad => {\n this.onLiveLoadChanges(userLiveLoad);\n });\n\n this.subProjectForm.get('shearConnectionType').valueChanges.pipe(debounceTime(500)).subscribe(data => {\n this.onShearConnectorTypeChanges(data);\n });\n\n this.subProjectForm.get('shearConnectionDegree').valueChanges.pipe(debounceTime(500)).subscribe(data => {\n this.onShearConnectionDegreeChanges(data);\n });\n\n\n this.subProjectForm.get('shearConnectionOrientation').valueChanges.pipe(debounceTime(500)).subscribe(data => {\n this.onShearConnectionOrientationChanges(data);\n });\n\n this.subProjectForm.get('coverRequired').valueChanges.pipe(debounceTime(500)).subscribe(data => {\n this.onConverRequiredChanges(data);\n });\n\n this.subProjectForm.get('overrideSelfWeight').valueChanges.pipe(debounceTime(500)).subscribe(data => {\n this.onOverrideSelfWeightChanged(data);\n });\n\n this.subProjectForm.get('overrideLiveLoad').valueChanges.pipe(debounceTime(500)).subscribe(data => {\n this.onOverrideLiveLoadChanged(data);\n });\n this.subProjectForm.get('walkingActivity').valueChanges.pipe(debounceTime(500)).subscribe(data => {\n this.onWalkingActivityChange(data);\n });\n this.subProjectForm.get('rhythmicExcitationCheck').valueChanges.subscribe(data => {\n this.onRytmicExcitationCheckchange(data);\n });\n\n this.subProjectForm.get('steelStandardNZS').valueChanges.pipe(debounceTime(500)).subscribe(data => {\n this.onSteelStandardChange(data);\n });\n\n this.subProjectForm.get('walkingExcitation').valueChanges.pipe(debounceTime(500)).subscribe(data => {\n this.onWalkingExcitationChange(data);\n });\n }\n\n public onWalkingExcitationChange(data: boolean) {\n if (data) {\n this.subProjectForm.get('walkingActivity').enable();\n } else {\n this.subProjectForm.get('walkingActivity').disable();\n }\n }\n\n public onRytmicExcitationCheckchange(data) {\n if (!data) {\n this.subProjectForm.get('rhythmicActivity').disable();\n } else {\n this.subProjectForm.get('rhythmicActivity').enable();\n }\n }\n\n public onWalkingActivityChange(data) {\n if (data.value === 1) {\n this.subProjectForm.get('dampling').setValue(this.damplings.find(x => x.value === 0.02));\n if (this.project.designCode === 2) {\n this.subProjectForm.get('dampling').disable({ emitEvent: false });\n this.displayWalkingExitationNote = true;\n }\n } else {\n this.subProjectForm.get('dampling').enable({ emitEvent: false });\n this.displayWalkingExitationNote = false;\n }\n }\n\n onLoadCategoryChange = (loadCategory) => {\n this.setCombinationFactorAndPartialFactors(loadCategory);\n }\n\n onBeamLocationChange = (beamLocation) => {\n this.setBeamLabels(beamLocation.labelKey);\n if (beamLocation.id === 2) {\n this.subProjectForm.get('leftOpening').setValue(false);\n this.subProjectForm.get('leftOpeningPosition').updateValueAndValidity();\n }\n this.setBeamSpacingValidators(beamLocation.id);\n this.validateAndDrawBeamGeometry();\n }\n\n setBeamSpacingValidators(beamLocationId: any) {\n if (this.project.unit === 1) {\n // tslint:disable-next-line:max-line-length\n this.validationValues.beamSpacingLeft.min = (beamLocationId === 2 ? SubProjectComponent.BEAM_SPACING_INTERMEDIATE_METRIC_MIN : SubProjectComponent.BEAM_SPACING_EDGE_METRIC_MIN);\n this.validationValues.beamSpacingLeft.max = SubProjectComponent.BEAM_LENGTH_METRIC.max;\n this.validationValues.beamSpacingRight.min = SubProjectComponent.BEAM_SPACING_EDGE_METRIC_MIN;\n this.validationValues.beamSpacingRight.max = SubProjectComponent.BEAM_LENGTH_METRIC.max;\n } else {\n // tslint:disable-next-line:max-line-length\n this.validationValues.beamSpacingLeft.min = (beamLocationId === 2 ? SubProjectComponent.BEAM_SPACING_INTERMEDIATE_IMPERIAL_MIN : SubProjectComponent.BEAM_SPACING_EDGE_IMPERIAL_MIN);\n this.validationValues.beamSpacingLeft.max = SubProjectComponent.BEAM_LENGTH_IMPERIAL.max;\n this.validationValues.beamSpacingRight.min = SubProjectComponent.BEAM_SPACING_EDGE_IMPERIAL_MIN;\n this.validationValues.beamSpacingRight.max = SubProjectComponent.BEAM_LENGTH_IMPERIAL.max;\n }\n }\n\n onProfileTypeChange = (profileType) => {\n if (!profileType) {\n return;\n }\n if (profileType.profileRange !== 'Custom') {\n if (this.project.designCode === 2) {\n this.steelProfilesPerRange = _\n .sortBy(\n this.steelprofiles.filter(p => p.steelProfileRange.id === profileType.id),\n o => o.id).reverse();\n } else {\n this.steelProfilesPerRange = this.steelprofiles.filter(p => p.steelProfileRange.id === profileType.id);\n }\n\n let profile = this.steelProfilesPerRange.find(x => x.label === this.subProjectModel.steelProfile.profileName);\n if (!profile) {\n profile = this.steelProfilesPerRange[0];\n }\n this.subProjectForm.get('steelProfile').setValue(profile);\n } else {\n const profile = { label: 'Custom' };\n this.subProjectForm.get('steelProfile').setValue(profile);\n }\n this.setCustomSteelProfileValidators();\n this.validateAndDrawSteelProfile();\n }\n\n onBeamLengthChange = (length) => {\n this.validateAndDrawBeamGeometry();\n }\n\n onBeamSpacingLeftChange = (spacing) => {\n this.validateAndDrawBeamGeometry();\n }\n\n onBeamSpacingRightChange = (spacing) => {\n this.validateAndDrawBeamGeometry();\n }\n\n onLeftOpeningChange = (data) => {\n const control = this.subProjectForm.get('leftOpeningPosition');\n if (data) {\n control.setValue(this.subProjectForm.value.beamSpacingLeft / 2);\n }\n control.updateValueAndValidity();\n }\n\n onRightOpeningChange = (data) => {\n const control = this.subProjectForm.get('rightOpeningPosition');\n if (data) {\n control.setValue(this.subProjectForm.value.beamSpacingRight / 2);\n }\n control.updateValueAndValidity();\n }\n\n\n onSteelProfileChange = (steelProfile) => {\n this.selectedSteelProfile = steelProfile;\n this.subProjectForm.value.steelProfile.profileName = steelProfile.label;\n this.subProjectForm.value.steelProfile.label = steelProfile.label;\n this.subProjectForm.value.steelProfile.height = steelProfile.height;\n this.subProjectForm.value.steelProfile.flangeWidth = steelProfile.flangeWidth;\n this.subProjectForm.value.steelProfile.webThickness = steelProfile.webThickness;\n this.subProjectForm.value.steelProfile.rootRadius = steelProfile.rootRadius;\n this.subProjectForm.value.steelProfile.radius = steelProfile.radius;\n this.validateAndDrawSteelProfile();\n }\n\n onElasticImposedChange = () => {\n this.subProjectForm.get('shearConnectionDegree').setValue(_.first(this.shearConnectionDegrees));\n }\n\n onProfiledSheetingTypeChange = (profiledSheetingType) => {\n this.filteredConnectorOrientations = this.shearConnectorOrientationFiltered();\n const label = profiledSheetingType ? profiledSheetingType.label : '';\n if (label === 'Custom') {\n this.subProjectForm.value.profiledSheetingType = { label: 'Custom' };\n }\n this.getSlabDrawing();\n }\n\n onProfiledSheetingCustomNumberRibStiffenersChange = (number) => {\n if (number < 2) {\n this.subProjectForm.get('profiledSheetingCustomStiffenersSpacing').setValue(0);\n }\n if (number < 1) {\n this.subProjectForm.get('profiledSheetingCustomRibStiffenerWidth').setValue(0);\n }\n }\n\n validateAndSetShearConnectionOrientation() {\n const orientation = this.subProjectForm.get('shearConnectionOrientation').value;\n if (!this.filteredConnectorOrientations.find(i => i.id === orientation.id)) {\n this.subProjectForm.get('shearConnectionOrientation').setValue(_.last(this.filteredConnectorOrientations));\n } else {\n this.subProjectForm.get('shearConnectionOrientation').setValue(orientation);\n }\n }\n\n onProfiledSheetingOrientationChange = (profiledSheetingOrientation) => {\n this.filteredConnectorOrientations = this.shearConnectorOrientationFiltered();\n const orientation = this.subProjectForm.get('shearConnectionOrientation').value;\n this.validateAndSetShearConnectionOrientation();\n this.getSlabDrawing();\n }\n\n handleSlabThicknessChanges = (slabThickness: number) => {\n this.filteredConnectorTypes = this.shearConnectorTypesFiltered() || [];\n if (this.filteredConnectorTypes.length > 0) {\n this.subProjectForm.get('shearConnectionType').setValue(_.last(this.filteredConnectorTypes), {\n emitEvent: true,\n emitViewToModelChange: true\n });\n this.getSlabDrawing();\n }\n }\n\n onSlabThicknessChange = (slabThickness) => {\n this.filteredConnectorTypes = this.shearConnectorTypesFiltered();\n this.subProjectForm.get('shearConnectionType').setValue(_.last(this.filteredConnectorTypes));\n this.handleSlabThicknessChanges(slabThickness);\n }\n\n onHaunchHeightChange = (haunchHeight) => {\n this.filteredConnectorTypes = this.shearConnectorTypesFiltered();\n this.subProjectForm.get('shearConnectionType').setValue(_.last(this.filteredConnectorTypes));\n this.getSlabDrawing();\n }\n\n onConcreteTypeChange = (concreteType) => {\n this.concreteClassesPerConcreteType = this.getConcreteClasses(this.project.countryNationalAnnexes, concreteType.id);\n if (this.concreteClassesPerConcreteType && this.concreteClassesPerConcreteType.length > 0) {\n const concreteClass = this.concreteClassesPerConcreteType[0];\n this.subProjectForm.get('concreteClass').setValue(concreteClass);\n }\n if (concreteType.id === 2) {\n this.subProjectForm.get('concreteDensity').setValue(this.project.unit === 1 ? 1800 : 90);\n this.subProjectForm.get('aggregatesDensity').setValue(this.project.unit === 1 ? 1800 : 90);\n this.validateAndDrawSteelProfile();\n } else {\n this.subProjectForm.get('concreteDensity').setValue(this.project.unit === 1 ? 2500 : 155);\n this.validateAndDrawSteelProfile();\n }\n\n this.updateCustomDefinedConcreteRangeValidationRules(concreteType);\n\n if (this.subProjectForm.controls.concreteStrength.value.label === 'Custom') {\n this.subProjectForm.controls.concreteStrengthUS.updateValueAndValidity();\n }\n }\n\n onSlabTypeChange = (slabType: models.ConcreteSlab) => {\n this.filteredConnectorTypes = this.shearConnectorTypesFiltered();\n this.subProjectForm.get('shearConnectionType').setValue(_.last(this.filteredConnectorTypes),\n { emitEvent: true, emitViewToModelChange: true });\n\n if (slabType.id === 1 || slabType.id === 3) { // Solid Slab Id = 1\n this.setSolidSlab();\n // TODO: Solid Slab Drawing needs to be verified with Engineering team\n this.slabDrawing1 = '';\n this.slabDrawing2 = '';\n } else {\n this.setProfileSheeting(); // Set the default values for Profile Sheeting\n }\n this.subProjectForm.get('haunchHeight').setValue(0);\n this.getSlabDrawing();\n }\n\n onLiveLoadInConstructionChanges = (load: number) => {\n this.subProjectModel.load.loadCases[0].distributedSurfaceLoad = load;\n if (this.selectedTab === SubProjectComponent.LOADS) {\n this.getLoadDrawing(0);\n }\n }\n\n onPermanentLoadChanges = (load: number) => {\n this.subProjectModel.load.loadCases[1].distributedSurfaceLoad = load;\n if (this.selectedTab === SubProjectComponent.LOADS) {\n this.getLoadDrawing(1);\n }\n }\n\n\n onUserSelfWeightChanges = (userWeight: number) => {\n this.subProjectModel.load.userCompositeSelfWeight = userWeight;\n if (this.selectedTab === SubProjectComponent.LOADS) {\n this.getLoadDrawing(1);\n }\n }\n\n onLiveLoadChanges = (userLiveLoad: number) => {\n this.subProjectModel.load.loadCases[2].distributedSurfaceLoad = userLiveLoad;\n if (this.selectedTab === SubProjectComponent.LOADS) {\n this.getLoadDrawing(2);\n }\n }\n\n onShearConnectorTypeChanges = (shearConnectorType) => {\n this.filteredConnectorOrientations = this.shearConnectorOrientationFiltered();\n if (this.filteredConnectorOrientations.length > 0) {\n this.validateAndSetShearConnectionOrientation();\n if (this.filteredConnectorOrientations.length === 1) {\n this.subProjectForm.get('shearConnectionOrientation').disable();\n } else {\n this.subProjectForm.get('shearConnectionOrientation').enable();\n }\n }\n this.isFormValid();\n this.drawCompositeDrawings();\n }\n\n onShearConnectionDegreeChanges = (shearConnectionDegree) => {\n this.drawCompositeDrawings();\n }\n\n onShearConnectionOrientationChanges = (shearConnectionOrientation) => {\n this.drawCompositeDrawings();\n }\n\n displayInfoMessage = (coverRequired) => {\n if (coverRequired && coverRequired === true) {\n this.displayCoverRequiredYes = true;\n this.displayCoverRequiredNo = false;\n } else {\n this.displayCoverRequiredNo = true;\n this.displayCoverRequiredYes = false;\n }\n }\n\n onConverRequiredChanges = (coverRequired) => {\n this.displayInfoMessage(coverRequired);\n this.filteredConnectorTypes = this.shearConnectorTypesFiltered();\n this.filteredConnectorOrientations = this.shearConnectorOrientationFiltered();\n this.subProjectForm.get('shearConnectionType').setValue(_.last(this.filteredConnectorTypes),\n { emitEvent: true, emitViewToModelChange: true });\n this.drawCompositeDrawings();\n }\n\n onOverrideSelfWeightChanged = (event) => {\n this.overrideSelfWeight = event;\n if (!event) {\n this.subProjectModel.load.userCompositeSelfWeight = this.calculatedSelfWeightDisplay;\n this.subProjectForm.get('userSelfWeight').setValue(this.calculatedSelfWeightDisplay);\n }\n }\n\n onOverrideLiveLoadChanged = (event) => {\n this.overrideLiveLoad = event;\n if (!event) {\n this.subProjectForm.get('liveLoad').setValue(this.calculatedLiveLoadDisplay);\n this.subProjectModel.load.loadCases[2].distributedSurfaceLoad = this.calculatedLiveLoadDisplay;\n }\n }\n\n setSolidSlab = () => {\n this.profiledSheetingDrawing = '';\n this.subProjectModel.profileSheeting = { id: this.subProjectModel.profileSheeting && this.subProjectModel.profileSheeting.id || 0 };\n }\n\n setProfileSheeting = () => {\n this.subProjectForm.get('profiledSheetingType').setValue(this.profileSheetings[0]);\n this.subProjectForm.get('profiledSheetingOrientation').setValue(this.sheetingOrientations.filter(item =>\n item.id === SubProjectComponent.DEFAULT_ID)[0]);\n }\n\n validateAndDrawBeamGeometry = (): void => {\n if (this.isValidBeamGeometryDrawing()) {\n this.getBeamGeometryDrawing(300, SubProjectComponent.DRAWING_HEIGHT);\n }\n }\n\n validateAndDrawSteelProfile = (): void => {\n this.subProjectForm.get('steelProfileCustomHeight').updateValueAndValidity({ emitEvent: false });\n if (this.isValidSteelProfile()) {\n this.getSteelSectionDrawing(300, SubProjectComponent.DRAWING_HEIGHT);\n } else {\n this.steelSectionDrawingStream1 = '';\n this.steelSectionDrawingStream2 = '';\n }\n }\n\n validateAndDrawProfileSheeting = (): void => {\n if (this.subProjectForm.value.slabType.value === 1) {\n if (this.isValidSlabDrawing()) {\n this.getProfiledSheetingDrawing(300, SubProjectComponent.DRAWING_HEIGHT);\n } else {\n this.profiledSheetingDrawing = '';\n }\n }\n }\n\n private isCalculationError = (response: any): boolean => {\n this.calculateError = (!response || (response.errorCodes && response.errorCodes.length > 0));\n const pdfError = this.calculateError && response.errorCodes.length === 1 && response.errorCodes[0] === 998;\n const calculationErrors = this.calculateError && !pdfError;\n return calculationErrors;\n }\n\n private handleDesignResult = (response: any): void => {\n if (response.designCriteriaOk) {\n } else {\n if (!this.calculateError) {\n } else {\n this.sharedService.popFailure('error-on-calculate');\n }\n }\n }\n\n private isPdfError = (response: any): boolean => {\n this.calculateError = (!response || (response.errorCodes && response.errorCodes.length > 0));\n const pdfError = this.calculateError && response.errorCodes.length === 1 && response.errorCodes[0] === 998;\n return pdfError;\n }\n\n private updateCalculationConnectionZonesDrawings(response: models.Calculate.CalculationResult) {\n const connectionZones = this.getObservableConnectionZonesDrawing(\n response.shearConnectionResult,\n SubProjectComponent.DRAWING_WIDTH,\n SubProjectComponent.DRAWING_HEIGHT);\n const subscribe = connectionZones.subscribe(drawingStream => {\n let connectionZoneDrawing = '';\n if (drawingStream) {\n connectionZoneDrawing = `data:image/jpg;base64,${drawingStream}`;\n }\n this.calculateComponent.updateConnectionZones(connectionZoneDrawing);\n }, error => {\n console.log('Error getting the connection zones drawings');\n this.calculateComponent.updateConnectionZones('');\n });\n }\n\n private updateCalculationZonesDrawings(response: models.Calculate.CalculationResult) {\n this.updateCalculationConnectionZonesDrawings(response);\n const observables = [];\n const shearConnectionResult = response.shearConnectionResult;\n\n for (let _i = 0; _i < shearConnectionResult.numberOfZones; _i++) {\n const compositeCrossSectionDrawing = this.getObservableCompositeCrossSectionDrawing(\n SubProjectComponent.DRAWING_WIDTH,\n SubProjectComponent.DRAWING_HEIGHT,\n shearConnectionResult.listOfNumberOfRows[_i + 1]);\n const compositeBeamDrawing = this.getObservableCompositeBeamDrawing(\n SubProjectComponent.DRAWING_WIDTH,\n SubProjectComponent.DRAWING_HEIGHT,\n shearConnectionResult.listOfNumberOfRows[_i + 1],\n shearConnectionResult.listOfConnectorsSpacing[_i + 1]);\n observables.push(\n observableConcat(\n observableOf(shearConnectionResult.listOfNumberOfConnectors[_i + 1]),\n observableOf(shearConnectionResult.listOfNumberOfRows[_i + 1]),\n observableOf(shearConnectionResult.listOfConnectorsSpacing[_i + 1]),\n observableOf(shearConnectionResult.listOfLeftPosition[_i + 1]),\n observableOf(shearConnectionResult.listOfRightPosition[_i + 1]),\n compositeCrossSectionDrawing,\n compositeBeamDrawing).pipe(toArray()));\n }\n\n const combine = observableZip(...observables);\n const subscribe = combine.subscribe(zoneStreams => {\n const zones = [];\n if (zoneStreams) {\n for (const zoneStream of zoneStreams) {\n zones.push({\n numberOfConnectors: zoneStream[0],\n numberOfRows: zoneStream[1],\n connectorsSpacing: zoneStream[2],\n leftPosition: zoneStream[3],\n rightPosition: zoneStream[4],\n connectorDrawing1: `data:image/jpg;base64,${zoneStream[5]}`,\n connectorDrawing2: `data:image/jpg;base64,${zoneStream[6]}`\n });\n }\n }\n this.calculateComponent.updateZones(zones);\n }, error => {\n console.log('Error getting the zone drawings');\n this.calculateComponent.updateZones([]);\n });\n }\n\n private clearCalculationDrawings() {\n this.calculateComponent.updateConnectionZones('');\n this.calculateComponent.updateZones([]);\n }\n private calculate = (): void => {\n if (this.subProjectForm.valid) {\n this.clearCalculationDrawings();\n this.enableReportButton = true;\n const subProject = this.mapModel();\n // Calculate the loads to make sure they are all in sync with the parameters selected\n const o1 = this.getObservableDefaultCompositeSelfWeight();\n const o2 = this.getObservableDefaultLiveLoad();\n const combine = observableZip(o1, o2);\n this.sharedService.showLoader(true);\n this.calculationResponse = null;\n const subscribe = combine.subscribe((defaultLoads: any) => {\n // console.log('Calculate Loads and Drawings ', defaultLoads);\n if (defaultLoads && defaultLoads.length !== 0) {\n this.resetDefaultLoadsOnForm(defaultLoads, false);\n }\n const createCommand = this.getReportData();\n this.calculateInput = createCommand;\n this.calculationsService.getCalculationResults(createCommand).subscribe((response) => {\n this.sharedService.showLoader(false);\n this.calculateError = (!response || (response.errorCodes && response.errorCodes.length > 0));\n if (!this.calculateError) {\n console.log('No errors in Calculations');\n this.handleDesignResult(response);\n this.calculateComponent.updateCalculations(createCommand, response);\n this.calculationResponse = response;\n // Need number of rows to display calculate drawings, hence calling calculation drawings after calling calculate\n // this.updateCalculationDrawings(response);\n this.updateCalculationZonesDrawings(response);\n } else if (this.isCalculationError(response) && this.isPdfError) {\n // If it is just pdf Error then go ahead and call update drawings\n console.log('Errors in Calculations, but they are just pdf Errors');\n this.handleCalculateError();\n this.handleDesignResult(response);\n this.calculateComponent.updateCalculations(createCommand, response);\n // If it is just pdf Error then go ahead and call update drawings\n // this.updateCalculationDrawings(response);\n this.updateCalculationZonesDrawings(response);\n } else {\n // If calculation error and not pdf error then that means there is an issue\n if (this.isCalculationError(response) && !this.isPdfError) {\n this.sharedService.popFailure('calculations-not-ok');\n this.handleCalculateError();\n const errorLabels = response.errorCodes.map(item => 'error-code-' + item);\n console.log('Error Labels ', errorLabels);\n this.calculateComponent.updateErrors(errorLabels);\n }\n }\n }, error => {\n this.calculationResponse = null;\n this.handleCalculateError();\n this.calculateComponent.updateErrors(error ? error.errors : []);\n this.sharedService.popFailure('subproject-calculate-failure');\n }, () => {\n this.sharedService.showLoader(false);\n });\n });\n }\n }\n\n handleCalculateError = () => {\n this.sharedService.showLoader(false);\n this.enableReportButton = false;\n }\n\n onTabSelected = (event) => {\n this.selectedTab = event.index;\n\n if (event.index === SubProjectComponent.CALCULATE) { // calculate Tab\n this.calculate();\n }\n\n if (event.index === SubProjectComponent.SLAB) {\n this.getSlabDrawing();\n }\n\n if (event.index === SubProjectComponent.LOADS) {\n this.handleDefaultLoads(true);\n }\n\n if (event.index === SubProjectComponent.ADDITIONAL_LOADS) {\n this.lineloadsComponent.populateLineLoadsData(this.subProjectModel.load.loadCases[3].lineLoads,\n this.subProjectModel.load.loadCases[1].lineLoads);\n this.pointloadsComponent.populatePointLoadsData(this.subProjectModel.load.loadCases[3].pointLoads,\n this.subProjectModel.load.loadCases[1].pointLoads);\n this.getLiveLineLoadsDrawing();\n this.getDeadLineLoadsDrawing();\n this.getLivePointLoadsDrawing();\n this.getDeadPointLoadsDrawing();\n this.getLoadDrawing(3);\n this.getBeamLoadDrawing(SubProjectComponent.ADDITIONAL_LOAD_DRAWING_WIDTH, SubProjectComponent.LOAD_DRAWING_HEIGHT);\n }\n\n if (event.index === SubProjectComponent.BEAM_GEOMETRY) {\n this.validateAndDrawBeamGeometry();\n }\n\n if (event.index === SubProjectComponent.MATERIAL) {\n this.validateAndDrawSteelProfile();\n this.validateAndDrawProfileSheeting();\n }\n\n if (event.index === SubProjectComponent.CONNECTOR) {\n this.filteredConnectorTypes = this.shearConnectorTypesFiltered() || [];\n this.filteredConnectorOrientations = this.shearConnectorOrientationFiltered();\n this.drawCompositeDrawings();\n }\n }\n\n resetDefaultLoadsOnForm = (data: any, getDrawings: boolean) => {\n if (data === null || data.length !== 2) {\n return;\n }\n if (this.calculatedSelfWeightDisplay !== UnitHelper.roundLoadFromApi(data[0], this.project.loadUnit)\n || this.calculatedSelfWeightNewtons === 0 || this.subProjectForm.get('userSelfWeight').value === 0) {\n this.calculatedSelfWeightNewtons = data[0];\n this.calculatedSelfWeightDisplay = UnitHelper.roundLoadFromApi(data[0], this.project.loadUnit);\n this.subProjectForm.get('selfWeight').setValue(this.calculatedSelfWeightDisplay);\n this.subProjectForm.get('userSelfWeight').setValue(this.calculatedSelfWeightDisplay);\n this.overrideSelfWeight = false;\n this.subProjectModel.load.userCompositeSelfWeight = this.calculatedSelfWeightDisplay;\n }\n // Set the Live load value to default live load\n if (this.calculatedLiveLoadDisplay !== UnitHelper.roundLoadFromApi(data[1], this.project.loadUnit)\n || this.calculatedLiveLoadNewtons === 0 || this.subProjectForm.get('liveLoad').value === 0) {\n this.calculatedLiveLoadNewtons = data[1];\n this.calculatedLiveLoadDisplay = UnitHelper.roundLoadFromApi(data[1], this.project.loadUnit);\n this.subProjectForm.get('defaultLiveLoad').setValue(this.calculatedLiveLoadDisplay);\n this.subProjectForm.get('liveLoad').setValue(this.calculatedLiveLoadDisplay);\n this.subProjectModel.load.loadCases[2].distributedSurfaceLoad = this.calculatedLiveLoadDisplay;\n this.overrideLiveLoad = false;\n }\n // console.log('Load Tab Clicked, calling Standard Load', this.subProjectModel);\n if (getDrawings) {\n this.getStandardLoadDrawings();\n }\n }\n\n handleDefaultLoads = (getDrawings: boolean) => {\n const o1 = this.getObservableDefaultCompositeSelfWeight();\n const o2 = this.getObservableDefaultLiveLoad();\n const combine = observableZip(o1, o2);\n const subscribe = combine.subscribe((defaultLoads: any) => {\n // console.log(defaultLoads);\n if (defaultLoads && defaultLoads.length !== 0) {\n this.resetDefaultLoadsOnForm(defaultLoads, getDrawings);\n }\n });\n }\n\n drawCompositeDrawings = (): void => {\n this.drawCompositeSubject.next();\n }\n\n debouncedCompositeDrawings = () => {\n this.getCompositeBeamDrawing(SubProjectComponent.DRAWING_WIDTH, SubProjectComponent.DRAWING_HEIGHT, 1);\n this.getCompositeCrossSectionDrawing(SubProjectComponent.DRAWING_WIDTH, SubProjectComponent.DRAWING_HEIGHT, 1);\n // console.log('debouncedCompositeDrawings called');\n }\n\n backToProject = (): void => {\n this.router.navigate(['/project', { id: this.projectId }]);\n }\n\n backToProjects = (): void => {\n this.router.navigate(['/projects']);\n }\n\n private resetLoadIds = (subProject: models.SubProject): void => {\n if (subProject.load && subProject.load.loadCases && subProject.load.loadCases.length > 0) {\n subProject.load.loadCases.forEach(loadcase => {\n loadcase.pointLoads.forEach(pointLoad => {\n pointLoad.id = pointLoad.id > 0 ? pointLoad.id : 0;\n });\n loadcase.lineLoads.forEach(lineLoad => {\n lineLoad.id = lineLoad.id > 0 ? lineLoad.id : 0;\n lineLoad.originLoad.id = lineLoad.originLoad.id > 0 ? lineLoad.originLoad.id : 0;\n lineLoad.endLoad.id = lineLoad.endLoad.id > 0 ? lineLoad.endLoad.id : 0;\n });\n });\n }\n }\n\n public saveSubProject = (doLeave: boolean): void => {\n if (!this.subProjectForm.valid) {\n this.onSaveFailure('form error', false);\n this.showSaveOnDestroyDialog = false;\n return;\n }\n const updatedModel = this.mapModel();\n updatedModel.load = this.transformLoadsForSave(updatedModel.load);\n console.log('updatedModel ->', JSON.stringify(updatedModel));\n this.sharedService.showLoader(true);\n if (this.subProjectId > 0) {\n // console.log('Saving Sub project = ', updatedModel);\n this.subProjectService.updateSubProject(updatedModel)\n .subscribe(\n (project) => this.onSaveComplete(project, doLeave),\n (error: any) => this.onSaveFailure(error, false),\n () => this.sharedService.showLoader(false));\n } else {\n // console.log('Create Sub project = ', updatedModel);\n this.subProjectService.createSubProject(updatedModel)\n .subscribe(\n (project) => this.onSaveComplete(project, doLeave),\n (error: any) => this.onSaveFailure(error, false),\n () => this.sharedService.showLoader(false));\n }\n }\n\n private onSaveComplete = (subproject, doLeave: boolean): void => {\n this.subProjectForm.markAsPristine();\n this._saveOnLeaveSubject.next(doLeave);\n this.sharedService.showLoader(false);\n if (this.isNew) {\n this.sharedService.popSuccess('subproject-create-success');\n this.isNew = false;\n } else {\n this.sharedService.popSuccess('subproject-save-success');\n }\n }\n\n private onSaveFailure = (error, doLeave: boolean): void => {\n this._saveOnLeaveSubject.next(doLeave);\n this.sharedService.showLoader(false);\n if (this.isNew) {\n this.sharedService.popFailure('subproject-create-failure');\n } else {\n this.sharedService.popFailure('subproject-save-failure');\n }\n }\n\n public saveAsSubProject() {\n this.saveAsSubProjectName = '';\n this.showSaveAsSubProjectDialog = true;\n }\n\n public createNewSubProjectAndOpen = (): void => {\n const copiedSubProject = this.mapModel();\n const load = this.transformLoadsForSave(copiedSubProject.load);\n copiedSubProject.load = load;\n copiedSubProject.id = 0;\n copiedSubProject.concreteSlab.id = 0;\n copiedSubProject.deformation.id = 0;\n copiedSubProject.load.id = 0;\n copiedSubProject.name = this.saveAsSubProjectName;\n copiedSubProject.profileSheeting.id = 0;\n copiedSubProject.reinforcement.id = 0;\n copiedSubProject.shearConnector.id = 0;\n copiedSubProject.steelProfile.id = 0;\n this.subProjectForm.markAsPristine();\n if (this.saveAsSubProjectName && this.saveAsSubProjectName.length >= 3 &&\n this.isSaveAsSubProjectNameUnique(this.saveAsSubProjectName)) {\n this.disableCreateButton = true;\n this.sharedService.showLoader(true);\n this.subProjectService.createSubProject(copiedSubProject)\n .subscribe((subProject) => this.onSaveAsComplete(subProject),\n (error) => this.onSaveAsFailure(error),\n () => {\n this.sharedService.showLoader(false);\n this.disableCreateButton = false;\n });\n this.showSaveAsSubProjectDialog = false;\n }\n }\n\n private onSaveAsComplete(subProject) {\n this.sharedService.showLoader(false);\n this.sharedService.popSuccess('subproject-create-success');\n this.subProjectId = subProject.id;\n this.init();\n this.router.navigate(['/subproject', { projectId: this.project.id, id: subProject.id }]);\n }\n\n private onSaveAsFailure(error) {\n this.sharedService.popFailure('subproject-create-failure');\n }\n\n initializeLoadCases = (): void => {\n\n }\n\n getPartialFactorFromProject = (project: models.Project): models.PartialFactor => {\n return {\n id: 0, // TODO Nejc: create new interface for project PartialFactor values\n nationalAnnexId: 0, // TODO Nejc: create new interface for project PartialFactor values\n gammaC: project.concrete,\n gammaG: project.ulsGammaG,\n gammaM0: project.structuralSteelSection,\n gammaM1: project.structuralSteelElement,\n gammaQ: project.ulsGammaQ,\n gammaS: project.reinforcement,\n gammaV: project.connector,\n gammaP: project.steelProfile,\n asPhiM: project.asPhiM,\n asPhiMb: project.asPhiMb,\n asPhiVc: project.asPhiVc,\n asPhiVm: project.asPhiVm,\n asPhiS: project.asPhiS,\n asPhiC: project.asPhiC,\n asPhiVf: project.asPhiVf,\n asPhiSC: project.asPhiSC,\n asPhiSR: project.asPhiSR\n };\n }\n\n\n private mapModel = (): models.SubProject => {\n const subProject: models.SubProject = {\n 'id': this.subProjectId || 0,\n 'loadCategory': this.subProjectForm.value.loadCategory.id,\n 'combinationFactor': this.subProjectForm.value.combinationFactor,\n 'liveLoadReduction': this.subProjectForm.value.liveLoadReduction,\n 'projectId': this.projectId,\n 'createdOn': this.subProjectModel.createdOn,\n 'name': this.subProjectForm.value.subprojectName,\n 'beamGeometry': this.getBeamGeometryObject(true),\n 'steelProfile': this.getSteelProfileObject(false),\n 'concreteSlab': this.getConcreteSlabObject(false),\n 'reinforcement': {\n 'id': this.subProjectModel.reinforcement && this.subProjectModel.reinforcement.id || 0,\n 'steelGradeId': this.subProjectForm.value.reinforcementType ? this.subProjectForm.value.reinforcementType.id : 0,\n },\n 'profileSheeting': this.getProfileSheetingObject(false),\n 'partialFactors': this.partialFactor,\n 'shearConnector': {\n 'id': this.subProjectModel.shearConnector && this.subProjectModel.shearConnector.id || 0,\n 'connectionDegreeId': this.subProjectForm.value.shearConnectionDegree && this.subProjectForm.value.shearConnectionDegree.id || 0,\n 'connectorTypeId': this.subProjectForm.value.shearConnectionType && this.subProjectForm.value.shearConnectionType.id || 0,\n 'connectorsOrientationId': (this.subProjectForm).controls.shearConnectionOrientation.value\n ? +(this.subProjectForm).controls.shearConnectionOrientation.value.id : 0,\n 'userConnectionDegree': this.subProjectForm.value.userConnectionDegree,\n 'optimizationOption': +!this.subProjectForm.value.optimizationOption\n },\n 'load': {\n 'id': this.subProjectModel.load && this.subProjectModel.load.id || 0,\n 'loadCases': this.subProjectModel.load ? this.subProjectModel.load.loadCases : [],\n 'userCompositeSelfWeight': this.subProjectModel.load ? this.subProjectModel.load.userCompositeSelfWeight : 0\n },\n 'deformation': {\n 'id': this.subProjectModel.deformation && this.subProjectModel.deformation.id || 0,\n 'constructionTypeId': this.subProjectForm.value.constructionType && this.subProjectForm.value.constructionType.id || 0,\n 'precamber': this.subProjectForm.value.precamber || 0,\n 'frequencyLimit': this.subProjectForm.value.frequencyLimit || 3,\n 'totalDeflectionLimit': this.subProjectForm.value.totalLoadDeflection && this.subProjectForm.value.totalLoadDeflection.id || 0,\n 'compositeDeflectionLimit': this.subProjectForm.value.deflectionLimit && this.subProjectForm.value.deflectionLimit.id || 0,\n 'percentageLiveLoad': this.subProjectForm.value.liveLoadPercentage && this.subProjectForm.value.liveLoadPercentage.id || 0,\n 'dampling': this.subProjectForm.getRawValue().dampling && this.subProjectForm.getRawValue().dampling.id || 0,\n 'walkingActivity': (this.subProjectForm.value.walkingActivity ? this.subProjectForm.value.walkingActivity.id : 1),\n 'walkingExcitationCheck': +this.subProjectForm.value.walkingExcitation,\n 'rhythmicExcitationCheck': +this.subProjectForm.value.rhythmicExcitationCheck || 0,\n 'rhythmicActivity': this.subProjectForm.getRawValue().rhythmicActivity.id || 0,\n 'permanentLoadFraction': +this.subProjectForm.getRawValue().permanentLoadFraction || 0,\n 'incrementalDeflectionCheck': +this.subProjectForm.getRawValue().incrementalDeflectionCheck || 0,\n 'performLateralTorsionBucklingCheck': +this.subProjectForm.getRawValue().performLateralTorsionBucklingCheck || 0,\n },\n 'designCode': this.project.designCode\n };\n this.resetLoadIds(subProject); // Reset LoadIds for inserts\n return subProject;\n }\n\n isValidSolidSlab = (): boolean => {\n if (this.subProjectForm.value.slabThickness > 0 && this.subProjectForm.value.slabType.value === 0) {\n return true;\n } else {\n return false;\n }\n }\n\n isValidSteelGrade = (): boolean => {\n if (this.subProjectForm.value.steelGrade && this.subProjectForm.value.steelGrade.value === 3) {\n if (this.subProjectForm.value.steelProfileCustomSteelGradeYieldStrength >= 170 &&\n this.subProjectForm.value.steelProfileCustomSteelGradeYieldStrength <= 355) {\n return true;\n } else {\n return false;\n }\n } else {\n return true;\n }\n }\n\n isValidSteelProfileType = (): boolean => {\n if (this.subProjectForm.value.profileType && this.subProjectForm.value.profileType.profileRange === 'Custom') {\n const isWebThicknessValid = (this.subProjectForm).controls.steelProfileCustomWebThickness.valid;\n const isFlangeThicknessValid = (this.subProjectForm).controls.steelProfileCustomFlangeThickness.valid;\n const isHeightValid = (this.subProjectForm).controls.steelProfileCustomHeight.valid;\n return isWebThicknessValid && isFlangeThicknessValid && isWebThicknessValid && isHeightValid;\n } else {\n return true;\n }\n }\n\n\n isValidSteelProfile = (): boolean => {\n if (this.subProjectForm.value.steelProfile &&\n this.subProjectForm.value.steelProfile.label && this.subProjectForm.value.steelGrade && this.subProjectForm.value.steelGrade.id) {\n return this.isValidSteelProfileType();\n } else {\n return false;\n }\n }\n\n\n getSlabDrawing = (): void => {\n this.getSlabDrawing1(SubProjectComponent.DRAWING_WIDTH, SubProjectComponent.DRAWING_HEIGHT);\n this.getSlabDrawing2(SubProjectComponent.DRAWING_WIDTH, SubProjectComponent.DRAWING_HEIGHT);\n\n }\n\n getSteelSectionDrawing = (width, height) => {\n if (!this.isValidSteelProfile()) {\n // Reset drwaings if the input is not valid\n this.steelSectionDrawingStream1 = '';\n this.steelSectionDrawingStream2 = '';\n return;\n }\n const sp: models.SteelSectionDrawing = {\n 'steelProfile': this.getSteelProfileObject(true),\n 'pictureWidth': width ? width : 400,\n 'pictureHeight': height ? height : 400,\n 'drawingType': 0,\n 'lengthUnit': this.getUnitSystemValue(this.project.unit) === 0 ? 2 : 1,\n 'showSymbol': false,\n 'unitSystem': this.getUnitSystemValue(this.project.unit),\n 'designCode': this.getStandardValue(this.project.designCode)\n };\n\n this.calculationsService.getSteelSectionDrawing(sp).subscribe(drawing => {\n this.steelSectionDrawingStream1 = `data:image/jpg;base64,${drawing}`;\n });\n\n sp.drawingType = 1;\n sp.pictureHeight = width ? width : 400;\n sp.pictureWidth = height ? height : 400;\n this.calculationsService.getSteelSectionDrawing(sp).subscribe(drawing => {\n this.steelSectionDrawingStream2 = `data:image/jpg;base64,${drawing}`;\n });\n }\n\n isValidBeamGeometryDrawing = (): boolean => {\n if (\n this.subProjectForm &&\n this.subProjectForm.value.beamLength\n && this.subProjectForm.value.beamSpacingLeft\n && this.subProjectForm.value.beamSpacingRight\n && this.subProjectForm.value.beamLocation.id) {\n return true;\n } else {\n return false;\n }\n }\n\n getSteelProfileObject = (calculations: boolean): any => {\n const profileUnit = this.subProjectForm.value.steelProfile.unitSystem;\n const isCustomSteelProfile = this.subProjectForm.value.steelProfile && this.subProjectForm.value.steelProfile.label === 'Custom';\n const isCustomSteelGrade = this.subProjectForm.value.steelGrade && this.subProjectForm.value.steelGrade.label === 'Custom';\n if (calculations) {\n return {\n 'id': this.subProjectModel.steelProfile && this.subProjectModel.steelProfile.id || 0,\n 'profileName': this.subProjectForm.value.steelProfile.label,\n 'steelGradeId': this.subProjectForm.value.steelGrade ? +this.subProjectForm.value.steelGrade.id : 0,\n 'steelStandardNZS': this.subProjectForm.value.steelStandardNZS ? +this.subProjectForm.value.steelStandardNZS.value : 0,\n 'steelGradeValue': this.subProjectForm.value.steelGrade ? +this.subProjectForm.value.steelGrade.value : 0,\n // tslint:disable-next-line:max-line-length\n 'height': isCustomSteelProfile ? UnitHelper.roundToUniverseLength(this.subProjectForm.value.steelProfileCustomHeight, this.project.unit)\n : UnitHelper.roundToUniverseLength(this.subProjectForm.value.steelProfile.height, this.project.unit, profileUnit),\n 'flangeWidth': isCustomSteelProfile ?\n UnitHelper.roundToUniverseLength(+this.subProjectForm.value.steelProfileCustomFlangeWidth, this.project.unit)\n : UnitHelper.roundToUniverseLength(this.subProjectForm.value.steelProfile.flangeWidth, this.project.unit, profileUnit),\n 'webThickness': isCustomSteelProfile ?\n UnitHelper.roundToUniverseLength(+this.subProjectForm.value.steelProfileCustomWebThickness, this.project.unit)\n : UnitHelper.roundToUniverseLength(+this.subProjectForm.value.steelProfile.webThickness, this.project.unit, profileUnit),\n 'flangeThickness': isCustomSteelProfile ?\n UnitHelper.roundToUniverseLength(+this.subProjectForm.value.steelProfileCustomFlangeThickness, this.project.unit)\n : UnitHelper.roundToUniverseLength(+this.subProjectForm.value.steelProfile.flangeThickness, this.project.unit, profileUnit),\n 'rootRadius': isCustomSteelProfile ?\n UnitHelper.roundToUniverseLength(+this.subProjectForm.value.steelProfileCustomRootRadius, this.project.unit)\n : UnitHelper.roundToUniverseLength(+this.subProjectForm.value.steelProfile.rootRadius, this.project.unit, profileUnit),\n 'radius': isCustomSteelProfile ? 0 : UnitHelper.roundToUniverseLength(+this.subProjectForm.value.steelProfile.radius, this.project.unit, profileUnit),\n 'customProfile': isCustomSteelProfile,\n 'yieldStrength': isCustomSteelGrade ?\n UnitHelper.getYieldStrength(+this.subProjectForm.value.steelProfileCustomSteelGradeYieldStrength, this.project.unit, this.project.unit) : 0,\n 'elasticImposed': this.subProjectForm.value.elasticImposed\n };\n } else {\n let height = UnitHelper.roundToUniverseLength(+this.subProjectForm.value.steelProfile.height, this.project.unit, profileUnit, 'mm');\n height = height < this.validationValues.steelProfileCustomHeight.min ? this.validationValues.steelProfileCustomHeight.min : height;\n return {\n 'id': this.subProjectModel.steelProfile && this.subProjectModel.steelProfile.id || 0,\n 'profileName': this.subProjectForm.value.steelProfile ? this.subProjectForm.value.steelProfile.label : '',\n 'steelGradeId': this.subProjectForm.value.steelGrade ? +this.subProjectForm.value.steelGrade.id : 0,\n 'steelStandardNZS': this.subProjectForm.value.steelStandardNZS ? +this.subProjectForm.value.steelStandardNZS.id : 0,\n 'steelGradeValue': this.subProjectForm.value.steelGrade ? +this.subProjectForm.value.steelGrade.value : 0,\n 'height': isCustomSteelProfile ? +this.subProjectForm.value.steelProfileCustomHeight :\n (this.subProjectForm.value.steelProfile ? height : 0),\n 'flangeWidth': isCustomSteelProfile ?\n +this.subProjectForm.value.steelProfileCustomFlangeWidth :\n (this.subProjectForm.value.steelProfile ?\n UnitHelper.roundToUniverseLength(+this.subProjectForm.value.steelProfile.flangeWidth, this.project.unit, profileUnit, 'mm') : 0),\n 'webThickness': isCustomSteelProfile ?\n +this.subProjectForm.value.steelProfileCustomWebThickness\n : (this.subProjectForm.value.steelProfile ?\n UnitHelper.roundToUniverseLength(+this.subProjectForm.value.steelProfile.webThickness, this.project.unit, profileUnit, 'mm') : 0),\n 'flangeThickness': isCustomSteelProfile ?\n this.subProjectForm.value.steelProfileCustomFlangeThickness :\n (this.subProjectForm.value.steelProfile ?\n UnitHelper.roundToUniverseLength(+this.subProjectForm.value.steelProfile.flangeThickness, this.project.unit, profileUnit, 'mm') : 0),\n 'rootRadius': isCustomSteelProfile ?\n +this.subProjectForm.value.steelProfileCustomRootRadius :\n (this.subProjectForm.value.steelProfile ?\n UnitHelper.roundToUniverseLength(+this.subProjectForm.value.steelProfile.rootRadius, this.project.unit, profileUnit, 'mm') : 0),\n 'radius': isCustomSteelProfile ? 0 : (this.subProjectForm.value.steelProfile ?\n UnitHelper.roundToUniverseLength(+this.subProjectForm.value.steelProfile.radius, this.project.unit, profileUnit, 'mm') : 0),\n 'customProfile': isCustomSteelProfile,\n 'yieldStrength': isCustomSteelGrade ?\n this.project.unit === AppConstants.UNIT_SYSTEM_MI ? +this.subProjectForm.value.steelProfileCustomSteelGradeYieldStrength :\n UnitHelper.getYieldStrength(+this.subProjectForm.value.steelProfileCustomSteelGradeYieldStrength, this.project.unit, this.project.unit) : 0,\n 'elasticImposed': this.subProjectForm.value.elasticImposed\n };\n }\n }\n\n //\n // Some drawings need mm as a length, otherwise we send meters to the calculation module\n // The default units for calculation - length for meters and newtons for force\n // Only exception is for some drawigns we need to send mm.\n //\n\n\n getBeamGeometryObject = (isInternal: boolean): any => {\n return {\n 'id': this.subProjectModel.beamGeometry && this.subProjectModel.beamGeometry.id || 0,\n 'beamDesign': +this.subProjectForm.value.beamDesign.id,\n 'beamLength': isInternal ?\n this.subProjectForm.value.beamLength : UnitHelper.roundToNonUniverseLength(this.subProjectForm.value.beamLength, this.project.unit),\n 'leftSpacing': isInternal ?\n this.subProjectForm.value.beamSpacingLeft : UnitHelper.roundToNonUniverseLength(this.subProjectForm.value.beamSpacingLeft, this.project.unit),\n 'rightSpacing': isInternal ?\n this.subProjectForm.value.beamSpacingRight : UnitHelper.roundToNonUniverseLength(this.subProjectForm.value.beamSpacingRight, this.project.unit),\n 'beamTypeId': 2, // Simply Supported Beam\n 'beamTypeValue': 1, // Simply Supported Beam\n 'beamLocationId': +this.subProjectForm.value.beamLocation.id,\n 'beamLocationValue': +this.subProjectForm.value.beamLocation.value,\n 'slabTypeId': +this.subProjectForm.value.slabType.id,\n 'slabTypeValue': +this.subProjectForm.value.slabType.value,\n 'leftOpening': this.subProjectForm.value.leftOpening,\n 'leftOpeningPosition': isInternal ? this.subProjectForm.value.leftOpeningPosition :\n UnitHelper.roundToNonUniverseLength(this.subProjectForm.value.leftOpeningPosition, this.project.unit),\n 'rightOpening': this.subProjectForm.value.rightOpening,\n 'rightOpeningPosition': isInternal ? this.subProjectForm.value.rightOpeningPosition :\n UnitHelper.roundToNonUniverseLength(this.subProjectForm.value.rightOpeningPosition, this.project.unit)\n };\n }\n\n getShearConnectorObject = (): any => {\n return {\n 'connectionDegreeId': +(this.subProjectForm).controls.shearConnectionDegree.value.id,\n 'connectionDegreeValue': +(this.subProjectForm).controls.shearConnectionDegree.value.value,\n 'connectorTypeId': +(this.subProjectForm).controls.shearConnectionType.value.id,\n 'connectorTypeValue': +(this.subProjectForm).controls.shearConnectionType.value.value,\n 'connectorsOrientationId': +(this.subProjectForm).controls.shearConnectionOrientation.value.id,\n 'connectorsOrientationValue': +(this.subProjectForm).controls.shearConnectionOrientation.value.value,\n 'userConnectionDegree': (+(this.subProjectForm).controls.userConnectionDegree.value) / 100,\n 'optimizationOption': +!(this.subProjectForm).controls.optimizationOption.value\n };\n }\n\n getProfileSheetingObject = (calculations: boolean): any => {\n if (this.subProjectForm.value.slabType.value === 0) { // If it is solid slab then do not validate profile sheeting\n return {\n id: this.subProjectModel.profileSheeting && this.subProjectModel.profileSheeting.id || 0,\n };\n } else {\n if (!this.subProjectForm.value.profiledSheetingType) {\n this.subProjectForm.get('haunchHeight').setValue(0);\n this.setProfileSheeting(); // Set the default values for Profile Sheeting\n this.getSlabDrawing();\n }\n }\n\n const isCustom = this.subProjectForm.value.profiledSheetingType ?\n this.subProjectForm.value.profiledSheetingType.label === 'Custom' : false;\n const sourceUnitSystem = isCustom ? this.project.unit : +this.subProjectForm.value.profiledSheetingType.unitSystem;\n const transformUnits = sourceUnitSystem !== this.project.unit ? true : false;\n if (calculations !== undefined && calculations === true) {\n return {\n 'id': this.subProjectModel.profileSheeting && this.subProjectModel.profileSheeting.id || 0,\n 'profileName': this.subProjectForm.value.profiledSheetingType ? this.subProjectForm.value.profiledSheetingType.label : '',\n 'sheetingOrientationId': +this.subProjectForm.value.profiledSheetingOrientation.id,\n 'sheetingOrientationValue': +this.subProjectForm.value.profiledSheetingOrientation.value,\n 'pitch': isCustom ?\n UnitHelper.roundToUniverseLength(+this.subProjectForm.value.profiledSheetingCustomTroughSpacing, this.project.unit)\n : UnitHelper.roundToUniverseLength(+this.subProjectForm.value.profiledSheetingType.pitch, this.project.unit,\n sourceUnitSystem),\n 'ribBottomWidth': isCustom ?\n +UnitHelper.roundToUniverseLength(this.subProjectForm.value.profiledSheetingCustomBottomWidth, this.project.unit)\n : UnitHelper.roundToUniverseLength(+this.subProjectForm.value.profiledSheetingType.ribBottomWidth, this.project.unit,\n sourceUnitSystem),\n 'ribTopWidth': isCustom ?\n UnitHelper.roundToUniverseLength(+this.subProjectForm.value.profiledSheetingCustomTopWidth, this.project.unit)\n : UnitHelper.roundToUniverseLength(+this.subProjectForm.value.profiledSheetingType.ribTopWidth, this.project.unit,\n sourceUnitSystem),\n 'ribHeight': isCustom ?\n UnitHelper.roundToUniverseLength(+this.subProjectForm.value.profiledSheetingCustomDeckDepth, this.project.unit)\n : UnitHelper.roundToUniverseLength(+this.subProjectForm.value.profiledSheetingType.ribHeight, this.project.unit,\n sourceUnitSystem),\n 'thickness': isCustom ?\n UnitHelper.roundToUniverseLength(+this.subProjectForm.value.profiledSheetingCustomThickness, this.project.unit)\n : UnitHelper.roundToUniverseLength(+this.subProjectForm.value.profiledSheetingType.thickness, this.project.unit,\n sourceUnitSystem),\n 'surfaceWeight': isCustom ?\n UnitHelper.getStressValue(+this.subProjectForm.value.profiledSheetingCustomSurfaceWeight, this.project.unit, sourceUnitSystem)\n : UnitHelper.getStressValue(this.subProjectForm.value.profiledSheetingType.surfaceWeight, this.project.unit,\n sourceUnitSystem),\n 'numberRibStiffeners': isCustom ?\n this.subProjectForm.value.profiledSheetingCustomNumberRibStiffeners\n : this.subProjectForm.value.profiledSheetingType.numberRibStiffeners,\n 'ribStiffenerWidth': isCustom ?\n UnitHelper.roundToUniverseLength(+this.subProjectForm.value.profiledSheetingCustomRibStiffenerWidth, this.project.unit)\n : UnitHelper.roundToUniverseLength(+this.subProjectForm.value.profiledSheetingType.ribStiffenerWidth, this.project.unit,\n sourceUnitSystem),\n 'stiffenersSpacing': isCustom ?\n UnitHelper.roundToUniverseLength(+this.subProjectForm.value.profiledSheetingCustomStiffenersSpacing, this.project.unit)\n : UnitHelper.roundToUniverseLength(+this.subProjectForm.value.profiledSheetingType.stiffenersSpacing, this.project.unit,\n sourceUnitSystem),\n 'continuousForPerpendicular': true,\n 'yieldStrength': isCustom ?\n UnitHelper.getYieldStrength(+this.subProjectForm.value.profiledSheetingCustomYieldStrength, this.project.unit, sourceUnitSystem)\n : (this.subProjectForm.value.profiledSheetingType ?\n UnitHelper.getYieldStrength(+this.subProjectForm.value.profiledSheetingType.yieldStrength, this.project.unit,\n sourceUnitSystem) : 0),\n 'topStiffenerHeight': isCustom ?\n UnitHelper.roundToUniverseLength(this.subProjectModel.profileSheeting && this.subProjectModel.profileSheeting.topStiffenerHeight || 0, this.project.unit,\n sourceUnitSystem)\n : UnitHelper.roundToUniverseLength(+this.subProjectForm.value.profiledSheetingType.topStiffenerHeight, this.project.unit,\n sourceUnitSystem),\n };\n } else {\n return {\n 'id': this.subProjectModel.profileSheeting && this.subProjectModel.profileSheeting.id || 0,\n 'profileName': this.subProjectForm.value.profiledSheetingType ? this.subProjectForm.value.profiledSheetingType.label : '',\n 'sheetingOrientationId': +this.subProjectForm.value.profiledSheetingOrientation.id,\n 'sheetingOrientationValue': +this.subProjectForm.value.profiledSheetingOrientation.value,\n 'pitch': isCustom ?\n +this.subProjectForm.value.profiledSheetingCustomTroughSpacing\n : transformUnits ? UnitHelper.roundToUniverseLength(+this.subProjectForm.value.profiledSheetingType.pitch,\n this.project.unit, sourceUnitSystem) : +this.subProjectForm.value.profiledSheetingType.pitch,\n 'ribBottomWidth': isCustom ?\n +this.subProjectForm.value.profiledSheetingCustomBottomWidth\n : transformUnits ? UnitHelper.roundToUniverseLength(+this.subProjectForm.value.profiledSheetingType.ribBottomWidth,\n this.project.unit, sourceUnitSystem) : + this.subProjectForm.value.profiledSheetingType.ribBottomWidth,\n 'ribTopWidth': isCustom ?\n +this.subProjectForm.value.profiledSheetingCustomTopWidth\n : transformUnits ? UnitHelper.roundToUniverseLength(+this.subProjectForm.value.profiledSheetingType.ribTopWidth,\n this.project.unit, sourceUnitSystem) : +this.subProjectForm.value.profiledSheetingType.ribTopWidth,\n 'ribHeight': isCustom ?\n +this.subProjectForm.value.profiledSheetingCustomDeckDepth\n : transformUnits ? UnitHelper.roundToUniverseLength(+this.subProjectForm.value.profiledSheetingType.ribHeight,\n this.project.unit, sourceUnitSystem) : +this.subProjectForm.value.profiledSheetingType.ribHeight,\n 'thickness': isCustom ?\n +this.subProjectForm.value.profiledSheetingCustomThickness\n : transformUnits ? UnitHelper.roundToUniverseLength(+this.subProjectForm.value.profiledSheetingType.thickness,\n this.project.unit, sourceUnitSystem) : +this.subProjectForm.value.profiledSheetingType.thickness,\n 'surfaceWeight': isCustom ?\n +this.subProjectForm.value.profiledSheetingCustomSurfaceWeight\n : transformUnits ? UnitHelper.convertKgM2ToLbFt2(+this.subProjectForm.value.profiledSheetingType.surfaceWeight) :\n +this.subProjectForm.value.profiledSheetingType.surfaceWeight,\n 'numberRibStiffeners': isCustom ?\n +this.subProjectForm.value.profiledSheetingCustomNumberRibStiffeners\n : +this.subProjectForm.value.profiledSheetingType.numberRibStiffeners,\n 'ribStiffenerWidth': isCustom ?\n +this.subProjectForm.value.profiledSheetingCustomRibStiffenerWidth\n : transformUnits ? UnitHelper.roundToUniverseLength(+this.subProjectForm.value.profiledSheetingType.ribStiffenerWidth,\n this.project.unit, sourceUnitSystem) : +this.subProjectForm.value.profiledSheetingType.ribStiffenerWidth,\n 'stiffenersSpacing': isCustom ?\n +this.subProjectForm.value.profiledSheetingCustomStiffenersSpacing\n : transformUnits ? UnitHelper.roundToUniverseLength(+this.subProjectForm.value.profiledSheetingType.stiffenersSpacing,\n this.project.unit, sourceUnitSystem) : +this.subProjectForm.value.profiledSheetingType.stiffenersSpacing,\n 'continuousForPerpendicular': true,\n 'yieldStrength': isCustom ?\n +this.subProjectForm.value.profiledSheetingCustomYieldStrength\n : (this.subProjectForm.value.profiledSheetingType ? (\n transformUnits ? UnitHelper.getYieldStrength(+this.subProjectForm.value.profiledSheetingType.yieldStrength,\n this.project.unit, sourceUnitSystem) : +this.subProjectForm.value.profiledSheetingType.yieldStrength) : 0),\n 'topStiffenerHeight': isCustom ?\n this.subProjectModel.profileSheeting && this.subProjectModel.profileSheeting.topStiffenerHeight || 0\n : transformUnits ? UnitHelper.roundToUniverseLength(+this.subProjectForm.value.profiledSheetingType.topStiffenerHeight,\n this.project.unit, sourceUnitSystem) : +this.subProjectForm.value.profiledSheetingType.topStiffenerHeight,\n };\n }\n }\n\n getConcreteSlabObject = (calculations: boolean): any => {\n if (calculations !== undefined && calculations === true) {\n return {\n 'id': this.subProjectModel.concreteSlab && this.subProjectModel.concreteSlab.id || 0,\n 'slabThickness': UnitHelper.roundToUniverseLength(+this.subProjectForm.value.slabThickness, this.project.unit),\n // tslint:disable-next-line:max-line-length\n 'haunchHeight': this.subProjectForm.value.slabType.value === 0 ? UnitHelper.roundToUniverseLength(+this.subProjectForm.value.haunchHeight, this.project.unit) : 0,\n 'concreteTypeId': +this.subProjectForm.value.concreteType.id,\n 'concreteTypeValue': +this.subProjectForm.value.concreteType.value,\n 'concreteClassId': +this.subProjectForm.value.concreteClass.id,\n 'concreteClassValue': this.project.designCode === 3 ? +this.subProjectForm.value.concreteStrength.value : +this.subProjectForm.value.concreteClass.value,\n 'concreteDensity': UnitHelper.getDensity(this.subProjectForm.value.concreteDensity, this.project.unit),\n 'aggregatesDensity': UnitHelper.getDensity(this.subProjectForm.value.aggregatesDensity, this.project.unit),\n 'coverRequired': this.subProjectForm.value.coverRequired,\n 'concreteStrengthUS': this.subProjectForm.value.concreteStrength.label === 'Custom' ?\n UnitHelper.getConcreteStrength(+this.subProjectForm.value.concreteStrengthUS, this.project.unit)\n : UnitHelper.getConcreteStrength(this.subProjectForm.value.concreteStrength.value, this.project.unit),\n 'concreteStrengthId': this.subProjectForm.value.concreteStrength.id,\n };\n } else {\n return {\n 'id': this.subProjectModel.concreteSlab && this.subProjectModel.concreteSlab.id || 0,\n 'slabThickness': this.subProjectForm.value.slabThickness,\n 'haunchHeight': this.subProjectForm.value.slabType.value === 0 ? +this.subProjectForm.value.haunchHeight : 0,\n 'concreteTypeId': +this.subProjectForm.value.concreteType.id,\n 'concreteTypeValue': +this.subProjectForm.value.concreteType.value,\n 'concreteClassId': +this.subProjectForm.value.concreteClass.id,\n 'concreteClassValue': +this.subProjectForm.value.concreteClass.value,\n 'concreteDensity': +this.subProjectForm.value.concreteDensity,\n 'aggregatesDensity': +this.subProjectForm.value.aggregatesDensity,\n 'coverRequired': this.subProjectForm.value.coverRequired,\n 'concreteStrengthUS': this.subProjectForm.value.concreteStrength.label === 'Custom' ? +this.subProjectForm.value.concreteStrengthUS\n : (this.project.designCode === 3 ? this.subProjectForm.value.concreteStrength.label : this.subProjectForm.value.concreteStrength.value),\n 'concreteStrengthId': this.subProjectForm.value.concreteStrength.id,\n };\n }\n }\n\n getBeamGeometryDrawing = (width, height): void => {\n if (!this.isValidBeamGeometryDrawing()) {\n return;\n }\n const sp: models.BeamGeometryDrawing = {\n 'beamGeometry': this.project.unit === AppConstants.UNIT_SYSTEM_MI ? this.getBeamGeometryObject(true) : this.getBeamGeometryObject(false), // For Beam Geometry drawing we will draw in meters\n 'pictureWidth': +width,\n 'pictureHeight': +height,\n 'showSymbol': true,\n 'lengthUnit': this.dropDownOptions.lengthUnits.find(lu => lu.id === this.project.lengthUnit).value,\n 'unitSystem': this.getUnitSystemValue(this.project.unit),\n 'designCode': this.getStandardValue(this.project.designCode)\n };\n this.calculationsService.getBeamGeometryDrawing(sp).subscribe(drawing => {\n this.beamGeometryDrawingStream = `data:image/jpg;base64,${drawing}`;\n });\n }\n\n\n\n isValidCustomProfileSheeting = (): boolean => {\n const isYieldStrengthValid = (this.subProjectForm).controls.profiledSheetingCustomYieldStrength.valid;\n const isThicknessValid = (this.subProjectForm).controls.profiledSheetingCustomThickness.valid;\n const isDeckDepthValid = (this.subProjectForm).controls.profiledSheetingCustomDeckDepth.valid;\n const isTopWidthValid = (this.subProjectForm).controls.profiledSheetingCustomTopWidth.valid;\n const isBottomWidthValid = (this.subProjectForm).controls.profiledSheetingCustomBottomWidth.valid;\n const isDeckWeightValid = (this.subProjectForm).controls.profiledSheetingCustomSurfaceWeight.valid;\n\n const isTroughSpacingValid = (this.subProjectForm).controls.profiledSheetingCustomTroughSpacing.valid;\n\n const isNumberRibStiffenersValid = (this.subProjectForm).controls.profiledSheetingCustomNumberRibStiffeners.valid;\n const isRibStiffenerWidthValid = (this.subProjectForm).controls.profiledSheetingCustomRibStiffenerWidth.valid;\n const isStiffenersSpacingValid = (this.subProjectForm).controls.profiledSheetingCustomStiffenersSpacing.valid;\n return isYieldStrengthValid && isThicknessValid && isDeckDepthValid && isTopWidthValid && isBottomWidthValid\n && isDeckWeightValid && isTroughSpacingValid && isNumberRibStiffenersValid && isRibStiffenerWidthValid && isStiffenersSpacingValid;\n }\n\n isValidSlabOrSheeting = (): boolean => {\n if (this.subProjectForm.value.slabType.value === 0) {\n return this.isValidSolidSlab();\n }\n if (this.subProjectForm.value.profiledSheetingType && this.subProjectForm.value.profiledSheetingType.label === 'Custom') {\n return this.isValidCustomProfileSheeting();\n } else {\n return this.subProjectForm.value.profiledSheetingType && this.subProjectForm.value.profiledSheetingType.label\n && this.subProjectForm.value.profiledSheetingOrientation && this.subProjectForm.value.profiledSheetingOrientation.id;\n }\n }\n\n getProfiledSheetingDrawing = (width, height): void => {\n if (!this.isValidSlabOrSheeting()) {\n this.profiledSheetingDrawing = '';\n return;\n }\n const sp: models.ProfiledSheetingDrawing = {\n 'profileSheeting': this.getProfileSheetingObject(true),\n 'pictureWidth': width ? +width : SubProjectComponent.DRAWING_WIDTH,\n 'pictureHeight': height ? +height : 600,\n 'showSymbol': true,\n 'lengthUnit': this.dropDownOptions.lengthUnits.find(lu => lu.id === this.project.lengthUnit).value,\n 'unitSystem': this.getUnitSystemValue(this.project.unit),\n 'designCode': this.getStandardValue(this.project.designCode)\n };\n\n this.calculationsService.getProfiledSheetingDrawing(sp).subscribe(drawing => {\n this.profiledSheetingDrawing = `data:image/jpg;base64,${drawing}`;\n });\n }\n\n isValidCompositeCrossSectionDrawing = (): boolean => {\n return this.isValidCompositeDrawing();\n }\n\n getCompositeCrossSectionRequestObject = (width: number, height: number, numberOfRows: number): models.CompositeCrossSectionDrawing => {\n const sp: models.CompositeCrossSectionDrawing = {\n 'beamGeometry': this.getBeamGeometryObject(false), // This drawing will be in millimeters hence need to convert\n 'concreteSlab': this.getConcreteSlabObject(true),\n 'profileSheeting': this.subProjectForm.value.slabType.value === 1 ? this.getProfileSheetingObject(true) : {},\n 'shearConnector': this.getShearConnectorObject(),\n 'steelProfile': this.getSteelProfileObject(true),\n 'pictureWidth': +width,\n 'pictureHeight': +height,\n 'showSymbol': true,\n 'numberOfRows': numberOfRows,\n 'lengthUnit': this.project.unit === AppConstants.UNIT_SYSTEM_MI ? 2 : 1,\n 'unitSystem': this.getUnitSystemValue(this.project.unit),\n 'designCode': this.getStandardValue(this.project.designCode)\n };\n return sp;\n }\n\n getCompositeCrossSectionDrawing = (width: number, height: number, numberOfRows: number): void => {\n if (!this.isValidCompositeDrawing()) {\n this.compositeCrossSectionDrawing = '';\n return;\n }\n const sp: models.CompositeCrossSectionDrawing = this.getCompositeCrossSectionRequestObject(width, height, numberOfRows);\n\n this.calculationsService.getCompositeCrossSectionDrawing(sp).subscribe(drawing => {\n this.compositeCrossSectionDrawing = `data:image/jpg;base64,${drawing}`;\n });\n }\n\n getObservableCompositeCrossSectionDrawing = (width: number, height: number, numberOfRows: number): Observable => {\n if (!this.isValidCompositeCrossSectionDrawing()) {\n this.compositeCrossSectionDrawing = '';\n return;\n }\n const sp = this.getCompositeCrossSectionRequestObject(width, height, numberOfRows);\n\n return this.calculationsService.getCompositeCrossSectionDrawing(sp);\n }\n\n isValidShearConnector = (): boolean => {\n if (this.subProjectForm.value.shearConnectionDegree\n && this.subProjectForm.value.shearConnectionType) {\n if (this.subProjectForm.value.shearConnectionOrientation === undefined) {\n this.filteredConnectorOrientations = this.shearConnectorOrientationFiltered();\n if (this.filteredConnectorOrientations != null && this.filteredConnectorOrientations.length !== 0) {\n this.subProjectForm.get('shearConnectionOrientation').setValue(_.last(this.filteredConnectorOrientations), { emitEvent: false, emitViewToModelChange: false, emitModelToViewChange: true });\n } else {\n return false;\n }\n }\n return true;\n } else {\n return false;\n }\n }\n\n isValidSlabDrawing = (): boolean => {\n return (this.isValidBeamGeometryDrawing() && this.isValidSteelProfile() &&\n this.isValidSlabOrSheeting());\n }\n\n isValidCompositeDrawing = (): boolean => {\n if (this.isValidBeamGeometryDrawing() && this.isValidSteelProfile()) {\n const validSheeting = this.isValidSlabOrSheeting();\n const validConnector = this.isValidShearConnector();\n return validSheeting && validConnector;\n } else {\n return false;\n }\n }\n\n getSlabDrawing1 = (width: number, height: number): void => {\n if (!this.isValidSlabDrawing()) {\n this.slabDrawing1 = '';\n return;\n }\n const sp: models.SlabDrawing = {\n 'beamGeometry': this.getBeamGeometryObject(false), // This drawing will be in millimeters hence need to convert\n 'concreteSlab': this.getConcreteSlabObject(true), // //This drawing will be in millimeters hence no need to convert\n // This drawing will be in millimeters hence no need to convert\n 'profileSheeting': this.subProjectForm.value.slabType.value === 1 ? this.getProfileSheetingObject(true) : {},\n // This drawing will be in millimeters hence no need to convert\n 'steelProfile': this.getSteelProfileObject(true),\n 'pictureWidth': +width,\n 'pictureHeight': +height,\n 'showSymbol': true,\n 'lengthUnit': this.project.unit === AppConstants.UNIT_SYSTEM_MI ? 2 : 1,\n 'unitSystem': this.getUnitSystemValue(this.project.unit),\n 'designCode': this.getStandardValue(this.project.designCode)\n };\n this.calculationsService.getSlabDrawing1(sp).subscribe(drawing => {\n this.slabDrawing1 = `data:image/jpg;base64,${drawing}`;\n });\n }\n\n getSlabDrawing2 = (width: number, height: number): void => {\n if (!this.isValidSlabDrawing()) {\n this.slabDrawing2 = '';\n return;\n }\n const sp: models.SlabDrawing = {\n 'beamGeometry': this.getBeamGeometryObject(false), // This drawing will be in millimeters hence need to convert\n 'concreteSlab': this.getConcreteSlabObject(true), // //This drawing will be in millimeters hence no need to convert\n // This drawing will be in millimeters hence no need to convert\n 'profileSheeting': this.subProjectForm.value.slabType.value === 1 ? this.getProfileSheetingObject(true) : {},\n // This drawing will be in millimeters hence no need to convert\n 'steelProfile': this.getSteelProfileObject(true),\n 'pictureWidth': +width,\n 'pictureHeight': +height,\n 'showSymbol': true,\n 'lengthUnit': this.project.unit === AppConstants.UNIT_SYSTEM_MI ? 2 : 1,\n 'unitSystem': this.getUnitSystemValue(this.project.unit),\n 'designCode': this.getStandardValue(this.project.designCode)\n };\n\n this.calculationsService.getSlabDrawing2(sp).subscribe(drawing => {\n this.slabDrawing2 = `data:image/jpg;base64,${drawing}`;\n });\n }\n\n getBeamLoadDrawing = (width: number, height: number): void => {\n if (!(this.isValidBeamGeometryDrawing() && this.isValidSteelProfile())) {\n this.beamLoadDrawing = '';\n this.beamLoadDrawing1 = '';\n return;\n }\n const sp: models.BeamLoadDrawing = {\n 'beamGeometry': this.project.unit === AppConstants.UNIT_SYSTEM_MI ? this.getBeamGeometryObject(true) : this.getBeamGeometryObject(false),\n 'steelProfile': this.getSteelProfileObject(true),\n 'pictureWidth': +width,\n 'pictureHeight': +height,\n 'showSymbol': true,\n 'lengthUnit': this.dropDownOptions.lengthUnits.find(lu => lu.id === this.project.lengthUnit).value,\n 'unitSystem': this.getUnitSystemValue(this.project.unit),\n 'designCode': this.getStandardValue(this.project.designCode)\n };\n\n this.calculationsService.getBeamLoadDrawing(sp).subscribe(drawing => {\n this.beamLoadDrawing = `data:image/jpg;base64,${drawing}`;\n this.beamLoadDrawing1 = `data:image/jpg;base64,${drawing}`;\n });\n }\n\n getCompositeBeamRequestObject = (width: number, height: number, numberOfRows: number, connectorsSpacing?: number): models.CompositeBeamDrawing => {\n /*** @TODO: remove this after CTICM fix Infinity issue ***/\n if (!isFinite(connectorsSpacing)) {\n connectorsSpacing = 0;\n }\n const sp: models.CompositeBeamDrawing = {\n 'beamGeometry': this.getBeamGeometryObject(false), // This drawing will be in millimeters hence need to convert\n 'concreteSlab': this.getConcreteSlabObject(true), // //This drawing will be in millimeters hence no need to convert\n // This drawing will be in millimeters hence no need to convert\n 'profileSheeting': this.subProjectForm.value.slabType.value === 1 ? this.getProfileSheetingObject(true) : {},\n 'shearConnector': this.getShearConnectorObject(),\n // This drawing will be in millimeters hence no need to convert\n 'steelProfile': this.getSteelProfileObject(true),\n 'pictureWidth': +width,\n 'pictureHeight': +height,\n 'numberOfRows': numberOfRows,\n 'connectorsSpacing': connectorsSpacing ? connectorsSpacing : 0,\n 'showSymbol': true,\n 'lengthUnit': this.project.unit === AppConstants.UNIT_SYSTEM_MI ? 2 : 1,\n 'unitSystem': this.getUnitSystemValue(this.project.unit),\n 'designCode': this.getStandardValue(this.project.designCode)\n };\n return sp;\n }\n\n getConnectionZonesRequestObject = (result: models.Calculate.ShearConnectionResult, width: number, height: number): models.Calculate.ConnectionZonesDrawing => {\n const sp: models.Calculate.ConnectionZonesDrawing = {\n 'beamGeometry': this.project.unit === AppConstants.UNIT_SYSTEM_MI ? this.getBeamGeometryObject(true) : this.getBeamGeometryObject(false),\n 'concreteSlab': this.getConcreteSlabObject(true), // //This drawing will be in millimeters hence no need to convert\n // This drawing will be in millimeters hence no need to convert\n 'profileSheeting': this.subProjectForm.value.slabType.value === 1 ? this.getProfileSheetingObject(true) : {},\n // This drawing will be in millimeters hence no need to convert\n 'steelProfile': this.getSteelProfileObject(true),\n 'shearConnectionResult': result,\n 'pictureWidth': +width,\n 'pictureHeight': +height,\n 'lengthUnit': this.dropDownOptions.lengthUnits.find(lu => lu.id === this.project.lengthUnit).value,\n 'showSymbol': true,\n 'language': this.user.defaultSettings.language,\n 'unitSystem': this.getUnitSystemValue(this.project.unit),\n 'designCode': this.getStandardValue(this.project.designCode)\n\n };\n return sp;\n }\n\n getObservableCompositeBeamDrawing = (width: number, height: number, numberOfRows, connectorsSpacing): Observable => {\n if (!this.isValidCompositeDrawing()) {\n this.compositeBeamDrawing = '';\n return;\n }\n const sp = this.getCompositeBeamRequestObject(width, height, numberOfRows, connectorsSpacing);\n\n return this.calculationsService.getCompositeBeamDrawing(sp);\n }\n\n getCompositeBeamDrawing = (width: number, height: number, numberOfRows: number): void => {\n if (!this.isValidCompositeDrawing()) {\n this.compositeBeamDrawing = '';\n return;\n }\n const sp = this.getCompositeBeamRequestObject(width, height, numberOfRows);\n\n this.calculationsService.getCompositeBeamDrawing(sp).subscribe(drawing => {\n this.compositeBeamDrawing = `data:image/jpg;base64,${drawing}`;\n });\n }\n\n getObservableConnectionZonesDrawing = (result: models.Calculate.ShearConnectionResult, width: number, height: number): Observable => {\n const sp = this.getConnectionZonesRequestObject(result, width, height);\n return this.calculationsService.getConnectionZonesDrawing(sp);\n }\n\n transformLoadsForSave = (load: models.Loads): models.Loads => {\n const loads = _.cloneDeep(load);\n for (let i = 0; i < loads.loadCases.length; i++) {\n loads.loadCases[i].distributedSurfaceLoad = UnitHelper.roundLoadToDb(loads.loadCases[i].distributedSurfaceLoad, this.project.loadUnit);\n loads.loadCases[i].combinationFactor = this.subProjectForm.value.combinationFactor;\n for (let j = 0; j < loads.loadCases[i].pointLoads.length; j++) {\n loads.loadCases[i].pointLoads[j].location = loads.loadCases[i].pointLoads[j].location;\n loads.loadCases[i].pointLoads[j].value = UnitHelper.roundLoadToDb(loads.loadCases[i].pointLoads[j].value, this.project.loadUnit);\n }\n for (let k = 0; k < loads.loadCases[i].lineLoads.length; k++) {\n loads.loadCases[i].lineLoads[k].originLoad.value = UnitHelper.roundLoadToDb(loads.loadCases[i].lineLoads[k].originLoad.value, this.project.loadUnit);\n loads.loadCases[i].lineLoads[k].endLoad.value = UnitHelper.roundLoadToDb(loads.loadCases[i].lineLoads[k].endLoad.value, this.project.loadUnit);\n loads.loadCases[i].lineLoads[k].originLoad.location = loads.loadCases[i].lineLoads[k].originLoad.location;\n loads.loadCases[i].lineLoads[k].endLoad.location = loads.loadCases[i].lineLoads[k].endLoad.location;\n }\n }\n if (loads.userCompositeSelfWeight) {\n loads.userCompositeSelfWeight = UnitHelper.roundLoadToDb(loads.userCompositeSelfWeight, this.project.loadUnit);\n } else {\n loads.userCompositeSelfWeight = 0;\n }\n return loads;\n }\n\n transformLoadsForCalculations = (load: models.Loads, isForDrawing = false): models.Loads => {\n const loads = _.cloneDeep(load);\n for (let i = 0; i < loads.loadCases.length; i++) {\n if (isForDrawing) {\n loads.loadCases[i].distributedSurfaceLoad = UnitHelper.roundPatchLoad(loads.loadCases[i].distributedSurfaceLoad, this.project.loadUnit);\n } else {\n loads.loadCases[i].distributedSurfaceLoad = UnitHelper.roundLoadToApi(loads.loadCases[i].distributedSurfaceLoad, this.project.loadUnit);\n }\n loads.loadCases[i].combinationFactor = this.subProjectForm.value.combinationFactor;\n for (let j = 0; j < loads.loadCases[i].pointLoads.length; j++) {\n loads.loadCases[i].pointLoads[j].location = this.project.unit === 1 ? loads.loadCases[i].pointLoads[j].location :\n UnitHelper.ftToInches(loads.loadCases[i].pointLoads[j].location);\n\n // loads.loadCases[i].pointLoads[j].value = this.project.designCode === 2 ? loads.loadCases[i].pointLoads[j].value :\n // UnitHelper.roundLoadToApi(loads.loadCases[i].pointLoads[j].value, this.project.unit);\n loads.loadCases[i].pointLoads[j].value = UnitHelper.roundPointLoad(loads.loadCases[i].pointLoads[j].value, this.project.loadUnit);\n }\n for (let k = 0; k < loads.loadCases[i].lineLoads.length; k++) {\n loads.loadCases[i].lineLoads[k].originLoad.value = UnitHelper.roundPatchLoad(loads.loadCases[i].lineLoads[k].originLoad.value, this.project.loadUnit);\n loads.loadCases[i].lineLoads[k].endLoad.value = UnitHelper.roundPatchLoad(loads.loadCases[i].lineLoads[k].endLoad.value, this.project.loadUnit);\n loads.loadCases[i].lineLoads[k].originLoad.location = this.project.unit === 1 ? loads.loadCases[i].lineLoads[k].originLoad.location :\n UnitHelper.ftToInches(loads.loadCases[i].lineLoads[k].originLoad.location);\n loads.loadCases[i].lineLoads[k].endLoad.location = this.project.unit === 1 ? loads.loadCases[i].lineLoads[k].endLoad.location :\n UnitHelper.ftToInches(loads.loadCases[i].lineLoads[k].endLoad.location);\n }\n }\n if (loads.userCompositeSelfWeight) {\n loads.userCompositeSelfWeight = UnitHelper.roundLoadToApi(loads.userCompositeSelfWeight, this.project.loadUnit);\n } else {\n loads.userCompositeSelfWeight = 0;\n }\n return loads;\n }\n\n handleDxfError = () => {\n this.sharedService.popFailure('subproject-generate-dxf-failure');\n }\n\n handleBOMError = () => {\n this.sharedService.popFailure('subproject-generate-bom-failure');\n }\n\n exportDxf = () => {\n if (!this.calculationResponse || !this.calculationResponse.designCriteriaOk) {\n this.handleDxfError();\n return;\n }\n\n const dxfDrawing = {\n 'beamGeometry': this.getBeamGeometryObject(true),\n 'concreteSlab': this.getConcreteSlabObject(true),\n 'profileSheeting': this.getProfileSheetingObject(true),\n 'shearConnector': this.getShearConnectorObject(),\n 'steelProfile': this.getSteelProfileObject(true),\n 'shearConnectionResult': this.calculationResponse.shearConnectionResult,\n 'lengthUnit': this.dropDownOptions.lengthUnits.find(lu => lu.id === this.project.lengthUnit).value,\n 'language': this.user.defaultSettings.language\n };\n\n this.calculationsService.getDxf(dxfDrawing)\n .subscribe((data) => {\n if (data.drawingSuccessful) {\n const dxfData = new Blob([data.drawing], { type: 'text/plain;charset=ASCII' });\n const filename = this.subProjectForm.value.subprojectName + '_' + (new Date).toISOString() + '.dxf';\n FileSaver.saveAs(dxfData, filename);\n } else {\n console.log('Error Generating DXF');\n this.handleDxfError();\n }\n }\n , error => {\n console.log('Error generating DXF file');\n this.handleDxfError();\n }, () => {\n });\n }\n\n displayAdditionalLoad = () => {\n this.hideAdditionalLoad = false;\n this.tabstripComponent.selectTab(SubProjectComponent.ADDITIONAL_LOADS);\n }\n\n getBOM = () => {\n if (!this.calculationResponse || !this.calculationResponse.designCriteriaOk) {\n this.handleBOMError();\n return;\n }\n\n const bomInput = {\n 'version': this.appVersion,\n 'language': this.user.defaultSettings.language,\n 'generalInformation': this.getGeneralInformation(),\n 'shearConnector': this.getShearConnectorObject(),\n 'shearConnectionResult': this.calculationResponse.shearConnectionResult,\n 'numberOfConnectors': this.calculationResponse.shearConnectionResult.numberOfConnectors,\n 'connectorType': +(this.subProjectForm).controls.shearConnectionType.value.value,\n 'optimizationOption': +!(this.subProjectForm).controls.optimizationOption.value\n };\n\n this.calculationsService.getBillOfMaterials(bomInput)\n .subscribe((data) => {\n if (data.pdfStream) {\n const blob = this.b64toBlob(data.pdfStream, 'application/pdf');\n const filename = this.subProjectForm.value.subprojectName + '_' + (new Date).toISOString() + '.pdf';\n FileSaver.saveAs(blob, filename);\n } else {\n console.log('Error Generating Bill Of Materials');\n this.handleBOMError();\n }\n }\n , error => {\n console.log('Error Generating Bill Of Materials');\n this.handleBOMError();\n }, () => {\n });\n }\n\n getGeneralInformation = (): models.Calculate.GeneralInformation => {\n const options = { hour12: false };\n const dateString = new Date().toLocaleString(window.navigator.language, options);\n return {\n 'userName': this.project.preparedBy,\n 'projectName': this.project.name || '',\n 'companyName': this.project.company || '',\n 'companyAddress': this.getFormattedAddress(), // TODO: make it more polished\n 'projectReferences': this.project.reference || '',\n 'nationalAnnexValue': +this.nationalAnnexes.filter(item => item.id === this.project.countryNationalAnnexes)[0].value,\n 'loadedAreasCategory': +this.loadCategories.filter(item => item.id === this.subProjectForm.value.loadCategory.id)[0].value,\n 'scopeExtensions': this.getScopeExtensions(),\n 'phoneFax': this.project.phone || '',\n 'website': '',\n 'comments': this.project.comments || '',\n 'email': this.project.email || '',\n 'contractor': this.project.contractor || '',\n 'subProject': this.subProjectForm.value.subprojectName || '',\n 'date': dateString,\n 'standard': this.getStandardValue(this.project.designCode),\n 'unit': this.getUnitSystemValue(this.project.unit),\n 'liveLoadReduction': this.subProjectForm.value.liveLoadReduction\n };\n }\n\n getScopeExtensions = (): models.Calculate.ScopeExtensions => {\n const isScopeExtensionsActivated = this.subProjectForm.value.slabType.value === 1 // Composite slab with profiled steel sheeting\n && this.subProjectForm.value.profiledSheetingOrientation.id === 1 // Profiled steel sheeting is perpendicular to the beam\n && (this.subProjectForm.value.profiledSheetingType.id === 58 // HI BOND A 55\n || (this.subProjectForm.value.profiledSheetingType.id >= 33 && this.subProjectForm.value.profiledSheetingType.id <= 40) // HI BOND 55\n || (this.subProjectForm.value.profiledSheetingType.id >= 139 && this.subProjectForm.value.profiledSheetingType.id <= 145)) // Sand 55\n ? true : false;\n\n const scopeExtensions: models.Calculate.ScopeExtensions = {\n extension1: isScopeExtensionsActivated,\n extension2: isScopeExtensionsActivated\n };\n return scopeExtensions;\n }\n\n getLoadDrawing = (index: number): void => {\n /* Handle zero loads*/\n if (index === 0 && this.subProjectModel.load.loadCases[0].distributedSurfaceLoad === 0) {\n this.standardLoadDrawing0 = '';\n return;\n }\n\n if (index === 2 && this.subProjectModel.load.loadCases[2].distributedSurfaceLoad === 0) {\n this.standardLoadDrawing2 = '';\n return;\n }\n if (index === 3 && this.subProjectModel.load.loadCases[3].distributedSurfaceLoad === 0) {\n this.surfaceLiveLoadsDrawing = '';\n return;\n }\n const sp: models.LoadDrawing = this.getLoadsModel(models.Calculate.LoadDrawingType.SIMPLE_LOADS, index);\n if (index === 3) {\n sp.pictureWidth = SubProjectComponent.ADDITIONAL_LOAD_DRAWING_WIDTH;\n }\n ;\n this.calculationsService.getLoadDrawing(sp).subscribe(drawing => {\n if (index === 0) {\n this.standardLoadDrawing0 = drawing ? `data:image/jpg;base64,${drawing}` : '';\n }\n if (index === 1) {\n this.standardLoadDrawing1 = drawing ? `data:image/jpg;base64,${drawing}` : '';\n }\n if (index === 2) {\n this.standardLoadDrawing2 = drawing ? `data:image/jpg;base64,${drawing}` : '';\n }\n if (index === 3) {\n this.surfaceLiveLoadsDrawing = drawing ? `data:image/jpg;base64,${drawing}` : '';\n }\n });\n }\n\n getLoadsModel = (type: models.Calculate.LoadDrawingType, index: number, isForDrawing = false): models.LoadDrawing => {\n const sp: models.LoadDrawing = {\n 'beamGeometry': this.project.unit === AppConstants.UNIT_SYSTEM_MI ? this.getBeamGeometryObject(true) : this.getBeamGeometryObject(false),\n 'concreteSlab': this.getConcreteSlabObject(true),\n 'steelProfile': this.getSteelProfileObject(true),\n 'loads': this.transformLoadsForCalculations(this.subProjectModel.load, isForDrawing),\n 'loadCaseIndex': index,\n 'pictureWidth': SubProjectComponent.LOAD_DRAWING_WIDTH,\n 'pictureHeight': SubProjectComponent.LOAD_DRAWING_HEIGHT,\n 'showSymbol': true,\n 'lengthUnit': this.dropDownOptions.lengthUnits.find(lu => lu.id === this.project.lengthUnit).value,\n 'forceUnit': this.dropDownOptions.loadUnits.find(lu => lu.id === this.project.loadUnit).value,\n 'type': type,\n 'unitSystem': this.getUnitSystemValue(this.project.unit),\n 'designCode': this.getStandardValue(this.project.designCode)\n };\n return sp;\n }\n\n getLiveLineLoadsDrawing = (): void => {\n if (this.subProjectModel.load.loadCases[3].lineLoads.length > 0) {\n const sp: models.LoadDrawing = this.getLoadsModel(models.Calculate.LoadDrawingType.LINE_LOADS, 3);\n sp.pictureWidth = SubProjectComponent.ADDITIONAL_LOAD_DRAWING_WIDTH;\n this.calculationsService.getLoadDrawing(sp).subscribe(drawing => {\n this.liveLineLoadsDrawing = drawing ? `data:image/jpg;base64,${drawing}` : '';\n });\n } else {\n this.liveLineLoadsDrawing = '';\n }\n }\n\n getDeadLineLoadsDrawing = (): void => {\n if (this.subProjectModel.load.loadCases[1].lineLoads.length > 0) {\n const sp: models.LoadDrawing = this.getLoadsModel(models.Calculate.LoadDrawingType.LINE_LOADS, 1);\n sp.pictureWidth = SubProjectComponent.ADDITIONAL_LOAD_DRAWING_WIDTH;\n this.calculationsService.getLoadDrawing(sp).subscribe(drawing => {\n this.deadLineLoadsDrawing = drawing ? `data:image/jpg;base64,${drawing}` : '';\n });\n } else {\n this.deadLineLoadsDrawing = '';\n }\n }\n\n getLivePointLoadsDrawing = (): void => {\n if (this.subProjectModel.load.loadCases[3].pointLoads.length > 0) {\n const sp: models.LoadDrawing = this.getLoadsModel(models.Calculate.LoadDrawingType.POINT_LOADS, 3);\n sp.pictureWidth = SubProjectComponent.ADDITIONAL_LOAD_DRAWING_WIDTH;\n this.calculationsService.getLoadDrawing(sp).subscribe(drawing => {\n this.livePointLoadsDrawing = drawing ? `data:image/jpg;base64,${drawing}` : '';\n });\n } else {\n this.livePointLoadsDrawing = '';\n }\n }\n\n getDeadPointLoadsDrawing = (): void => {\n if (this.subProjectModel.load.loadCases[1].pointLoads.length > 0) {\n const sp: models.LoadDrawing = this.getLoadsModel(models.Calculate.LoadDrawingType.POINT_LOADS, 1, true);\n sp.pictureWidth = SubProjectComponent.ADDITIONAL_LOAD_DRAWING_WIDTH;\n this.calculationsService.getLoadDrawing(sp).subscribe(drawing => {\n this.deadPointLoadsDrawing = drawing ? `data:image/jpg;base64,${drawing}` : '';\n });\n } else {\n this.deadPointLoadsDrawing = '';\n }\n }\n\n getCompositeWeightObject = (): any => {\n return {\n 'beamGeometry': this.project.unit === AppConstants.UNIT_SYSTEM_MI ? this.getBeamGeometryObject(true) : this.getBeamGeometryObject(false),\n 'steelProfile': this.getSteelProfileObject(true),\n 'concreteSlab': this.getConcreteSlabObject(true),\n 'profileSheeting': this.getProfileSheetingObject(true),\n 'unitSystem': this.getUnitSystemValue(this.project.unit)\n };\n }\n\n getStandardLoadDrawings = (): void => {\n this.getLoadDrawing(0);\n this.getLoadDrawing(1);\n this.getLoadDrawing(2);\n this.getBeamLoadDrawing(SubProjectComponent.LOAD_DRAWING_WIDTH, SubProjectComponent.LOAD_DRAWING_HEIGHT);\n }\n\n getObservableDefaultCompositeSelfWeight = (): Observable => {\n const compositeSelfWeight: models.CompositeSelfWeight = this.getCompositeWeightObject();\n return this.calculationsService.getCompositeSelfWeight(compositeSelfWeight);\n }\n\n getObservableDefaultLiveLoad = (): Observable => {\n const defaultCompositeLiveLoad: models.DefaultCompositeLiveLoad = {\n 'generalInformation': this.getGeneralInformation(),\n 'beamGeometry': this.project.unit === AppConstants.UNIT_SYSTEM_MI ? this.getBeamGeometryObject(true) : this.getBeamGeometryObject(false)\n };\n return this.calculationsService.getdefaultCompositeLiveLoad(defaultCompositeLiveLoad);\n }\n\n isFormValid = (): void => {\n this.isFormValidSubject.next();\n }\n\n isTabInvalid = (tabName: string): boolean => {\n // console.log('isTabInvalid: ' + tabName);\n const tabControls = this.formInputElements.filter((inputElem) =>\n inputElem.nativeElement.getAttribute('tab') === tabName &&\n (this.subProjectForm).controls[inputElem.nativeElement.getAttribute('formControlName')].invalid);\n // tabControls.forEach(tabControl=> console.log('isTabInvalid control: ' + tabControl.nativeElement.getAttribute('formControlName')));\n return tabControls.length > 0;\n }\n\n\n debouncedIsFormValid = () => {\n _.forEach(this.subProjectForm.controls, (control) => {\n control.markAsTouched();\n });\n const controls = this.subProjectForm.controls;\n const firstInvalidFormName = _.find(_.keys(this.subProjectForm.controls), (propName) => {\n return (controls)[propName].invalid;\n });\n }\n\n private getReportData = (): models.Calculate.CreateCommand => {\n const currentDate = new Date();\n const calcInput = {\n 'id': this.subProjectModel.id,\n 'projectId': this.subProjectModel.projectId,\n 'name': this.subProjectForm.value.subprojectName || '',\n 'version': this.appVersion,\n 'beamGeometry': this.project.unit === 1 ? this.getBeamGeometryObject(true) : this.getBeamGeometryObject(false),\n 'concreteSlab': this.getConcreteSlabObject(true),\n 'profileSheeting': this.getProfileSheetingObject(true),\n 'shearConnector': this.getShearConnectorObject(),\n 'steelProfile': this.getSteelProfileObject(true),\n 'reInforcementSteelBars': {\n 'steelGradeValue': +this.subProjectForm.value.reinforcementType.value\n },\n 'loads': this.transformLoadsForCalculations(this.subProjectModel.load),\n 'deformations': {\n 'constructionTypeValue': +this.subProjectForm.value.constructionType.value,\n 'precamber': this.subProjectForm.value.precamber ? UnitHelper.roundToUniverseLength(this.subProjectForm.value.precamber, this.project.unit, this.project.unit) : 0,\n // tslint:disable-next-line:max-line-length\n 'totalDeflectionLimit': (this.subProjectForm.value.totalLoadDeflection ? +this.subProjectForm.value.totalLoadDeflection.value : 0),\n 'compositeDeflectionLimit': (this.subProjectForm.value.deflectionLimit ? +this.subProjectForm.value.deflectionLimit.value : 0),\n 'percentageLiveLoad': (this.subProjectForm.value.liveLoadPercentage ? +this.subProjectForm.value.liveLoadPercentage.value : 0),\n 'frequencyLimit': this.subProjectForm.value.frequencyLimit,\n 'walkingActivity': this.subProjectForm.value.walkingActivity.value,\n 'dampingRatio': this.subProjectForm.value.dampling ? this.subProjectForm.value.dampling.value : 0,\n 'walkingExcitationCheck': +this.subProjectForm.value.walkingExcitation,\n 'rhythmicExcitationCheck': +this.subProjectForm.value.rhythmicExcitationCheck,\n 'rhythmicActivity': this.subProjectForm.getRawValue().rhythmicActivity.value,\n 'incrementalDeflectionCheck': (this.subProjectForm.getRawValue().incrementalDeflectionCheck ? this.subProjectForm.value.incrementalDeflectionCheck : 0),\n 'permanentLoadFraction': (this.subProjectForm.getRawValue().permanentLoadFraction ? +this.subProjectForm.getRawValue().permanentLoadFraction : 0),\n 'performLateralTorsionBucklingCheck': this.subProjectForm.value.performLateralTorsionBucklingCheck,\n },\n partialFactors: {\n 'gammaC': +this.partialFactor.gammaC,\n 'gammaG': +this.partialFactor.gammaG,\n 'gammaM0': +this.partialFactor.gammaM0,\n 'gammaM1': +this.partialFactor.gammaM1,\n 'gammaQ': +this.partialFactor.gammaQ,\n 'gammaS': +this.partialFactor.gammaS,\n 'gammaV': +this.partialFactor.gammaV,\n 'gammaP': +this.partialFactor.gammaP,\n 'USDeadLoad1': +this.project.usDeadLoad1,\n 'USDeadLoad2': +this.project.usDeadLoad2,\n 'USLiveLoad2': +this.project.usLiveLoad2,\n 'USPhiElastic': +this.project.usPhiElastic,\n 'combinationFactor': +this.subProjectForm.value.combinationFactor,\n 'asPhiC': +this.partialFactor.asPhiC,\n 'asPhiM': +this.partialFactor.asPhiM,\n 'asPhiMb': +this.partialFactor.asPhiMb,\n 'asPhiS': +this.partialFactor.asPhiS,\n 'asPhiSC': +this.partialFactor.asPhiSC,\n 'asPhiSR': +this.partialFactor.asPhiSR,\n 'asPhiVc': +this.partialFactor.asPhiVc,\n 'asPhiVf': +this.partialFactor.asPhiVf,\n 'asPhiVM': +this.partialFactor.asPhiVm\n },\n 'generalInformation': this.getGeneralInformation(),\n 'language': this.user.defaultSettings.language,\n 'lengthUnit': this.dropDownOptions.lengthUnits.find(lu => lu.id === this.project.lengthUnit).value,\n 'forceUnit': this.dropDownOptions.loadUnits.find(lu => lu.id === this.project.loadUnit).value,\n 'unitSystem': this.getUnitSystemValue(this.project.unit),\n 'designCode': this.project.designCode,\n 'detailedSheet': this.getDetailedSheetValue()\n };\n return calcInput;\n }\n\n private getDetailedSheetValue(): boolean {\n const na = this.nationalAnnexes.find(item => item.id === this.project.countryNationalAnnexes);\n if (na.countryCode === 'AE' && na.designCodeId === 2) {\n return true;\n }\n return false;\n }\n private generateReport = (): void => {\n this.isFormValid();\n\n // Calculate the loads to make sure they are all in sync with the parameters selected\n const o1 = this.getObservableDefaultCompositeSelfWeight();\n const o2 = this.getObservableDefaultLiveLoad();\n const combine = observableZip(o1, o2);\n const subscribe = combine.subscribe((defaultLoads: any) => {\n // console.log('Calculate default loads result ', defaultLoads);\n if (defaultLoads && defaultLoads.length !== 0) {\n this.resetDefaultLoadsOnForm(defaultLoads, false);\n }\n const reportData = this.getReportData();\n this.sharedService.showLoader(true);\n this.calculationsService.getReport(reportData).subscribe(result => {\n if (result.pdfStream !== null) {\n this.sharedService.showLoader(false);\n const byteArray = result.pdfStream;\n const filename = this.subProjectForm.value.subprojectName + '_' + (new Date).toISOString() + '_report.pdf';\n if (this.isIEOrEdge()) {\n const blob = this.b64toBlob(byteArray, 'pdf');\n window.navigator.msSaveOrOpenBlob(blob, filename);\n } else if (this.isMobile()) {\n this.sessionStorageService.set('pdf', byteArray);\n this.router.navigate(['/report',\n {\n projectId: this.projectId, projectName: this.project.name,\n subProjectId: this.subProjectId, subProjectName: reportData.generalInformation.subProject\n }]);\n } else {\n if (this.isChrome()) {\n const raw = navigator.userAgent.match(/Chrom(e|ium)\\/([0-9]+)\\./);\n const version = raw ? parseInt(raw[2], 10) : false;\n if (version >= 60) {\n const chromeBlob = this.b64toBlob(byteArray, 'application/pdf');\n FileSaver.saveAs(chromeBlob, filename);\n } else {\n window.open('data:application/pdf;base64, ' + byteArray, '_blank', 'toolbar=no, menubar=no, location=no, addressbar=no');\n }\n } else {\n window.open('data:application/pdf;base64, ' + byteArray, '_blank', 'toolbar=no, menubar=no, location=no, addressbar=no');\n }\n }\n }\n this.sharedService.showLoader(false);\n }, error => {\n console.log('Error Generating Report');\n this.sharedService.popFailure('subproject-generate-report-failure');\n this.sharedService.showLoader(false);\n }, () => {\n this.sharedService.showLoader(false);\n });\n }, error => {\n console.log('Error Getting Default Loads');\n }, () => {\n });\n }\n\n b64toBlob(b64Data, contentType?, sliceSize?) {\n contentType = contentType || '';\n sliceSize = sliceSize || 512;\n\n const byteCharacters = atob(b64Data);\n const byteArrays = [];\n\n for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {\n const slice = byteCharacters.slice(offset, offset + sliceSize);\n\n const byteNumbers = new Array(slice.length);\n for (let i = 0; i < slice.length; i++) {\n byteNumbers[i] = slice.charCodeAt(i);\n }\n\n const byteArray = new Uint8Array(byteNumbers);\n\n byteArrays.push(byteArray);\n }\n\n const blob = new Blob(byteArrays, { type: contentType });\n return blob;\n }\n\n isChrome(): boolean {\n if (/Chrome\\/\\d./i.test(navigator.userAgent)) {\n // This is Chrome Browser\n return true;\n }\n }\n\n isIEOrEdge(): boolean {\n if (/MSIE 10/i.test(navigator.userAgent)) {\n // This is internet explorer 10\n return true;\n }\n\n if (/MSIE 9/i.test(navigator.userAgent) || /rv:11.0/i.test(navigator.userAgent)) {\n // This is internet explorer 9 or 11\n return true;\n }\n\n if (/Edge\\/\\d./i.test(navigator.userAgent)) {\n // This is Microsoft Edge\n return true;\n }\n }\n\n isMobile(): boolean {\n let check = false;\n // tslint:disable-next-line\n ((a) => { if (/(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(a.substr(0, 4))) check = true; })(navigator.userAgent || navigator.vendor || (window).opera);\n return check;\n }\n\n getValue = (value) => {\n return value ? value : '';\n }\n\n getFormattedAddress = (): string => {\n if (this.project.address1 || this.project.address2 || this.project.city || this.project.stateProvince || this.project.postalCode) {\n return this.getValue(this.project.address1) + this.getValue(this.project.address2) +\n this.getValue(this.project.city) + this.getValue(this.project.stateProvince) + this.getValue(this.project.postalCode)\n + this.getValue(this.project.country);\n }\n return '';\n }\n\n initializeDropDownSelectedObjects = (): any => {\n return null;\n }\n\n customProfileSheetingTroughValidator = (): ValidatorFn => {\n return (control: AbstractControl): { [key: string]: any } => {\n if (!this.subProjectForm ||\n !(this.subProjectForm).controls ||\n !(this.subProjectForm).controls.profiledSheetingType ||\n !(this.subProjectForm).controls.profiledSheetingType.value ||\n (this.subProjectForm).controls.profiledSheetingType.value.label !== 'Custom' ||\n this.subProjectForm.value.slabType.value === 0) {\n return null;\n }\n const trough = +control.value;\n const topWidth = +this.subProjectForm.value.profiledSheetingCustomTopWidth;\n const bottomWidth = +this.subProjectForm.value.profiledSheetingCustomBottomWidth;\n let isInvalid = false;\n if (trough >= topWidth && trough >= bottomWidth) {\n isInvalid = false;\n } else {\n isInvalid = true;\n }\n\n return isInvalid ? { customRange: { valid: false } } : null;\n };\n }\n\n customProfiledSheetingBottomValidator = (): ValidatorFn => {\n return (control: AbstractControl): { [key: string]: any } => {\n if (!this.subProjectForm ||\n !(this.subProjectForm).controls ||\n !(this.subProjectForm).controls.profiledSheetingType ||\n !(this.subProjectForm).controls.profiledSheetingType.value ||\n (this.subProjectForm).controls.profiledSheetingType.value.label !== 'Custom' ||\n this.subProjectForm.value.slabType.value === 0) {\n return null;\n }\n const bottomWidth = +control.value;\n const stiffenerWidth = +this.subProjectForm.value.profiledSheetingCustomRibStiffenerWidth;\n const stiffenerSpacing = +this.subProjectForm.value.profiledSheetingCustomStiffenersSpacing;\n let isInvalid = false;\n if (bottomWidth >= 2 * stiffenerWidth + stiffenerSpacing) {\n isInvalid = false;\n } else {\n isInvalid = true;\n }\n\n return isInvalid ? { customRange: { valid: false } } : null;\n };\n }\n\n customFlangeWidthValidator = (): ValidatorFn => {\n return (control: AbstractControl): { [key: string]: any } => {\n if (!this.subProjectForm ||\n !(this.subProjectForm).controls.profileType ||\n !(this.subProjectForm).controls.profileType.value ||\n (this.subProjectForm).controls.profileType.value.profileRange !== 'Custom') {\n return null;\n }\n const flangeWidth = +control.value;\n const rootRadius = +this.subProjectForm.value.steelProfileCustomRootRadius;\n const webThickness = +this.subProjectForm.value.steelProfileCustomWebThickness;\n let isInvalid = false;\n if (flangeWidth <= (2 * rootRadius) + webThickness) {\n isInvalid = true;\n }\n\n return isInvalid ? { customRange: { valid: false } } : null;\n };\n }\n\n conditionalCustomProfiledSheetingValidator(): ValidatorFn {\n return (control: AbstractControl): { [key: string]: any } => {\n if (this.subProjectForm.value.slabType && this.subProjectForm.value.slabType.value === 0) {\n if (!control.value) {\n return { required: true };\n }\n }\n return null;\n };\n }\n\n customSectionHeightValidator = (): ValidatorFn => {\n return (control: AbstractControl): { [key: string]: any } => {\n if (!this.subProjectForm ||\n !(this.subProjectForm).controls.profileType ||\n !(this.subProjectForm).controls.profileType.value ||\n (this.subProjectForm).controls.profileType.value.profileRange !== 'Custom') {\n return null;\n }\n const sectionHeight = +control.value;\n const rootRadius = +this.subProjectForm.value.steelProfileCustomRootRadius;\n const flangeThickness = +this.subProjectForm.value.steelProfileCustomFlangeThickness;\n let isInvalid = false;\n if (sectionHeight <= (2 * rootRadius) + (2 * flangeThickness)) {\n isInvalid = true;\n }\n\n return isInvalid ? { customRange: { valid: false } } : null;\n };\n }\n\n slabConnectorValidator = (): ValidatorFn => {\n return (control: AbstractControl): { [key: string]: any } => {\n if (!this.subProjectForm) {\n return null;\n }\n const shearConnectorType = control.value;\n const haunchHeight = +this.subProjectForm.value.haunchHeight;\n const thickness = +this.subProjectForm.value.slabThickness;\n const coverRequired = this.subProjectForm.value.coverRequired === true;\n return this.slabThicknessValidations(thickness, haunchHeight, coverRequired, shearConnectorType);\n };\n }\n\n beamLeftSpacingValidator = (): ValidatorFn => {\n return (control: AbstractControl): { [key: string]: any } => {\n let isValid;\n if (!this.subProjectForm) {\n return null;\n }\n const beamSpacing = +control.value;\n isValid = beamSpacing >= this.validationValues.beamSpacingLeft.min && beamSpacing <= this.validationValues.beamSpacingLeft.max;\n if (isValid) {\n return null;\n } else {\n return { validateBeamSpacing: false };\n }\n };\n }\n\n beamRightSpacingValidator = (): ValidatorFn => {\n return (control: AbstractControl): { [key: string]: any } => {\n let isValid;\n const beamSpacing = +control.value;\n isValid = beamSpacing >= this.validationValues.beamSpacingRight.min && beamSpacing <= this.validationValues.beamSpacingRight.max;\n if (isValid) {\n return null;\n } else {\n return { validateBeamSpacing: false };\n }\n };\n }\n\n leftOpeningPositionValidator = (): ValidatorFn => {\n return (control: AbstractControl): { [key: string]: any } => {\n let isValid;\n if (!this.subProjectForm) {\n return null;\n }\n const leftOpening = this.subProjectForm.get('leftOpening').value;\n if (!leftOpening) {\n return null;\n }\n\n const leftOpeningPosition = +control.value;\n const leftSpacing = +this.subProjectForm.value.beamSpacingLeft;\n isValid = leftOpeningPosition > 0 && leftOpeningPosition < leftSpacing;\n if (isValid) {\n return null;\n } else {\n return { validateLeftOpeningPosition: false };\n }\n };\n }\n\n rightOpeningPositionValidator = (): ValidatorFn => {\n return (control: AbstractControl): { [key: string]: any } => {\n let isValid;\n if (!this.subProjectForm) {\n return null;\n }\n\n const rightOpening = this.subProjectForm.get('rightOpening').value;\n if (!rightOpening) {\n return null;\n }\n const rightOpeningPosition = +control.value;\n const rightSpacing = +this.subProjectForm.value.beamSpacingRight;\n isValid = rightOpeningPosition > 0 && rightOpeningPosition < rightSpacing;\n if (isValid) {\n return null;\n } else {\n return { validateRightOpeningPosition: false };\n }\n };\n }\n\n concreteStrengthUSValidator = (): ValidatorFn => {\n return (control: AbstractControl): { [key: string]: any } => {\n let isValid;\n if (!this.subProjectForm) {\n return null;\n }\n if (this.project.designCode === 1 && this.subProjectForm.value.concreteClass.label !== 'Custom'\n || !this.subProjectForm.value.concreteType) {\n return null;\n }\n\n const concreteStrengthUS = +control.value;\n const concreteTypeId = +this.subProjectForm.value.concreteType.id;\n isValid = concreteStrengthUS >= this.validationValues.customDefinedConcreteRange.min\n && concreteStrengthUS <= this.validationValues.customDefinedConcreteRange.max;\n\n if (isValid) {\n return null;\n } else {\n return { validateRightOpeningPosition: false };\n }\n };\n }\n\n subProjectNameValidator = (): ValidatorFn => {\n return (control: AbstractControl): { [key: string]: any } => {\n if (!this.subProjectForm || !_.isArray(this.subProjects)) {\n return null;\n }\n const foundIndex = _.findIndex(this.subProjects, (subProject) => {\n return (subProject).name.toLowerCase() === control.value.toLowerCase() && (subProject).id !== this.subProjectId;\n });\n return foundIndex >= 0 ? { notUniqueName: { valid: false } } : null;\n };\n }\n\n isSaveAsSubProjectNameUnique = (subProjectName: string): boolean => {\n if (_.isArray(this.subProjects)) {\n\n const foundIndex = _.findIndex(this.subProjects, (subProject) => {\n return (subProject).name.toLowerCase() === subProjectName.toLowerCase();\n });\n if (foundIndex >= 0) {\n return false;\n } else {\n return true;\n }\n } else {\n return true;\n }\n }\n\n coverRequiredValidator = (): ValidatorFn => {\n return (control: AbstractControl): { [key: string]: any } => {\n if (!this.subProjectForm || !this.subProjectForm.value.shearConnectionType) {\n return null;\n }\n const coverRequired = control.value === true;\n const haunchHeight = this.subProjectForm.value.haunchHeight;\n const thickness = this.subProjectForm.value.slabThickness;\n const shearConnectorType = this.shearConnectorTypes.filter((item) => item.id === this.subProjectForm.value.shearConnectionType.id)[0];\n return this.slabThicknessValidations(thickness, haunchHeight, coverRequired, shearConnectorType);\n };\n }\n\n haunchHeightValidator = (): ValidatorFn => {\n return (control: AbstractControl): { [key: string]: any } => {\n if (!this.subProjectForm || !this.subProjectForm.value.shearConnectionType) {\n return null;\n }\n const haunchHeight = +control.value;\n const thickness = +this.subProjectForm.value.slabThickness;\n const coverRequired = this.subProjectForm.value.coverRequired === true;\n const shearConnectorType = this.shearConnectorTypes.filter((item) => item.id === this.subProjectForm.value.shearConnectionType.id)[0];\n return this.slabThicknessValidations(thickness, haunchHeight, coverRequired, shearConnectorType);\n };\n }\n\n slabThicknessValidations = (thickness: number, haunchHeight: number,\n coverRequired: boolean, shearConnectorType: any): { [key: string]: any } => {\n let isInvalid = false;\n if (!shearConnectorType) {\n isInvalid = true;\n } else if (coverRequired && (thickness + haunchHeight) < (this.project.unit === 1 ?\n shearConnectorType.minSlabThicknessWithCorrosion : UnitHelper.convertMMToInch(shearConnectorType.minSlabThicknessWithCorrosion))) {\n isInvalid = true;\n } else if (!coverRequired && (thickness + haunchHeight) < (this.project.unit === 1 ?\n shearConnectorType.minSlabThicknessWithOutCorrosion : UnitHelper.convertMMToInch(shearConnectorType.minSlabThicknessWithOutCorrosion))) {\n isInvalid = true;\n }\n if (isInvalid) {\n (this.subProjectForm).controls.slabThickness.setErrors({ slabThicknessConnectorType: { valid: false } });\n (this.subProjectForm).controls.coverRequired.setErrors({ slabThicknessConnectorType: { valid: false } });\n } else {\n (this.subProjectForm).controls.coverRequired.setErrors(null);\n (this.subProjectForm).controls.slabThickness.setErrors(null);\n }\n return isInvalid ? { slabThicknessConnectorType: { valid: false } } : null;\n }\n\n clearAllErrors = () => {\n _.forEach(this.subProjectForm.controls, (control) => {\n control.setErrors(null);\n });\n }\n\n setCustomSteelProfileValidators() {\n // tslint:disable-next-line:max-line-length\n if (this.subProjectForm && this.subProjectForm.controls.profileType.value && this.subProjectForm.controls.profileType.value.profileRange === 'Custom') {\n this.subProjectForm.get('steelProfileCustomHeight').setValidators([Validators.required, CustomValidators.range([this.validationValues.steelProfileCustomHeight.min, this.validationValues.steelProfileCustomHeight.max]), this.customSectionHeightValidator()]);\n // tslint:disable-next-line:max-line-length\n this.subProjectForm.get('steelProfileCustomRootRadius').setValidators([Validators.required, CustomValidators.range([this.validationValues.steelProfileCustomRootRadius.min, this.validationValues.steelProfileCustomRootRadius.max])]);\n } else {\n this.subProjectForm.get('steelProfileCustomHeight').setValidators([]);\n this.subProjectForm.get('steelProfileCustomRootRadius').setValidators([]);\n }\n }\n\n orientationValidator = (): ValidatorFn => {\n return (control: AbstractControl): { [key: string]: any } => {\n if (!this.subProjectForm) {\n return null;\n }\n const isInvalid = false;\n // solid slab value = 0\n\n if (isInvalid) {\n (this.subProjectForm).controls.profiledSheetingOrientation.setErrors({ orientationMismatch: { valid: false } });\n (this.subProjectForm).controls.shearConnectionOrientation.setErrors({ orientationMismatch: { valid: false } });\n } else {\n (this.subProjectForm).controls.profiledSheetingOrientation.setErrors(null);\n (this.subProjectForm).controls.shearConnectionOrientation.setErrors(null);\n }\n\n return isInvalid ? { orientationMismatch: { valid: false } } : null;\n };\n }\n\n initializeSubProjectForm = (): void => {\n this.subProjectForm = this.fb.group({\n beamLocation: null,\n projectName: { value: null, disabled: true },\n subprojectName: null,\n loadCategory: null,\n liveLoadReduction: null,\n combinationFactor: null,\n beamDesign: null,\n beamLength: null,\n beamSpacingLeft: null,\n beamSpacingRight: null,\n leftOpening: null,\n leftOpeningPosition: null,\n rightOpening: null,\n rightOpeningPosition: null,\n slabType: null,\n slabThickness: null,\n haunchHeight: null,\n concreteStrengthUS: null,\n coverRequired: null,\n concreteDensity: null,\n aggregatesDensity: null,\n concreteClass: null,\n concreteStrength: null,\n concreteType: null,\n profileType: null,\n steelProfile: null,\n steelProfileCustomHeight: null,\n steelProfileCustomFlangeWidth: null,\n steelProfileCustomWebThickness: null,\n steelProfileCustomFlangeThickness: null,\n steelProfileCustomRootRadius: null,\n steelGrade: null,\n elasticImposed: null,\n steelProfileCustomSteelGradeYieldStrength: null,\n reinforcementType: null,\n profiledSheetingType: null,\n profiledSheetingCustomDeckDepth: null,\n profiledSheetingCustomThickness: null,\n profileSheetingCustomThicknessGage: null,\n profiledSheetingCustomTroughSpacing: null,\n profiledSheetingCustomBottomWidth: null,\n profiledSheetingCustomTopWidth: null,\n profiledSheetingCustomNumberRibStiffeners: null,\n profiledSheetingCustomRibStiffenerWidth: null,\n profiledSheetingCustomStiffenersSpacing: null,\n profiledSheetingCustomSurfaceWeight: null,\n profiledSheetingCustomYieldStrength: null,\n profiledSheetingOrientation: null,\n shearConnectionDegree: null,\n shearConnectionOrientation: null,\n shearConnectionType: null,\n userConnectionDegree: null,\n optimizationOption: null,\n constructionType: null,\n deflectionLimit: null,\n liveLoadPercentage: null,\n totalLoadDeflection: null,\n precamber: null,\n frequencyLimit: null,\n liveLoadInConstruction: null,\n permanentLoad: null,\n selfWeight: null,\n userSelfWeight: null,\n liveLoad: null,\n defaultLiveLoad: null,\n overrideSelfWeight: null,\n overrideLiveLoad: null,\n dampling: null,\n walkingExcitation: null,\n walkingActivity: null,\n rhythmicExcitationCheck: null,\n rhythmicActivity: null,\n uniformArrangement: null,\n steelStandardNZS: null,\n incrementalDeflectionCheck: null,\n performLateralTorsionBucklingCheck: null,\n permanentLoadFraction: null\n });\n }\n\n updateCustomDefinedConcreteRangeValidationRules(concreteType): void {\n switch (this.project.designCode) {\n case 1:\n this.validationValues.customDefinedConcreteRange.min = SubProjectComponent.CUSTOM_CONCRETE_METRIC.min;\n // tslint:disable-next-line:max-line-length\n this.validationValues.customDefinedConcreteRange.max = concreteType.id === 1 ? SubProjectComponent.CUSTOM_CONCRETE_METRIC.maxNormal : SubProjectComponent.CUSTOM_CONCRETE_METRIC.maxLight;\n break;\n case 2:\n if (this.project.unit === 1) {\n this.validationValues.customDefinedConcreteRange.min = SubProjectComponent.CUSTOM_CONCRETE_METRIC.min;\n // tslint:disable-next-line:max-line-length\n this.validationValues.customDefinedConcreteRange.max = concreteType.id === 1 ? SubProjectComponent.CUSTOM_CONCRETE_METRIC.maxNormal : SubProjectComponent.CUSTOM_CONCRETE_METRIC.maxLight;\n } else if (this.project.unit === 2) {\n this.validationValues.customDefinedConcreteRange.min = SubProjectComponent.CUSTOM_CONCRETE_IMPERIAL.min;\n // tslint:disable-next-line:max-line-length\n this.validationValues.customDefinedConcreteRange.max = concreteType.id === 1 ? SubProjectComponent.CUSTOM_CONCRETE_IMPERIAL.maxNormal : SubProjectComponent.CUSTOM_CONCRETE_IMPERIAL.maxLight;\n }\n break;\n case 3:\n this.validationValues.customDefinedConcreteRange.min = SubProjectComponent.CUSTOM_CONCRETE_ASNZS.min;\n this.validationValues.customDefinedConcreteRange.max = SubProjectComponent.CUSTOM_CONCRETE_ASNZS.max;\n break;\n }\n }\n\n setValidators = (unit: number): void => {\n switch (this.project.designCode) {\n case 1:\n // tslint:disable-next-line:max-line-length\n this.validationValues.concreteDensityRange = SubProjectComponent.CONCRETE_DENSITY_METRIC;\n this.validationValues.concreteDensityAggregatesRange = SubProjectComponent.CONCRETE_DENSITY_AGGREGATES_METRIC;\n break;\n case 2:\n this.validationValues.concreteDensityRange = (unit === 1 ? SubProjectComponent.CONCRETE_DENSITY_METRIC : SubProjectComponent.CONCRETE_DENSITY_IMPERIAL);\n this.validationValues.concreteDensityAggregatesRange = (unit === 1 ? SubProjectComponent.CONCRETE_DENSITY_AGGREGATES_METRIC : SubProjectComponent.CONCRETE_DENSITY_AGGREGATES_IMPERIAL);\n break;\n case 3:\n this.validationValues.concreteDensityRange = SubProjectComponent.CONCRETE_DENSITY_ASNZS;\n this.validationValues.concreteDensityAggregatesRange = SubProjectComponent.CONCRETE_DENSITY_AGGREGATES_ASNZS;\n break;\n }\n\n // tslint:disable-next-line:max-line-length\n this.validationValues.steelProfileCustomSteelGradeYieldStrength = (unit === 1 ? SubProjectComponent.CUSTOM_STEELGRADE_YIELD_STRENGTH_METRIC : SubProjectComponent.CUSTOM_STEELGRADE_YIELD_STRENGTH_IMPERIAL);\n // tslint:disable-next-line:max-line-length\n this.validationValues.beamLengthRange = (unit === 1 ? SubProjectComponent.BEAM_LENGTH_METRIC : SubProjectComponent.BEAM_LENGTH_IMPERIAL);\n // tslint:disable-next-line:max-line-length\n this.validationValues.profiledSheetingCustomYieldStrength = (unit === 1 ? SubProjectComponent.PROFILED_SHEETING_CUSTOM_YIELD_STRENGTH_METRIC : SubProjectComponent.PROFILED_SHEETING_CUSTOM_YIELD_STRENGTH_IMPERIAL);\n // tslint:disable-next-line:max-line-length\n this.validationValues.steelProfileCustomHeight = (unit === 1) ? SubProjectComponent.STEEL_PROFILE_CUSTOM_HEIGHT_METRIC : SubProjectComponent.STEEL_PROFILE_CUSTOM_HEIGHT_IMPERIAL;\n // tslint:disable-next-line:max-line-length\n this.validationValues.steelProfileCustomRootRadius = (unit === 1) ? SubProjectComponent.STEEL_PROFILE_CUSTOM_ROOT_RADIUS_METRIC : SubProjectComponent.STEEL_PROFILE_CUSTOM_ROOT_RADIUS_IMPERIAL;\n this.validationValues.profiledSheetingCustomDeckDepth = (unit === 1) ? SubProjectComponent.PROFILED_SHEETING_CUSTOM_DECK_DEPTH_METRIC : SubProjectComponent.PROFILED_SHEETING_CUSTOM_DECK_DEPTH_IMPERIAL;\n // tslint:disable-next-line:max-line-length\n this.validationValues.profiledSheetingCustomBottomWidth = (unit === 1) ? SubProjectComponent.PROFILED_SHEETING_CUSTOM_BOTTOM_WIDTH_METRIC : SubProjectComponent.PROFILED_SHEETING_CUSTOM_BOTTOM_WIDTH_IMPERIAL;\n // tslint:disable-next-line:max-line-length\n this.validationValues.profiledSheetingCustomTopWidth = (unit === 1) ? SubProjectComponent.PROFILED_SHEETING_CUSTOM_TOP_WIDTH_METRIC : SubProjectComponent.PROFILED_SHEETING_CUSTOM_TOP_WIDTH_IMPERIAL;\n // tslint:disable-next-line:max-line-length\n this.validationValues.profiledSheetingCustomTroughSpacing = (unit === 1) ? SubProjectComponent.PROFILED_SHEETING_CUSTOM_TROUGHSPACING_METRIC : SubProjectComponent.PROFILED_SHEETING_CUSTOM_TROUGHSPACING_IMPERIAL;\n // tslint:disable-next-line:max-line-length\n this.validationValues.profiledSheetingCustomRibStiffenerWidth = (unit === 1) ? SubProjectComponent.PROFILED_SHEETING_CUSTOM_RIB_STIFFENER_WIDTH_METRIC : SubProjectComponent.PROFILED_SHEETING_CUSTOM_RIB_STIFFENER_WIDTH_IMPERIAL;\n // tslint:disable-next-line:max-line-length\n this.validationValues.profiledSheetingCustomStiffenersSpacing = (unit === 1) ? SubProjectComponent.PROFILED_SHEETING_CUSTOM_STIFFENERS_SPACING_METRIC : SubProjectComponent.PROFILED_SHEETING_CUSTOM_STIFFENERS_SPACING_IMPERIAL;\n this.validationValues.steelProfileCustomWebThickness = (unit === 1) ? SubProjectComponent.STEEL_PROFILE_CUSTOM_WEB_THICKNESS_METRIC : SubProjectComponent.STEEL_PROFILE_CUSTOM_WEB_THICKNESS_IMPERIAL;\n // tslint:disable-next-line:max-line-length\n this.validationValues.steelProfileCustomFlangeThickness = (unit === 1) ? SubProjectComponent.STEEL_PROFILE_CUSTOM_FLANGE_WIDTH_METRIC : SubProjectComponent.STEEL_PROFILE_CUSTOM_FLANGE_WIDTH_IMPERIAL;\n // tslint:disable-next-line:max-line-length\n this.subProjectForm.get('subprojectName').setValidators([Validators.required, CustomValidators.rangeLength([3, 50]), this.subProjectNameValidator()]);\n this.subProjectForm.get('loadCategory').setValidators([Validators.required]);\n this.subProjectForm.get('combinationFactor').setValidators([Validators.required, CustomValidators.range([0, 1])]);\n this.subProjectForm.get('beamDesign').setValidators([Validators.required]);\n this.subProjectForm.get('beamLength').setValidators([Validators.required, CustomValidators.range([this.validationValues.beamLengthRange.min, this.validationValues.beamLengthRange.max])]);\n this.subProjectForm.get('beamSpacingLeft').setValidators([Validators.required, this.beamLeftSpacingValidator()]);\n this.subProjectForm.get('beamSpacingRight').setValidators([Validators.required, this.beamRightSpacingValidator()]);\n this.subProjectForm.get('leftOpening').setValidators([Validators.required]);\n this.subProjectForm.get('leftOpeningPosition').setValidators([Validators.required, this.leftOpeningPositionValidator()]);\n this.subProjectForm.get('rightOpening').setValidators([Validators.required]);\n this.subProjectForm.get('rightOpeningPosition').setValidators([Validators.required, this.rightOpeningPositionValidator()]);\n this.subProjectForm.get('slabType').setValidators([Validators.required]);\n // tslint:disable-next-line:max-line-length\n this.subProjectForm.get('slabThickness').setValidators(unit === 1 ? [Validators.required, CustomValidators.min(50)] : [Validators.required, CustomValidators.min(2)]);\n this.subProjectForm.get('haunchHeight').setValidators([Validators.required, CustomValidators.min(0)]);\n this.subProjectForm.get('concreteStrengthUS').setValidators([Validators.required, this.concreteStrengthUSValidator()]);\n this.subProjectForm.get('coverRequired').setValidators([Validators.required, this.coverRequiredValidator()]);\n // tslint:disable-next-line:max-line-length\n this.subProjectForm.get('concreteDensity').setValidators([Validators.required, CustomValidators.range([this.validationValues.concreteDensityRange.min, this.validationValues.concreteDensityRange.max])]);\n this.subProjectForm.get('aggregatesDensity').setValidators([Validators.required, CustomValidators.range([this.validationValues.concreteDensityAggregatesRange.min, this.validationValues.concreteDensityAggregatesRange.max])]);\n this.subProjectForm.get('concreteClass').setValidators([Validators.required]);\n this.subProjectForm.get('concreteStrength').setValidators([Validators.required]);\n this.subProjectForm.get('concreteType').setValidators([Validators.required]);\n this.subProjectForm.get('profileType').setValidators([Validators.required]);\n this.subProjectForm.get('steelProfile').setValidators([Validators.required]);\n\n // tslint:disable-next-line:max-line-length\n this.subProjectForm.get('steelProfileCustomFlangeWidth').setValidators([Validators.required, CustomValidators.min(this.validationValues.steelProfileCustomFlangeThickness.min), this.customFlangeWidthValidator()]);\n // tslint:disable-next-line:max-line-length\n this.subProjectForm.get('steelProfileCustomWebThickness').setValidators([Validators.required, CustomValidators.min(this.validationValues.steelProfileCustomWebThickness.min)]);\n // tslint:disable-next-line:max-line-length\n this.subProjectForm.get('steelProfileCustomFlangeThickness').setValidators(unit === 1 ? [Validators.required, CustomValidators.min(5)] : [Validators.required, CustomValidators.min(0.19)]);\n this.subProjectForm.get('steelGrade').setValidators([Validators.required]);\n this.subProjectForm.get('elasticImposed').setValidators([Validators.required]);\n // tslint:disable-next-line:max-line-length\n this.subProjectForm.get('steelProfileCustomSteelGradeYieldStrength').setValidators([Validators.required, CustomValidators.range([this.validationValues.steelProfileCustomSteelGradeYieldStrength.min, this.validationValues.steelProfileCustomSteelGradeYieldStrength.max])]);\n this.subProjectForm.get('reinforcementType').setValidators([Validators.required]);\n // tslint:disable-next-line:max-line-length\n this.subProjectForm.get('profiledSheetingCustomDeckDepth').setValidators([this.conditionalCustomProfiledSheetingValidator, CustomValidators.range([this.validationValues.profiledSheetingCustomDeckDepth.min, this.validationValues.profiledSheetingCustomDeckDepth.max])]);\n // tslint:disable-next-line:max-line-length\n this.subProjectForm.get('profiledSheetingCustomThickness').setValidators(unit === 1 ? [this.conditionalCustomProfiledSheetingValidator, CustomValidators.range([0.5, 2])] : [this.conditionalCustomProfiledSheetingValidator, CustomValidators.range([0.01, 0.08])]);\n // tslint:disable-next-line:max-line-length\n this.subProjectForm.get('profiledSheetingCustomTroughSpacing').setValidators([this.conditionalCustomProfiledSheetingValidator, CustomValidators.range([this.validationValues.profiledSheetingCustomTroughSpacing.min, this.validationValues.profiledSheetingCustomTroughSpacing.max]), this.customProfileSheetingTroughValidator()]);\n // tslint:disable-next-line:max-line-length\n this.subProjectForm.get('profiledSheetingCustomBottomWidth').setValidators([this.conditionalCustomProfiledSheetingValidator, CustomValidators.range([this.validationValues.profiledSheetingCustomBottomWidth.min, this.validationValues.profiledSheetingCustomBottomWidth.max, this.customProfiledSheetingBottomValidator()])]);\n // tslint:disable-next-line:max-line-length\n this.subProjectForm.get('profiledSheetingCustomTopWidth').setValidators([this.conditionalCustomProfiledSheetingValidator, CustomValidators.range([this.validationValues.profiledSheetingCustomTopWidth.min, this.validationValues.profiledSheetingCustomTopWidth.max])]);\n this.subProjectForm.get('profiledSheetingCustomNumberRibStiffeners').setValidators([this.conditionalCustomProfiledSheetingValidator, CustomValidators.digits, CustomValidators.range([0, 2])]);\n // tslint:disable-next-line:max-line-length\n this.subProjectForm.get('profiledSheetingCustomRibStiffenerWidth').setValidators([this.conditionalCustomProfiledSheetingValidator, CustomValidators.range([this.validationValues.profiledSheetingCustomRibStiffenerWidth.min, this.validationValues.profiledSheetingCustomRibStiffenerWidth.max])]);\n // tslint:disable-next-line:max-line-length\n this.subProjectForm.get('profiledSheetingCustomStiffenersSpacing').setValidators([this.conditionalCustomProfiledSheetingValidator, CustomValidators.range([this.validationValues.profiledSheetingCustomStiffenersSpacing.min, this.validationValues.profiledSheetingCustomStiffenersSpacing.max])]);\n // tslint:disable-next-line:max-line-length\n this.subProjectForm.get('profiledSheetingCustomSurfaceWeight').setValidators(unit === 1 ? [this.conditionalCustomProfiledSheetingValidator, CustomValidators.notEqual(0), CustomValidators.notEqual('0'), CustomValidators.range([0, 50])] : [this.conditionalCustomProfiledSheetingValidator, CustomValidators.notEqual(0), CustomValidators.notEqual('0'), CustomValidators.range([0, 10])]);\n // tslint:disable-next-line:max-line-length\n this.subProjectForm.get('profiledSheetingCustomYieldStrength').setValidators([this.conditionalCustomProfiledSheetingValidator, CustomValidators.range([this.validationValues.profiledSheetingCustomYieldStrength.min, this.validationValues.profiledSheetingCustomYieldStrength.max])]);\n this.subProjectForm.get('profiledSheetingOrientation').setValidators([this.orientationValidator()]);\n this.subProjectForm.get('shearConnectionDegree').setValidators([Validators.required]);\n this.subProjectForm.get('shearConnectionOrientation').setValidators([Validators.required, this.orientationValidator()]);\n this.subProjectForm.get('shearConnectionType').setValidators([Validators.required, this.slabConnectorValidator()]);\n this.subProjectForm.get('userConnectionDegree').setValidators([Validators.required, CustomValidators.range([10, 100])]);\n this.subProjectForm.get('optimizationOption').setValidators([Validators.required]);\n this.subProjectForm.get('constructionType').setValidators([Validators.required]);\n this.subProjectForm.get('deflectionLimit').setValidators([Validators.required]);\n this.subProjectForm.get('liveLoadPercentage').setValidators([Validators.required]);\n this.subProjectForm.get('totalLoadDeflection').setValidators([Validators.required]);\n this.subProjectForm.get('precamber').setValidators([Validators.required]);\n this.subProjectForm.get('frequencyLimit').setValidators([Validators.required, CustomValidators.range([0, 10])]);\n this.subProjectForm.get('liveLoadInConstruction').setValidators([Validators.required, CustomValidators.min(0)]);\n this.subProjectForm.get('permanentLoad').setValidators([Validators.required, CustomValidators.min(0)]);\n this.subProjectForm.get('liveLoad').setValidators([CustomValidators.min(0)]);\n this.subProjectForm.get('permanentLoadFraction').setValidators([Validators.required, CustomValidators.range([0, 1])]);\n this.setBeamSpacingValidators(this.subProjectModel.beamGeometry.beamLocationId);\n\n this.calculationMessagesValuesRanges = {\n beamLengthUnit: this.unitSystem.lengthUnitTitle,\n beamLengthMin: this.validationValues.beamLengthRange.min,\n beamLengthMax: this.validationValues.beamLengthRange.max,\n steelStrengthMin: this.validationValues.steelProfileCustomSteelGradeYieldStrength.min,\n steelStrengthMax: this.validationValues.steelProfileCustomSteelGradeYieldStrength.max,\n concreteDensityMin: this.validationValues.concreteDensityRange.min,\n concreteDensityMax: this.validationValues.concreteDensityRange.max,\n concreteDensityUnit: this.unitSystem.densityUnitTitle,\n steelStrengthUnit: this.unitSystem.stressUnitForMaterialsTitle,\n leftSpacingMinLength: this.validationValues.beamSpacingLeft.max,\n leftSpacingMaxLength: this.validationValues.beamSpacingLeft.min,\n sheetingOrientationStrengthMax: this.validationValues.profiledSheetingCustomYieldStrength.max,\n sheetingOrientationStrengthMin: this.validationValues.profiledSheetingCustomYieldStrength.min,\n steelProfileWebThicknessMin: this.validationValues.steelProfileCustomWebThickness.min,\n steelProfileFlangeWidth: this.validationValues.steelProfileCustomFlangeThickness.min,\n dimensionUnitTitle: this.unitSystem.dimensionUnitTitle,\n incorectSlabThicknessIncreaseValue: this.project.unit === 1 ? 50 : 1.96,\n profileSheetingThicknessMin: this.project.unit === 1 ? 0.5 : 0.01,\n profileSheetingThicknessMax: this.project.unit === 1 ? 2 : 0.08,\n profileSheetingCustomTroughspacingMin: this.validationValues.profiledSheetingCustomTroughSpacing.min,\n profileSheetingCustomTroughspacingMax: this.validationValues.profiledSheetingCustomTroughSpacing.max,\n profileSheetingBottomWidthMin: this.validationValues.profiledSheetingCustomBottomWidth.min,\n profileSheetingBottomWidthMax: this.validationValues.profiledSheetingCustomBottomWidth.max,\n savMax: this.project.unit === 1 ? 200 : 7.87,\n profileSheetingCustomSurfaceWidthMin: 0,\n profileSheetingCustomSurfaceWidthMax: this.project.unit === 1 ? 50 : 10,\n surfaceWeightUnitTitle: this.unitSystem.surfaceWeightUnitTitle,\n profileSheetingThicknessSmallConnectors: this.project.unit === 1 ? 2 : 0.07,\n profileSheetingThicknessLargeConnectors: this.project.unit === 1 ? 1.5 : 0.05\n\n };\n }\n\n getConcreteClasses(nationalAnnexId: number, concreteClassId: number) {\n const concreteClasses = this.dropDownOptions.nationalConcreteClasses\n .filter(item => item.nationalAnnexId === nationalAnnexId)\n .map(x => x.concreteClassId);\n return this.concreteClasses.filter(item => concreteClasses.includes(item.id)).filter(c => c.concreteType.id === concreteClassId);\n }\n\n populateSubProjectForm = () => {\n let steelProfile = this.steelprofiles.filter(d => d.label === this.subProjectModel.steelProfile.profileName\n && d.steelProfileRange.dimension === this.unitSystem.dimensionUnitTitle\n )[0];\n if (steelProfile === undefined) {\n steelProfile = this.steelprofiles.filter(d => d.label === this.subProjectModel.steelProfile.profileName)[0];\n }\n if (this.project.designCode === 2) {\n this.steelProfilesPerRange = _.sortBy(this.steelprofiles.filter(p => p.steelProfileRange.id === steelProfile.steelProfileRange.id), o => o.id).reverse();\n } else {\n this.steelProfilesPerRange = this.steelprofiles.filter(p => p.steelProfileRange.id === steelProfile.steelProfileRange.id);\n }\n const concreteClass = this.concreteClasses.filter(item => item.id === this.subProjectModel.concreteSlab.concreteClassId)[0];\n this.concreteClassesPerConcreteType = this.getConcreteClasses(this.project.countryNationalAnnexes, concreteClass.concreteType.id);\n this.profileSheetings = this.getCurrentProfileSheetings(this.dropDownOptions, this.project.countryNationalAnnexes);\n this.loadCategories = this.loadCategories.filter(c => c.designCodeId === this.project.designCode);\n const loadCategory = this.loadCategories.filter(item => item.id === this.subProjectModel.loadCategory)[0];\n if (this.project.designCode === 3) {\n this.steelStandards = this.dropDownOptions.steelStandards.filter(i => i.countryId === this.project.countryNationalAnnexes);\n const steelStandard = this.dropDownOptions.steelStandards.find(i => i.id === this.subProjectModel.steelProfile.steelStandardNZS);\n this.subProjectForm.get('steelStandardNZS').setValue(steelStandard);\n this.steelGrades = this.dropDownOptions.steelGrades.filter(c => c.designCodeId === this.project.designCode && c.steelStandard === steelStandard.value);\n } else {\n this.steelGrades = this.dropDownOptions.steelGrades.filter(c => c.designCodeId === this.project.designCode);\n }\n\n let steelGrade = this.steelGrades.filter(item => item.id === this.subProjectModel.steelProfile.steelGradeId)[0];\n if (!steelGrade) {\n steelGrade = this.steelGrades[0];\n }\n\n this.concreteStrengths = this.concreteStrengths.filter(c => c.unitSystemId === this.project.unit && c.designCodeId === this.project.designCode);\n const concreteStrength = this.concreteStrengths.filter(item => item.id === this.subProjectModel.concreteSlab.concreteStrengthId)[0];\n\n this.constructionTypes = this.constructionTypes.filter(c => c.designCode === this.getStandardValue(this.project.designCode));\n this.reinforcementSteelGrades = this.reinforcementSteelGrades.filter(c => c.designCodeId === this.project.designCode);\n // tslint:disable-next-line:max-line-length\n const profileType = this.profileTypes.filter(item => item.id === steelProfile.steelProfileRange.id)[0];\n const reinforcementSteelGrade = this.reinforcementSteelGrades.filter(item => item.id === this.subProjectModel.reinforcement.steelGradeId)[0];\n // tslint:disable-next-line:max-line-length\n const nationalProfileTypeRanges = this.dropDownOptions.nationalSteelProfileRanges.filter(x => x.nationalAnnexId === this.project.countryNationalAnnexes).map(x => x.steelProfileRangeId);\n this.profileTypes = this.dropDownOptions.steelProfileRanges.filter(item => nationalProfileTypeRanges.includes(item.id));\n // tslint:disable-next-line:max-line-length\n this.totalDeflectionLimits = _.sortBy(this.deflectionLimits.filter(c => c.designCodeId === this.project.designCode && c.showInLiveLoad === true), o => o.id);\n this.totalLoadDeflections = _.sortBy(this.totalLoadDeflections.filter(c => c.designCodeId === this.project.designCode), o => o.id);\n this.subProjectForm.get('projectName').setValue(this.subProjectModel.projectName);\n this.subProjectForm.get('subprojectName').setValue(this.subProjectModel.name);\n // tslint:disable-next-line:max-line-length\n this.subProjectForm.get('loadCategory').setValue(loadCategory ? loadCategory : this.loadCategories[0], { emitEvent: false, emitViewToModelChange: false, emitModelToViewChange: true });\n this.subProjectForm.get('combinationFactor').setValue(this.subProjectModel.combinationFactor);\n this.subProjectForm.get('liveLoadReduction').setValue(this.subProjectModel.liveLoadReduction);\n\n const beamLocation = this.beamLocations.filter(item => item.id === this.subProjectModel.beamGeometry.beamLocationId)[0];\n this.subProjectForm.get('beamLocation').setValue(beamLocation);\n this.setBeamSpacingValidators(beamLocation.id);\n this.setBeamLabels(beamLocation.labelKey);\n this.setCustomSteelProfileValidators();\n this.subProjectForm.get('beamDesign').setValue(this.beamDesigns.filter(item => item.id === SubProjectComponent.DEFAULT_ID)[0]);\n this.subProjectForm.get('beamLength').setValue(this.subProjectModel.beamGeometry.beamLength);\n this.subProjectForm.get('beamSpacingLeft').setValue(this.subProjectModel.beamGeometry.leftSpacing);\n this.subProjectForm.get('beamSpacingRight').setValue(this.subProjectModel.beamGeometry.rightSpacing);\n // tslint:disable-next-line:max-line-length\n this.slabTypes = this.slabTypes.filter(item => item.designCode === this.getStandardValue(this.project.designCode));\n this.subProjectForm.get('slabType').setValue(this.slabTypes.filter(item => item.id === this.subProjectModel.beamGeometry.slabTypeId)[0]);\n this.subProjectForm.get('slabThickness').setValue(this.subProjectModel.concreteSlab.slabThickness);\n this.subProjectForm.get('leftOpening').setValue(this.subProjectModel.beamGeometry.leftOpening);\n this.subProjectForm.get('leftOpeningPosition').setValue(this.subProjectModel.beamGeometry.leftOpeningPosition);\n this.subProjectForm.get('rightOpening').setValue(this.subProjectModel.beamGeometry.rightOpening);\n this.subProjectForm.get('rightOpeningPosition').setValue(this.subProjectModel.beamGeometry.rightOpeningPosition);\n this.subProjectForm.get('haunchHeight').setValue(this.subProjectModel.concreteSlab.haunchHeight);\n this.subProjectForm.get('coverRequired').setValue(this.subProjectModel.concreteSlab.coverRequired);\n this.displayInfoMessage(this.subProjectModel.concreteSlab.coverRequired.toString());\n this.subProjectForm.get('concreteDensity').setValue(this.subProjectModel.concreteSlab.concreteDensity);\n if (this.subProjectModel.concreteSlab.aggregatesDensity == 0) {\n this.subProjectModel.concreteSlab.aggregatesDensity = this.project.unit === 1\n ? SubProjectComponent.CONCRETE_DENSITY_AGGREGATES_METRIC.max\n : SubProjectComponent.CONCRETE_DENSITY_AGGREGATES_IMPERIAL.max;\n }\n this.subProjectForm.get('aggregatesDensity').setValue(this.subProjectModel.concreteSlab.aggregatesDensity);\n this.subProjectForm.get('concreteClass').setValue(concreteClass);\n this.subProjectForm.get('concreteStrength').setValue(concreteStrength ? concreteStrength : this.concreteStrengths[0]);\n this.subProjectForm.get('concreteStrengthUS').setValue(this.subProjectModel.concreteSlab.concreteStrengthUS);\n this.subProjectForm.get('concreteType').setValue(this.concreteTypes.filter(item => item.id === this.subProjectModel.concreteSlab.concreteTypeId)[0]);\n this.updateCustomDefinedConcreteRangeValidationRules(this.concreteTypes.filter(item => item.id === concreteClass.concreteType.id)[0]);\n this.subProjectForm.get('profileType').setValue(profileType);\n this.subProjectForm.get('steelProfile').setValue(steelProfile);\n this.subProjectForm.get('elasticImposed').setValue(this.subProjectModel.steelProfile.elasticImposed, { emitEvent: false });\n this.subProjectForm.get('walkingExcitation').setValue(this.subProjectModel.deformation.walkingExcitationCheck);\n this.subProjectForm.get('walkingActivity').setValue(\n this.walkingActivity.find(x => x.id === this.subProjectModel.deformation.walkingActivity\n ));\n this.subProjectForm.get('rhythmicExcitationCheck').setValue(this.subProjectModel.deformation.rhythmicExcitationCheck);\n this.onWalkingActivityChange(this.subProjectForm.get('walkingActivity').value);\n this.subProjectForm.get('rhythmicActivity').setValue(this.rhythmicActivity.find(x => x.id === this.subProjectModel.deformation.rhythmicActivity));\n this.subProjectForm.get('performLateralTorsionBucklingCheck').setValue(this.subProjectModel.deformation.performLateralTorsionBucklingCheck);\n this.onRytmicExcitationCheckchange(this.subProjectForm.get('rhythmicExcitationCheck').value);\n this.subProjectForm.get('steelGrade').setValue(steelGrade);\n // tslint:disable-next-line:max-line-length\n this.subProjectForm.get('reinforcementType').setValue(reinforcementSteelGrade);\n if (this.subProjectModel.beamGeometry.slabTypeId !== 1 && this.subProjectModel.profileSheeting && this.subProjectModel.profileSheeting.profileName) {\n const profileSheetingType = this.profileSheetings.filter(d => d.label === this.subProjectModel.profileSheeting.profileName)[0];\n this.subProjectForm.get('profiledSheetingType').setValue(profileSheetingType);\n // tslint:disable-next-line:max-line-length\n this.subProjectForm.get('profiledSheetingOrientation').setValue(this.sheetingOrientations.filter(item => item.id === this.subProjectModel.profileSheeting.sheetingOrientationId)[0]);\n }\n // tslint:disable-next-line:max-line-length\n this.subProjectForm.get('shearConnectionDegree').setValue(this.shearConnectionDegrees.filter(item => item.id === this.subProjectModel.shearConnector.connectionDegreeId)[0]);\n // tslint:disable-next-line:max-line-length\n this.subProjectForm.get('shearConnectionType').setValue(this.shearConnectorTypes.filter(item => item.id === this.subProjectModel.shearConnector.connectorTypeId)[0]);\n this.filteredConnectorOrientations = this.shearConnectorOrientationFiltered();\n this.subProjectForm.get('userConnectionDegree').setValue(this.subProjectModel.shearConnector.userConnectionDegree);\n // tslint:disable-next-line:max-line-length\n this.subProjectForm.get('shearConnectionOrientation').setValue(this.shearConnectorOrientations.filter(item => item.id === this.subProjectModel.shearConnector.connectorsOrientationId)[0]);\n this.subProjectForm.get('optimizationOption').setValue(!this.subProjectModel.shearConnector.optimizationOption);\n this.filteredConnectorTypes = this.shearConnectorTypesFiltered();\n // tslint:disable-next-line:max-line-length\n this.subProjectForm.get('constructionType').setValue(this.constructionTypes.filter(item => item.id === this.subProjectModel.deformation.constructionTypeId)[0]);\n this.subProjectForm.get('deflectionLimit').setValue(this.deflectionLimits.filter(item => item.id === this.subProjectModel.deformation.compositeDeflectionLimit)[0]);\n // tslint:disable-next-line:max-line-length\n this.subProjectForm.get('liveLoadPercentage').setValue(this.liveLoadPercentages.filter(item => item.id === this.subProjectModel.deformation.percentageLiveLoad)[0]);\n // tslint:disable-next-line:max-line-length\n this.subProjectForm.get('totalLoadDeflection').setValue(this.totalLoadDeflections.filter(item => item.id === this.subProjectModel.deformation.totalDeflectionLimit)[0]);\n this.subProjectForm.get('precamber').setValue(this.subProjectModel.deformation.precamber);\n this.subProjectForm.get('frequencyLimit').setValue(this.subProjectModel.deformation.frequencyLimit);\n this.damplings = this.dropDownOptions.damplings.filter(i => i.designCodeId === this.project.designCode);\n this.subProjectForm.get('dampling').setValue(this.damplings.find(x => x.id === this.subProjectModel.deformation.dampling));\n\n if (this.project.designCode === 2) {\n this.subProjectForm.get('walkingExcitation').setValue(this.subProjectModel.deformation.walkingExcitationCheck);\n }\n this.subProjectForm.get('liveLoadInConstruction').setValue(this.subProjectModel.load.loadCases[0].distributedSurfaceLoad);\n\n this.subProjectForm.get('steelProfileCustomHeight').setValue(this.subProjectModel.steelProfile.height);\n this.subProjectForm.get('steelProfileCustomFlangeWidth').setValue(this.subProjectModel.steelProfile.flangeWidth);\n this.subProjectForm.get('steelProfileCustomWebThickness').setValue(this.subProjectModel.steelProfile.webThickness);\n this.subProjectForm.get('steelProfileCustomFlangeThickness').setValue(this.subProjectModel.steelProfile.flangeThickness);\n this.subProjectForm.get('steelProfileCustomRootRadius').setValue(this.subProjectModel.steelProfile.rootRadius);\n\n this.subProjectForm.get('steelProfileCustomSteelGradeYieldStrength').setValue(this.subProjectModel.steelProfile.yieldStrength);\n\n this.subProjectForm.get('profiledSheetingCustomDeckDepth').setValue(this.subProjectModel.profileSheeting.ribHeight);\n this.subProjectForm.get('profiledSheetingCustomThickness').setValue(this.subProjectModel.profileSheeting.thickness);\n if (this.project.unit === 2) {\n this.subProjectForm.get('profileSheetingCustomThicknessGage').setValue(this.gages.find((item) => item.inch === this.subProjectModel.profileSheeting.thickness));\n }\n this.subProjectForm.get('profiledSheetingCustomTroughSpacing').setValue(this.subProjectModel.profileSheeting.pitch);\n this.subProjectForm.get('profiledSheetingCustomBottomWidth').setValue(this.subProjectModel.profileSheeting.ribBottomWidth);\n this.subProjectForm.get('profiledSheetingCustomTopWidth').setValue(this.subProjectModel.profileSheeting.ribTopWidth);\n this.subProjectForm.get('profiledSheetingCustomNumberRibStiffeners').setValue(this.subProjectModel.profileSheeting.numberRibStiffeners);\n this.subProjectForm.get('profiledSheetingCustomRibStiffenerWidth').setValue(this.subProjectModel.profileSheeting.ribStiffenerWidth);\n this.subProjectForm.get('profiledSheetingCustomStiffenersSpacing').setValue(this.subProjectModel.profileSheeting.stiffenersSpacing);\n this.subProjectForm.get('profiledSheetingCustomSurfaceWeight').setValue(this.subProjectModel.profileSheeting.surfaceWeight);\n this.subProjectForm.get('profiledSheetingCustomYieldStrength').setValue(this.subProjectModel.profileSheeting.yieldStrength);\n this.subProjectForm.get('permanentLoadFraction').setValue(this.subProjectModel.deformation.permanentLoadFraction);\n this.subProjectForm.get('incrementalDeflectionCheck').setValue(this.subProjectModel.deformation.incrementalDeflectionCheck);\n const o1 = this.getObservableDefaultCompositeSelfWeight();\n const o2 = this.getObservableDefaultLiveLoad();\n const combine = observableZip(o1, o2);\n const subscribe = combine.subscribe(defaultLoads => {\n this.calculatedSelfWeightNewtons = defaultLoads[0];\n this.calculatedLiveLoadNewtons = defaultLoads[1];\n this.calculatedSelfWeightDisplay = UnitHelper.roundLoadFromApi(defaultLoads[0], this.project.loadUnit);\n this.calculatedLiveLoadDisplay = UnitHelper.roundLoadFromApi(defaultLoads[1], this.project.loadUnit);\n this.subProjectForm.get('selfWeight').setValue(this.calculatedSelfWeightDisplay);\n this.subProjectForm.get('defaultLiveLoad').setValue(this.calculatedLiveLoadDisplay);\n if (this.calculatedSelfWeightDisplay !== this.subProjectModel.load.userCompositeSelfWeight\n && this.subProjectModel.load.userCompositeSelfWeight !== 0) {\n this.overrideSelfWeight = true;\n this.subProjectForm.get('overrideSelfWeight').setValue(true);\n } else {\n this.overrideSelfWeight = false;\n this.subProjectForm.get('overrideSelfWeight').setValue(false);\n }\n if (this.calculatedLiveLoadDisplay !== this.subProjectModel.load.loadCases[2].distributedSurfaceLoad &&\n this.subProjectModel.load.loadCases[2].distributedSurfaceLoad !== 0) {\n this.overrideLiveLoad = true;\n this.subProjectForm.get('overrideLiveLoad').setValue(true);\n } else {\n this.overrideLiveLoad = false;\n this.subProjectForm.get('overrideLiveLoad').setValue(false);\n }\n this.subProjectForm.get('permanentLoad').\n setValue(this.subProjectModel.load.loadCases[1].distributedSurfaceLoad);\n this.subProjectForm.get('liveLoad').\n setValue(this.subProjectModel.load.loadCases[2].distributedSurfaceLoad);\n this.subProjectForm.get('userSelfWeight').\n setValue(this.subProjectModel.load.userCompositeSelfWeight);\n });\n\n\n const connectorValid = this.isValidShearConnector();\n this.correctPointAndLineLoads();\n this.isFormValid();\n }\n\n populateCustomProfileSheeteing = () => {\n this.subProjectForm.get('profiledSheetingCustomDeckDepth').setValue(this.subProjectModel.profileSheeting.ribHeight);\n this.subProjectForm.get('profiledSheetingCustomThickness').setValue(this.subProjectModel.profileSheeting.thickness);\n this.subProjectForm.get('profiledSheetingCustomTroughSpacing').setValue(this.subProjectModel.profileSheeting.pitch);\n this.subProjectForm.get('profiledSheetingCustomBottomWidth').setValue(this.subProjectModel.profileSheeting.ribBottomWidth);\n this.subProjectForm.get('profiledSheetingCustomTopWidth').setValue(this.subProjectModel.profileSheeting.ribTopWidth);\n // tslint:disable-next-line:max-line-length\n this.subProjectForm.get('profiledSheetingCustomNumberRibStiffeners').setValue(this.subProjectModel.profileSheeting.numberRibStiffeners);\n this.subProjectForm.get('profiledSheetingCustomRibStiffenerWidth').setValue(this.subProjectModel.profileSheeting.ribStiffenerWidth);\n this.subProjectForm.get('profiledSheetingCustomStiffenersSpacing').setValue(this.subProjectModel.profileSheeting.stiffenersSpacing);\n this.subProjectForm.get('profiledSheetingCustomSurfaceWeight').setValue(this.subProjectModel.profileSheeting.surfaceWeight);\n this.subProjectForm.get('profiledSheetingCustomYieldStrength').setValue(this.subProjectModel.profileSheeting.yieldStrength);\n }\n\n correctPointAndLineLoads = () => {\n if ((this.subProjectModel.load.loadCases.filter(lc => lc.sequence === 0).length === 1)\n && (this.subProjectModel.load.loadCases.filter(lc => lc.sequence === 1).length === 1)\n && (this.subProjectModel.load.loadCases.filter(lc => lc.sequence === 2).length === 1)\n && (this.subProjectModel.load.loadCases.filter(lc => lc.sequence === 3).length === 1)) {\n const loadCases = [];\n for (const loadCase of this.subProjectModel.load.loadCases) {\n loadCases[loadCase.sequence] = loadCase;\n }\n this.subProjectModel.load.loadCases = _.cloneDeep(loadCases);\n } else {\n this.subProjectModel.load.loadCases[3].lineLoads = _.cloneDeep(this.subProjectModel.load.loadCases[1].lineLoads);\n this.subProjectModel.load.loadCases[3].pointLoads = _.cloneDeep(this.subProjectModel.load.loadCases[1].pointLoads);\n this.subProjectModel.load.loadCases[1].lineLoads = _.cloneDeep(this.subProjectModel.load.loadCases[0].lineLoads);\n this.subProjectModel.load.loadCases[1].pointLoads = _.cloneDeep(this.subProjectModel.load.loadCases[0].pointLoads);\n this.subProjectModel.load.loadCases[0].lineLoads = [];\n this.subProjectModel.load.loadCases[0].pointLoads = [];\n let tempSurfaceLoad;\n tempSurfaceLoad = this.subProjectModel.load.loadCases[3].distributedSurfaceLoad;\n this.subProjectModel.load.loadCases[3].distributedSurfaceLoad = this.subProjectModel.load.loadCases[1].distributedSurfaceLoad;\n this.subProjectModel.load.loadCases[1].distributedSurfaceLoad = tempSurfaceLoad;\n tempSurfaceLoad = this.subProjectModel.load.loadCases[1].distributedSurfaceLoad;\n this.subProjectModel.load.loadCases[1].distributedSurfaceLoad = this.subProjectModel.load.loadCases[0].distributedSurfaceLoad;\n this.subProjectModel.load.loadCases[0].distributedSurfaceLoad = tempSurfaceLoad;\n this.subProjectModel.load.loadCases[0].sequence = 0;\n this.subProjectModel.load.loadCases[1].sequence = 1;\n this.subProjectModel.load.loadCases[2].sequence = 2;\n this.subProjectModel.load.loadCases[3].sequence = 3;\n }\n }\n\n connectorHeight = (connector: any): number => {\n const labels = connector.label.split(' ');\n return +labels[1];\n }\n\n private validateConnectorForHaunch = (height: number, id: number): boolean => {\n if (id === 1 || id === 2) {\n return false; // X-HVB 40 or 50 not an option\n }\n const haunchHeight = this.project.unit === 1 ? +this.subProjectForm.value.haunchHeight : UnitHelper.convertInchToMm(this.subProjectForm.value.haunchHeight);\n const slabThickness = this.project.unit === 1 ? +this.subProjectForm.value.slabThickness : UnitHelper.convertInchToMm(this.subProjectForm.value.slabThickness);\n const minHeight = 40 + haunchHeight;\n const maxHeightForCover = slabThickness + (haunchHeight - 20);\n const maxHeightForWithOutCover = slabThickness + haunchHeight;\n if (this.subProjectForm.value.coverRequired === true) {\n if (height >= minHeight && height <= maxHeightForCover) {\n return true;\n }\n } else {\n if (height >= minHeight && height <= maxHeightForWithOutCover) {\n return true;\n }\n }\n console.log('Connector with id = ' + id + 'Not Valid');\n return false;\n }\n\n private validateConnectorWithOutHaunch = (height: number,\n minSlabThicknessWithCorrosion: number,\n minSlabThicknessWithOutCorrosion: number, id: number): boolean => {\n if (this.subProjectForm.value.slabType.value === 1 && (id === 1 || id === 2)) {\n return false; // X-HVB 40 or 50 not an option for profiled sheeting\n }\n const thickness = this.project.unit === 1 ? this.subProjectForm.value.slabThickness :\n UnitHelper.convertInchToMm(this.subProjectForm.value.slabThickness);\n if (this.subProjectForm.value.coverRequired === true) {\n if (thickness >= minSlabThicknessWithCorrosion) {\n return true;\n }\n } else {\n if (thickness >= minSlabThicknessWithOutCorrosion) {\n return true;\n }\n }\n return false;\n }\n\n private shearConnectorTypesFiltered = (): any[] => {\n const suitableConnectors = this.dropDownOptions.nationalShearConnectorTypes\n .filter(item => item.nationalAnnexId === this.project.countryNationalAnnexes)\n .map(x => x.shearConnectorTypeId);\n const shearConnectorFiltered = this.shearConnectorTypes.filter(item => suitableConnectors.includes(item.id));\n return shearConnectorFiltered.filter((connectorType) => {\n // tslint:disable-next-line:max-line-length\n // If Haunch Height\n const height = this.connectorHeight(connectorType);\n if (this.subProjectForm.value.haunchHeight > 0) {\n return this.validateConnectorForHaunch(height, connectorType.id);\n } else {\n return this.validateConnectorWithOutHaunch(height, connectorType.minSlabThicknessWithCorrosion,\n connectorType.minSlabThicknessWithOutCorrosion, connectorType.id);\n }\n });\n }\n\n private shearConnectorOrientationVisible = () => {\n const filtered = this.shearConnectorOrientationFiltered();\n if (filtered.length && filtered.length > 1) {\n return true;\n } else {\n return false;\n }\n }\n\n private shearConnectorOrientationFiltered = (): any[] => {\n // Orientation 1 - Parallel\n // Orientation 2 - Perpendicular\n // Orientation 1 - Duckwalk\n\n return this.shearConnectorOrientations.filter((orientations) => {\n // connector type is X-HVB 40 or 50 then Duckwalk\n if (!this.subProjectForm ||\n !this.subProjectForm.value ||\n !this.subProjectForm.value.shearConnectionType ||\n !this.subProjectForm.value.slabType) {\n return false;\n } else if (this.subProjectForm.value.shearConnectionType.id === 1 ||\n this.subProjectForm.value.shearConnectionType.id === 2) {\n // X-HVB 40 OR 50 only duckwalk is valid\n if (orientations.id === 3) {\n return true;\n } else {\n return false;\n }\n } else if (this.subProjectForm.value.slabType.value === 0 &&\n this.subProjectForm.value.shearConnectionType.id !== 1 &&\n this.subProjectForm.value.shearConnectionType.id !== 2) {\n // 1 is parallel if it is solid slab then we can only select longitudinal orientation\n if (orientations.id === 1) {\n return true;\n } else {\n return false;\n }\n } else if (this.subProjectForm.value.slabType.value === 1 &&\n this.subProjectForm.value.shearConnectionType.id !== 1 &&\n this.subProjectForm.value.shearConnectionType.id !== 2 &&\n orientations.id !== 3) {\n // Profiled Sheeting Orientation 2 is parallel\n // Sheeting orientation ids and Connector orientation ids do not match for parallel and perpendicular\n // Be mindful of that before changing the below code\n // If profiled Sheeting orientation is parallel then connector has to be longitudinal\n // If profiled Sheeting orientation is perpendicular then connector can be longitudinal or transverse\n if (this.subProjectForm.value.profiledSheetingOrientation.id === 2) {\n if (orientations.id === 1) {\n return true;\n } else {\n return false;\n }\n } else {\n return true;\n }\n } else {\n return false;\n }\n });\n }\n\n onLineLoadUpdated(event) {\n this.subProjectModel.load.loadCases[3].lineLoads = [];\n this.subProjectModel.load.loadCases[3].lineLoads.push(...event.liveLineLoads);\n this.subProjectModel.load.loadCases[1].lineLoads = [];\n this.subProjectModel.load.loadCases[1].lineLoads.push(...event.deadLineLoads);\n this.getLiveLineLoadsDrawing();\n this.getDeadLineLoadsDrawing();\n this.subProjectForm.markAsDirty();\n }\n\n onPointLoadUpdated(event) {\n this.subProjectModel.load.loadCases[3].pointLoads = [];\n this.subProjectModel.load.loadCases[3].pointLoads.push(...event.livePointLoads);\n this.subProjectModel.load.loadCases[1].pointLoads = [];\n this.subProjectModel.load.loadCases[1].pointLoads.push(...event.deadPointLoads);\n this.getLivePointLoadsDrawing();\n this.getDeadPointLoadsDrawing();\n this.subProjectForm.markAsDirty();\n }\n\n onSurfaceLoadUpdated(event) {\n this.subProjectModel.load.loadCases[3].distributedSurfaceLoad = event ? event : 0;\n if (this.subProjectModel.load.loadCases[3].distributedSurfaceLoad === 0) {\n this.surfaceLiveLoadsDrawing = null;\n } else {\n this.getLoadDrawing(3);\n }\n this.subProjectForm.markAsDirty();\n }\n\n private onGageThicknessChange(data) {\n if (data && data.inch) {\n this.subProjectForm.get('profiledSheetingCustomThickness').setValue(data.inch);\n }\n }\n\n private onSteelStandardChange(data: models.SteelStandards) {\n this.steelGrades = this.dropDownOptions.steelGrades.filter(p => p.steelStandard === data.value && p.designCodeId === this.project.designCode);\n this.subProjectForm.get('steelGrade').setValue(this.steelGrades[0]);\n }\n}\n","import { ForceComponent } from './../units/force/force.component';\nimport { UserAgreementAcceptGaurd } from './../user-agreement-acceptguard.service';\nimport { NgModule } from '@angular/core';\nimport { SharedModule } from './../shared/shared.module';\nimport { RouterModule } from '@angular/router';\nimport { SubProjectListComponent } from './sub-project-list.component';\nimport { SubProjectComponent } from './sub-project.component';\nimport { SubProjectService } from './sub-project.service';\nimport { GridModule } from '@progress/kendo-angular-grid';\nimport { DropDownsModule } from '@progress/kendo-angular-dropdowns';\nimport { LayoutModule } from '@progress/kendo-angular-layout';\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\nimport { ApplicationOptionsService } from '../service/common/application-options.service';\nimport { SettingsService } from '../settings/settings.service';\nimport { DialogModule } from '@progress/kendo-angular-dialog';\n\nimport { CalculateComponent } from '../calculations/calculate/calculate.component';\nimport { CalculationsService } from './../calculations/calculations.service';\nimport { RouteGuard } from './../service/common/routeguard.service';\nimport { SubProjectSaveGuard } from './sub-project-saveguard.service';\nimport { PointloadsComponent } from './pointloads/pointloads.component';\nimport { SurfaceloadsComponent } from './surfaceloads/surfaceloads.component';\nimport { LineloadsComponent } from './lineloads/lineloads.component';\nimport { ValuesBetweenPipe } from './valuesBetween.pipe';\nimport {ButtonModule, CheckboxModule, ContentSectionModule, RadioButtonModule} from 'hilti-ui-library';\n\n@NgModule({\n imports: [\n SharedModule,\n RouterModule.forChild([\n {\n path: 'subprojects',\n component: SubProjectListComponent,\n canActivate: [RouteGuard, UserAgreementAcceptGaurd]\n },\n {\n path: 'subproject',\n component: SubProjectComponent,\n canActivate: [RouteGuard, UserAgreementAcceptGaurd],\n canDeactivate: [SubProjectSaveGuard]\n },\n {\n path: 'subproject/:id',\n component: SubProjectComponent,\n canActivate: [RouteGuard, UserAgreementAcceptGaurd],\n canDeactivate: [SubProjectSaveGuard]\n },\n {\n path: 'subproject/:projectid',\n component: SubProjectComponent,\n canActivate: [RouteGuard, UserAgreementAcceptGaurd],\n canDeactivate: [SubProjectSaveGuard]\n }\n ]),\n GridModule,\n DropDownsModule,\n LayoutModule,\n ReactiveFormsModule,\n FormsModule,\n DialogModule,\n ButtonModule,\n CheckboxModule,\n ContentSectionModule,\n RadioButtonModule,\n ],\n declarations: [\n ValuesBetweenPipe,\n SubProjectListComponent,\n SubProjectComponent,\n CalculateComponent,\n PointloadsComponent,\n SurfaceloadsComponent,\n LineloadsComponent,\n ForceComponent,\n ],\n providers: [\n SubProjectService,\n ApplicationOptionsService,\n CalculationsService,\n SettingsService,\n SubProjectSaveGuard,\n UserAgreementAcceptGaurd\n ],\n exports: [\n SubProjectListComponent,\n SubProjectComponent\n ]\n})\nexport class SubProjectModule { }\n","import { HttpClient } from './../common/http-client';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport { Injectable } from '@angular/core';\nimport { GridDataResult } from '@progress/kendo-angular-grid';\nimport { ConfigService } from 'app/service/config.service';\nimport { environment } from 'environments/environment';\nimport { map } from 'rxjs/operators';\nimport { SetSubProjectStatusResponse } from './../models/subproject';\nimport * as models from './../models/models';\n\n@Injectable()\nexport class SubProjectService extends BehaviorSubject {\n private _subProjectsUrl = '';\n public subProjectStatusChange: Subject;\n constructor(private _http: HttpClient, private configService: ConfigService) {\n super(null);\n this.subProjectStatusChange = new Subject();\n if (environment.localTesting) {\n this._subProjectsUrl = `${this.configService.config.serviceUrl}subprojects/`;\n } else {\n this._subProjectsUrl = `${this.configService.config.serviceUrl}asws/profishvb/shear_connector_subprojects/v1/`;\n }\n }\n\n public createSubProject(subProject: models.SubProject) {\n return this._http\n .post(`${this._subProjectsUrl}`, subProject);\n }\n\n public updateSubProject(subProject: models.SubProject) {\n return this._http\n .put(`${this._subProjectsUrl}${subProject.id}`, subProject);\n }\n\n public getSubProjectById(id: number): Observable {\n return this._http\n .get(`${this._subProjectsUrl}${id}`);\n }\n\n public setStatus(ids: number[], status: number) {\n return this._http\n .put(`${this._subProjectsUrl}setStatus`, {\n ids: ids,\n status: status,\n }).pipe(\n map(response => {\n this.subProjectStatusChange.next(response);\n return response;\n }));\n }\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3N1YnByb2plY3Qvc3VyZmFjZWxvYWRzL3N1cmZhY2Vsb2Fkcy5jb21wb25lbnQuc2NzcyJ9 */\"","import { SharedService } from './../../service/common/shared.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { UserService } from './../../service/common/user.service';\nimport { Component, Input, Output, EventEmitter, OnChanges, SimpleChanges, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\n\n@Component({\n selector: 'surface-loads',\n templateUrl: './surfaceloads.component.html',\n styleUrls: ['./surfaceloads.component.scss']\n})\nexport class SurfaceloadsComponent implements OnChanges, OnInit {\n public LIVELOAD = 'live';\n public LOAD0: string;\n @Input()\n public forceUnitTitle: string;\n @Input()\n public lengthUnitTitle: string;\n @Input()\n public surfaceLoads: any;\n @Output()\n public surfaceLoadsUpdated: EventEmitter = new EventEmitter();\n public surfaceLoadsData: any[] = [];\n\n constructor(private formBuilder: FormBuilder,\n private user: UserService,\n private translate: TranslateService,\n private sharedService: SharedService) { }\n\n ngOnInit(): void {\n const loadStr = ' (' + this.forceUnitTitle + '/' + this.lengthUnitTitle + '2)';\n this.LOAD0 = this.translate.instant('load0') + loadStr;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n this.surfaceLoadsData = []\n this.surfaceLoadsData.push({ load: changes.surfaceLoads.currentValue });\n }\n\n public cellClickHandler({ sender, rowIndex, columnIndex, dataItem, isEdited }) {\n if (!isEdited) {\n sender.editCell(rowIndex, columnIndex, this.createFormGroup(dataItem));\n }\n }\n\n public cellCloseHandler(args: any) {\n const { formGroup } = args;\n this.surfaceLoadsUpdated.emit(formGroup.value.load);\n }\n\n public createFormGroup(dataItem: any): FormGroup {\n return this.formBuilder.group({\n 'load': dataItem.load,\n });\n }\n}\n","import { PipeTransform, Pipe } from '@angular/core';\n\n@Pipe({\n name: 'valuesBetween'\n})\nexport class ValuesBetweenPipe implements PipeTransform {\n transform(value: string, minvalue: any, maxvalue: any, unit: any = '') {\n return value.replace('%MINVALUE%', minvalue).replace('%MAXVALUE%', maxvalue).replace('%UNIT%', unit);\n }\n}\n","export default \"/deep/ .hilti-NPS-styled-button {\\n cursor: pointer; }\\n\\n/deep/ .survey-dialog .k-dialog .k-window-titlebar.k-header {\\n background-color: transparent; }\\n\\n/deep/ .survey-dialog .k-dialog .k-window-titlebar.k-header .k-window-title {\\n height: 100%; }\\n\\n/deep/ .survey-dialog .k-window-actions.k-dialog-actions {\\n display: none; }\\n\\n/deep/ .k-dialog-titlebar {\\n background-color: #F3F2F0; }\\n\\n/deep/ .hilti-NPS-styled-input:focus {\\n outline: none !important; }\\n\\n/deep/ #NPS-submit-button, /deep/ #NPS-cancel-button {\\n color: #fff !important;\\n background-color: #d2051e !important;\\n border-color: #d2051e !important;\\n font-family: Hilti;\\n display: flex !important;\\n align-items: center;\\n justify-content: center;\\n font-weight: 700 !important;\\n min-height: 48px;\\n font-family: inherit;\\n color: #524f53;\\n text-align: center;\\n vertical-align: middle;\\n background-color: transparent;\\n border: 2px solid transparent;\\n padding: .375rem .875rem;\\n font-size: 1rem;\\n line-height: 24px;\\n border-radius: 0; }\\n\\n/deep/ #NPS-cancel-button {\\n background-color: #cfccc5 !important;\\n border-color: #a0998b !important;\\n color: #524f53 !important; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9idWlsZHMvYnUtZi1wcy9zaGVhci1jb25uZWN0b3IvZGVwbG95L2NvZGUvaHZiLXdlYi9odmItYXBwL3NyYy9hcHAvc3VydmV5L3N1cnZleS5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLGdCQUFlLEVBQ2xCOztBQUVEO0VBQ0ksOEJBQTZCLEVBQ2hDOztBQUVEO0VBQ0ksYUFBWSxFQUNmOztBQUVEO0VBQ0ksY0FBYSxFQUNoQjs7QUFDRDtFQUNFLDBCQUF5QixFQUMxQjs7QUFFRDtFQUNFLHlCQUF3QixFQUN6Qjs7QUFFRDtFQUNFLHVCQUFzQjtFQUN0QixxQ0FBb0M7RUFDcEMsaUNBQWdDO0VBQ2hDLG1CQUFrQjtFQUNsQix5QkFBdUI7RUFDdkIsb0JBQW1CO0VBQ25CLHdCQUF1QjtFQUN2Qiw0QkFBMEI7RUFDMUIsaUJBQWdCO0VBQ2hCLHFCQUFvQjtFQUNwQixlQUFjO0VBQ2QsbUJBQWtCO0VBQ2xCLHVCQUFzQjtFQUN0Qiw4QkFBNkI7RUFDN0IsOEJBQTZCO0VBQzdCLHlCQUF3QjtFQUN4QixnQkFBZTtFQUNmLGtCQUFpQjtFQUNqQixpQkFBZ0IsRUFDakI7O0FBRUQ7RUFFRSxxQ0FBb0M7RUFDcEMsaUNBQWdDO0VBQ2hDLDBCQUF3QixFQUN6QiIsImZpbGUiOiJzcmMvYXBwL3N1cnZleS9zdXJ2ZXkuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvZGVlcC8gLmhpbHRpLU5QUy1zdHlsZWQtYnV0dG9uIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi9kZWVwLyAuc3VydmV5LWRpYWxvZyAuay1kaWFsb2cgLmstd2luZG93LXRpdGxlYmFyLmstaGVhZGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuL2RlZXAvIC5zdXJ2ZXktZGlhbG9nIC5rLWRpYWxvZyAuay13aW5kb3ctdGl0bGViYXIuay1oZWFkZXIgLmstd2luZG93LXRpdGxlIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG5cbi9kZWVwLyAuc3VydmV5LWRpYWxvZyAuay13aW5kb3ctYWN0aW9ucy5rLWRpYWxvZy1hY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuL2RlZXAvIC5rLWRpYWxvZy10aXRsZWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGM0YyRjA7XG59XG5cbi9kZWVwLyAuaGlsdGktTlBTLXN0eWxlZC1pbnB1dDpmb2N1cyAge1xuICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi9kZWVwLyAjTlBTLXN1Ym1pdC1idXR0b24ge1xuICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDIwNTFlICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogI2QyMDUxZSAhaW1wb3J0YW50O1xuICBmb250LWZhbWlseTogSGlsdGk7XG4gIGRpc3BsYXk6IGZsZXghaW1wb3J0YW50O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZm9udC13ZWlnaHQ6IDcwMCFpbXBvcnRhbnQ7XG4gIG1pbi1oZWlnaHQ6IDQ4cHg7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBjb2xvcjogIzUyNGY1MztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIHBhZGRpbmc6IC4zNzVyZW0gLjg3NXJlbTtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cblxuL2RlZXAvICNOUFMtY2FuY2VsLWJ1dHRvbiB7XG4gIEBleHRlbmQgI05QUy1zdWJtaXQtYnV0dG9uO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2ZjY2M1ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogI2EwOTk4YiAhaW1wb3J0YW50O1xuICBjb2xvcjogIzUyNGY1MyFpbXBvcnRhbnQ7XG59XG4iXX0= */\"","import { Component, OnInit, Output, EventEmitter, ElementRef, AfterViewInit, ViewChild, Input } from '@angular/core';\nimport { SafeHtml, DomSanitizer } from '@angular/platform-browser';\n\n@Component({\n // tslint:disable-next-line:component-selector\n selector: 'survey',\n templateUrl: './survey.component.html',\n styleUrls: ['./survey.component.scss']\n})\nexport class SurveyComponent implements OnInit, AfterViewInit {\n @ViewChild('survey', { static: true }) survey: ElementRef;\n @Output() close: EventEmitter = new EventEmitter();\n @Input() private surveyData: any;\n public surveyHtml: SafeHtml;\n\n constructor(private sanitizer: DomSanitizer) { }\n\n ngOnInit() {\n this.surveyHtml = this.sanitizer.bypassSecurityTrustHtml('');\n }\n\n ngAfterViewInit() {\n const customSurvey = this.survey.nativeElement.querySelector('custom-survey');\n if (customSurvey) {\n customSurvey.addEventListener('closeSurvey', this.closeSurvey.bind(this))\n }\n }\n\n closeSurvey(result) {\n this.close.emit(result);\n }\n}\n","import { SurveyService } from './survey.service';\nimport { SurveyComponent } from './survey.component';\nimport { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { DialogModule } from '@progress/kendo-angular-dialog';\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n FormsModule,\n DialogModule\n ],\n declarations: [\n SurveyComponent\n ],\n exports: [\n SurveyComponent\n ],\n providers: [\n SurveyService\n ],\n schemas: [\n CUSTOM_ELEMENTS_SCHEMA\n ]\n})\nexport class SurveyModule { }\n","import { HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { HttpClient } from '../common/http-client';\nimport { ConfigService } from 'app/service/config.service';\n\n@Injectable()\nexport class SurveyService {\n\n\n constructor(private httpClient: HttpClient, private configService: ConfigService) {\n }\n\n async getSurveyAvailability(applicationId, languageId, regionId): Promise {\n let params = new HttpParams();\n params = params.append('ApplicationId', applicationId);\n params = params.append('LanguageId', languageId);\n params = params.append('RegionId', regionId);\n\n return this.httpClient.get(`${this.configService.config.APISurveyPathUrl}available`, params).toPromise();\n }\n}\n","export default \"li {\\n margin-top: 10px; }\\n\\nol {\\n padding-left: 0em;\\n list-style-position: inside; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9idWlsZHMvYnUtZi1wcy9zaGVhci1jb25uZWN0b3IvZGVwbG95L2NvZGUvaHZiLXdlYi9odmItYXBwL3NyYy9hcHAvdGlwcy90aXBzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksaUJBQWdCLEVBQ25COztBQUNEO0VBQ0Msa0JBQWlCO0VBQ2hCLDRCQUEyQixFQUM1QiIsImZpbGUiOiJzcmMvYXBwL3RpcHMvdGlwcy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbImxpIHtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xufVxub2wge1xuIHBhZGRpbmctbGVmdDogMGVtO1xuICBsaXN0LXN0eWxlLXBvc2l0aW9uOiBpbnNpZGU7XG59XG4iXX0= */\"","import { map, mergeMap } from 'rxjs/operators';\nimport { Component } from '@angular/core';\nimport { SettingsService } from '../settings/settings.service';\nimport { SessionStorageService } from '../service/util/session-storage.service';\nimport { Observable } from 'rxjs';\nimport { TranslateService } from '@ngx-translate/core';\nimport { HttpClient } from '@angular/common/http';\nimport { ApplicationOptionsService } from 'app/service/common/application-options.service';\n\n@Component({\n selector: 'tips',\n templateUrl: './tips.component.html',\n styleUrls: ['./tips.component.scss']\n})\nexport class TipsComponent {\n constructor(\n public http: HttpClient,\n public sessionStorageService: SessionStorageService,\n public translate: TranslateService,\n public settingsService: SettingsService,\n private applicationOptionsService: ApplicationOptionsService\n ) {\n\n }\n\n getCurrentUrls(): Observable {\n const countries = this.applicationOptionsService.options.nationalAnnexes;\n return this.settingsService.getSettings().pipe(mergeMap(defaultSettings => {\n const currentCountry = countries.filter(c => c.id === defaultSettings.countryNationalAnnexes)[0].labelKey;\n return this.http.get(`./assets/url/${currentCountry.toLowerCase()}-url-setting.json`).pipe(map((res: Response) => res));\n }));\n }\n}\n","export default \".superscript {\\n vertical-align: super;\\n font-size: smaller;\\n line-height: normal; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9idWlsZHMvYnUtZi1wcy9zaGVhci1jb25uZWN0b3IvZGVwbG95L2NvZGUvaHZiLXdlYi9odmItYXBwL3NyYy9hcHAvdW5pdHMvZm9yY2UvZm9yY2UuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSxzQkFBcUI7RUFDckIsbUJBQWtCO0VBQ2xCLG9CQUFtQixFQUNwQiIsImZpbGUiOiJzcmMvYXBwL3VuaXRzL2ZvcmNlL2ZvcmNlLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnN1cGVyc2NyaXB0IHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogc3VwZXI7XG4gICAgZm9udC1zaXplOiBzbWFsbGVyO1xuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIH0iXX0= */\"","import { Component, Input } from '@angular/core';\n\n@Component({\n // tslint:disable-next-line:component-selector\n selector: 'force-unit',\n templateUrl: './force.component.html',\n styleUrls: ['./force.component.scss']\n})\nexport class ForceComponent {\n @Input()\n public forceUnitTitle: string;\n @Input()\n public lengthUnitTitle: string;\n @Input()\n public exponent: number;\n\n constructor() { }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { AppConstants } from './common/AppConstants';\nimport { SharedService } from './service/common/shared.service';\nimport { UserService } from './service/common/user.service';\nimport { AppStorageService } from './service/util/app-storage.service';\n\n@Injectable()\nexport class UserAgreementAcceptGaurd implements CanActivate {\n constructor(private sharedService: SharedService, private user: UserService, public appStorageService: AppStorageService) { }\n\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable | Promise | boolean {\n if (!this.user.isEulaAccepted) {\n if (this.appStorageService.get(AppConstants.HVB_EULA) || this.appStorageService.get(AppConstants.HVB_PREVIOUS_USER)) {\n return true;\n } else {\n this.sharedService.showEulaDialog(true);\n return this.sharedService.$showEulaDialog;\n }\n } else {\n return true;\n }\n }\n}\n","export default \".title-strike {\\n height: 38px;\\n line-height: 38px;\\n margin-bottom: 0px;\\n font-weight: 700;\\n position: relative;\\n overflow: hidden;\\n border-bottom: 1px solid #CFCCC5;\\n border-top: 1px solid #CFCCC5;\\n cursor: pointer; }\\n\\n.whats-new-block:first-child .title-strike {\\n border-top-width: 0px; }\\n\\n.sprite {\\n width: 32px;\\n min-width: 32px;\\n height: 32px;\\n position: relative;\\n bottom: 2px; }\\n\\n.section-collapse {\\n border: none;\\n background: none;\\n padding: 0;\\n position: absolute;\\n right: 0;\\n z-index: 10;\\n background-color: #fff;\\n cursor: pointer; }\\n\\n.section-collapse:focus {\\n outline: none; }\\n\\n.section {\\n background-color: #F3F2F0;\\n padding-top: 15px;\\n padding-bottom: 5px; }\\n\\n/deep/ .k-window-content {\\n padding-right: 20px; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9idWlsZHMvYnUtZi1wcy9zaGVhci1jb25uZWN0b3IvZGVwbG95L2NvZGUvaHZiLXdlYi9odmItYXBwL3NyYy9hcHAvd2hhdHMtbmV3L3doYXRzLW5ldy5jb21wb25lbnQuc2NzcyIsIi9idWlsZHMvYnUtZi1wcy9zaGVhci1jb25uZWN0b3IvZGVwbG95L2NvZGUvaHZiLXdlYi9odmItYXBwL25vZGVfbW9kdWxlcy9oaWx0aS11aS1saWJyYXJ5L2Fzc2V0cy9zYXNzL19odWktY29sb3JzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0E7RUFDSSxhQUFXO0VBQ1gsa0JBQWdCO0VBQ2hCLG1CQUFpQjtFQUNqQixpQkFBZTtFQUNmLG1CQUFpQjtFQUNqQixpQkFBZTtFQUNqQixpQ0NGOEI7RURHOUIsOEJDSDhCO0VESTlCLGdCQUFlLEVBQ2hCOztBQUVEO0VBRUksc0JBQXFCLEVBQ3RCOztBQUdIO0VBQ0ksWUFBVTtFQUNWLGdCQUFjO0VBQ2QsYUFBVztFQUNYLG1CQUFrQjtFQUNsQixZQUFXLEVBQ2Q7O0FBRUQ7RUFDSSxhQUFXO0VBQ1gsaUJBQWU7RUFDZixXQUFTO0VBQ1QsbUJBQWlCO0VBQ2pCLFNBQU87RUFDUCxZQUFVO0VBQ1YsdUJBQXFCO0VBQ3JCLGdCQUFlLEVBS2xCOztBQWJEO0lBV1EsY0FBYSxFQUNoQjs7QUFHTDtFQUNFLDBCQ3hDOEI7RUR5QzlCLGtCQUFpQjtFQUNqQixvQkFBbUIsRUFDcEI7O0FBRUQ7RUFDSSxvQkFBbUIsRUFDdEIiLCJmaWxlIjoic3JjL2FwcC93aGF0cy1uZXcvd2hhdHMtbmV3LmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCAnLi4vLi4vLi4vc3JjL192YXJpYWJsZXMuc2Nzcyc7XG5cblxuLnRpdGxlLXN0cmlrZSB7XG4gICAgaGVpZ2h0OjM4cHg7XG4gICAgbGluZS1oZWlnaHQ6MzhweDtcbiAgICBtYXJnaW4tYm90dG9tOjBweDtcbiAgICBmb250LXdlaWdodDo3MDA7XG4gICAgcG9zaXRpb246cmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6aGlkZGVuO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGh1aS1oZWF2eS1jb25jcmV0ZS0tNDA7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAkaHVpLWhlYXZ5LWNvbmNyZXRlLS00MDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ud2hhdHMtbmV3LWJsb2NrOmZpcnN0LWNoaWxkIHtcbiAgLnRpdGxlLXN0cmlrZSB7XG4gICAgYm9yZGVyLXRvcC13aWR0aDogMHB4O1xuICB9XG59XG5cbi5zcHJpdGUge1xuICAgIHdpZHRoOjMycHg7XG4gICAgbWluLXdpZHRoOjMycHg7XG4gICAgaGVpZ2h0OjMycHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJvdHRvbTogMnB4O1xufVxuXG4uc2VjdGlvbi1jb2xsYXBzZSB7XG4gICAgYm9yZGVyOm5vbmU7XG4gICAgYmFja2dyb3VuZDpub25lO1xuICAgIHBhZGRpbmc6MDtcbiAgICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgICByaWdodDowO1xuICAgIHotaW5kZXg6MTA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjojZmZmO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cbn1cblxuLnNlY3Rpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkaHVpLWhlYXZ5LWNvbmNyZXRlLS0xMDtcbiAgcGFkZGluZy10b3A6IDE1cHg7XG4gIHBhZGRpbmctYm90dG9tOiA1cHg7XG59XG5cbi9kZWVwLyAuay13aW5kb3ctY29udGVudCB7XG4gICAgcGFkZGluZy1yaWdodDogMjBweDtcbn1cbiIsIi8vQ29sb3JzXG4vL1RPRE86IHJlbW92ZSBwcmVmaXggaHVpIGluIGNvbG9ycyB2YXJpYWJsZVxuJGh1aS1oaWx0aS1yZWQ6ICNEMjA1MUU7XG4kaHVpLWRhcmstcmVkOiAjQUIwMTE1O1xuJGh1aS1lcnJvci1yZWQ6ICNGRjAwMDA7XG4kaHVpLWhlYXZ5LWNvbmNyZXRlLS0xMDogI0YzRjJGMDtcbiRodWktaGVhdnktY29uY3JldGUtLTIwOiAjRTdFNUUyO1xuJGh1aS1oZWF2eS1jb25jcmV0ZS0tMzA6ICNEQkQ4RDM7XG4kaHVpLWhlYXZ5LWNvbmNyZXRlLS00MDogI0NGQ0NDNTtcbiRodWktaGVhdnktY29uY3JldGUtLTYwOiAjQjdCM0FBO1xuJGh1aS1oZWF2eS1jb25jcmV0ZS0tODA6ICNBMDk5OEI7XG4kaHVpLXN0ZWVsOiAjNTI0RjUzO1xuJGh1aS1zdGVlbC0tMjA6ICNERERDREQ7XG4kaHVpLXN0ZWVsLS00MDogI0JBQjlCQTtcbiRodWktc3RlZWwtLTYwOiAjOTc5NTk4O1xuJGh1aS1zdGVlbC0tODA6ICM3NTcyNzU7XG4kaHVpLXdoaXRlOiAjRkZGO1xuJGh1aS1ibGFjazogIzAwMDtcbiRodWktYmxhY2stLTkwOiAjMTkxOTE5O1xuJGh1aS1ibGFjay0tNDA6ICM5OTk5OTk7XG4kaHVpLWdyZWVuOiAjMTlBRjM3O1xuJGh1aS1ncmVlbi0tNDA6ICNBM0RGQUY7XG4kaHVpLWRhcmstYmx1ZTogIzAwNUY5NjtcblxuJGh1aS1idXJndW5keTogIzY3MUMzRTtcblxuJGN0YTogJGh1aS1oaWx0aS1yZWQ7XG4kcHJpbWFyeTogJGh1aS1zdGVlbDtcbiRzZWNvbmRhcnk6ICRodWktaGVhdnktY29uY3JldGUtLTIwO1xuJHN1Y2Nlc3M6ICMxOUFGMzc7XG4kZGFuZ2VyOiAjRkYwMDAwO1xuJHdhcm5pbmc6ICNGRkFGMDA7XG5cbiR0aGVtZS1jb2xvcnM6IChcbiAgXCJjdGFcIjogJGN0YSxcbiAgXCJoZWF2eS1jb25jcmV0ZS0tMTBcIjogJGh1aS1oZWF2eS1jb25jcmV0ZS0tMTAsXG4gIFwiaGVhdnktY29uY3JldGUtLTIwXCI6ICRodWktaGVhdnktY29uY3JldGUtLTIwLFxuKTtcbiJdfQ== */\"","\nimport { Component } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ReleaseNote } from '../models/models';\n\n@Component({\n // tslint:disable-next-line:component-selector\n selector: 'whats-new',\n templateUrl: './whats-new.component.html',\n styleUrls: ['./whats-new.component.scss']\n})\n\nexport class WhatsNewComponent {\n\n public releaseNotes: ReleaseNote[] = [];\n constructor(private translate: TranslateService) {\n this.releaseNotes.push({\n title: 'Release 2.27 - September 2024',\n content: [ 'Bug fixes', 'Welcome to application translation update'], // No translation\n isCollapsed: false\n });\n this.releaseNotes.push({\n title: 'Release 2.26 - September 2024',\n content: ['Introduction of new countries: Sweden, Ireland', 'New decks for Sweden', 'Bug fixes for settings', 'Updated tranlations for Slovak language'], // No translation\n isCollapsed: true\n });\n\n this.releaseNotes.push({\n title: 'Release 2.25 - April 2024',\n content: ['Calculation improvments'], // No translation\n isCollapsed: true\n });\n\n this.releaseNotes.push({\n title: 'Release 2.24 - January 2024',\n content: ['General improvments', 'Calculation improvments', 'ETA calculation fixes', 'New registration process'], // No translation\n isCollapsed: true\n });\n\n this.releaseNotes.push({\n title: 'Release 2.23 - November 2023',\n content: ['Added support for Turkish language in report', 'Update Tracking data', 'CCMS 2.0 updates'], // No translation\n isCollapsed: true\n });\n\n this.releaseNotes.push({\n title: 'Release 2.22 - July 2023',\n content: ['Bug fixes for AS/NZS 2327'], // No translation\n isCollapsed: true\n });\n\n this.releaseNotes.push({\n title: this.translate.instant('whats-new-release-11'),\n content: [\n this.translate.instant('whats-new-engineering-judgement'),\n ],\n isCollapsed: true\n });\n this.releaseNotes.push({\n title: this.translate.instant('whats-new-release-10'),\n content: [\n this.translate.instant('whats-new-4-rows'),\n this.translate.instant('whats-new-new-regions-greece-slovenia-serbia-chroatia'),\n this.translate.instant('whats-new-bug-fixes-eta-upgrade'),\n ],\n isCollapsed: true\n });\n this.releaseNotes.push({\n title: this.translate.instant('whats-new-release-9'),\n content: [\n this.translate.instant('whats-new-eta-update'),\n this.translate.instant('whats-new-israel'),\n this.translate.instant('whats-new-content-profile-decks'),\n this.translate.instant('whats-new-top-stiffener-height'),\n ],\n isCollapsed: true\n });\n this.releaseNotes.push({\n title: this.translate.instant('whats-new-release-8'),\n content: [\n this.translate.instant('whats-new-bug-fix-aisc'),\n this.translate.instant('whats-new-equation-report-uae'),\n this.translate.instant('whats-new-ux-improvement')\n ],\n isCollapsed: true\n });\n this.releaseNotes.push({\n title: this.translate.instant('whats-new-release-7'),\n content: [\n this.translate.instant('whats-new-new-look-n-feel')\n ],\n isCollapsed: true\n });\n this.releaseNotes.push({\n title: this.translate.instant('whats-new-release-6'),\n content: [\n this.translate.instant('whats-new-asnzs-standard'),\n this.translate.instant('whats-new-meta-adaptation'),\n this.translate.instant('whats-new-singapore-concrete-grades'),\n this.translate.instant('whats-new-american-four-connectors-in-a-row')\n ],\n isCollapsed: true\n });\n this.releaseNotes.push({\n title: this.translate.instant('whats-new-release-5'),\n content: [\n this.translate.instant('whats-new-general-improvements'),\n this.translate.instant('whats-new-update-technical-document')\n ],\n isCollapsed: true\n });\n this.releaseNotes.push({\n title: this.translate.instant('whats-new-release-4'),\n content: [\n this.translate.instant('whats-new-release-of-american-standard'),\n this.translate.instant('whats-new-introduce-new-countries'),\n this.translate.instant('whats-new-introduce-american-decks')\n ],\n isCollapsed: true\n });\n this.releaseNotes.push({\n title: this.translate.instant('whats-new-release-3'),\n content: [\n this.translate.instant('whats-new-content-new-annexes'),\n this.translate.instant('whats-new-content-new-decks')\n ],\n isCollapsed: true\n });\n this.releaseNotes.push({\n title: this.translate.instant('whats-new-release-2'),\n content: [\n this.translate.instant('whats-new-content-general-improvements')\n ],\n isCollapsed: true\n });\n this.releaseNotes.push({\n title: this.translate.instant('whats-new-release-1'),\n content: [\n this.translate.instant('whats-new-content-automatic-zoning'),\n this.translate.instant('whats-new-content-slab-openings'),\n this.translate.instant('whats-new-content-user-degree'),\n this.translate.instant('whats-new-content-profile-decks'),\n this.translate.instant('whats-new-content-edge-spacing'),\n this.translate.instant('whats-new-content-whats-new'),\n this.translate.instant('whats-new-content-nps'),\n ],\n isCollapsed: true\n });\n }\n}\n","export const environment = {\n production: true,\n localTesting: false\n};\n","import './polyfills.ts';\n\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\nimport { enableProdMode } from '@angular/core';\nimport { AppModule } from './app/app.module';\n\nenableProdMode();\nplatformBrowserDynamic().bootstrapModule(AppModule);\n","// This file includes polyfills needed by Angular and is loaded before\n// the app. You can add your own extra polyfills to this file.\nimport 'core-js/es6/symbol';\nimport 'core-js/es6/object';\nimport 'core-js/es6/function';\nimport 'core-js/es6/parse-int';\nimport 'core-js/es6/parse-float';\nimport 'core-js/es6/number';\nimport 'core-js/es6/math';\nimport 'core-js/es6/string';\nimport 'core-js/es6/date';\nimport 'core-js/es6/array';\nimport 'core-js/es6/regexp';\nimport 'core-js/es6/map';\nimport 'core-js/es6/set';\n\nimport 'core-js/es6/reflect';\nimport 'core-js/es7/reflect';\n\nimport 'classlist.js';\n\nimport 'zone.js/dist/zone';\n\nimport 'mdn-polyfills/Object.assign';\nimport 'core-js/es7/array';\n\n// Add global to window, assigning the value of window itself.\n(window as any).global = window;\n","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */"],"sourceRoot":"webpack:///"}