{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/modules/error.ts","webpack:///./src/components/pricebook/itemlist/index.vue?636f","webpack:///./src/components/calculation/calculation-switcher/index.vue?5a10","webpack:///./src/helpers/building-item.ts","webpack:///./src/constants/enum.ts","webpack:///./src/components/library/templates/index.vue?b6fc","webpack:///./src/components/contacts/calculation-contacts/edit-modal/index.vue?f935","webpack:///./src/assets/images/image-placeholder.png","webpack:///./src/components/library/new-template/index.vue?e3c6","webpack:///./src/components/calculation/get-product/index.vue?7a0c","webpack:///./src/components/factors/calculation-factors/add-modal/index.vue?fffe","webpack:///./src/components/factors/index.vue?be84","webpack:///./src/helpers/calculation.ts","webpack:///./src/components/library/manager/index.vue?3d79","webpack:///./src/views/Calculation.vue?8cca","webpack:///./src/components/profession/index.vue?fac4","webpack:///./src/components/profession/index.vue","webpack:///./src/components/profession/index.vue?6709","webpack:///./src/components/profession/index.vue?49de","webpack:///./src/components/contacts/contact/index.vue?32e1","webpack:///./src/components/calculation/building-item/remove-precut/index.vue?56e4","webpack:///./src/localization/locales.ts","webpack:///./src/layout/applayout/index.vue?5d4d","webpack:///./src/layout/applayout/index.vue","webpack:///./src/layout/applayout/index.vue?88ac","webpack:///./src/layout/applayout/index.vue?9b52","webpack:///./src/components/calculation/building-item/replace-products/index.vue?6d75","webpack:///./src/components/contacts/contacts-edit-modal/index.vue?a359","webpack:///./src/assets/images/calculate.png","webpack:///./src/modules/loader.ts","webpack:///./src/localization/index.ts","webpack:///./src/components/license-adm/offer/index.vue?c201","webpack:///./src/components/library/templates/index.vue?8f0b","webpack:///./src/components/pricebook/pricelists/index.vue?06ec","webpack:///./src/components/forms/license-form/index.vue?8d26","webpack:///./src/components/pricebook/product-search/index.vue?e067","webpack:///./src/components/price-update/BuildingItemRow.vue?1a78","webpack:///./src/components/pricebook/itemlist/index.vue?2e78","webpack:///./src/components/calculation/new-building-item/index.vue?56ff","webpack:///./src/modules/project.ts","webpack:///./src/components/projects/new-project/index.vue?54d8","webpack:///./src/modules/users.ts","webpack:///./src/components/calculation/addition-item/index.vue?b099","webpack:///./src/components/common/dialog-title/index.vue?4455","webpack:///./src/components/common/dialog-title/index.vue","webpack:///./src/components/common/dialog-title/index.vue?2a32","webpack:///./src/components/common/dialog-title/index.vue?05d6","webpack:///./src/components/calculation/building-elements/index.vue?ac74","webpack:///./src/components/calculation/building-elements/calc-element/index.vue?8677","webpack:///./src/assets/images/byggtjeneste_select.svg","webpack:///./src/helpers/library.ts","webpack:///./src/components/calculation/new-building-item/from-default/index.vue?5141","webpack:///./src/components/calculation/from-library/index.vue?4b8e","webpack:///./src/components/forms/license-form/index.vue?2ef5","webpack:///./src/components/forms/license-form/index.vue","webpack:///./src/components/forms/license-form/index.vue?673f","webpack:///./src/components/forms/license-form/index.vue?ccf9","webpack:///./src/components/home/subscriptions/index.vue?e8cb","webpack:///./src/modules/library.ts","webpack:///./src/components/library/update-template/index.vue?5be1","webpack:///./src/components/environment/BuildingElementEnvironment.vue?420f","webpack:///./src/components/documentation/index.vue?e14a","webpack:///./src/components/license-adm/index.vue?e753","webpack:///./src/components/factors/calculation-factors/index.vue?9b8a","webpack:///./src/components/license-adm/license-modal/index.vue?5cdb","webpack:///./src/components/calculation/delete-element/index.vue?fc1e","webpack:///./src/components/loader/index.vue?3f08","webpack:///./src/components/loader/index.vue","webpack:///./src/components/loader/index.vue?45cc","webpack:///./src/components/loader/index.vue?605e","webpack:///./src/components/user-adm/index.vue?ca2f","webpack:///./src/components/organization/index.vue?ee89","webpack:///./src/helpers/addition-item.ts","webpack:///./src/components/environment/CalculationEnvironmentalImpact.vue?20d8","webpack:///./src/components/calculation/building-elements/element-prop-item/index.vue?21e4","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./src/components/user-adm/user-pwreset-modal/index.vue?f94c","webpack:///./src/components/user-adm/user-pwreset-modal/index.vue","webpack:///./src/components/user-adm/user-pwreset-modal/index.vue?464d","webpack:///./src/components/user-adm/user-pwreset-modal/index.vue?c106","webpack:///./src/components/factors/factor-edit-modal/index.vue?4d6e","webpack:///./src/components/calculation/building-item/delete-item/index.vue?5513","webpack:///./src/components/common/kalk-helper/index.vue?8984","webpack:///./src/components/library/import-template/index.vue?13e5","webpack:///./src/components/library/export-template/index.vue?d2a3","webpack:///./src/layout/applayout-loading/index.vue?ee54","webpack:///./src/views/PriceUpdate.vue?71a1","webpack:///./src/components/common/confirm/index.vue?6cb4","webpack:///./src/components/calculation/building-elements/element-switcher/index.vue?c1af","webpack:///./src/components/projects/details/index.vue?8f6f","webpack:///./src/components/element-footer-status/index.vue?7a56","webpack:///./src/modules/batch.ts","webpack:///./src/App.vue?db16","webpack:///./src/components/forms/element-form/index.vue?16ed","webpack:///./src/modules/api.ts","webpack:///./src/assets/images/kalk-logo.svg","webpack:///./src/components/library/templates/index.vue?35ab","webpack:///./src/components/forms/login-form/index.vue?0320","webpack:///./src/helpers/building-element.ts","webpack:///./src/components/nobb-info/media/index.vue?fd23","webpack:///./src/assets/images/bmf-white.svg","webpack:///./src/components/user-adm/user-modal/index.vue?17c2","webpack:///./src/components/projects/import-project/import-info/index.vue?c7a2","webpack:///./src/components/projects/index.vue?6e11","webpack:///./src/components/calculation/new-building-item/edit-item/index.vue?33d4","webpack:///./src/components/time-estimate/index.vue?83a0","webpack:///./src/components/projects/calculations/index.vue?823e","webpack:///./src/modules/snackbar.ts","webpack:///./src/assets/images/prores-white.svg","webpack:///./src/components/library/drawer/index.vue?acff","webpack:///./src/assets/images/project.png","webpack:///./src/components/version/version-note/index.vue?609b","webpack:///./src/components/project-footer-status/calculation-status/index.vue?912c","webpack:///./src/components/project-footer-status/calculation-status/index.vue","webpack:///./src/components/project-footer-status/calculation-status/index.vue?5c99","webpack:///./src/components/project-footer-status/calculation-status/index.vue?3002","webpack:///./src/components/pricebook/import-pricelist/index.vue?93a9","webpack:///./src/helpers/pricebook.ts","webpack:///./src/components/factors/calculation-factors/edit-modal/index.vue?421a","webpack:///./src/constants/common.ts","webpack:///./src/components/calculation/method/index.vue?de06","webpack:///./src/components/contacts/index.vue?47e1","webpack:///./src/views/Admin.vue?1ab2","webpack:///./src/models/building-element/interfaces.ts","webpack:///./src/layout/applayout-loading/index.vue?2ff1","webpack:///./src/components/loader/index.vue?2294","webpack:///./src/components/contacts/calculation-contacts/index.vue?ec54","webpack:///./src/components/nobb-info/index.vue?e30b","webpack:///./src/components/license-adm/license-assign-modal/index.vue?a5bf","webpack:///./src/components/library/delete-template/index.vue?9bec","webpack:///./src/components/logo/index.vue?189e","webpack:///./src/components/library/delete-item-template/index.vue?c162","webpack:///./src/assets/images/content-banner.svg","webpack:///./src/constants/routes.ts","webpack:///./src/components/environment/PriceUnit.vue?5514","webpack:///./src/components/environment/NobbItemCertificates.vue?cd63","webpack:///./src/components/common/content-bar/index.vue?8255","webpack:///./src/components/projects/import-calculation/index.vue?a1bb","webpack:///./src/assets/images/contract.png","webpack:///./src/components/forms/organization-form/index.vue?b3c4","webpack:///./src/components/calculation/new-building-element/index.vue?6a3c","webpack:///./src/views/BuildingElement.vue?6ae1","webpack:///./src/views/Home.vue?20c0","webpack:///./src/components/home/subscriptions/index.vue?f917","webpack:///./src/components/home/subscriptions/index.vue","webpack:///./src/components/home/subscriptions/index.vue?e203","webpack:///./src/components/home/subscriptions/index.vue?ba27","webpack:///./src/views/Home.vue","webpack:///./src/views/Home.vue?c00d","webpack:///./src/views/Home.vue?1573","webpack:///./src/views/Versions.vue?6da4","webpack:///./src/components/version/version-title/index.vue?94e4","webpack:///./src/components/version/version-title/index.vue","webpack:///./src/components/version/version-title/index.vue?5d52","webpack:///./src/components/version/version-title/index.vue?7996","webpack:///./src/components/version/version-note/index.vue?502d","webpack:///./src/components/version/version-note/index.vue","webpack:///./src/components/version/version-note/index.vue?7396","webpack:///./src/components/version/version-note/index.vue?f405","webpack:///./src/components/common/content-bar/index.vue?9553","webpack:///./src/components/common/content-bar/index.vue","webpack:///./src/components/common/content-bar/index.vue?2668","webpack:///./src/components/common/content-bar/index.vue?2208","webpack:///./src/views/Versions.vue","webpack:///./src/views/Versions.vue?6c81","webpack:///./src/views/Versions.vue?1155","webpack:///./src/views/Login.vue?ca8d","webpack:///./src/components/forms/login-form/index.vue?e742","webpack:///./src/components/reset-password/index.vue?0126","webpack:///./src/components/reset-password/index.vue","webpack:///./src/components/reset-password/index.vue?4de0","webpack:///./src/components/reset-password/index.vue?59c0","webpack:///./src/components/forms/login-form/index.vue","webpack:///./src/components/forms/login-form/index.vue?528e","webpack:///./src/components/forms/login-form/index.vue?ec45","webpack:///./src/views/Login.vue","webpack:///./src/views/Login.vue?e73f","webpack:///./src/views/Login.vue?0e9a","webpack:///./src/views/Logout.vue?1825","webpack:///./src/views/Logout.vue","webpack:///./src/views/Logout.vue?09e2","webpack:///./src/views/Logout.vue?3ebe","webpack:///./src/views/Start.vue?89af","webpack:///./src/components/projects/index.vue?fdc8","webpack:///./src/components/projects/new-project/index.vue?0817","webpack:///./src/components/common/tooltip-helper/index.vue?ecd1","webpack:///./src/components/common/tooltip-helper/index.vue","webpack:///./src/components/common/tooltip-helper/index.vue?ed6e","webpack:///./src/components/common/tooltip-helper/index.vue?ce7a","webpack:///./src/components/projects/new-project/index.vue","webpack:///./src/components/projects/new-project/index.vue?ed98","webpack:///./src/components/projects/new-project/index.vue?5ad4","webpack:///./src/components/projects/new-calculation/index.vue?8e1a","webpack:///./src/components/projects/new-calculation/index.vue","webpack:///./src/components/projects/new-calculation/index.vue?51fa","webpack:///./src/components/projects/new-calculation/index.vue?dbbe","webpack:///./src/components/projects/calculations/index.vue?7c4e","webpack:///./src/components/projects/delete-project/index.vue?846d","webpack:///./src/components/common/confirm/index.vue?1950","webpack:///./src/components/common/confirm/index.vue","webpack:///./src/components/common/confirm/index.vue?1490","webpack:///./src/components/common/confirm/index.vue?fde1","webpack:///./src/components/projects/delete-project/index.vue","webpack:///./src/components/projects/delete-project/index.vue?c853","webpack:///./src/components/projects/delete-project/index.vue?86e6","webpack:///./src/components/projects/lock-project/index.vue?5cc1","webpack:///./src/components/projects/lock-project/index.vue","webpack:///./src/components/projects/lock-project/index.vue?9adb","webpack:///./src/components/projects/lock-project/index.vue?4c49","webpack:///./src/components/projects/export-project/index.vue?137d","webpack:///./src/modules/export.ts","webpack:///./src/components/projects/export-project/index.vue","webpack:///./src/components/projects/export-project/index.vue?ed53","webpack:///./src/components/projects/export-project/index.vue?9f17","webpack:///./src/components/projects/edit-project/index.vue?19e1","webpack:///./src/components/projects/edit-project/index.vue","webpack:///./src/components/projects/edit-project/index.vue?14af","webpack:///./src/components/projects/edit-project/index.vue?c0b3","webpack:///./src/components/projects/copy-project/index.vue?674e","webpack:///./src/modules/factors.ts","webpack:///./src/modules/project-builder.ts","webpack:///./src/helpers/parse.ts","webpack:///./src/modules/import.ts","webpack:///./src/components/projects/copy-project/index.vue","webpack:///./src/components/projects/copy-project/index.vue?dc10","webpack:///./src/components/projects/copy-project/index.vue?fe61","webpack:///./src/constants/table-headers.ts","webpack:///./src/components/projects/calculations/index.vue","webpack:///./src/components/projects/calculations/index.vue?aaed","webpack:///./src/components/projects/calculations/index.vue?088f","webpack:///./src/components/projects/import-project/index.vue?3a28","webpack:///./src/components/projects/import-project/import-info/index.vue?e135","webpack:///./src/components/projects/import-project/import-info/index.vue","webpack:///./src/components/projects/import-project/import-info/index.vue?7fb0","webpack:///./src/components/projects/import-project/import-info/index.vue?965d","webpack:///./src/components/projects/import-project/index.vue","webpack:///./src/components/projects/import-project/index.vue?309a","webpack:///./src/components/projects/import-project/index.vue?8f3d","webpack:///./src/components/projects/import-calculation/index.vue?5e5d","webpack:///./src/components/projects/import-calculation/index.vue","webpack:///./src/components/projects/import-calculation/index.vue?7aa1","webpack:///./src/components/projects/import-calculation/index.vue?a0fe","webpack:///./src/components/common/kalk-helper/index.vue?0754","webpack:///./src/components/common/kalk-helper/index.vue","webpack:///./src/components/common/kalk-helper/index.vue?6d84","webpack:///./src/components/common/kalk-helper/index.vue?8fdc","webpack:///./src/helpers/project.ts","webpack:///./src/components/projects/index.vue","webpack:///./src/components/projects/index.vue?ffec","webpack:///./src/components/projects/index.vue?9fae","webpack:///./src/views/Start.vue","webpack:///./src/views/Start.vue?98a3","webpack:///./src/views/Start.vue?ef84","webpack:///./src/views/Pricebook.vue?f851","webpack:///./src/components/pricebook/pricelists/index.vue?7966","webpack:///./src/components/pricebook/add-item/index.vue?e0f6","webpack:///./src/components/pricebook/add-item/index.vue","webpack:///./src/components/pricebook/add-item/index.vue?be76","webpack:///./src/components/pricebook/add-item/index.vue?afc2","webpack:///./src/components/pricebook/add-category/index.vue?8c28","webpack:///./src/components/pricebook/add-category/index.vue","webpack:///./src/components/pricebook/add-category/index.vue?e579","webpack:///./src/components/pricebook/add-category/index.vue?6d80","webpack:///./src/components/pricebook/delete-pricelist/index.vue?31f3","webpack:///./src/components/pricebook/delete-pricelist/index.vue","webpack:///./src/components/pricebook/delete-pricelist/index.vue?7097","webpack:///./src/components/pricebook/delete-pricelist/index.vue?7f5c","webpack:///./src/components/pricebook/delete-category/index.vue?1f8e","webpack:///./src/components/pricebook/delete-category/index.vue","webpack:///./src/components/pricebook/delete-category/index.vue?e823","webpack:///./src/components/pricebook/delete-category/index.vue?2689","webpack:///./src/components/pricebook/pricelists/index.vue","webpack:///./src/components/pricebook/pricelists/index.vue?bc9f","webpack:///./src/components/pricebook/pricelists/index.vue?e093","webpack:///./src/components/pricebook/itemlist/index.vue?cfce","webpack:///./src/components/nobb-info/index.vue?9d44","webpack:///./src/modules/product-info.ts","webpack:///./src/components/nobb-info/media/index.vue?4d27","webpack:///./src/components/nobb-info/media/index.vue","webpack:///./src/components/nobb-info/media/index.vue?0362","webpack:///./src/components/nobb-info/media/index.vue?ee45","webpack:///./src/components/nobb-info/index.vue","webpack:///./src/components/nobb-info/index.vue?e09c","webpack:///./src/components/nobb-info/index.vue?f3c0","webpack:///./src/components/pricebook/edit-item/index.vue?b8b5","webpack:///./src/components/pricebook/edit-item/index.vue","webpack:///./src/components/pricebook/edit-item/index.vue?52c0","webpack:///./src/components/pricebook/edit-item/index.vue?e89d","webpack:///./src/components/pricebook/delete-item/index.vue?4894","webpack:///./src/components/pricebook/delete-item/index.vue","webpack:///./src/components/pricebook/delete-item/index.vue?ae34","webpack:///./src/components/pricebook/delete-item/index.vue?764d","webpack:///./src/components/pricebook/copy-item/index.vue?72f0","webpack:///./src/components/pricebook/copy-item/index.vue","webpack:///./src/components/pricebook/copy-item/index.vue?1e2d","webpack:///./src/components/pricebook/copy-item/index.vue?1e08","webpack:///./src/components/pricebook/itemlist/index.vue","webpack:///./src/components/pricebook/itemlist/index.vue?0dc3","webpack:///./src/components/pricebook/itemlist/index.vue?e9ae","webpack:///./src/components/pricebook/import-pricelist/index.vue?ae27","webpack:///./src/components/pricebook/import-pricelist/index.vue","webpack:///./src/components/pricebook/import-pricelist/index.vue?bcf3","webpack:///./src/components/pricebook/import-pricelist/index.vue?a6c7","webpack:///./src/components/pricebook/uploadPriceList/index.vue?39fc","webpack:///./src/components/pricebook/uploadPriceList/index.vue","webpack:///./src/components/pricebook/uploadPriceList/index.vue?183e","webpack:///./src/components/pricebook/uploadPriceList/index.vue?7d8c","webpack:///./src/components/pricebook/download-pricelist/index.vue?f8e9","webpack:///./src/components/pricebook/download-pricelist/downloadable-pricelist/index.vue?29fe","webpack:///./src/components/pricebook/download-pricelist/downloadable-pricelist/index.vue","webpack:///./src/components/pricebook/download-pricelist/downloadable-pricelist/index.vue?c572","webpack:///./src/components/pricebook/download-pricelist/downloadable-pricelist/index.vue?3277","webpack:///./src/components/pricebook/download-pricelist/index.vue","webpack:///./src/components/pricebook/download-pricelist/index.vue?ec5e","webpack:///./src/components/pricebook/download-pricelist/index.vue?8945","webpack:///./src/views/Pricebook.vue","webpack:///./src/views/Pricebook.vue?05b1","webpack:///./src/views/Pricebook.vue?2524","webpack:///./src/views/Organization.vue?6cfd","webpack:///./src/components/factors/index.vue?73b0","webpack:///./src/components/factors/factor/index.vue?98c0","webpack:///./src/components/factors/factor-edit-modal/index.vue?bfb3","webpack:///./src/helpers/factor.ts","webpack:///./src/components/factors/factor-add-modal/index.vue?6788","webpack:///./src/components/factors/factor-add-modal/index.vue","webpack:///./src/components/factors/factor-add-modal/index.vue?8e96","webpack:///./src/components/factors/factor-add-modal/index.vue?9e6d","webpack:///./src/components/factors/factor-edit-modal/index.vue","webpack:///./src/components/factors/factor-edit-modal/index.vue?a3db","webpack:///./src/components/factors/factor-edit-modal/index.vue?8aa6","webpack:///./src/components/factors/factor/index.vue","webpack:///./src/components/factors/factor/index.vue?1878","webpack:///./src/components/factors/factor/index.vue?096a","webpack:///./src/components/factors/factor-summary/index.vue?2471","webpack:///./src/components/factors/factor-summary/index.vue","webpack:///./src/components/factors/factor-summary/index.vue?567f","webpack:///./src/components/factors/factor-summary/index.vue?480b","webpack:///./src/components/factors/index.vue","webpack:///./src/components/factors/index.vue?0885","webpack:///./src/components/factors/index.vue?3c11","webpack:///./src/components/organization/index.vue?4468","webpack:///./src/modules/company.ts","webpack:///./src/components/forms/organization-form/index.vue?c1a4","webpack:///./src/components/forms/organization-form/index.vue","webpack:///./src/components/forms/organization-form/index.vue?972e","webpack:///./src/components/forms/organization-form/index.vue?c468","webpack:///./src/components/organization/index.vue","webpack:///./src/components/organization/index.vue?1da5","webpack:///./src/components/organization/index.vue?1a28","webpack:///./src/components/contacts/index.vue?9d8b","webpack:///./src/modules/contacts.ts","webpack:///./src/components/contacts/contact/index.vue?1287","webpack:///./src/components/contacts/contact/index.vue","webpack:///./src/components/contacts/contact/index.vue?80ee","webpack:///./src/components/contacts/contact/index.vue?2ec5","webpack:///./src/components/contacts/contacts-edit-modal/index.vue?a980","webpack:///./src/components/contacts/contacts-edit-modal/index.vue","webpack:///./src/components/contacts/contacts-edit-modal/index.vue?7836","webpack:///./src/components/contacts/contacts-edit-modal/index.vue?91b3","webpack:///./src/components/contacts/index.vue","webpack:///./src/components/contacts/index.vue?79cd","webpack:///./src/components/contacts/index.vue?a2ba","webpack:///./src/components/logo/index.vue?ef6a","webpack:///./src/components/logo/index.vue","webpack:///./src/components/logo/index.vue?f8a9","webpack:///./src/components/logo/index.vue?7d35","webpack:///./src/views/Organization.vue","webpack:///./src/views/Organization.vue?fd3a","webpack:///./src/views/Organization.vue?6a6e","webpack:///./src/views/Admin.vue?c8ff","webpack:///./src/components/license-adm/index.vue?5dca","webpack:///./src/components/license-adm/license-modal/index.vue?d532","webpack:///./src/components/license-adm/offer/index.vue?7b84","webpack:///./src/components/license-adm/offer/index.vue","webpack:///./src/components/license-adm/offer/index.vue?0a8c","webpack:///./src/components/license-adm/offer/index.vue?17d9","webpack:///./src/components/license-adm/license-modal/index.vue","webpack:///./src/components/license-adm/license-modal/index.vue?4c8d","webpack:///./src/components/license-adm/license-modal/index.vue?db4c","webpack:///./src/components/license-adm/license-delete-modal/index.vue?3555","webpack:///./src/components/license-adm/license-delete-modal/index.vue","webpack:///./src/components/license-adm/license-delete-modal/index.vue?5fb4","webpack:///./src/components/license-adm/license-delete-modal/index.vue?a14f","webpack:///./src/components/license-adm/license-assign-modal/index.vue?1c54","webpack:///./src/components/license-adm/license-assign-modal/index.vue","webpack:///./src/components/license-adm/license-assign-modal/index.vue?74d5","webpack:///./src/components/license-adm/license-assign-modal/index.vue?24e5","webpack:///./src/components/license-adm/status/index.vue?073d","webpack:///./src/components/license-adm/status/index.vue","webpack:///./src/components/license-adm/status/index.vue?1ae4","webpack:///./src/components/license-adm/status/index.vue?d48e","webpack:///./src/components/license-adm/index.vue","webpack:///./src/components/license-adm/index.vue?ea43","webpack:///./src/components/license-adm/index.vue?32ee","webpack:///./src/components/user-adm/index.vue?a501","webpack:///./src/components/user-adm/user-modal/index.vue?faa0","webpack:///./src/components/user-adm/user-modal/index.vue","webpack:///./src/components/user-adm/user-modal/index.vue?935c","webpack:///./src/components/user-adm/user-modal/index.vue?c564","webpack:///./src/components/user-adm/user-delete-modal/index.vue?433e","webpack:///./src/components/user-adm/user-delete-modal/index.vue","webpack:///./src/components/user-adm/user-delete-modal/index.vue?691d","webpack:///./src/components/user-adm/user-delete-modal/index.vue?ef64","webpack:///./src/components/user-adm/index.vue","webpack:///./src/components/user-adm/index.vue?853f","webpack:///./src/components/user-adm/index.vue?ced2","webpack:///./src/views/Admin.vue","webpack:///./src/views/Admin.vue?22d5","webpack:///./src/views/Admin.vue?3d26","webpack:///./src/views/Library.vue?d26a","webpack:///./src/components/library/manager/index.vue?73ee","webpack:///./src/components/library/export-template/index.vue?d5e5","webpack:///./src/components/library/export-template/index.vue","webpack:///./src/components/library/export-template/index.vue?8799","webpack:///./src/components/library/export-template/index.vue?1c1a","webpack:///./src/components/library/delete-template/index.vue?f769","webpack:///./src/components/library/delete-template/index.vue","webpack:///./src/components/library/delete-template/index.vue?3cdb","webpack:///./src/components/library/delete-template/index.vue?60e4","webpack:///./src/components/library/import-template/index.vue?4b16","webpack:///./src/components/library/import-template/index.vue","webpack:///./src/components/library/import-template/index.vue?ed53","webpack:///./src/components/library/import-template/index.vue?946b","webpack:///./src/components/library/download-template/index.vue?e30d","webpack:///./src/components/library/download-template/index.vue","webpack:///./src/components/library/download-template/index.vue?ef57","webpack:///./src/components/library/download-template/index.vue?e6a6","webpack:///./src/components/library/new-template/index.vue?385d","webpack:///./src/components/library/new-template/index.vue","webpack:///./src/components/library/new-template/index.vue?2574","webpack:///./src/components/library/new-template/index.vue?9f35","webpack:///./src/components/library/manager/index.vue","webpack:///./src/components/library/manager/index.vue?1d50","webpack:///./src/components/library/manager/index.vue?453a","webpack:///./src/views/Library.vue","webpack:///./src/views/Library.vue?67e1","webpack:///./src/views/Library.vue?5907","webpack:///./src/views/Calculation.vue?8e3a","webpack:///./src/components/calculation/index.vue?a73f","webpack:///./src/components/calculation/building-elements/index.vue?ba2c","webpack:///./src/components/calculation/calculation-switcher/index.vue?0305","webpack:///./src/components/calculation/calculation-switcher/index.vue","webpack:///./src/components/calculation/calculation-switcher/index.vue?2349","webpack:///./src/components/calculation/calculation-switcher/index.vue?42c6","webpack:///./src/components/calculation/building-elements/pricelist/index.vue?19a8","webpack:///./src/components/calculation/building-elements/pricelist/index.vue","webpack:///./src/components/calculation/building-elements/pricelist/index.vue?3f09","webpack:///./src/components/calculation/building-elements/pricelist/index.vue?3e40","webpack:///./src/components/calculation/building-elements/calc-element/index.vue?9b7a","webpack:///./src/components/calculation/building-elements/element-prop-item/index.vue?f129","webpack:///./src/components/calculation/building-elements/element-prop-item/index.vue","webpack:///./src/components/calculation/building-elements/element-prop-item/index.vue?2ea0","webpack:///./src/components/calculation/building-elements/element-prop-item/index.vue?1530","webpack:///./src/components/calculation/addition-item/index.vue?3faa","webpack:///./src/components/calculation/addition-item/index.vue","webpack:///./src/components/calculation/addition-item/index.vue?141b","webpack:///./src/components/calculation/addition-item/index.vue?0f2c","webpack:///./src/components/calculation/building-item/index.vue?a418","webpack:///./src/components/calculation/building-item/edit-time-estimate/index.vue?272a","webpack:///./src/components/time-estimate/index.vue?92eb","webpack:///./src/modules/time-estimate.ts","webpack:///./src/components/time-estimate/index.vue","webpack:///./src/components/time-estimate/index.vue?ed73","webpack:///./src/components/time-estimate/index.vue?e1c3","webpack:///./src/components/calculation/building-item/edit-time-estimate/index.vue","webpack:///./src/components/calculation/building-item/edit-time-estimate/index.vue?2f93","webpack:///./src/components/calculation/building-item/edit-time-estimate/index.vue?54a4","webpack:///./src/components/calculation/building-item/remove-time-estimate/index.vue?0403","webpack:///./src/components/calculation/building-item/remove-time-estimate/index.vue","webpack:///./src/components/calculation/building-item/remove-time-estimate/index.vue?723c","webpack:///./src/components/calculation/building-item/remove-time-estimate/index.vue?d757","webpack:///./src/components/calculation/building-item/delete-item/index.vue?7827","webpack:///./src/components/calculation/building-item/delete-item/index.vue","webpack:///./src/components/calculation/building-item/delete-item/index.vue?af2b","webpack:///./src/components/calculation/building-item/delete-item/index.vue?d254","webpack:///./src/components/calculation/get-product/index.vue?5b9e","webpack:///./src/components/calculation/building-item/replace-products/index.vue?677b","webpack:///./src/components/calculation/building-item/replace-products/index.vue","webpack:///./src/components/calculation/building-item/replace-products/index.vue?baf7","webpack:///./src/components/calculation/building-item/replace-products/index.vue?1010","webpack:///./src/components/calculation/get-product/index.vue","webpack:///./src/components/calculation/get-product/index.vue?9bca","webpack:///./src/components/calculation/get-product/index.vue?de4f","webpack:///./src/components/calculation/building-item/building-item-status/index.vue?d5b7","webpack:///./src/components/calculation/building-item/building-item-status/index.vue","webpack:///./src/components/calculation/building-item/building-item-status/index.vue?746e","webpack:///./src/components/calculation/building-item/building-item-status/index.vue?3729","webpack:///./src/components/calculation/building-item/add-item-to-library/index.vue?0e78","webpack:///./src/components/calculation/building-item/add-item-to-library/index.vue","webpack:///./src/components/calculation/building-item/add-item-to-library/index.vue?31d6","webpack:///./src/components/calculation/building-item/add-item-to-library/index.vue?566c","webpack:///./src/modules/nudge.ts","webpack:///./src/components/pricebook/product-search/index.vue?0ad2","webpack:///./src/components/pricebook/product-search/index.vue","webpack:///./src/components/pricebook/product-search/index.vue?607c","webpack:///./src/components/pricebook/product-search/index.vue?86ff","webpack:///./src/components/common/table-row-handler/index.vue?6737","webpack:///./src/components/common/table-row-handler/index.vue","webpack:///./src/components/common/table-row-handler/index.vue?4811","webpack:///./src/components/common/table-row-handler/index.vue?eae3","webpack:///./src/components/calculation/building-elements/calc-element/element-warnings/index.vue?2b58","webpack:///./src/components/calculation/building-elements/calc-element/element-warnings/index.vue","webpack:///./src/components/calculation/building-elements/calc-element/element-warnings/index.vue?f242","webpack:///./src/components/calculation/building-elements/calc-element/element-warnings/index.vue?e788","webpack:///./src/components/calculation/building-item/set-precut/index.vue?73c4","webpack:///./src/components/calculation/building-item/set-precut/index.vue","webpack:///./src/components/calculation/building-item/set-precut/index.vue?d6f7","webpack:///./src/components/calculation/building-item/set-precut/index.vue?5cf2","webpack:///./src/components/calculation/building-item/remove-precut/index.vue?6c78","webpack:///./src/components/calculation/building-item/remove-precut/index.vue","webpack:///./src/components/calculation/building-item/remove-precut/index.vue?4fdc","webpack:///./src/components/calculation/building-item/remove-precut/index.vue?4fd5","webpack:///./src/components/calculation/building-item/index.vue","webpack:///./src/components/calculation/building-item/index.vue?5618","webpack:///./src/components/calculation/building-item/index.vue?50ee","webpack:///./src/components/calculation/new-building-item/index.vue?4efd","webpack:///./src/components/calculation/method/index.vue?71c6","webpack:///./src/components/calculation/method/index.vue","webpack:///./src/components/calculation/method/index.vue?161b","webpack:///./src/components/calculation/method/index.vue?1fe9","webpack:///./src/components/calculation/new-building-item/edit-item/index.vue?bc0c","webpack:///./src/components/calculation/new-building-item/from-default/index.vue?7b81","webpack:///./src/components/calculation/get-time/index.vue?6363","webpack:///./src/components/calculation/get-time/index.vue","webpack:///./src/components/calculation/get-time/index.vue?98d1","webpack:///./src/components/calculation/get-time/index.vue?f3b2","webpack:///./src/components/calculation/new-building-item/from-default/index.vue","webpack:///./src/components/calculation/new-building-item/from-default/index.vue?68cf","webpack:///./src/components/calculation/new-building-item/from-default/index.vue?965f","webpack:///./src/components/calculation/new-building-item/edit-item/index.vue","webpack:///./src/components/calculation/new-building-item/edit-item/index.vue?a3d5","webpack:///./src/components/calculation/new-building-item/edit-item/index.vue?5e6f","webpack:///./src/components/calculation/from-calculations/index.vue?7077","webpack:///./src/components/calculation/from-calculations/index.vue","webpack:///./src/components/calculation/from-calculations/index.vue?ad71","webpack:///./src/components/calculation/from-calculations/index.vue?23a6","webpack:///./src/components/calculation/from-library/index.vue?52c2","webpack:///./src/modules/standards.ts","webpack:///./src/components/calculation/from-library/index.vue","webpack:///./src/components/calculation/from-library/index.vue?7260","webpack:///./src/components/calculation/from-library/index.vue?3d24","webpack:///./src/components/calculation/new-building-item/index.vue","webpack:///./src/components/calculation/new-building-item/index.vue?bb8f","webpack:///./src/components/calculation/new-building-item/index.vue?3778","webpack:///./src/components/calculation/edit-element/index.vue?13ba","webpack:///./src/components/forms/element-form/index.vue?80d3","webpack:///./src/components/forms/element-form/index.vue","webpack:///./src/components/forms/element-form/index.vue?397e","webpack:///./src/components/forms/element-form/index.vue?f1ea","webpack:///./src/components/calculation/edit-element/index.vue","webpack:///./src/components/calculation/edit-element/index.vue?e9df","webpack:///./src/components/calculation/edit-element/index.vue?ed02","webpack:///./src/components/calculation/delete-element/index.vue?50d9","webpack:///./src/components/calculation/delete-element/index.vue","webpack:///./src/components/calculation/delete-element/index.vue?9a48","webpack:///./src/components/calculation/delete-element/index.vue?25c2","webpack:///./src/components/calculation/building-elements/add-to-library/index.vue?d704","webpack:///./src/components/calculation/building-elements/add-to-library/index.vue","webpack:///./src/components/calculation/building-elements/add-to-library/index.vue?c321","webpack:///./src/components/calculation/building-elements/add-to-library/index.vue?fa98","webpack:///./src/components/documentation/index.vue?e6fa","webpack:///./src/components/documentation/document-status/index.vue?6963","webpack:///./src/components/documentation/document-status/index.vue","webpack:///./src/components/documentation/document-status/index.vue?8ddb","webpack:///./src/components/documentation/document-status/index.vue?26d2","webpack:///./src/components/documentation/index.vue","webpack:///./src/components/documentation/index.vue?0646","webpack:///./src/components/documentation/index.vue?53ee","webpack:///./src/components/calculation/building-elements/calc-element/price-update/index.vue?5515","webpack:///./src/components/calculation/building-elements/calc-element/price-update/index.vue","webpack:///./src/components/calculation/building-elements/calc-element/price-update/index.vue?0cb9","webpack:///./src/components/calculation/building-elements/calc-element/price-update/index.vue?541d","webpack:///./src/components/calculation/building-elements/calc-element/index.vue","webpack:///./src/components/calculation/building-elements/calc-element/index.vue?043f","webpack:///./src/components/calculation/building-elements/calc-element/index.vue?4cbb","webpack:///./src/components/calculation/building-elements/index.vue","webpack:///./src/components/calculation/building-elements/index.vue?27b4","webpack:///./src/components/calculation/building-elements/index.vue?d261","webpack:///./src/components/library/drawer/index.vue?871e","webpack:///./src/components/library/templates/index.vue?7f4d","webpack:///./src/components/library/delete-element-template/index.vue?4f13","webpack:///./src/components/library/delete-element-template/index.vue","webpack:///./src/components/library/delete-element-template/index.vue?40eb","webpack:///./src/components/library/delete-element-template/index.vue?2ac5","webpack:///./src/components/library/delete-item-template/index.vue?9304","webpack:///./src/components/library/delete-item-template/index.vue","webpack:///./src/components/library/delete-item-template/index.vue?560c","webpack:///./src/components/library/delete-item-template/index.vue?388b","webpack:///./src/components/library/add-item-to-calculation/index.vue?0a99","webpack:///./src/components/library/add-item-to-calculation/index.vue","webpack:///./src/components/library/add-item-to-calculation/index.vue?afc0","webpack:///./src/components/library/add-item-to-calculation/index.vue?992b","webpack:///./src/components/library/update-template/index.vue?7991","webpack:///./src/components/library/update-template/index.vue","webpack:///./src/components/library/update-template/index.vue?5060","webpack:///./src/components/library/update-template/index.vue?4e5b","webpack:///./src/components/library/templates/index.vue","webpack:///./src/components/library/templates/index.vue?2afd","webpack:///./src/components/library/templates/index.vue?14ea","webpack:///./src/components/library/drawer/index.vue","webpack:///./src/components/library/drawer/index.vue?5ccd","webpack:///./src/components/library/drawer/index.vue?6337","webpack:///./src/components/calculation/index.vue","webpack:///./src/components/calculation/new-building-element/index.vue","webpack:///./src/components/calculation/index.vue?c381","webpack:///./src/components/calculation/index.vue?bb52","webpack:///./src/components/calculation/new-building-element/index.vue?cf22","webpack:///./src/components/calculation/new-building-element/index.vue?7e6c","webpack:///./src/components/calculation/new-building-element/index.vue?42db","webpack:///./src/components/reports/index.vue?2684","webpack:///./src/components/reports/report/index.vue?2853","webpack:///./src/components/reports/report/index.vue","webpack:///./src/components/reports/report/index.vue?9429","webpack:///./src/components/reports/report/index.vue?f4c5","webpack:///./src/models/report/enums.ts","webpack:///./src/models/nobb/interfaces.ts","webpack:///./src/helpers/reports.ts","webpack:///./src/models/report/report-header.ts","webpack:///./src/models/report/report-project-info.ts","webpack:///./src/models/report/report-material-order.ts","webpack:///./src/models/report/report-milestone.ts","webpack:///./src/models/report/report-material-list-precut.ts","webpack:///./src/models/report/report-attachment-price-offer.ts","webpack:///./src/models/report/report-building-elements.ts","webpack:///./src/models/report/report-main-sums.ts","webpack:///./src/models/report/report-price-request.ts","webpack:///./src/models/report/view-report-calculation.ts","webpack:///./src/models/report/view-report-delivery.ts","webpack:///./src/models/report/view-report-time.ts","webpack:///./src/models/report/view-report-materials.ts","webpack:///./src/models/report/view-report-economy.ts","webpack:///./src/models/report/project-report-milestone.ts","webpack:///./src/models/report/project-report-attachment-price.ts","webpack:///./src/models/report/project-report-building-elements.ts","webpack:///./src/models/report/project-report-main-sums.ts","webpack:///./src/modules/environment.ts","webpack:///./src/models/report/report-environment.ts","webpack:///./src/modules/report.ts","webpack:///./src/components/reports/index.vue","webpack:///./src/components/reports/index.vue?a6d1","webpack:///./src/components/reports/index.vue?baaa","webpack:///./src/components/calculation/convert-to-template/index.vue?2374","webpack:///./src/components/calculation/convert-to-template/index.vue","webpack:///./src/components/calculation/convert-to-template/index.vue?6cb2","webpack:///./src/components/calculation/convert-to-template/index.vue?e12e","webpack:///./src/views/Calculation.vue","webpack:///./src/views/Calculation.vue?3b30","webpack:///./src/views/Calculation.vue?f768","webpack:///./src/views/CalculationOverview.vue?6122","webpack:///./src/components/factors/calculation-factors/index.vue?d9dd","webpack:///./src/components/factors/calculation-factors/calculation-factor/index.vue?1c67","webpack:///./src/components/factors/calculation-factors/edit-modal/index.vue?9268","webpack:///./src/components/factors/calculation-factors/add-modal/index.vue?f40f","webpack:///./src/components/factors/calculation-factors/add-modal/index.vue","webpack:///./src/components/factors/calculation-factors/add-modal/index.vue?fbaa","webpack:///./src/components/factors/calculation-factors/add-modal/index.vue?913a","webpack:///./src/components/factors/calculation-factors/edit-modal/index.vue","webpack:///./src/components/factors/calculation-factors/edit-modal/index.vue?40c7","webpack:///./src/components/factors/calculation-factors/edit-modal/index.vue?ccd0","webpack:///./src/components/factors/calculation-factors/calculation-factor/index.vue","webpack:///./src/components/factors/calculation-factors/calculation-factor/index.vue?0849","webpack:///./src/components/factors/calculation-factors/calculation-factor/index.vue?ef0c","webpack:///./src/components/factors/calculation-factors/index.vue","webpack:///./src/components/factors/calculation-factors/index.vue?ca8b","webpack:///./src/components/factors/calculation-factors/index.vue?d591","webpack:///./src/components/contacts/calculation-contacts/index.vue?99d6","webpack:///./src/components/contacts/calculation-contacts/edit-modal/index.vue?b6a4","webpack:///./src/components/contacts/calculation-contacts/edit-modal/index.vue","webpack:///./src/components/contacts/calculation-contacts/edit-modal/index.vue?4bf6","webpack:///./src/components/contacts/calculation-contacts/edit-modal/index.vue?c2be","webpack:///./src/components/contacts/calculation-contacts/index.vue","webpack:///./src/components/contacts/calculation-contacts/index.vue?a68b","webpack:///./src/components/contacts/calculation-contacts/index.vue?a861","webpack:///./src/views/CalculationOverview.vue","webpack:///./src/views/CalculationOverview.vue?e62b","webpack:///./src/views/CalculationOverview.vue?609a","webpack:///./src/views/ProjectOverview.vue?72dd","webpack:///./src/components/projects/details/index.vue?00ed","webpack:///./src/components/projects/details-edit-modal/index.vue?5af1","webpack:///./src/components/projects/details-edit-modal/index.vue","webpack:///./src/components/projects/details-edit-modal/index.vue?fe5f","webpack:///./src/components/projects/details-edit-modal/index.vue?d95c","webpack:///./src/components/projects/details/index.vue","webpack:///./src/components/projects/details/index.vue?9388","webpack:///./src/components/projects/details/index.vue?27d2","webpack:///./src/views/ProjectOverview.vue","webpack:///./src/views/ProjectOverview.vue?2fef","webpack:///./src/views/ProjectOverview.vue?1884","webpack:///./src/views/BuildingElement.vue?ed19","webpack:///./src/components/element-footer-status/index.vue?d00a","webpack:///./src/components/element-footer-status/index.vue","webpack:///./src/components/element-footer-status/index.vue?aad1","webpack:///./src/components/element-footer-status/index.vue?28a7","webpack:///./src/components/calculation/building-elements/element-switcher/index.vue?fbf3","webpack:///./src/components/calculation/building-elements/element-switcher/index.vue","webpack:///./src/components/calculation/building-elements/element-switcher/index.vue?cdd7","webpack:///./src/components/calculation/building-elements/element-switcher/index.vue?fdb3","webpack:///./src/views/BuildingElement.vue","webpack:///./src/views/BuildingElement.vue?5577","webpack:///./src/views/BuildingElement.vue?cdd1","webpack:///./src/views/Environment.vue?7726","webpack:///./src/components/environment/BuildingElementEnvironment.vue?12f1","webpack:///./src/components/environment/BuildingItemEnvironmentRow.vue?a483","webpack:///./src/components/environment/NobbItemCertificates.vue?245f","webpack:///./src/components/environment/NobbItemCertificates.vue","webpack:///./src/components/environment/NobbItemCertificates.vue?3a20","webpack:///./src/components/environment/NobbItemCertificates.vue?f1a7","webpack:///./src/components/environment/ValidationDate.vue?58ed","webpack:///./src/components/environment/ValidationDate.vue","webpack:///./src/components/environment/ValidationDate.vue?4dd2","webpack:///./src/components/environment/ValidationDate.vue?7e95","webpack:///./src/components/environment/EnvironmentImpact.vue?b8d5","webpack:///./src/components/environment/EnvironmentImpact.vue","webpack:///./src/components/environment/EnvironmentImpact.vue?b84a","webpack:///./src/components/environment/EnvironmentImpact.vue?fdac","webpack:///./src/components/environment/CalculatedEnvironmentImpact.vue?52ca","webpack:///./src/components/environment/CalculatedEnvironmentImpact.vue","webpack:///./src/components/environment/CalculatedEnvironmentImpact.vue?8f37","webpack:///./src/components/environment/CalculatedEnvironmentImpact.vue?67c9","webpack:///./src/components/environment/PriceUnit.vue?d69e","webpack:///./src/components/environment/PriceUnit.vue","webpack:///./src/components/environment/PriceUnit.vue?53a8","webpack:///./src/components/environment/PriceUnit.vue?a718","webpack:///./src/components/environment/NobbItemEPDDialog.vue?a15c","webpack:///./src/components/environment/NobbItemEPDDialog.vue","webpack:///./src/components/environment/NobbItemEPDDialog.vue?2ffb","webpack:///./src/components/environment/NobbItemEPDDialog.vue?5323","webpack:///./src/components/environment/BuildingItemEnvironmentRow.vue","webpack:///./src/components/environment/BuildingItemEnvironmentRow.vue?8cd6","webpack:///./src/components/environment/BuildingItemEnvironmentRow.vue?a1c8","webpack:///./src/components/environment/BuildingElementEnvironment.vue","webpack:///./src/components/environment/BuildingElementEnvironment.vue?700d","webpack:///./src/components/environment/BuildingElementEnvironment.vue?3089","webpack:///./src/components/environment/CalculationEnvironmentalImpact.vue?de63","webpack:///./src/components/environment/BuildingElementSumRow.vue?48df","webpack:///./src/components/environment/BuildingElementSumRow.vue","webpack:///./src/components/environment/BuildingElementSumRow.vue?71d9","webpack:///./src/components/environment/BuildingElementSumRow.vue?5629","webpack:///./src/components/environment/CalculationEnvironmentalImpact.vue","webpack:///./src/components/environment/CalculationEnvironmentalImpact.vue?bca3","webpack:///./src/components/environment/CalculationEnvironmentalImpact.vue?e06d","webpack:///./src/components/environment/GenerateReport.vue?d124","webpack:///./src/components/environment/GenerateReport.vue","webpack:///./src/components/environment/GenerateReport.vue?363a","webpack:///./src/components/environment/GenerateReport.vue?9913","webpack:///./src/views/Environment.vue","webpack:///./src/views/Environment.vue?d6eb","webpack:///./src/views/Environment.vue?6357","webpack:///./src/views/PriceUpdate.vue?5995","webpack:///./src/components/price-update/BuildingItemRow.vue?8171","webpack:///./src/components/price-update/BuildingItemRow.vue","webpack:///./src/components/price-update/BuildingItemRow.vue?4df6","webpack:///./src/components/price-update/BuildingItemRow.vue?68b3","webpack:///./src/views/PriceUpdate.vue","webpack:///./src/views/PriceUpdate.vue?2017","webpack:///./src/views/PriceUpdate.vue?7f58","webpack:///./src/router/index.ts","webpack:///./src/components/projects/new-calculation/index.vue?73d8","webpack:///./src/components/factors/factor/index.vue?8f2d","webpack:///./src/components/projects/delete-project/index.vue?eb88","webpack:///./src/assets/images/byggtjeneste_unselect.svg","webpack:///./src/components/projects/edit-project/index.vue?495f","webpack:///./src/modules/calculation.ts","webpack:///./src/components/factors/factor-summary/index.vue?13ea","webpack:///./src/helpers/common.ts","webpack:///./src/components/projects/details-edit-modal/index.vue?52ea","webpack:///./src/modules/global.ts","webpack:///./src/components/calculation/building-elements/index.vue?8a06","webpack:///./src/views/Start.vue?997c","webpack:///./src/util/installCompositionApi.ts","webpack:///./src/App.vue?5184","webpack:///./src/App.vue","webpack:///./src/App.vue?198c","webpack:///./src/App.vue?bb6c","webpack:///./src/registerServiceWorker.js","webpack:///./src/plugins/vuetify.ts","webpack:///./src/main.ts","webpack:///./src/components/environment/NobbItemCertificates.vue?7f85","webpack:///./src/modules/building-element.ts","webpack:///./src/components/logo/index.vue?5b75","webpack:///./src/views/Organization.vue?3ca2","webpack:///./src/layout/applayout-loading/index.vue?b739","webpack:///./src/layout/applayout-loading/index.vue","webpack:///./src/layout/applayout-loading/index.vue?0440","webpack:///./src/layout/applayout-loading/index.vue?5801","webpack:///./src/modules/auth.ts","webpack:///./src/components/calculation/convert-to-template/index.vue?1ac9","webpack:///./src/assets/images/byggtjeneste.svg","webpack:///./src/helpers/azure.ts","webpack:///./src/modules/azure.ts","webpack:///./src/modules/pricebook.ts","webpack:///./src/components/environment/BuildingItemEnvironmentRow.vue?5026","webpack:///./src/components/calculation/building-elements/calc-element/price-update/index.vue?f2ef","webpack:///./src/components/projects/export-project/index.vue?b052","webpack:///./src/components/projects/import-project/index.vue?b760","webpack:///./src/components/calculation/building-item/index.vue?9b3b","webpack:///./src/components/calculation/building-elements/calc-element/element-warnings/index.vue?e062","webpack:///./src/components/reset-password/index.vue?c259","webpack:///./src/components/calculation/building-item/remove-time-estimate/index.vue?c9ae","webpack:///./src/constants/styles.ts","webpack:///./src/components/factors/calculation-factors/calculation-factor/index.vue?c5b3","webpack:///./src/components/environment/GenerateReport.vue?9fc1","webpack:///./src/components/factors/factor-add-modal/index.vue?c209","webpack:///./src/modules/building-item.ts","webpack:///./src/components/reports/index.vue?9a38","webpack:///./src/components/calculation/from-calculations/index.vue?e721","webpack:///./src/components/calculation/get-time/index.vue?112a","webpack:///./src/components/library/delete-element-template/index.vue?5adf","webpack:///./src/components/profession/index.vue?cd07","webpack:///./src/modules/license.ts","webpack:///./src/components/common/dialog-title/index.vue?da3e","webpack:///./src/components/project-footer-status/calculation-status/index.vue?adac","webpack:///./src/components/pricebook/import-pricelist/index.vue?cf47","webpack:///./src/layout lazy ^\\.\\/.*\\/index\\.vue$ namespace object","webpack:///./src/views/Home.vue?f241","webpack:///./src/assets/images/start_project.png"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","state","reactive","active","reloadOption","useErrorModal","errorModal","close","reload","useCalculation","initActiveCalculation","activeCalculation","useLoader","startLoader","stopLoader","Id","translate","getMessageFromErrorCode","computed","status","getTitleFromErrorCode","toRefs","mapBuildingItemCalcProperties","item","getCalculationFactorValue","_itemCalc","BuildingElementId","Name","Unit","DocumentationDownloaded","DocumentationStatus","Default","UnitForOrder","SortOrder","Amount","AmountPrUnit","Price","Factor1","PriceListName","PriceListItemName","Comments","MileStone","AmountAdjustment","AccountNumber","NOBBNumber","NS3420","BaseTime","Precut","SurfaceAddition","Transport","AmountControl","OpeningAddition","IsFDVExportSelected","DeliveryOrder","TransportationAddition","TimeEstimateName","ItemWarnings","AmountCalculated","BuildingElement","set","val","IsAmountSet","isSet","PreCutText","Factor2","factor2","f2","Project","TimePrUnit","Factor3","factor3","prodSalary","SumProductionSalary","Factor4","factor4","Factor6","factor6","selfCost","SumSelfCostSalaryAndExpenses","Factor7","factor7","SumSelfCostMaterialsSubContractors","Factor5Calculated","factor","Factor5","sum","AmountOfMaterials","Factor1Calculated","baseTimeCalc","SumHours","hours","salary","SumSalaryAndExpenses","expenses","SumMaterialsUE","SumTotal","sumSAndE","sumMAndUE","UnitPrice","roundToTwoDecimals","UnitPriceMaterials","Number","IsTimeEstimateAdded","IsTimeFactorAdded","TimeFactors","ReportPriceListName","SurfaceAdditionAmount","AdditionItems","addition","find","OpeningAdditionAmount","SumAdditions","surface","opening","SumTime","time","SumTotalWithAdditions","hourCost","f3","f4","f6","cost","UnitPriceWithAdditions","sumTotal","amountCalc","ProjectCost","selfcost","SumProfit","profit","SumSelfCost","SumSalaryAndSocialCost","DeviationAmount","DeviationPrice","SumMargin","margin","Items","IsHighLighted","IsRecentlyAdded","IsSelected","IsModifiedRecently","PriceMatch","Status","removeTimeEstimate","createNewDefaultFromElement","elementId","uuidv4","Created","LastModified","createNewDefaultBIC","element","newCalcItem","onBuildingItemAdjustmentChange","useBatch","registerItemSaveChangesWithAdditionAndParent","buildItemCalculations","items","_itemsCalc","forEach","itemCalc","calculateItemWarnings","BuildingItems","instanceOfBuildingItemCalculation","mapBuildingItemCalcToBuildingItem","ProffesionType","VersionNoteType","ProjectStartFilter","RowColors","RowColorsElement","CalculationColumnView","ExportType","ApplicationSource","AddItemMethod","CalculationState","BatchType","PublicationType","mapCalculationProperties","calc","_calc","ConcurrencyToken","IsLocked","Profession","Hours","Factors","MaterialsSubContractors","MaterialsUE","SelfCost","Total","Profit","CostSoFar","BuildingElements","Children","HasUnsavedChanges","SalaryCostAdjusted","SalaryCostAdjustedCalculated","SelfCostMaterialsSubContractors","setComputedProperties","HoursAdjusted","adjusted","ele","HoursTotal","total","HourCostToCustomer","SumAmountControl","amountControl","SumSalaryCostAdjusted","sumAdjusted","SumSalaryAndExpensesAdjusted","SumMaterialsAndCostAdjusted","MaterialCostAdjusted","materialCost","SumCorrections","SumTotalCorrected","SumProfitCorrected","SumMarginCorrected","SumFactor4","CoverageCorrected","reduce","prev","cur","Coverage","SumTotalEnterprise","child","ActiveBuildingElements","activeElements","filter","sort","a","b","ActiveBuildingItems","activeItems","filteredItems","concat","AllBuildingItems","sumAmountControl","sumSalaryCostAdjusted","safePercentage","fraction1","fraction2","sumHours","sumMaterialsUE","sumSelfCostMaterialsSubContractors","sumSelfCost","sumProfit","sumMargin","activeBuildingItems","allBuildingItems","getCalculationTotalByProp","propName","calcFactor1","calcFactor2","calcFactor3","calcFactor4","calcFactor6","calcFactor7","toLocaleString","defaultLocaleString","maximumFractionDigits","getCalculationTotalTypography","render","_vm","this","_h","$createElement","_c","_self","class","header","attrs","color","_v","_s","getIconByProfessionCode","_e","domProps","getNameByProfessionCode","$t","iconLeft","staticClass","count","staticRenderFns","defineComponent","props","String","Boolean","setup","component","VBadge","VIcon","VListItem","VListItemAvatar","VListItemContent","VList","VListItemSubtitle","VListItemTitle","Locales","LOCALES","EN","caption","NO","FO","layout","_t","$route","meta","DEFAULT_LAYOUT","components","AppLayoutLoading","loading","show","statusText","updateStatusText","text","Vue","use","VueI18n","messages","en","no","fo","defaultLocale","i18n","locale","fallbackLocale","values","loadingActive","buildingTotals","projects","activeProjectFull","professions","activeProjectDetails","activeProjectOverview","projectFilter","search","Recent","useProject","useSnackbar","snack","destructActiveCalculation","useAuth","user","checkForTotalOnMainProjects","project","lastLastModified","last","Date","filteredProjects","filtered","MyProjects","Owner","Email","All","toUpperCase","includes","getProjects","force","useApi","response","isSuccess","IsAdmin","Shared","exists","findIndex","ProjectNumber","localeCompare","log","buildProjectTotalsForCalculations","getCalculation","buildProjectCalculation","calculation","projectCalc","totals","TempProjectTotals","ProjectTotals","setActiveProjectFromProjectList","id","proj","getFullProjectById","projectId","getProjectOverviewById","createProject","newProject","isCalculation","post","getActiveProjectDetails","getDetails","details","saveDetails","projectDetails","put","success","destructActiveProject","isStorageSupported","localStorage","removeItem","LS_ACTIVE_PROJECT_KEY","LS_ACTIVE_CALC_KEY","router","currentRoute","path","PROJECT_START_PATH","closeActiveProject","setActiveProject","routeToProjectOverview","PROJECT_OVERVIEW_PATH","setItem","deleteProject","routeTo","deleteReq","some","getProfessions","parseInt","Code","getNewProjectNumber","parentProjectId","next","updateActiveProjectTotal","projectCalculation","calcOverview","ow","parentIncluded","refreshActiveProject","firstProject","first","setActiveProjectByNumber","projectNumber","users","useUsers","getUsers","createUser","email","setUserPassword","pw","UserId","payload","NewPassword","Password","deleteUser","u","useLicense","unassignLicense","updateUser","FullName","FirstName","LastName","unshift","halfAndHalf","center","headerText","icon","secondaryText","required","VCardTitle","VCard","VCol","VDivider","VRow","VSpacer","createDefaultBuildingTypeTemplate","profession","BuildingElementTemplates","Description","GlobalKey","ImportTime","OrganizationId","ProfessionCode","ProfessionId","sortBuildingItemTemplates","sortedItems","sortBuildingElementTemplatesByNS3451","elements","sortedElements","NS3451","createBuildingItemTemplateType","itemTemplate","itemTemplateType","PreCut","TimeFactorTemplates","createAdditionItemTemplateType","additionTemplate","additionTemplateType","createBuildingElementTemplateType","elementTemplate","eleTemplateType","NS3450","ProductionLine","AdditionItemTemplates","BuildingItemTemplates","createBuildingTypeTemplateType","template","templateType","ImportDate","toISOString","createXMLObject","buildingTypeTemplate","buildingTypeTemplateTypeXML","BuildingTypeTemplate","$","xmlns","elementXMLTypes","eleTemplate","buildingElementTemplateTypeXML","_","itemXMLTypes","additionXMLTypes","itemXMLTemplateType","additionXMLTemplateType","finalizeBuildingTypeTemplate","Array","singleElement","BuildingTypeTemplateId","BuildingElementTemplateId","singleItem","title","license","Trial","isValid","secondaryTitle","licensePrice","termsUrl","model","callback","$$v","readAndUnderstood","expression","upgrading","on","upgradeLicenseEvent","Loader","upgradeLicense","purchaseLicense","getLicensePrice","ref","onMounted","licenseInfoHeaderText","ExpiryDate","moment","format","isBefore","userName","UserName","isAdmin","process","VBtn","VCheckbox","VImg","VToolbar","buildingTemplatesByProfession","buildingTemplates","lastUsedTemplate","activeTemplate","downloadableFiles","useLibrary","getBuildingTemplate","templateId","getLastUsedTemplate","useGlobal","userSettings","lastUsed","selectedTemplate","LastUsedTemplates","getBuildingTemplatesByProfession","professionCode","getBuildingTemplatesByCode","templates","updateLastUsedTemplate","templateName","saveSettings","TemplateName","pts","getAllBuildingTemplates","downloadTemplateFile","templateFile","getTemplateFiles","createBuildingTypeTemplate","createBuildingElementTemplate","buildingElementTemplate","buildingTypeTemplateId","createBuildingItemTemplate","buildingItemTemplate","buildingElementTemplateId","updateBuildingTypeTemplate","deleteBuildingTypeTemplate","deleteBuildingElementTemplate","deleteBuildingItemTemplate","buildingItemTemplateId","importTemplate","setActiveTemplate","destructCurrentLibrary","initCalculationLibrary","createBuildingItemTemplateFromBIC","toString","createBuildingElementTemplateFromBEC","addElementToActiveLibrary","activateLibrary","addElementToLibrary","newName","temp","addItemToLibrary","margins","small","VContainer","VProgressCircular","mapBuildingAdditionItemCalcProperties","additionItem","_additionItem","AmountAdjusted","price","additions","buildAdditionItemCalculations","_additionCalc","adi","mapAdditionCalcToAdditionItem","additionCalc","map","webpackContext","req","webpackContextResolve","keys","$event","dialog","scopedSlots","_u","fn","_g","_b","preventDefault","submit","arguments","valid","proxy","rules","min","containsLower","containsUpper","$set","passwordMatch","passwordValidator","DialogTitle","ConfirmPassword","test","v","VCardActions","VDialog","VForm","VListItemIcon","VTextField","saveCalculation","registerAdditionItemBatchOperation","aic","newOperation","AdditionItem","calcBatch","SaveOperations","InsertOperations","DeleteOperations","ChangedFactors","Save","Delete","Insert","registerNewElementWithChildren","newElementOperation","newBuildingItemOperation","BuildingItem","newAdditionItemOperation","registerNewElementsWithChildren","registerNewBuildingItems","bi","newItemOperation","registerBuildingItemBatchOperation","bic","buildingItem","registerBuildingItemsBatchOperation","bics","registerElementsBatchOperation","baseElement","mapElementCalcToBaseElement","registerElementBatchOperation","registerChangedFactorsBatchOperation","factors","batch","ProjectFactorId","ProjectFactorProjectFactorItems","factorBatch","registerElementSaveChangesWithChildren","registerElementInsertChangesWithChildren","registerAllBuildingItemSaveChanges","registerElementUnitChanges","add","registerElementAndAdditionsChanges","resetChanges","sortBuildingElementsCalculation","api","axios","baseURL","endpoint","token","$cookies","AUTH_KEY","config","headers","Authorization","query","accept","responseType","queryString","entries","encodeURIComponent","join","Accept","postUrlencoded","params","urlencodedConfig","postMultipart","formData","multipartConfig","delete","source","createAdditionElements","currentDate","AdditionType","Flatetillegg","Ã…pninger","addAdditionsToElement","removeAdditionsFromElement","calculateWarnings","ElementWarnings","mapBuildingElementCalcProperties","_elementCalc","TransportAddition","FollowupDate","Signed","ProjectId","toLocaleLowerCase","HasBuildingItems","factor5","salaryCostAdjusted","amountMat","ItemCount","amount","unitPrice","Math","round","SumHoursAdjusted","selfCostMatSub","sumProductionSalary","salaryExpense","materials","calculated","IsExpanded","HoursAdjustedVM","NS3451TopLevel","firstChar","charAt","NS3451SecondLevel","second","secondChar","NS3451ThirdLevel","third","thirdChar","elementSumTotal","elementSumProfit","elementSumMargin","elementSumSelfCostMaterialsSubContractors","elementSumHours","sortBuildingItemsCalculation","sortAdditionItemsCalculation","sortBuildingItems","sortAdditionItems","updateBuildingElementSortOrder","index","updateBuildingItemSortOrder","sortBuildingElements","buildElementCalculations","_elementsCalc","eleCalc","getElementTotalByProp","getElementTotalTypography","updating","Idle","UnsavedChanges","Updated","Problem","calculatedPrice","BasePrice","DiscountPercentage","GRANT_TYPE_PW","PROTECTED_LAYOUT","LOADING_LAYOUT","EMOTION_HAPPY","EMOTION_DONT_KNOW","EMOTION_SAD","FEEDBACKTYPE_GENERAL","FEEDBACKTYPE_IMPROVEMENT","FEEDBACKTYPE_BUG","ACTIVE_LOCALE","USER_READ_PATCH_NOTES","BLOB_PRICELIST_NAME","LICENSE_PRICE_FULL_NO_MEMBERSHIP","LICENSE_PRICE_FULL_MEMBERSHIP","LICENSE_PRICE_ADDITION_NO_MEMBERSHIP","LICENSE_PRICE_ADDITION_MEMBERSHIP","UNITS","Map","ItemStatus","HOME_PATH","VERSIONS_PATH","LOGIN_PATH","LOGOUT_PATH","PROJECT_PRICEBOOK_PATH","PROJECT_ORGANIZATION_PATH","PROJECT_CALCULATION_PATH","PROJECT_CALCULATION_OVERVIEW_PATH","PROJECT_CALCULATION_BUILDING_ELEMENT_PATH","PROJECT_CALCULATION_PRICE_UPDATE_PATH","PROJECT_CALCULATION_ENVIRONMENT","PROJECT_ADMIN_PATH","PROJECT_LIBRARY_PATH","PUBLIC_PATHS","documentationUrl","supportUrl","policyUrl","registerUrl","VCardText","Subscriptions","hash","anchor","querySelector","scrollIntoView","behavior","VFooter","VParallax","VScrollYTransition","version","New","Change","Fixed","current","date","VSubheader","hasDefault","Remove","thanks","site","org","slots","useSlots","default","VChip","breadcrumb","mini","$vuetify","breakpoint","smAndDown","VToolbarTitle","ContentBar","VersionTitle","VersionNote","setUserReadPatchNotes","licenseAttention","usernameRules","username","passwordRules","password","error_description","attemptedUsername","resetPassword","watch","grant_type","rememberMe","LicenseForm","ResetPassword","login","LicenseOk","URLSearchParams","append","LoginForm","logout","slot","expanded","_l","OwnedByName","lang","$i18n","LastModifiedByName","projectSumTotal","menu","assign","loadingId","stopPropagation","handleClick","smAndUp","mdAndUp","xlOnly","information","VTooltip","InfoTooltip","initDetails","Carpentry","ParentId","newActive","newDetails","parent","textFieldRule","calculationName","occupation","navigateToCalc","newCalc","isMenuitem","setActiveCalculation","initProject","newProjectNumber","newActiveProj","hideTitle","calculations","CALCULATION_HEADERS_SMALL","PROJECT_HEADERS","showHeaders","dblClickRow","h","toLowerCase","importCalculation","emitImport","CalculationLockedTime","traverse","deleteEvent","$emit","customTitle","customClose","Confirm","lockEvent","lockCalculation","unlockCalculation","JSON","XML","includeCalculations","exportEvent","useExport","exportProject","nstNS3459","exportTemplate","elementTypes","itemTypes","additionTypes","blob","Blob","stringify","link","URL","createObjectURL","download","click","remove","VItemGroup","select","calulation","cleanSource","availableProjects","selectedProject","includeAmount","copyEvent","useFactors","filteredFactors","fi","getFactors","getProjectFactorItemsFromCompanyFactorByCode","cFactors","projectItems","cFactor","f","CompanyFactorItems","cf","pItem","Value","updateFactors","newFactors","updateCalculationFactors","updateProjectCalculationFactors","updateActiveCalculationWithBatch","updated","resetFactors","getFactorNameFromId","factorNr","getFactorUnitFromId","useProjectBuilder","_projectContacts","_applicationSource","_supportedProfessionCodes","_buildingElements","_IdElementsDictionary","convertNumberFromNstEgenskap","properties","nameField","converted","navnField","verdiField","parseFloat","replace","convertStringFromNstEgenskap","convertBooleanFromNstEgenskap","getApplicationSource","nsProject","kalkIndicator","egenskaperField","Kalk2010","onlineIndicator","KalkOnline","External","getName","kodeField","tekstField","uformatertField","trim","substring","getCode","idField","createFactors","FactorItems","FactorNumber","factorItems","AddressLine1","AddressLine2","PostNumber","PostOffice","StreetNumber","UsageNumber","LocationNumber","HousingNumber","SectionNumber","PriceInfo","AdditionalInformation","setPrimaryContact","contact","pc","IsPrimaryContact","getFirstName","nameArray","firstName","lArray","ret","getLastName","getContactsFromDeltakere","deltakere","contacts","deltaker","projectContact","personField","epostField","Phone","telefonField","Mobile","gateadresseField","postadresseField","postnrField","poststedField","split","CompanyName","firmaField","buildAdditionItem","prisinfoField","convertUnit","enhetField","enhetsprisField","sumField","buildBuildingItem","mengdeField","buildElement","ns3450","ns3451","buildKalkProjectData","projectdata","postField","fagId","postnrdelerField","fag","postnrplanField","postnrdelKoderField","plan","typeField","ns3451Kode","buildingElement","internKommentarField","removeEmptyBuildingElements","elementsWithoutItems","buildProjectData","projectData","filteredPost","createElementsFromPostnrPlan","fagKoder","delkode","createBuildingElements","projectItem","itemField","buildProjectFromNST","prosjektdeltakereField","ProjectContacts","parseOptimeraFloat","sPrice","num","validStrings","counter","sign","substr","parseOptimeraInt","stringToParse","parsed","isSafeInteger","isCSVorTXT","fileName","isExcel","useImport","getProfessionCodeFromNstProsjektNS","getProfessionFromNstProsjektNS","setPropertiesFromXML","nstn","iterateDelKode","obj","isArray","prosjekterField","prosjektNSField","projectProperties","projectProjData","postProperties","postPart","postnrdelField","egenskapField","delKoder","delTyper","postnrdelTyperField","postnrdelKodeField","postnrdelTypeField","postNrDelKode","xmlToNstNS3459","xml","itemObjectList","parseNumbers","isNaN","xml2js","parseStringPromise","explicitArray","explicitRoot","emptyTag","ignoreAttrs","tagNameProcessors","processors","firstCharLowerCase","altName","valueProcessors","parseProjectFile","uploadedFile","Response","parse","genereltField","parsePriceListCSV","file","content","reader","FileReader","onloadend","evt","readyState","DONE","lines","categories","line","lineValues","groupKey","has","category","Text","Varer","product","EAN13ItemNumber","ItemNumber","ItemText","RecommendedPrice","UnitDesc","ItemText2","PackageUnitDesc","ItemsInPackage","BuyingPrice","Discount","ItemNumberNOBB","ItemOwnerNumber","ModuleNumber","Categories","from","ProductCount","ex","readAsText","parsePriceListExcel","getTrimmedExcelStringValue","excelValue","parseAsStringOrReturnNumber","ab","abt","wb","XLSX","read","Uint8Array","wsname","SheetNames","ws","Sheets","rows","utils","sheet_to_json","row","readAsArrayBuffer","importLibrary","library","parseBooleans","importLibraryFromFile","deserialized","validatePriceListFile","createTotals","impProj","recalculateTotals","Token","projCalc","removeAmounts","importProj","createImportProject","projectName","nstMain","mainProject","beskrivelseField","buildSuccess","calculationNumber","calcProfession","newCalculation","calculationImport","calcBuildSuccess","importProject","existingProjects","newImport","VSelect","BUILDING_ELEMENT_HEADERS_CALCULATION","width","sortable","align","cellClass","BUILDING_ELEMENT_HEADERS_HOURLY_CONSUMPTION","BUILDING_ELEMENT_HEADERS_ECONOMY","BUILDING_ELEMENT_HEADERS_MATERIALS","BUILDING_ELEMENT_HEADERS_DELIVERY","BUILDING_ELEMENT_HEADERS_SIMPLE","divider","BUILDING_ELEMENT_HEADERS_SIMPLE_ALT1","BUILDING_ELEMENT_HEADERS_SIMPLE_ALT2","BUILDING_ITEM_HEADERS_SIMPLE","BUILDING_ITEM_HEADERS_SIMPLE_ALT","BUILDING_ITEM_HEADERS_SIMPLE_ALT1","BUILDING_ITEM_HEADERS_SIMPLE_ALT2","CALCULATION_BY_PROFESSION","ESTIMATE_HEADERS","LIBRARY__HEADERS","PRODUCT_HEADERS","PRICELIST_ITEM_HEADERS","BUILDING_ITEM_PRICE_UPDATE","BUILDING_ITEM_PRODUCT","DeleteProject","LockCalculation","ExportProject","CopyToAnotherProject","EditProject","emit","mouseEvent","dblClickEvent","VBtnToggle","VDataTable","VListItemGroup","VMenu","VSkeletonLoader","fileOk","validating","dropzoneOptions","validateImport","handleError","generalInfo","removeCalc","cancel","informasjonField","datoField","suppressScrollX","avsenderField","orgnrField","VListItemAction","vueDropzone","vue2Dropzone","ImportInfo","projectFile","importZone","removeAllFiles","disable","calcId","calcIndex","enable","removeFile","imported","autoProcessQueue","url","thumbnailWidth","maxFilesize","maxFiles","acceptedFiles","dictDefaultMessage","ImportMethod","switchMethod","method","FromCalculations","FromFile","includeDialog","abort","importing","importCalc","Calculations","importingCalculation","newMethod","VAlert","VExpansionPanel","VExpansionPanelContent","VExpansionPanelHeader","VExpansionPanels","NewProject","NewCalculation","ImportCalculation","ImportProject","KalkHelper","searchValue","updateFilterWithProfessionCode","clickRow","isExpanded","Projects","pricelists","getCategories","open","onActiveChangeEvent","onOpenEvent","IsSubscription","updatePriceLists","CompanyPriceList","_n","usePriceBook","insertPriceListItem","categoryName","pricelist","addNewCategoryToPriceList","deletePricelist","deleteCategoryFromPriceList","AddItem","AddCategory","DeleteCategory","DeletePricelist","getPriceLists","getPriceListCategoriesOverview","destroyDownloaded","downloadCategory","setActivePricelist","setActivePricelistCategory","loadingPricelists","activePricelist","getListByCategory","categoryId","pl","list","openNodes","newOpened","selectedItem","VTreeview","priceListTitle","activePriceListItems","itemsPerPageText","nobbItem","initDialog","nobbNumber","replacedByNobbNumber","primaryText","productGroupName","description","createdDate","lastModifiedDate","nobbModule","brand","corporateBrand","supplier","suppliers","boolToYesNoLocaleKey","isMainSupplier","imageUrl","ImagePlaceholder","media","mediaType","useProductInfo","getNobbItem","nobbNr","queries","nobbParams","convertToNobbNos","numbers","validateCommaSeparatedList","input","regex","getNobbItems","nobbNos","getDocumentsByItem","publicationtype","filename","arr","blobUrl","body","dispatchEvent","MouseEvent","bubbles","cancelable","view","convertMedia","mediaUrl","getNobbModule","moduleNr","number","downloadMedia","toBlob","Media","CoolLightBox","button","iconButton","med","moduleNumber","VAvatar","updatePriceListItem","deletePriceListItem","companyPricelistCategories","selected","getCompanyPricelistCategories","NobbInfo","EditItem","DeleteItem","CopyItem","onUnmounted","validFile","parsing","validForm","pricelistFile","products","fieldRules","allCategories","uploadPriceList","VCombobox","uploadingPriceList","priceListName","loadingPriceLists","selectedFile","DownloadablePricelist","getDownloadableFiles","subscribeToPriceList","initDownloadable","Pricelists","Itemlist","ImportPricelist","UploadPricelist","DownloadPricelist","reset","activeProf","initFactors","calculateFactor","calculateValue","unit","_factorItems","added","change","indexOf","del","EPSILON","calculateValueProject","calculateFactorProject","customerHourPrice","toFixed","customerHourPriceCalculation","newItem","AddModal","EditModal","VSimpleTable","IsCalculation","Factor","FactorSummary","VTab","VTabItem","VTabs","company","OrganizationNumber","ContactPersonName","address","OrderInfo","useCompany","getCompany","updateCompany","updatedCompany","getLogo","Logo","setBaseUrl","baseString","base","readAsDataURL","uploadLogo","FormData","emailRules","OrganizationForm","createAddressString","projectContacts","useContacts","getContacts","existsAsCalculationContact","calcContacts","projContact","ContactId","existsAsPrimary","setAsPrimaryContact","contactId","removeContactFromCalculation","getCalculationContacts","contactMappings","mapping","ProjectRole","addContactToCalculation","newContact","updateContract","updatedContact","createContact","deleteContact","fullName","Title","hasActions","ProjectRoles","role","allowCrud","actions","VCardSubtitle","VListGroup","editContact","deleteContactById","deleteDialog","setNewMode","toggle","setEditMode","initialState","ContactCard","cancelDelete","VItem","EditContacts","isUploading","uploading","maxSize","upload","logo","size","VFileInput","Organization","Contacts","licenses","GrantedToUsername","CreatedDate","LicenseType","showLicenseActions","canAssignLicense","canDeleteLicense","canChoose","step","calculatingChoices","Member","AdditionalLicencePriceName","availableUsers","selectedUser","containsNumber","goBack","createLoad","altFormIsValid","formIsValid","AdditionalLicensePrice","offerTitle","Administrator","ReadAndUnderstood","Offer","getLicenses","canAssignToExistingUser","form","resetValidation","reg","createdUser","VStepper","VStepperContent","VStepperHeader","VStepperItems","VStepperStep","deleteLicense","grantLicenseToUser","LicenseModal","DeleteLicenseModal","AssignLicenseModal","auth","updatedUser","UserModal","UserPwModal","UserDeleteModal","LicenseAdm","UserAdm","currentProfession","initTemplates","prof","filteredTemplates","getTemplateFull","fetchingFull","xmlPayload","blobParts","blobType","builderOptions","xmldec","encoding","xmlObject","builder","Builder","buildObject","getDownloadables","loadingTemplates","availableFiles","DownloadableLibrary","files","found","ProfessionView","newTemplate","Professions","ExportTemplate","DeleteTemplate","ImportTemplate","DownloadTemplate","NewTemplate","templateFull","_templates","bet","getLibraryCount","profCode","LibraryManager","customElements","columnView","Calculation","HourlyConsumption","Materials","Delivery","Economy","collapseAll","expendCalc","allowDrag","handle","onDropCallback","smallVariant","columns","directives","rawName","handleChange","calcs","priceLists","onChangeEvent","getCalculationPriceListFromElements","setPriceListForActiveCalculation","pricelistId","plId","changeEvent","getRowColor","traverseToElement","nativeOn","changeColor","Red","Green","Orange","registerAndNudge","factor1Enabled","NS3420Units","initPriceUpdate","updateProducts","cancelPriceUpdate","propValueClass","propValue","textClass","isSurface","elevated","itemRowBackground","simple","refInFor","findItems","closeMenu","calcElement","sameProduct","closeEvent","replaceAll","onEdit","attrsEdit","onAdd","attrsAdd","selectedEvent","confirmDialog","old","new","estimate","confirm","deny","excludeItems","Estimates","staticStyle","itemSelected","useTimeEstimate","getTimeEstimateCategories","findAllEstimatesInCategory","categoryEstimates","cat","buildEstimates","searchKey","filteredCategories","TimeEstimates","overwriteName","userConfirm","useBuildingItem","upsertTimeEstimate","ok","upsertTime","est","deleteItemFromCalculation","onReplace","attrsReplace","fetchingProducts","searchFilter","PriceListNames","azureResult","PriceListFacets","searchWithFilters","CategoryNames","CategoryFacets","azureSearch","FoundPriceLists","resultSearch","toggleItem","NobbNumber","NobbKeywords","differentUnitDialog","differentUnitAccept","differentUnitDeclined","addFromPricelist","itemCalcs","isMenuOption","ReplaceProducts","searchProductsInPricelists","getSubscribedPricelists","searchProductsInPricelistsWithFilter","getCategoryFacets","getPriceListFacets","differentUnit","differentUnitDecided","chosenItem","subscribedPriceListIds","toggleObject","Search","SubscribedPriceListIds","selectedItemHasDifferentUnit","existingUnit","diffUnit","areUnitsEqual","iwp","Item","PriceListItem","filteredSearch","pricelistFacets","categoryFacets","TotalResultCount","spl","buildingItemCalc","StatusColor","StatusText","onLibraryChange","selectedLibrary","selectedElementTemplate","amountTransition","useNudge","nudgeAmount","itemClass","columnName","style","getAlignment","getNonSlotValue","calm","warnings","warning","RemoveTimeEstimate","precutItem","removeEvent","EditTimeEstimate","ProductSearch","GetProduct","BuildingItemStatus","AddItemToLibrary","DataTableRowHandler","draggable","SetPrecut","RemovePrecut","getItemsWithSimilarProduct","itemMenu","isActive","children","VEditDialog","VSlideYTransition","VTextarea","primary","CreateNew","FromLibrary","FromCalculation","addFromCalculation","addFromLibrary","addFromDefault","buildingItems","onMoveCallback","methodSelected","nobb","editItem","removeSurfaceAndAddition","addFromEstimate","hasOpeningAndSurface","initItem","timeEstimate","GetTime","replaceName","hasProduct","hasTime","FromDefault","calculationsByProf","filteredElements","selectItems","addElement","addItem","getCalculationByProfession","updateElements","categorizedTemplates","Ns3451","Ns3451Children","useStandards","getStandards","getStandardChildren","standards","groupByToMap","array","predicate","getNS3451NameFromStandards","topLevel","topLevelNS3451","secondLevel","secondLevelNS3451","thirdLevel","thirdLevelNS3451","CodeName","buildNS3451Categories","newCategories","groupedTemplates","elementTemplates","et","elementNode","_bt","elementItemTemplate","Method","selectMethod","sel","createFromBuildingItemTemplate","becs","bec","draggedContext","itemIdx","futureIndex","ElementForm","routeToCalculation","useBuildingElement","deleteElementFromCalculation","typeChanged","selectedDocType","Fdv","Epd","Yte","Hms","Man","Pre","allSelected","toggleAll","loadingItemId","isSelected","toggleSingle","downloadAll","Succeeded","Failed","DocumentStatus","failed","succeeded","ranOnce","available","downloaded","VSimpleCheckbox","chosenPriceList","fetchingPrices","fetchPrices","pricesFetched","isEnabled","BuildingItemPriceListName","PriceListUnit","HasDifferentUnit","PriceListPrice","PriceDifference","BuildingItemPriceListItemName","amountChange","updateProduct","timeUpdated","updatingPrices","priceUpdate","updatePricesFromNOBBNumbers","updateBuildingItemPrices","searchablePriceListItems","StatusType","MatchNoDiff","MissingNobb","updatePriceMatchStatus","MatchWithUnitDiff","HasPrice","MatchWithPriceDiff","setPriceMatches","priceListItems","withoutChecking","priceListItem","priceMatch","BuildingElementName","BuildingItemId","diff","unitDescriptionConverter","priceFound","ShouldAutoSelect","discountPercentage","clearPriceMatches","nobbs","canUpdate","ElementPropItem","NewItem","EditElement","DeleteElement","Documentation","AddToLibrary","PriceUpdate","amountEnabled","enabledWhen","milestoneEnabled","productionLineEnabled","FDVEnabled","deliveryOrderEnabled","CalculationSwitcher","PriceList","BuildingCalcElement","selectable","customLoader","listed","exp","customFilter","_value","searchable","ai","filterText","panels","newPanels","querySelectorAll","panel","bEle","createFromBuildingElementTemplate","buildingElements","createBICFromBuildingItemTemplate","newItemCalc","newVal","DeleteElementTemplate","DeleteItemElementTemplate","UpdateTemplate","Loading","AddItemToCalculation","newTemplates","Templates","VNavigationDrawer","AddElementMethod","LibraryDrawer","addFirstelement","FromLibraries","addElementFromNS3451","addElementFromLibrary","addElementFromCalculation","removeElement","createElementFromNS3451","addBuildingElementToCalculation","newIndex","oldIndex","newElement","scrollToBottom","isProject","filterChange","ReportType","ProjectMileStone","ProjectAttachmentPriceOffer","ProjectBuildingElements","ProjectMainSums","MaterialOrder","MaterialListPrecut","AttachmentPriceOffer","MainSums","PriceRequest","Environment","CalculationView","TimeView","MaterialsView","EconomyView","DeliveryView","options","ReportFileType","PDF","FileType","offsetY","availableDeliveryOrders","IncludeBuildingElements","EPDPropertyGUIDS","NO_MILESTONE","onlyIfPrecut","isPrecut","onlyIfPrecutUnit","precutUnit","getPrecutText","getPriceListItemName","groupName","getMileStoneData","includeAllBuildingItems","materialItems","milestones","matItem","AccountName","ItemName","Sum","PrecutText","PrecutUnit","TotalAmount","createReportName","fileType","reportName","getBuildingMaterials","matExist","mi","newMat","getPriceRequestMaterials","downloadExcel","out","s2ab","buf","ArrayBuffer","charCodeAt","saveAs","getImageDimensions","imageData","resolved","Image","w","naturalWidth","naturalHeight","createHeader","doc","MAX_IMAGE_WIDTH","MAX_IMAGE_HEIGHT","logoData","companyName","dims","ratio","imageWidth","imageHeight","addImage","autoTable","startY","theme","right","styles","fontSize","FontSize","DEFAULT_TEXT_SMALL","LARGE_TEXT_SMALL","cellPadding","columnStyles","0","fontStyle","createHeaderXlsx","xlData","createProjectInfo","orderInfo","getPrimaryContact","previous","finalY","tableLineColor","tableLineWidth","1","3","5","6","halign","orderData","createProjectInfoXlsx","generateMaterialOrderReportPDF","jsPDF","pdfName","postnr","matItems","IncludePrecut","mat","matItemsWithoutDeliveryOrder","DeliveryOrders","IncludeWithoutDeliveryOrder","numberToAbsStringOrEmpty","IncludeComments","showHead","headStyles","fillColor","DEFAULT_TEXT_XSMALL","LARGE_TEXT_XSMALL","valign","2","4","textColor","7","8","9","10","pages","internal","getNumberOfPages","pageWidth","pageSize","pageHeight","height","setFontSize","DEFAULT_TEXT_MEDIUM","LARGE_TEXT_MEDIUM","horizontalPos","verticalPos","setPage","createdAt","save","generateMaterialOrderReportEXCEL","useReport","checkAndbuildSheetName","book_new","xlsxName","sheetName","Props","aoa_to_sheet","wbout","write","bookType","generateMaterialOrderReport","generateMilestoneReportPDF","sumhours","withoutMilestone","mileStonedata","lastRow","milestoneHeader","didParseCell","cell","cellWidth","DEFAULT_TEXT_LARGE","LARGE_TEXT_LARGE","summaryData","generateMilestoneReportEXCEL","generateMilestoneReport","generateMaterialListPrecutReportPDF","matITems","generateMaterialListPrecutReportEXCEL","generateMaterialListPrecutReport","generateAttachmentPriceOfferReportPDF","buildingElementBreakPoints","offerData","IncludeAmounts","IncludeElementSums","IncludeBuildingItems","ShowProductName","IncludeItemSums","MVA","sumExclMva","sumInclMva","MvaOnly","fillRow","sumExclMvaRow","mvaRow","sumInclMvaRow","elePos","section","cells","generateAttachmentPriceOfferReportEXCEL","generateAttachmentPriceOfferReport","generateBuildingElementReportPDF","bEdata","generateBuildingElementReportEXCEL","generateBuildingElementReport","generateMainSumsReportPDF","DEFAULT_TEXT_MINI","LARGE_TEXT_MINI","overflow","generateMainSumsReportEXCEL","generateMainSumsReport","generatePriceRequestReportPDF","prData","11","12","generatePriceRequestReportEXCEL","generatePriceRequestReport","generateCalculationViewReportPDF","13","generateCalculationViewReportEXCEL","generateCalculationViewReport","generateDeliveryViewReportPDF","generateDeliveryViewReportEXCEL","generateDeliveryViewReport","generateTimeViewReportPDF","generateTimeViewReportEXCEL","generateTimeViewReport","generateMaterialViewReportPDF","generateMaterialViewReportEXCEL","generateMaterialViewReport","generateEconomyViewReportPDF","14","generateEconomyViewReportEXCEL","generateEconomyViewReport","generateProjectMilestoneReportPDF","projectSumSelfCost","projectSumhours","calculationCount","calcName","generateProjectMilestoneReportEXCEL","generateProjectMilestoneReport","generateProjectAttachmentPriceReportPDF","totalData","projectSumExclMva","projectSumInclMva","projectMvaOnly","calcTotalRow","totalPos","totalHead","totalTablePos","generateProjectAttachmentPriceReportEXCEL","generateProjectAttachmentPriceReport","generateProjectBuildingElementsReportPDF","DEFAULT_TEXT_XMEDIUM","LARGE_TEXT_XMEDIUM","generateProjectBuildingElementsReportEXCEL","generateProjectBuildingElementsReport","generateProjectMainSumsReportPDF","projectSummaryData","projectSumTime","projectSumSelfCostSalaryAndExpenses","projectSumSelfCostMaterialsSubContractors","projectFactor4","projectSumProfit","generateProjectMainSumsReportEXCEL","generateProjectMainSumsReport","useEnvironment","tryGetEpdReferenceUnit","epd","propertyGuid","ReferenceUnit","tryGetEpdA1A3GWPIOBCUnit","A1A3_GWP_IOBC","tryGetEpdA1A3GWPIOBCNumber","a1A3","tryGetEpdA1A3Number","A1A3_GWP","tryGetEpdA1A3Unit","tryGetUnformatedEpdValidationDate","ValidUntil","getNobbItemFromNobbNumber","nobbItems","getBuildingElementSumGWP","sumGWP","getBuildingElementCalculatedSumGWP","sumCalculatedGWP","priceUnit","buildingItemUnitIsEqualToPriceUnit","gwpTimesAmount","tryGetProductCertificates","certificates","cert","extractNobbNosFromBuildingElement","nos","generateEnvironmentReportPDF","calculationTotalHeader","elementEnvironmentSummedData","totalSumGWP","totalCalculatedSumGWP","buildingElementsWithNobbItems","calculatedSumGWP","elementWithNobbItems","buildingItemEnvironmentData","buildingElementHead","IncludeBuildingItemsWithMissingNOBB","IncludeBuildingItemsWithMissingEPD","validationDate","gwp","gwpUnit","gwpCalculated","priceUnitEqualsToBuildingItemUnit","precision","buildingElementHeader","generateEnvironmentReportEXCEL","wch","generateEnvironmentReport","names","uniqueName","generateReport","Report","includeCommentsEnabled","includeAmountsEnabled","includeBuildingElementSumsEnabled","includeBuildingItemSumsEnabled","includePrecutEnabled","showProductNameEnabled","includeBuildingItemsEnabled","includeBuildingElementsEnabled","includeBuildingItemsWithMissingNOBBEnabled","includeBuildingItemsWithMissingEPDEnabled","deliveryOrdersEnabled","calculationsEnabled","includeWithoutDeliveryOrder","rt","orders","self","deep","nameRules","convertCalculationToTemplate","Calculalation","NewElement","Reports","ConvertToTemplate","CalcFactorEditModal","CalculationFactorItems","calculationContacts","handleSetAsPrimary","handleRemoveContact","handleAddContact","EditCalculationContacts","CalculationFactors","CalculationContacts","createNewCalculation","updateInfo","EditDetails","ProjectDetails","commentWide","CalculationStatus","ElementFooter","ElementSwitcher","computedSumGWP","computedCalculatedSumGWP","environment","calculatedCertificates","propertyName","propertyDescription","certificate","environmentCertificates","numberA1A3","buildingItemUnit","calculatedByAmount","reference","used","buildingItemAmountCalculated","numberA1A3IOBC","valueWithUnit","NobbItemCertificates","ValidationDate","EnvironmentImpact","PriceUnit","CalculatedEnvironmentImpact","NobbItemEPDDialog","BuildingItemEnvironmentRow","computedItemsMissingNobb","computedItemsMissingEPD","calculationSumTotal","calculationCalculatedSumTotal","BuildingElementSumRow","BuildingElementEnvironment","CalculationEnvironmentalImpact","GenerateReport","resetPriceMatches","computedTotalItemsCount","computedValidPricesMatchesCount","computedTotalHitWithUnitDiffBuildingItem","computedTotalNoHitBuildingItem","computedTotalNoNobbOnBuildingItem","negativeThreshold","positiveThreshold","actionsAvailable","BuildingItemRow","VueRouter","routes","Home","Versions","Login","Logout","requiresAuth","Start","requireLicense","Pricebook","requiresAdmin","Admin","requiresFullVersion","Library","requiresActiveProject","requiresActiveCalculation","CalculationOverview","ProjectOverview","requiresActiveProjectOrNumberInProp","route","redirect","beforeEach","to","checkAuthAndLicense","buildCalculationDeps","initLanguage","authAndLicenseOK","authedRequirement","licenseRequirement","activeProjectRequirement","activeCalculationRequirement","adminRequirement","fullVersionRequirement","redirectPath","building","currentState","computedPriceList","activePriceList","saveQueue","getCalculationFactorSum","initElements","calculationId","getSettings","routeToOverview","recalculateActiveCalculationTotals","getTotals","concurrencyToken","LastModifiedBy","customError","currentBatch","nextBatch","primaryContact","isOnRoute","_activeCalculation","getItem","recentlyAddedTemplate","nobbNo","itemsContainingProduct","activeList","elementsWithPriceList","elementWithPriceList","reloadCalculation","projectFactor","pf","yesno","unit1","unit2","trimEnd","priceListUnit","synonyms","group","toLocaleUpperCase","scrollTo","scrollHeight","decimal","abs","pow","feedback","currentLocale","userReadPatchNotes","isIsolatingElement","appVersion","requestFeedback","chosen","setLanguage","truth","feedbackTime","Feedback","DontAskUser","HasProvidedFeedBack","NextTimeToAsk","addFeedback","feedBack","today","reminder","setDate","getDate","toDateString","_nextTimeToAsk","postponeFeedback","stopFeedbackReminders","initUserSettings","defaultSettings","ColumnSettings","ZoomPercentage","CustomView1Columns","CustomView2Columns","VueCompositionApi","updateExists","refreshApp","registration","refreshing","updateAvailable","detail","warn","waiting","postMessage","addEventListener","once","navigator","serviceWorker","location","VApp","VMain","VScrollXTransition","VSnackbar","register","ready","registered","setInterval","update","cached","updatefound","CustomEvent","offline","Vuetify","themes","light","primaryColor","secondary","secondaryColor","accent","dark","PerfectScrollbar","AppLayout","CountryFlag","productionTip","vuetify","App","$mount","newCalcElement","getElements","getElementsFromCalculations","_elements","createElementCalcFromNS3451","sortedList","VAppBar","VOverlay","VueCookies","authenticating","getUserInfo","buildAuth","checkUserLicense","updateAuthAndLicense","setToken","remember","access_token","destructPriceLists","blobToString","fileReader","ev","createCategoryFileName","asteriskCharThatDoesNotChangeInUrlEncodeButIsIllegalAsFileNameOnDisk","getPriceListBlobNamePrefix","priceListId","getCategoryNameFromUri","uri","lastIndexOf","decodeURIComponent","getCategoryIdFromBlobUri","categoryIdAsString","signedURIs","useAzure","getSignedUris","getCompanyContainer","container","CompanyContainerSignedUri","companyBlobServiceClient","BlobServiceClient","getContainerClient","getSharedContainer","SharedContainerSignedUri","sharedBlobServiceClient","activePricelistCategory","companyBlobPriceLists","sharedBlobPriceLists","nobbNumbersInCalculation","spli","NobbNumbersInCalculation","PriceListId","facets","full","notifyPriceListDeleted","notifyCategoryDeleted","categoryBlobName","CategoryBlobName","CategoryId","CategoryName","notifyPriceListItemDeleted","priceListItemId","PriceListItemId","notifyCategoryChanged","notifyPriceListCreated","getSharedPricelists","blobPriceLists","blobClient","getBlobClient","downloadBlockBlobResponse","blobBody","bpl","PriceFileId","getCompanyPricelists","allPriceLists","subscribedLists","companyLists","sharedLists","cl","priceList","categoryOverviews","blobs","marker","priceListBlobNamePrefix","prefix","listBlobsFlat","byPage","continuationToken","iter","resp","segment","blobItems","priceListCategory","BlobName","ListBlobItem","SizeInBytes","contentLength","blockBlobClient","getBlockBlobClient","pako","arrayBuffer","orig","ungzip","savePriceListItemsToCategoryBlockBlob","blobBlockClient","stringifiedItemList","newOrig","uploadBlobResponse","deletePriceListItemInternal","isSubscription","notified","categoryBlobBlockClient","trashcanCategoryBlobBlockClient","deleteResponse","companyPriceLists","companyList","notify","categoryFileName","priceListPrefix","newCategoryBlobName","canUploadList","lists","yesNo","notSubscribed","newPriceList","convertPriceListNodeTreeToPriceListArray","plNodes","pln","sharedFiles","companyFiles","allFiles","subscribedPriceLists","subscribedFile","companyContainer","newSubscriptionPriceList","addItemToElement","bit","createNewItem","newCalcitem","upsertProduct","createBICFromTimeBook","createFromTimeBook","createFromPriceBook","plItem","accountNumber","check","shouldListLicense","newUser","updatedLicense","termination","canAssign","canDelete","licenseId","webpackAsyncContext","ids"],"mappings":"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O,MACPD,UAAU,GAEZ,CACE/5B,KAAM,GACNvU,MAAO,WACPyR,MAAO,cACP48B,MAAO,KACPE,MAAO,SACPD,UAAU,EACVE,UAAW,qBAEb,CACEj6B,KAAM,GACNvU,MAAO,UACPyR,MAAO,cACP48B,MAAO,KACPE,MAAO,SACPD,UAAU,EACVE,UAAW,sBAIFK,GAA0D,CACrE,CACEt6B,KAAM,GACNvU,MAAO,oBACPquC,MAAO,KACP58B,MAAO,iBACP68B,UAAU,GAEZ,CACE/5B,KAAM,OACNvU,MAAO,OACPquC,MAAO,MACP58B,MAAO,iBACP68B,UAAU,GAEZ,CACE/5B,KAAM,OACNvU,MAAO,OACPquC,MAAO,KACP58B,MAAO,iBACP68B,UAAU,EACVC,MAAO,UAET,CACEh6B,KAAM,GACNvU,MAAO,UACPquC,MAAO,KACP58B,MAAO,iBACP68B,UAAU,EACVC,MAAO,MACPO,SAAS,IAIAC,GAA+D,CAC1E,CACEx6B,KAAM,GACNvU,MAAO,oBACPquC,MAAO,KACP58B,MAAO,kBACP68B,UAAU,GAEZ,CACE/5B,KAAM,OACNvU,MAAO,OACPquC,MAAO,MACP58B,MAAO,kBACP68B,UAAU,GAEZ,CACE/5B,KAAM,OACNvU,MAAO,OACPquC,MAAO,KACP58B,MAAO,kBACP68B,UAAU,EACVC,MAAO,UAET,CACEh6B,KAAM,GACNvU,MAAO,UACPquC,MAAO,KACP58B,MAAO,kBACP68B,UAAU,EACVC,MAAO,QAIES,GAA+D,CAC1E,CACEz6B,KAAM,GACNvU,MAAO,oBACPquC,MAAO,KACP58B,MAAO,kBACP68B,UAAU,GAEZ,CACE/5B,KAAM,OACNvU,MAAO,OACPquC,MAAO,MACP58B,MAAO,kBACP68B,UAAU,GAEZ,CACE/5B,KAAM,OACNvU,MAAO,OACPquC,MAAO,KACP58B,MAAO,kBACP68B,UAAU,EACVC,MAAO,UAET,CACEh6B,KAAM,GACNvU,MAAO,UACPquC,MAAO,KACP58B,MAAO,kBACP68B,UAAU,EACVC,MAAO,QAIEU,GAAuD,CAClE,CACE16B,KAAM,GACNvU,MAAO,YACPyR,MAAO,cACP48B,MAAO,KACPC,UAAU,GAEZ,CACE/5B,KAAM,OACNvU,MAAO,OACPquC,MAAO,MACP58B,MAAO,cACP68B,UAAU,GAEZ,CACE/5B,KAAM,OACNvU,MAAO,OACPyR,MAAO,cACP68B,UAAU,EACVC,MAAO,UAET,CACEh6B,KAAM,WACNvU,MAAO,WACPyR,MAAO,cACP68B,UAAU,EACVC,MAAO,UAET,CACEh6B,KAAM,QACNvU,MAAO,QACPyR,MAAO,cACP68B,UAAU,EACVC,MAAO,UAET,CACEh6B,KAAM,aACNvU,MAAO,aACPyR,MAAO,cACP68B,UAAU,EACVC,MAAO,UAET,CACEh6B,KAAM,GACNvU,MAAO,UACPyR,MAAO,cACP68B,UAAU,EACVD,MAAO,MACPE,MAAO,QAIEW,GAA2D,CACtE,CACE36B,KAAM,GACNvU,MAAO,YACPyR,MAAO,eACP48B,MAAO,KACPC,UAAU,GAEZ,CACE/5B,KAAM,OACNvU,MAAO,OACPquC,MAAO,MACP58B,MAAO,eACP68B,UAAU,EACVC,MAAO,SAET,CACEh6B,KAAM,OACNvU,MAAO,OACPyR,MAAO,eACP68B,UAAU,EACVC,MAAO,UAET,CACEh6B,KAAM,WACNvU,MAAO,WACPyR,MAAO,eACP68B,UAAU,EACVC,MAAO,UAET,CACEh6B,KAAM,QACNvU,MAAO,QACPyR,MAAO,eACP68B,UAAU,EACVC,MAAO,UAET,CACEh6B,KAAM,aACNvU,MAAO,aACPyR,MAAO,eACP68B,UAAU,EACVC,MAAO,UAET,CACEh6B,KAAM,GACNvU,MAAO,UACPyR,MAAO,eACP68B,UAAU,EACVD,MAAO,MACPE,MAAO,QAIEY,GAA4D,CACvE,CACE56B,KAAM,OACNvU,MAAO,OACPquC,MAAO,MACP58B,MAAO,eACP68B,UAAU,GAEZ,CACE/5B,KAAM,OACNvU,MAAO,OACPyR,MAAO,eACP68B,UAAU,EACVC,MAAO,UAET,CACEh6B,KAAM,WACNvU,MAAO,WACPyR,MAAO,eACP68B,UAAU,EACVC,MAAO,UAET,CACEh6B,KAAM,QACNvU,MAAO,QACPyR,MAAO,eACP68B,UAAU,EACVC,MAAO,UAET,CACEh6B,KAAM,aACNvU,MAAO,aACPyR,MAAO,eACP68B,UAAU,EACVC,MAAO,UAET,CACEh6B,KAAM,GACNvU,MAAO,UACPyR,MAAO,eACP68B,UAAU,EACVD,MAAO,MACPE,MAAO,QAIEa,GAA4D,CACvE,CACE76B,KAAM,OACNvU,MAAO,OACPquC,MAAO,MACP58B,MAAO,eACP68B,UAAU,GAEZ,CACE/5B,KAAM,OACNvU,MAAO,eACPyR,MAAO,eACP68B,UAAU,EACVC,MAAO,UAET,CACEh6B,KAAM,QACNvU,MAAO,QACPyR,MAAO,eACP68B,UAAU,EACVC,MAAO,UAET,CACEh6B,KAAM,gBACNvU,MAAO,gBACPyR,MAAO,eACP68B,UAAU,EACVC,MAAO,UAET,CACEh6B,KAAM,aACNvU,MAAO,aACPyR,MAAO,eACP68B,UAAU,EACVC,MAAO,WAIEpU,GAA0C,CACrD,CACE5lB,KAAM,aACNvU,MAAO,eACPquC,MAAO,KACP58B,MAAO,iBACP88B,MAAO,SACPC,UAAW,oBACXF,UAAU,GAEZ,CACE/5B,KAAM,OACNvU,MAAO,OACPquC,MAAO,MACP58B,MAAO,iBACP+8B,UAAW,oBACXF,UAAU,GAEZ,CACE/5B,KAAM,gBACNvU,MAAO,gBACPquC,MAAO,KACP58B,MAAO,iBACP88B,MAAO,SACPC,UAAW,oBACXF,UAAU,GAEZ,CACE/5B,KAAM,SACNvU,MAAO,SACPquC,MAAO,KACP58B,MAAO,iBACP88B,MAAO,SACPC,UAAW,oBACXF,UAAU,GAEZ,CACE/5B,KAAM,cACNvU,MAAO,cACPquC,MAAO,MACP58B,MAAO,iBACP88B,MAAO,SACPC,UAAW,oBACXF,UAAU,GAEZ,CACE/5B,KAAM,eACNvU,MAAO,eACPquC,MAAO,MACP58B,MAAO,iBACP88B,MAAO,SACPC,UAAW,oBACXF,UAAU,GAEZ,CACE/5B,KAAM,qBACNvU,MAAO,qBACPquC,MAAO,MACP58B,MAAO,iBACP88B,MAAO,SACPC,UAAW,oBACXF,UAAU,GAEZ,CACE/5B,KAAM,QACNvU,MAAO,QA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","file":"js/app.9e7ff2c9.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-00a7214f\":\"3576631a\",\"chunk-03fc461c\":\"9f06fd22\",\"chunk-0c04eb95\":\"0f1d7e62\",\"chunk-219e24ea\":\"c73f3ca0\",\"chunk-2d216214\":\"cece44c1\",\"chunk-2d216257\":\"1caeb235\",\"chunk-489064dc\":\"46c3b15b\",\"chunk-5050bdf0\":\"748777ab\",\"chunk-5ee99ba1\":\"ec40aba2\",\"chunk-174ffbe4\":\"b34f2984\",\"chunk-7bf55367\":\"c603f4cb\",\"chunk-61dae022\":\"316cb272\",\"chunk-6e999b7a\":\"b3f06b62\",\"chunk-73aa5a16\":\"63b3af38\",\"chunk-86242364\":\"c5721053\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"chunk-00a7214f\":1,\"chunk-03fc461c\":1,\"chunk-0c04eb95\":1,\"chunk-219e24ea\":1,\"chunk-489064dc\":1,\"chunk-5ee99ba1\":1,\"chunk-174ffbe4\":1,\"chunk-7bf55367\":1,\"chunk-61dae022\":1,\"chunk-6e999b7a\":1,\"chunk-73aa5a16\":1,\"chunk-86242364\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-00a7214f\":\"a08e30de\",\"chunk-03fc461c\":\"bf99ac25\",\"chunk-0c04eb95\":\"be7e93c5\",\"chunk-219e24ea\":\"8aa78502\",\"chunk-2d216214\":\"31d6cfe0\",\"chunk-2d216257\":\"31d6cfe0\",\"chunk-489064dc\":\"d9e944e7\",\"chunk-5050bdf0\":\"31d6cfe0\",\"chunk-5ee99ba1\":\"9e820455\",\"chunk-174ffbe4\":\"719f1639\",\"chunk-7bf55367\":\"d0a55eca\",\"chunk-61dae022\":\"1000a617\",\"chunk-6e999b7a\":\"04fb9758\",\"chunk-73aa5a16\":\"657fbdee\",\"chunk-86242364\":\"1fc60653\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([2,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import { translate } from '@/localization/index';\nimport { CustomError, CustomErrorMessage } from '@/models/common/interfaces';\nimport { computed, reactive, toRefs } from '@vue/composition-api';\nimport { useCalculation } from './calculation';\nimport { useLoader } from './loader';\n\ninterface State {\n active: boolean;\n error?: CustomError;\n message?: CustomErrorMessage;\n reloadOption?: boolean;\n}\n\nconst state = reactive({\n active: false,\n error: undefined,\n message: undefined,\n reloadOption: undefined,\n});\n\nexport const useErrorModal = () => {\n const errorModal = (\n error?: CustomError,\n message?: CustomErrorMessage,\n reloadOption?: boolean\n ) => {\n state.error = error;\n state.active = true;\n state.message = message;\n state.reloadOption = reloadOption;\n };\n\n const close = () => {\n state.active = false;\n state.error = undefined;\n state.message = undefined;\n state.reloadOption = undefined;\n };\n\n const reload = async (): Promise => {\n const { initActiveCalculation, activeCalculation } = useCalculation();\n const { startLoader, stopLoader } = useLoader();\n\n if (activeCalculation?.value?.Id) {\n startLoader(`${translate('loader.loading-project')}`);\n await initActiveCalculation(activeCalculation.value.Id);\n close();\n stopLoader();\n }\n };\n\n const getMessageFromErrorCode = computed(() => {\n if (!state.error?.status) return translate('errors.message-no-status');\n switch (state.error.status) {\n case 405:\n return translate('errors.message-405');\n case 409:\n return translate('errors.message-409');\n case 500:\n return translate('errors.message-500');\n default:\n return translate('errors.message-default');\n }\n });\n\n const getTitleFromErrorCode = computed(() => {\n if (!state.error?.status) return 'Unknown issue!';\n switch (state.error.status) {\n case 405:\n return translate('errors.title-405');\n case 409:\n return translate('errors.title-409');\n case 500:\n return translate('errors.title-500');\n default:\n return translate('errors.title-default');\n }\n });\n\n return {\n errorModal,\n close,\n reload,\n ...toRefs(state),\n getMessageFromErrorCode,\n getTitleFromErrorCode,\n };\n};\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=1&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=737df33a&lang=scss&scoped=true&\"","import {\n BuildingElementCalculation,\n BuildingItem,\n BuildingItemCalculation,\n DocumentationStatus,\n} from '@/models/building-element/interfaces';\nimport { useCalculation } from '@/modules/calculation';\nimport { computed } from '@vue/composition-api';\nimport { roundToTwoDecimals } from './common';\nimport { v4 as uuidv4 } from 'uuid';\nimport { useBatch } from '@/modules/batch';\n\nconst mapBuildingItemCalcProperties = (\n item: BuildingItem\n): BuildingItemCalculation => {\n const { getCalculationFactorValue } = useCalculation();\n const _itemCalc: BuildingItemCalculation = {\n Id: item.Id,\n BuildingElementId: item.BuildingElementId,\n Name: item.Name ?? null,\n Unit: item.Unit ?? null,\n DocumentationDownloaded: DocumentationStatus.Default,\n UnitForOrder: item.UnitForOrder ?? null,\n SortOrder: item.SortOrder ?? null,\n Amount: item.Amount ?? null,\n AmountPrUnit: item.AmountPrUnit ?? null,\n Price: item.Price,\n Factor1: item.Factor1,\n PriceListName: item.PriceListName,\n PriceListItemName: item.PriceListItemName ?? null,\n Comments: item.Comments,\n MileStone: item.MileStone,\n AmountAdjustment: item.AmountAdjustment,\n AccountNumber: item.AccountNumber,\n NOBBNumber: item.NOBBNumber,\n NS3420: item.NS3420,\n BaseTime: item.BaseTime,\n Precut: item.Precut,\n SurfaceAddition: item.SurfaceAddition,\n Transport: item.Transport,\n AmountControl: item.AmountControl,\n OpeningAddition: item.OpeningAddition,\n IsFDVExportSelected: item.IsFDVExportSelected ?? false,\n DeliveryOrder: item.DeliveryOrder,\n TransportationAddition: item.TransportationAddition,\n TimeEstimateName: item.TimeEstimateName,\n ItemWarnings: [],\n AmountCalculated: computed({\n get() {\n if (_itemCalc.Amount != null) {\n return _itemCalc.Amount;\n }\n\n if (_itemCalc.BuildingElement?.Amount != null) {\n if (_itemCalc.AmountAdjustment != null) {\n return (\n _itemCalc.BuildingElement.Amount * _itemCalc.AmountAdjustment\n );\n }\n return _itemCalc.BuildingElement.Amount;\n }\n\n return 0;\n },\n set(val) {\n _itemCalc.Amount = val;\n if (val != null) {\n _itemCalc.AmountAdjustment = null;\n }\n },\n }),\n IsAmountSet: computed(() => {\n let isSet = false;\n if (\n _itemCalc.AmountCalculated.value !== null &&\n _itemCalc.AmountCalculated.value !== 0\n ) {\n isSet = true;\n }\n return isSet;\n }),\n PreCutText: computed(() => {\n return _itemCalc.Precut ? 'P' : '';\n }),\n Factor2: computed(() => {\n let factor2: Nullable = null;\n let f2 = 0;\n\n if (_itemCalc.BuildingElement?.Project) {\n factor2 = getCalculationFactorValue(\n 2,\n _itemCalc.BuildingElement.Project\n );\n }\n\n if (_itemCalc.IsAmountSet.value) {\n if (_itemCalc.TimePrUnit.value !== null && factor2 !== null) {\n f2 = _itemCalc.TimePrUnit.value * factor2;\n }\n }\n\n return f2;\n }),\n Factor3: computed(() => {\n let factor3: Nullable = null;\n let prodSalary = 0;\n\n if (_itemCalc.BuildingElement?.Project) {\n factor3 = getCalculationFactorValue(\n 3,\n _itemCalc.BuildingElement.Project\n );\n }\n\n if (factor3 != null && _itemCalc.SumProductionSalary.value != null) {\n prodSalary = _itemCalc.SumProductionSalary.value * (factor3 - 1);\n }\n\n return prodSalary;\n }),\n Factor4: computed(() => {\n let factor4: Nullable = null;\n let prodSalary = 0;\n\n if (_itemCalc.BuildingElement?.Project) {\n factor4 = getCalculationFactorValue(\n 4,\n _itemCalc.BuildingElement.Project\n );\n }\n\n if (factor4 != null && _itemCalc.SumProductionSalary.value != null) {\n prodSalary = _itemCalc.SumProductionSalary.value * (factor4 - 1);\n }\n return prodSalary;\n }),\n Factor6: computed(() => {\n let factor6: Nullable = null;\n let selfCost = 0;\n\n if (_itemCalc.BuildingElement?.Project) {\n factor6 = getCalculationFactorValue(\n 6,\n _itemCalc.BuildingElement.Project\n );\n }\n\n if (\n factor6 !== null &&\n _itemCalc.SumSelfCostSalaryAndExpenses.value !== null\n ) {\n selfCost = _itemCalc.SumSelfCostSalaryAndExpenses.value * (factor6 - 1);\n }\n return selfCost;\n }),\n Factor7: computed(() => {\n let factor7: Nullable = null;\n let selfCost = 0;\n\n if (_itemCalc.BuildingElement?.Project) {\n factor7 = getCalculationFactorValue(\n 7,\n _itemCalc.BuildingElement.Project\n );\n }\n\n if (\n factor7 !== null &&\n _itemCalc.SumSelfCostMaterialsSubContractors.value !== null\n ) {\n selfCost =\n _itemCalc.SumSelfCostMaterialsSubContractors.value * (factor7 - 1);\n }\n return selfCost;\n }),\n Factor5Calculated: computed({\n get() {\n let factor = 1;\n\n if (_itemCalc.IsAmountSet.value && _itemCalc.Factor5 != null) {\n factor = _itemCalc.Factor5;\n } else if (_itemCalc.BuildingElement) {\n factor = _itemCalc.BuildingElement.Factor5Calculated?.value ?? 1;\n }\n\n return factor;\n },\n set(val) {\n _itemCalc.Factor5 = val;\n },\n }),\n SumSelfCostMaterialsSubContractors: computed(() => {\n let sum = 0;\n\n if (\n _itemCalc.IsAmountSet?.value &&\n _itemCalc.Price != null &&\n _itemCalc.AmountOfMaterials?.value != null &&\n _itemCalc.Factor5Calculated?.value != null\n ) {\n sum =\n _itemCalc.AmountOfMaterials.value *\n _itemCalc.Price *\n _itemCalc.Factor5Calculated.value;\n }\n\n return sum;\n }),\n Factor1Calculated: computed({\n get() {\n if (_itemCalc.Factor1 != null) {\n return _itemCalc.Factor1;\n } else if (\n _itemCalc.BuildingElement?.Factor1Calculated?.value != null\n ) {\n return _itemCalc.BuildingElement.Factor1Calculated.value;\n }\n\n return null;\n },\n set(val) {\n _itemCalc.Factor1 = val;\n },\n }),\n TimePrUnit: computed(() => {\n let baseTimeCalc = 0;\n if (\n _itemCalc.BaseTime != null &&\n _itemCalc.Factor1Calculated.value !== null\n ) {\n baseTimeCalc = _itemCalc.BaseTime * _itemCalc.Factor1Calculated.value;\n }\n\n return baseTimeCalc;\n }),\n SumHours: computed(() => {\n let hours = 0;\n if (\n _itemCalc.TimePrUnit.value !== null &&\n _itemCalc.AmountCalculated.value !== null\n ) {\n hours = _itemCalc.TimePrUnit.value * _itemCalc.AmountCalculated.value;\n }\n return hours;\n }),\n SumProductionSalary: computed(() => {\n let salary = 0;\n\n if (\n _itemCalc.Factor2.value !== null &&\n _itemCalc.AmountCalculated.value !== null\n ) {\n salary = _itemCalc.Factor2.value * _itemCalc.AmountCalculated.value;\n }\n return salary;\n }),\n SumSelfCostSalaryAndExpenses: computed(() => {\n if (\n _itemCalc.SumProductionSalary.value !== null &&\n _itemCalc.Factor3.value !== null &&\n _itemCalc.Factor4.value !== null\n ) {\n return (\n _itemCalc.SumProductionSalary.value +\n _itemCalc.Factor3.value +\n _itemCalc.Factor4.value\n );\n }\n return null;\n }),\n SumSalaryAndExpenses: computed(() => {\n let expenses = 0;\n\n if (\n _itemCalc.SumSelfCostSalaryAndExpenses.value !== null &&\n _itemCalc.Factor6.value !== null\n ) {\n expenses =\n _itemCalc.SumSelfCostSalaryAndExpenses.value +\n _itemCalc.Factor6.value;\n }\n\n return expenses;\n }),\n SumMaterialsUE: computed(() => {\n let sum = 0;\n\n if (_itemCalc.IsAmountSet.value) {\n if (\n _itemCalc.SumSelfCostMaterialsSubContractors.value !== null &&\n _itemCalc.Factor7.value !== null\n ) {\n sum =\n _itemCalc.SumSelfCostMaterialsSubContractors.value +\n _itemCalc.Factor7.value;\n }\n }\n\n return sum;\n }),\n SumTotal: computed(() => {\n const sumSAndE = _itemCalc.SumSalaryAndExpenses.value ?? 0;\n\n const sumMAndUE = _itemCalc.SumMaterialsUE.value ?? 0;\n\n return sumSAndE + sumMAndUE;\n }),\n UnitPrice: computed(() => {\n if (\n _itemCalc.AmountCalculated.value !== null &&\n _itemCalc.AmountCalculated.value !== 0 &&\n _itemCalc.SumTotal.value !== null &&\n _itemCalc.SumTotal.value !== 0\n ) {\n return (\n roundToTwoDecimals(_itemCalc.SumTotal.value) /\n roundToTwoDecimals(_itemCalc.AmountCalculated.value)\n );\n }\n return null;\n }),\n UnitPriceMaterials: computed(() => {\n if (_itemCalc.IsAmountSet.value) {\n if (\n _itemCalc.SumSelfCostMaterialsSubContractors.value !== null &&\n _itemCalc.SumSelfCostMaterialsSubContractors.value !== 0 &&\n _itemCalc.AmountCalculated.value !== null &&\n _itemCalc.AmountCalculated.value !== 0\n ) {\n return Number(\n _itemCalc.SumSelfCostMaterialsSubContractors.value /\n _itemCalc.AmountCalculated.value\n );\n }\n }\n return 0;\n }),\n AmountOfMaterials: computed(() => {\n if (\n _itemCalc.AmountPrUnit != null &&\n _itemCalc.AmountCalculated.value !== null\n ) {\n return _itemCalc.AmountCalculated.value * _itemCalc.AmountPrUnit;\n }\n return null;\n }),\n IsTimeEstimateAdded: computed(() => {\n return _itemCalc.NS3420 != null && _itemCalc.TimeEstimateName != null;\n }),\n IsTimeFactorAdded: computed(() => {\n return _itemCalc.TimeFactors ? _itemCalc.TimeFactors.length !== 0 : false;\n }),\n ReportPriceListName: computed(() => {\n return _itemCalc.PriceListItemName ?? '';\n }),\n SurfaceAdditionAmount: computed(() => {\n if (_itemCalc.BuildingElement?.AdditionItems) {\n const addition = _itemCalc.BuildingElement.AdditionItems.find(\n p => p.Name === 'Flatetillegg'\n );\n if (addition) {\n if (addition.Amount) {\n return addition.Amount;\n }\n }\n }\n return 0;\n }),\n OpeningAdditionAmount: computed(() => {\n if (_itemCalc.BuildingElement?.AdditionItems) {\n const addition = _itemCalc.BuildingElement.AdditionItems.find(\n p => p.Name === 'Åpninger'\n );\n if (addition) {\n if (addition.Amount != null) {\n return addition.Amount;\n }\n }\n }\n return 0;\n }),\n SumAdditions: computed(() => {\n let surface = 0;\n let opening = 0;\n\n if (\n _itemCalc.SurfaceAddition != null &&\n _itemCalc.SurfaceAdditionAmount.value != null &&\n _itemCalc.Factor1Calculated.value != null\n ) {\n surface =\n _itemCalc.SurfaceAdditionAmount.value *\n _itemCalc.SurfaceAddition *\n _itemCalc.Factor1Calculated.value;\n }\n\n if (\n _itemCalc.OpeningAddition != null &&\n _itemCalc.Factor1Calculated.value != null &&\n _itemCalc.OpeningAdditionAmount.value != null\n ) {\n opening =\n _itemCalc.OpeningAdditionAmount.value *\n _itemCalc.OpeningAddition *\n _itemCalc.Factor1Calculated.value;\n }\n return surface + opening;\n }),\n SumTime: computed(() => {\n let time = 0;\n\n if (\n _itemCalc.SumAdditions.value !== null &&\n _itemCalc.SumHours.value !== null\n ) {\n time = _itemCalc.SumAdditions.value + _itemCalc.SumHours.value;\n }\n\n return time;\n }),\n SumTotalWithAdditions: computed(() => {\n let hourCost = 0;\n let sumMAndUE = 0;\n\n let f2: Nullable = null;\n let f3: Nullable = null;\n let f4: Nullable = null;\n let f6: Nullable = null;\n\n let cost: Nullable = null;\n\n if (_itemCalc.BuildingElement?.Project) {\n f2 = getCalculationFactorValue(2, _itemCalc.BuildingElement.Project);\n f3 = getCalculationFactorValue(3, _itemCalc.BuildingElement.Project);\n f4 = getCalculationFactorValue(4, _itemCalc.BuildingElement.Project);\n f6 = getCalculationFactorValue(6, _itemCalc.BuildingElement.Project);\n }\n\n if (f2 !== null && f3 !== null && f4 !== null && f6 !== null) {\n cost = f2 * (f3 + f4 - 1) * f6;\n }\n\n if (_itemCalc.SumTime.value != null && cost != null) {\n hourCost = _itemCalc.SumTime.value * cost;\n }\n\n if (_itemCalc.SumMaterialsUE.value != null) {\n sumMAndUE = _itemCalc.SumMaterialsUE.value;\n }\n\n return hourCost + sumMAndUE;\n }),\n UnitPriceWithAdditions: computed(() => {\n let sumTotal = 0;\n let amountCalc = 0;\n\n if (_itemCalc.SumTotalWithAdditions.value != null) {\n sumTotal = roundToTwoDecimals(_itemCalc.SumTotalWithAdditions.value);\n }\n\n if (_itemCalc.AmountCalculated.value != null) {\n amountCalc = roundToTwoDecimals(_itemCalc.AmountCalculated.value);\n }\n\n if (sumTotal !== 0 && amountCalc !== 0) {\n return sumTotal / amountCalc;\n }\n\n return 0;\n }),\n ProjectCost: computed(() => {\n let factor2: Nullable = null;\n let factor3: Nullable = null;\n\n if (_itemCalc.BuildingElement?.Project) {\n factor2 = getCalculationFactorValue(\n 2,\n _itemCalc.BuildingElement.Project\n );\n factor3 = getCalculationFactorValue(\n 3,\n _itemCalc.BuildingElement.Project\n );\n }\n\n let time = 0;\n let selfcost = 0;\n\n if (\n factor2 !== null &&\n factor3 !== null &&\n _itemCalc.SumTime.value !== null\n ) {\n time = _itemCalc.SumTime.value * factor2 * factor3;\n }\n\n if (_itemCalc.SumSelfCostMaterialsSubContractors.value !== null) {\n selfcost = _itemCalc.SumSelfCostMaterialsSubContractors.value;\n }\n\n return time + selfcost;\n }),\n SumProfit: computed(() => {\n let profit = 0;\n\n if (\n _itemCalc.Factor6.value !== null &&\n _itemCalc.Factor7.value !== null\n ) {\n profit = _itemCalc.Factor6.value + _itemCalc.Factor7.value;\n }\n\n return profit;\n }),\n SumSelfCost: computed(() => {\n let cost = 0;\n if (\n _itemCalc.SumSelfCostMaterialsSubContractors.value !== null &&\n _itemCalc.SumSelfCostSalaryAndExpenses.value !== null\n ) {\n cost =\n _itemCalc.SumSelfCostSalaryAndExpenses.value +\n _itemCalc.SumSelfCostMaterialsSubContractors.value;\n }\n return cost;\n }),\n SumSalaryAndSocialCost: computed(() => {\n let cost = 0;\n\n if (\n _itemCalc.Factor3.value !== null &&\n _itemCalc.SumProductionSalary.value !== null\n ) {\n cost = _itemCalc.SumProductionSalary.value + _itemCalc.Factor3.value;\n }\n return cost;\n }),\n DeviationAmount: computed(() => {\n if (_itemCalc.AmountControl != null) {\n return (\n _itemCalc.AmountControl - (_itemCalc.AmountCalculated.value ?? 0)\n );\n }\n return 0;\n }),\n DeviationPrice: computed(() => {\n if (_itemCalc.DeviationAmount.value !== null) {\n return (\n roundToTwoDecimals(_itemCalc.DeviationAmount.value) *\n (_itemCalc.UnitPrice.value ?? 0)\n );\n }\n return 0;\n }),\n SumMargin: computed(() => {\n let margin = 0;\n\n if (\n _itemCalc.Factor4.value != null &&\n _itemCalc.SumProfit.value != null\n ) {\n margin = _itemCalc.Factor4.value + _itemCalc.SumProfit.value;\n }\n return margin;\n }),\n Items: [],\n TimeFactors: [],\n IsHighLighted: false,\n IsRecentlyAdded: false,\n IsSelected: false,\n IsModifiedRecently: false,\n PriceMatch: null,\n Status: null,\n };\n\n return _itemCalc;\n};\n\nexport const removeTimeEstimate = (item: BuildingItemCalculation) => {\n item.NS3420 = null;\n item.BaseTime = 0;\n item.SurfaceAddition = 0;\n item.TransportationAddition = 0;\n item.OpeningAddition = 0;\n item.TimeEstimateName = null;\n item.IsModifiedRecently = true;\n};\n\nexport const createNewDefaultFromElement = (\n elementId: string\n): BuildingItem => {\n const item: BuildingItem = {\n Id: uuidv4(),\n AmountPrUnit: 1,\n BaseTime: 0,\n OpeningAddition: 0,\n SurfaceAddition: 0,\n TransportationAddition: 0,\n Precut: false,\n Price: 0,\n Name: '',\n BuildingElementId: elementId,\n AccountNumber: null,\n Amount: null,\n AmountAdjustment: null,\n AmountControl: null,\n Comments: null,\n Created: null,\n DeliveryOrder: null,\n Factor1: null,\n Factor5: null,\n IsFDVExportSelected: false,\n LastModified: null,\n MileStone: null,\n NOBBNumber: null,\n NS3420: null,\n PriceListItemName: null,\n PriceListName: null,\n SortOrder: null,\n TimeEstimateName: null,\n Transport: null,\n Unit: null,\n UnitForOrder: null,\n };\n\n return item;\n};\n\nexport const createNewDefaultBIC = (\n element: BuildingElementCalculation,\n elementId: string\n): BuildingItemCalculation => {\n const item: BuildingItem = createNewDefaultFromElement(elementId);\n const newCalcItem = mapBuildingItemCalcProperties(item);\n newCalcItem.BuildingElement = element;\n newCalcItem.BuildingElementId = element.Id;\n newCalcItem.TimeFactors = [];\n\n return newCalcItem;\n};\n\nexport const onBuildingItemAdjustmentChange = (\n item: BuildingItemCalculation\n) => {\n const { registerItemSaveChangesWithAdditionAndParent } = useBatch();\n item.Amount = null;\n registerItemSaveChangesWithAdditionAndParent(item);\n};\n\nexport const buildItemCalculations = (\n items: Array,\n element: BuildingElementCalculation\n): Array => {\n const _itemsCalc: Array = [];\n items.forEach(item => {\n const itemCalc = mapBuildingItemCalcProperties(item);\n itemCalc.BuildingElement = element;\n itemCalc.BuildingElementId = element.Id;\n _itemsCalc.push(itemCalc);\n });\n\n return _itemsCalc;\n};\n\nexport const calculateItemWarnings = (element: BuildingElementCalculation) => {\n if (element.BuildingItems && element.BuildingItems.length > 0) {\n element.BuildingItems.forEach(item => {\n item.ItemWarnings = [];\n if (item.AmountAdjustment) {\n item.ItemWarnings.push('info.amount-adjusted');\n }\n\n if (\n !item.AmountPrUnit ||\n item.AmountPrUnit === 0 ||\n item.AmountPrUnit === 1\n ) {\n item.ItemWarnings.push('info.amount-waste');\n }\n\n if (!item.NOBBNumber) {\n item.ItemWarnings.push('info.no-nobbno');\n }\n });\n }\n};\n\nexport const instanceOfBuildingItemCalculation = (\n object: BuildingItem | BuildingItemCalculation\n): object is BuildingItemCalculation => {\n return 'IsModifiedRecently' in object;\n};\n\nexport const mapBuildingItemCalcToBuildingItem = (\n itemCalc: BuildingItemCalculation\n): BuildingItem => {\n return {\n Amount: itemCalc.Amount,\n AmountAdjustment: itemCalc.AmountAdjustment,\n AmountPrUnit: itemCalc.AmountPrUnit,\n BuildingElementId: itemCalc.BuildingElementId ?? null,\n Comments: itemCalc.Comments,\n Created: itemCalc.Created,\n Factor1: itemCalc.Factor1,\n Id: itemCalc.Id,\n LastModified: itemCalc.LastModified,\n Name: itemCalc.Name,\n Price: itemCalc.Price,\n SortOrder: itemCalc.SortOrder,\n Unit: itemCalc.Unit,\n AccountNumber: itemCalc.AccountNumber,\n AmountControl: itemCalc.AmountControl,\n BaseTime: itemCalc.BaseTime,\n DeliveryOrder: itemCalc.DeliveryOrder,\n Factor5: itemCalc.Factor5,\n IsFDVExportSelected: itemCalc.IsFDVExportSelected,\n MileStone: itemCalc.MileStone,\n NOBBNumber: itemCalc.NOBBNumber,\n NS3420: itemCalc.NS3420,\n OpeningAddition: itemCalc.OpeningAddition,\n Precut: itemCalc.Precut,\n PriceListItemName: itemCalc.PriceListItemName,\n PriceListName: itemCalc.PriceListName,\n SurfaceAddition: itemCalc.SurfaceAddition,\n TimeEstimateName: itemCalc.TimeEstimateName,\n Transport: itemCalc.Transport,\n TransportationAddition: itemCalc.TransportationAddition,\n UnitForOrder: itemCalc.UnitForOrder,\n };\n};\n","export enum ProffesionType {\n ConcreteWork = '05',\n Masonry = '09',\n GroundWork = '03',\n Carpentry = '12',\n Rigs = '01',\n PainterWork = '21',\n SubContractors = '99',\n}\n\nexport enum VersionNoteType {\n New,\n Change,\n Remove,\n Fixed,\n}\n\nexport enum ProjectStartFilter {\n Recent,\n MyProjects,\n All,\n}\n\nexport enum RowColors {\n Default,\n Red,\n Orange,\n Green,\n}\n\nexport enum RowColorsElement {\n Default = 0,\n Orange = 3,\n Green = 4,\n Red = 5,\n}\n\nexport enum CalculationColumnView {\n Calculation,\n HourlyConsumption,\n Economy,\n Materials,\n Delivery,\n}\n\nexport enum ExportType {\n JSON,\n XML,\n}\n\nexport enum ApplicationSource {\n External,\n Kalk2010,\n KalkOnline,\n}\n\nexport enum AddItemMethod {\n CreateNew = 1,\n FromTimeBook = 2,\n FromPriceBook = 3,\n FromCalculation = 4,\n FromLibrary = 5,\n FromNobb = 6,\n}\n\nexport enum CalculationState {\n Idle,\n UnsavedChanges,\n Updated,\n Problem,\n}\n\nexport enum BatchType {\n Save,\n Insert,\n Delete,\n}\n\nexport enum PublicationType {\n Hmf,\n Fdv,\n Pre,\n Bro,\n Ser,\n Man,\n Mlj,\n Hms,\n Sds,\n Ifc,\n Epd,\n Yte,\n Breeam,\n Mtg,\n Esds,\n Vb,\n Vid,\n Clp,\n Ecop,\n TekG,\n Prods,\n Cpr,\n Eta,\n}\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=2&id=a4574ab0&scoped=true&lang=css&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=60f59243&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/image-placeholder.332500dc.png\";","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=9b52892a&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=2e2a0756&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=3faa83fe&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=27bfd2c9&lang=scss&scoped=true&\"","import { defaultLocaleString } from '@/localization';\nimport {\n BuildingElementCalculation,\n BuildingItemCalculation,\n} from '@/models/building-element/interfaces';\nimport {\n Calculation,\n ProjectCalculation,\n} from '@/models/calculation/interfaces';\nimport { useCalculation } from '@/modules/calculation';\nimport { computed } from '@vue/composition-api';\n\nexport const mapCalculationProperties = (\n calc: Calculation\n): ProjectCalculation => {\n const _calc: ProjectCalculation = {\n ConcurrencyToken: calc.ConcurrencyToken,\n Id: calc.Id,\n IsLocked: calc.IsLocked,\n Profession: calc.Profession,\n Hours: calc.Hours,\n Factors: calc.Factors,\n Name: calc.Name,\n MaterialsSubContractors: calc.MaterialsSubContractors,\n MaterialsUE: calc.MaterialsUE,\n SelfCost: calc.SelfCost,\n Total: calc.Total,\n Profit: calc.Profit,\n AmountControl: calc.AmountControl,\n CostSoFar: calc.CostSoFar,\n BuildingElements: [],\n Children: [],\n HasUnsavedChanges: false,\n IsFDVExportSelected: false,\n SalaryCostAdjusted: null,\n SalaryCostAdjustedCalculated: null,\n SelfCostMaterialsSubContractors: null,\n };\n\n return _calc;\n};\n\nexport const setComputedProperties = (calc: ProjectCalculation) => {\n const { getCalculationFactorValue } = useCalculation();\n calc.HoursAdjusted = computed(() => {\n let adjusted = 0;\n\n if (calc.BuildingElements) {\n calc.BuildingElements.forEach(ele => {\n adjusted += ele.HoursAdjusted ?? 0;\n });\n }\n return adjusted;\n });\n calc.HoursTotal = computed(() => {\n let total = 0;\n\n if (\n calc.Hours != null &&\n calc.HoursAdjusted?.value != null &&\n calc.HoursAdjusted.value > 0\n ) {\n total = calc.Hours + calc.HoursAdjusted.value;\n }\n\n return total;\n });\n calc.HourCostToCustomer = computed(() => {\n let cost: Nullable = null;\n\n const f2 = getCalculationFactorValue(2, calc);\n const f3 = getCalculationFactorValue(3, calc);\n const f4 = getCalculationFactorValue(4, calc);\n const f6 = getCalculationFactorValue(6, calc);\n\n if (f2 && f3 && f4 && f6) {\n cost = f2 * (f3 - f4 - 1) * f6;\n }\n\n return cost;\n });\n calc.SumAmountControl = computed(() => {\n let amountControl = 0;\n\n if (calc.BuildingElements) {\n calc.BuildingElements.forEach(ele => {\n if (ele.SumAmountControl?.value != null)\n amountControl += ele.SumAmountControl.value;\n });\n }\n\n return amountControl;\n });\n calc.SumSalaryCostAdjusted = computed(() => {\n let sumAdjusted = 0;\n\n if (calc.BuildingElements) {\n calc.BuildingElements.forEach(ele => {\n if (ele.SalaryCostAdjustedCalculated?.value != null)\n sumAdjusted += ele.SalaryCostAdjustedCalculated.value;\n });\n }\n\n return sumAdjusted;\n });\n calc.SumSalaryAndExpensesAdjusted = computed(() => {\n let sum = 0;\n\n if (calc.BuildingElements) {\n calc.BuildingElements.forEach(ele => {\n if (ele.SumSalaryAndExpensesAdjusted?.value != null)\n sum += ele.SumSalaryAndExpensesAdjusted.value;\n });\n }\n\n return sum;\n });\n calc.SumSalaryAndSocialCost = computed(() => {\n let sum = 0;\n\n if (calc.BuildingElements) {\n calc.BuildingElements.forEach(ele => {\n if (ele.SumSalaryAndSocialCost?.value != null)\n sum += ele.SumSalaryAndSocialCost.value;\n });\n }\n\n return sum;\n });\n calc.SumMaterialsAndCostAdjusted = computed(() => {\n let adjusted = 0;\n if (calc.BuildingElements) {\n calc.BuildingElements.forEach(ele => {\n if (ele.SumMaterialsAndCostAdjusted?.value != null)\n adjusted += ele.SumMaterialsAndCostAdjusted.value;\n });\n }\n return adjusted;\n });\n calc.MaterialCostAdjusted = computed(() => {\n let materialCost = 0;\n if (calc.BuildingElements) {\n calc.BuildingElements.forEach(ele => {\n materialCost += ele.MaterialCostAdjusted ?? 0;\n });\n }\n return materialCost;\n });\n calc.SumCorrections = computed(() => {\n let sum = 0;\n\n if (\n calc.MaterialCostAdjusted?.value != null &&\n calc.MaterialCostAdjusted.value > 0 &&\n calc.SalaryCostAdjusted != null\n ) {\n sum = calc.MaterialCostAdjusted.value + calc.SalaryCostAdjusted;\n }\n\n return sum;\n });\n calc.SumTotalCorrected = computed(() => {\n let sum = 0;\n\n if (\n calc.Total != null &&\n calc.SumCorrections?.value != null &&\n calc.SumCorrections.value > 0\n ) {\n sum = calc.Total + calc.SumCorrections.value;\n }\n\n return sum;\n });\n calc.SumTotal = computed(() => {\n let sum = 0;\n if (calc.BuildingElements) {\n calc.BuildingElements.forEach(ele => {\n if (ele.SumTotal?.value != null) sum += ele.SumTotal.value;\n });\n }\n return sum;\n });\n calc.SumProfitCorrected = computed(() => {\n let sum = 0;\n\n if (\n calc.Profit != null &&\n calc.SumCorrections?.value != null &&\n calc.SumCorrections.value > 0\n ) {\n sum = calc.Profit - calc.SumCorrections.value;\n }\n\n return sum;\n });\n calc.SumMarginCorrected = computed(() => {\n let sum = 0;\n\n if (\n calc.SumFactor4?.value &&\n calc.SumFactor4.value != null &&\n calc.SumFactor4.value > 0 &&\n calc.SumProfitCorrected?.value != null &&\n calc.SumProfitCorrected.value > 0\n ) {\n sum = calc.SumFactor4.value + calc.SumProfitCorrected.value;\n }\n\n return sum;\n });\n calc.CoverageCorrected = computed(() => {\n let sum = 0;\n\n if (\n calc.SumTotal?.value != null &&\n calc.SumTotal.value > 0 &&\n calc.SumMarginCorrected != null &&\n calc.SumMarginCorrected.value > 0\n ) {\n sum = (calc.SumTotal.value / calc.SumMarginCorrected.value) * 100;\n }\n\n return sum;\n });\n calc.SumHours = computed(() => {\n let hours = 0;\n if (calc.BuildingElements) {\n calc.BuildingElements.forEach(ele => {\n if (ele.SumHours?.value != null) hours += ele.SumHours.value;\n });\n }\n return hours;\n });\n calc.SumMaterialsUE = computed(() => {\n let sum = 0;\n if (calc.BuildingElements) {\n calc.BuildingElements.forEach(ele => {\n if (ele.SumMaterialsUE?.value) sum += ele.SumMaterialsUE.value;\n });\n }\n return sum;\n });\n calc.SumSelfCostMaterialsSubContractors = computed(() => {\n let sum = 0;\n if (calc.BuildingElements) {\n calc.BuildingElements.forEach(ele => {\n if (ele.SumSelfCostMaterialsSubContractors?.value)\n sum += ele.SumSelfCostMaterialsSubContractors.value;\n });\n }\n return sum;\n });\n calc.SumSelfCost = computed(() => {\n let sum = 0;\n if (calc.BuildingElements) {\n calc.BuildingElements.forEach(ele => {\n if (ele.SumSelfCost?.value != null) sum += ele.SumSelfCost.value;\n });\n }\n return sum;\n });\n calc.SumProfit = computed(() => {\n let sum = 0;\n if (calc.BuildingElements) {\n calc.BuildingElements.forEach(ele => {\n if (ele.SumProfit?.value != null) sum += ele.SumProfit.value;\n });\n }\n return sum;\n });\n calc.SumMargin = computed(() => {\n let margin = 0;\n\n if (calc.BuildingElements) {\n margin = calc.BuildingElements.reduce((prev, cur) => {\n return prev + (cur.SumMargin.value ?? 0);\n }, 0);\n }\n return margin;\n });\n calc.Coverage = computed(() => {\n let sum = 0;\n\n if (\n calc.SumTotal?.value != null &&\n calc.SumTotal.value > 0 &&\n calc.SumMargin != null &&\n calc.SumMargin.value > 0\n ) {\n sum = (calc.SumMargin.value / calc.SumTotal.value) * 100;\n }\n\n return sum;\n });\n calc.SumFactor4 = computed(() => {\n let sum = 0;\n if (calc.BuildingElements) {\n sum = calc.BuildingElements.reduce((prev, cur) => {\n return prev + (cur.Factor4?.value ?? 0);\n }, 0);\n }\n return sum;\n });\n\n calc.SumTotalEnterprise = computed(() => {\n let sum = 0;\n if (calc.Children) {\n calc.Children.forEach(child => {\n sum += child.Total ?? 0;\n });\n }\n return sum;\n });\n\n calc.ActiveBuildingElements = computed(() => {\n let activeElements: Array = [];\n\n activeElements = calc.BuildingElements.filter(\n element => element.IsAmountSet.value\n );\n\n if (activeElements) {\n activeElements = activeElements.sort((a, b) =>\n (a.SortOrder ?? 0) > (b.SortOrder ?? 0)\n ? 1\n : (b.SortOrder ?? 0) > (a.SortOrder ?? 0)\n ? -1\n : 0\n );\n }\n\n return activeElements;\n });\n\n calc.ActiveBuildingItems = computed(() => {\n let activeItems: Array = [];\n if (calc.BuildingElements) {\n calc.BuildingElements.forEach(element => {\n let filteredItems: Array = [];\n\n filteredItems = element.BuildingItems.filter(\n item =>\n item.IsAmountSet.value && item.NOBBNumber && item.PriceListItemName\n );\n\n if (filteredItems) {\n filteredItems = filteredItems.sort((a, b) =>\n (a.SortOrder ?? 0) > (b.SortOrder ?? 0)\n ? 1\n : (b.SortOrder ?? 0) > (a.SortOrder ?? 0)\n ? -1\n : 0\n );\n\n activeItems = activeItems.concat(filteredItems);\n }\n });\n }\n return activeItems;\n });\n\n calc.AllBuildingItems = computed(() => {\n let activeItems: Array = [];\n\n if (calc.ActiveBuildingElements?.value) {\n calc.ActiveBuildingElements.value.forEach(element => {\n let filteredItems: Array = [];\n\n filteredItems = element.BuildingItems.filter(\n item => item.IsAmountSet.value\n );\n\n if (filteredItems) {\n filteredItems = filteredItems.sort((a, b) =>\n (a.SortOrder ?? 0) > (b.SortOrder ?? 0)\n ? 1\n : (b.SortOrder ?? 0) > (a.SortOrder ?? 0)\n ? -1\n : 0\n );\n\n activeItems = activeItems.concat(filteredItems);\n }\n });\n }\n return activeItems;\n });\n};\n\nexport const sumAmountControl = (calc: ProjectCalculation) => {\n let amountControl = 0;\n\n if (calc.BuildingElements) {\n calc.BuildingElements.forEach(ele => {\n if (ele.SumAmountControl?.value != null)\n amountControl += ele.SumAmountControl.value;\n });\n }\n\n return amountControl;\n};\n\nexport const sumSalaryCostAdjusted = (calc: ProjectCalculation) => {\n let sumAdjusted = 0;\n\n if (calc.BuildingElements) {\n calc.BuildingElements.forEach(ele => {\n if (ele.SalaryCostAdjustedCalculated?.value != null)\n sumAdjusted += ele.SalaryCostAdjustedCalculated.value;\n });\n }\n\n return sumAdjusted;\n};\n\nexport const sumSalaryAndExpensesAdjusted = (calc: ProjectCalculation) => {\n let sum = 0;\n\n if (calc.BuildingElements) {\n calc.BuildingElements.forEach(ele => {\n if (ele.SumSalaryAndExpensesAdjusted?.value != null)\n sum += ele.SumSalaryAndExpensesAdjusted.value;\n });\n }\n\n return sum;\n};\n\nexport const sumSalaryAndSocialCost = (calc: ProjectCalculation) => {\n let sum = 0;\n\n if (calc.BuildingElements) {\n calc.BuildingElements.forEach(ele => {\n if (ele.SumSalaryAndSocialCost?.value)\n sum += ele.SumSalaryAndSocialCost.value;\n });\n }\n\n return sum;\n};\n\nexport const sumMaterialsAndCostAdjusted = (calc: ProjectCalculation) => {\n let adjusted = 0;\n if (calc.BuildingElements) {\n calc.BuildingElements.forEach(ele => {\n if (ele.SumMaterialsAndCostAdjusted?.value)\n adjusted += ele.SumMaterialsAndCostAdjusted.value;\n });\n }\n return adjusted;\n};\n\nexport const materialCostAdjusted = (calc: ProjectCalculation) => {\n let materialCost = 0;\n if (calc.BuildingElements) {\n calc.BuildingElements.forEach(ele => {\n materialCost += ele.MaterialCostAdjusted ?? 0;\n });\n }\n return materialCost;\n};\n\nexport const sumCorrections = (calc: ProjectCalculation) => {\n let sum = 0;\n\n if (\n calc.MaterialCostAdjusted != null &&\n calc.MaterialCostAdjusted.value > 0 &&\n calc.SalaryCostAdjusted != null\n ) {\n sum = calc.MaterialCostAdjusted.value + calc.SalaryCostAdjusted;\n }\n\n return sum;\n};\n\nexport const sumTotalCorrected = (calc: ProjectCalculation) => {\n let sum = 0;\n\n if (\n calc.Total &&\n calc.SumCorrections != null &&\n calc.SumCorrections.value > 0\n ) {\n sum = calc.Total + calc.SumCorrections.value;\n }\n\n return sum;\n};\n\nexport const sumTotal = (calc: ProjectCalculation) => {\n let sum = 0;\n if (calc.BuildingElements) {\n calc.BuildingElements.forEach(ele => {\n if (ele.SumTotal?.value != null) sum += ele.SumTotal.value;\n });\n }\n return sum;\n};\n\nexport const sumProfitCorrected = (calc: ProjectCalculation) => {\n let sum = 0;\n\n if (\n calc.Profit != null &&\n calc.SumCorrections != null &&\n calc.SumCorrections.value > 0\n ) {\n sum = calc.Profit - calc.SumCorrections.value;\n }\n\n return sum;\n};\n\nexport const sumMarginCorrected = (calc: ProjectCalculation) => {\n let sum = 0;\n\n if (\n calc.SumFactor4 &&\n calc.SumFactor4.value &&\n calc.SumFactor4.value > 0 &&\n calc.SumProfitCorrected &&\n calc.SumProfitCorrected.value > 0\n ) {\n sum = calc.SumFactor4.value + calc.SumProfitCorrected.value;\n }\n\n return sum;\n};\n\nexport const coverageCorrected = (calc: ProjectCalculation) => {\n let sum = 0;\n\n if (\n calc.SumTotal?.value != null &&\n calc.SumTotal.value > 0 &&\n calc.SumMarginCorrected &&\n calc.SumMarginCorrected.value > 0\n ) {\n sum = (calc.SumMarginCorrected.value / calc.SumTotal.value) * 100;\n }\n\n return sum;\n};\n\nexport const sumCoverage = (calc: ProjectCalculation) => {\n let sum = 0;\n\n if (\n calc.SumTotal?.value != null &&\n calc.SumTotal.value > 0 &&\n calc.SumMargin != null &&\n calc.SumMargin.value > 0\n ) {\n sum = (calc.SumMargin.value / calc.SumTotal.value) * 100;\n }\n\n return sum;\n};\n\nexport const safePercentage = (fraction1: number, fraction2: number) => {\n let sum = 0;\n\n if (\n fraction1 != null &&\n fraction1 > 0 &&\n fraction2 != null &&\n fraction2 > 0\n ) {\n sum = (fraction2 / fraction1) * 100;\n }\n\n return sum;\n};\n\nexport const sumHours = (calc: ProjectCalculation) => {\n let hours = 0;\n if (calc.BuildingElements) {\n calc.BuildingElements.forEach(ele => {\n if (ele.SumHours.value != null) hours += ele.SumHours.value;\n });\n }\n return hours;\n};\n\nexport const sumMaterialsUE = (calc: ProjectCalculation) => {\n let sum = 0;\n if (calc.BuildingElements) {\n calc.BuildingElements.forEach(ele => {\n if (ele.SumMaterialsUE?.value) sum += ele.SumMaterialsUE.value;\n });\n }\n return sum;\n};\n\nexport const sumSelfCostMaterialsSubContractors = (\n calc: ProjectCalculation\n) => {\n let sum = 0;\n if (calc.BuildingElements) {\n calc.BuildingElements.forEach(ele => {\n if (ele.SumSelfCostMaterialsSubContractors?.value)\n sum += ele.SumSelfCostMaterialsSubContractors.value;\n });\n }\n return sum;\n};\n\nexport const sumSelfCost = (calc: ProjectCalculation) => {\n let sum = 0;\n if (calc.BuildingElements) {\n calc.BuildingElements.forEach(ele => {\n if (ele.SumSelfCost?.value != null) sum += ele.SumSelfCost.value;\n });\n }\n return sum;\n};\n\nexport const sumProfit = (calc: ProjectCalculation) => {\n let sum = 0;\n if (calc.BuildingElements) {\n calc.BuildingElements.forEach(ele => {\n if (ele.SumProfit?.value != null) sum += ele.SumProfit.value;\n });\n }\n return sum;\n};\n\nexport const sumFactor4 = (calc: ProjectCalculation) => {\n let sum = 0;\n if (calc.BuildingElements) {\n sum = calc.BuildingElements.reduce((prev, cur) => {\n return prev + (cur.Factor4.value ?? 0);\n }, 0);\n }\n return sum;\n};\n\nexport const sumMargin = (calc: ProjectCalculation) => {\n let margin = 0;\n\n if (calc.BuildingElements) {\n margin = calc.BuildingElements.reduce((prev, cur) => {\n return prev + (cur.SumMargin.value ?? 0);\n }, 0);\n }\n return margin;\n};\n\nexport const sumTotalEnterprise = (calc: ProjectCalculation) => {\n let sum = 0;\n if (calc.Children) {\n calc.Children.forEach(child => {\n sum += child.Total ?? 0;\n });\n }\n return sum;\n};\n\nexport const activeBuildingItems = (calc: ProjectCalculation) => {\n let activeItems: Array = [];\n if (calc.BuildingElements) {\n calc.BuildingElements.forEach(element => {\n let filteredItems: Array = [];\n\n filteredItems = element.BuildingItems.filter(\n item => item.IsAmountSet.value\n );\n\n if (filteredItems) {\n filteredItems = filteredItems.sort((a, b) =>\n (a.SortOrder ?? 0) > (b.SortOrder ?? 0)\n ? 1\n : (b.SortOrder ?? 0) > (a.SortOrder ?? 0)\n ? -1\n : 0\n );\n\n activeItems = activeItems.concat(filteredItems);\n }\n });\n }\n return activeItems;\n};\n\nexport const allBuildingItems = (calc: ProjectCalculation) => {\n let activeItems: Array = [];\n\n if (calc.ActiveBuildingElements?.value) {\n calc.ActiveBuildingElements.value.forEach(element => {\n let filteredItems: Array = [];\n\n filteredItems = element.BuildingItems.filter(\n item => item.IsAmountSet.value\n );\n\n if (filteredItems) {\n filteredItems = filteredItems.sort((a, b) =>\n (a.SortOrder ?? 0) > (b.SortOrder ?? 0)\n ? 1\n : (b.SortOrder ?? 0) > (a.SortOrder ?? 0)\n ? -1\n : 0\n );\n\n activeItems = activeItems.concat(filteredItems);\n }\n });\n }\n return activeItems;\n};\n\nexport const getCalculationTotalByProp = (\n propName: string,\n calc: ProjectCalculation\n) => {\n const { getCalculationFactorValue } = useCalculation();\n const calcFactor1 = getCalculationFactorValue(1, calc);\n const calcFactor2 = getCalculationFactorValue(2, calc);\n const calcFactor3 = getCalculationFactorValue(3, calc);\n const calcFactor4 = getCalculationFactorValue(4, calc);\n const calcFactor6 = getCalculationFactorValue(6, calc);\n const calcFactor7 = getCalculationFactorValue(7, calc);\n switch (propName) {\n case 'SumTotal':\n return sumTotal(calc).toLocaleString(defaultLocaleString, {\n maximumFractionDigits: 0,\n });\n case 'SumHours':\n return sumHours(calc).toLocaleString(defaultLocaleString, {\n maximumFractionDigits: 2,\n });\n case 'Factor1':\n return (\n calcFactor1 &&\n calcFactor1.toLocaleString(defaultLocaleString, {\n maximumFractionDigits: 2,\n })\n );\n case 'Factor2':\n return (\n calcFactor2 &&\n calcFactor2.toLocaleString(defaultLocaleString, {\n maximumFractionDigits: 2,\n })\n );\n case 'Factor3':\n return (\n calcFactor3 &&\n calcFactor3.toLocaleString(defaultLocaleString, {\n maximumFractionDigits: 2,\n })\n );\n case 'Factor4':\n return (\n calcFactor4 &&\n calcFactor4.toLocaleString(defaultLocaleString, {\n maximumFractionDigits: 2,\n })\n );\n case 'Factor6':\n return (\n calcFactor6 &&\n calcFactor6.toLocaleString(defaultLocaleString, {\n maximumFractionDigits: 2,\n })\n );\n case 'Factor7':\n return (\n calcFactor7 &&\n calcFactor7.toLocaleString(defaultLocaleString, {\n maximumFractionDigits: 2,\n })\n );\n case 'SumMaterialsUE':\n return sumMaterialsUE(calc).toLocaleString(defaultLocaleString, {\n maximumFractionDigits: 0,\n });\n case 'SumSelfCostMaterialsSubContractors':\n return sumSelfCostMaterialsSubContractors(calc).toLocaleString(\n defaultLocaleString,\n {\n maximumFractionDigits: 0,\n }\n );\n }\n};\n\nexport const getCalculationTotalTypography = (propName: string) => {\n switch (propName) {\n case 'SumTotal':\n return 'font-weight-medium ma-1 font-italic green--text text--lighten-4';\n case 'SumHours':\n return 'font-weight-medium ma-1 font-italic orange--text text--lighten-4';\n case 'Factor1':\n return 'font-weight-medium ma-1 font-italic blue--text text--lighten-4';\n case 'Factor2':\n return 'font-weight-medium ma-1 font-italic blue--text text--lighten-4';\n case 'Factor3':\n return 'font-weight-medium ma-1 font-italic blue--text text--lighten-4';\n case 'Factor4':\n return 'font-weight-medium ma-1 font-italic blue--text text--lighten-4';\n case 'Factor6':\n return 'font-weight-medium ma-1 font-italic blue--text text--lighten-4';\n case 'Factor7':\n return 'font-weight-medium ma-1 font-italic blue--text text--lighten-4';\n case 'SumMaterialsUE':\n return 'font-weight-medium ma-1 font-italic purple--text text--lighten-4';\n case 'SumSelfCostMaterialsSubContractors':\n return 'font-weight-medium ma-1 font-italic purple--text text--lighten-4';\n }\n};\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=761d9f78&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Calculation.vue?vue&type=style&index=0&id=e1b01c88&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-list-item',{class:_vm.header ? 'profession-header' : 'profession',attrs:{\"two-line\":\"\"}},[(_vm.iconLeft)?_c('v-list-item-avatar',[_c('v-icon',{class:_vm.color ? (_vm.color + \" lighten-5\") : 'green lighten-5',attrs:{\"color\":_vm.color ? _vm.color : 'secondary'}},[_vm._v(\" \"+_vm._s(_vm.getIconByProfessionCode(_vm.code))+\" \")])],1):_vm._e(),_c('v-list-item-content',[_c('v-list-item-title',{domProps:{\"textContent\":_vm._s(_vm.getNameByProfessionCode(_vm.code))}}),_c('v-list-item-subtitle',{domProps:{\"textContent\":_vm._s(_vm.$t('factors.profession'))}})],1),(!_vm.iconLeft)?_c('v-list-item-avatar',[_c('v-icon',{class:_vm.color ? (_vm.color + \" lighten-5\") : 'green lighten-5',attrs:{\"color\":_vm.color ? _vm.color : 'secondary'}},[_vm._v(\" \"+_vm._s(_vm.getIconByProfessionCode(_vm.code))+\" \")])],1):_vm._e(),(_vm.count)?_c('v-badge',{staticClass:\"prof-badge\",attrs:{\"color\":_vm.color,\"right\":\"\",\"content\":_vm.count}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\nimport {\n getIconByProfessionCode,\n getNameByProfessionCode,\n} from '@/helpers/common';\n\nexport default defineComponent({\n props: {\n code: {\n type: String,\n },\n iconLeft: {\n type: Boolean,\n },\n header: {\n type: Boolean,\n },\n count: {\n type: Number,\n },\n color: {\n type: String,\n },\n },\n setup() {\n return {\n getIconByProfessionCode,\n getNameByProfessionCode,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=1d47d9f9&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=1d47d9f9&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1d47d9f9\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBadge } from 'vuetify/lib/components/VBadge';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemAvatar } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemSubtitle } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\ninstallComponents(component, {VBadge,VIcon,VListItem,VListItemAvatar,VListItemContent,VListItemSubtitle,VListItemTitle})\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=30b13138&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=4d1659e6&lang=scss&scoped=true&\"","export enum Locales {\n EN = 'en',\n NO = 'no',\n FO = 'fo',\n}\n\nexport interface Language {\n value: Locales;\n caption: string;\n}\n\nexport const LOCALES: Array = [\n { value: Locales.EN, caption: 'English' },\n { value: Locales.NO, caption: 'Norsk' },\n { value: Locales.FO, caption: 'Føroyskt' },\n];\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.loading)?_c('app-layout-loading'):_c(_vm.layout,{tag:\"component\"},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\nimport { DEFAULT_LAYOUT } from '@/constants/common';\nimport { defineComponent } from '@vue/composition-api';\nimport AppLayoutLoading from '@/layout/applayout-loading/index.vue';\nimport { useLoader } from '@/modules/loader';\n\nexport default defineComponent({\n name: 'AppLayout',\n computed: {\n layout() {\n const layout = this?.$route?.meta?.layout || DEFAULT_LAYOUT;\n return () => import(`@/layout/${layout}/index.vue`);\n },\n },\n components: {\n AppLayoutLoading,\n },\n setup() {\n const { loading } = useLoader();\n return { loading };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=50375a35&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=fabf117e&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=7034158f&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/calculate.a28df41b.png\";","import { reactive, toRefs } from '@vue/composition-api';\n\ninterface State {\n show: boolean;\n statusText?: string;\n loading: boolean;\n}\n\nconst state = reactive({\n show: false,\n statusText: undefined,\n loading: false,\n});\n\nexport const useLoader = () => {\n const updateStatusText = (value: string | undefined) => {\n state.statusText = value;\n };\n\n const startLoader = (text: string) => {\n state.show = true;\n state.loading = true;\n state.statusText = text;\n };\n\n const stopLoader = () => {\n state.show = false;\n state.loading = false;\n state.statusText = undefined;\n };\n\n return {\n updateStatusText,\n startLoader,\n stopLoader,\n ...toRefs(state),\n };\n};\n","import { Locales } from './locales';\nimport Vue from 'vue';\nimport VueI18n from 'vue-i18n';\nimport en from '@/localization/locales/en.json';\nimport no from '@/localization/locales/no.json';\nimport fo from '@/localization/locales/fo.json';\n\nVue.use(VueI18n);\n\nexport const messages = {\n [Locales.EN]: en,\n [Locales.NO]: no,\n [Locales.FO]: fo,\n};\n\nexport const defaultLocale = Locales.NO;\nexport const defaultLocaleString = 'no';\n\nexport const i18n = new VueI18n({\n locale: defaultLocale,\n fallbackLocale: Locales.EN,\n messages,\n});\n\nexport const translate = (key: string, values?: VueI18n.Values) => {\n if (!key) {\n return '';\n }\n return i18n.t(key, values);\n};\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=7543d9f6&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=1&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=5ff1f949&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=c1393664&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=2c217337&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BuildingItemRow.vue?vue&type=style&index=0&id=7f10986e&scoped=true&lang=css&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=0cb89917&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=dd1be368&lang=scss&scoped=true&\"","import { ProjectStartFilter } from '@/constants/enum';\nimport { PROJECT_OVERVIEW_PATH, PROJECT_START_PATH } from '@/constants/routes';\nimport { CustomError, Profession } from '@/models/common/interfaces';\nimport {\n CreateProject,\n Project,\n ProjectDetails,\n ProjectFilter,\n ProjectOverview,\n ProjectTotals,\n ProjectTotalsVM,\n} from '@/models/projects/interfaces';\nimport { computed, reactive, toRefs } from '@vue/composition-api';\nimport { useApi } from './api';\nimport { useAuth } from './auth';\nimport { useErrorModal } from './error';\nimport { useSnackbar } from './snackbar';\nimport router from '@/router/index';\nimport { useCalculation } from './calculation';\nimport { isStorageSupported, isSuccess } from '@/helpers/common';\nimport { LS_ACTIVE_CALC_KEY, LS_ACTIVE_PROJECT_KEY } from '@/constants/common';\nimport {\n sumHours,\n sumMargin,\n sumMaterialsUE,\n sumProfit,\n sumSelfCostMaterialsSubContractors,\n sumTotal,\n} from '@/helpers/calculation';\n\ninterface State {\n projects?: Array;\n professions?: Array;\n activeProjectFull: Project | undefined;\n activeProjectOverview: ProjectOverview | undefined;\n activeProjectDetails?: ProjectDetails;\n loading: boolean;\n loadingActive: boolean;\n buildingTotals: boolean;\n error?: CustomError;\n projectFilter: ProjectFilter;\n}\n\nconst state = reactive({\n loading: false,\n loadingActive: false,\n buildingTotals: false,\n projects: undefined,\n error: undefined,\n activeProjectFull: undefined,\n professions: undefined,\n activeProjectDetails: undefined,\n activeProjectOverview: undefined,\n projectFilter: {\n search: '',\n filter: ProjectStartFilter.Recent,\n },\n});\n\nexport const useProject = () => {\n const { errorModal } = useErrorModal();\n const { snack } = useSnackbar();\n const { destructActiveCalculation, activeCalculation } = useCalculation();\n const { user } = useAuth();\n\n const checkForTotalOnMainProjects = (project: ProjectOverview): boolean => {\n return project.Total != null && project.Total > 0;\n };\n\n const lastLastModified = (project: ProjectOverview): string => {\n const last =\n project.Children &&\n project.Children.length > 0 &&\n project.Children.reduce((a, b) => {\n return new Date(a.LastModified) > new Date(b.LastModified) ? a : b;\n });\n\n return last ? last.LastModified : project.LastModified;\n };\n\n const filteredProjects = computed(() => {\n let filtered: Array = [];\n if (state.projects && state.projects.length > 0) {\n switch (state.projectFilter.filter) {\n case ProjectStartFilter.Recent:\n filtered = state.projects.slice(0, 10);\n break;\n case ProjectStartFilter.MyProjects:\n filtered = state.projects.filter(project => {\n return project.Owner === user?.value?.Email;\n });\n break;\n case ProjectStartFilter.All:\n filtered = state.projects;\n break;\n default:\n filtered = state.projects;\n break;\n }\n\n if (state.projectFilter.search) {\n filtered = filtered.filter(p => {\n return (\n p.Name.toUpperCase().includes(\n state.projectFilter.search.toUpperCase()\n ) ||\n p.Children.find(c =>\n c.Name.toUpperCase().includes(\n state.projectFilter.search.toUpperCase()\n )\n )\n );\n });\n }\n return filtered;\n }\n });\n\n const getProjects = async (\n force?: boolean\n ): Promise | undefined> => {\n const { get } = useApi('/project');\n if (state.projects && !force) {\n return state.projects;\n }\n\n state.loading = true;\n\n try {\n const response = await get();\n if (isSuccess(response.status)) {\n state.projects = response.data as Array;\n state.projects = user?.value?.IsAdmin\n ? state.projects\n : state.projects.filter(\n project => project.Shared || project.Owner === user?.value?.Email\n ) ?? [];\n\n if (state.projects) {\n //windows client allows element on main project, if a total exist, add it as a child to main project.\n state.projects.forEach(p => {\n if (checkForTotalOnMainProjects(p)) {\n const exists = p.Children.findIndex(calc => calc.Id === p.Id);\n if (exists && exists === -1) {\n p.Children.push(p);\n }\n }\n\n p.Children = p.Children.sort((a, b) =>\n ('' + a.ProjectNumber ?? '').localeCompare(\n b.ProjectNumber ?? '' + ''\n )\n );\n\n p.LastModified = lastLastModified(p);\n });\n state.projects = state.projects.sort((a, b) => {\n return +new Date(b.LastModified) - +new Date(a.LastModified);\n });\n }\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n console.log(e);\n snack('snack.sorry', false);\n }\n }\n\n state.loading = false;\n return state.projects;\n };\n\n const buildProjectTotalsForCalculations = async () => {\n const { getCalculation, buildProjectCalculation } = useCalculation();\n\n if (state.projects && state.activeProjectOverview) {\n if (\n state.activeProjectOverview &&\n state.activeProjectOverview.Children &&\n state.activeProjectOverview.Children.length > 0\n ) {\n state.buildingTotals = true;\n for (const calc of state.activeProjectOverview.Children) {\n if (calc.Id) {\n const calculation = await getCalculation(calc.Id);\n\n if (calculation) {\n const projectCalc = await buildProjectCalculation(calculation);\n\n if (projectCalc) {\n const totals: ProjectTotalsVM = {\n AmountControl: projectCalc.AmountControl ?? 0,\n Hours: projectCalc.SumHours?.value ?? 0,\n MaterialsSubContractors:\n projectCalc.SumSelfCostMaterialsSubContractors?.value ?? 0,\n MaterialsUE: projectCalc.SumMaterialsUE?.value ?? 0,\n Profit: projectCalc.SumProfit?.value ?? 0,\n SelfCost: projectCalc.SelfCost ?? 0,\n SelfCostMaterialsSubContractors:\n projectCalc.SumSelfCostMaterialsSubContractors?.value ?? 0,\n Total: projectCalc.SumTotal?.value ?? 0,\n SumMargin: projectCalc.SumMargin?.value ?? 0,\n };\n\n if (calc.Id === state.activeProjectOverview.Id) {\n calc.TempProjectTotals = totals;\n calc.ProjectTotals = totals;\n } else {\n calc.ProjectTotals = totals;\n }\n }\n }\n }\n }\n\n state.activeProjectOverview.ProjectTotals = {\n AmountControl: state.activeProjectOverview.Children.reduce(\n (prev, cur) => {\n return prev + (cur.ProjectTotals?.AmountControl ?? 0);\n },\n 0\n ),\n Hours: state.activeProjectOverview.Children.reduce((prev, cur) => {\n return prev + (cur.ProjectTotals?.Hours ?? 0);\n }, 0),\n MaterialsSubContractors: state.activeProjectOverview.Children.reduce(\n (prev, cur) => {\n return prev + (cur.ProjectTotals?.MaterialsSubContractors ?? 0);\n },\n 0\n ),\n MaterialsUE: state.activeProjectOverview.Children.reduce(\n (prev, cur) => {\n return prev + (cur.ProjectTotals?.MaterialsUE ?? 0);\n },\n 0\n ),\n Profit: state.activeProjectOverview.Children.reduce((prev, cur) => {\n return prev + (cur.ProjectTotals?.Profit ?? 0);\n }, 0),\n SelfCost: state.activeProjectOverview.Children.reduce((prev, cur) => {\n return prev + (cur.ProjectTotals?.SelfCost ?? 0);\n }, 0),\n SelfCostMaterialsSubContractors: state.activeProjectOverview.Children.reduce(\n (prev, cur) => {\n return (\n prev + (cur.ProjectTotals?.SelfCostMaterialsSubContractors ?? 0)\n );\n },\n 0\n ),\n SumMargin: state.activeProjectOverview.Children.reduce(\n (prev, cur) => {\n return prev + (cur.ProjectTotals?.SumMargin ?? 0);\n },\n 0\n ),\n Total: state.activeProjectOverview.Children.reduce((prev, cur) => {\n return prev + (cur.ProjectTotals?.Total ?? 0);\n }, 0),\n };\n\n state.buildingTotals = false;\n }\n }\n };\n\n const setActiveProjectFromProjectList = (id: string) => {\n if (state.projects) {\n const project: ProjectOverview | undefined = state.projects.find(\n proj => proj.Id == id\n );\n\n if (project) {\n state.activeProjectOverview = project;\n buildProjectTotalsForCalculations();\n }\n }\n };\n\n const getFullProjectById = async (\n projectId: string\n ): Promise => {\n const { get } = useApi(`/project/${projectId}/full`);\n state.loading = true;\n let project: Project | undefined = undefined;\n\n try {\n const response = await get();\n if (isSuccess(response.status)) {\n project = response.data;\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n state.loading = false;\n return project;\n };\n\n const getProjectOverviewById = async (\n projectId: string\n ): Promise => {\n const { get } = useApi(`/project/${projectId}`);\n state.loading = true;\n let project: ProjectOverview | undefined = undefined;\n\n try {\n const response = await get();\n if (isSuccess(response.status)) {\n project = response.data;\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n state.loading = false;\n return project;\n };\n\n const createProject = async (\n newProject: CreateProject,\n isCalculation: boolean\n ): Promise => {\n const { post } = useApi('/project');\n let projectId = '';\n state.loading = true;\n try {\n const response = await post(newProject);\n if (isSuccess(response.status)) {\n projectId = response.data.Id;\n snack(\n isCalculation ? 'snack.calc-created' : 'snack.project-created',\n true\n );\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n\n state.loading = false;\n return projectId;\n };\n\n const getActiveProjectDetails = async (\n projectId: string,\n force?: boolean\n ): Promise => {\n if (state.activeProjectDetails && !force) return state.activeProjectDetails;\n const { get } = useApi(`/project/${projectId}/details`);\n\n state.loading = true;\n\n try {\n const response = await get();\n if (isSuccess(response.status)) {\n state.activeProjectDetails = response.data;\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n state.loading = false;\n return state.activeProjectDetails;\n };\n\n const getDetails = async (\n projectId: string\n ): Promise => {\n const { get } = useApi(`/project/${projectId}/details`);\n let details: ProjectDetails | undefined = undefined;\n\n try {\n const response = await get();\n if (isSuccess(response.status)) {\n details = response.data;\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n return details;\n };\n\n const saveDetails = async (\n projectId: string,\n projectDetails: ProjectDetails\n ): Promise => {\n const { put } = useApi(`/project/${projectId}/details`);\n let success = false;\n\n try {\n const response = await put(projectDetails);\n if (isSuccess(response.status)) {\n if (projectDetails.Id === state.activeProjectDetails?.Id) {\n state.activeProjectDetails = response.data;\n }\n\n success = true;\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n\n return success;\n };\n\n const destructActiveProject = async () => {\n state.activeProjectFull = undefined;\n state.activeProjectDetails = undefined;\n state.activeProjectOverview = undefined;\n state.projects = undefined;\n state.projectFilter = {\n search: '',\n filter: ProjectStartFilter.Recent,\n };\n await destructActiveCalculation();\n if (isStorageSupported()) {\n localStorage.removeItem(LS_ACTIVE_PROJECT_KEY);\n localStorage.removeItem(LS_ACTIVE_CALC_KEY);\n }\n if (router.currentRoute.path !== PROJECT_START_PATH) {\n await router.push(PROJECT_START_PATH);\n }\n };\n\n const closeActiveProject = async () => {\n state.activeProjectFull = undefined;\n state.activeProjectDetails = undefined;\n state.activeProjectOverview = undefined;\n state.projectFilter = {\n search: '',\n filter: ProjectStartFilter.Recent,\n };\n await destructActiveCalculation();\n if (isStorageSupported()) {\n localStorage.removeItem(LS_ACTIVE_PROJECT_KEY);\n localStorage.removeItem(LS_ACTIVE_CALC_KEY);\n }\n if (router.currentRoute.path !== PROJECT_START_PATH) {\n await router.push(PROJECT_START_PATH);\n }\n };\n\n const setActiveProject = async (\n projectId: string,\n routeToProjectOverview: boolean\n ): Promise => {\n await destructActiveCalculation();\n\n if (!projectId) return;\n state.loadingActive = true;\n state.activeProjectFull = await getFullProjectById(projectId);\n state.activeProjectDetails = await getActiveProjectDetails(projectId, true);\n await getProjects();\n setActiveProjectFromProjectList(projectId);\n if (router.currentRoute.path !== PROJECT_OVERVIEW_PATH) {\n if (isStorageSupported() && projectId) {\n localStorage.setItem(LS_ACTIVE_PROJECT_KEY, projectId);\n }\n\n if (routeToProjectOverview) {\n await router.push(PROJECT_OVERVIEW_PATH);\n }\n }\n state.loadingActive = false;\n };\n\n const deleteProject = async (\n projectId: string,\n isCalculation: boolean,\n routeTo?: string\n ): Promise => {\n const { deleteReq } = useApi(`/project/${projectId}`);\n state.loading = true;\n let success = false;\n try {\n const response = await deleteReq();\n if (isSuccess(response.status)) {\n if (state.activeProjectFull?.Id === projectId) {\n await destructActiveCalculation();\n await destructActiveProject();\n } else if (activeCalculation?.value?.Id === projectId) {\n await destructActiveCalculation();\n }\n state.projects?.forEach((p, i) => {\n if (p.Id === projectId && state.projects) {\n state.projects.splice(i, 1);\n snack('snack.project-deleted', true);\n }\n if (p.Children.some(c => c.Id === projectId)) {\n p.Children.forEach((c, j) => {\n if (c.Id === projectId && state.projects) {\n state.projects[i].Children.splice(j, 1);\n snack('snack.calc-deleted', true);\n }\n });\n }\n });\n\n if (routeTo && router.currentRoute.path !== routeTo) {\n await router.push(routeTo);\n }\n success = true;\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n state.loading = false;\n return success;\n };\n\n const getProfessions = async (\n force?: boolean\n ): Promise | undefined> => {\n const { get } = useApi('/profession');\n\n if (state.professions && !force) {\n return state.professions;\n }\n\n state.loading = true;\n\n try {\n const response = await get();\n if (isSuccess(response.status)) {\n state.professions = response.data.sort(\n (a: Profession, b: Profession) => {\n return parseInt(a.Code) - parseInt(b.Code);\n }\n );\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n state.loading = false;\n return state.professions;\n };\n\n const getNewProjectNumber = async (\n parentProjectId?: string\n ): Promise => {\n const { get } = useApi(\n `/projectnumbers/next${parentProjectId ? `/${parentProjectId}` : ''}`\n );\n let next: string | undefined = undefined;\n state.loading = true;\n\n try {\n const response = await get();\n if (isSuccess(response.status)) {\n next = response.data;\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n state.loading = false;\n return next;\n };\n\n const updateActiveProjectTotal = (totals: ProjectTotals) => {\n const { projectCalculation } = useCalculation();\n\n if (\n state.activeProjectOverview?.ProjectTotals == null ||\n projectCalculation.value?.Id == null\n ) {\n return;\n }\n\n state.buildingTotals = true;\n\n const calcOverview = state.activeProjectOverview.Children.find(\n ow => ow.Id === projectCalculation.value?.Id\n );\n\n if (calcOverview) {\n calcOverview.ProjectTotals = {\n AmountControl: totals.AmountControl,\n Hours: sumHours(projectCalculation.value) ?? 0,\n MaterialsSubContractors:\n sumSelfCostMaterialsSubContractors(projectCalculation.value) ?? 0,\n MaterialsUE: sumMaterialsUE(projectCalculation.value) ?? 0,\n Profit: sumProfit(projectCalculation.value) ?? 0,\n SelfCost: totals.SelfCost,\n SelfCostMaterialsSubContractors:\n sumSelfCostMaterialsSubContractors(projectCalculation.value) ?? 0,\n SumMargin: sumMargin(projectCalculation.value) ?? 0,\n Total: sumTotal(projectCalculation.value),\n };\n\n calcOverview.Total =\n calcOverview.ProjectTotals.Total ?? calcOverview.Total;\n\n if (calcOverview.Id === state.activeProjectOverview.Id) {\n calcOverview.TempProjectTotals = calcOverview.ProjectTotals;\n }\n }\n\n state.activeProjectOverview.ProjectTotals = {};\n\n state.activeProjectOverview.ProjectTotals = {\n AmountControl: state.activeProjectOverview.Children.reduce(\n (prev, cur) => {\n return prev + (cur.ProjectTotals?.AmountControl ?? 0);\n },\n 0\n ),\n Hours: state.activeProjectOverview.Children.reduce((prev, cur) => {\n return prev + (cur.ProjectTotals?.Hours ?? 0);\n }, 0),\n MaterialsSubContractors: state.activeProjectOverview.Children.reduce(\n (prev, cur) => {\n return prev + (cur.ProjectTotals?.MaterialsSubContractors ?? 0);\n },\n 0\n ),\n SumMargin: state.activeProjectOverview.Children.reduce((prev, cur) => {\n return prev + (cur.ProjectTotals?.SumMargin ?? 0);\n }, 0),\n MaterialsUE: state.activeProjectOverview.Children.reduce((prev, cur) => {\n return prev + (cur.ProjectTotals?.MaterialsUE ?? 0);\n }, 0),\n Profit: state.activeProjectOverview.Children.reduce((prev, cur) => {\n return prev + (cur.ProjectTotals?.Profit ?? 0);\n }, 0),\n SelfCost: state.activeProjectOverview.Children.reduce((prev, cur) => {\n return prev + (cur.ProjectTotals?.SelfCost ?? 0);\n }, 0),\n SelfCostMaterialsSubContractors: state.activeProjectOverview.Children.reduce(\n (prev, cur) => {\n return (\n prev + (cur.ProjectTotals?.SelfCostMaterialsSubContractors ?? 0)\n );\n },\n 0\n ),\n Total: state.activeProjectOverview.Children.reduce((prev, cur) => {\n return prev + (cur.ProjectTotals?.Total ?? 0);\n }, 0),\n };\n\n const parentIncluded = state.activeProjectOverview.Children.find(\n proj => proj.TempProjectTotals\n );\n\n if (parentIncluded && parentIncluded.TempProjectTotals) {\n if (\n state.activeProjectOverview.ProjectTotals\n .SelfCostMaterialsSubContractors != null &&\n parentIncluded.TempProjectTotals?.SelfCostMaterialsSubContractors !=\n null\n ) {\n state.activeProjectOverview.ProjectTotals.SelfCostMaterialsSubContractors +=\n parentIncluded.TempProjectTotals.SelfCostMaterialsSubContractors;\n }\n if (\n state.activeProjectOverview.ProjectTotals.Profit != null &&\n parentIncluded.TempProjectTotals?.Profit != null\n ) {\n state.activeProjectOverview.ProjectTotals.Profit +=\n parentIncluded.TempProjectTotals.Profit;\n }\n if (\n state.activeProjectOverview.ProjectTotals.Hours != null &&\n parentIncluded.TempProjectTotals?.Hours != null\n ) {\n state.activeProjectOverview.ProjectTotals.Hours +=\n parentIncluded.TempProjectTotals.Hours;\n }\n if (\n state.activeProjectOverview.ProjectTotals.Total != null &&\n parentIncluded.TempProjectTotals?.Total != null\n ) {\n state.activeProjectOverview.ProjectTotals.Total +=\n parentIncluded.TempProjectTotals.Total;\n }\n if (\n state.activeProjectOverview.ProjectTotals.SumMargin != null &&\n parentIncluded.TempProjectTotals?.SumMargin != null\n ) {\n state.activeProjectOverview.ProjectTotals.SumMargin +=\n parentIncluded.TempProjectTotals.SumMargin;\n }\n }\n\n state.buildingTotals = false;\n };\n\n const refreshActiveProject = async () => {\n if (state.activeProjectOverview?.Id) {\n state.activeProjectFull = await getFullProjectById(\n state.activeProjectOverview.Id\n );\n setActiveProjectFromProjectList(state.activeProjectOverview.Id);\n }\n };\n\n const firstProject = computed(() => {\n const first = false;\n\n if (!state.projects) return first;\n\n return state.projects.length === 0;\n });\n\n const setActiveProjectByNumber = async (projectNumber: string) => {\n await getProjects();\n const project = state.projects?.find(\n project => project.ProjectNumber === projectNumber\n );\n if (!project || !project.Id) {\n await router.push(PROJECT_START_PATH);\n return;\n }\n if (project.Id !== state.activeProjectDetails?.Id) {\n await setActiveProject(project.Id, false);\n }\n };\n\n return {\n ...toRefs(state),\n getProjects,\n setActiveProject,\n getProfessions,\n getNewProjectNumber,\n setActiveProjectByNumber,\n createProject,\n deleteProject,\n getDetails,\n getActiveProjectDetails,\n saveDetails,\n getFullProjectById,\n setActiveProjectFromProjectList,\n buildProjectTotalsForCalculations,\n refreshActiveProject,\n getProjectOverviewById,\n destructActiveProject,\n closeActiveProject,\n updateActiveProjectTotal,\n filteredProjects,\n firstProject,\n };\n};\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=296bc473&lang=scss&scoped=true&\"","import { isSuccess } from '@/helpers/common';\nimport {\n RegisterUserModel,\n User,\n UserpasswordModel,\n UserpasswordPayload,\n} from '@/models/auth/interfaces';\nimport { CustomError } from '@/models/common/interfaces';\nimport { reactive, toRefs } from '@vue/composition-api';\nimport { useApi } from './api';\nimport { useErrorModal } from './error';\nimport { useLicense } from './license';\nimport { useSnackbar } from './snackbar';\n\ninterface AdminState {\n users?: Array;\n loading: boolean;\n error?: CustomError;\n}\n\nconst state = reactive({\n loading: false,\n users: undefined,\n error: undefined,\n});\n\nexport const useUsers = () => {\n const { errorModal } = useErrorModal();\n const { snack } = useSnackbar();\n\n const getUsers = async (\n force?: boolean\n ): Promise | undefined> => {\n const { get } = useApi('/accountmanagement/account/allusers');\n if (state.users && !force) {\n return state.users;\n }\n\n state.loading = true;\n\n try {\n const response = await get();\n if (isSuccess(response.status)) {\n state.users = response.data;\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n\n state.loading = false;\n return state.users;\n };\n\n const createUser = async (\n user: RegisterUserModel\n ): Promise => {\n const { post } = useApi('/accountmanagement/account');\n\n let email = undefined;\n if (!user) return undefined;\n\n try {\n const response = await post(user);\n if (isSuccess(response.status)) {\n email = user.Email;\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n\n return email;\n };\n\n const setUserPassword = async (pw: UserpasswordModel): Promise => {\n const { post } = useApi(`/accountmanagement/account/${pw.UserId}/password`);\n\n let success = false;\n if (!pw) return success;\n\n state.loading = true;\n const payload: UserpasswordPayload = {\n NewPassword: pw.Password,\n };\n\n try {\n const response = await post(payload);\n if (isSuccess(response.status)) {\n snack('snack.user-pw-change', true);\n success = true;\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n\n state.loading = false;\n return success;\n };\n\n const deleteUser = async (user: User): Promise => {\n const { deleteReq } = useApi(`/accountmanagement/account/${user.Id}`);\n\n let success = false;\n\n if (!user.Id) return success;\n state.loading = true;\n\n try {\n const response = await deleteReq();\n if (isSuccess(response.status)) {\n state.users?.forEach((u, i) => {\n if (u.Id === user.Id && state.users) {\n state.users.splice(i, 1);\n const { unassignLicense } = useLicense();\n unassignLicense(user);\n }\n });\n snack('snack.user-deleted', true);\n success = true;\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n\n state.loading = false;\n return success;\n };\n\n const updateUser = async (user: User): Promise => {\n const { put } = useApi(`/accountmanagement/account/${user.Id}`);\n let success = false;\n state.loading = true;\n\n try {\n const response = await put(user);\n if (isSuccess(response.status)) {\n state.users?.forEach((u, i) => {\n if (u.Id === user.Id && state.users) {\n user.FullName = `${user.FirstName} ${user.LastName}`;\n state.users.splice(i, 1);\n state.users.unshift(user);\n snack('snack.user-updated', true);\n }\n });\n success = true;\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n\n state.loading = false;\n return success;\n };\n\n return {\n ...toRefs(state),\n getUsers,\n updateUser,\n setUserPassword,\n deleteUser,\n createUser,\n };\n};\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=981ccf18&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-card-title',{staticClass:\"dialog-title\"},[_c('v-row',{attrs:{\"dense\":\"\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":_vm.halfAndHalf ? 6 : _vm.center ? 4 : 8,\"align-self\":\"center\",\"a\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.headerText)+\" \")]),(_vm.center && !_vm.halfAndHalf)?_c('v-col',{staticClass:\"centermost\",attrs:{\"cols\":\"4\",\"align-self\":\"center\"}},[_vm._t(\"center\")],2):_vm._e(),_c('v-col',{staticClass:\"rightmost\",attrs:{\"cols\":_vm.halfAndHalf ? 6 : 4,\"align-self\":\"center\"}},[_vm._t(\"actions\"),(_vm.icon)?_c('v-icon',{attrs:{\"color\":\"primary\"}},[_vm._v(_vm._s(_vm.icon))]):_vm._e()],2)],1)],1),_c('v-divider'),(_vm.secondaryText != null)?_c('v-card-title',{staticClass:\"dialog-secondary-title\"},[_vm._v(\" \"+_vm._s(_vm.secondaryText && _vm.secondaryText)+\" \"),_c('v-spacer'),_vm._t(\"secondaryActions\")],2):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\n\nexport default defineComponent({\n props: {\n headerText: {\n type: String,\n required: true,\n },\n secondaryText: {\n type: String,\n },\n icon: {\n type: String,\n },\n center: {\n type: Boolean,\n },\n halfAndHalf: {\n type: Boolean,\n },\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=2a23c87c&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=2a23c87c&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2a23c87c\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCardTitle,VCol,VDivider,VIcon,VRow,VSpacer})\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&lang=scss&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=7b740ff0&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/byggtjeneste_select.1112947f.svg\";","import { Profession } from '@/models/common/interfaces';\nimport {\n AdditionItemTemplate,\n AdditionItemTemplateType,\n AdditionItemTemplateTypeXML,\n BuildingElementTemplate,\n BuildingElementTemplateType,\n BuildingElementTemplateTypeXML,\n BuildingItemTemplate,\n BuildingItemTemplateType,\n BuildingItemTemplateTypeXML,\n BuildingTypeTemplate,\n BuildingTypeTemplateType,\n XMLExport,\n} from '@/models/library/interfaces';\nimport { v4 as uuidv4 } from 'uuid';\n\nexport const createDefaultBuildingTypeTemplate = (\n profession: Profession\n): BuildingTypeTemplate | undefined => {\n return {\n Id: uuidv4(),\n BuildingElementTemplates: [],\n Created: new Date().toLocaleString(),\n Description: null,\n GlobalKey: uuidv4(),\n LastModified: new Date().toLocaleString(),\n ImportTime: null,\n Name: null,\n OrganizationId: null,\n Profession: profession,\n ProfessionCode: profession.Code,\n ProfessionId: profession.Id ?? null,\n };\n};\n\nexport const sortBuildingItemTemplates = (\n items: Array\n): Array => {\n const sortedItems = items.sort((a, b) =>\n (a.SortOrder ?? 0) > (b.SortOrder ?? 0)\n ? 1\n : (b.SortOrder ?? 0) > (a.SortOrder ?? 0)\n ? -1\n : 0\n );\n return sortedItems;\n};\n\nexport const sortBuildingElementTemplatesByNS3451 = (\n elements: Array\n): Array => {\n const sortedElements = elements.sort((a, b) =>\n ('' + a.NS3451 ?? '').localeCompare(b.NS3451 ?? '' + '')\n );\n return sortedElements;\n};\n\nexport const createBuildingItemTemplateType = (\n itemTemplate: BuildingItemTemplate\n): BuildingItemTemplateType => {\n const itemTemplateType: BuildingItemTemplateType = {\n AccountNumber: itemTemplate.AccountNumber,\n AmountAdjustment: itemTemplate.AmountAdjustment,\n Amount: itemTemplate.Amount,\n AmountPrUnit: itemTemplate.AmountPrUnit,\n BaseTime: itemTemplate.BaseTime,\n DeliveryOrder: itemTemplate.DeliveryOrder,\n IsFDVExportSelected: itemTemplate.IsFDVExportSelected ?? false,\n MileStone: itemTemplate.MileStone,\n NOBBNumber: itemTemplate.NOBBNumber,\n NS3420: itemTemplate.NS3420,\n Name: itemTemplate.Name,\n OpeningAddition: itemTemplate.OpeningAddition ?? 0,\n PreCut: itemTemplate.Precut ?? false,\n Price: itemTemplate.Price ?? 0,\n PriceListName: itemTemplate.PriceListName,\n SortOrder: itemTemplate.SortOrder,\n SurfaceAddition: itemTemplate.SurfaceAddition ?? 0,\n TimeEstimateName: itemTemplate.TimeEstimateName,\n TimeFactorTemplates: [],\n Transport: itemTemplate.Transport ?? 0,\n TransportationAddition: itemTemplate.TransportationAddition ?? 0,\n Unit: itemTemplate.Unit,\n UnitForOrder: itemTemplate.UnitForOrder,\n };\n\n return itemTemplateType;\n};\n\nexport const createAdditionItemTemplateType = (\n additionTemplate: AdditionItemTemplate\n): AdditionItemTemplateType => {\n const additionTemplateType: AdditionItemTemplateType = {\n AmountAdjustment: additionTemplate.AmountAdjustment,\n Name: additionTemplate.Name,\n };\n return additionTemplateType;\n};\n\nexport const createBuildingElementTemplateType = (\n elementTemplate: BuildingElementTemplate\n): BuildingElementTemplateType => {\n const eleTemplateType: BuildingElementTemplateType = {\n Amount: null,\n Code: elementTemplate.Code,\n Name: elementTemplate.Name,\n NS3450: elementTemplate.NS3450,\n NS3451: elementTemplate.NS3451,\n ProductionLine: elementTemplate.ProductionLine,\n SortOrder: elementTemplate.SortOrder,\n Transport: elementTemplate.Transport,\n Unit: elementTemplate.Unit,\n AdditionItemTemplates: [],\n BuildingItemTemplates: [],\n };\n return eleTemplateType;\n};\n\nexport const createBuildingTypeTemplateType = (\n template: BuildingTypeTemplate\n): BuildingTypeTemplateType => {\n const templateType: BuildingTypeTemplateType = {\n BuildingElementTemplates: [],\n Name: template.Name,\n Description: template.Description,\n GlobalKey: template.GlobalKey,\n ImportDate: new Date().toISOString(),\n ProfessionCode: template.ProfessionCode,\n };\n return templateType;\n};\n\nexport const createXMLObject = (\n buildingTypeTemplate: BuildingTypeTemplateType\n): XMLExport => {\n const buildingTypeTemplateTypeXML: XMLExport = {\n BuildingTypeTemplate: {\n BuildingElementTemplates: [],\n Description: buildingTypeTemplate.Description,\n GlobalKey: buildingTypeTemplate.GlobalKey,\n ImportDate: buildingTypeTemplate.ImportDate,\n Name: buildingTypeTemplate.Name,\n ProfessionCode: buildingTypeTemplate.ProfessionCode,\n $: {\n 'xmlns:xsi': 'http://www.w3.org/2001/XMLSchema-instance',\n 'xmlns:xsd': 'http://www.w3.org/2001/XMLSchema',\n xmlns: 'http://tempuri.org/BuildingLibraryFile.xsd',\n },\n },\n };\n\n const elementXMLTypes: Array = [];\n\n buildingTypeTemplate.BuildingElementTemplates.forEach(eleTemplate => {\n const buildingElementTemplateTypeXML: BuildingElementTemplateTypeXML = {\n AdditionItemTemplates: [],\n BuildingItemTemplates: [],\n Amount:\n eleTemplate.Amount === null\n ? {\n $: {\n 'xsi:nil': 'true',\n },\n }\n : {\n _: eleTemplate.Amount,\n },\n Code:\n eleTemplate.Code === null\n ? {\n $: {\n 'xsi:nil': 'true',\n },\n }\n : {\n _: eleTemplate.Code,\n },\n NS3450:\n eleTemplate.NS3450 === null\n ? {\n $: {\n 'xsi:nil': 'true',\n },\n }\n : {\n _: eleTemplate.NS3450,\n },\n NS3451:\n eleTemplate.NS3451 === null\n ? {\n $: {\n 'xsi:nil': 'true',\n },\n }\n : {\n _: eleTemplate.NS3451,\n },\n Name:\n eleTemplate.Name === null\n ? {\n $: {\n 'xsi:nil': 'true',\n },\n }\n : {\n _: eleTemplate.Name,\n },\n ProductionLine:\n eleTemplate.ProductionLine === null\n ? {\n $: {\n 'xsi:nil': 'true',\n },\n }\n : {\n _: eleTemplate.ProductionLine,\n },\n SortOrder:\n eleTemplate.SortOrder === null\n ? {\n $: {\n 'xsi:nil': 'true',\n },\n }\n : {\n _: eleTemplate.SortOrder,\n },\n Transport:\n eleTemplate.Transport === null\n ? {\n $: {\n 'xsi:nil': 'true',\n },\n }\n : {\n _: eleTemplate.Transport,\n },\n Unit:\n eleTemplate.Unit === null\n ? {\n $: {\n 'xsi:nil': 'true',\n },\n }\n : {\n _: eleTemplate.Unit,\n },\n };\n\n const itemXMLTypes: Array = [];\n const additionXMLTypes: Array = [];\n eleTemplate.BuildingItemTemplates.forEach(itemTemplate => {\n const itemXMLTemplateType: BuildingItemTemplateTypeXML = {\n AccountNumber:\n itemTemplate.AccountNumber === null\n ? {\n $: {\n 'xsi:nil': 'true',\n },\n }\n : {\n _: itemTemplate.AccountNumber,\n },\n Amount:\n itemTemplate.Amount === null\n ? {\n $: {\n 'xsi:nil': 'true',\n },\n }\n : {\n _: itemTemplate.Amount,\n },\n AmountAdjustment:\n itemTemplate.AmountAdjustment === null\n ? {\n $: {\n 'xsi:nil': 'true',\n },\n }\n : {\n _: itemTemplate.AmountAdjustment,\n },\n Unit:\n itemTemplate.Unit === null\n ? {\n $: {\n 'xsi:nil': 'true',\n },\n }\n : {\n _: itemTemplate.Unit,\n },\n Transport:\n itemTemplate.Transport === null\n ? {\n $: {\n 'xsi:nil': 'true',\n },\n }\n : {\n _: itemTemplate.Transport,\n },\n SortOrder:\n itemTemplate.SortOrder === null\n ? {\n $: {\n 'xsi:nil': 'true',\n },\n }\n : {\n _: itemTemplate.SortOrder,\n },\n AmountPrUnit:\n itemTemplate.AmountPrUnit === null\n ? {\n $: {\n 'xsi:nil': 'true',\n },\n }\n : {\n _: itemTemplate.AmountPrUnit,\n },\n Name:\n itemTemplate.Name === null\n ? {\n $: {\n 'xsi:nil': 'true',\n },\n }\n : {\n _: itemTemplate.Name,\n },\n BaseTime:\n itemTemplate.BaseTime === null\n ? {\n $: {\n 'xsi:nil': 'true',\n },\n }\n : {\n _: itemTemplate.BaseTime,\n },\n DeliveryOrder:\n itemTemplate.DeliveryOrder === null\n ? {\n $: {\n 'xsi:nil': 'true',\n },\n }\n : {\n _: itemTemplate.DeliveryOrder,\n },\n IsFDVExportSelected:\n itemTemplate.IsFDVExportSelected === null\n ? {\n $: {\n 'xsi:nil': 'true',\n },\n }\n : {\n _: itemTemplate.IsFDVExportSelected,\n },\n MileStone:\n itemTemplate.MileStone === null\n ? {\n $: {\n 'xsi:nil': 'true',\n },\n }\n : {\n _: itemTemplate.MileStone,\n },\n NOBBNumber:\n itemTemplate.NOBBNumber === null\n ? {\n $: {\n 'xsi:nil': 'true',\n },\n }\n : {\n _: itemTemplate.NOBBNumber,\n },\n NS3420:\n itemTemplate.NS3420 === null\n ? {\n $: {\n 'xsi:nil': 'true',\n },\n }\n : {\n _: itemTemplate.NS3420,\n },\n OpeningAddition:\n itemTemplate.OpeningAddition === null\n ? {\n $: {\n 'xsi:nil': 'true',\n },\n }\n : {\n _: itemTemplate.OpeningAddition,\n },\n PreCut:\n itemTemplate.PreCut === null\n ? {\n $: {\n 'xsi:nil': 'true',\n },\n }\n : {\n _: itemTemplate.PreCut,\n },\n Price:\n itemTemplate.Price === null\n ? {\n $: {\n 'xsi:nil': 'true',\n },\n }\n : {\n _: itemTemplate.Price,\n },\n PriceListName:\n itemTemplate.PriceListName === null\n ? {\n $: {\n 'xsi:nil': 'true',\n },\n }\n : {\n _: itemTemplate.PriceListName,\n },\n SurfaceAddition:\n itemTemplate.SurfaceAddition === null\n ? {\n $: {\n 'xsi:nil': 'true',\n },\n }\n : {\n _: itemTemplate.SurfaceAddition,\n },\n TimeEstimateName:\n itemTemplate.TimeEstimateName === null\n ? {\n $: {\n 'xsi:nil': 'true',\n },\n }\n : {\n _: itemTemplate.TimeEstimateName,\n },\n TimeFactorTemplates: [],\n TransportationAddition:\n itemTemplate.TransportationAddition === null\n ? {\n $: {\n 'xsi:nil': 'true',\n },\n }\n : {\n _: itemTemplate.TransportationAddition,\n },\n UnitForOrder:\n itemTemplate.UnitForOrder === null\n ? {\n $: {\n 'xsi:nil': 'true',\n },\n }\n : {\n _: itemTemplate.UnitForOrder,\n },\n };\n itemXMLTypes.push(itemXMLTemplateType);\n });\n eleTemplate.AdditionItemTemplates.forEach(additionTemplate => {\n const additionXMLTemplateType: AdditionItemTemplateTypeXML = {\n AmountAdjustment:\n additionTemplate.AmountAdjustment === null\n ? {\n $: {\n 'xsi:nil': 'true',\n },\n }\n : {\n _: additionTemplate.AmountAdjustment,\n },\n Name:\n additionTemplate.Name === null\n ? {\n $: {\n 'xsi:nil': 'true',\n },\n }\n : {\n _: additionTemplate.Name,\n },\n };\n additionXMLTypes.push(additionXMLTemplateType);\n });\n buildingElementTemplateTypeXML.AdditionItemTemplates = additionXMLTypes;\n buildingElementTemplateTypeXML.BuildingItemTemplates = itemXMLTypes;\n\n elementXMLTypes.push(buildingElementTemplateTypeXML);\n });\n\n buildingTypeTemplateTypeXML.BuildingTypeTemplate.BuildingElementTemplates = elementXMLTypes;\n\n return buildingTypeTemplateTypeXML;\n};\n\nexport const finalizeBuildingTypeTemplate = (\n template: BuildingTypeTemplate\n): BuildingTypeTemplate => {\n template.Id = uuidv4();\n template.Created = new Date().toLocaleString();\n template.LastModified = new Date().toLocaleString();\n\n if (template.BuildingElementTemplates instanceof Array === false) {\n try {\n const elements: Array = [];\n const singleElement: BuildingElementTemplate = (template.BuildingElementTemplates as unknown) as BuildingElementTemplate;\n elements.push(singleElement);\n template.BuildingElementTemplates = elements;\n } catch (e) {\n console.log(e);\n }\n }\n\n template.BuildingElementTemplates.forEach(eleTemplate => {\n eleTemplate.Id = uuidv4();\n if (template.Id) {\n eleTemplate.BuildingTypeTemplateId = template.Id;\n }\n eleTemplate.Created = new Date().toISOString();\n eleTemplate.LastModified = new Date().toISOString();\n if (\n eleTemplate.BuildingItemTemplates != null &&\n eleTemplate.BuildingItemTemplates instanceof Array\n ) {\n eleTemplate.BuildingItemTemplates.forEach(itemTemplate => {\n itemTemplate.Id = uuidv4();\n itemTemplate.LastModified = new Date().toISOString();\n itemTemplate.Created = new Date().toISOString();\n if (eleTemplate.Id) {\n itemTemplate.BuildingElementTemplateId = eleTemplate.Id;\n }\n });\n } else {\n try {\n const items: Array = [];\n const singleItem: BuildingItemTemplate =\n eleTemplate.BuildingItemTemplates;\n singleItem.Id = uuidv4();\n singleItem.LastModified = new Date().toISOString();\n singleItem.Created = new Date().toISOString();\n if (eleTemplate.Id) {\n singleItem.BuildingElementTemplateId = eleTemplate.Id;\n }\n items.push(singleItem);\n eleTemplate.BuildingItemTemplates = items;\n } catch (e) {\n console.log(e);\n }\n }\n\n if (eleTemplate.AdditionItemTemplates) {\n eleTemplate.AdditionItemTemplates.forEach(additionTemplate => {\n additionTemplate.Id = uuidv4();\n if (eleTemplate.Id) {\n additionTemplate.BuildingElementTemplateId = eleTemplate.Id;\n }\n additionTemplate.Created = new Date().toISOString();\n additionTemplate.LastModified = new Date().toISOString();\n });\n }\n });\n\n return template;\n};\n","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=1319ba99&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=735c5e70&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-row',{attrs:{\"dense\":\"\",\"no-gutters\":\"\",\"id\":\"license-row\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"5\"}},[_c('h1',{attrs:{\"id\":\"license-header\"}},[_vm._v(\" \"+_vm._s(_vm.title)+\" \")]),(_vm.loading)?_c('loader',{attrs:{\"margins\":true}}):[_c('h2',{class:_vm.license.Trial && _vm.isValid ? 'trial-headline' : 'license-headline'},[_vm._v(\" \"+_vm._s(_vm.secondaryTitle)+\" \")]),(_vm.isAdmin)?[_c('div',{staticClass:\"license-header\"},[_vm._v(\" \"+_vm._s(((_vm.$t('common.price-month')) + \" (\" + (_vm.licensePrice.MainLicencePriceName) + \" / \" + (_vm.licensePrice.AdditionalLicencePriceName) + \")\"))+\" \")]),_c('div',{staticClass:\"license-price\"},[_vm._v(\" \"+_vm._s(((_vm.licensePrice.MainLicensePrice) + \",- / \" + (_vm.licensePrice.AdditionalLicensePrice) + \",-\"))+\" \")]),_c('div',{staticClass:\"offer-text\"},[_c('p',[_vm._v(_vm._s(_vm.$t('license.offerp1-admin')))]),_c('p',[_vm._v(_vm._s(_vm.$t('license.offerp2-admin')))])]),_c('v-row',{attrs:{\"dense\":\"\",\"align-content\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"12\",\"md\":\"12\",\"align-self\":\"center\"}},[_c('div',{staticClass:\"terms-wrapper\"},[_vm._v(\" \"+_vm._s(_vm.$t('common.read-and-understood1'))+\" \"),_c('a',{staticClass:\"terms-and-condition\",attrs:{\"target\":\"_blank\",\"href\":_vm.termsUrl}},[_vm._v(\" \"+_vm._s(_vm.$t('common.read-and-understood2')))]),_c('v-checkbox',{staticClass:\"understood\",attrs:{\"dense\":\"\"},model:{value:(_vm.readAndUnderstood),callback:function ($$v) {_vm.readAndUnderstood=$$v},expression:\"readAndUnderstood\"}})],1),_c('v-toolbar',{staticClass:\"license-actions\",attrs:{\"flat\":\"\"}},[(_vm.error)?_c('div',{attrs:{\"id\":\"error\"}},[_vm._v(\" \"+_vm._s(_vm.error)+\" \")]):_vm._e(),_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"secondary\",\"loading\":_vm.upgrading,\"disabled\":!_vm.readAndUnderstood},on:{\"click\":_vm.upgradeLicenseEvent}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.order-now'))+\" \")])],1)],1)],1)]:[_c('div',{staticClass:\"offer-text\"},[_c('p',[_vm._v(_vm._s(_vm.$t('license.offerp1')))]),_c('p',[_vm._v(_vm._s(_vm.$t('license.offerp2')))])])]]],2),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"7\"}},[_c('v-img',{attrs:{\"id\":\"license-image\",\"src\":require(\"@/assets/images/contract.png\")}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { ref, defineComponent, onMounted } from '@vue/composition-api';\nimport { useLicense } from '@/modules/license';\nimport moment from 'moment';\nimport { useAuth } from '@/modules/auth';\nimport { PROJECT_START_PATH } from '@/constants/routes';\nimport { UsernameModel } from '@/models/common/interfaces';\nimport { LicensePrice } from '@/models/admin/interfaces';\nimport router from '@/router/index';\nimport Loader from '@/components/loader/index.vue';\nimport { translate } from '@/localization';\n\nexport default defineComponent({\n components: {\n Loader,\n },\n setup() {\n const { license, user } = useAuth();\n const {\n upgradeLicense,\n purchaseLicense,\n getLicensePrice,\n error,\n } = useLicense();\n\n const licensePrice = ref();\n const loading = ref(true);\n const upgrading = ref(false);\n const readAndUnderstood = ref(false);\n\n onMounted(async () => {\n licensePrice.value = await getLicensePrice();\n loading.value = false;\n });\n\n const licenseInfoHeaderText = license?.value?.ExpiryDate\n ? `${translate('license.expired')} ${moment(\n license?.value?.ExpiryDate\n ).format('Do MMMM YYYY')}.`\n : `${translate('license.did-expire')}`;\n\n const title = license?.value?.Trial\n ? `${translate('license.upgrade')}`\n : `${translate('license.attention')}`;\n\n const isValid = !moment(license?.value?.ExpiryDate).isBefore();\n\n const secondaryTitle = license?.value?.Trial\n ? isValid\n ? `${translate('license.valid-until')} ${moment(\n license?.value?.ExpiryDate\n ).format('Do MMMM YYYY')}.`\n : `${translate('license.expired')} ${moment(\n license?.value?.ExpiryDate\n ).format('Do MMMM YYYY')}.`\n : license?.value?.ExpiryDate\n ? `${translate('license.expired')} ${moment(\n license?.value?.ExpiryDate\n ).format('Do MMMM YYYY')}.`\n : `${translate('license.did-expire')}`;\n\n const upgradeLicenseEvent = async () => {\n if (!user?.value || !license?.value) return;\n\n upgrading.value = true;\n const userName: UsernameModel = {\n UserName: user.value.Email,\n };\n\n if (license.value.Trial) {\n await upgradeLicense(userName);\n } else {\n await purchaseLicense(userName);\n }\n upgrading.value = false;\n if (!error?.value && router.currentRoute.path !== PROJECT_START_PATH) {\n await router.push(PROJECT_START_PATH);\n }\n };\n\n return {\n licensePrice,\n isAdmin: user?.value?.IsAdmin,\n readAndUnderstood,\n licenseInfoHeaderText,\n upgradeLicenseEvent,\n loading,\n error,\n upgrading,\n license,\n title,\n secondaryTitle,\n isValid,\n termsUrl: process.env.VUE_APP_TERMS_URL,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=c1393664&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=c1393664&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c1393664\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VBtn,VCheckbox,VCol,VImg,VRow,VSpacer,VToolbar})\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&lang=scss&\"","import { isSuccess } from '@/helpers/common';\nimport {\n BuildingElementCalculation,\n BuildingItemCalculation,\n} from '@/models/building-element/interfaces';\nimport {\n CustomError,\n ProfessionTemplateSetting,\n} from '@/models/common/interfaces';\nimport {\n BuildingElementTemplate,\n BuildingItemTemplate,\n BuildingTypeTemplate,\n TemplateFile,\n} from '@/models/library/interfaces';\nimport { reactive, toRefs } from '@vue/composition-api';\nimport { useApi } from './api';\nimport { useCalculation } from './calculation';\nimport { useErrorModal } from './error';\nimport { useGlobal } from './global';\nimport { useSnackbar } from './snackbar';\nimport { v4 as uuidv4 } from 'uuid';\n\ninterface State {\n error?: CustomError;\n buildingTemplatesByProfession: Array | undefined;\n buildingTemplates: Array | undefined;\n lastUsedTemplate: BuildingTypeTemplate | undefined;\n activeTemplate: BuildingTypeTemplate | undefined;\n downloadableFiles: Array;\n loading: boolean;\n}\n\nconst state = reactive({\n error: undefined,\n buildingTemplatesByProfession: [],\n buildingTemplates: undefined,\n lastUsedTemplate: undefined,\n activeTemplate: undefined,\n downloadableFiles: [],\n loading: false,\n});\n\nexport const useLibrary = () => {\n const { snack } = useSnackbar();\n const { errorModal } = useErrorModal();\n\n const getBuildingTemplate = async (\n templateId: string\n ): Promise => {\n let template: BuildingTypeTemplate | undefined = undefined;\n\n const { get } = useApi(`/buildingtypetemplate/${templateId}/full`);\n\n try {\n const response = await get();\n if (isSuccess(response.status)) {\n template = response.data;\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n\n return template;\n };\n\n const getLastUsedTemplate = async (\n force?: boolean\n ): Promise => {\n const { userSettings } = useGlobal();\n const { activeCalculation } = useCalculation();\n\n if (state.lastUsedTemplate && !force) {\n return state.lastUsedTemplate;\n }\n\n if (!activeCalculation?.value) return;\n\n let lastUsed: ProfessionTemplateSetting | undefined = undefined;\n let selectedTemplate: BuildingTypeTemplate | undefined = undefined;\n\n if (userSettings?.value) {\n lastUsed = userSettings.value.LastUsedTemplates?.find(\n t => t.ProfessionCode === activeCalculation.value?.ProfessionCode\n );\n }\n\n if (lastUsed) {\n selectedTemplate = state.buildingTemplatesByProfession?.find(\n t => t.Id === lastUsed?.Id\n );\n if (selectedTemplate) {\n state.lastUsedTemplate = selectedTemplate;\n return selectedTemplate;\n }\n }\n\n return state.buildingTemplatesByProfession &&\n state.buildingTemplatesByProfession.length > 0\n ? state.buildingTemplatesByProfession[0]\n : undefined;\n };\n\n const getBuildingTemplatesByProfession = async (\n professionCode: string,\n force?: boolean\n ): Promise | undefined> => {\n if (state.buildingTemplatesByProfession && !force) {\n return state.buildingTemplatesByProfession;\n }\n const { get } = useApi(`/buildingtypetemplate/${professionCode}`);\n\n try {\n const response = await get();\n if (isSuccess(response.status)) {\n state.buildingTemplatesByProfession = response.data;\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n\n return state.buildingTemplatesByProfession;\n };\n\n const getBuildingTemplatesByCode = async (\n professionCode: string\n ): Promise | undefined> => {\n let templates: Array = [];\n const { get } = useApi(`/buildingtypetemplate/${professionCode}`);\n\n try {\n const response = await get();\n if (isSuccess(response.status)) {\n templates = response.data;\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n\n return templates;\n };\n\n const updateLastUsedTemplate = async (\n professionCode: string,\n id: string,\n templateName: string\n ): Promise => {\n const { userSettings, saveSettings } = useGlobal();\n if (userSettings?.value?.LastUsedTemplates) {\n const exists:\n | ProfessionTemplateSetting\n | undefined = userSettings.value.LastUsedTemplates.find(\n t => t.ProfessionCode === professionCode\n );\n\n if (exists?.Id && exists.TemplateName) {\n exists.Id = id;\n exists.TemplateName = templateName;\n await saveSettings();\n } else {\n const pts: ProfessionTemplateSetting = {\n Id: id,\n ProfessionCode: professionCode,\n TemplateName: templateName,\n };\n userSettings.value.LastUsedTemplates.push(pts);\n await saveSettings();\n }\n }\n await getLastUsedTemplate(true);\n };\n\n const getAllBuildingTemplates = async (\n force?: boolean\n ): Promise | undefined> => {\n if (state.buildingTemplates && !force) {\n return state.buildingTemplates;\n }\n\n const { get } = useApi('/buildingtypetemplate');\n\n try {\n const response = await get();\n if (isSuccess(response.status)) {\n state.buildingTemplates = response.data;\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n\n return state.buildingTemplates;\n };\n\n const downloadTemplateFile = async (\n templateFile: TemplateFile\n ): Promise => {\n let success = false;\n const { post } = useApi('/buildingtypetemplate');\n\n try {\n const response = await post(templateFile);\n if (isSuccess(response.status)) {\n success = true;\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n\n return success;\n };\n\n const getTemplateFiles = async (\n force?: boolean\n ): Promise> => {\n if (state.downloadableFiles && !force) {\n return state.downloadableFiles;\n }\n const { get } = useApi('/templatefile');\n try {\n const response = await get();\n if (isSuccess(response.status)) {\n state.downloadableFiles = response.data;\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n return state.downloadableFiles;\n };\n\n const createBuildingTypeTemplate = async (\n buildingTypeTemplate: BuildingTypeTemplate\n ): Promise => {\n let success = false;\n const { post } = useApi('/buildingtypetemplate/create');\n\n try {\n const response = await post(buildingTypeTemplate);\n if (isSuccess(response.status)) {\n success = true;\n snack('snack.template-created', true);\n if (\n buildingTypeTemplate.ProfessionCode &&\n buildingTypeTemplate.Id &&\n buildingTypeTemplate.Name\n ) {\n await updateLastUsedTemplate(\n buildingTypeTemplate.ProfessionCode,\n buildingTypeTemplate.Id,\n buildingTypeTemplate.Name\n );\n }\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n\n return success;\n };\n\n const createBuildingElementTemplate = async (\n buildingElementTemplate: BuildingElementTemplate,\n buildingTypeTemplateId: string\n ): Promise => {\n let success = false;\n const { post } = useApi(\n `/buildingtypetemplate/${buildingTypeTemplateId}/addbuildingelementtemplate`\n );\n\n try {\n const response = await post(buildingElementTemplate);\n if (isSuccess(response.status)) {\n success = true;\n snack('snack.building-element-template-created', true);\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n\n return success;\n };\n\n const createBuildingItemTemplate = async (\n buildingItemTemplate: BuildingItemTemplate,\n buildingElementTemplateId: string\n ): Promise => {\n let success = false;\n const { post } = useApi(\n `/buildingtypetemplate/${buildingElementTemplateId}/addbuildingitemtemplate`\n );\n\n try {\n const response = await post(buildingItemTemplate);\n if (isSuccess(response.status)) {\n success = true;\n snack('snack.building-item-template-created', true);\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n\n return success;\n };\n\n const updateBuildingTypeTemplate = async (\n buildingTypeTemplate: BuildingTypeTemplate\n ): Promise => {\n let success = false;\n const { put } = useApi('/buildingtypetemplate/update');\n\n try {\n const response = await put(buildingTypeTemplate);\n if (isSuccess(response.status)) {\n success = true;\n snack('snack.template-updated', true);\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n\n return success;\n };\n\n const deleteBuildingTypeTemplate = async (\n buildingTypeTemplateId: string\n ): Promise => {\n let success = false;\n const { deleteReq } = useApi(\n `/buildingtypetemplate/${buildingTypeTemplateId}/deletebuildingtypetemplate`\n );\n\n try {\n const response = await deleteReq();\n if (isSuccess(response.status)) {\n success = true;\n snack('snack.template-deleted', true);\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n\n return success;\n };\n\n const deleteBuildingElementTemplate = async (\n buildingElementTemplateId: string\n ): Promise => {\n let success = false;\n const { deleteReq } = useApi(\n `/buildingtypetemplate/${buildingElementTemplateId}/deletebuildingelementtemplate`\n );\n\n try {\n const response = await deleteReq();\n if (isSuccess(response.status)) {\n success = true;\n snack('snack.building-element-template-deleted', true);\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n\n return success;\n };\n\n const deleteBuildingItemTemplate = async (\n buildingItemTemplateId: string\n ): Promise => {\n let success = false;\n const { deleteReq } = useApi(\n `/buildingtypetemplate/${buildingItemTemplateId}/deletebuildingitemtemplate`\n );\n\n try {\n const response = await deleteReq();\n if (isSuccess(response.status)) {\n success = true;\n snack('snack.building-item-template-deleted', true);\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n\n return success;\n };\n\n const importTemplate = async (\n template: BuildingTypeTemplate\n ): Promise => {\n let success = false;\n const { post } = useApi('/buildingtypetemplate/import');\n\n try {\n const response = await post(template);\n if (isSuccess(response.status)) {\n success = true;\n snack('snack.import-success', true);\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n\n return success;\n };\n\n const setActiveTemplate = async (template: BuildingTypeTemplate) => {\n if (template.ProfessionCode && template.Name && template.Id) {\n state.loading = true;\n if (state.lastUsedTemplate?.Id !== template.Id) {\n await updateLastUsedTemplate(\n template.ProfessionCode,\n template.Id,\n template.Name\n );\n }\n state.activeTemplate = await getBuildingTemplate(template.Id);\n\n state.loading = false;\n }\n };\n\n const destructCurrentLibrary = async () => {\n state.buildingTemplatesByProfession = [];\n state.activeTemplate = undefined;\n state.buildingTemplates = [];\n state.lastUsedTemplate = undefined;\n };\n\n const initCalculationLibrary = async () => {\n const { projectCalculation } = useCalculation();\n\n if (!projectCalculation?.value?.Profession?.Code) return;\n state.loading = true;\n await getBuildingTemplatesByProfession(\n projectCalculation.value.Profession.Code,\n true\n );\n const lastUsed = await getLastUsedTemplate(true);\n if (lastUsed) {\n await setActiveTemplate(lastUsed);\n } else {\n destructCurrentLibrary();\n }\n\n state.loading = false;\n };\n\n const createBuildingItemTemplateFromBIC = (item: BuildingItemCalculation) => {\n const template: BuildingItemTemplate = {\n Id: uuidv4(),\n Name: item.Name,\n TimeEstimateName: item.TimeEstimateName ?? null,\n DeliveryOrder: item.DeliveryOrder ?? null,\n AccountNumber: item.AccountNumber?.toString() ?? null,\n NOBBNumber: item.NOBBNumber?.toString() ?? null,\n NS3420: item.NS3420 ?? null,\n Unit: item.Unit,\n UnitForOrder: item.UnitForOrder,\n Amount: item.Amount ?? null,\n AmountAdjustment: item.AmountAdjustment ?? null,\n AmountPrUnit: item.AmountPrUnit ?? null,\n Price: item.Price ?? null,\n PriceListName: item.PriceListName ?? null,\n PriceListItemName: item.PriceListItemName ?? null,\n BaseTime: item.BaseTime ?? null,\n OpeningAddition: item.OpeningAddition ?? null,\n SurfaceAddition: item.SurfaceAddition ?? null,\n TransportationAddition: item.TransportationAddition ?? null,\n IsFDVExportSelected: item.IsFDVExportSelected,\n MileStone: item.MileStone ?? null,\n Comments: item.Comments ?? null,\n Transport: item.Transport ?? null,\n Precut: item.Precut ?? null,\n SortOrder: item.SortOrder,\n Created: new Date().toLocaleString(),\n LastModified: new Date().toLocaleString(),\n BuildingElementTemplateId: null,\n };\n\n return template;\n };\n\n const createBuildingElementTemplateFromBEC = (\n element: BuildingElementCalculation,\n buildingTypeTemplateId: string\n ) => {\n const template: BuildingElementTemplate = {\n Id: uuidv4(),\n Name: element.Name,\n BuildingTypeTemplateId: buildingTypeTemplateId,\n Created: new Date().toLocaleString(),\n LastModified: new Date().toLocaleString(),\n Amount: null,\n NS3450: element.NS3450,\n NS3451: element.NS3451,\n Unit: element.Unit?.value ?? null,\n Comments: element.Comments,\n AdditionItemTemplates: [],\n BuildingItemTemplates: [],\n Code: null,\n ProductionLine: null,\n SortOrder: null,\n Transport: null,\n };\n\n if (element.BuildingItems.length > 0) {\n element.BuildingItems.forEach(item => {\n const itemTemplate = createBuildingItemTemplateFromBIC(item);\n template.BuildingItemTemplates.push(itemTemplate);\n });\n }\n\n return template;\n };\n\n const addElementToActiveLibrary = async (\n element: BuildingElementCalculation\n ) => {\n const { activateLibrary } = useCalculation();\n\n activateLibrary.value = true;\n if (state.activeTemplate?.Id) {\n const template = createBuildingElementTemplateFromBEC(\n element,\n state.activeTemplate.Id\n );\n state.loading = true;\n const success = await createBuildingElementTemplate(\n template,\n state.activeTemplate.Id\n );\n if (success) {\n state.activeTemplate = await getBuildingTemplate(\n state.activeTemplate.Id\n );\n }\n state.loading = false;\n }\n };\n\n const addElementToLibrary = async (\n template: BuildingTypeTemplate,\n element: BuildingElementCalculation,\n newName: string\n ) => {\n const { activateLibrary } = useCalculation();\n if (template.Id) {\n const temp = createBuildingElementTemplateFromBEC(element, template.Id);\n temp.Name = newName;\n state.loading = true;\n const success = await createBuildingElementTemplate(temp, template.Id);\n if (success && state.activeTemplate?.Id === template.Id) {\n activateLibrary.value = false;\n state.activeTemplate = await getBuildingTemplate(template.Id);\n }\n state.loading = false;\n }\n };\n\n const addItemToLibrary = async (\n template: BuildingTypeTemplate,\n elementTemplate: BuildingElementTemplate,\n item: BuildingItemCalculation,\n newName: string\n ) => {\n const { activateLibrary } = useCalculation();\n if (elementTemplate.Id && template.Id) {\n state.loading = true;\n const itemTemplate = createBuildingItemTemplateFromBIC(item);\n itemTemplate.Name = newName;\n const success = await createBuildingItemTemplate(\n itemTemplate,\n elementTemplate.Id\n );\n if (success && state.activeTemplate?.Id === template.Id) {\n activateLibrary.value = false;\n state.activeTemplate = await getBuildingTemplate(template.Id);\n }\n state.loading = false;\n }\n };\n\n return {\n ...toRefs(state),\n getBuildingTemplate,\n getBuildingTemplatesByProfession,\n getBuildingTemplatesByCode,\n getAllBuildingTemplates,\n downloadTemplateFile,\n getTemplateFiles,\n createBuildingTypeTemplate,\n createBuildingElementTemplate,\n createBuildingItemTemplate,\n updateBuildingTypeTemplate,\n deleteBuildingTypeTemplate,\n deleteBuildingElementTemplate,\n deleteBuildingItemTemplate,\n getLastUsedTemplate,\n importTemplate,\n updateLastUsedTemplate,\n initCalculationLibrary,\n setActiveTemplate,\n destructCurrentLibrary,\n addElementToLibrary,\n addElementToActiveLibrary,\n addItemToLibrary,\n createBuildingElementTemplateFromBEC,\n };\n};\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=39324882&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BuildingElementEnvironment.vue?vue&type=style&index=0&id=04ca90be&scoped=true&lang=css&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=40419f96&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=4379c945&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=6933789c&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=fc5e8b0a&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=765fc1c4&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('v-row',{attrs:{\"align-content\":\"center\",\"justify\":\"center\"}},[_c('div',{class:_vm.margins ? 'loader-margins' : ''},[_c('v-progress-circular',{staticClass:\"progress\",attrs:{\"color\":\"secondary\",\"indeterminate\":\"\",\"size\":_vm.small ? 24 : 64}}),(_vm.text)?_c('div',{staticClass:\"status-text\"},[_vm._v(\" \"+_vm._s(_vm.text)+\" \")]):_vm._e()],1)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\n\nexport default defineComponent({\n props: {\n small: {\n type: Boolean,\n },\n margins: {\n type: Boolean,\n },\n text: {\n type: String,\n },\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=1d027f51&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=1d027f51&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1d027f51\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VContainer,VProgressCircular,VRow})\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=142a34b2&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=24c678ef&lang=scss&scoped=true&\"","import {\n AdditionItem,\n AdditionItemCalculation,\n BuildingElementCalculation,\n} from '@/models/building-element/interfaces';\nimport { useCalculation } from '@/modules/calculation';\nimport { computed } from '@vue/composition-api';\nimport { roundToTwoDecimals } from './common';\n\nconst mapBuildingAdditionItemCalcProperties = (\n additionItem: AdditionItem,\n element: BuildingElementCalculation\n): AdditionItemCalculation => {\n const { getCalculationFactorValue } = useCalculation();\n const _additionItem: AdditionItemCalculation = {\n PriceListItemName: null,\n UnitForOrder: null,\n Comments: null,\n BuildingElement: element,\n BuildingElementId: element.Id,\n Items: [],\n AmountAdjusted: null,\n AmountAdjustment: additionItem.AmountAdjustment,\n AmountPrUnit: additionItem.AmountPrUnit ?? null,\n Id: additionItem.Id,\n Factor1: additionItem.Factor1 ?? null,\n Name: additionItem.Name ?? null,\n Amount: additionItem.Amount ?? 0,\n Unit: additionItem.Unit ?? null,\n SortOrder: additionItem.SortOrder ?? null,\n Created: additionItem.Created,\n LastModified: additionItem.LastModified,\n Price: additionItem.Price,\n MileStone: '',\n NS3420: '',\n Factor1Calculated: computed({\n get() {\n if (_additionItem.Factor1 != null) {\n return _additionItem.Factor1;\n } else if (\n _additionItem.BuildingElement?.Factor1Calculated?.value != null\n ) {\n return _additionItem.BuildingElement.Factor1Calculated.value;\n }\n\n return null;\n },\n set(val) {\n _additionItem.Factor1 = val;\n },\n }),\n BaseTime: computed(() => {\n let time = 0;\n if (_additionItem.BuildingElement != null) {\n if (\n _additionItem.Name === 'Åpninger' &&\n _additionItem.BuildingElement.OpeningAddition?.value != null\n ) {\n time = _additionItem.BuildingElement.OpeningAddition.value;\n } else if (\n _additionItem.BuildingElement.SurfaceAddition?.value != null\n ) {\n time = _additionItem.BuildingElement.SurfaceAddition.value;\n }\n }\n return time;\n }),\n TimePrUnit: computed(() => {\n let time = 0;\n\n if (\n _additionItem.BaseTime?.value != null &&\n _additionItem.Factor1Calculated?.value != null\n ) {\n time =\n _additionItem.BaseTime.value * _additionItem.Factor1Calculated.value;\n }\n return time;\n }),\n AmountCalculated: computed({\n get() {\n if (_additionItem.Amount != null) {\n return _additionItem.Amount;\n }\n\n return 0;\n },\n set(val) {\n if (!val) {\n _additionItem.Amount = 0;\n } else {\n _additionItem.Amount = val;\n }\n\n if (val != null) {\n _additionItem.AmountAdjustment = null;\n }\n },\n }),\n SumHours: computed(() => {\n let sum = 0;\n\n if (\n _additionItem.TimePrUnit?.value &&\n _additionItem.AmountCalculated?.value\n ) {\n sum =\n _additionItem.TimePrUnit.value * _additionItem.AmountCalculated.value;\n }\n\n return sum;\n }),\n Factor2: computed(() => {\n let factor2: Nullable = null;\n\n if (_additionItem.BuildingElement?.Project) {\n factor2 = getCalculationFactorValue(\n 2,\n _additionItem.BuildingElement?.Project\n );\n }\n\n let time = 0;\n if (_additionItem.TimePrUnit?.value != null && factor2 != null) {\n time = _additionItem.TimePrUnit.value * factor2;\n }\n return time;\n }),\n SumProductionSalary: computed(() => {\n let prodSalary = 0;\n\n if (\n _additionItem.Factor2?.value != null &&\n _additionItem.AmountCalculated?.value != null\n ) {\n prodSalary =\n _additionItem.Factor2.value * _additionItem.AmountCalculated.value;\n }\n return prodSalary;\n }),\n Factor3: computed(() => {\n let factor3: Nullable = null;\n\n if (_additionItem.BuildingElement?.Project) {\n factor3 = getCalculationFactorValue(\n 3,\n _additionItem.BuildingElement?.Project\n );\n }\n\n let prodSalary = 0;\n if (factor3 != null && _additionItem.SumProductionSalary?.value != null) {\n prodSalary = _additionItem.SumProductionSalary.value * (factor3 - 1);\n }\n return prodSalary;\n }),\n Factor4: computed(() => {\n let factor4: Nullable = null;\n\n if (_additionItem.BuildingElement?.Project) {\n factor4 = getCalculationFactorValue(\n 4,\n _additionItem.BuildingElement?.Project\n );\n }\n\n let prodSalary = 0;\n if (factor4 != null && _additionItem.SumProductionSalary?.value != null) {\n prodSalary = _additionItem.SumProductionSalary.value * (factor4 - 1);\n }\n return prodSalary;\n }),\n SumSalaryAndSocialCost: computed(() => {\n let salary = 0;\n\n if (\n _additionItem.SumProductionSalary?.value != null &&\n _additionItem.Factor3?.value != null\n ) {\n salary =\n _additionItem.SumProductionSalary.value + _additionItem.Factor3.value;\n }\n return salary;\n }),\n ProjectCost: computed(() => {\n const cost = 0;\n\n if (\n _additionItem.SumSelfCostMaterialsSubContractors?.value != null &&\n _additionItem.SumProductionSalary?.value != null &&\n _additionItem.Factor3?.value != null\n ) {\n return (\n _additionItem.SumSelfCostMaterialsSubContractors.value +\n _additionItem.SumProductionSalary.value +\n _additionItem.Factor3.value\n );\n }\n return cost;\n }),\n SumSelfCostSalaryAndExpenses: computed(() => {\n let cost = 0;\n if (\n _additionItem.SumProductionSalary?.value != null &&\n _additionItem.Factor3?.value != null &&\n _additionItem.Factor4?.value != null\n ) {\n cost =\n _additionItem.SumProductionSalary.value +\n _additionItem.Factor3.value +\n _additionItem.Factor4.value;\n }\n return cost;\n }),\n Factor6: computed(() => {\n let factor6: Nullable = null;\n\n if (_additionItem.BuildingElement?.Project) {\n factor6 = getCalculationFactorValue(\n 6,\n _additionItem.BuildingElement?.Project\n );\n }\n let selfCost = 0;\n if (\n factor6 != null &&\n _additionItem.SumSelfCostSalaryAndExpenses?.value != null\n ) {\n selfCost =\n _additionItem.SumSelfCostSalaryAndExpenses.value * (factor6 - 1);\n }\n return selfCost;\n }),\n SumSalaryAndExpenses: computed(() => {\n let salary = 0;\n if (\n _additionItem.SumSelfCostSalaryAndExpenses?.value != null &&\n _additionItem.Factor6?.value != null\n ) {\n salary =\n _additionItem.SumSelfCostSalaryAndExpenses.value +\n _additionItem.Factor6.value;\n }\n\n return salary;\n }),\n SumSelfCost: computed(() => {\n let sumSelfCost = 0;\n\n if (_additionItem.SumSelfCostSalaryAndExpenses?.value != null) {\n sumSelfCost = _additionItem.SumSelfCostSalaryAndExpenses.value;\n }\n return sumSelfCost;\n }),\n SumProfit: computed(() => {\n let profit = 0;\n\n if (_additionItem.Factor6?.value != null) {\n profit = _additionItem.Factor6.value;\n }\n return profit;\n }),\n SumTotal: computed(() => {\n let total = 0;\n\n if (_additionItem.SumSalaryAndExpenses?.value != null) {\n total = _additionItem.SumSalaryAndExpenses.value;\n }\n\n return total;\n }),\n UnitPrice: computed(() => {\n let price = 0;\n\n if (\n _additionItem.AmountCalculated?.value != null &&\n _additionItem.AmountCalculated.value > 0 &&\n _additionItem.SumTotal?.value != null &&\n _additionItem.SumTotal.value > 0\n ) {\n price =\n roundToTwoDecimals(_additionItem.SumTotal.value) /\n roundToTwoDecimals(_additionItem.AmountCalculated.value);\n }\n return price;\n }),\n SumTotalWithAdditions: computed(() => {\n let total = 0;\n\n if (_additionItem.SumTotal?.value != null) {\n total = _additionItem.SumTotal.value;\n }\n return total;\n }),\n UnitPriceWithAdditions: computed(() => {\n let additions = 0;\n\n if (_additionItem.UnitPrice?.value != null) {\n additions = _additionItem.UnitPrice.value;\n }\n return additions;\n }),\n SumSelfCostMaterialsSubContractors: computed(() => {\n return 0;\n }),\n UnitPriceMaterials: computed(() => {\n return 0;\n }),\n SumMaterialsUE: computed(() => {\n return 0;\n }),\n SumTime: computed(() => {\n return 0;\n }),\n };\n\n return _additionItem;\n};\n\nexport const buildAdditionItemCalculations = (\n additions: Array,\n element: BuildingElementCalculation\n): Array => {\n const _additionCalc: Array = [];\n additions.forEach(adi => {\n const addition = mapBuildingAdditionItemCalcProperties(adi, element);\n _additionCalc.push(addition);\n });\n\n return _additionCalc;\n};\n\nexport const mapAdditionCalcToAdditionItem = (\n additionCalc: AdditionItemCalculation\n): AdditionItem => {\n return {\n Amount: additionCalc.Amount ?? 0,\n AmountAdjustment: additionCalc.AmountAdjustment,\n AmountPrUnit: additionCalc.AmountPrUnit,\n BuildingElementId: additionCalc.BuildingElementId,\n Comments: additionCalc.Comments,\n Created: additionCalc.Created,\n Factor1: additionCalc.Factor1,\n Id: additionCalc.Id,\n LastModified: additionCalc.LastModified,\n Name: additionCalc.Name,\n Price: additionCalc.Price,\n SortOrder: additionCalc.SortOrder,\n Unit: additionCalc.Unit,\n };\n};\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CalculationEnvironmentalImpact.vue?vue&type=style&index=0&id=91ab2064&scoped=true&lang=css&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=5ebd5c44&lang=scss&scoped=true&\"","var map = {\n\t\"./af\": \"2bfb\",\n\t\"./af.js\": \"2bfb\",\n\t\"./ar\": \"8e73\",\n\t\"./ar-dz\": \"a356\",\n\t\"./ar-dz.js\": \"a356\",\n\t\"./ar-kw\": \"423e\",\n\t\"./ar-kw.js\": \"423e\",\n\t\"./ar-ly\": \"1cfd\",\n\t\"./ar-ly.js\": \"1cfd\",\n\t\"./ar-ma\": \"0a84\",\n\t\"./ar-ma.js\": \"0a84\",\n\t\"./ar-sa\": \"8230\",\n\t\"./ar-sa.js\": \"8230\",\n\t\"./ar-tn\": \"6d83\",\n\t\"./ar-tn.js\": \"6d83\",\n\t\"./ar.js\": \"8e73\",\n\t\"./az\": \"485c\",\n\t\"./az.js\": \"485c\",\n\t\"./be\": \"1fc1\",\n\t\"./be.js\": \"1fc1\",\n\t\"./bg\": \"84aa\",\n\t\"./bg.js\": \"84aa\",\n\t\"./bm\": \"a7fa\",\n\t\"./bm.js\": \"a7fa\",\n\t\"./bn\": \"9043\",\n\t\"./bn-bd\": \"9686\",\n\t\"./bn-bd.js\": \"9686\",\n\t\"./bn.js\": \"9043\",\n\t\"./bo\": \"d26a\",\n\t\"./bo.js\": \"d26a\",\n\t\"./br\": \"6887\",\n\t\"./br.js\": \"6887\",\n\t\"./bs\": \"2554\",\n\t\"./bs.js\": \"2554\",\n\t\"./ca\": \"d716\",\n\t\"./ca.js\": \"d716\",\n\t\"./cs\": \"3c0d\",\n\t\"./cs.js\": \"3c0d\",\n\t\"./cv\": \"03ec\",\n\t\"./cv.js\": \"03ec\",\n\t\"./cy\": \"9797\",\n\t\"./cy.js\": \"9797\",\n\t\"./da\": \"0f14\",\n\t\"./da.js\": \"0f14\",\n\t\"./de\": \"b469\",\n\t\"./de-at\": \"b3eb\",\n\t\"./de-at.js\": \"b3eb\",\n\t\"./de-ch\": \"bb71\",\n\t\"./de-ch.js\": \"bb71\",\n\t\"./de.js\": \"b469\",\n\t\"./dv\": \"598a\",\n\t\"./dv.js\": \"598a\",\n\t\"./el\": \"8d47\",\n\t\"./el.js\": \"8d47\",\n\t\"./en-au\": \"0e6b\",\n\t\"./en-au.js\": \"0e6b\",\n\t\"./en-ca\": \"3886\",\n\t\"./en-ca.js\": \"3886\",\n\t\"./en-gb\": \"39a6\",\n\t\"./en-gb.js\": \"39a6\",\n\t\"./en-ie\": \"e1d3\",\n\t\"./en-ie.js\": \"e1d3\",\n\t\"./en-il\": \"7333\",\n\t\"./en-il.js\": \"7333\",\n\t\"./en-in\": \"ec2e\",\n\t\"./en-in.js\": \"ec2e\",\n\t\"./en-nz\": \"6f50\",\n\t\"./en-nz.js\": \"6f50\",\n\t\"./en-sg\": \"b7e9\",\n\t\"./en-sg.js\": \"b7e9\",\n\t\"./eo\": \"65db\",\n\t\"./eo.js\": \"65db\",\n\t\"./es\": \"898b\",\n\t\"./es-do\": \"0a3c\",\n\t\"./es-do.js\": \"0a3c\",\n\t\"./es-mx\": \"b5b7\",\n\t\"./es-mx.js\": \"b5b7\",\n\t\"./es-us\": \"55c9\",\n\t\"./es-us.js\": \"55c9\",\n\t\"./es.js\": \"898b\",\n\t\"./et\": \"ec18\",\n\t\"./et.js\": \"ec18\",\n\t\"./eu\": \"0ff2\",\n\t\"./eu.js\": \"0ff2\",\n\t\"./fa\": \"8df4\",\n\t\"./fa.js\": \"8df4\",\n\t\"./fi\": \"81e9\",\n\t\"./fi.js\": \"81e9\",\n\t\"./fil\": \"d69a\",\n\t\"./fil.js\": \"d69a\",\n\t\"./fo\": \"0721\",\n\t\"./fo.js\": \"0721\",\n\t\"./fr\": \"9f26\",\n\t\"./fr-ca\": \"d9f8\",\n\t\"./fr-ca.js\": \"d9f8\",\n\t\"./fr-ch\": \"0e49\",\n\t\"./fr-ch.js\": \"0e49\",\n\t\"./fr.js\": \"9f26\",\n\t\"./fy\": \"7118\",\n\t\"./fy.js\": \"7118\",\n\t\"./ga\": \"5120\",\n\t\"./ga.js\": \"5120\",\n\t\"./gd\": \"f6b4\",\n\t\"./gd.js\": \"f6b4\",\n\t\"./gl\": \"8840\",\n\t\"./gl.js\": \"8840\",\n\t\"./gom-deva\": \"aaf2\",\n\t\"./gom-deva.js\": \"aaf2\",\n\t\"./gom-latn\": \"0caa\",\n\t\"./gom-latn.js\": \"0caa\",\n\t\"./gu\": \"e0c5\",\n\t\"./gu.js\": \"e0c5\",\n\t\"./he\": \"c7aa\",\n\t\"./he.js\": \"c7aa\",\n\t\"./hi\": \"dc4d\",\n\t\"./hi.js\": \"dc4d\",\n\t\"./hr\": \"4ba9\",\n\t\"./hr.js\": \"4ba9\",\n\t\"./hu\": \"5b14\",\n\t\"./hu.js\": \"5b14\",\n\t\"./hy-am\": \"d6b6\",\n\t\"./hy-am.js\": \"d6b6\",\n\t\"./id\": \"5038\",\n\t\"./id.js\": \"5038\",\n\t\"./is\": \"0558\",\n\t\"./is.js\": \"0558\",\n\t\"./it\": \"6e98\",\n\t\"./it-ch\": \"6f12\",\n\t\"./it-ch.js\": \"6f12\",\n\t\"./it.js\": \"6e98\",\n\t\"./ja\": \"079e\",\n\t\"./ja.js\": \"079e\",\n\t\"./jv\": \"b540\",\n\t\"./jv.js\": \"b540\",\n\t\"./ka\": \"201b\",\n\t\"./ka.js\": \"201b\",\n\t\"./kk\": \"6d79\",\n\t\"./kk.js\": \"6d79\",\n\t\"./km\": \"e81d\",\n\t\"./km.js\": \"e81d\",\n\t\"./kn\": \"3e92\",\n\t\"./kn.js\": \"3e92\",\n\t\"./ko\": \"22f8\",\n\t\"./ko.js\": \"22f8\",\n\t\"./ku\": \"2421\",\n\t\"./ku.js\": \"2421\",\n\t\"./ky\": \"9609\",\n\t\"./ky.js\": \"9609\",\n\t\"./lb\": \"440c\",\n\t\"./lb.js\": \"440c\",\n\t\"./lo\": \"b29d\",\n\t\"./lo.js\": \"b29d\",\n\t\"./lt\": \"26f9\",\n\t\"./lt.js\": \"26f9\",\n\t\"./lv\": \"b97c\",\n\t\"./lv.js\": \"b97c\",\n\t\"./me\": \"293c\",\n\t\"./me.js\": \"293c\",\n\t\"./mi\": \"688b\",\n\t\"./mi.js\": \"688b\",\n\t\"./mk\": \"6909\",\n\t\"./mk.js\": \"6909\",\n\t\"./ml\": \"02fb\",\n\t\"./ml.js\": \"02fb\",\n\t\"./mn\": \"958b\",\n\t\"./mn.js\": \"958b\",\n\t\"./mr\": \"39bd\",\n\t\"./mr.js\": \"39bd\",\n\t\"./ms\": \"ebe4\",\n\t\"./ms-my\": \"6403\",\n\t\"./ms-my.js\": \"6403\",\n\t\"./ms.js\": \"ebe4\",\n\t\"./mt\": \"1b45\",\n\t\"./mt.js\": \"1b45\",\n\t\"./my\": \"8689\",\n\t\"./my.js\": \"8689\",\n\t\"./nb\": \"6ce3\",\n\t\"./nb.js\": \"6ce3\",\n\t\"./ne\": \"3a39\",\n\t\"./ne.js\": \"3a39\",\n\t\"./nl\": \"facd\",\n\t\"./nl-be\": \"db29\",\n\t\"./nl-be.js\": \"db29\",\n\t\"./nl.js\": \"facd\",\n\t\"./nn\": \"b84c\",\n\t\"./nn.js\": \"b84c\",\n\t\"./oc-lnc\": \"167b\",\n\t\"./oc-lnc.js\": \"167b\",\n\t\"./pa-in\": \"f3ff\",\n\t\"./pa-in.js\": \"f3ff\",\n\t\"./pl\": \"8d57\",\n\t\"./pl.js\": \"8d57\",\n\t\"./pt\": \"f260\",\n\t\"./pt-br\": \"d2d4\",\n\t\"./pt-br.js\": \"d2d4\",\n\t\"./pt.js\": \"f260\",\n\t\"./ro\": \"972c\",\n\t\"./ro.js\": \"972c\",\n\t\"./ru\": \"957c\",\n\t\"./ru.js\": \"957c\",\n\t\"./sd\": \"6784\",\n\t\"./sd.js\": \"6784\",\n\t\"./se\": \"ffff\",\n\t\"./se.js\": \"ffff\",\n\t\"./si\": \"eda5\",\n\t\"./si.js\": \"eda5\",\n\t\"./sk\": \"7be6\",\n\t\"./sk.js\": \"7be6\",\n\t\"./sl\": \"8155\",\n\t\"./sl.js\": \"8155\",\n\t\"./sq\": \"c8f3\",\n\t\"./sq.js\": \"c8f3\",\n\t\"./sr\": \"cf1e\",\n\t\"./sr-cyrl\": \"13e9\",\n\t\"./sr-cyrl.js\": \"13e9\",\n\t\"./sr.js\": \"cf1e\",\n\t\"./ss\": \"52bd\",\n\t\"./ss.js\": \"52bd\",\n\t\"./sv\": \"5fbd\",\n\t\"./sv.js\": \"5fbd\",\n\t\"./sw\": \"74dc\",\n\t\"./sw.js\": \"74dc\",\n\t\"./ta\": \"3de5\",\n\t\"./ta.js\": \"3de5\",\n\t\"./te\": \"5cbb\",\n\t\"./te.js\": \"5cbb\",\n\t\"./tet\": \"576c\",\n\t\"./tet.js\": \"576c\",\n\t\"./tg\": \"3b1b\",\n\t\"./tg.js\": \"3b1b\",\n\t\"./th\": \"10e8\",\n\t\"./th.js\": \"10e8\",\n\t\"./tk\": \"5aff\",\n\t\"./tk.js\": \"5aff\",\n\t\"./tl-ph\": \"0f38\",\n\t\"./tl-ph.js\": \"0f38\",\n\t\"./tlh\": \"cf75\",\n\t\"./tlh.js\": \"cf75\",\n\t\"./tr\": \"0e81\",\n\t\"./tr.js\": \"0e81\",\n\t\"./tzl\": \"cf51\",\n\t\"./tzl.js\": \"cf51\",\n\t\"./tzm\": \"c109\",\n\t\"./tzm-latn\": \"b53d\",\n\t\"./tzm-latn.js\": \"b53d\",\n\t\"./tzm.js\": \"c109\",\n\t\"./ug-cn\": \"6117\",\n\t\"./ug-cn.js\": \"6117\",\n\t\"./uk\": \"ada2\",\n\t\"./uk.js\": \"ada2\",\n\t\"./ur\": \"5294\",\n\t\"./ur.js\": \"5294\",\n\t\"./uz\": \"2e8c\",\n\t\"./uz-latn\": \"010e\",\n\t\"./uz-latn.js\": \"010e\",\n\t\"./uz.js\": \"2e8c\",\n\t\"./vi\": \"2921\",\n\t\"./vi.js\": \"2921\",\n\t\"./x-pseudo\": \"fd7e\",\n\t\"./x-pseudo.js\": \"fd7e\",\n\t\"./yo\": \"7f33\",\n\t\"./yo.js\": \"7f33\",\n\t\"./zh-cn\": \"5c3a\",\n\t\"./zh-cn.js\": \"5c3a\",\n\t\"./zh-hk\": \"49ab\",\n\t\"./zh-hk.js\": \"49ab\",\n\t\"./zh-mo\": \"3a6c\",\n\t\"./zh-mo.js\": \"3a6c\",\n\t\"./zh-tw\": \"90ea\",\n\t\"./zh-tw.js\": \"90ea\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"4678\";","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"width\":\"500\"},on:{\"click:outside\":function($event){_vm.dialog = false}},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-list-item',_vm._g(_vm._b({},'v-list-item',attrs,false),on),[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"mdi-lock-reset\")])],1),_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('user.change-pw-title')))])],1)]}}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-form',{attrs:{\"id\":\"password-form\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.submit.apply(null, arguments)}},model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-card',{staticClass:\"password-content\",attrs:{\"tile\":\"\",\"flat\":\"\"}},[_c('dialog-title',{attrs:{\"headerText\":_vm.$t('user.change-pw-title')},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.dialog = false}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)]},proxy:true}])}),_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"pa-3\",attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"dense\":\"\",\"label\":_vm.$t('user.change-pw-label1'),\"type\":\"password\",\"rules\":[\n _vm.rules.required,\n _vm.rules.min,\n _vm.rules.containsLower,\n _vm.rules.containsUpper ],\"required\":\"\",\"outlined\":\"\",\"clearable\":\"\",\"autofocus\":\"\"},model:{value:(_vm.payload.Password),callback:function ($$v) {_vm.$set(_vm.payload, \"Password\", $$v)},expression:\"payload.Password\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"dense\":\"\",\"type\":\"password\",\"clearable\":\"\",\"outlined\":\"\",\"label\":_vm.$t('user.change-pw-label2'),\"rules\":[\n _vm.rules.required,\n _vm.rules.passwordMatch,\n _vm.rules.containsLower,\n _vm.rules.containsUpper ],\"required\":\"\"},model:{value:(_vm.payload.ConfirmPassword),callback:function ($$v) {_vm.$set(_vm.payload, \"ConfirmPassword\", $$v)},expression:\"payload.ConfirmPassword\"}})],1)],1)],1),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"disabled\":!_vm.passwordValidator,\"color\":\"secondary\",\"type\":\"submit\",\"loading\":_vm.loading}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.save'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-check\")])],1),_c('v-btn',{on:{\"click\":function($event){_vm.dialog = false}}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.close'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-close\")])],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { ref, PropType, defineComponent, computed } from '@vue/composition-api';\nimport { User, UserpasswordModel } from '@/models/auth/interfaces';\nimport { useUsers } from '@/modules/users';\nimport DialogTitle from '@/components/common/dialog-title/index.vue';\nimport { translate } from '@/localization';\n\nexport default defineComponent({\n props: {\n user: {\n type: Object as PropType,\n required: true,\n },\n },\n components: {\n DialogTitle,\n },\n setup({ user }) {\n const { loading, setUserPassword } = useUsers();\n const payload = ref();\n\n if (user.Id) {\n payload.value = {\n UserId: user.Id,\n };\n }\n\n const valid = ref(false);\n const dialog = ref(false);\n\n const submit = async () => {\n if (payload.value)\n if (await setUserPassword(payload.value)) dialog.value = false;\n };\n\n const passwordValidator = computed(() => {\n let valid = false;\n if (payload.value) {\n if (payload.value.Password && payload.value.ConfirmPassword) {\n if (payload.value.Password.length > 7) {\n if (payload.value.Password === payload.value.ConfirmPassword) {\n if (/[a-z]/.test(payload.value.Password)) {\n if (/[A-Z]/.test(payload.value.Password)) {\n valid = true;\n }\n }\n }\n }\n }\n }\n\n return valid;\n });\n\n return {\n dialog,\n payload,\n submit,\n valid,\n loading,\n passwordValidator,\n rules: {\n required: (v: string) => !!v || `${translate('validation.required')}`,\n min: (v: string) =>\n (v && v.length >= 8) ||\n `${translate('validation.minimum-characters', [8])}`,\n passwordMatch: () =>\n (payload.value &&\n payload.value.Password === payload.value.ConfirmPassword) ||\n `${translate('validation.pw-missmatch')}`,\n containsLower: (v: string) =>\n /[a-z]/.test(v && v) || `${translate('validation.uppercase')}`,\n containsUpper: (v: string) =>\n /[A-Z]/.test(v && v) || `${translate('validation.uppercase')}`,\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=5f2e4d1d&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCol,VContainer,VDialog,VForm,VIcon,VListItem,VListItemIcon,VListItemTitle,VRow,VSpacer,VTextField})\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=16b70dae&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=464967e0&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=71da8c2c&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=677432c0&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=02a79a90&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=3f244d94&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PriceUpdate.vue?vue&type=style&index=0&id=abfe4392&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=5e2ca141&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=470ee468&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=d4f7d4a8&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=4f64cac4&lang=scss&scoped=true&\"","import { BatchType } from '@/constants/enum';\nimport { mapAdditionCalcToAdditionItem } from '@/helpers/addition-item';\nimport {\n mapElementCalcToBaseElement,\n sortBuildingElementsCalculation,\n} from '@/helpers/building-element';\nimport { mapBuildingItemCalcToBuildingItem } from '@/helpers/building-item';\nimport {\n AdditionItemCalculation,\n BuildingElement,\n BuildingElementCalculation,\n BuildingItem,\n BuildingItemCalculation,\n} from '@/models/building-element/interfaces';\nimport {\n CalculationBatch,\n CalculationBatchOperation,\n FactorBatchOperation,\n ProjectFactorItem,\n} from '@/models/calculation/interfaces';\nimport { useCalculation } from './calculation';\n\nexport const useBatch = () => {\n const {\n projectCalculation,\n saveCalculation,\n initActiveCalculation,\n } = useCalculation();\n\n const registerAdditionItemBatchOperation = (\n aic: AdditionItemCalculation,\n type: BatchType\n ) => {\n if (!projectCalculation.value) return;\n\n const additionItem = mapAdditionCalcToAdditionItem(aic);\n\n const newOperation: CalculationBatchOperation = {\n AdditionItem: additionItem,\n };\n\n const calcBatch: CalculationBatch = {\n SaveOperations: [],\n InsertOperations: [],\n DeleteOperations: [],\n ChangedFactors: [],\n ProjectTotals: {},\n };\n\n switch (type) {\n case BatchType.Save: {\n calcBatch.SaveOperations.push(newOperation);\n break;\n }\n case BatchType.Delete:\n calcBatch.DeleteOperations.push(newOperation);\n break;\n case BatchType.Insert:\n calcBatch.InsertOperations.push(newOperation);\n break;\n }\n\n saveCalculation(calcBatch);\n };\n\n const registerNewElementWithChildren = (element: BuildingElement) => {\n const calcBatch: CalculationBatch = {\n SaveOperations: [],\n InsertOperations: [],\n DeleteOperations: [],\n ChangedFactors: [],\n ProjectTotals: {},\n };\n\n const newElementOperation: CalculationBatchOperation = {\n BuildingElement: element,\n };\n\n calcBatch.InsertOperations.push(newElementOperation);\n element.Items.forEach(item => {\n const newBuildingItemOperation: CalculationBatchOperation = {\n BuildingItem: item,\n };\n calcBatch.InsertOperations.push(newBuildingItemOperation);\n });\n\n element.AdditionItems.forEach(item => {\n const newAdditionItemOperation: CalculationBatchOperation = {\n AdditionItem: item,\n };\n calcBatch.InsertOperations.push(newAdditionItemOperation);\n });\n\n saveCalculation(calcBatch);\n };\n\n const registerNewElementsWithChildren = (\n elements: Array\n ) => {\n const calcBatch: CalculationBatch = {\n SaveOperations: [],\n InsertOperations: [],\n DeleteOperations: [],\n ChangedFactors: [],\n ProjectTotals: {},\n };\n\n elements.forEach(element => {\n const newElementOperation: CalculationBatchOperation = {\n BuildingElement: element,\n };\n\n calcBatch.InsertOperations.push(newElementOperation);\n element.Items.forEach(item => {\n const newBuildingItemOperation: CalculationBatchOperation = {\n BuildingItem: item,\n };\n calcBatch.InsertOperations.push(newBuildingItemOperation);\n });\n\n element.AdditionItems.forEach(item => {\n const newAdditionItemOperation: CalculationBatchOperation = {\n AdditionItem: item,\n };\n calcBatch.InsertOperations.push(newAdditionItemOperation);\n });\n });\n\n saveCalculation(calcBatch);\n };\n\n const registerNewBuildingItems = (items: Array) => {\n const calcBatch: CalculationBatch = {\n SaveOperations: [],\n InsertOperations: [],\n DeleteOperations: [],\n ChangedFactors: [],\n ProjectTotals: {},\n };\n\n items.forEach(bi => {\n const newItemOperation: CalculationBatchOperation = {\n BuildingItem: bi,\n };\n calcBatch.InsertOperations.push(newItemOperation);\n });\n\n saveCalculation(calcBatch);\n };\n\n const registerBuildingItemBatchOperation = (\n bic: BuildingItemCalculation,\n type: BatchType\n ) => {\n if (!projectCalculation.value) return;\n\n const calcBatch: CalculationBatch = {\n SaveOperations: [],\n InsertOperations: [],\n DeleteOperations: [],\n ChangedFactors: [],\n ProjectTotals: {},\n };\n\n const buildingItem = mapBuildingItemCalcToBuildingItem(bic);\n\n const newOperation: CalculationBatchOperation = {\n BuildingItem: buildingItem,\n };\n\n switch (type) {\n case BatchType.Save: {\n calcBatch.SaveOperations.push(newOperation);\n break;\n }\n case BatchType.Delete:\n calcBatch.DeleteOperations.push(newOperation);\n break;\n case BatchType.Insert:\n calcBatch.InsertOperations.push(newOperation);\n break;\n }\n saveCalculation(calcBatch);\n };\n\n const registerBuildingItemsBatchOperation = (\n bics: Array,\n type: BatchType\n ) => {\n if (!projectCalculation.value) return;\n\n const calcBatch: CalculationBatch = {\n SaveOperations: [],\n InsertOperations: [],\n DeleteOperations: [],\n ChangedFactors: [],\n ProjectTotals: {},\n };\n\n bics.forEach(bic => {\n const buildingItem = mapBuildingItemCalcToBuildingItem(bic);\n\n const newOperation: CalculationBatchOperation = {\n BuildingItem: buildingItem,\n };\n\n switch (type) {\n case BatchType.Save: {\n calcBatch.SaveOperations.push(newOperation);\n break;\n }\n case BatchType.Delete:\n calcBatch.DeleteOperations.push(newOperation);\n break;\n case BatchType.Insert:\n calcBatch.InsertOperations.push(newOperation);\n break;\n }\n });\n\n saveCalculation(calcBatch);\n };\n\n const registerElementsBatchOperation = (\n elements: Array,\n type: BatchType\n ) => {\n if (!projectCalculation.value) return;\n\n const calcBatch: CalculationBatch = {\n SaveOperations: [],\n InsertOperations: [],\n DeleteOperations: [],\n ChangedFactors: [],\n ProjectTotals: {},\n };\n\n elements.forEach(element => {\n const baseElement = mapElementCalcToBaseElement(element);\n\n const newOperation: CalculationBatchOperation = {\n BuildingElement: baseElement,\n };\n\n switch (type) {\n case BatchType.Save: {\n calcBatch.SaveOperations.push(newOperation);\n break;\n }\n case BatchType.Delete:\n calcBatch.DeleteOperations.push(newOperation);\n break;\n case BatchType.Insert:\n calcBatch.InsertOperations.push(newOperation);\n break;\n }\n });\n\n saveCalculation(calcBatch);\n };\n\n const registerElementBatchOperation = (\n element: BuildingElementCalculation,\n type: BatchType\n ) => {\n if (!projectCalculation.value) return;\n\n const calcBatch: CalculationBatch = {\n SaveOperations: [],\n InsertOperations: [],\n DeleteOperations: [],\n ChangedFactors: [],\n ProjectTotals: {},\n };\n\n const baseElement = mapElementCalcToBaseElement(element);\n\n const newOperation: CalculationBatchOperation = {\n BuildingElement: baseElement,\n };\n\n switch (type) {\n case BatchType.Save: {\n calcBatch.SaveOperations.push(newOperation);\n break;\n }\n case BatchType.Delete:\n calcBatch.DeleteOperations.push(newOperation);\n break;\n case BatchType.Insert:\n calcBatch.InsertOperations.push(newOperation);\n break;\n }\n saveCalculation(calcBatch);\n };\n\n const registerChangedFactorsBatchOperation = async (\n id: string,\n factors: Array\n ) => {\n const calcBatch: CalculationBatch = {\n SaveOperations: [],\n InsertOperations: [],\n DeleteOperations: [],\n ChangedFactors: [],\n ProjectTotals: {},\n };\n\n const batch: FactorBatchOperation = {\n ProjectFactorId: id,\n ProjectFactorProjectFactorItems: factors,\n };\n\n const factorBatch: Array = [];\n factorBatch.push(batch);\n\n calcBatch.ChangedFactors = factorBatch;\n await saveCalculation(calcBatch);\n };\n\n const registerItemSaveChangesWithAdditionAndParent = (\n item: BuildingItemCalculation\n ) => {\n const calcBatch: CalculationBatch = {\n SaveOperations: [],\n InsertOperations: [],\n DeleteOperations: [],\n ChangedFactors: [],\n ProjectTotals: {},\n };\n\n item.IsModifiedRecently = true;\n\n if (item.BuildingElement) {\n const buildingItem = mapBuildingItemCalcToBuildingItem(item);\n const newItemOperation: CalculationBatchOperation = {\n BuildingItem: buildingItem,\n };\n calcBatch.SaveOperations.push(newItemOperation);\n\n const baseElement = mapElementCalcToBaseElement(item.BuildingElement);\n const newOperation: CalculationBatchOperation = {\n BuildingElement: baseElement,\n };\n calcBatch.SaveOperations.push(newOperation);\n\n item.BuildingElement.AdditionItems.forEach(aic => {\n const additionItem = mapAdditionCalcToAdditionItem(aic);\n const newOperation: CalculationBatchOperation = {\n AdditionItem: additionItem,\n };\n calcBatch.SaveOperations.push(newOperation);\n });\n }\n\n saveCalculation(calcBatch);\n };\n\n const registerElementSaveChangesWithChildren = (\n element: BuildingElementCalculation\n ) => {\n const calcBatch: CalculationBatch = {\n SaveOperations: [],\n InsertOperations: [],\n DeleteOperations: [],\n ChangedFactors: [],\n ProjectTotals: {},\n };\n\n const baseElement = mapElementCalcToBaseElement(element);\n\n const newOperation: CalculationBatchOperation = {\n BuildingElement: baseElement,\n };\n\n calcBatch.SaveOperations.push(newOperation);\n\n if (element.BuildingItems && element.BuildingItems.length > 0) {\n element.BuildingItems.forEach(item => {\n item.IsModifiedRecently = true;\n const buildingItem = mapBuildingItemCalcToBuildingItem(item);\n\n const newOperation: CalculationBatchOperation = {\n BuildingItem: buildingItem,\n };\n\n calcBatch.SaveOperations.push(newOperation);\n });\n }\n if (element.AdditionItems && element.AdditionItems.length > 0) {\n element.AdditionItems.forEach(addition => {\n const additionItem = mapAdditionCalcToAdditionItem(addition);\n\n const newOperation: CalculationBatchOperation = {\n AdditionItem: additionItem,\n };\n calcBatch.SaveOperations.push(newOperation);\n });\n }\n\n saveCalculation(calcBatch);\n };\n\n const registerElementInsertChangesWithChildren = (\n element: BuildingElementCalculation\n ) => {\n const calcBatch: CalculationBatch = {\n SaveOperations: [],\n InsertOperations: [],\n DeleteOperations: [],\n ChangedFactors: [],\n ProjectTotals: {},\n };\n\n const baseElement = mapElementCalcToBaseElement(element);\n\n const newOperation: CalculationBatchOperation = {\n BuildingElement: baseElement,\n };\n\n calcBatch.InsertOperations.push(newOperation);\n\n if (element.BuildingItems && element.BuildingItems.length > 0) {\n element.BuildingItems.forEach(item => {\n item.IsModifiedRecently = true;\n const buildingItem = mapBuildingItemCalcToBuildingItem(item);\n\n const newOperation: CalculationBatchOperation = {\n BuildingItem: buildingItem,\n };\n\n calcBatch.InsertOperations.push(newOperation);\n });\n }\n if (element.AdditionItems && element.AdditionItems.length > 0) {\n element.AdditionItems.forEach(addition => {\n const additionItem = mapAdditionCalcToAdditionItem(addition);\n\n const newOperation: CalculationBatchOperation = {\n AdditionItem: additionItem,\n };\n calcBatch.InsertOperations.push(newOperation);\n });\n }\n\n saveCalculation(calcBatch);\n };\n\n const registerAllBuildingItemSaveChanges = (\n element: BuildingElementCalculation\n ) => {\n const calcBatch: CalculationBatch = {\n SaveOperations: [],\n InsertOperations: [],\n DeleteOperations: [],\n ChangedFactors: [],\n ProjectTotals: {},\n };\n\n if (element.BuildingItems && element.BuildingItems.length > 0) {\n element.BuildingItems.forEach(item => {\n item.IsModifiedRecently = true;\n const buildingItem = mapBuildingItemCalcToBuildingItem(item);\n\n const newOperation: CalculationBatchOperation = {\n BuildingItem: buildingItem,\n };\n\n calcBatch.SaveOperations.push(newOperation);\n });\n }\n\n saveCalculation(calcBatch);\n };\n\n const registerElementUnitChanges = (\n element: BuildingElementCalculation,\n add: boolean\n ) => {\n const calcBatch: CalculationBatch = {\n SaveOperations: [],\n InsertOperations: [],\n DeleteOperations: [],\n ChangedFactors: [],\n ProjectTotals: {},\n };\n if (add) {\n element.AdditionItems.forEach(aic => {\n const additionItem = mapAdditionCalcToAdditionItem(aic);\n\n const newOperation: CalculationBatchOperation = {\n AdditionItem: additionItem,\n };\n calcBatch.InsertOperations.push(newOperation);\n });\n } else {\n element.AdditionItems.forEach(aic => {\n const additionItem = mapAdditionCalcToAdditionItem(aic);\n\n const newOperation: CalculationBatchOperation = {\n AdditionItem: additionItem,\n };\n calcBatch.DeleteOperations.push(newOperation);\n });\n }\n\n const baseElement = mapElementCalcToBaseElement(element);\n\n const newOperation: CalculationBatchOperation = {\n BuildingElement: baseElement,\n };\n calcBatch.SaveOperations.push(newOperation);\n\n saveCalculation(calcBatch);\n };\n\n const registerElementAndAdditionsChanges = async (\n element: BuildingElementCalculation\n ): Promise => {\n const calcBatch: CalculationBatch = {\n SaveOperations: [],\n InsertOperations: [],\n DeleteOperations: [],\n ChangedFactors: [],\n ProjectTotals: {},\n };\n const baseElement = mapElementCalcToBaseElement(element);\n\n const newOperation: CalculationBatchOperation = {\n BuildingElement: baseElement,\n };\n calcBatch.SaveOperations.push(newOperation);\n element.AdditionItems.forEach(aic => {\n const additionItem = mapAdditionCalcToAdditionItem(aic);\n\n const newOperation: CalculationBatchOperation = {\n AdditionItem: additionItem,\n };\n calcBatch.SaveOperations.push(newOperation);\n });\n\n saveCalculation(calcBatch);\n };\n\n const resetChanges = async () => {\n if (\n projectCalculation.value?.Id &&\n projectCalculation.value.BuildingElements\n ) {\n await initActiveCalculation(projectCalculation.value.Id);\n sortBuildingElementsCalculation(\n projectCalculation.value.BuildingElements\n );\n }\n };\n\n return {\n registerNewElementWithChildren,\n registerNewElementsWithChildren,\n registerNewBuildingItems,\n registerAdditionItemBatchOperation,\n registerBuildingItemBatchOperation,\n registerBuildingItemsBatchOperation,\n registerElementBatchOperation,\n registerElementsBatchOperation,\n registerChangedFactorsBatchOperation,\n registerItemSaveChangesWithAdditionAndParent,\n registerElementSaveChangesWithChildren,\n registerAllBuildingItemSaveChanges,\n registerElementUnitChanges,\n registerElementAndAdditionsChanges,\n registerElementInsertChangesWithChildren,\n resetChanges,\n };\n};\n","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=7f6967d6&lang=scss&scoped=true&\"","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { AUTH_KEY } from '@/constants/common';\nimport axios, { AxiosRequestConfig, AxiosResponse, ResponseType } from 'axios';\nimport Vue from 'vue';\n\nexport const api = axios.create({\n baseURL: process.env.VUE_APP_API_BASE || 'https://localhost:44301/',\n});\n\nexport const useApi = (endpoint: string) => {\n const token: string = Vue.$cookies.get(AUTH_KEY);\n\n const config: AxiosRequestConfig = {\n headers: {\n Authorization: `Bearer ${token}`,\n },\n };\n\n const get = async (\n query?: Record,\n accept?: string,\n type?: string,\n responseType?: ResponseType\n ): Promise> => {\n let queryString = '';\n\n if (query) {\n queryString =\n '?' +\n Object.entries(query)\n .map(\n ([key, value]) =>\n `${encodeURIComponent(key)}=${encodeURIComponent(value)}`\n )\n .join('&');\n }\n\n if (accept && type) {\n config.headers = {\n Authorization: `Bearer ${token}`,\n Accept: accept,\n 'Content-Type': type,\n };\n } else if (accept && !type) {\n config.headers = {\n Authorization: `Bearer ${token}`,\n Accept: accept,\n };\n } else if (!accept && type) {\n config.headers = {\n Authorization: `Bearer ${token}`,\n 'Content-Type': type,\n };\n }\n\n if (responseType) {\n config.responseType = responseType;\n }\n\n return await api.get(endpoint + queryString, config);\n };\n\n const postUrlencoded = async (\n params?: URLSearchParams,\n payload?: Record\n ): Promise> => {\n const urlencodedConfig = {\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n };\n\n return await api.post(endpoint, payload ?? params, urlencodedConfig);\n };\n\n const postMultipart = async (\n formData: FormData\n ): Promise> => {\n const multipartConfig = {\n headers: {\n 'content-type': 'multipart/form-data',\n Authorization: `Bearer ${token}`,\n },\n };\n\n return await api.post(endpoint, formData, multipartConfig);\n };\n\n const post = async (\n payload?: Record\n ): Promise> => {\n return await api.post(endpoint, payload, config);\n };\n\n const put = async (\n payload?: Record\n ): Promise> => {\n return await api.put(endpoint, payload, config);\n };\n\n const deleteReq = async (\n payload?: Record\n ): Promise> => {\n return await api.delete(endpoint, {\n headers: {\n Authorization: `Bearer ${token}`,\n },\n data: {\n source: payload,\n },\n });\n };\n\n return {\n deleteReq,\n put,\n get,\n post,\n postUrlencoded,\n postMultipart,\n };\n};\n","module.exports = __webpack_public_path__ + \"img/kalk-logo.8ad49f63.svg\";","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=a4574ab0&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=c8a17192&lang=scss&scoped=true&\"","import {\n AdditionItem,\n AdditionItemCalculation,\n AdditionType,\n BaseBuildingElement,\n BuildingElement,\n BuildingElementCalculation,\n BuildingItem,\n BuildingItemCalculation,\n} from '@/models/building-element/interfaces';\nimport { ProjectCalculation } from '@/models/calculation/interfaces';\nimport { useCalculation } from '@/modules/calculation';\nimport { computed } from '@vue/composition-api';\nimport { buildAdditionItemCalculations } from './addition-item';\nimport { buildItemCalculations, calculateItemWarnings } from './building-item';\nimport { roundToTwoDecimals } from './common';\nimport { v4 as uuidv4 } from 'uuid';\nimport { useBatch } from '@/modules/batch';\nimport { defaultLocaleString } from '@/localization';\n\nexport const createAdditionElements = (\n element: BuildingElement | BuildingElementCalculation\n): Array => {\n const additions: Array = [];\n const currentDate = new Date();\n\n const surface: AdditionItem = {\n Id: uuidv4(),\n Name: AdditionType[AdditionType.Flatetillegg],\n SortOrder: 1,\n Amount: 0,\n Unit: 'stk',\n Created: currentDate.toString(),\n LastModified: currentDate.toString(),\n BuildingElementId: element.Id,\n };\n const opening: AdditionItem = {\n Id: uuidv4(),\n Name: AdditionType[AdditionType.Åpninger],\n SortOrder: 0,\n Amount: 0,\n Unit: 'stk',\n Created: currentDate.toString(),\n LastModified: currentDate.toString(),\n BuildingElementId: element.Id,\n };\n\n additions.push(surface);\n additions.push(opening);\n\n return additions;\n};\n\nexport const addAdditionsToElement = (element: BuildingElementCalculation) => {\n const additions = createAdditionElements(element);\n element.AdditionItems = buildAdditionItemCalculations(additions, element);\n};\n\nexport const removeAdditionsFromElement = (\n element: BuildingElementCalculation\n) => {\n element.AdditionItems = [];\n};\n\nexport const calculateWarnings = (calculation: ProjectCalculation) => {\n if (calculation.BuildingElements && calculation.BuildingElements.length > 0) {\n calculation.BuildingElements.forEach(element => {\n element.ElementWarnings = [];\n if (element.Amount == null || element.Amount === 0) {\n element.ElementWarnings.push('info.no-amount');\n }\n\n calculateItemWarnings(element);\n });\n }\n};\n\nexport const mapBuildingElementCalcProperties = (\n element: BuildingElement\n): BuildingElementCalculation => {\n const { getCalculationFactorValue, projectCalculation } = useCalculation();\n const { registerElementUnitChanges } = useBatch();\n\n const _elementCalc: BuildingElementCalculation = {\n TransportAddition: null,\n FollowupDate: null,\n Project: undefined,\n Signed: null,\n TransportationAddition: null,\n Id: element.Id,\n Name: element.Name,\n ProjectId: element.ProjectId,\n ProductionLine: element.ProductionLine,\n SortOrder: element.SortOrder,\n NS3450: element.NS3450,\n NS3451: element.NS3451,\n Amount: element.Amount,\n ElementWarnings: [],\n Unit: computed({\n get() {\n return element.Unit ?? '';\n },\n set(val) {\n element.Unit = val;\n if (val && val.toLocaleLowerCase() === 'm2') {\n if (\n _elementCalc.AdditionItems &&\n _elementCalc.AdditionItems.length === 0\n ) {\n addAdditionsToElement(_elementCalc);\n registerElementUnitChanges(_elementCalc, true);\n }\n } else {\n registerElementUnitChanges(_elementCalc, false);\n removeAdditionsFromElement(_elementCalc);\n }\n },\n }),\n Factor1: element.Factor1,\n Factor5: element.Factor5,\n Transport: element.Transport,\n Comments: element.Comments,\n Created: element.Created,\n LastModified: element.LastModified,\n HoursAdjusted: element.HoursAdjusted,\n SalaryCostAdjusted: element.SalaryCostAdjusted,\n MaterialCostAdjusted: element.MaterialCostAdjusted,\n IsFDVExportSelected: computed({\n get() {\n return (\n _elementCalc.BuildingItems.length > 0 &&\n !_elementCalc.BuildingItems.some(\n item => item.IsFDVExportSelected === false\n )\n );\n },\n set(val) {\n if (_elementCalc.IsFDVExportSelected.value !== val) {\n _elementCalc.BuildingItems.forEach(item => {\n if (item.NOBBNumber != null) {\n item.IsFDVExportSelected = val;\n }\n });\n }\n },\n }),\n SurfaceAddition: computed(() => {\n let surface = 0;\n if (\n _elementCalc.IsAmountSet.value &&\n _elementCalc.HasBuildingItems.value &&\n _elementCalc.BuildingItems\n ) {\n const items = _elementCalc.BuildingItems.filter(\n item =>\n item.AmountCalculated.value !== null &&\n item.AmountCalculated.value > 0\n );\n\n items.forEach(item => {\n surface += item.SurfaceAddition ?? 0;\n });\n }\n return surface;\n }),\n Factor5Calculated: computed({\n get() {\n let factor5: Nullable = null;\n\n if (_elementCalc.Project) {\n factor5 = getCalculationFactorValue(5, _elementCalc.Project);\n }\n\n if (_elementCalc.Factor5 != null) return _elementCalc.Factor5;\n\n return factor5 ?? null;\n },\n set(val) {\n _elementCalc.Factor5 = val;\n },\n }),\n OpeningAddition: computed(() => {\n let opening = 0;\n if (\n _elementCalc.IsAmountSet.value &&\n _elementCalc.HasBuildingItems.value &&\n _elementCalc.BuildingItems\n ) {\n const items = _elementCalc.BuildingItems.filter(\n item =>\n item.AmountCalculated.value !== null &&\n item.AmountCalculated.value > 0\n );\n\n items.forEach(item => {\n opening += item.OpeningAddition ?? 0;\n });\n }\n return opening;\n }),\n Factor1Calculated: computed({\n get() {\n let factor = 0;\n let calcFactor1: Nullable = null;\n\n if (_elementCalc.Project) {\n calcFactor1 = getCalculationFactorValue(1, _elementCalc.Project);\n }\n\n if (_elementCalc.Factor1 != null) {\n factor = _elementCalc.Factor1;\n } else if (calcFactor1 !== null) {\n factor = calcFactor1;\n }\n\n return factor;\n },\n set(val) {\n _elementCalc.Factor1 = val;\n },\n }),\n SalaryCostAdjustedCalculated: computed(() => {\n let salaryCostAdjusted = 0;\n let f2: Nullable = null;\n let f3: Nullable = null;\n\n if (_elementCalc.Project) {\n f2 = getCalculationFactorValue(2, _elementCalc.Project);\n f3 = getCalculationFactorValue(3, _elementCalc.Project);\n }\n if (projectCalculation.value && projectCalculation.value.Factors) {\n if (_elementCalc.HoursAdjusted === null) {\n salaryCostAdjusted = _elementCalc.SalaryCostAdjusted ?? 0;\n } else if (_elementCalc.HoursAdjusted) {\n // Justering av produksjonslønn\n const factor2 = f2 ?? 0;\n // Sosiale kostnader\n const factor3 = f3 ?? 0;\n const adjusted = _elementCalc.HoursAdjusted * factor2 * factor3;\n\n salaryCostAdjusted = adjusted ?? 0;\n }\n }\n\n return salaryCostAdjusted;\n }),\n SumTime: computed(() => {\n let time = 0;\n\n if (_elementCalc.BuildingItems) {\n _elementCalc.BuildingItems.forEach(item => {\n time += item.SumTime.value ?? 0;\n });\n }\n\n return time;\n }),\n AmountOfMaterials: computed(() => {\n let amountMat = 0;\n\n if (_elementCalc.BuildingItems) {\n _elementCalc.BuildingItems.forEach(item => {\n amountMat += item.AmountOfMaterials.value ?? 0;\n });\n }\n\n return amountMat;\n }),\n ItemCount: computed(() => {\n let count = 0;\n if (_elementCalc.BuildingItems) {\n count = _elementCalc.BuildingItems.length;\n }\n\n return count;\n }),\n AmountCalculated: computed(() => {\n let amount = 0;\n\n if (_elementCalc.BuildingItems) {\n _elementCalc.BuildingItems.forEach(item => {\n if (item.AmountCalculated.value !== null) {\n amount += item.AmountCalculated.value;\n }\n });\n }\n\n return amount;\n }),\n HasBuildingItems: computed(() => {\n return (\n _elementCalc.BuildingItems !== undefined &&\n _elementCalc.BuildingItems.length > 0\n );\n }),\n IsAmountSet: computed(() => {\n return (\n _elementCalc.Amount != null &&\n roundToTwoDecimals(_elementCalc.Amount) !== 0\n );\n }),\n SumTotal: computed(() => {\n let total = 0;\n if (\n _elementCalc.IsAmountSet.value &&\n _elementCalc.HasBuildingItems.value &&\n _elementCalc.BuildingItems\n ) {\n _elementCalc.BuildingItems.forEach(item => {\n total += item.SumTotal.value ?? 0;\n });\n if (_elementCalc.AdditionItems) {\n _elementCalc.AdditionItems.forEach(item => {\n total += item.SumTotal.value ?? 0;\n });\n }\n }\n return total;\n }),\n UnitPrice: computed(() => {\n let unitPrice = 0;\n\n if (\n _elementCalc.IsAmountSet.value &&\n _elementCalc.SumTotal.value &&\n _elementCalc.Amount != null\n ) {\n unitPrice = Math.round(\n _elementCalc.SumTotal.value / _elementCalc.Amount\n );\n }\n\n return unitPrice;\n }),\n SumHours: computed(() => {\n let sum = 0;\n\n if (_elementCalc.BuildingItems && _elementCalc.IsAmountSet.value) {\n _elementCalc.BuildingItems.forEach(item => {\n sum += item.SumHours.value ?? 0;\n });\n if (_elementCalc.AdditionItems) {\n _elementCalc.AdditionItems.forEach(item => {\n sum += item.SumHours.value ?? 0;\n });\n }\n }\n\n return sum;\n }),\n TimePrUnit: computed(() => {\n let time = 0;\n\n if (_elementCalc.IsAmountSet.value && _elementCalc.SumHours.value) {\n const sumHours = _elementCalc.SumHours.value;\n if (\n sumHours > 0 &&\n _elementCalc.Amount != null &&\n _elementCalc.Amount > 0\n ) {\n time = sumHours / _elementCalc.Amount;\n }\n }\n\n return time;\n }),\n SumSalaryAndSocialCost: computed(() => {\n let cost = 0;\n\n if (\n _elementCalc.IsAmountSet.value &&\n _elementCalc.HasBuildingItems.value &&\n _elementCalc.BuildingItems\n ) {\n _elementCalc.BuildingItems.forEach(item => {\n cost += item.SumSalaryAndSocialCost.value ?? 0;\n });\n if (_elementCalc.AdditionItems) {\n _elementCalc.AdditionItems.forEach(item => {\n cost += item.SumSalaryAndSocialCost.value ?? 0;\n });\n }\n }\n\n return cost;\n }),\n SumSalaryAndExpensesAdjusted: computed(() => {\n let adjusted = 0;\n\n if (_elementCalc.IsAmountSet.value) {\n adjusted =\n _elementCalc.SumSalaryAndSocialCost.value +\n _elementCalc.SalaryCostAdjustedCalculated.value;\n }\n\n return adjusted;\n }),\n SumHoursAdjusted: computed(() => {\n let adjusted = 0;\n if (_elementCalc.SumHours.value > 0) {\n adjusted =\n _elementCalc.SumHours.value + (_elementCalc.HoursAdjusted ?? 0);\n }\n return adjusted;\n }),\n SumSelfCostMaterialsSubContractors: computed(() => {\n let selfCostMatSub = 0;\n if (\n _elementCalc.IsAmountSet.value &&\n _elementCalc.HasBuildingItems?.value &&\n _elementCalc.BuildingItems\n ) {\n _elementCalc.BuildingItems.forEach(item => {\n selfCostMatSub += item.SumSelfCostMaterialsSubContractors.value ?? 0;\n });\n }\n return selfCostMatSub;\n }),\n SumMaterialsAndCostAdjusted: computed(() => {\n return (\n _elementCalc.SumSelfCostMaterialsSubContractors.value +\n (_elementCalc.MaterialCostAdjusted ?? 0)\n );\n }),\n SumProductionSalary: computed(() => {\n let salary = 0;\n\n if (\n _elementCalc.IsAmountSet.value &&\n _elementCalc.HasBuildingItems.value &&\n _elementCalc.BuildingItems\n ) {\n _elementCalc.BuildingItems.forEach(item => {\n salary += item.SumProductionSalary.value ?? 0;\n });\n if (_elementCalc.AdditionItems) {\n _elementCalc.AdditionItems.forEach(item => {\n salary += item.SumProductionSalary.value ?? 0;\n });\n }\n }\n\n return salary;\n }),\n Factor2: computed(() => {\n let factor = 1;\n\n if (_elementCalc.IsAmountSet.value && element.Amount != null) {\n if (_elementCalc.SumProductionSalary.value > 0 && element.Amount > 0) {\n factor = _elementCalc.SumProductionSalary.value / element.Amount;\n }\n }\n\n return factor;\n }),\n Factor3: computed(() => {\n let factor = 0;\n if (\n _elementCalc.IsAmountSet.value &&\n _elementCalc.HasBuildingItems.value &&\n _elementCalc.BuildingItems\n ) {\n _elementCalc.BuildingItems.forEach(item => {\n factor += item.Factor3.value ?? 0;\n });\n if (_elementCalc.AdditionItems) {\n _elementCalc.AdditionItems.forEach(item => {\n factor += item.Factor3.value ?? 0;\n });\n }\n }\n return factor;\n }),\n Factor4: computed(() => {\n let factor = 0;\n if (\n _elementCalc.IsAmountSet.value &&\n _elementCalc.HasBuildingItems.value &&\n _elementCalc.BuildingItems\n ) {\n _elementCalc.BuildingItems.forEach(item => {\n factor += item.Factor4.value ?? 0;\n });\n\n if (_elementCalc.AdditionItems) {\n _elementCalc.AdditionItems.forEach(item => {\n factor += item.Factor4.value ?? 0;\n });\n }\n }\n return factor;\n }),\n Factor6: computed(() => {\n let factor = 0;\n if (\n _elementCalc.IsAmountSet.value &&\n _elementCalc.HasBuildingItems.value &&\n _elementCalc.BuildingItems\n ) {\n _elementCalc.BuildingItems.forEach(item => {\n factor += item.Factor6.value ?? 0;\n });\n if (_elementCalc.AdditionItems) {\n _elementCalc.AdditionItems.forEach(item => {\n factor += item.Factor6.value ?? 0;\n });\n }\n }\n return factor;\n }),\n Factor7: computed(() => {\n let factor = 0;\n if (\n _elementCalc.IsAmountSet.value &&\n _elementCalc.HasBuildingItems.value &&\n _elementCalc.BuildingItems\n ) {\n _elementCalc.BuildingItems.forEach(item => {\n factor += item.Factor7.value ?? 0;\n });\n }\n return factor;\n }),\n ProjectCost: computed(() => {\n let cost = 0;\n\n if (\n _elementCalc.Factor3.value &&\n _elementCalc.Factor3.value > 0 &&\n _elementCalc.SumSelfCostMaterialsSubContractors.value &&\n _elementCalc.SumProductionSalary.value\n ) {\n const sumSelfCostMaterialsSubContractors =\n _elementCalc.SumSelfCostMaterialsSubContractors.value;\n const sumProductionSalary = _elementCalc.SumProductionSalary.value;\n if (sumSelfCostMaterialsSubContractors > 0 && sumProductionSalary > 0) {\n cost =\n sumSelfCostMaterialsSubContractors +\n sumProductionSalary +\n _elementCalc.Factor3.value;\n }\n }\n\n return cost;\n }),\n SumSelfCostSalaryAndExpenses: computed(() => {\n let salaryExpense = 0;\n\n if (\n _elementCalc.IsAmountSet.value &&\n _elementCalc.HasBuildingItems.value &&\n _elementCalc.BuildingItems\n ) {\n _elementCalc.BuildingItems.forEach(item => {\n salaryExpense += item.SumSelfCostSalaryAndExpenses.value ?? 0;\n });\n if (_elementCalc.AdditionItems) {\n _elementCalc.AdditionItems.forEach(item => {\n salaryExpense += item.SumSelfCostSalaryAndExpenses.value ?? 0;\n });\n }\n }\n\n return salaryExpense;\n }),\n SumSalaryAndExpenses: computed(() => {\n let salaryExpense = 0;\n\n if (\n _elementCalc.IsAmountSet.value &&\n _elementCalc.HasBuildingItems.value &&\n _elementCalc.BuildingItems\n ) {\n _elementCalc.BuildingItems.forEach(item => {\n salaryExpense += item.SumSalaryAndExpenses.value ?? 0;\n });\n if (_elementCalc.AdditionItems) {\n _elementCalc.AdditionItems.forEach(item => {\n salaryExpense += item.SumSalaryAndExpenses.value ?? 0;\n });\n }\n }\n\n return salaryExpense;\n }),\n UnitPriceMaterials: computed(() => {\n let price = 0;\n if (\n _elementCalc.IsAmountSet.value &&\n _elementCalc.HasBuildingItems.value &&\n _elementCalc.Amount\n ) {\n if (\n _elementCalc.SumSelfCostMaterialsSubContractors.value &&\n _elementCalc.SumSelfCostMaterialsSubContractors.value > 0\n ) {\n price =\n _elementCalc.SumSelfCostMaterialsSubContractors.value /\n _elementCalc.Amount;\n }\n }\n\n return price;\n }),\n SumMaterialsUE: computed(() => {\n let materials = 0;\n if (\n _elementCalc.IsAmountSet.value &&\n _elementCalc.HasBuildingItems.value &&\n _elementCalc.BuildingItems\n ) {\n _elementCalc.BuildingItems.forEach(item => {\n materials += item.SumMaterialsUE.value ?? 0;\n });\n }\n\n return materials;\n }),\n SumSelfCost: computed(() => {\n let selfCost = 0;\n if (\n _elementCalc.IsAmountSet.value &&\n _elementCalc.HasBuildingItems.value &&\n _elementCalc.BuildingItems\n ) {\n _elementCalc.BuildingItems.forEach(item => {\n selfCost += item.SumSelfCost.value ?? 0;\n });\n if (_elementCalc.AdditionItems) {\n _elementCalc.AdditionItems.forEach(item => {\n selfCost += item.SumSelfCost.value ?? 0;\n });\n }\n }\n return selfCost;\n }),\n SumProfit: computed(() => {\n let profit = 0;\n if (\n _elementCalc.IsAmountSet.value &&\n _elementCalc.HasBuildingItems.value &&\n _elementCalc.BuildingItems\n ) {\n _elementCalc.BuildingItems.forEach(item => {\n profit += item.SumProfit.value ?? 0;\n });\n if (_elementCalc.AdditionItems) {\n _elementCalc.AdditionItems.forEach(item => {\n profit += item.SumProfit.value ?? 0;\n });\n }\n }\n return profit;\n }),\n SumAmountControl: computed(() => {\n let amount = 0;\n\n if (\n _elementCalc.IsAmountSet.value &&\n _elementCalc.HasBuildingItems.value &&\n _elementCalc.BuildingItems\n ) {\n _elementCalc.BuildingItems.forEach(item => {\n amount += item.DeviationPrice.value ?? 0;\n });\n }\n return amount;\n }),\n Price: computed(() => {\n let price = 0;\n\n if (_elementCalc.HasBuildingItems.value && _elementCalc.BuildingItems) {\n const calculated = _elementCalc.BuildingItems.filter(\n item =>\n item.AmountCalculated.value != null &&\n item.AmountCalculated.value > 0\n );\n\n calculated.forEach(item => {\n if (item.Price != null && item.Price > 0) {\n price += Number(item.Price);\n }\n });\n }\n return price;\n }),\n Items: [],\n BuildingItems: [],\n AdditionItems: [],\n IsHighLighted: computed(() => {\n return false;\n }),\n IsRecentlyAdded: false,\n IsSelected: false,\n IsExpanded: false,\n HoursAdjustedVM: computed({\n get() {\n return _elementCalc.HoursAdjusted ?? 0;\n },\n set(val) {\n _elementCalc.HoursAdjusted = val;\n _elementCalc.SalaryCostAdjusted = null;\n },\n }),\n NS3451TopLevel: computed(() => {\n let first = 0;\n\n if (_elementCalc.NS3451) {\n const firstChar = _elementCalc.NS3451.charAt(0);\n first = +firstChar;\n }\n\n return first;\n }),\n NS3451SecondLevel: computed(() => {\n let second = 0;\n\n if (_elementCalc.NS3451 && _elementCalc.NS3451.length > 1) {\n const secondChar = _elementCalc.NS3451.charAt(1);\n second = +secondChar;\n }\n\n return second;\n }),\n NS3451ThirdLevel: computed(() => {\n let third = 0;\n\n if (_elementCalc.NS3451 && _elementCalc.NS3451.length > 2) {\n const thirdChar = _elementCalc.NS3451.charAt(2);\n third = +thirdChar;\n }\n\n return third;\n }),\n SumMargin: computed(() => {\n let margin = 0;\n if (\n _elementCalc.Factor4.value != null &&\n _elementCalc.SumProfit.value != null\n ) {\n margin = _elementCalc.Factor4.value + _elementCalc.SumProfit.value;\n }\n\n return margin;\n }),\n DeliveryOrder: computed({\n get() {\n return null;\n },\n set(val) {\n _elementCalc.BuildingItems.forEach(item => {\n if (!item.DeliveryOrder) {\n item.DeliveryOrder = val;\n }\n });\n },\n }),\n };\n\n return _elementCalc;\n};\n\nexport const elementSumTotal = (element: BuildingElementCalculation) => {\n let total = 0;\n if (\n element.IsAmountSet.value &&\n element.HasBuildingItems.value &&\n element.BuildingItems\n ) {\n element.BuildingItems.forEach(item => {\n total += item.SumTotal.value ?? 0;\n });\n if (element.AdditionItems) {\n element.AdditionItems.forEach(item => {\n total += item.SumTotal.value ?? 0;\n });\n }\n }\n return total;\n};\n\nexport const elementSumProfit = (element: BuildingElementCalculation) => {\n let profit = 0;\n if (\n element.IsAmountSet.value &&\n element.HasBuildingItems.value &&\n element.BuildingItems\n ) {\n element.BuildingItems.forEach(item => {\n profit += item.SumProfit.value ?? 0;\n });\n if (element.AdditionItems) {\n element.AdditionItems.forEach(item => {\n profit += item.SumProfit.value ?? 0;\n });\n }\n }\n return profit;\n};\n\nexport const elementSumMargin = (element: BuildingElementCalculation) => {\n let margin = 0;\n element.BuildingItems.forEach(item => {\n margin += item.SumMargin.value ?? 0;\n });\n return margin;\n};\n\nexport const elementSumSelfCostMaterialsSubContractors = (\n element: BuildingElementCalculation\n) => {\n let selfCostMatSub = 0;\n if (\n element.IsAmountSet.value &&\n element.HasBuildingItems?.value &&\n element.BuildingItems\n ) {\n element.BuildingItems.forEach(item => {\n selfCostMatSub += item.SumSelfCostMaterialsSubContractors.value ?? 0;\n });\n }\n return selfCostMatSub;\n};\n\nexport const elementSumHours = (element: BuildingElementCalculation) => {\n let sum = 0;\n\n if (element.BuildingItems && element.IsAmountSet.value) {\n element.BuildingItems.forEach(item => {\n sum += item.SumHours.value ?? 0;\n });\n if (element.AdditionItems) {\n element.AdditionItems.forEach(item => {\n sum += item.SumHours.value ?? 0;\n });\n }\n }\n\n return sum;\n};\n\nexport const sortBuildingItemsCalculation = (\n items: Array\n): Array => {\n const sortedItems = items.sort((a, b) =>\n (a.SortOrder ?? 0) > (b.SortOrder ?? 0)\n ? -1\n : (b.SortOrder ?? 0) > (a.SortOrder ?? 0)\n ? 1\n : 0\n );\n return sortedItems;\n};\n\nexport const sortAdditionItemsCalculation = (\n items: Array\n): Array => {\n const sortedItems = items.sort((a, b) =>\n (a.SortOrder ?? 0) > (b.SortOrder ?? 0)\n ? 1\n : (b.SortOrder ?? 0) > (a.SortOrder ?? 0)\n ? -1\n : 0\n );\n return sortedItems;\n};\n\nexport const sortBuildingItems = (\n items: Array\n): Array => {\n const sortedItems = items.sort((a, b) =>\n (a.SortOrder ?? 0) > (b.SortOrder ?? 0)\n ? -1\n : (b.SortOrder ?? 0) > (a.SortOrder ?? 0)\n ? 1\n : 0\n );\n return sortedItems;\n};\n\nexport const sortAdditionItems = (\n items: Array\n): Array => {\n const sortedItems = items.sort((a, b) =>\n (a.SortOrder ?? 0) > (b.SortOrder ?? 0)\n ? 1\n : (b.SortOrder ?? 0) > (a.SortOrder ?? 0)\n ? -1\n : 0\n );\n return sortedItems;\n};\n\nexport const updateBuildingElementSortOrder = (\n elements: Array\n) => {\n elements.forEach((ele, index) => {\n ele.SortOrder = index;\n });\n};\n\nexport const updateBuildingItemSortOrder = (\n items: Array\n): Array => {\n items.forEach((item, index) => {\n item.SortOrder = index;\n });\n return items;\n};\n\nexport const upsertBuildingItems = (\n items: Array\n): Array => {\n const sortedItems = items.sort((a, b) =>\n (a.SortOrder ?? 0) > (b.SortOrder ?? 0)\n ? 1\n : (b.SortOrder ?? 0) > (a.SortOrder ?? 0)\n ? -1\n : 0\n );\n updateBuildingItemSortOrder(sortedItems);\n return sortedItems;\n};\n\nexport const sortBuildingElementsCalculation = (\n elements: Array\n): Array => {\n const sortedElements = elements.sort((a, b) =>\n (a.SortOrder ?? 0) > (b.SortOrder ?? 0)\n ? 1\n : (b.SortOrder ?? 0) > (a.SortOrder ?? 0)\n ? -1\n : 0\n );\n\n updateBuildingElementSortOrder(sortedElements);\n\n sortedElements.forEach(ele => {\n if (ele.BuildingItems) {\n ele.BuildingItems = sortBuildingItemsCalculation(ele.BuildingItems);\n updateBuildingItemSortOrder(ele.BuildingItems);\n }\n });\n\n sortedElements.forEach(ele => {\n if (ele.AdditionItems) {\n ele.AdditionItems = sortAdditionItemsCalculation(ele.AdditionItems);\n }\n });\n return sortedElements;\n};\n\nexport const sortBuildingElements = (\n elements: Array\n): Array => {\n const sortedElements = elements.sort((a, b) =>\n (a.SortOrder ?? 0) > (b.SortOrder ?? 0)\n ? 1\n : (b.SortOrder ?? 0) > (a.SortOrder ?? 0)\n ? -1\n : 0\n );\n\n sortedElements.forEach(ele => {\n if (ele.Items) {\n ele.Items = sortBuildingItems(ele.Items);\n }\n });\n\n sortedElements.forEach(ele => {\n if (ele.AdditionItems) {\n ele.AdditionItems = sortAdditionItems(ele.AdditionItems);\n }\n });\n return sortedElements;\n};\n\nexport const sortBuildingElementsByNS3451 = (\n elements: Array\n): Array => {\n const sortedElements = elements.sort((a, b) =>\n ('' + a.NS3451 ?? '').localeCompare(b.NS3451 ?? '' + '')\n );\n return sortedElements;\n};\n\nexport const buildElementCalculations = (\n elements: Array,\n project: ProjectCalculation\n): Array => {\n const _elementsCalc: Array = [];\n\n elements.forEach(ele => {\n // Create calc variant\n const eleCalc = mapBuildingElementCalcProperties(ele);\n\n eleCalc.Project = project;\n eleCalc.ProjectId = project.Id;\n eleCalc.NS3450 = project.Profession?.Code ?? null;\n\n if (ele.Items) {\n eleCalc.BuildingItems = buildItemCalculations(ele.Items, eleCalc);\n }\n\n if (ele.AdditionItems) {\n eleCalc.AdditionItems = buildAdditionItemCalculations(\n ele.AdditionItems,\n eleCalc\n );\n }\n _elementsCalc.push(eleCalc);\n });\n\n sortBuildingElementsCalculation(_elementsCalc);\n return _elementsCalc;\n};\n\nexport const mapElementCalcToBaseElement = (\n element: BuildingElementCalculation\n): BaseBuildingElement => {\n return {\n Created: element.Created,\n Id: element.Id,\n LastModified: element.LastModified,\n Name: element.Name ?? null,\n ProjectId: element.ProjectId ?? null,\n ProductionLine: element.ProductionLine ?? null,\n SortOrder: element.SortOrder ?? 0,\n NS3450: element.NS3450 ?? null,\n NS3451: element.NS3451 ?? null,\n Amount: element.Amount,\n Unit: element.Unit?.value,\n Factor1: element.Factor1,\n Factor5: element.Factor5,\n Transport: element.Transport,\n Comments: element.Comments ?? null,\n HoursAdjusted: element.HoursAdjusted,\n SalaryCostAdjusted: element.SalaryCostAdjusted,\n MaterialCostAdjusted: element.MaterialCostAdjusted,\n };\n};\n\nexport const getElementTotalByProp = (\n propName: string,\n element: BuildingElementCalculation\n) => {\n switch (propName) {\n case 'SumTotal':\n return element.SumTotal.value.toLocaleString(defaultLocaleString, {\n maximumFractionDigits: 0,\n });\n case 'SumHours':\n return element.SumHours.value.toLocaleString(defaultLocaleString, {\n maximumFractionDigits: 2,\n });\n case 'SumTime':\n return (\n element.SumTime.value &&\n element.SumTime.value.toLocaleString(defaultLocaleString, {\n maximumFractionDigits: 2,\n })\n );\n case 'Factor1':\n return (\n element.Factor1 &&\n element.Factor1.toLocaleString(defaultLocaleString, {\n maximumFractionDigits: 2,\n })\n );\n case 'Factor2':\n return (\n element.Factor2.value &&\n element.Factor2.value.toLocaleString(defaultLocaleString, {\n maximumFractionDigits: 2,\n })\n );\n case 'Factor3':\n return (\n element.Factor3.value &&\n element.Factor3.value.toLocaleString(defaultLocaleString, {\n maximumFractionDigits: 2,\n })\n );\n case 'Factor4':\n return (\n element.Factor4.value &&\n element.Factor4.value.toLocaleString(defaultLocaleString, {\n maximumFractionDigits: 2,\n })\n );\n case 'Factor6':\n return (\n element.Factor6.value &&\n element.Factor6.value.toLocaleString(defaultLocaleString, {\n maximumFractionDigits: 2,\n })\n );\n case 'Factor7':\n return (\n element.Factor7.value &&\n element.Factor7.value.toLocaleString(defaultLocaleString, {\n maximumFractionDigits: 2,\n })\n );\n case 'SumMaterialsUE':\n return element.SumMaterialsUE.value.toLocaleString(defaultLocaleString, {\n maximumFractionDigits: 0,\n });\n case 'SumSelfCostMaterialsSubContractors':\n return element.SumSelfCostMaterialsSubContractors.value.toLocaleString(\n defaultLocaleString,\n {\n maximumFractionDigits: 0,\n }\n );\n }\n};\n\nexport const getElementTotalTypography = (propName: string) => {\n switch (propName) {\n case 'SumTotal':\n return 'font-weight-medium ma-1 font-italic secondary--text';\n case 'SumHours':\n return 'font-weight-medium ma-1 font-italic secondary--text';\n case 'SumTime':\n return 'font-weight-medium ma-1 font-italic secondary--text';\n case 'Factor1':\n return 'font-weight-medium ma-1 font-italic secondary--text';\n case 'Factor2':\n return 'font-weight-medium ma-1 font-italic secondary--text';\n case 'Factor3':\n return 'font-weight-medium ma-1 font-italic error--text';\n case 'Factor4':\n return 'font-weight-medium ma-1 font-italic error--text';\n case 'Factor6':\n return 'font-weight-medium ma-1 font-italic secondary--text';\n case 'Factor7':\n return 'font-weight-medium ma-1 font-italic secondary--text';\n case 'SumMaterialsUE':\n return 'font-weight-medium ma-1 font-italic secondary--text';\n case 'SumSelfCostMaterialsSubContractors':\n return 'font-weight-medium ma-1 font-italic error--text';\n }\n};\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=4415970f&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/bmf-white.d97ba7de.svg\";","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=b365bcb0&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=f286b95c&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=13f57ec8&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=23deef78&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=156c8a73&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=5adf4013&lang=scss&scoped=true&\"","import { reactive, toRefs } from '@vue/composition-api';\n\ninterface State {\n active: boolean;\n text: string;\n success: boolean;\n}\n\nconst state = reactive({\n active: false,\n text: '',\n success: true,\n});\n\nexport const useSnackbar = () => {\n const snack = (message: string, success: boolean) => {\n state.active = true;\n state.text = message;\n state.success = success;\n };\n\n return {\n snack,\n ...toRefs(state),\n };\n};\n","module.exports = __webpack_public_path__ + \"img/prores-white.d837fc6e.svg\";","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=e34810c4&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/project.62db0f04.png\";","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=98aa0862&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-btn',{class:(\"ma-2 status-checker \" + _vm.color),attrs:{\"dark\":\"\",\"text\":\"\",\"loading\":_vm.updating,\"outlined\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.updating ? _vm.$t('calculation.saving-changes') : _vm.text)+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(_vm._s(_vm.icon))])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { CalculationState } from '@/constants/enum';\nimport { translate } from '@/localization';\nimport { useCalculation } from '@/modules/calculation';\nimport { computed, defineComponent } from '@vue/composition-api';\n\nexport default defineComponent({\n setup() {\n const { state, updating } = useCalculation();\n\n const text = computed(() => {\n switch (state.value) {\n case CalculationState.Idle:\n return translate('calculation.calculation-idle');\n case CalculationState.UnsavedChanges:\n return translate('calculation.calculation-unsaved');\n case CalculationState.Updated:\n return translate('calculation.calculation-updated');\n case CalculationState.Problem:\n return translate('calculation.calculation-problem');\n default:\n return '';\n }\n });\n\n const icon = computed(() => {\n switch (state.value) {\n case CalculationState.Idle:\n return 'mdi-clipboard-text-clock-outline';\n case CalculationState.UnsavedChanges:\n return 'mdi-content-save-alert-outline';\n case CalculationState.Updated:\n return 'mdi-checkbox-marked-outline';\n case CalculationState.Problem:\n return 'mdi-alert-circle';\n default:\n return '';\n }\n });\n\n const color = computed(() => {\n switch (state.value) {\n case CalculationState.Idle:\n return 'grey--text';\n case CalculationState.UnsavedChanges:\n return 'primary--text darken-5';\n case CalculationState.Updated:\n return 'secondary--text';\n case CalculationState.Problem:\n return 'error--text';\n default:\n return '';\n }\n });\n\n return {\n updating,\n text,\n color,\n icon,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=e15c3cd4&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=e15c3cd4&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e15c3cd4\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VIcon})\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&lang=scss&\"","import {\n PriceListItem,\n SearchablePriceListItem,\n} from '@/models/pricebook/interfaces';\n\nexport const calculatedPrice = (\n item: PriceListItem | SearchablePriceListItem\n): Nullable => {\n let price: Nullable = null;\n if (!item.BasePrice) return price;\n\n if (item.DiscountPercentage == null) {\n price = item.BasePrice;\n } else {\n price = Number(item.BasePrice * (100 - item.DiscountPercentage)) / 100;\n }\n\n return price;\n};\n","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=78ed42ac&lang=scss&scoped=true&\"","export const AUTH_KEY = 'kalkonline_id';\nexport const GRANT_TYPE_PW = 'password';\n\nexport const DEFAULT_LAYOUT = 'applayout-default';\nexport const PROTECTED_LAYOUT = 'applayout-protected';\nexport const LOADING_LAYOUT = 'applayout-loading';\n\nexport const LS_ACTIVE_PROJECT_KEY = 'kalkonline_ap';\nexport const LS_ACTIVE_CALC_KEY = 'kalkonline_ac';\nexport const LS_ACTIVE_BE_KEY = 'kalkonline_be';\n\nexport const EMOTION_HAPPY = 'Smile';\nexport const EMOTION_DONT_KNOW = 'DontKnow';\nexport const EMOTION_SAD = 'Sad';\n\nexport const FEEDBACKTYPE_GENERAL = 'General';\nexport const FEEDBACKTYPE_IMPROVEMENT = 'Improvement';\nexport const FEEDBACKTYPE_BUG = 'Bug';\n\nexport const ACTIVE_LOCALE = 'kalkonline_locale';\n\nexport const USER_READ_PATCH_NOTES = 'kalkonline_locale';\n\nexport const BLOB_PRICELIST_NAME = 'pricelists.json';\n\nexport const ONE_MEGABYTE = 1024 * 1024;\n\nexport const BUFFER_SIZE = 4 * ONE_MEGABYTE;\nexport const MAX_BUFFERS = 20;\n\nexport const LICENSE_PRICE_FULL_NO_MEMBERSHIP = 965;\nexport const LICENSE_PRICE_FULL_MEMBERSHIP = 800;\nexport const LICENSE_PRICE_ADDITION_NO_MEMBERSHIP = 210;\nexport const LICENSE_PRICE_ADDITION_MEMBERSHIP = 160;\n\nexport const UNITS = new Map([\n ['KVM', 'm2'],\n ['KVMTR', 'm2'],\n ['LM', 'm'],\n ['MTR', 'm'],\n ['KUB', 'm3'],\n ['ST', 'stk'],\n ['LGD', 'stk'],\n ['BK', 'stk'],\n ['PK', 'pak'],\n ['PAKKE', 'pak'],\n ['RULL', 'rul'],\n ['SP', 'spa'],\n ['SPANN', 'spa'],\n ['KN', 'spa'],\n ['BKS', 'spa'],\n ['BOKS', 'spa'],\n ['POSE', 'pos'],\n ['SETT', 'set'],\n ['PALL', 'pal'],\n ['PL', 'pal'],\n ['SEKK', 'sek'],\n ['SK', 'sek'],\n ['FLASKE', 'fl'],\n ['FLK', 'fl'],\n ['LITER', 'ltr'],\n ['KILO', 'kg'],\n ['TONN', 'ton'],\n]);\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=d94e69d4&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=4be47714&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Admin.vue?vue&type=style&index=0&id=3ee74b46&lang=scss&scoped=true&\"","import { ComputedRef } from '@vue/composition-api';\nimport { ProjectCalculation } from '../calculation/interfaces';\nimport { TimeFactor } from '../common/interfaces';\nimport { PriceMatch } from '../pricebook/interfaces';\n\ninterface Entity {\n Id: Nullable;\n Created?: Nullable;\n LastModified?: Nullable;\n}\n\nexport interface BaseBuildingElement extends Entity {\n Name: Nullable;\n ProjectId: Nullable;\n ProductionLine: Nullable;\n SortOrder: Nullable;\n NS3450: Nullable;\n NS3451: Nullable;\n Amount: Nullable;\n Unit?: Nullable;\n Factor1?: Nullable;\n Factor5?: Nullable;\n Transport: Nullable;\n Comments: Nullable;\n HoursAdjusted?: Nullable;\n HoursUsedSoFar?: Nullable;\n SalaryCostAdjusted?: Nullable;\n SalaryCostSoFar?: Nullable;\n MaterialCostAdjusted?: Nullable;\n MaterialCostSoFar?: Nullable;\n}\n\nexport interface AdditionItem extends Entity {\n Name?: Nullable;\n BuildingElementId?: Nullable;\n SortOrder?: Nullable;\n Unit?: Nullable;\n Amount?: Nullable;\n AmountAdjustment?: Nullable;\n AmountPrUnit?: Nullable;\n Price?: Nullable;\n Factor1?: Nullable;\n Comments?: Nullable;\n}\n\nexport interface BuildingElement extends BaseBuildingElement {\n Items: Array;\n AdditionItems: Array;\n}\n\nexport interface BuildingItem extends Entity {\n BuildingElementId?: Nullable;\n Name?: Nullable;\n Unit?: Nullable;\n UnitForOrder?: Nullable;\n SortOrder?: Nullable;\n Amount?: Nullable;\n AmountPrUnit?: Nullable;\n Price?: Nullable;\n Factor1?: Nullable;\n Factor5?: Nullable;\n PriceListName?: Nullable;\n PriceListItemName?: Nullable;\n Comments?: Nullable;\n MileStone?: Nullable;\n AmountAdjustment?: Nullable;\n AccountNumber?: Nullable;\n NOBBNumber?: Nullable;\n NS3420?: Nullable;\n BaseTime?: Nullable;\n Precut?: Nullable;\n SurfaceAddition?: Nullable;\n Transport?: Nullable;\n AmountControl?: Nullable;\n OpeningAddition?: Nullable;\n IsFDVExportSelected?: Nullable;\n DeliveryOrder?: Nullable;\n TransportationAddition?: Nullable;\n TimeEstimateName?: Nullable;\n}\n\nexport interface ElementItem extends Entity {\n BuildingElement?: BuildingElementCalculation;\n BuildingElementId?: Nullable;\n Name: Nullable;\n PriceListItemName: Nullable;\n Unit: Nullable;\n UnitForOrder: Nullable;\n SortOrder: Nullable;\n Amount: Nullable;\n AmountPrUnit: Nullable;\n AmountCalculated: ComputedRef>;\n Price?: Nullable;\n TimePrUnit: ComputedRef>;\n SumHours: ComputedRef>;\n Factor2: ComputedRef>;\n SumProductionSalary: ComputedRef>;\n Factor3: ComputedRef>;\n Factor4: ComputedRef>;\n ProjectCost: ComputedRef>;\n SumSelfCostSalaryAndExpenses: ComputedRef>;\n SumSelfCostMaterialsSubContractors: ComputedRef>;\n Factor6: ComputedRef>;\n SumSalaryAndSocialCost: ComputedRef>;\n SumSalaryAndExpenses: ComputedRef>;\n SumSelfCost: ComputedRef>;\n SumProfit: ComputedRef>;\n UnitPrice: ComputedRef>;\n UnitPriceWithAdditions: ComputedRef>;\n UnitPriceMaterials: ComputedRef>;\n SumTotal: ComputedRef>;\n SumTotalWithAdditions: ComputedRef>;\n Comments?: Nullable;\n SumMaterialsUE: ComputedRef>;\n MileStone?: Nullable;\n NS3420?: Nullable;\n SumTime: ComputedRef>;\n}\n\nexport interface WarningStatus {\n StatusType: ItemStatus;\n StatusColor: string;\n StatusText: string;\n}\n\nexport interface BuildingItemCalculation extends ElementItem {\n Items: Array;\n TimeFactors: Array;\n ReportPriceListName: ComputedRef>;\n IsHighLighted?: boolean;\n IsRecentlyAdded: boolean;\n IsSelected: boolean;\n IsFDVExportSelected: boolean;\n AccountNumber?: Nullable;\n AmountAdjustment?: Nullable;\n AmountControl?: Nullable;\n BaseTime?: Nullable;\n DisplayName?: Nullable;\n DeliveryOrder?: Nullable;\n Factor1?: Nullable;\n Factor5?: Nullable;\n NOBBNumber?: Nullable;\n Factor7: ComputedRef;\n OpeningAddition?: Nullable;\n Precut?: Nullable;\n PriceListName?: Nullable;\n SurfaceAddition?: Nullable;\n TimeEstimateName?: Nullable;\n Transport?: Nullable;\n TransportationAddition?: Nullable;\n IsTimeFactorAdded: ComputedRef;\n IsAmountSet: ComputedRef;\n IsTimeEstimateAdded: ComputedRef;\n PreCutText: ComputedRef>;\n Factor1Calculated: ComputedRef>;\n Factor5Calculated: ComputedRef>;\n AmountOfMaterials: ComputedRef>;\n DeviationAmount: ComputedRef;\n DeviationPrice: ComputedRef;\n OpeningAdditionAmount: ComputedRef>;\n SurfaceAdditionAmount: ComputedRef>;\n SumAdditions: ComputedRef>;\n SumMargin: ComputedRef;\n IsModifiedRecently: boolean;\n TransportCalculated?: ComputedRef>;\n DocumentationDownloaded: DocumentationStatus;\n ItemWarnings: Array;\n Status: Nullable;\n PriceMatch: Nullable;\n}\n\nexport enum AdditionType {\n Åpninger,\n Flatetillegg,\n}\n\nexport enum DocumentationStatus {\n Default,\n Succeeded,\n Failed,\n}\n\nexport enum ItemStatus {\n MissingNobb,\n MatchWithPriceDiff,\n MatchWithUnitDiff,\n MatchNoDiff,\n}\n\nexport interface AdditionItemCalculation extends ElementItem {\n Items: Array;\n Factor1?: Nullable;\n BaseTime: ComputedRef>;\n AmountAdjusted?: Nullable;\n AmountAdjustment?: Nullable;\n Factor1Calculated: ComputedRef>;\n}\n\nexport interface BuildingElementCalculation extends Entity {\n Items: Array;\n BuildingItems: Array;\n AdditionItems: Array;\n ProjectId?: Nullable;\n Project?: ProjectCalculation;\n Name: Nullable;\n Unit?: ComputedRef;\n Amount: Nullable;\n AmountCalculated: ComputedRef;\n AmountOfMaterials: ComputedRef;\n SumTime: ComputedRef>;\n DeliveryOrder?: ComputedRef>;\n Comments: Nullable;\n NS3450: Nullable;\n NS3451: Nullable;\n SortOrder: Nullable;\n ProductionLine: Nullable;\n Transport: Nullable;\n TransportAddition: Nullable;\n OpeningAddition: ComputedRef>;\n SurfaceAddition: ComputedRef>;\n TransportationAddition?: Nullable;\n IsAmountSet: ComputedRef;\n HasBuildingItems: ComputedRef;\n IsHighLighted: ComputedRef;\n IsRecentlyAdded: boolean;\n IsSelected: boolean;\n IsExpanded: boolean;\n HoursAdjusted?: Nullable;\n MaterialCostAdjusted?: Nullable;\n SalaryCostAdjusted?: Nullable;\n HoursAdjustedVM: ComputedRef;\n SalaryCostAdjustedCalculated: ComputedRef;\n TimePrUnit: ComputedRef;\n SumHoursAdjusted: ComputedRef;\n SumMaterialsAndCostAdjusted: ComputedRef>;\n SumSalaryAndExpensesAdjusted: ComputedRef;\n SumHours: ComputedRef;\n Factor2: ComputedRef>;\n SumProductionSalary: ComputedRef;\n ProjectCost: ComputedRef>;\n Factor3: ComputedRef;\n SumSalaryAndSocialCost: ComputedRef;\n Factor4: ComputedRef;\n SumSelfCostSalaryAndExpenses: ComputedRef;\n Factor6: ComputedRef>;\n SumSalaryAndExpenses: ComputedRef>;\n UnitPriceMaterials: ComputedRef>;\n SumSelfCostMaterialsSubContractors: ComputedRef;\n Factor7: ComputedRef>;\n SumMaterialsUE: ComputedRef;\n SumSelfCost: ComputedRef;\n UnitPrice?: ComputedRef>;\n UnitPriceWithAdditions?: ComputedRef>;\n SumProfit: ComputedRef;\n SumTotal: ComputedRef;\n SumAmountControl: ComputedRef;\n Signed?: Nullable;\n FollowupDate?: Nullable;\n NS3451TopLevel: ComputedRef;\n NS3451SecondLevel: ComputedRef;\n NS3451ThirdLevel: ComputedRef;\n Price: ComputedRef;\n Factor1?: Nullable;\n Factor1Calculated: ComputedRef>;\n Factor5?: Nullable;\n Factor5Calculated: ComputedRef>;\n IsFDVExportSelected: ComputedRef;\n ItemCount: ComputedRef;\n SumMargin: ComputedRef;\n ElementWarnings: Array;\n}\n\nexport interface PrecutItem {\n Amount: Nullable;\n AmountPrUnit: Nullable;\n AmountAdjustment: Nullable;\n}\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=1&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=1d027f51&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=5d3d07ae&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=378a560e&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=7a4fd5f7&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=178cca54&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=1&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=b2d4604c&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/content-banner.b4047e07.svg\";","export const HOME_PATH = '/';\nexport const VERSIONS_PATH = '/versions';\nexport const LOGIN_PATH = '/login';\nexport const LOGOUT_PATH = '/logout';\n\nexport const PROJECT_START_PATH = '/project/start';\nexport const PROJECT_PRICEBOOK_PATH = '/pricebook';\nexport const PROJECT_ORGANIZATION_PATH = '/organization';\nexport const PROJECT_CALCULATION_PATH = '/project/calculation';\nexport const PROJECT_CALCULATION_OVERVIEW_PATH =\n '/project/calculation/overview';\nexport const PROJECT_CALCULATION_BUILDING_ELEMENT_PATH =\n '/project/calculation/element';\nexport const PROJECT_CALCULATION_PRICE_UPDATE_PATH =\n '/project/calculation/price-update';\nexport const PROJECT_CALCULATION_ENVIRONMENT = '/project/environment';\nexport const PROJECT_ADMIN_PATH = '/admin';\nexport const PROJECT_OVERVIEW_PATH = '/project/overview';\nexport const PROJECT_LIBRARY_PATH = '/library';\n\nexport const PUBLIC_PATHS = [HOME_PATH, LOGIN_PATH, VERSIONS_PATH];\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PriceUnit.vue?vue&type=style&index=0&id=e5bc34d6&scoped=true&lang=css&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NobbItemCertificates.vue?vue&type=style&index=0&id=23d5bcbc&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=315befb0&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=0ed37988&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/contract.65eb25cf.png\";","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=44e65d96&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=08c36742&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BuildingElement.vue?vue&type=style&index=0&id=5c339035&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"home\"},[_c('v-img',{staticClass:\"logo-primary\",attrs:{\"src\":require(\"@/assets/images/kalk-logo.svg\"),\"contain\":\"\",\"max-height\":\"60\"}}),_c('v-parallax',{attrs:{\"src\":require(\"@/assets/images/project.png\")}},[_c('h1',{staticClass:\"header\"},[_vm._v(_vm._s(_vm.$t('home.header')))]),_c('h2',{staticClass:\"subheader\"},[_vm._v(\" \"+_vm._s(_vm.$t('home.subheader'))+\" \")])]),_c('v-list-item',{staticClass:\"one-two-three\"},[_c('v-list-item-avatar',[_c('v-icon',{staticClass:\"ott-numeric\",attrs:{\"color\":\"primary\"}},[_vm._v(\"mdi-numeric-1-box \")])],1),_c('v-list-item-content',[_c('v-list-item-title',{staticClass:\"ott-header\"},[_vm._v(\" \"+_vm._s(_vm.$t('home.subscription1')))]),_c('v-list-item-subtitle',[_vm._v(_vm._s(_vm.$t('home.subscription1-sub')))])],1)],1),_c('v-divider',{attrs:{\"inset\":\"\",\"id\":\"products\"}}),_c('v-scroll-y-transition',{attrs:{\"appear\":\"\"}},[_c('subscriptions')],1),_c('v-list-item',{staticClass:\"one-two-three\"},[_c('v-list-item-avatar',[_c('v-icon',{staticClass:\"ott-numeric\",attrs:{\"color\":\"primary\"}},[_vm._v(\"mdi-numeric-2-box \")])],1),_c('v-list-item-content',[_c('v-list-item-title',{staticClass:\"ott-header\"},[_vm._v(_vm._s(_vm.$t('home.subscription2')))]),_c('v-list-item-subtitle',[_vm._v(_vm._s(_vm.$t('home.subscription2-sub')))]),_c('a',{staticClass:\"ma-2 ml-0 learn-more\",attrs:{\"color\":\"secondary\",\"text\":\"\",\"href\":_vm.documentationUrl,\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm.$t('home.learn-more'))+\" \")])],1)],1),_c('v-divider',{attrs:{\"inset\":\"\"}}),_c('v-list-item',{staticClass:\"one-two-three\"},[_c('v-list-item-avatar',[_c('v-icon',{staticClass:\"ott-numeric\",attrs:{\"color\":\"primary\"}},[_vm._v(\"mdi-numeric-3-box \")])],1),_c('v-list-item-content',[_c('v-list-item-title',{staticClass:\"ott-header\"},[_vm._v(_vm._s(_vm.$t('home.subscription3')))]),_c('v-list-item-subtitle',[_vm._v(_vm._s(_vm.$t('home.subscription3-sub')))]),_c('a',{staticClass:\"ma-2 ml-0 learn-more\",attrs:{\"color\":\"secondary\",\"text\":\"\",\"href\":_vm.supportUrl,\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm.$t('home.learn-more-support'))+\" \")])],1)],1),_c('v-divider',{attrs:{\"inset\":\"\"}}),_c('v-footer',{attrs:{\"color\":\"primary\",\"padless\":\"\"}},[_c('v-row',{staticClass:\"lander-foot\",attrs:{\"justify\":\"center\",\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"primary py-4 text-center white--text\",attrs:{\"cols\":\"12\"}},[_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{attrs:{\"md\":\"3\"}},[_c('a',{attrs:{\"href\":\"https://byggmesterforbundet.no/\",\"target\":\"_blank\"}},[_c('v-img',{staticClass:\"brand\",attrs:{\"contain\":\"\",\"src\":require(\"@/assets/images/bmf-white.svg\"),\"max-height\":\"60\"}})],1)]),_c('v-col',{attrs:{\"md\":\"3\"}},[_c('a',{attrs:{\"href\":\"https://proresult.no/\",\"target\":\"_blank\"}},[_c('v-img',{staticClass:\"brand\",attrs:{\"contain\":\"\",\"src\":require(\"@/assets/images/prores-white.svg\"),\"max-height\":\"60\"}})],1)])],1)],1),_c('v-col',{staticClass:\"primary py-4 text-center white--text terms-copyright\",attrs:{\"cols\":\"12\"}},[_c('a',{staticClass:\"white--text\",attrs:{\"href\":_vm.policyUrl,\"target\":\"_blank\"}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.privacy-notice')))]),_vm._v(\" / \"),_c('a',{staticClass:\"white--text\",attrs:{\"href\":_vm.termsUrl,\"target\":\"_blank\"}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.terms')))]),_c('div',[_vm._v(\"Copyright © 2022 Proresult AS\")])])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-row',{staticClass:\"content-row\",attrs:{\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"3\",\"sm\":\"12\"}},[_c('v-card',{staticClass:\"subscription-trial\",attrs:{\"tile\":\"\",\"hover\":\"\",\"transition\":\"slide-x-transition\",\"dark\":\"\"}},[_c('v-card-title',{staticClass:\"title-trial\"},[_vm._v(_vm._s(_vm.$t('home.subcard-trial-title')))]),_c('v-divider',{staticClass:\"title-divider\"}),_c('v-card-text',{staticClass:\"card-content\"},[_c('div',{staticClass:\"price-wrapper\"},[_c('div',{staticClass:\"price-trial\"},[_vm._v(\"0 kr\")])]),_c('div',{staticClass:\"icon-wrapper\"},[_c('v-icon',{staticClass:\"member-trial\"},[_vm._v(\"mdi-account\")])],1),_c('p',{staticClass:\"license-info-trial\"},[_vm._v(\" \"+_vm._s(_vm.$t('home.subcard-trial-p1'))+\" \")]),_c('p',{staticClass:\"license-info-trial\"},[_vm._v(\" \"+_vm._s(_vm.$t('home.subcard-trial-p2'))+\" \")]),_c('p',{staticClass:\"license-info-trial\"},[_vm._v(\" \"+_vm._s(_vm.$t('home.subcard-trial-p3'))+\" \")]),_c('p',{staticClass:\"license-info-trial\"},[_vm._v(\" \"+_vm._s(_vm.$t('home.subcard-trial-p4'))+\" \")])]),_c('v-card-actions',[_c('v-btn',{staticClass:\"order-now-trial\",attrs:{\"text\":\"\",\"href\":_vm.registerUrl,\"target\":\"_blank\"}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.order-now')))])],1)],1)],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"3\",\"sm\":\"12\"}},[_c('v-card',{staticClass:\"subscription\",attrs:{\"tile\":\"\",\"hover\":\"\",\"transition\":\"slide-x-transition\"}},[_c('v-card-title',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.$t('home.subcard-standard-title')))]),_c('v-divider',{staticClass:\"title-divider\"}),_c('v-card-text',{staticClass:\"card-content\"},[_c('div',{staticClass:\"price-wrapper\"},[_c('div',{staticClass:\"price\"},[_vm._v(\" \"+_vm._s((_vm.LICENSE_PRICE_FULL_NO_MEMBERSHIP + \" kr\"))+\" \")])]),_c('div',{staticClass:\"icon-wrapper\"},[_c('v-icon',{staticClass:\"member\"},[_vm._v(\"mdi-account\")])],1),_c('p',{staticClass:\"license-info\"},[_vm._v(\" \"+_vm._s(_vm.$t('home.subcard-standard-p1'))+\" \")]),_c('p',{staticClass:\"license-info\"},[_vm._v(\" \"+_vm._s(_vm.$t('home.subcard-standard-p3'))+\" \")]),_c('p',{staticClass:\"license-info\"},[_vm._v(\" \"+_vm._s(_vm.$t('home.subcard-standard-p2-part1'))+\" \"),_c('span',{staticClass:\"additional\"},[_vm._v(\" \"+_vm._s((_vm.LICENSE_PRICE_ADDITION_NO_MEMBERSHIP + \" kr\")))]),_vm._v(\" \"+_vm._s(_vm.$t('home.subcard-standard-p2-part2'))+\" \")]),_c('p',{staticClass:\"license-info\"},[_vm._v(\" \"+_vm._s(_vm.$t('home.subcard-standard-p4'))+\" \")])]),_c('v-card-actions',[_c('v-btn',{staticClass:\"order-now\",attrs:{\"text\":\"\",\"href\":_vm.registerUrl,\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm.$t('buttons.order-now')))])],1)],1)],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"3\",\"sm\":\"12\"}},[_c('v-card',{staticClass:\"subscription-member\",attrs:{\"tile\":\"\",\"hover\":\"\",\"transition\":\"slide-x-transition\"}},[_c('v-card-title',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.$t('home.subcard-member-title')))]),_c('v-divider',{staticClass:\"title-divider\"}),_c('v-card-text',{staticClass:\"card-content\"},[_c('div',{staticClass:\"price-wrapper\"},[_c('div',{staticClass:\"price-member\"},[_vm._v(\" \"+_vm._s((_vm.LICENSE_PRICE_FULL_MEMBERSHIP + \" kr\"))+\" \")])]),_c('div',{staticClass:\"icon-wrapper\"},[_c('v-icon',{staticClass:\"member\"},[_vm._v(\"mdi-account-hard-hat\")])],1),_c('p',{staticClass:\"license-info\"},[_vm._v(\" \"+_vm._s(_vm.$t('home.subcard-member-p1'))+\" \")]),_c('p',{staticClass:\"license-info\"},[_vm._v(\" \"+_vm._s(_vm.$t('home.subcard-member-p3'))+\" \")]),_c('p',{staticClass:\"license-info\"},[_vm._v(\" \"+_vm._s(_vm.$t('home.subcard-member-p2-part1'))+\" \"),_c('span',{staticClass:\"additional-member\"},[_vm._v(_vm._s((_vm.LICENSE_PRICE_ADDITION_MEMBERSHIP + \" kr\")))]),_vm._v(\" \"+_vm._s(_vm.$t('home.subcard-member-p2-part2'))+\" \")]),_c('p',{staticClass:\"license-info\"},[_vm._v(\" \"+_vm._s(_vm.$t('home.subcard-member-p4'))+\" \")])]),_c('v-card-actions',[_c('v-btn',{staticClass:\"order-now-member\",attrs:{\"text\":\"\",\"href\":_vm.registerUrl,\"target\":\"_blank\"}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.order-now')))])],1)],1)],1)],1),_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-btn',{staticClass:\"become-member .d-none .d-xl-flex\",attrs:{\"href\":\"https://www.byggmesterforbundet.no/bli-medlem\",\"target\":\"_blank\",\"color\":\"primary\",\"large\":\"\",\"text\":\"\"}},[_vm._v(_vm._s(_vm.$t('buttons.membership'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-chevron-right\")])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport {\n LICENSE_PRICE_ADDITION_MEMBERSHIP,\n LICENSE_PRICE_ADDITION_NO_MEMBERSHIP,\n LICENSE_PRICE_FULL_MEMBERSHIP,\n LICENSE_PRICE_FULL_NO_MEMBERSHIP,\n} from '@/constants/common';\nimport { defineComponent } from '@vue/composition-api';\n\nexport default defineComponent({\n setup() {\n return {\n registerUrl: process.env.VUE_APP_REGISTER_URL,\n LICENSE_PRICE_ADDITION_MEMBERSHIP,\n LICENSE_PRICE_ADDITION_NO_MEMBERSHIP,\n LICENSE_PRICE_FULL_NO_MEMBERSHIP,\n LICENSE_PRICE_FULL_MEMBERSHIP,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=a993f8da&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VCol,VDivider,VIcon,VRow})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, onMounted } from '@vue/composition-api';\nimport Subscriptions from '@/components/home/subscriptions/index.vue';\nimport router from '@/router/index';\n\nexport default defineComponent({\n components: {\n Subscriptions,\n },\n setup() {\n onMounted(() => {\n const hash = router?.currentRoute?.hash;\n\n if (hash) {\n const anchor = document.querySelector(hash);\n if (anchor) {\n anchor.scrollIntoView({ behavior: 'smooth' });\n }\n }\n });\n return {\n policyUrl: process.env.VUE_APP_POLICY_URL,\n termsUrl: process.env.VUE_APP_TERMS_URL,\n supportUrl: process.env.VUE_APP_SUPPORT_URL,\n documentationUrl: process.env.VUE_APP_DOCUMENTATION_URL,\n };\n },\n});\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=0fa57af1&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=ts&\"\nexport * from \"./Home.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=0fa57af1&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0fa57af1\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VFooter } from 'vuetify/lib/components/VFooter';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemAvatar } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemSubtitle } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VParallax } from 'vuetify/lib/components/VParallax';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VScrollYTransition } from 'vuetify/lib/components/transitions';\ninstallComponents(component, {VCol,VDivider,VFooter,VIcon,VImg,VListItem,VListItemAvatar,VListItemContent,VListItemSubtitle,VListItemTitle,VParallax,VRow,VScrollYTransition})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('content-bar',{attrs:{\"title\":_vm.$t('titles.versions')}}),_c('v-card',{staticClass:\"ma-5 mt-2 pa-4\"},[_c('section',{staticClass:\"mt-3\"},[_c('version-title',{attrs:{\"version\":_vm.$t('titles.version', { version: '1.4.1' }),\"date\":'24.01.2024',\"current\":\"\"}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.New}},[_vm._v(\" Ny side - Prisoppdatering \")]),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.Change}},[_vm._v(\" Nye priser 2024 \")]),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.Fixed}},[_vm._v(\" Tekst på varer i bibliotek forsvinner når teksten er for lang \")]),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.Fixed}},[_vm._v(\" Feil i logovisning ved lang horisontal logo \")])],1),_c('section',{staticClass:\"mt-3\"},[_c('version-title',{attrs:{\"version\":_vm.$t('titles.version', { version: '1.4.0' }),\"date\":'23.06.2023'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.New}},[_vm._v(\" Ny side - Miljø \")]),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.New}},[_vm._v(\" Klimarapport \")])],1),_c('section',{staticClass:\"mt-3\"},[_c('version-title',{attrs:{\"version\":_vm.$t('titles.version', { version: '1.3.46' }),\"date\":'05.05.2023'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.Fixed}},[_vm._v(\" Excel - Rapport feiler ved duplikate ark-navn \")]),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.Fixed}},[_vm._v(\" Excel - Rapport feiler vist ark-navn er langt \")])],1),_c('section',{staticClass:\"mt-3\"},[_c('version-title',{attrs:{\"version\":_vm.$t('titles.version', { version: '1.3.45' }),\"date\":'13.03.2023'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.Change}},[_vm._v(\" Oppdatert \"),_c('a',{attrs:{\"href\":_vm.termsUrl,\"target\":\"_blank\"}},[_vm._v(\"vilkår og betingelser\")])])],1),_c('section',{staticClass:\"mt-3\"},[_c('version-title',{attrs:{\"version\":_vm.$t('titles.version', { version: '1.3.44' }),\"date\":'18.01.2023'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.Fixed,\"text\":'Korrigert avrunding av tall i rapporter'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.Fixed,\"text\":'Feil i hent vare'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.Fixed,\"text\":'Større tekstfelt for t.d kommentarer'}})],1),_c('section',{staticClass:\"mt-3\"},[_c('version-title',{attrs:{\"version\":_vm.$t('titles.version', { version: '1.3.43' }),\"date\":'28.11.2022'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.Fixed,\"text\":'Flytt knapp for opprettelse av mal i bibliotek under nederste element'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.Fixed,\"text\":'Prosjekttotal på startside ble ikke automatisk oppdatert når bare kalkylefaktorer ble endret'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.Fixed,\"text\":'Manglende mengde på delprodukt ved opprettelse fra bygningsdelmal'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.Fixed,\"text\":'Nye bygningsdeler blir lagt til kalkyle i lukket tilstand'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.Change,\"text\":'Epost kolonne i Admin endret til Brukernavn'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.New,\"text\":'Mulighet for å farge bygningsdeler'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.New,\"text\":'Popup beskrivelse på tidsestimat i tidbok'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.New,\"text\":'Bygningsdeler lagt til NS kategori i bibliotek'}})],1),_c('section',{staticClass:\"mt-3\"},[_c('version-title',{attrs:{\"version\":_vm.$t('titles.version', { version: '1.3.42' }),\"date\":'03.10.2022'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.Fixed,\"text\":'Enhets pris til enhetspris'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.New,\"text\":'Mulighet for å skjule delprodukt i Vedlegg Pristilbud'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.New,\"text\":'Mulighet for å skjule varenavn i Vedlegg Pristilbud',\"thanks\":'Adrian Solberg',\"org\":'Fagerheim Byggteknikk AS',\"site\":'https://www.fagerheim.as/'}})],1),_c('section',{staticClass:\"mt-3\"},[_c('version-title',{attrs:{\"version\":_vm.$t('titles.version', { version: '1.3.41' }),\"date\":'13.06.2022'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.New,\"text\":'Velkomst-dialog med informasjon om nytt grensesnitt'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.Fixed,\"text\":'Manglende prislister ved flere åpninger av dialogvinduet «Finn bytt vare»'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.Fixed,\"text\":'Ved bilbiotek siden viser feltet «Innkjøpspris materialer» for mange desimaler'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.Fixed,\"text\":'Feil verdi for «Åpninger» og «Flater» ved import av kalkyle i .json format',\"thanks\":'Adrian Solberg',\"org\":'Fagerheim Byggteknikk AS',\"site\":'https://www.fagerheim.as/'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.Fixed,\"text\":'Feil i «Total» feltet for prosjekt og kalkyler på /start siden'}})],1),_c('section',{staticClass:\"mt-3\"},[_c('version-title',{attrs:{\"version\":_vm.$t('titles.version', { version: '1.3.40' }),\"date\":'23.5.2022'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.New,\"text\":'Mulighet for å generere PDF-rapporter med stor skriftstørrelse'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.New,\"text\":'Forbedra mobilvisning (knapper, rapportering)'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.New,\"text\":'Fortjeneste og Materialkost % av Total',\"thanks\":'Adrian Solberg',\"org\":'Fagerheim Byggteknikk AS',\"site\":'https://www.fagerheim.as/'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.New,\"text\":'Dekningsbidrag og Dekningsgrad',\"thanks\":'Adrian Solberg',\"org\":'Fagerheim Byggteknikk AS',\"site\":'https://www.fagerheim.as/'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.Fixed,\"text\":'Feil i visning visst data for transport var med i opprettelse av bygningsdel'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.Fixed,\"text\":'Feil i kalkulering av prosjekttotaler etter endring av kalkulasjonsfaktorer'}})],1),_c('section',{staticClass:\"mt-3\"},[_c('version-title',{attrs:{\"version\":_vm.$t('titles.version', { version: '1.3.39' }),\"date\":'6.5.2022'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.New,\"text\":'Enhetspris lagt til bygningsdel total'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.New,\"text\":'Mengde innkjøp materialer lagt til i kalkulasjons visning'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.New,\"text\":'Versjonshistorikk lagt til toppmeny'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.New,\"text\":'Gå til dokumentasjon fra toppmeny'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.New,\"text\":'Gå til support fra toppmeny'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.Change,\"text\":'Visning av toppmeny'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.Fixed,\"text\":'Rapporter med bygningsdel total sum inkluderte ikke tillegg'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.Fixed,\"text\":'Rapporter med bygningsdel enhetspris sum inkluderte ikke tillegg'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.Fixed,\"text\":'Feil i summering av profit i beregning av dekningsbidrag'}})],1),_c('section',{staticClass:\"mt-3\"},[_c('version-title',{attrs:{\"version\":_vm.$t('titles.version', { version: '1.3.38' }),\"date\":'3.5.2022'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.New,\"text\":'Responsive landingsside'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.New,\"text\":'Responsive inloggingsside'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.Change,\"text\":'Formulering ved forvirring av «Tilbakestill passord»'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.Fixed,\"text\":'Fiktig tall i bygningsdel etter oppretting av bygningsdel'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.Fixed,\"text\":'Visning av bibliotek etter nedlasting, sletting og oppdatering av bibliotek'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.Fixed,\"text\":'Feil visning ved opprettelse av delprodukt uten nobb- nummer'}})],1),_c('section',{staticClass:\"mt-3\"},[_c('version-title',{attrs:{\"version\":_vm.$t('titles.version', { version: '1.3.37' }),\"date\":'1.5.2022'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.New,\"text\":'Prisoppdatering på bygningsdeler'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.New,\"text\":'Varesøk'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.Change,\"text\":'Namn og produkttekst'}})],1),_c('section',{staticClass:\"mt-5\"},[_c('version-title',{attrs:{\"version\":_vm.$t('titles.version', { version: '1.3.36' }),\"date\":'9.4.2022'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.New,\"text\":'Kalkyle rapport - Bestilling'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.New,\"text\":'Kalkyle rapport - Milepæler'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.New,\"text\":'Kalkyle rapport - Materialliste Precut'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.New,\"text\":'Kalkyle rapport - Vedlegg Pristilbud'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.New,\"text\":'Kalkyle rapport - Bygningsdeler'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.New,\"text\":'Kalkyle rapport - Hovedsummer'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.New,\"text\":'Kalkyle rapport - Prisforespørsel'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.New,\"text\":'Kalkyle rapport - Visnings rapporter'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.New,\"text\":'Prosjekt rapport - Milepæler'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.New,\"text\":'Prosjekt rapport - Vedlegg pristilbud'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.New,\"text\":'Prosjekt rapport - Bygningsdeler'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.New,\"text\":'Prosjekt rapport - Hovedsummer'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.New,\"text\":'Sett precut'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.Change,\"text\":'Sett precut - Visning endret i kalkyle'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.Change,\"text\":'Sett precut - Satt som isolert handling i meny på delprodukter'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.Fixed,\"text\":'Sett precut - Riktig håndtering av monteringstid'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.Fixed,\"text\":'Manglende sortering etter NS hos kalkyler / bygningsdeler'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.Fixed,\"text\":'Produksjonslønn og faste kostnader viser no riktig verdi'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.Fixed,\"text\":'Materialkost for bygningsdel og Selvkost materialer viser no riktig verdi i Økonomi visning'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.Fixed,\"text\":'Endring av underliggande kalkyle dytter no prosjektet på riktig plass i Sist brukte prosjekt visning'}})],1),_c('section',{staticClass:\"mt-5\"},[_c('version-title',{attrs:{\"version\":_vm.$t('titles.version', { version: '1.3.35' }),\"date\":'14.3.2022'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.New,\"text\":'Mulighet til å kommentere på bygningsdel'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.New,\"text\":'Varsel på bygningsdeler - Manglende mengde'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.New,\"text\":'Varsel på delprodukt - Glemt beregning av svinn'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.New,\"text\":'Varsel på delprodukt - Forholdstall eksisterer for delprodukt'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.New,\"text\":'Mulighet for å markere delprodukter med farger'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.New,\"text\":'Isoler bygningsdel - Ny visning der ein bygningsdel i kalkylen er isolert'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.New,\"text\":'Kalkyletotaler inkludert i prosjektoversikt / prosjekttotaler'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.New,\"text\":'NOBB Dokumentasjon - FDV, EPD, YTE, HMS, MAN, PRE'}}),_c('version-note',{attrs:{\"type\":_vm.VersionNoteType.Change,\"text\":'Visning og stilering'}})],1)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('h2',{staticClass:\"mb-1 mt-1\"},[_vm._v(\" \"+_vm._s(_vm.current ? (_vm.version + \" (\" + (_vm.$t('common.current')) + \")\") : _vm.version)+\" \")]),_c('v-divider',{staticClass:\"mt-2 mb-2\"}),_c('v-subheader',{staticClass:\"mt-1\"},[_vm._v(_vm._s(_vm.date))])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\n\nexport default defineComponent({\n props: {\n version: {\n type: String,\n },\n date: {\n type: String,\n },\n current: {\n type: Boolean,\n },\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=7c9420c5&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VDivider,VSubheader})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-row',{staticClass:\"note-container\",attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"md\":\"4\",\"cols\":\"12\"}},[_c('div',{staticClass:\"note-container\"},[_c('v-icon',{staticClass:\"dot\",attrs:{\"color\":\"black\"}},[_vm._v(\"mdi-circle-small\")]),_c('div',{staticClass:\"note-info\"},[(!_vm.hasDefault)?_c('span',[_vm._v(_vm._s(_vm.text))]):_vm._e(),_c('span',[_vm._t(\"default\")],2)]),(_vm.type === _vm.VersionNoteType.New)?_c('div',{staticClass:\"note\"},[_c('v-chip',{attrs:{\"outlined\":\"\",\"x-small\":\"\",\"color\":\"success\"}},[_vm._v(_vm._s(_vm.$t('common.new')))])],1):(_vm.type === _vm.VersionNoteType.Change)?_c('div',{staticClass:\"note\"},[_c('v-chip',{attrs:{\"outlined\":\"\",\"x-small\":\"\",\"color\":\"primary\",\"dark\":\"\"}},[_vm._v(_vm._s(_vm.$t('common.changed')))])],1):(_vm.type === _vm.VersionNoteType.Fixed)?_c('div',{staticClass:\"note\"},[_c('v-chip',{attrs:{\"outlined\":\"\",\"x-small\":\"\",\"color\":\"orange\",\"dark\":\"\"}},[_vm._v(_vm._s(_vm.$t('common.fixed')))])],1):(_vm.type === _vm.VersionNoteType.Remove)?_c('div',{staticClass:\"note\"},[_c('v-chip',{attrs:{\"outlined\":\"\",\"x-small\":\"\",\"color\":\"error\",\"dark\":\"\"}},[_vm._v(_vm._s(_vm.$t('common.removed')))])],1):_vm._e()],1)]),_c('v-col',{attrs:{\"md\":\"8\",\"cols\":\"12\"}},[(_vm.thanks)?_c('div',{staticClass:\"thanks\"},[_c('v-icon',{staticClass:\"party\",attrs:{\"small\":\"\",\"color\":\"primary\"}},[_vm._v(\"mdi-balloon\")]),_c('span',{staticClass:\"thank-you\"},[_vm._v(\"Takk til\")]),_c('span',{staticClass:\"name\"},[_vm._v(_vm._s(_vm.thanks))]),_c('span',{staticClass:\"sep\"},[_vm._v(\"|\")]),_c('a',{staticClass:\"site\",attrs:{\"href\":_vm.site,\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm.org))]),_c('v-icon',{staticClass:\"party\",attrs:{\"small\":\"\",\"color\":\"primary\"}},[_vm._v(\"mdi-party-popper\")])],1):_vm._e()])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { computed, defineComponent, useSlots } from '@vue/composition-api';\nimport { VersionNoteType } from '@/constants/enum';\n\nexport default defineComponent({\n props: {\n text: {\n type: String,\n },\n type: {\n type: Number,\n },\n thanks: {\n type: String,\n },\n org: {\n type: String,\n },\n site: {\n type: String,\n },\n },\n setup() {\n const slots = useSlots();\n const hasDefault = computed(() => slots.default !== undefined);\n\n return {\n VersionNoteType,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=98aa0862&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=98aa0862&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"98aa0862\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VChip,VCol,VIcon,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.mini)?_c('v-toolbar',{staticClass:\"content-header-mini\",attrs:{\"flat\":\"\"}},[_c('v-toolbar-title',[_c('span',{staticClass:\"content-title\"},[_vm._v(_vm._s(_vm.title))]),(_vm.breadcrumb != null)?_c('span',{class:_vm.mini ? 'breadcrumb-mini' : 'breadcrumb'},[_vm._v(_vm._s((\"/ \" + _vm.breadcrumb)))]):_vm._e()]),_vm._t(\"content-left\"),_c('v-spacer'),_vm._t(\"content-right\")],2):(_vm.small)?_c('v-toolbar',{staticClass:\"content-header\",attrs:{\"flat\":\"\"}},[_c('v-toolbar-title',[_vm._v(_vm._s(_vm.title)+\" \"),(_vm.breadcrumb != null)?_c('span',{class:_vm.small ? 'breadcrumb-small' : 'breadcrumb'},[_vm._v(_vm._s((\"/ \" + _vm.breadcrumb)))]):_vm._e()]),_vm._t(\"content-left\"),_c('v-spacer'),_vm._t(\"content-right\")],2):(!_vm.$vuetify.breakpoint.smAndDown)?_c('v-toolbar',{staticClass:\"content-header\",attrs:{\"flat\":\"\",\"src\":require(\"@/assets/images/content-banner.svg\"),\"height\":\"80\"}},[_c('v-toolbar-title',{staticClass:\"banner-title text-white\"},[_vm._v(_vm._s(_vm.title)+\" \"),(_vm.breadcrumb != null)?_c('span',{staticClass:\"breadcrumb\"},[_vm._v(_vm._s((\"/ \" + _vm.breadcrumb)))]):_vm._e()]),_vm._t(\"content-left\"),_c('v-spacer'),_vm._t(\"content-right\")],2):_c('div',{staticClass:\"content-header\"},[_c('v-toolbar-title',{staticClass:\"banner-title text-white ml-2 mr-2\"},[_vm._v(_vm._s(_vm.title)+\" \"),(_vm.breadcrumb != null)?_c('span',{staticClass:\"breadcrumb\"},[_vm._v(_vm._s((\"/ \" + _vm.breadcrumb)))]):_vm._e()]),_c('v-row',{staticClass:\"ml-2 mr-2\",attrs:{\"dense\":\"\"}},[_vm._t(\"content-left\")],2),_c('v-row',{staticClass:\"ml-2 mr-2\",attrs:{\"dense\":\"\"}},[_vm._t(\"content-right\")],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\n\nexport default defineComponent({\n props: {\n title: {\n type: String,\n required: true,\n },\n breadcrumb: {\n type: String,\n },\n small: {\n type: Boolean,\n },\n mini: {\n type: Boolean,\n },\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=315befb0&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=315befb0&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"315befb0\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\nimport { VToolbarTitle } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VRow,VSpacer,VToolbar,VToolbarTitle})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, onMounted } from '@vue/composition-api';\nimport VersionTitle from '@/components/version/version-title/index.vue';\nimport VersionNote from '@/components/version/version-note/index.vue';\nimport ContentBar from '@/components/common/content-bar/index.vue';\nimport { VersionNoteType } from '@/constants/enum';\nimport { useGlobal } from '@/modules/global';\n\nexport default defineComponent({\n components: {\n ContentBar,\n VersionTitle,\n VersionNote,\n },\n setup() {\n const { setUserReadPatchNotes } = useGlobal();\n\n onMounted(() => {\n setUserReadPatchNotes(true);\n });\n return {\n VersionNoteType,\n termsUrl: process.env.VUE_APP_TERMS_URL,\n };\n },\n});\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Versions.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Versions.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Versions.vue?vue&type=template&id=190e8fa1&\"\nimport script from \"./Versions.vue?vue&type=script&lang=ts&\"\nexport * from \"./Versions.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\ninstallComponents(component, {VCard})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"grey lighten-5\",attrs:{\"fluid\":\"\"}},[_c('login-form')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{attrs:{\"tile\":\"\",\"id\":\"master\"}},[_c('v-card-text',{attrs:{\"id\":\"content\"}},[(!_vm.licenseAttention)?_c('v-row',{attrs:{\"no-gutters\":\"\",\"id\":\"login-row\",\"justify\":\"start\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"5\"}},[_c('h1',{attrs:{\"id\":\"login-header\"}},[_vm._v(_vm._s(_vm.$t('titles.greetings')))]),_c('v-form',{attrs:{\"id\":\"login-form\",\"lazy-validation\":\"\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.submit.apply(null, arguments)}},model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-text-field',{attrs:{\"autofocus\":\"\",\"label\":_vm.$t('labels.username'),\"rules\":_vm.usernameRules,\"validate-on-blur\":\"\",\"required\":\"\",\"id\":\"username\"},model:{value:(_vm.username),callback:function ($$v) {_vm.username=$$v},expression:\"username\"}}),_c('v-text-field',{attrs:{\"label\":_vm.$t('labels.password'),\"rules\":_vm.passwordRules,\"type\":\"password\",\"required\":\"\",\"id\":\"password\"},model:{value:(_vm.password),callback:function ($$v) {_vm.password=$$v},expression:\"password\"}}),(_vm.error)?_c('div',{attrs:{\"id\":\"login-error\"}},[_vm._v(\" \"+_vm._s(_vm.error.data.error_description)+\" \")]):_vm._e(),_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-btn',{staticClass:\"ma-2 ml-0\",attrs:{\"type\":\"submit\",\"loading\":_vm.loading,\"disabled\":!_vm.valid,\"color\":\"secondary\"}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.login')))]),_c('reset-password',{attrs:{\"attemptedUsername\":_vm.username}}),_c('div',{staticClass:\"no-member\"},[_vm._v(\" \"+_vm._s(_vm.$t('common.not-a-member'))+\" \"),_c('a',{staticClass:\"register-with-us\",attrs:{\"href\":_vm.registerUrl,\"target\":\"_blank\"}},[_vm._v(\" \"+_vm._s(_vm.$t('common.register')))])])],1)],1)],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"7\"}},[_c('v-img',{attrs:{\"id\":\"login-image\",\"src\":require(\"@/assets/images/calculate.png\")}},[_c('div',{attrs:{\"id\":\"continue-wrapper\"}},[_vm._v(\" \"+_vm._s(_vm.$t('info.login-continue'))+\" \"),_c('v-icon',{attrs:{\"aria-hidden\":\"false\",\"id\":\"forward-icon\"}},[_vm._v(\" arrow_forward \")])],1)])],1)],1):_c('license-form')],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"max-width\":\"700\",\"retain-focus\":false},on:{\"click:outside\":_vm.close},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"ma-2 ml-0 reset-button\"},'v-btn',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.$t('buttons.forgot-password')))])]}}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',{attrs:{\"flat\":\"\",\"tile\":\"\"}},[_c('v-form',{attrs:{\"lazy-validation\":\"\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.submit.apply(null, arguments)}},model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('dialog-title',{attrs:{\"headerText\":_vm.$t('buttons.forgot-password'),\"icon\":'mdi-lock-reset'},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":_vm.close}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)]},proxy:true}])}),_c('v-card-text',{staticClass:\"reset-message\"},[(!_vm.success)?_c('v-text-field',{attrs:{\"label\":_vm.$t('labels.username'),\"rules\":_vm.usernameRules,\"required\":\"\"},model:{value:(_vm.username),callback:function ($$v) {_vm.username=$$v},expression:\"username\"}}):_vm._e(),(!_vm.success)?_c('span',[_vm._v(_vm._s(_vm.$t('titles.forgot-password-secondary')))]):_vm._e(),(_vm.success)?_c('div',{staticClass:\"mt-4\"},[_vm._v(\" \"+_vm._s(_vm.$t('info.reset-password-success', { name: _vm.username }))+\" \")]):_vm._e()],1),_c('v-card-actions',{staticClass:\"reset-actions\"},[_c('v-spacer'),(!_vm.success)?_c('v-btn',{staticClass:\"ma-2\",attrs:{\"type\":\"submit\",\"loading\":_vm.loading,\"disabled\":!_vm.valid,\"color\":\"secondary\"}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.forgot-password')))]):_vm._e(),_c('v-btn',{on:{\"click\":_vm.close}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.close'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-close\")])],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, onMounted, ref, watch } from '@vue/composition-api';\nimport DialogTitle from '@/components/common/dialog-title/index.vue';\nimport { useAuth } from '@/modules/auth';\n\nexport default defineComponent({\n components: {\n DialogTitle,\n },\n props: {\n attemptedUsername: {\n type: String,\n },\n },\n setup(props) {\n const { resetPassword } = useAuth();\n const username = ref();\n const valid = ref(false);\n const dialog = ref(false);\n const success = ref(false);\n const loading = ref(false);\n\n watch(\n () => props.attemptedUsername,\n first => {\n username.value = first;\n }\n );\n\n onMounted(() => {\n username.value = props.attemptedUsername;\n });\n\n const close = () => {\n dialog.value = false;\n };\n\n const submit = async () => {\n if (username.value) {\n loading.value = true;\n success.value = await resetPassword(username.value);\n loading.value = false;\n }\n };\n\n return {\n close,\n submit,\n dialog,\n valid,\n username,\n success,\n loading,\n usernameRules: [\n (v: string) => !!v || 'E-mail is required',\n (v: string) => /.+@.+\\..+/.test(v) || 'E-mail must be valid',\n ],\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=2b36c7c7&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=2b36c7c7&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2b36c7c7\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VDialog,VForm,VIcon,VSpacer,VTextField})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { reactive, toRefs, ref, defineComponent } from '@vue/composition-api';\nimport { LoginPayload } from '@/models/auth/interfaces';\nimport { useAuth } from '@/modules/auth';\nimport { GRANT_TYPE_PW } from '@/constants/common';\nimport { PROJECT_START_PATH } from '@/constants/routes';\nimport LicenseForm from '@/components/forms/license-form/index.vue';\nimport router from '@/router/index';\nimport ResetPassword from '@/components/reset-password/index.vue';\n\nconst payload = reactive({\n username: '',\n password: '',\n // eslint-disable-next-line prettier/prettier\n // eslint-disable-next-line @typescript-eslint/camelcase\n grant_type: GRANT_TYPE_PW,\n rememberMe: true,\n});\n\nexport default defineComponent({\n components: {\n LicenseForm,\n ResetPassword,\n },\n setup() {\n const { login, error, license } = useAuth();\n\n const valid = ref(false);\n const loading = ref(false);\n const licenseAttention = ref(\n license ? (license.value ? !license.value.LicenseOk : false) : false\n );\n\n const submit = async () => {\n const params = new URLSearchParams();\n params.append('username', payload.username);\n params.append('password', payload.password);\n params.append('grant_type', payload.grant_type);\n\n loading.value = true;\n await login(params, payload.rememberMe);\n\n if (!error?.value && router.currentRoute.path !== PROJECT_START_PATH) {\n await router.push(PROJECT_START_PATH);\n }\n loading.value = false;\n };\n\n return {\n ...toRefs(payload),\n error,\n loading,\n submit,\n usernameRules: [\n (v: string) => !!v || 'E-mail is required',\n (v: string) => /.+@.+\\..+/.test(v) || 'E-mail must be valid',\n ],\n passwordRules: [(v: string) => !!v || 'Password is required'],\n valid,\n licenseAttention,\n registerUrl: process.env.VUE_APP_REGISTER_URL,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=c8a17192&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=c8a17192&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c8a17192\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardText,VCol,VForm,VIcon,VImg,VRow,VTextField})\n","\n\n\n\n\n\n\nimport LoginForm from '@/components/forms/login-form/index.vue';\nimport { defineComponent } from '@vue/composition-api';\n\nexport default defineComponent({\n name: 'Login',\n components: {\n LoginForm,\n },\n});\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Login.vue?vue&type=template&id=122ab024&\"\nimport script from \"./Login.vue?vue&type=script&lang=ts&\"\nexport * from \"./Login.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VContainer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VContainer})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"loading\"})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\nimport { useAuth } from '@/modules/auth';\nimport { HOME_PATH } from '@/constants/routes';\nimport { defineComponent, onMounted } from '@vue/composition-api';\nimport router from '@/router/index';\n\nexport default defineComponent({\n name: 'Logout',\n setup() {\n const { logout } = useAuth();\n onMounted(async () => {\n await logout();\n await router.push(HOME_PATH);\n });\n },\n});\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Logout.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Logout.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Logout.vue?vue&type=template&id=e2b80a42&\"\nimport script from \"./Logout.vue?vue&type=script&lang=ts&\"\nexport * from \"./Logout.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('content-bar',{attrs:{\"title\":_vm.$t('titles.start')},scopedSlots:_vm._u([{key:\"content-right\",fn:function(){return [(!_vm.firstProject)?_c('new-project'):_vm._e(),(!_vm.firstProject)?_c('import-project'):_vm._e()]},proxy:true}])}),_c('v-container',{staticClass:\"grey lighten-5\",attrs:{\"fluid\":\"\"}},[_c('projects')],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(!_vm.firstProject)?[(_vm.filteredProjects)?[_c('content-bar',{attrs:{\"small\":true,\"title\":_vm.$t('titles.projects', { count: _vm.filteredProjects.length })},scopedSlots:_vm._u([{key:\"content-left\",fn:function(){return [(_vm.$vuetify.breakpoint.smAndUp)?_c('v-btn-toggle',{staticClass:\"project-groups\",attrs:{\"mandatory\":\"\",\"tile\":\"\",\"color\":\"secondary\",\"group\":\"\"},model:{value:(_vm.projectFilter.filter),callback:function ($$v) {_vm.$set(_vm.projectFilter, \"filter\", $$v)},expression:\"projectFilter.filter\"}},[_c('v-btn',{attrs:{\"value\":_vm.ProjectStartFilter.Recent}},[_vm._v(\" \"+_vm._s(_vm.$t('project.category1'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-history\")])],1),_c('v-btn',{attrs:{\"value\":_vm.ProjectStartFilter.MyProjects}},[_vm._v(\" \"+_vm._s(_vm.$t('project.category2'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-account\")])],1),_c('v-btn',{attrs:{\"value\":_vm.ProjectStartFilter.All}},[_vm._v(\" \"+_vm._s(_vm.$t('project.category3'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-account-multiple\")])],1)],1):_vm._e()]},proxy:true},{key:\"content-right\",fn:function(){return [_c('v-text-field',{staticClass:\"project-search\",attrs:{\"append-icon\":\"mdi-magnify\",\"label\":_vm.$t('common.search'),\"single-line\":\"\",\"outlined\":\"\",\"dense\":\"\",\"clearable\":\"\",\"hide-details\":\"\",\"type\":\"text\"},model:{value:(_vm.projectFilter.search),callback:function ($$v) {_vm.$set(_vm.projectFilter, \"search\", $$v)},expression:\"projectFilter.search\"}})]},proxy:true}],null,false,4064070101)}),(_vm.filteredProjects && _vm.filteredProjects.length > 0)?_c('v-expansion-panels',{staticClass:\"project-panels\",attrs:{\"tile\":\"\",\"value\":_vm.expanded}},_vm._l((_vm.filteredProjects),function(project){return _c('v-expansion-panel',{key:project.Id,class:project.Children != null && project.Children.length === 0\n ? 'project-header-empty'\n : 'project-header'},[_c('v-expansion-panel-header',[_c('v-row',{staticClass:\"project-props\",attrs:{\"justify\":\"center\",\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"vital-cell\",attrs:{\"cols\":\"4\",\"align-self\":\"center\"}},[(_vm.$vuetify.breakpoint.smAndUp)?_c('v-row',{staticClass:\"project-props primary-data pa-1\",attrs:{\"dense\":\"\",\"justify\":\"start\",\"no-gutters\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"2\"}},[_c('v-icon',{staticClass:\"shared\",attrs:{\"color\":project.Shared ? 'primary' : ''}},[_vm._v(_vm._s(project.Shared ? 'mdi-eye' : 'mdi-eye-off'))])],1),_c('v-col',{attrs:{\"cols\":\"8\",\"align-self\":\"center\"}},[_c('div',{staticClass:\"project-prop-long-primary\"},[_c('v-list-item',{attrs:{\"dense\":\"\"}},[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(project.Name)+\" \")])],1)],1)],1)])],1):_c('v-row',[_c('v-col',[_c('div',{staticClass:\"pl-5 proj-name\"},[_vm._v(\" \"+_vm._s(project.Name)+\" \")])])],1)],1),_c('v-col',{attrs:{\"cols\":\"1\",\"align-self\":\"center\"}},[_c('div',{staticClass:\"project-prop\"},[_c('v-list-item',{attrs:{\"dense\":\"\"}},[_c('v-list-item-content',[_c('v-list-item-title',{class:project.Children != null &&\n project.Children.length === 0\n ? 'no-calcs'\n : ''},[_vm._v(\" \"+_vm._s(project.Children ? project.Children.length : 0)+\" \")]),_c('v-list-item-subtitle',[_vm._v(_vm._s(_vm.$t('labels.calculations')))])],1)],1)],1)]),_c('v-col',{attrs:{\"cols\":\"1\",\"align-self\":\"center\"}},[_c('div',{staticClass:\"project-prop\"},[_c('v-list-item',{attrs:{\"dense\":\"\"}},[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(project.ProjectNumber)+\" \")]),_c('v-list-item-subtitle',[_vm._v(_vm._s(_vm.$t('labels.projectnumber')))])],1)],1)],1)]),_c('v-col',{attrs:{\"cols\":\"1\",\"align-self\":\"center\"}},[_c('div',{staticClass:\"project-prop\"},[_c('v-list-item',{attrs:{\"dense\":\"\"}},[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(project.OwnedByName)+\" \")]),_c('v-list-item-subtitle',[_vm._v(_vm._s(_vm.$t('labels.owned-by-name')))])],1)],1)],1)]),_c('v-col',{attrs:{\"cols\":\"1\",\"align-self\":\"center\"}},[_c('div',{staticClass:\"project-prop-long\"},[_c('v-list-item',{attrs:{\"dense\":\"\"}},[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.moment(project.LastModified) .lang(_vm.$i18n.locale === 'no' ? 'nb' : _vm.$i18n.locale) .format('Do MMMM YY - HH:MM'))+\" \")]),_c('v-list-item-subtitle',[_vm._v(_vm._s(_vm.$t('labels.last-modified')))])],1)],1)],1)]),_c('v-col',{attrs:{\"cols\":\"1\",\"align-self\":\"center\"}},[_c('div',{staticClass:\"project-prop-long\"},[_c('v-list-item',{attrs:{\"dense\":\"\"}},[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(project.LastModifiedByName)+\" \")]),_c('v-list-item-subtitle',[_vm._v(_vm._s(_vm.$t('labels.modified-by')))])],1)],1)],1)]),_c('v-col',{attrs:{\"cols\":\"1\",\"align-self\":\"center\"}},[_c('div',{staticClass:\"project-prop\"},[_c('v-list-item',{attrs:{\"dense\":\"\"}},[_c('v-list-item-content',[_c('v-list-item-title',{staticClass:\"emphasis-green\"},[_vm._v(\" \"+_vm._s(_vm.projectSumTotal(project).toLocaleString( _vm.$i18n.locale, { maximumFractionDigits: 0, } ))+\" \")]),_c('v-list-item-subtitle',[_vm._v(_vm._s(_vm.$t('labels.total')))])],1)],1)],1)]),_c('v-col',{attrs:{\"cols\":\"2\",\"align-self\":\"center\"}},[_c('v-row',{attrs:{\"dense\":\"\",\"justify\":\"end\"}},[_c('v-btn-toggle',{attrs:{\"color\":\"primary\"}},[_c('v-menu',{attrs:{\"close-on-content-click\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var menu = ref.on;\n var attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"menu-btn project-action\",attrs:{\"small\":\"\",\"icon\":\"\",\"color\":\"primary\"}},'v-btn',attrs,false),Object.assign({}, menu)),[_c('v-icon',[_vm._v(\"mdi-dots-vertical\")])],1)]}}],null,true)},[_c('v-list',{attrs:{\"dense\":\"\"}},[_c('v-list-item-group',{attrs:{\"color\":\"primary\"}},[(project)?_c('new-calculation',{attrs:{\"parent\":project,\"isMenuitem\":true}}):_vm._e(),_c('import-calculation',{attrs:{\"parent\":project,\"isMenuitem\":true}}),(\n project &&\n project.Children &&\n project.Children.length > 0\n )?_c('export-project',{attrs:{\"project\":project,\"isMenuitem\":true}}):_vm._e(),(project)?_c('delete-project',{attrs:{\"project\":project,\"isMenuitem\":true,\"isCalculation\":false}}):_vm._e()],1)],1)],1),_c('v-btn',{staticClass:\"project-action\",attrs:{\"small\":\"\",\"outlined\":\"\",\"loading\":_vm.loadingId === project.Id},on:{\"click\":function($event){$event.stopPropagation();return _vm.handleClick(project)}}},[_vm._v(\" \"+_vm._s(_vm.$vuetify.breakpoint.smAndUp ? _vm.$t('buttons.go-project-overview') : '')+\" \"),_c('v-icon',{attrs:{\"right\":_vm.$vuetify.breakpoint.mdAndUp}},[_vm._v(\" mdi-open-in-app\")])],1)],1)],1)],1)],1)],1),_c('v-expansion-panel-content',{staticClass:\"project-content\"},[(project.Children && project.Children.length > 0)?_c('calculations',{attrs:{\"calculations\":project.Children,\"parent\":project,\"hideTitle\":true}}):_c('v-alert',{staticClass:\"no-calculations black--text\",attrs:{\"dense\":\"\",\"type\":\"info\",\"tile\":\"\",\"color\":\"white\"}},[_vm._v(\" \"+_vm._s(_vm.$t('info.no-calculation-exist'))+\" \")])],1)],1)}),1):_c('v-alert',{staticClass:\"ma-4\",attrs:{\"dense\":\"\",\"type\":\"info\",\"tile\":\"\",\"color\":\"primary\"}},[_vm._v(\" \"+_vm._s(_vm.$t('info.no-projects-found'))+\" \")])]:(_vm.loading)?[_c('v-skeleton-loader',{attrs:{\"type\":\"table-cell: text, table-heading, table-cell: text, table-heading, table-cell: text, table-heading, table-cell: text, table-heading, table-cell: text, table-heading\"}})]:_vm._e()]:[_c('kalk-helper',{attrs:{\"title\":_vm.$t('titles.start-first-project')}},[_c('template',{slot:\"actions\"},[_c('import-project',{attrs:{\"first\":true}}),_c('span',{staticClass:\"or\"},[_vm._v(\"/\")]),_c('new-project',{attrs:{\"first\":true}})],1),_c('template',{slot:\"message\"},[_vm._v(\" \"+_vm._s(_vm.$t('info.start-project1'))+\" \"),_c('a',{staticClass:\"documentation\",attrs:{\"href\":_vm.documentationUrl,\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm.$t('info.start-project2')))]),_vm._v(\" \"+_vm._s(_vm.$t('info.start-project3'))+\" \")])],2)]],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"max-width\":\"800\"},on:{\"click:outside\":_vm.close},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"ma-2\",attrs:{\"color\":\"secondary\",\"small\":\"\",\"fab\":!_vm.$vuetify.breakpoint.xlOnly && !_vm.first}},'v-btn',attrs,false),on),[_vm._v(\" \"+_vm._s(!_vm.$vuetify.breakpoint.xlOnly && !_vm.first ? '' : _vm.$t('buttons.new-project'))+\" \"),_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g({attrs:{\"right\":_vm.$vuetify.breakpoint.xlOnly || _vm.first}},on),[_vm._v(\" mdi-plus \")])]}}],null,true)},[_c('span',[_vm._v(_vm._s(_vm.$t('buttons.new-project')))])])],1)]}}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',{staticClass:\"pa-2\",attrs:{\"flat\":\"\",\"tile\":\"\",\"disabled\":_vm.loading}},[_c('dialog-title',{attrs:{\"headerText\":_vm.$t('buttons.new-project')},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":_vm.close}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)]},proxy:true}])}),_c('v-form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.submit.apply(null, arguments)}},model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-card-text',{staticClass:\"edit-content\"},[_c('v-subheader',{staticClass:\"field-name\"},[_vm._v(\" \"+_vm._s(_vm.$t('titles.project-information'))+\" \")]),_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"md\":\"9\",\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"outlined\":\"\",\"dense\":\"\",\"autofocus\":\"\",\"rules\":[_vm.rules.required],\"placeholder\":_vm.$t('labels.name'),\"label\":_vm.$t('labels.name'),\"clearable\":\"\"},model:{value:(_vm.projectDetails.Name),callback:function ($$v) {_vm.$set(_vm.projectDetails, \"Name\", $$v)},expression:\"projectDetails.Name\"}})],1),_c('v-col',{attrs:{\"md\":\"3\",\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"outlined\":\"\",\"dense\":\"\",\"rules\":[_vm.rules.required],\"clearable\":\"\",\"placeholder\":_vm.$t('labels.number'),\"label\":_vm.$t('labels.number')},model:{value:(_vm.projectDetails.ProjectNumber),callback:function ($$v) {_vm.$set(_vm.projectDetails, \"ProjectNumber\", $$v)},expression:\"projectDetails.ProjectNumber\"}})],1),_c('v-col',{attrs:{\"md\":\"6\",\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"outlined\":\"\",\"dense\":\"\",\"clearable\":\"\",\"placeholder\":_vm.$t('labels.address'),\"label\":_vm.$t('labels.address')},model:{value:(_vm.projectDetails.AddressLine1),callback:function ($$v) {_vm.$set(_vm.projectDetails, \"AddressLine1\", $$v)},expression:\"projectDetails.AddressLine1\"}})],1),_c('v-col',{attrs:{\"md\":\"3\",\"cols\":\"6\"}},[_c('v-text-field',{attrs:{\"outlined\":\"\",\"dense\":\"\",\"clearable\":\"\",\"placeholder\":_vm.$t('labels.zip'),\"label\":_vm.$t('labels.zip')},model:{value:(_vm.projectDetails.PostNumber),callback:function ($$v) {_vm.$set(_vm.projectDetails, \"PostNumber\", $$v)},expression:\"projectDetails.PostNumber\"}})],1),_c('v-col',{attrs:{\"md\":\"3\",\"cols\":\"6\"}},[_c('v-text-field',{attrs:{\"outlined\":\"\",\"dense\":\"\",\"clearable\":\"\",\"placeholder\":_vm.$t('labels.post-office'),\"label\":_vm.$t('labels.post-office')},model:{value:(_vm.projectDetails.PostOffice),callback:function ($$v) {_vm.$set(_vm.projectDetails, \"PostOffice\", $$v)},expression:\"projectDetails.PostOffice\"}})],1),_c('v-col',{attrs:{\"md\":\"3\",\"cols\":\"6\"}},[_c('v-text-field',{attrs:{\"outlined\":\"\",\"clearable\":\"\",\"dense\":\"\",\"placeholder\":_vm.$t('labels.street-number'),\"label\":_vm.$t('labels.street-number')},model:{value:(_vm.projectDetails.StreetNumber),callback:function ($$v) {_vm.$set(_vm.projectDetails, \"StreetNumber\", $$v)},expression:\"projectDetails.StreetNumber\"}})],1),_c('v-col',{attrs:{\"md\":\"3\",\"cols\":\"6\"}},[_c('v-text-field',{attrs:{\"outlined\":\"\",\"clearable\":\"\",\"dense\":\"\",\"placeholder\":_vm.$t('labels.usage-number'),\"label\":_vm.$t('labels.usage-number')},model:{value:(_vm.projectDetails.UsageNumber),callback:function ($$v) {_vm.$set(_vm.projectDetails, \"UsageNumber\", $$v)},expression:\"projectDetails.UsageNumber\"}})],1),_c('v-col',{attrs:{\"md\":\"3\",\"cols\":\"6\"}},[_c('v-text-field',{attrs:{\"outlined\":\"\",\"clearable\":\"\",\"dense\":\"\",\"placeholder\":_vm.$t('labels.housing-number'),\"label\":_vm.$t('labels.housing-number')},model:{value:(_vm.projectDetails.HousingNumber),callback:function ($$v) {_vm.$set(_vm.projectDetails, \"HousingNumber\", $$v)},expression:\"projectDetails.HousingNumber\"}})],1),_c('v-col',{attrs:{\"md\":\"3\",\"cols\":\"6\"}},[_c('v-text-field',{attrs:{\"outlined\":\"\",\"dense\":\"\",\"clearable\":\"\",\"placeholder\":_vm.$t('labels.section-number'),\"label\":_vm.$t('labels.section-number')},model:{value:(_vm.projectDetails.SectionNumber),callback:function ($$v) {_vm.$set(_vm.projectDetails, \"SectionNumber\", $$v)},expression:\"projectDetails.SectionNumber\"}})],1),_c('v-col',{attrs:{\"md\":\"6\",\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"outlined\":\"\",\"dense\":\"\",\"clearable\":\"\",\"placeholder\":_vm.$t('labels.order-information'),\"label\":_vm.$t('labels.order-information')},model:{value:(_vm.projectDetails.AdditionalInformation),callback:function ($$v) {_vm.$set(_vm.projectDetails, \"AdditionalInformation\", $$v)},expression:\"projectDetails.AdditionalInformation\"}})],1),_c('v-col',{attrs:{\"md\":\"6\",\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"outlined\":\"\",\"dense\":\"\",\"clearable\":\"\",\"placeholder\":_vm.$t('labels.price-information'),\"label\":_vm.$t('labels.price-information')},model:{value:(_vm.projectDetails.PriceInfo),callback:function ($$v) {_vm.$set(_vm.projectDetails, \"PriceInfo\", $$v)},expression:\"projectDetails.PriceInfo\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-checkbox',{attrs:{\"dense\":\"\",\"label\":_vm.$t('labels.shared-project')},model:{value:(_vm.projectDetails.Shared),callback:function ($$v) {_vm.$set(_vm.projectDetails, \"Shared\", $$v)},expression:\"projectDetails.Shared\"}}),_c('info-tooltip',{attrs:{\"information\":_vm.$t('info.project-visibility')}})],1)],1)],1)],1)],1),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"secondary\",\"type\":\"submit\",\"loading\":_vm.loading,\"disabled\":!_vm.valid}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.create'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-plus\")])],1),_c('v-btn',{on:{\"click\":_vm.close}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.close'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-close\")])],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-tooltip',{attrs:{\"right\":\"\",\"max-width\":\"300\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"ma-2\",attrs:{\"small\":\"\",\"icon\":\"\",\"color\":\"primary\",\"dark\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',{staticClass:\"edit\",attrs:{\"color\":\"secondary\"}},[_vm._v(\"mdi-information-outline\")])],1)]}}])},[_c('span',[_vm._v(_vm._s(_vm.information))])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\n\nexport default defineComponent({\n props: {\n information: {\n type: String,\n required: true,\n },\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=14372d44&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VIcon,VTooltip})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { ProffesionType } from '@/constants/enum';\nimport { CreateProject, ProjectDetails } from '@/models/projects/interfaces';\nimport { useProject } from '@/modules/project';\nimport { defineComponent, onMounted, ref } from '@vue/composition-api';\nimport DialogTitle from '@/components/common/dialog-title/index.vue';\nimport InfoTooltip from '@/components/common/tooltip-helper/index.vue';\nimport { translate } from '@/localization';\n\nexport default defineComponent({\n components: {\n DialogTitle,\n InfoTooltip,\n },\n props: {\n first: {\n type: Boolean,\n },\n },\n setup() {\n const {\n getNewProjectNumber,\n createProject,\n getProjects,\n setActiveProject,\n saveDetails,\n getDetails,\n } = useProject();\n\n const newProject = ref(undefined);\n const projectDetails = ref({ Shared: true });\n const valid = ref(false);\n const dialog = ref(false);\n const loading = ref(false);\n\n const initDetails = async () => {\n projectDetails.value.ProjectNumber = await getNewProjectNumber();\n projectDetails.value.Shared = true;\n };\n\n onMounted(async () => {\n await initDetails();\n });\n\n const close = async () => {\n dialog.value = false;\n await initDetails();\n };\n\n const submit = async () => {\n loading.value = true;\n\n if (projectDetails.value.ProjectNumber && projectDetails.value.Name) {\n newProject.value = {\n Name: projectDetails.value.Name,\n Number: projectDetails.value.ProjectNumber,\n ProfessionCode: ProffesionType.Carpentry,\n ParentId: '',\n Shared: projectDetails.value.Shared,\n };\n const projectId = await createProject(newProject.value, false);\n if (projectId) {\n const projects = await getProjects(true);\n if (projects) {\n const newActive = projects.find(proj => (proj.Id = projectId));\n if (newActive?.Id) {\n const newDetails = await getDetails(newActive.Id);\n if (newDetails) {\n projectDetails.value.Id = newDetails.Id;\n projectDetails.value.Name = newDetails.Name;\n projectDetails.value.Shared = newDetails.Shared;\n projectDetails.value.Owner = newDetails.Owner;\n await saveDetails(projectId, projectDetails.value);\n await setActiveProject(newActive.Id, true);\n }\n }\n }\n }\n loading.value = true;\n }\n };\n\n return {\n submit,\n close,\n loading,\n rules: {\n required: (v: string) => !!v || `${translate('validation.required')}`,\n min: (v: string) =>\n (v && v.length >= 8) ||\n `${translate('validation.minimum-characters', [8])}`,\n },\n projectDetails,\n dialog,\n valid,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=296bc473&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=296bc473&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"296bc473\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCheckbox,VCol,VContainer,VDialog,VForm,VIcon,VRow,VSpacer,VSubheader,VTextField,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"max-width\":\"700\"},on:{\"click:outside\":_vm.close},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [(_vm.isMenuitem)?_c('v-list-item',_vm._g(_vm._b({},'v-list-item',attrs,false),on),[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('buttons.new-calculation'))+\" \")]),_c('v-list-item-icon',[_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-plus\")])],1)],1):_c('v-btn',_vm._g(_vm._b({class:_vm.parent.Children.length == 0\n ? 'start new-calculation ma-2'\n : 'new-calculation ma-2',attrs:{\"color\":\"secondary\",\"small\":\"\",\"fab\":!_vm.$vuetify.breakpoint.xlOnly}},'v-btn',attrs,false),on),[_vm._v(\" \"+_vm._s(!_vm.$vuetify.breakpoint.xlOnly ? '' : _vm.$t('buttons.new-calculation'))+\" \"),_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\nreturn [_c('v-icon',_vm._g({attrs:{\"right\":_vm.$vuetify.breakpoint.xlOnly}},on),[_vm._v(\" mdi-plus \")])]}}],null,true)},[_c('span',[_vm._v(_vm._s(_vm.$t('buttons.new-calculation')))])])],1)]}}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',{attrs:{\"flat\":\"\",\"tile\":\"\"}},[(_vm.newCalc)?_c('v-form',{ref:\"calculation\",on:{\"submit\":function($event){$event.preventDefault();return _vm.submit.apply(null, arguments)}}},[_c('dialog-title',{attrs:{\"headerText\":_vm.$t('titles.add-calculation', { name: _vm.parent.Name })},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":_vm.close}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)]},proxy:true}],null,false,3663722865)}),_c('v-card-text',{staticClass:\"edit-content pa-4\"},[_c('v-text-field',{attrs:{\"autofocus\":\"\",\"label\":_vm.$t('labels.calculation-name'),\"rules\":_vm.textFieldRule,\"required\":\"\",\"outlined\":\"\",\"dense\":\"\",\"clearable\":\"\"},model:{value:(_vm.calculationName),callback:function ($$v) {_vm.calculationName=$$v},expression:\"calculationName\"}}),_c('v-subheader',{staticClass:\"field-name\"},[_vm._v(\" \"+_vm._s(_vm.$t('titles.select-occupation'))+\" \")]),_c('v-row',{staticClass:\"options\",attrs:{\"dense\":\"\"}},_vm._l((_vm.professions),function(profession){return _c('v-col',{key:profession.Id,attrs:{\"cols\":\"12\",\"md\":\"3\"}},[_c('v-card',{staticClass:\"d-flex align-center profession-card\",attrs:{\"hover\":\"\",\"tile\":\"\",\"color\":_vm.occupation === profession.Code ? 'secondary' : ''},on:{\"click\":function($event){_vm.occupation =\n _vm.occupation === profession.Code ? undefined : profession.Code}}},[_c('v-icon',{class:_vm.occupation === profession.Code\n ? 'profession-icon-active'\n : 'profession-icon'},[_vm._v(_vm._s(_vm.getIconByProfessionCode(profession.Code)))]),_c('span',{staticClass:\"profession-name\",class:_vm.occupation === profession.Code\n ? 'profession-name-active'\n : 'profession-name'},[_vm._v(_vm._s(profession.Name))]),_c('v-scroll-y-transition',[(_vm.occupation === profession.Code)?_c('div',{staticClass:\"display-3 flex-grow-1\"}):_vm._e()])],1)],1)}),1)],1),_c('v-card-actions',[_c('v-checkbox',{attrs:{\"color\":\"primary\",\"dense\":\"\",\"label\":_vm.$t('labels.navigate-to-calc'),\"hide-details\":\"\"},model:{value:(_vm.navigateToCalc),callback:function ($$v) {_vm.navigateToCalc=$$v},expression:\"navigateToCalc\"}}),_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"secondary\",\"type\":\"submit\",\"loading\":_vm.loading,\"disabled\":!_vm.valid}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.create'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-plus\")])],1),_c('v-btn',{on:{\"click\":_vm.close}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.close'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-close\")])],1)],1)],1):_vm._e()],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { getIconByProfessionCode } from '@/helpers/common';\nimport { CreateProject, ProjectOverview } from '@/models/projects/interfaces';\nimport { useProject } from '@/modules/project';\nimport {\n defineComponent,\n onMounted,\n reactive,\n toRefs,\n PropType,\n computed,\n} from '@vue/composition-api';\nimport Profession from '@/components/profession/index.vue';\nimport { translate } from '@/localization';\nimport DialogTitle from '@/components/common/dialog-title/index.vue';\nimport { useCalculation } from '@/modules/calculation';\nimport {\n PROJECT_CALCULATION_PATH,\n PROJECT_OVERVIEW_PATH,\n} from '@/constants/routes';\nimport router from '@/router';\n\ninterface State {\n occupation: Nullable;\n calculationName: Nullable;\n newCalc: CreateProject | undefined;\n navigateToCalc: boolean;\n dialog: boolean;\n loading: boolean;\n}\n\nconst state = reactive({\n occupation: null,\n calculationName: null,\n newCalc: undefined,\n dialog: false,\n loading: false,\n navigateToCalc: true,\n});\n\nexport default defineComponent({\n components: {\n Profession,\n DialogTitle,\n },\n props: {\n parent: {\n type: Object as PropType,\n required: true,\n },\n isMenuitem: {\n type: Boolean,\n },\n first: {\n type: Boolean,\n },\n name: {\n type: String,\n required: false,\n },\n show: {\n type: Boolean,\n default: false,\n },\n },\n setup(props) {\n const {\n getProfessions,\n getNewProjectNumber,\n createProject,\n getProjects,\n refreshActiveProject,\n setActiveProject,\n professions,\n activeProjectOverview,\n } = useProject();\n\n const { setActiveCalculation } = useCalculation();\n\n const initProject = async (): Promise => {\n const newProjectNumber = await getNewProjectNumber(props.parent.Id);\n\n if (!newProjectNumber || !props.parent.Id) return;\n\n state.newCalc = {\n Name: '',\n Number: newProjectNumber,\n ProfessionCode: '',\n ParentId: props.parent.Id,\n Shared: true,\n };\n\n state.dialog = props.show;\n state.occupation = null;\n state.calculationName = props.name ?? null;\n };\n\n onMounted(async () => {\n await getProfessions();\n await initProject();\n });\n\n const close = async () => {\n state.dialog = false;\n // If a direct link has been used to open dialog, update url when closing dialog.\n if (props.show) {\n await router.push(PROJECT_OVERVIEW_PATH);\n } else {\n initProject();\n }\n };\n\n const valid = computed(() => {\n return state.calculationName && state.occupation;\n });\n\n const submit = async () => {\n if (valid && state.occupation && state.newCalc) {\n state.newCalc.ProfessionCode = state.occupation;\n state.newCalc.Name = state.calculationName ?? '';\n state.loading = true;\n const calculation = await createProject(state.newCalc, true);\n if (calculation) {\n const projects = await getProjects(true);\n\n if (state.navigateToCalc && projects) {\n const newActiveProj = projects.find(proj =>\n proj.Children.some(calc => calc.Id === calculation)\n );\n\n if (\n newActiveProj &&\n activeProjectOverview.value &&\n newActiveProj.Id === activeProjectOverview.value.Id\n ) {\n close();\n await refreshActiveProject();\n } else if (newActiveProj?.Id) {\n await setActiveProject(newActiveProj.Id, false);\n }\n\n if (newActiveProj) {\n const calc = newActiveProj.Children.find(\n calc => calc.Id === calculation\n );\n if (calc) {\n await setActiveCalculation(calc);\n await router.push(PROJECT_CALCULATION_PATH);\n }\n }\n } else {\n await refreshActiveProject();\n }\n }\n close();\n state.loading = false;\n }\n };\n\n return {\n close,\n getIconByProfessionCode,\n submit,\n ...toRefs(state),\n professions,\n valid,\n textFieldRule: [\n (v: string) => !!v || `${translate('validation.required')}`,\n ],\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=67c34bf4&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=67c34bf4&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"67c34bf4\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VScrollYTransition } from 'vuetify/lib/components/transitions';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCheckbox,VCol,VDialog,VForm,VIcon,VListItem,VListItemIcon,VListItemTitle,VRow,VScrollYTransition,VSpacer,VSubheader,VTextField,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(!_vm.hideTitle && _vm.calculations.length > 0)?_c('content-bar',{attrs:{\"small\":true,\"title\":_vm.$t('titles.calculations', { count: _vm.calculations.length })}}):_vm._e(),(_vm.calculations.length > 0)?_c('v-data-table',{staticClass:\"elevation-1 calculation-table\",attrs:{\"headers\":_vm.small ? _vm.CALCULATION_HEADERS_SMALL : _vm.PROJECT_HEADERS,\"items\":_vm.calculations,\"item-key\":\"Id\",\"hide-default-footer\":!_vm.showHeaders,\"disabled\":_vm.loading,\"loading-text\":_vm.$t('info.loading'),\"no-data-text\":_vm.$t('info.no-data'),\"no-results-text\":_vm.$t('info.no-result')},on:{\"dblclick:row\":_vm.dblClickRow},scopedSlots:_vm._u([_vm._l((_vm.small ? _vm.CALCULATION_HEADERS_SMALL : _vm.PROJECT_HEADERS),function(h){return {key:(\"header.\" + (h.value)),fn:function(ref){return [_c('v-row',{key:h.text,attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-tooltip',{attrs:{\"bottom\":\"\",\"max-width\":\"350\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [(h.text)?_c('span',_vm._g({},on),[_vm._v(\" \"+_vm._s(_vm.$t((\"headers.\" + (h.text.toLowerCase()))))+\" \")]):_vm._e()]}}],null,true)},[(h.text)?_c('span',[_vm._v(_vm._s(_vm.$t((\"headers-description.\" + (h.text.toLowerCase())))))]):_vm._e()])],1)],1)]}}}),{key:\"item.Shared\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-icon',{staticClass:\"shared\",attrs:{\"disabled\":\"\",\"color\":item.Shared ? 'secondary' : 'orange'}},[_vm._v(_vm._s(item.Shared ? 'mdi-eye' : 'mdi-eye-off'))])]}},{key:\"item.calculations\",fn:function(ref){\nvar item = ref.item;\nreturn [(item.CalculationLockedTime)?_c('v-icon',{staticClass:\"locked\",attrs:{\"color\":\"error\"}},[_vm._v(\" mdi-lock \")]):_vm._e(),_c('v-icon',{staticClass:\"child-profession\",attrs:{\"color\":\"primary\"}},[_vm._v(_vm._s(_vm.getIconByProfessionCode( item.Profession && item.Profession.Code ? item.Profession.Code : item.ProfessionCode )))])]}},{key:\"item.data-table-expand\",fn:function(ref){return [_c('div',{staticClass:\"placeholder\"},[_c('v-icon',{attrs:{\"right\":\"\"}})],1)]}},{key:\"item.LastModified\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._v(\" \"+_vm._s(_vm.moment(item.LastModified) .lang((\"\" + (_vm.$i18n.locale === 'no' ? 'nb' : _vm.$i18n.locale))) .format('Do MMMM YYYY'))+\" \")]}},{key:\"item.ProjectTotals.Total\",fn:function(ref){\nvar item = ref.item;\nreturn [(!_vm.buildingTotals)?_c('div',{staticClass:\"font-weight-medium\"},[_vm._v(\" \"+_vm._s(item.TempProjectTotals && item.TempProjectTotals.Total ? item.TempProjectTotals.Total.toLocaleString(_vm.$i18n.locale, { maximumFractionDigits: 0, }) : item.ProjectTotals && item.ProjectTotals.Total ? item.ProjectTotals.Total.toLocaleString(_vm.$i18n.locale, { maximumFractionDigits: 0, }) : '0')+\" \")]):_c('v-skeleton-loader',{staticClass:\"mx-auto\",attrs:{\"type\":\"text\"}})]}},{key:\"item.ProjectTotals.SumMargin\",fn:function(ref){\nvar item = ref.item;\nreturn [(!_vm.buildingTotals)?_c('div',{staticClass:\"font-weight-medium\"},[_vm._v(\" \"+_vm._s(item.TempProjectTotals && item.TempProjectTotals.SumMargin ? item.TempProjectTotals.SumMargin.toLocaleString(_vm.$i18n.locale, { maximumFractionDigits: 0, }) : item.ProjectTotals && item.ProjectTotals.SumMargin ? item.ProjectTotals.SumMargin.toLocaleString(_vm.$i18n.locale, { maximumFractionDigits: 0, }) : '0')+\" \"),_c('span',{staticClass:\"percentage\"},[_vm._v(\" \"+_vm._s(item.TempProjectTotals && item.TempProjectTotals.SumMargin && item.TempProjectTotals.Total ? (\"(\" + (_vm.safePercentage( item.TempProjectTotals.Total, item.TempProjectTotals.SumMargin ).toLocaleString(_vm.$i18n.locale, { maximumFractionDigits: 0, })) + \"%)\") : item.ProjectTotals && item.ProjectTotals.Total && item.ProjectTotals.SumMargin ? (\"(\" + (_vm.safePercentage( item.ProjectTotals.Total, item.ProjectTotals.SumMargin ).toLocaleString(_vm.$i18n.locale, { maximumFractionDigits: 0, })) + \"%)\") : ''))])]):_c('v-skeleton-loader',{staticClass:\"mx-auto\",attrs:{\"type\":\"text\"}})]}},{key:\"item.Total\",fn:function(ref){\nvar item = ref.item;\nreturn [(!_vm.buildingTotals)?_c('div',{staticClass:\"font-weight-medium\"},[_vm._v(\" \"+_vm._s(item.Total ? item.Total.toLocaleString(_vm.$i18n.locale, { maximumFractionDigits: 0, }) : '0')+\" \")]):_vm._e()]}},{key:\"item.ProjectTotals.SelfCostMaterialsSubContractors\",fn:function(ref){\nvar item = ref.item;\nreturn [(!_vm.buildingTotals)?_c('div',{staticClass:\"orange--text font-weight-medium\"},[_vm._v(\" \"+_vm._s(item.TempProjectTotals && item.TempProjectTotals.SelfCostMaterialsSubContractors ? item.TempProjectTotals.SelfCostMaterialsSubContractors.toLocaleString( _vm.$i18n.locale, { maximumFractionDigits: 0, } ) : item.ProjectTotals && item.ProjectTotals.SelfCostMaterialsSubContractors ? item.ProjectTotals.SelfCostMaterialsSubContractors.toLocaleString( _vm.$i18n.locale, { maximumFractionDigits: 0, } ) : '0')+\" \"),_c('span',{staticClass:\"percentage\"},[_vm._v(\" \"+_vm._s(item.TempProjectTotals && item.TempProjectTotals.SelfCostMaterialsSubContractors && item.TempProjectTotals.Total ? (\"(\" + (_vm.safePercentage( item.TempProjectTotals.Total, item.TempProjectTotals.SelfCostMaterialsSubContractors ).toLocaleString(_vm.$i18n.locale, { maximumFractionDigits: 0, })) + \"%)\") : item.ProjectTotals && item.ProjectTotals.SelfCostMaterialsSubContractors && item.ProjectTotals.Total ? (\"(\" + (_vm.safePercentage( item.ProjectTotals.Total, item.ProjectTotals.SelfCostMaterialsSubContractors ).toLocaleString(_vm.$i18n.locale, { maximumFractionDigits: 0, })) + \"%)\") : ''))])]):_c('v-skeleton-loader',{staticClass:\"mx-auto\",attrs:{\"type\":\"text\"}})]}},{key:\"item.ProjectTotals.Hours\",fn:function(ref){\nvar item = ref.item;\nreturn [(!_vm.buildingTotals)?_c('div',{staticClass:\"font-weight-medium\"},[_vm._v(\" \"+_vm._s(item.TempProjectTotals && item.TempProjectTotals.Hours ? item.TempProjectTotals.Hours.toLocaleString(_vm.$i18n.locale, { maximumFractionDigits: 0, }) : item.ProjectTotals && item.ProjectTotals.Hours ? item.ProjectTotals.Hours.toLocaleString(_vm.$i18n.locale, { maximumFractionDigits: 0, }) : '0')+\" \")]):_c('v-skeleton-loader',{staticClass:\"mx-auto\",attrs:{\"type\":\"text\"}})]}},{key:\"item.ProjectTotals.Profit\",fn:function(ref){\nvar item = ref.item;\nreturn [(!_vm.buildingTotals)?_c('div',{staticClass:\"green--text font-weight-medium\"},[_vm._v(\" \"+_vm._s(item.TempProjectTotals && item.TempProjectTotals.Profit ? item.TempProjectTotals.Profit.toLocaleString(_vm.$i18n.locale, { maximumFractionDigits: 0, }) : item.ProjectTotals && item.ProjectTotals.Profit ? item.ProjectTotals.Profit.toLocaleString(_vm.$i18n.locale, { maximumFractionDigits: 0, }) : '0')+\" \"),_c('span',{staticClass:\"percentage\"},[_vm._v(\" \"+_vm._s(item.TempProjectTotals && item.TempProjectTotals.Profit && item.TempProjectTotals.Total ? (\"(\" + (_vm.safePercentage( item.TempProjectTotals.Total, item.TempProjectTotals.Profit ).toLocaleString(_vm.$i18n.locale, { maximumFractionDigits: 0, })) + \"%)\") : item.ProjectTotals && item.ProjectTotals.Profit && item.ProjectTotals.Profit ? (\"(\" + (_vm.safePercentage( item.ProjectTotals.Total, item.ProjectTotals.Profit ).toLocaleString(_vm.$i18n.locale, { maximumFractionDigits: 0, })) + \"%)\") : ''))])]):_c('v-skeleton-loader',{staticClass:\"mx-auto\",attrs:{\"type\":\"text\"}})]}},{key:\"item.actions\",fn:function(ref){\nvar item = ref.item;\nreturn [(!_vm.importCalculation)?_c('v-btn-toggle',{attrs:{\"color\":\"primary\"}},[_c('v-menu',{attrs:{\"close-on-content-click\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar menu = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"calculation-menu\",attrs:{\"icon\":\"\",\"small\":\"\",\"color\":\"primary\"}},'v-btn',attrs,false),Object.assign({}, menu)),[_c('v-icon',[_vm._v(\"mdi-dots-vertical\")])],1)]}}],null,true)},[_c('v-list',{attrs:{\"dense\":\"\"}},[_c('v-list-item-group',{attrs:{\"color\":\"primary\"}},[_c('edit-project',{attrs:{\"isMenuitem\":true,\"calulation\":item}}),_c('export-project',{attrs:{\"project\":item,\"isCalculation\":true,\"isMenuitem\":true}}),(_vm.projects && _vm.projects.length > 1)?_c('copy-to-another-project',{attrs:{\"calculation\":item,\"isMenuitem\":true}}):_vm._e(),_c('lock-calculation',{attrs:{\"calculation\":item,\"isMenuitem\":true}}),_c('delete-project',{attrs:{\"project\":item,\"isCalculation\":true,\"isMenuitem\":true}})],1)],1)],1),_c('v-btn',{staticClass:\"traverse-btn\",attrs:{\"small\":\"\",\"outlined\":\"\",\"loading\":_vm.loadingId === item.Id},on:{\"click\":function($event){item.CalculationLockedTime\n ? _vm.traverse(_vm.PROJECT_CALCULATION_OVERVIEW_PATH, item)\n : _vm.traverse(_vm.PROJECT_CALCULATION_PATH, item)}}},[_vm._v(\" \"+_vm._s(item.CalculationLockedTime ? _vm.$t('buttons.go-calculation-overview') : _vm.$t('buttons.go-calculation'))+\" \"),_c('v-icon',{attrs:{\"color\":\"primary\",\"right\":\"\"}},[_vm._v(\" mdi-open-in-app\")])],1)],1):_c('v-btn',{staticClass:\"import-add\",attrs:{\"small\":\"\",\"outlined\":\"\",\"color\":\"secondary\"},on:{\"click\":function($event){return _vm.emitImport(item)}}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.import'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-import \")])],1)]}}],null,true)}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('confirm',{scopedSlots:_vm._u([{key:\"activator-element\",fn:function(){return [(_vm.isMenuitem)?_c('v-list-item',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.isCalculation ? _vm.$t('buttons.delete-calculation') : _vm.$t('buttons.delete-project')))]),_c('v-list-item-icon',[_c('v-icon',{attrs:{\"color\":\"error\",\"right\":\"\"}},[_vm._v(\"mdi-delete\")])],1)],1):_c('v-btn',{class:_vm.icon ? 'delete-project-icon ma-2' : 'delete-project ma-2',attrs:{\"dark\":\"\",\"small\":\"\",\"color\":\"rgba(193, 9, 9, 0.69)\",\"fab\":!_vm.$vuetify.breakpoint.xlOnly}},[_vm._v(\" \"+_vm._s(_vm.$vuetify.breakpoint.xlOnly ? _vm.isCalculation ? _vm.$t('buttons.delete-calculation') : _vm.$t('buttons.delete-project') : '')+\" \"),_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g({attrs:{\"right\":_vm.$vuetify.breakpoint.xlOnly}},on),[_vm._v(\" mdi-delete \")])]}}])},[_c('span',[_vm._v(_vm._s(_vm.isCalculation ? _vm.$t('buttons.delete-calculation') : _vm.$t('buttons.delete-project')))])])],1)]},proxy:true},{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(((_vm.$t('common.delete')) + \" \" + (_vm.project.Name) + \"?\"))+\" \")]},proxy:true},{key:\"text\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.isCalculation ? _vm.$t('info.delete-calculation') : _vm.$t('info.delete-project'))+\" \")]},proxy:true},{key:\"accept\",fn:function(){return [_c('v-btn',{attrs:{\"color\":\"secondary\",\"loading\":_vm.loading,\"disabled\":!_vm.valid},on:{\"click\":_vm.deleteEvent}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.confirm'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-check\")])],1)]},proxy:true}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"value\":_vm.value,\"max-width\":\"700\",\"retain-focus\":false},on:{\"input\":function($event){return _vm.$emit('input', $event)},\"click:outside\":function($event){return _vm.$emit('input', false)}},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('div',_vm._g(_vm._b({},'div',attrs,false),on),[_vm._t(\"activator-element\")],2)]}}],null,true)},[_c('v-card',{attrs:{\"flat\":\"\",\"tile\":\"\"}},[(!_vm.customTitle)?_c('v-card-title',{staticClass:\"confirm-title\"},[_vm._v(\" \"+_vm._s(_vm.$t('titles.confirm'))+\" \"),_c('v-spacer'),_c('v-icon',{staticClass:\"alert-icon\",attrs:{\"color\":\"orange\"}},[_vm._v(\"mdi-alert-outline\")]),(!_vm.customClose)?_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.$emit('input', false)}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1):_vm._e()],1):_vm._e(),(!_vm.customTitle)?_c('v-divider'):_vm._e(),_vm._t(\"custom-title\"),_c('v-card-title',{staticClass:\"confirm-secondary-title\"},[_vm._t(\"title\")],2),_c('v-card-text',{staticClass:\"confirm-message\"},[_vm._t(\"text\")],2),_c('v-card-actions',{staticClass:\"confirm-actions\"},[_c('v-spacer'),_vm._t(\"accept\"),(!_vm.customClose)?_c('v-btn',{on:{\"click\":function($event){return _vm.$emit('input', false)}}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.close'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-close\")])],1):_vm._e()],2)],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\n\nexport default defineComponent({\n props: {\n customTitle: {\n type: Boolean,\n },\n value: {\n type: Boolean,\n default: false,\n },\n customClose: {\n type: Boolean,\n },\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=5e2ca141&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=5e2ca141&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5e2ca141\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VDialog,VDivider,VIcon,VSpacer})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { ref, PropType, defineComponent } from '@vue/composition-api';\nimport { ProjectOverview } from '@/models/projects/interfaces';\nimport { useProject } from '@/modules/project';\nimport Confirm from '@/components/common/confirm/index.vue';\n\nexport default defineComponent({\n components: {\n Confirm,\n },\n props: {\n project: {\n type: Object as PropType,\n required: true,\n },\n icon: {\n type: Boolean,\n },\n isCalculation: {\n type: Boolean,\n },\n isMenuitem: {\n type: Boolean,\n },\n routeTo: {\n type: String,\n },\n },\n setup(props) {\n const { deleteProject, getProjects, refreshActiveProject } = useProject();\n\n const valid = ref(false);\n const loading = ref(false);\n const dialog = ref(false);\n\n const deleteEvent = async () => {\n loading.value = true;\n if (props.project.Id) {\n await deleteProject(\n props.project.Id,\n props.isCalculation,\n props.routeTo\n );\n }\n\n await getProjects(true);\n await refreshActiveProject();\n\n loading.value = false;\n dialog.value = false;\n };\n\n valid.value =\n props.project && props.project.Id !== null && props.project.Id !== '';\n\n return {\n loading,\n valid,\n dialog,\n deleteEvent,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=153e77a6&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=153e77a6&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"153e77a6\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VIcon,VListItem,VListItemIcon,VListItemTitle,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('confirm',{scopedSlots:_vm._u([{key:\"activator-element\",fn:function(){return [(_vm.isMenuitem)?_c('v-list-item',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.calculation.CalculationLockedTime ? _vm.$t('titles.unlock-calculation') : _vm.$t('titles.lock-calculation')))]),_c('v-list-item-icon',[_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-\"+_vm._s(_vm.calculation.CalculationLockedTime ? 'lock-open' : 'lock'))])],1)],1):_c('v-btn',{staticClass:\"ma-2\",attrs:{\"small\":\"\",\"fab\":!_vm.$vuetify.breakpoint.xlOnly}},[_vm._v(\" \"+_vm._s(_vm.$vuetify.breakpoint.xlOnly ? _vm.calculation.CalculationLockedTime ? _vm.$t('titles.unlock-calculation') : _vm.$t('titles.lock-calculation') : '')+\" \"),_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g({attrs:{\"right\":_vm.$vuetify.breakpoint.xlOnly}},on),[_vm._v(\" mdi-\"+_vm._s(_vm.calculation.CalculationLockedTime ? 'lock-open' : 'lock')+\" \")])]}}])},[_c('span',[_vm._v(_vm._s(_vm.calculation.CalculationLockedTime ? _vm.$t('titles.unlock-calculation') : _vm.$t('titles.lock-calculation')))])])],1)]},proxy:true},{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.calculation.CalculationLockedTime ? ((_vm.$t('titles.unlock-calculation')) + \"?\") : ((_vm.$t('titles.lock-calculation')) + \"?\"))+\" \")]},proxy:true},{key:\"text\",fn:function(){return [(_vm.calculation.CalculationLockedTime)?_c('span',[_vm._v(_vm._s(_vm.$t('info.unlock-calculation', { name: _vm.calculation.Name })))]):_c('span',[_vm._v(_vm._s(_vm.$t('info.lock-calculation', { name: _vm.calculation.Name })))])]},proxy:true},{key:\"accept\",fn:function(){return [_c('v-btn',{attrs:{\"color\":\"secondary\",\"loading\":_vm.loading},on:{\"click\":_vm.lockEvent}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.confirm'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-check\")])],1)]},proxy:true}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { PropType, defineComponent, ref } from '@vue/composition-api';\nimport { ProjectOverview } from '@/models/projects/interfaces';\nimport { useCalculation } from '@/modules/calculation';\nimport Confirm from '@/components/common/confirm/index.vue';\n\nexport default defineComponent({\n components: {\n Confirm,\n },\n props: {\n calculation: {\n type: Object as PropType,\n required: true,\n },\n isMenuitem: {\n type: Boolean,\n },\n },\n setup({ calculation }) {\n const { loading, lockCalculation, unlockCalculation } = useCalculation();\n const dialog = ref(false);\n\n const lockEvent = async () => {\n if (calculation.CalculationLockedTime && calculation.Id) {\n await unlockCalculation(calculation.Id);\n dialog.value = false;\n } else if (calculation.Id) {\n await lockCalculation(calculation.Id);\n dialog.value = false;\n }\n };\n\n return {\n loading,\n dialog,\n lockEvent,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=7028a11e&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VIcon,VListItem,VListItemIcon,VListItemTitle,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"max-width\":\"700\",\"retain-focus\":false},on:{\"click:outside\":function($event){_vm.dialog = false}},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [(_vm.isMenuitem)?_c('v-list-item',_vm._g(_vm._b({},'v-list-item',attrs,false),on),[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.isCalculation ? _vm.$t('titles.export-calculation') : _vm.$t('titles.export-project')))]),_c('v-list-item-icon',[_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-export\")])],1)],1):_c('v-btn',_vm._g(_vm._b({staticClass:\"export-button ma-2\",attrs:{\"small\":\"\",\"fab\":!_vm.$vuetify.breakpoint.xlOnly}},'v-btn',attrs,false),on),[_vm._v(\" \"+_vm._s(!_vm.$vuetify.breakpoint.xlOnly ? '' : _vm.$t('buttons.export'))+\" \"),_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g({attrs:{\"right\":_vm.$vuetify.breakpoint.xlOnly}},on),[_vm._v(\" mdi-export \")])]}}],null,true)},[_c('span',[_vm._v(_vm._s(_vm.$t('buttons.export')))])])],1)]}}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',{attrs:{\"flat\":\"\",\"tile\":\"\"}},[_c('dialog-title',{attrs:{\"headerText\":_vm.isCalculation\n ? _vm.$t('titles.export-calculation')\n : _vm.$t('titles.export-project'),\"secondaryText\":_vm.project.Name},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.dialog = false}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)]},proxy:true}])}),_c('v-card-text',{staticClass:\"export-message\"},[_c('span',{staticClass:\"subtitle-1\"},[_vm._v(_vm._s(_vm.$t('labels.select-format')))]),_c('v-item-group',[_c('v-container',[_c('v-row',{staticClass:\"options\"},[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('v-card',{staticClass:\"d-flex align-center type-card\",attrs:{\"height\":\"150\",\"hover\":\"\",\"color\":_vm.type === _vm.ExportType.JSON ? 'primary' : ''},on:{\"click\":function($event){_vm.type = _vm.ExportType.JSON}}},[_c('v-icon',{class:_vm.type === _vm.ExportType.JSON\n ? 'type-icon-active'\n : 'type-icon'},[_vm._v(\"mdi-code-json\")]),_c('span',{class:_vm.type === _vm.ExportType.JSON\n ? 'type-name-active'\n : 'type-name'},[_vm._v(\"JSON\")]),_c('v-scroll-y-transition',[(_vm.type === _vm.ExportType.JSON)?_c('div',{staticClass:\"display-3 flex-grow-1\"}):_vm._e()])],1)],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('v-card',{staticClass:\"d-flex align-center type-card\",attrs:{\"height\":\"150\",\"hover\":\"\",\"color\":_vm.type === _vm.ExportType.XML ? 'primary' : ''},on:{\"click\":function($event){_vm.type = _vm.ExportType.XML}}},[_c('v-icon',{class:_vm.type === _vm.ExportType.XML ? 'type-icon-active' : 'type-icon'},[_vm._v(\"mdi-xml\")]),_c('span',{class:_vm.type === _vm.ExportType.XML ? 'type-name-active' : 'type-name'},[_vm._v(\"XML\")]),_c('v-scroll-y-transition',[(_vm.type === _vm.ExportType.XML)?_c('div',{staticClass:\"display-3 flex-grow-1\"}):_vm._e()])],1)],1)],1)],1)],1),(_vm.project.ParentId === null && _vm.project.Children.length > 0)?_c('v-checkbox',{staticClass:\"include-calculations\",attrs:{\"dense\":\"\",\"label\":\"Include calculations\"},model:{value:(_vm.includeCalculations),callback:function ($$v) {_vm.includeCalculations=$$v},expression:\"includeCalculations\"}}):_vm._e()],1),_c('v-card-actions',{staticClass:\"export-actions\"},[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"secondary\",\"loading\":_vm.loading},on:{\"click\":_vm.exportEvent}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.export'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-export \")])],1),_c('v-btn',{on:{\"click\":function($event){_vm.dialog = false}}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.close'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-close\")])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { ExportType } from '@/constants/enum';\nimport { isSuccess } from '@/helpers/common';\nimport {\n createAdditionItemTemplateType,\n createBuildingElementTemplateType,\n createBuildingItemTemplateType,\n createBuildingTypeTemplateType,\n} from '@/helpers/library';\nimport { CustomError } from '@/models/common/interfaces';\nimport {\n AdditionItemTemplateType,\n BuildingElementTemplateType,\n BuildingItemTemplateType,\n BuildingTypeTemplate,\n BuildingTypeTemplateType,\n} from '@/models/library/interfaces';\nimport { NstNS3459 } from '@/models/standards/ns3459/interfaces';\nimport { reactive, toRefs } from '@vue/composition-api';\nimport { useApi } from './api';\nimport { useErrorModal } from './error';\nimport { useSnackbar } from './snackbar';\n\ninterface State {\n loading: boolean;\n error?: CustomError;\n}\n\nconst state = reactive({\n loading: false,\n error: undefined,\n});\n\nexport const useExport = () => {\n const { snack } = useSnackbar();\n const { errorModal } = useErrorModal();\n\n const exportProject = async (\n projectId: string,\n includeCalculations: boolean,\n type: ExportType\n ): Promise => {\n const { get } = useApi(\n `/project/${projectId}/export/${includeCalculations}`\n );\n let nstNS3459: NstNS3459 | undefined = undefined;\n state.loading = true;\n try {\n if (type === ExportType.XML) {\n const response = await get(undefined, 'application/xml');\n if (isSuccess(response.status)) {\n nstNS3459 = response.data;\n }\n } else if (type === ExportType.JSON) {\n const response = await get();\n if (isSuccess(response.status)) {\n nstNS3459 = response.data;\n }\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n state.loading = false;\n\n return nstNS3459;\n };\n\n const exportTemplate = async (\n template: BuildingTypeTemplate\n ): Promise => {\n const templateType: BuildingTypeTemplateType = createBuildingTypeTemplateType(\n template\n );\n\n const elementTypes: Array = [];\n\n template.BuildingElementTemplates.forEach(eleTemplate => {\n const elementTemplate = createBuildingElementTemplateType(eleTemplate);\n const itemTypes: Array = [];\n const additionTypes: Array = [];\n eleTemplate.BuildingItemTemplates.forEach(itemTemplate => {\n const itemTemplateType = createBuildingItemTemplateType(itemTemplate);\n itemTypes.push(itemTemplateType);\n });\n eleTemplate.AdditionItemTemplates.forEach(additionTemplate => {\n const additionTemplateType = createAdditionItemTemplateType(\n additionTemplate\n );\n additionTypes.push(additionTemplateType);\n });\n elementTemplate.AdditionItemTemplates = additionTypes;\n elementTemplate.BuildingItemTemplates = itemTypes;\n\n elementTypes.push(elementTemplate);\n });\n\n templateType.BuildingElementTemplates = elementTypes;\n\n return templateType;\n };\n\n return {\n exportProject,\n exportTemplate,\n ...toRefs(state),\n };\n};\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { ExportType } from '@/constants/enum';\nimport { NstNS3459 } from '@/models/standards/ns3459/interfaces';\nimport { ProjectOverview } from '@/models/projects/interfaces';\nimport { useExport } from '@/modules/export';\nimport { ref, defineComponent, PropType } from '@vue/composition-api';\nimport DialogTitle from '@/components/common/dialog-title/index.vue';\nimport { useCalculation } from '@/modules/calculation';\n\nexport default defineComponent({\n components: {\n DialogTitle,\n },\n props: {\n project: {\n type: Object as PropType,\n required: true,\n },\n isMenuitem: {\n type: Boolean,\n },\n isCalculation: {\n type: Boolean,\n },\n },\n setup({ project }) {\n const { exportProject } = useExport();\n const { updating } = useCalculation();\n const dialog = ref(false);\n const loading = ref(false);\n const type = ref(ExportType.JSON);\n const includeCalculations = ref(\n project.ParentId === null && project.Children.length > 0\n );\n\n let response: NstNS3459 | undefined = undefined;\n\n const exportEvent = async () => {\n loading.value = true;\n if (project.Id) {\n response = await exportProject(\n project.Id,\n includeCalculations.value,\n type.value\n );\n if (response) {\n try {\n const blob = new Blob(\n [\n type.value === ExportType.XML\n ? // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (response as any)\n : JSON.stringify(response),\n ],\n {\n type: `application/${\n type.value === ExportType.XML ? 'xml' : 'json'\n }`,\n }\n );\n const link = document.createElement('a');\n link.href = window.URL.createObjectURL(blob);\n link.download = `${project.Name}.${\n type.value === ExportType.XML ? 'xml' : 'json'\n }`;\n link.click();\n link.remove();\n } catch (e) {\n console.log(e);\n }\n }\n }\n loading.value = false;\n dialog.value = false;\n };\n\n return {\n exportEvent,\n dialog,\n loading,\n type,\n includeCalculations,\n ExportType,\n updating,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=4e0570ca&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=4e0570ca&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4e0570ca\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VItemGroup } from 'vuetify/lib/components/VItemGroup';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VScrollYTransition } from 'vuetify/lib/components/transitions';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCheckbox,VCol,VContainer,VDialog,VIcon,VItemGroup,VListItem,VListItemIcon,VListItemTitle,VRow,VScrollYTransition,VSpacer,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"max-width\":\"800\"},on:{\"click:outside\":_vm.close},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [(_vm.isMenuitem)?_c('v-list-item',_vm._g(_vm._b({},'v-list-item',attrs,false),on),[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('titles.edit')))]),_c('v-list-item-icon',[_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-pencil\")])],1)],1):_c('v-btn',_vm._g(_vm._b({staticClass:\"export-button ma-2\",attrs:{\"small\":\"\"}},'v-btn',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.$t('buttons.edit'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-pencil \")])],1)]}}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',{staticClass:\"pa-2\",attrs:{\"flat\":\"\",\"tile\":\"\",\"disabled\":_vm.loading}},[_c('dialog-title',{attrs:{\"headerText\":_vm.$t('titles.details')},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":_vm.close}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)]},proxy:true}])}),_c('v-form',{attrs:{\"id\":\"details-form\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.submit.apply(null, arguments)}},model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-card-text',{staticClass:\"edit-content\"},[_c('v-subheader',{staticClass:\"field-name\"},[_vm._v(\" \"+_vm._s(_vm.$t('titles.calculation-information'))+\" \")]),_c('v-container',{attrs:{\"fluid\":\"\"}},[(_vm.payload)?_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"9\"}},[_c('v-text-field',{attrs:{\"outlined\":\"\",\"dense\":\"\",\"autofocus\":\"\",\"rules\":[_vm.rules.required],\"placeholder\":_vm.$t('labels.name'),\"label\":_vm.$t('labels.name'),\"clearable\":\"\"},on:{\"focus\":function($event){return $event.target.select()}},model:{value:(_vm.payload.Name),callback:function ($$v) {_vm.$set(_vm.payload, \"Name\", $$v)},expression:\"payload.Name\"}})],1),_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('v-text-field',{attrs:{\"outlined\":\"\",\"dense\":\"\",\"rules\":[_vm.rules.required],\"clearable\":\"\",\"placeholder\":_vm.$t('labels.number'),\"label\":_vm.$t('labels.number')},model:{value:(_vm.payload.ProjectNumber),callback:function ($$v) {_vm.$set(_vm.payload, \"ProjectNumber\", $$v)},expression:\"payload.ProjectNumber\"}})],1)],1):_c('loader',{attrs:{\"margins\":true}})],1)],1),_c('v-card-actions',{staticClass:\"edit-actions\"},[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"secondary\",\"type\":\"submit\",\"loading\":_vm.loading,\"disabled\":!_vm.valid}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.update'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-check\")])],1),_c('v-btn',{on:{\"click\":_vm.close}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.close'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-close\")])],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport {\n ref,\n defineComponent,\n onMounted,\n PropType,\n} from '@vue/composition-api';\nimport { cleanSource } from '@/helpers/common';\nimport DialogTitle from '@/components/common/dialog-title/index.vue';\nimport Loader from '@/components/loader/index.vue';\nimport { ProjectDetails, ProjectOverview } from '@/models/projects/interfaces';\nimport { useProject } from '@/modules/project';\nimport { translate } from '@/localization';\n\nconst valid = ref(false);\n\nexport default defineComponent({\n components: {\n DialogTitle,\n Loader,\n },\n props: {\n calulation: {\n type: Object as PropType,\n required: true,\n },\n isMenuitem: {\n type: Boolean,\n },\n },\n setup(props) {\n const {\n saveDetails,\n getDetails,\n getProjects,\n refreshActiveProject,\n } = useProject();\n const dialog = ref(false);\n const loading = ref(false);\n const payload = ref();\n const details = ref();\n\n const initDetails = async () => {\n if (props.calulation.Id) {\n details.value = await getDetails(props.calulation.Id);\n if (details.value) payload.value = cleanSource(details.value);\n }\n };\n\n onMounted(async () => {\n await initDetails();\n });\n\n const close = async () => {\n payload.value = details.value;\n dialog.value = false;\n };\n\n const submit = async () => {\n loading.value = true;\n if (payload.value?.Id) {\n const success = await saveDetails(payload.value.Id, payload.value);\n\n if (success) {\n await getProjects(true);\n await refreshActiveProject();\n await close();\n }\n }\n loading.value = false;\n };\n\n return {\n submit,\n close,\n loading,\n valid,\n payload,\n dialog,\n rules: {\n required: (v: string) => !!v || `${translate('validation.required')}`,\n min: (v: string) =>\n (v && v.length >= 8) ||\n `${translate('validation.minimum-characters', [8])}`,\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=63d363d4&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=63d363d4&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"63d363d4\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VContainer,VDialog,VForm,VIcon,VListItem,VListItemIcon,VListItemTitle,VRow,VSpacer,VSubheader,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"max-width\":\"500\",\"retain-focus\":false},on:{\"click:outside\":_vm.close},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [(_vm.isMenuitem)?_c('v-list-item',_vm._g(_vm._b({},'v-list-item',attrs,false),on),[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('buttons.copy-project')))]),_c('v-list-item-icon',[_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-file-move\")])],1)],1):_c('v-btn',_vm._g(_vm._b({staticClass:\"copy-button\",attrs:{\"small\":\"\"}},'v-btn',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.$t('buttons.copy-project'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-file-move \")])],1)]}}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',{attrs:{\"flat\":\"\",\"tile\":\"\"}},[_c('dialog-title',{attrs:{\"headerText\":_vm.$t('buttons.copy-project')},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":_vm.close}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)]},proxy:true}])}),_c('v-card-text',{staticClass:\"pa-5\"},[_c('v-container',{attrs:{\"fluid\":\"\"}},[(_vm.availableProjects)?_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"outlined\":\"\",\"dense\":\"\",\"autofocus\":\"\",\"rules\":[_vm.rules.required],\"placeholder\":_vm.$t('labels.name'),\"label\":_vm.$t('labels.name'),\"clearable\":\"\"},on:{\"focus\":function($event){return $event.target.select()}},model:{value:(_vm.newName),callback:function ($$v) {_vm.newName=$$v},expression:\"newName\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-select',{attrs:{\"items\":_vm.availableProjects,\"outlined\":\"\",\"dense\":\"\",\"item-value\":\"Id\",\"label\":_vm.$t('labels.available-projects')},scopedSlots:_vm._u([{key:\"item\",fn:function(data){return [_vm._v(\" \"+_vm._s(((data.item.ProjectNumber) + \" - \" + (data.item.Name)))+\" \")]}},{key:\"selection\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._v(\" \"+_vm._s(((item.ProjectNumber) + \" - \" + (item.Name)))+\" \")]}}],null,false,3195190495),model:{value:(_vm.selectedProject),callback:function ($$v) {_vm.selectedProject=$$v},expression:\"selectedProject\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-checkbox',{attrs:{\"color\":\"primary\",\"dense\":\"\",\"label\":_vm.$t('labels.navigate-to-calc'),\"hide-details\":\"\"},model:{value:(_vm.navigateToCalc),callback:function ($$v) {_vm.navigateToCalc=$$v},expression:\"navigateToCalc\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-checkbox',{attrs:{\"color\":\"primary\",\"dense\":\"\",\"label\":_vm.$t('titles.include-amount'),\"hide-details\":\"\"},model:{value:(_vm.includeAmount),callback:function ($$v) {_vm.includeAmount=$$v},expression:\"includeAmount\"}})],1)],1):_c('loader',{attrs:{\"margins\":true}})],1)],1),_c('v-card-actions',{staticClass:\"pa-5\"},[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"secondary\",\"loading\":_vm.loading,\"disabled\":!_vm.selectedProject},on:{\"click\":_vm.copyEvent}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.copy'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-file-move \")])],1),_c('v-btn',{on:{\"click\":_vm.close}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.close'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-close\")])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { reactive, toRefs } from '@vue/composition-api';\nimport { useApi } from './api';\nimport { CompanyFactor, CompanyFactorItem } from '@/models/company/interfaces';\nimport { useSnackbar } from '@/modules/snackbar';\nimport { useErrorModal } from './error';\nimport { CustomError } from '@/models/common/interfaces';\nimport { isSuccess } from '@/helpers/common';\nimport {\n CalculationBatch,\n ProjectFactorItem,\n} from '@/models/calculation/interfaces';\nimport { useCalculation } from './calculation';\nimport { useBatch } from './batch';\nimport { useProject } from './project';\n\ninterface FactorState {\n factors?: Array;\n loading: boolean;\n error?: CustomError;\n\n carpentry?: Array;\n painterWork?: Array;\n subContractors?: Array;\n rigs?: Array;\n groundWork?: Array;\n concreteWork?: Array;\n masonry?: Array;\n}\n\nconst state = reactive({\n factors: undefined,\n loading: false,\n error: undefined,\n});\n\nexport const useFactors = () => {\n const { errorModal } = useErrorModal();\n const { snack } = useSnackbar();\n\n const filteredFactors = (\n profession: string,\n factors: Array\n ): Array => {\n let filteredItems: Array = [];\n if (factors) {\n filteredItems = factors.filter(fi => {\n return fi.Profession.Code === profession;\n });\n }\n return filteredItems;\n };\n\n const getFactors = async (\n force?: boolean\n ): Promise | undefined> => {\n const { get } = useApi('/company/factor');\n\n if (state.factors && !force) {\n return state.factors;\n }\n state.loading = true;\n\n try {\n const response = await get();\n if (isSuccess(response.status)) {\n state.factors = response.data;\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n\n state.loading = false;\n return state.factors;\n };\n\n const getProjectFactorItemsFromCompanyFactorByCode = async (\n code: string\n ): Promise> => {\n const cFactors = await getFactors();\n const projectItems: Array = [];\n\n if (cFactors) {\n const cFactor = cFactors.find(f => f.Profession.Code === code);\n if (cFactor) {\n cFactor.CompanyFactorItems.forEach(cf => {\n const pItem: ProjectFactorItem = {\n Name: cf.Name,\n Value: cf.Value,\n };\n projectItems.push(pItem);\n });\n }\n }\n\n return projectItems;\n };\n\n const updateFactors = async (\n id: string,\n newFactors: Array\n ): Promise => {\n const { put } = useApi(`/company/factor/${id}`);\n state.loading = true;\n let success = false;\n\n try {\n const response = await put(newFactors);\n if (isSuccess(response.status)) {\n if (state.factors) {\n state.factors.forEach(factor => {\n if (factor.Id === id) {\n factor.CompanyFactorItems = newFactors;\n }\n });\n }\n snack('snack.factors-updated', true);\n success = true;\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n\n state.loading = false;\n return success;\n };\n\n const updateCalculationFactors = async (\n id: string,\n newFactors: Array\n ): Promise => {\n const {\n projectCalculation,\n calculation,\n setActiveCalculation,\n updateProjectCalculationFactors,\n updateActiveCalculationWithBatch,\n activeCalculation,\n } = useCalculation();\n const { buildProjectTotalsForCalculations } = useProject();\n\n const { registerChangedFactorsBatchOperation } = useBatch();\n let updated = false;\n\n if (\n id &&\n projectCalculation.value &&\n projectCalculation.value.Factors &&\n projectCalculation.value.Id &&\n calculation?.value\n ) {\n if (activeCalculation?.value) {\n updateProjectCalculationFactors(id, newFactors);\n await registerChangedFactorsBatchOperation(id, newFactors);\n await setActiveCalculation(activeCalculation.value);\n await buildProjectTotalsForCalculations();\n\n // Updating project totals through updateActiveCalculationWithBatch\n const calcBatch: CalculationBatch = {\n SaveOperations: [],\n InsertOperations: [],\n DeleteOperations: [],\n ChangedFactors: [],\n ProjectTotals: {},\n };\n\n await updateActiveCalculationWithBatch(calcBatch);\n }\n updated = true;\n }\n return updated;\n };\n\n const resetFactors = async (): Promise => {\n const { post } = useApi('/company/factor/reset');\n state.loading = true;\n let success = false;\n\n try {\n const response = await post();\n if (isSuccess(response.status)) {\n await getFactors(true);\n snack('snack.factors-reset', true);\n success = true;\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n\n state.loading = false;\n return success;\n };\n\n const getFactorNameFromId = (factorNr: number) => {\n switch (factorNr) {\n case 1:\n return 'Justering av grunntiden';\n case 2:\n return 'Justering av produksjonslønn';\n case 3:\n return 'Sosiale kostnader';\n case 4:\n return 'Faste kostnader';\n case 5:\n return 'Justering av materialkostnadane';\n case 6:\n return 'Fortjeneste, lønn, sosiale og faste kostnader';\n case 7:\n return 'Fortjeneste, innkjøp (materialer / UE)';\n default:\n return '';\n }\n };\n\n const getFactorUnitFromId = (factorNr: number) => {\n switch (factorNr) {\n case 1:\n return '%';\n case 2:\n return 'kr';\n case 3:\n return '%';\n case 4:\n return '%';\n case 5:\n return '%';\n case 6:\n return '%';\n case 7:\n return '%';\n default:\n return '';\n }\n };\n\n return {\n getFactors,\n filteredFactors,\n resetFactors,\n getFactorNameFromId,\n getFactorUnitFromId,\n updateFactors,\n updateCalculationFactors,\n getProjectFactorItemsFromCompanyFactorByCode,\n ...toRefs(state),\n };\n};\n","import { ApplicationSource } from '@/constants/enum';\nimport {\n AdditionItem,\n AdditionType,\n BuildingElement,\n BuildingItem,\n} from '@/models/building-element/interfaces';\nimport { ProjectContact } from '@/models/contacts/interfaces';\nimport {\n NstEgenskap,\n NstInnholdNSProsjektdata,\n NstPostNSProsjektdata,\n NstProsjektdeltaker,\n NstProsjektNS,\n} from '@/models/standards/ns3459/interfaces';\nimport { ImportedProject, Project } from '@/models/projects/interfaces';\nimport { useFactors } from './factors';\nimport { v4 as uuidv4 } from 'uuid';\nimport {\n ProjectFactor,\n ProjectFactorItem,\n} from '@/models/calculation/interfaces';\nimport { convertUnit } from '@/helpers/common';\n\nexport const useProjectBuilder = () => {\n let _projectContacts: Array = [];\n let _applicationSource: ApplicationSource | undefined = undefined;\n const _supportedProfessionCodes: Array = [];\n const _buildingElements: Array = [];\n const _IdElementsDictionary = new Map();\n\n const convertNumberFromNstEgenskap = (\n properties: Array,\n nameField: string\n ): Nullable => {\n let converted: Nullable = null;\n\n const property = properties.find(e => e.navnField === nameField);\n\n if (property?.verdiField != null) {\n converted = parseFloat(property.verdiField.toString().replace(/,/g, '.'));\n }\n\n return converted;\n };\n\n const convertStringFromNstEgenskap = (\n properties: Array,\n nameField: string\n ): Nullable => {\n let converted: Nullable = null;\n\n const property = properties.find(e => e.navnField === nameField);\n\n if (property?.verdiField != null) {\n converted = property.verdiField;\n }\n\n return converted;\n };\n\n const convertBooleanFromNstEgenskap = (\n properties: Array,\n nameField: string\n ): boolean => {\n let converted = false;\n\n const property = properties.find(e => e.navnField === nameField);\n\n if (\n property?.verdiField != null &&\n property.verdiField.toLowerCase() === 'true'\n ) {\n converted = true;\n }\n\n return converted;\n };\n\n const getApplicationSource = async (\n nsProject: NstProsjektNS\n ): Promise => {\n const kalkIndicator = nsProject.egenskaperField.find(\n e => e.navnField === 'KalkExport'\n );\n if (kalkIndicator) return ApplicationSource.Kalk2010;\n\n const onlineIndicator = nsProject.egenskaperField.find(\n e => e.navnField === 'KalkOnlineExport'\n );\n if (onlineIndicator) return ApplicationSource.KalkOnline;\n\n return ApplicationSource.External;\n };\n\n const getName = (post: NstPostNSProsjektdata): string => {\n let result = '';\n\n if (post.kodeField) result = post.kodeField.tekstField.uformatertField;\n if (post.tekstField) result += post.tekstField.uformatertField;\n\n result.trim();\n\n if (result.length > 1000) result = result.substring(0, 999);\n\n return result;\n };\n\n const getCode = (post: NstPostNSProsjektdata): string => {\n let result = '';\n\n if (post.kodeField) {\n result = post.kodeField.idField;\n }\n return result;\n };\n\n const createFactors = async (\n nsProject: NstProsjektNS,\n project: ImportedProject\n ): Promise => {\n const { getFactorUnitFromId } = useFactors();\n if (!nsProject.egenskaperField || nsProject.egenskaperField.length === 0)\n return;\n if (_applicationSource === ApplicationSource.External) return;\n\n let i: number;\n for (i = 1; i <= 7; i++) {\n const factor: ProjectFactor = {\n Id: uuidv4(),\n FactorItems: [],\n };\n\n factor.FactorNumber = i;\n factor.Unit = getFactorUnitFromId(i);\n factor.ProjectId = project.Project.Id;\n\n project.Factors.push(factor);\n\n const factorItems = nsProject.egenskaperField.filter(e => {\n return e.navnField.substring(0, 7) === `Faktor${i}`;\n });\n\n factorItems.forEach(fi => {\n const item: ProjectFactorItem = {\n Id: uuidv4(),\n };\n\n item.Name = fi.navnField.substring(7, fi.navnField.length);\n item.Value = parseFloat(fi.verdiField.toString().replace(/,/g, '.'));\n item.ProjectFactorId = factor.Id;\n if (factor.FactorItems) {\n factor.FactorItems.push(item);\n }\n });\n\n if (factor.FactorItems) {\n factor.Value = factor.FactorItems?.reduce((prev, cur) => {\n return prev + (cur.Value ?? 0);\n }, 0);\n }\n }\n\n project.Project.ProjectNumber =\n convertStringFromNstEgenskap(\n nsProject.egenskaperField,\n 'ProjectNumber'\n ) ?? undefined;\n project.Project.AddressLine1 =\n convertStringFromNstEgenskap(nsProject.egenskaperField, 'AddressLine1') ??\n undefined;\n project.Project.AddressLine2 =\n convertStringFromNstEgenskap(nsProject.egenskaperField, 'AddressLine2') ??\n undefined;\n project.Project.PostNumber =\n convertStringFromNstEgenskap(nsProject.egenskaperField, 'PostNumber') ??\n undefined;\n project.Project.PostOffice =\n convertStringFromNstEgenskap(nsProject.egenskaperField, 'PostOffice') ??\n undefined;\n project.Project.StreetNumber =\n convertStringFromNstEgenskap(nsProject.egenskaperField, 'StreetNumber') ??\n undefined;\n project.Project.UsageNumber =\n convertStringFromNstEgenskap(nsProject.egenskaperField, 'UsageNumber') ??\n undefined;\n project.Project.LocationNumber =\n convertStringFromNstEgenskap(\n nsProject.egenskaperField,\n 'LocationNumber'\n ) ?? undefined;\n project.Project.HousingNumber =\n convertStringFromNstEgenskap(\n nsProject.egenskaperField,\n 'HousingNumber'\n ) ?? undefined;\n project.Project.SectionNumber =\n convertStringFromNstEgenskap(\n nsProject.egenskaperField,\n 'SectionNumber'\n ) ?? undefined;\n project.Project.PriceInfo =\n convertStringFromNstEgenskap(nsProject.egenskaperField, 'PriceInfo') ??\n undefined;\n project.Project.AdditionalInformation =\n convertStringFromNstEgenskap(\n nsProject.egenskaperField,\n 'AdditionalInformation'\n ) ?? undefined;\n };\n\n const setPrimaryContact = async (nsProject: NstProsjektNS): Promise => {\n if (!nsProject.egenskaperField || nsProject.egenskaperField.length === 0)\n return;\n if (!nsProject.egenskaperField.some(c => c.navnField === 'PrimaryContact'))\n return;\n\n const primaryContact = nsProject.egenskaperField.find(\n e => e.navnField === 'PrimaryContact'\n )?.verdiField;\n\n const contact = _projectContacts.find(pc => {\n primaryContact === `${pc.FirstName} ${pc.LastName}`;\n });\n\n if (contact) {\n contact.IsPrimaryContact = true;\n }\n };\n\n const getFirstName = (nameArray: Array): string => {\n let firstName: string | undefined = '';\n const lArray = nameArray;\n\n if (lArray.length <= 2) {\n firstName = lArray.shift();\n if (firstName) return firstName;\n }\n\n lArray.forEach((name, i) => {\n if (i !== lArray.length - 1) {\n firstName += `${name} `;\n }\n });\n\n const ret = firstName?.trim();\n\n return ret ?? '';\n };\n\n const getLastName = (nameArray: Array): string => {\n if (nameArray.length < 2) return '';\n return nameArray[nameArray.length - 1];\n };\n\n const getContactsFromDeltakere = async (\n deltakere: Array\n ): Promise> => {\n const contacts: Array = [];\n\n try {\n deltakere.forEach(deltaker => {\n const projectContact: ProjectContact = {\n Id: uuidv4(),\n Email: deltaker.personField.epostField,\n Phone: deltaker.personField.telefonField,\n Mobile: deltaker.personField.telefonField,\n AddressLine1: deltaker.personField.gateadresseField,\n AddressLine2: deltaker.personField.postadresseField,\n PostNumber: deltaker.personField.postnrField,\n PostOffice: deltaker.personField.poststedField,\n };\n\n const nameArray = deltaker.personField.navnField.split(' ');\n projectContact.FirstName = getFirstName(nameArray);\n projectContact.LastName = getLastName(nameArray);\n projectContact.CompanyName = deltaker.firmaField.navnField;\n\n contacts.push(projectContact);\n });\n } catch (e) {\n console.log(e);\n }\n\n return contacts;\n };\n\n const buildAdditionItem = (\n element: BuildingElement,\n post: NstPostNSProsjektdata\n ): AdditionItem => {\n const item: AdditionItem = {\n Id: uuidv4(),\n };\n\n item.BuildingElementId = element.Id;\n item.Name = getName(post);\n item.SortOrder =\n item.Name === AdditionType[AdditionType.Flatetillegg] ? 1 : 0;\n\n if (post.prisinfoField) {\n item.Unit = convertUnit(post.prisinfoField.enhetField);\n item.Price = post.prisinfoField.enhetsprisField;\n item.Amount = Number(post.prisinfoField.sumField);\n }\n return item;\n };\n\n const buildBuildingItem = async (\n element: BuildingElement,\n post: NstPostNSProsjektdata\n ): Promise => {\n const buildingItem: BuildingItem = {\n Id: uuidv4(),\n BuildingElementId: element.Id,\n Name: getName(post),\n NS3420: getCode(post),\n };\n\n if (post.prisinfoField) {\n buildingItem.Unit = convertUnit(post.prisinfoField.enhetField);\n buildingItem.UnitForOrder = convertUnit(post.prisinfoField.enhetField);\n buildingItem.Price = post.prisinfoField.enhetsprisField;\n buildingItem.Amount = post.prisinfoField.mengdeField;\n }\n\n if (\n !post.egenskaperField ||\n post.egenskaperField.length === 0 ||\n _applicationSource === ApplicationSource.External\n )\n return buildingItem;\n\n buildingItem.AmountAdjustment = convertNumberFromNstEgenskap(\n post.egenskaperField,\n 'AmountAdjustment'\n );\n buildingItem.AccountNumber = convertNumberFromNstEgenskap(\n post.egenskaperField,\n 'AccountNumber'\n );\n buildingItem.Amount = convertNumberFromNstEgenskap(\n post.egenskaperField,\n 'Amount'\n );\n buildingItem.AmountPrUnit = convertNumberFromNstEgenskap(\n post.egenskaperField,\n 'AmountPrUnit'\n );\n buildingItem.BaseTime = convertNumberFromNstEgenskap(\n post.egenskaperField,\n 'BaseTime'\n );\n buildingItem.Comments = convertStringFromNstEgenskap(\n post.egenskaperField,\n 'Comments'\n );\n buildingItem.DeliveryOrder = convertNumberFromNstEgenskap(\n post.egenskaperField,\n 'DeliveryOrder'\n );\n buildingItem.Factor1 = convertNumberFromNstEgenskap(\n post.egenskaperField,\n 'Factor1'\n );\n buildingItem.Factor5 = convertNumberFromNstEgenskap(\n post.egenskaperField,\n 'Factor5'\n );\n buildingItem.NOBBNumber = convertNumberFromNstEgenskap(\n post.egenskaperField,\n 'NOBBNumber'\n );\n buildingItem.NS3420 = convertStringFromNstEgenskap(\n post.egenskaperField,\n 'NS3420'\n );\n buildingItem.OpeningAddition = convertNumberFromNstEgenskap(\n post.egenskaperField,\n 'OpeningAddition'\n );\n buildingItem.SurfaceAddition = convertNumberFromNstEgenskap(\n post.egenskaperField,\n 'SurfaceAddition'\n );\n buildingItem.TransportationAddition = convertNumberFromNstEgenskap(\n post.egenskaperField,\n 'TransportationAddition'\n );\n buildingItem.Transport = convertNumberFromNstEgenskap(\n post.egenskaperField,\n 'Transport'\n );\n buildingItem.SortOrder = convertNumberFromNstEgenskap(\n post.egenskaperField,\n 'SortOrder'\n );\n buildingItem.UnitForOrder = convertStringFromNstEgenskap(\n post.egenskaperField,\n 'UnitForOrder'\n );\n buildingItem.Price = convertNumberFromNstEgenskap(\n post.egenskaperField,\n 'Price'\n );\n buildingItem.Precut = convertBooleanFromNstEgenskap(\n post.egenskaperField,\n 'Precut'\n );\n buildingItem.PriceListName = convertStringFromNstEgenskap(\n post.egenskaperField,\n 'PriceListName'\n );\n buildingItem.PriceListItemName = convertStringFromNstEgenskap(\n post.egenskaperField,\n 'PriceListItemName'\n );\n buildingItem.TimeEstimateName = convertStringFromNstEgenskap(\n post.egenskaperField,\n 'TimeEstimateName'\n );\n buildingItem.IsFDVExportSelected = convertBooleanFromNstEgenskap(\n post.egenskaperField,\n 'IsFDVExportSelected'\n );\n buildingItem.MileStone = convertStringFromNstEgenskap(\n post.egenskaperField,\n 'MileStone'\n );\n\n return buildingItem;\n };\n\n const buildElement = async (\n post: NstPostNSProsjektdata,\n project: Project,\n ns3450: Nullable,\n ns3451: Nullable\n ): Promise => {\n const element: BuildingElement = {\n Id: uuidv4(),\n Items: [],\n AdditionItems: [],\n Name: post.tekstField.uformatertField ?? null,\n ProjectId: project.Id ?? null,\n ProductionLine: null,\n SortOrder: 0,\n NS3450: ns3450,\n NS3451: ns3451,\n Amount: null,\n Transport: 0,\n Comments: null,\n };\n\n if (!post.egenskaperField || post.egenskaperField.length === 0) {\n return element;\n }\n\n element.Amount = convertNumberFromNstEgenskap(\n post.egenskaperField,\n 'Amount'\n );\n element.Factor1 = convertNumberFromNstEgenskap(\n post.egenskaperField,\n 'Factor1'\n );\n element.Factor5 = convertNumberFromNstEgenskap(\n post.egenskaperField,\n 'Factor5'\n );\n element.ProductionLine = convertStringFromNstEgenskap(\n post.egenskaperField,\n 'ProductionLine'\n );\n element.SortOrder =\n convertNumberFromNstEgenskap(post.egenskaperField, 'SortOrder') ?? 0;\n\n element.Transport =\n convertNumberFromNstEgenskap(post.egenskaperField, 'Transport') ?? 0;\n element.Unit = convertStringFromNstEgenskap(post.egenskaperField, 'Unit');\n\n return element;\n };\n\n const buildKalkProjectData = async (\n projectdata: NstInnholdNSProsjektdata,\n nsProject: NstProsjektNS,\n project: ImportedProject\n ): Promise => {\n if (\n !projectdata ||\n !projectdata.postField ||\n projectdata.postField.length === 0\n )\n return;\n\n // This implementation is based on hierarchic structure of Postnrplan\n\n for (const post of projectdata.postField) {\n const fagId = post.postnrdelerField[0];\n\n const fag = nsProject.postnrplanField.postnrdelKoderField.find(\n plan =>\n plan.kodeField === fagId.kodeField &&\n plan.typeField === fagId.typeField\n );\n\n const ns3451Kode = post.postnrdelerField[1];\n\n if (post.postnrdelerField.length === 2) {\n // Dette er en Kalk2010 import og inneholder postnrdelen kun 2 elementer, er denne posten bygningsdelsdata.\n\n const ns3450 = fag?.kodeField ? fag.kodeField : null;\n const ns3451 = ns3451Kode?.kodeField ? ns3451Kode.kodeField : null;\n\n const buildingElement = await buildElement(\n post,\n project,\n ns3450,\n ns3451\n );\n\n _IdElementsDictionary.set(post.idField, buildingElement);\n project.BuildingElements.push(buildingElement);\n } else {\n // Ellers er det et delprodukt eller tillegg.\n const buildingElement = _IdElementsDictionary.get(post.postnrField);\n\n if (\n post.internKommentarField &&\n post.internKommentarField.uformatertField === 'Tillegg' &&\n buildingElement\n ) {\n const item = buildAdditionItem(buildingElement, post);\n if (!buildingElement.AdditionItems)\n buildingElement.AdditionItems = [];\n buildingElement.AdditionItems.push(item);\n } else if (buildingElement) {\n const item = await buildBuildingItem(buildingElement, post);\n if (!buildingElement.Items) buildingElement.Items = [];\n buildingElement.Items.push(item);\n }\n }\n }\n };\n\n const removeEmptyBuildingElements = () => {\n const elementsWithoutItems = _buildingElements.filter(\n e => !e.Items || e.Items.length === 0\n );\n elementsWithoutItems.forEach(ele => (ele.ProjectId = null));\n };\n\n const buildProjectData = async (projectData: NstInnholdNSProsjektdata) => {\n const filteredPost = projectData.postField.filter(post =>\n _supportedProfessionCodes.includes(post.postnrdelerField[0].kodeField)\n );\n\n for (const post of filteredPost) {\n const ns3451Kode = post.postnrdelerField[1];\n const buildingElement:\n | BuildingElement\n | undefined = _buildingElements.find(\n b => b.NS3451 === ns3451Kode.kodeField\n );\n if (buildingElement) {\n const item = await buildBuildingItem(buildingElement, post);\n if (!buildingElement.Items) buildingElement.Items = [];\n buildingElement.Items.push(item);\n }\n }\n\n removeEmptyBuildingElements();\n };\n\n const createElementsFromPostnrPlan = (\n nsProject: NstProsjektNS,\n project: ImportedProject\n ) => {\n const fagKoder = nsProject.postnrplanField.postnrdelKoderField.filter(p =>\n _supportedProfessionCodes.includes(p.kodeField)\n );\n\n fagKoder.forEach(fag => {\n if (fag.postnrdelKoderField) {\n fag.postnrdelKoderField.forEach(delkode => {\n const element: BuildingElement = {\n Id: uuidv4(),\n Name: delkode.navnField,\n NS3450: fag.kodeField,\n NS3451: delkode.kodeField,\n ProjectId: project.Project.Id ? project.Project.Id : null,\n Items: [],\n AdditionItems: [],\n ProductionLine: null,\n SortOrder: 0,\n Amount: null,\n Transport: 0,\n Comments: null,\n };\n\n _buildingElements.push(element);\n });\n }\n });\n };\n\n const createBuildingElements = async (\n nsProject: NstProsjektNS,\n project: ImportedProject\n ): Promise => {\n const projectItem = nsProject.itemField as NstInnholdNSProsjektdata;\n\n if (\n _applicationSource === ApplicationSource.Kalk2010 ||\n _applicationSource === ApplicationSource.KalkOnline\n ) {\n await buildKalkProjectData(projectItem, nsProject, project);\n return;\n }\n\n createElementsFromPostnrPlan(nsProject, project);\n buildProjectData(projectItem);\n };\n\n const buildProjectFromNST = async (\n project: ImportedProject,\n nsProject: NstProsjektNS\n ): Promise => {\n let success = true;\n try {\n if (project.Project.Profession?.Code) {\n _supportedProfessionCodes.push(project.Project.Profession.Code);\n }\n _applicationSource = await getApplicationSource(nsProject);\n if (nsProject.prosjektdeltakereField) {\n _projectContacts = await getContactsFromDeltakere(\n nsProject.prosjektdeltakereField\n );\n }\n\n await setPrimaryContact(nsProject);\n await createFactors(nsProject, project);\n await createBuildingElements(nsProject, project);\n\n project.ProjectContacts = _projectContacts;\n } catch (e) {\n console.log(e);\n success = false;\n }\n\n return success;\n };\n\n return {\n buildProjectFromNST,\n };\n};\n","export const parseOptimeraFloat = (sPrice: string): number => {\n let num = 0;\n if (sPrice.length < 0) return num;\n let result = '';\n\n const validStrings: Array = [\n '0',\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7',\n '8',\n '9',\n ];\n\n for (let counter = 0; counter < sPrice.length; counter++) {\n let sign = sPrice.substr(counter, 1);\n if (!validStrings.includes(sign)) sign = '0';\n\n result += sign;\n }\n\n num = Number(result.substr(0, result.length - 2));\n num += Number(result.substr(result.length - 2)) / 100;\n\n return num;\n};\n\nexport const parseOptimeraInt = (stringToParse: string): Nullable => {\n const parsed = Number(stringToParse);\n if (Number.isSafeInteger(parsed)) {\n return parsed;\n }\n return null;\n};\n\nexport const isCSVorTXT = (fileName: string) => {\n return (\n fileName.toLowerCase().includes('.txt') ||\n fileName.toLowerCase().includes('.csv') ||\n fileName.toLowerCase().includes('.scv')\n );\n};\n\nexport const isExcel = (fileName: string) => {\n return fileName.toLowerCase().includes('.xlsx');\n};\n","import { CustomError, Profession } from '@/models/common/interfaces';\nimport {\n NstEgenskap,\n NstInnholdNSProsjektdata,\n NstNS3459,\n NstPostnrdel,\n NstPostnrdelKode,\n NstPostnrdelType,\n NstProsjektNS,\n} from '@/models/standards/ns3459/interfaces';\nimport {\n ImportedProject,\n Project,\n ProjectOverview,\n ProjectTotals,\n} from '@/models/projects/interfaces';\nimport { reactive, toRefs } from '@vue/composition-api';\nimport { useProject } from './project';\nimport { v4 as uuidv4 } from 'uuid';\nimport { useProjectBuilder } from './project-builder';\nimport { useSnackbar } from '@/modules/snackbar';\nimport { useErrorModal } from './error';\nimport { useApi } from './api';\nimport { isSuccess } from '@/helpers/common';\nimport xml2js from 'xml2js';\nimport { PriceListVM, Vare, VareKategori } from '@/models/pricebook/interfaces';\nimport { parseOptimeraFloat, parseOptimeraInt } from '@/helpers/parse';\nimport XLSX from 'xlsx';\nimport { BuildingTypeTemplate } from '@/models/library/interfaces';\nimport {\n Calculation,\n ProjectConcurrencyToken,\n} from '@/models/calculation/interfaces';\nimport { useCalculation } from './calculation';\nimport { translate } from '@/localization';\n\ninterface State {\n loading: boolean;\n error?: CustomError;\n}\n\nconst state = reactive({\n loading: false,\n error: undefined,\n});\n\nexport const useImport = () => {\n const { errorModal } = useErrorModal();\n const { snack } = useSnackbar();\n\n const getProfessionCodeFromNstProsjektNS = (\n project: NstProsjektNS\n ): string | undefined => {\n let code: string | undefined = undefined;\n\n if (!project.egenskaperField || project.egenskaperField.length === 0)\n return code;\n\n const professionCode = project.egenskaperField.find(p => {\n return p.navnField === 'ProfessionCode';\n });\n\n if (professionCode) {\n code = professionCode.verdiField;\n }\n\n return code;\n };\n\n const getProfessionFromNstProsjektNS = async (\n project: NstProsjektNS\n ): Promise => {\n const { getProfessions } = useProject();\n\n let profession: Profession | undefined = undefined;\n let code = getProfessionCodeFromNstProsjektNS(project);\n\n if (code) {\n code = code.toString();\n const professions = await getProfessions();\n if (professions) {\n profession = professions.find(p => {\n return p.Code === code;\n });\n }\n }\n return profession;\n };\n\n const setPropertiesFromXML = (nstn: NstNS3459) => {\n interface ParsedEgenskaper {\n egenskapField: Array;\n }\n interface ParsedPostnrDel {\n postnrdelField: Array;\n }\n interface ParsedPostnrdelKoderField {\n postnrdelKodeField: Array;\n }\n interface ParsedPostnrdelTyperField {\n postnrdelTypeField: Array;\n }\n\n interface ParsedProject {\n prosjektNSField: Array;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const iterateDelKode = (obj: Record) => {\n Object.keys(obj).forEach(key => {\n if (typeof obj[key] === 'object' && obj[key] !== null) {\n if (key === 'postnrdelKoderField') {\n if (typeof obj[key]['postnrdelKodeField'] === 'object') {\n obj[key] = [obj[key]['postnrdelKodeField']];\n } else {\n obj[key] = obj[key]['postnrdelKodeField'];\n }\n }\n iterateDelKode(obj[key]);\n }\n });\n };\n\n try {\n let projects: Array = [];\n if (!Array.isArray(nstn.prosjekterField.prosjektNSField)) {\n const project = (nstn.prosjekterField\n .prosjektNSField as unknown) as NstProsjektNS;\n projects.push(project);\n nstn.prosjekterField.prosjektNSField = projects;\n projects = nstn.prosjekterField.prosjektNSField;\n } else {\n projects = nstn.prosjekterField.prosjektNSField;\n }\n\n projects.forEach(proj => {\n const projectProperties = (proj.egenskaperField as unknown) as ParsedEgenskaper;\n const projectProjData = proj.itemField as NstInnholdNSProsjektdata;\n\n if (projectProjData) {\n projectProjData.postField.forEach(post => {\n const postProperties = (post.egenskaperField as unknown) as ParsedEgenskaper;\n const postPart = (post.postnrdelerField as unknown) as ParsedPostnrDel;\n\n post.postnrdelerField = postPart?.postnrdelField\n ? postPart.postnrdelField\n : [];\n post.egenskaperField = postProperties?.egenskapField\n ? postProperties.egenskapField\n : [];\n });\n }\n proj.egenskaperField = projectProperties?.egenskapField\n ? projectProperties.egenskapField\n : [];\n\n if (proj.postnrplanField) {\n const delKoder = (proj.postnrplanField\n .postnrdelKoderField as unknown) as ParsedPostnrdelKoderField;\n const delTyper = (proj.postnrplanField\n .postnrdelTyperField as unknown) as ParsedPostnrdelTyperField;\n\n proj.postnrplanField.postnrdelKoderField = delKoder?.postnrdelKodeField\n ? delKoder.postnrdelKodeField\n : [];\n proj.postnrplanField.postnrdelTyperField = delTyper?.postnrdelTypeField\n ? delTyper.postnrdelTypeField\n : [];\n\n if (\n proj.postnrplanField.postnrdelKoderField &&\n proj.postnrplanField.postnrdelKoderField.length > 0\n ) {\n proj.postnrplanField.postnrdelKoderField.forEach(postNrDelKode => {\n iterateDelKode(postNrDelKode);\n });\n }\n }\n });\n } catch (e) {\n console.log(e);\n }\n };\n\n const xmlToNstNS3459 = async (\n xml: string\n ): Promise => {\n let project: NstNS3459 | undefined = undefined;\n\n const itemObjectList = [\n 'avregning',\n 'prisforesporsel',\n 'pristilbud',\n 'prosjektdata',\n ];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const parseNumbers = (name: any) => {\n if (!isNaN(name) && name.charAt(0) !== '0') {\n name = name % 1 === 0 ? parseInt(name, 10) : parseFloat(name);\n }\n return name;\n };\n\n project = (await xml2js.parseStringPromise(xml, {\n explicitArray: false,\n explicitRoot: false,\n emptyTag: null,\n ignoreAttrs: true,\n tagNameProcessors: [\n xml2js.processors.firstCharLowerCase,\n name => {\n let altName = `${name}Field`;\n if (itemObjectList.includes(name)) {\n altName = 'itemField';\n }\n if (altName === 'iDField') {\n altName = 'idField';\n }\n return altName;\n },\n ],\n valueProcessors: [parseNumbers],\n })) as NstNS3459;\n\n setPropertiesFromXML(project);\n\n return project;\n };\n\n const parseProjectFile = async (\n uploadedFile: File\n ): Promise => {\n let project: NstNS3459 | undefined = undefined;\n\n try {\n const data = await new Response(uploadedFile).text();\n if (uploadedFile.type.includes('xml')) {\n project = await xmlToNstNS3459(data);\n } else {\n project = JSON.parse(data) as NstNS3459;\n }\n if (project) {\n if (!project.prosjekterField) {\n snack('snack.file-read-error', false);\n }\n if (!project.genereltField) {\n snack('snack.file-read-error', false);\n }\n } else {\n snack('snack.file-read-error', false);\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n\n return project;\n };\n\n const parsePriceListCSV = async (\n file: File\n ): Promise => {\n return new Promise(resolve => {\n try {\n const reader = new FileReader();\n let content: string;\n reader.onloadend = evt => {\n try {\n if (evt.target && evt.target.readyState == FileReader.DONE) {\n content = reader.result as string;\n if (content) {\n const lines = content.split(/\\r\\n|\\n/);\n\n const categories = new Map();\n\n for (const line of lines) {\n const lineValues = line.split(';');\n if (!lineValues || lineValues.length < 17) continue;\n\n const groupKey =\n lineValues[0].trim() != null\n ? lineValues[0].trim()\n : lineValues[3].trim();\n\n if (!categories.has(groupKey)) {\n const category: VareKategori = {\n Number: groupKey,\n Text: lineValues[3].trim(),\n Varer: [],\n };\n\n categories.set(groupKey, category);\n }\n\n const category = categories.get(groupKey);\n\n const product: Vare = {\n EAN13ItemNumber: lineValues[1].trim(),\n ItemNumber: lineValues[2].trim(),\n ItemText: lineValues[4].trim(),\n BasePrice: parseOptimeraFloat(lineValues[5].trim()),\n RecommendedPrice: parseOptimeraFloat(lineValues[6].trim()),\n UnitDesc: lineValues[7].trim(),\n ItemText2: lineValues[9].trim(),\n PackageUnitDesc: lineValues[10].trim(),\n ItemsInPackage: lineValues[11].trim(),\n BuyingPrice: parseOptimeraFloat(lineValues[12].trim()),\n Discount: parseOptimeraFloat(lineValues[13].trim()),\n ItemNumberNOBB: parseOptimeraInt(lineValues[14].trim()),\n ItemOwnerNumber: lineValues[15].trim(),\n ModuleNumber: lineValues[16].trim(),\n };\n\n category?.Varer.push(product);\n }\n\n const result: PriceListVM = {\n Categories: Array.from(categories.values()),\n Name: file.name.replace(/\\.[^/.]+$/, ''),\n ProductCount: lines.length - 1,\n };\n\n resolve(result);\n }\n }\n } catch (e) {\n console.log(e);\n snack('snack.file-read-error', false);\n resolve(undefined);\n }\n };\n reader.onerror = ex => {\n console.log(ex);\n snack('snack.file-read-error', false);\n resolve(undefined);\n };\n reader.readAsText(file, 'ISO-8859-1');\n } catch (e) {\n console.log(e);\n resolve(undefined);\n }\n });\n };\n\n const parsePriceListExcel = async (\n file: File\n ): Promise => {\n const getTrimmedExcelStringValue = (\n excelValue: string | null | undefined | number\n ): Nullable => {\n let value = '';\n\n if (excelValue != null) {\n value = excelValue.toString();\n } else {\n return null;\n }\n\n return value.trim();\n };\n\n const parseAsStringOrReturnNumber = (\n excelValue: string | null | undefined | number\n ): Nullable => {\n if (excelValue != null) {\n if (typeof excelValue == 'number' && !isNaN(excelValue)) {\n return Number(excelValue);\n } else {\n return parseOptimeraFloat(excelValue.toString());\n }\n } else {\n return null;\n }\n };\n\n return new Promise(resolve => {\n try {\n const reader = new FileReader();\n let content: string;\n reader.onloadend = evt => {\n try {\n if (evt.target && evt.target.readyState == FileReader.DONE) {\n content = reader.result as string;\n if (content) {\n const ab: ArrayBufferLike | null | string = evt.target.result;\n if (ab) {\n const abt: ArrayBufferLike = ab as ArrayBufferLike;\n const wb = XLSX.read(new Uint8Array(abt), { type: 'array' });\n /* Get first worksheet */\n const wsname = wb.SheetNames[0];\n const ws = wb.Sheets[wsname];\n /* Convert array of arrays */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const rows: Array = XLSX.utils.sheet_to_json(ws, {\n header: 1,\n });\n\n const categories = new Map();\n\n rows.shift();\n\n for (const row of rows) {\n if (!row) continue;\n\n const groupKey =\n getTrimmedExcelStringValue(row[0]) != null\n ? getTrimmedExcelStringValue(row[0])\n : getTrimmedExcelStringValue(row[3]);\n\n if (!groupKey) continue;\n\n if (!categories.has(groupKey)) {\n const category: VareKategori = {\n Number: groupKey,\n Text: row[3].toString().trim(),\n Varer: [],\n };\n\n categories.set(groupKey, category);\n }\n\n const category = categories.get(groupKey);\n\n const product: Vare = {\n EAN13ItemNumber: getTrimmedExcelStringValue(row[1]),\n ItemNumber: getTrimmedExcelStringValue(row[2]),\n ItemText: getTrimmedExcelStringValue(row[4]),\n BasePrice: parseAsStringOrReturnNumber(row[5]),\n RecommendedPrice: parseAsStringOrReturnNumber(row[6]),\n UnitDesc: getTrimmedExcelStringValue(row[7]),\n ItemText2: getTrimmedExcelStringValue(row[9]),\n PackageUnitDesc: getTrimmedExcelStringValue(row[10]),\n ItemsInPackage: getTrimmedExcelStringValue(row[11]),\n BuyingPrice: parseAsStringOrReturnNumber(row[12]),\n Discount: row[13]\n ? parseOptimeraFloat(row[13].toString().trim())\n : null,\n ItemNumberNOBB: row[14]\n ? parseOptimeraInt(row[14].toString().trim())\n : null,\n ItemOwnerNumber: getTrimmedExcelStringValue(row[15]),\n ModuleNumber: getTrimmedExcelStringValue(row[16]),\n };\n\n category?.Varer.push(product);\n }\n\n const result: PriceListVM = {\n Categories: Array.from(categories.values()),\n Name: file.name.replace(/\\.[^/.]+$/, ''),\n ProductCount:\n rows.length > 1 ? rows.length - 1 : rows.length,\n };\n resolve(result);\n }\n }\n }\n } catch (e) {\n console.log(e);\n snack('snack.file-read-error', false);\n resolve(undefined);\n }\n };\n reader.onerror = ex => {\n console.log(ex);\n snack('snack.file-read-error', false);\n resolve(undefined);\n };\n reader.readAsArrayBuffer(file);\n } catch (e) {\n console.log(e);\n resolve(undefined);\n }\n });\n };\n\n const importLibrary = async (\n xml: string\n ): Promise => {\n let response: Record = {};\n let library: BuildingTypeTemplate | undefined = undefined;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const parseNumbers = (name: any) => {\n if (!isNaN(name) && name.charAt(0) !== '0') {\n name = name % 1 === 0 ? parseInt(name, 10) : parseFloat(name);\n }\n return name;\n };\n\n response = (await xml2js.parseStringPromise(xml, {\n explicitArray: false,\n ignoreAttrs: true,\n emptyTag: null,\n valueProcessors: [parseNumbers, xml2js.processors.parseBooleans],\n })) as Record;\n\n if (response.BuildingTypeTemplate) {\n library = response.BuildingTypeTemplate;\n }\n\n return library;\n };\n\n const importLibraryFromFile = async (\n uploadedFile: File\n ): Promise => {\n let library: BuildingTypeTemplate | undefined = undefined;\n try {\n const data = await new Response(uploadedFile).text();\n if (uploadedFile.type.includes('xml')) {\n library = await importLibrary(data);\n } else {\n const deserialized = JSON.parse(data) as {\n BuildingTypeTemplate: BuildingTypeTemplate;\n };\n library = deserialized.BuildingTypeTemplate;\n }\n if (library) {\n if (!library.GlobalKey || !library.ProfessionCode) {\n snack('snack.file-read-error', false);\n }\n } else {\n snack('snack.file-read-error', false);\n }\n } catch (e) {\n console.log(e);\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n return library;\n };\n\n const validatePriceListFile = async (\n uploadedFile: File\n ): Promise => {\n let valid = false;\n\n if (\n uploadedFile.name.toLowerCase().includes('.csv') ||\n uploadedFile.name.toLowerCase().includes('.xlsx') ||\n uploadedFile.name.toLowerCase().includes('.txt')\n ) {\n valid = true;\n }\n return valid;\n };\n\n const createTotals = async (\n impProj: ImportedProject\n ): Promise => {\n const { buildProjectCalculation, recalculateTotals } = useCalculation();\n\n let totals: ProjectTotals = {\n AmountControl: 0,\n Hours: 0,\n MaterialsSubContractors: 0,\n MaterialsUE: 0,\n Profit: 0,\n SelfCost: 0,\n SelfCostMaterialsSubContractors: 0,\n Total: 0,\n };\n\n if (impProj.BuildingElements && impProj.BuildingElements.length === 0) {\n return totals;\n }\n\n const token: ProjectConcurrencyToken = {\n Token: uuidv4(),\n };\n\n const calculation: Calculation = {\n BuildingElements: impProj.BuildingElements,\n Factors: impProj.Factors,\n AmountControl: null,\n Id: impProj.Project.Id ?? '',\n ConcurrencyToken: token,\n CostSoFar: null,\n Hours: null,\n IsLocked: false,\n MaterialsSubContractors: null,\n MaterialsUE: null,\n Name: impProj.Project.Name ?? '',\n Profession: impProj.Project.Profession,\n Profit: null,\n SelfCost: null,\n SelfCostMaterialsSubContractors: null,\n Total: null,\n };\n\n const projCalc = await buildProjectCalculation(calculation);\n\n if (projCalc != null) {\n totals = recalculateTotals(projCalc);\n }\n\n return totals;\n };\n\n const removeAmounts = (importProj: ImportedProject) => {\n importProj.BuildingElements.forEach(ele => {\n ele.Amount = null;\n\n ele.AdditionItems.forEach(add => {\n add.Amount = 0;\n });\n\n ele.Items.forEach(item => {\n item.Amount = null;\n });\n });\n };\n\n const createImportProject = async (\n nsProject: NstNS3459,\n parent?: ProjectOverview,\n projectName?: string,\n includeAmount?: boolean\n ): Promise => {\n state.loading = true;\n\n if (!nsProject.prosjekterField) return undefined;\n const nstMain = nsProject.prosjekterField.prosjektNSField[0];\n const profession = await getProfessionFromNstProsjektNS(nstMain);\n const { getNewProjectNumber } = useProject();\n\n if (!profession) {\n errorModal(undefined, {\n message: `${translate('errors.message-no-prof')}`,\n title: `${translate('errors.title-no-prof')}`,\n });\n return;\n }\n\n const mainProject: Project = {\n Id: uuidv4(),\n Profession: profession,\n ParentId: parent && parent.Id,\n };\n\n const payload: ImportedProject = {\n Project: mainProject,\n BuildingElements: [],\n Children: [],\n Factors: [],\n ProjectContacts: [],\n Profession: profession,\n ProjectTotals: {},\n };\n\n mainProject.Name = projectName ?? nstMain.navnField;\n mainProject.Description = nstMain.beskrivelseField;\n\n const { buildProjectFromNST } = useProjectBuilder();\n\n const buildSuccess = await buildProjectFromNST(payload, nstMain);\n\n if (buildSuccess && parent) {\n const calculationNumber = await getNewProjectNumber(parent.Id);\n\n payload.BuildingElements = payload.BuildingElements.sort((a, b) =>\n (a.SortOrder ?? 0) > (b.SortOrder ?? 0)\n ? 1\n : (b.SortOrder ?? 0) > (a.SortOrder ?? 0)\n ? -1\n : 0\n );\n\n payload.BuildingElements.forEach((ele, index) => {\n ele.SortOrder = index;\n });\n\n payload.BuildingElements.forEach(element => {\n element.Items = element.Items.sort((a, b) =>\n (a.SortOrder ?? 0) > (b.SortOrder ?? 0)\n ? 1\n : (b.SortOrder ?? 0) > (a.SortOrder ?? 0)\n ? -1\n : 0\n );\n\n element.Items.forEach((item, index) => {\n item.SortOrder = index;\n });\n\n element.AdditionItems = element.AdditionItems.sort((a, b) =>\n (a.SortOrder ?? 0) > (b.SortOrder ?? 0)\n ? 1\n : (b.SortOrder ?? 0) > (a.SortOrder ?? 0)\n ? -1\n : 0\n );\n\n element.AdditionItems.forEach((addition, index) => {\n addition.SortOrder = index;\n });\n });\n\n if (includeAmount != null && includeAmount === false) {\n removeAmounts(payload);\n }\n\n payload.ProjectTotals = await createTotals(payload);\n\n payload.Project.ProjectNumber = calculationNumber;\n return payload;\n } else if (buildSuccess) {\n nsProject.prosjekterField.prosjektNSField.shift();\n\n for (const calc of nsProject.prosjekterField.prosjektNSField) {\n let calcProfession = await getProfessionFromNstProsjektNS(calc);\n\n if (!calcProfession) calcProfession = profession;\n\n const newCalculation: Project = {\n Name: calc.navnField,\n Id: uuidv4(),\n Profession: calcProfession,\n Description: calc.beskrivelseField,\n ParentId: mainProject.Id,\n StreetNumber: mainProject.StreetNumber,\n UsageNumber: mainProject.UsageNumber,\n SectionNumber: mainProject.SectionNumber,\n LocationNumber: mainProject.LocationNumber,\n HousingNumber: mainProject.HousingNumber,\n AddressLine1: mainProject.AddressLine1,\n AddressLine2: mainProject.AddressLine2,\n PostNumber: mainProject.PostNumber,\n PostOffice: mainProject.PostOffice,\n };\n\n const calculationImport: ImportedProject = {\n Project: newCalculation,\n BuildingElements: [],\n Children: [],\n Factors: [],\n ProjectContacts: [],\n Profession: calcProfession,\n ProjectTotals: {},\n };\n\n const { buildProjectFromNST } = useProjectBuilder();\n const calcBuildSuccess = await buildProjectFromNST(\n calculationImport,\n calc\n );\n\n if (calcBuildSuccess) {\n calculationImport.ProjectTotals = await createTotals(\n calculationImport\n );\n mainProject.Children?.push(newCalculation);\n payload.Children.push(calculationImport);\n }\n }\n payload.ProjectTotals = await createTotals(payload);\n\n payload.Project.ProjectNumber = await getNewProjectNumber();\n\n payload.BuildingElements = payload.BuildingElements.sort((a, b) =>\n (a.SortOrder ?? 0) > (b.SortOrder ?? 0)\n ? 1\n : (b.SortOrder ?? 0) > (a.SortOrder ?? 0)\n ? -1\n : 0\n );\n\n payload.BuildingElements.forEach((ele, index) => {\n ele.SortOrder = index;\n });\n\n payload.BuildingElements.forEach(element => {\n element.Items = element.Items.sort((a, b) =>\n (a.SortOrder ?? 0) > (b.SortOrder ?? 0)\n ? 1\n : (b.SortOrder ?? 0) > (a.SortOrder ?? 0)\n ? -1\n : 0\n );\n\n element.Items.forEach((item, index) => {\n item.SortOrder = index;\n });\n\n element.AdditionItems = element.AdditionItems.sort((a, b) =>\n (a.SortOrder ?? 0) > (b.SortOrder ?? 0)\n ? 1\n : (b.SortOrder ?? 0) > (a.SortOrder ?? 0)\n ? -1\n : 0\n );\n\n element.AdditionItems.forEach((addition, index) => {\n addition.SortOrder = index;\n });\n });\n\n if (includeAmount != null && includeAmount === false) {\n removeAmounts(payload);\n }\n\n return payload;\n }\n };\n\n const importProject = async (project: ImportedProject): Promise => {\n const { post } = useApi('/importproject');\n let success = false;\n state.loading = true;\n\n try {\n const response = await post(project);\n if (isSuccess(response.status)) {\n success = true;\n snack('snack.import-success', true);\n }\n } catch (e) {\n console.log(e);\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n state.loading = false;\n return success;\n };\n\n return {\n importProject,\n createImportProject,\n parseProjectFile,\n validatePriceListFile,\n importLibraryFromFile,\n parsePriceListCSV,\n parsePriceListExcel,\n ...toRefs(state),\n };\n};\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { ExportType } from '@/constants/enum';\nimport { ProjectOverview } from '@/models/projects/interfaces';\nimport { useExport } from '@/modules/export';\nimport { useImport } from '@/modules/import';\nimport { useProject } from '@/modules/project';\nimport {\n ref,\n defineComponent,\n PropType,\n onMounted,\n} from '@vue/composition-api';\nimport DialogTitle from '@/components/common/dialog-title/index.vue';\nimport { translate } from '@/localization';\nimport { useCalculation } from '@/modules/calculation';\nimport router from '@/router';\nimport { PROJECT_CALCULATION_PATH } from '@/constants/routes';\n\nexport default defineComponent({\n components: {\n DialogTitle,\n },\n props: {\n calculation: {\n type: Object as PropType,\n required: true,\n },\n isMenuitem: {\n type: Boolean,\n },\n },\n setup({ calculation }) {\n const { getProjects } = useProject();\n const dialog = ref(false);\n const loading = ref(false);\n const selectedProject = ref>(null);\n const availableProjects = ref>([]);\n const newName = ref(calculation.Name);\n const includeAmount = ref(true);\n const navigateToCalc = ref(true);\n\n onMounted(async () => {\n const existingProjects = await getProjects();\n if (existingProjects) {\n availableProjects.value = existingProjects.filter(\n p => p.Id !== calculation.ParentId\n );\n }\n });\n\n const close = () => {\n dialog.value = false;\n selectedProject.value = null;\n includeAmount.value = true;\n newName.value = calculation.Name;\n };\n\n const copyEvent = async () => {\n const { exportProject } = useExport();\n const { createImportProject, importProject } = useImport();\n const {\n refreshActiveProject,\n setActiveProject,\n projects,\n activeProjectOverview,\n } = useProject();\n const { setActiveCalculation } = useCalculation();\n\n if (!selectedProject.value || !projects?.value || !calculation.Id) return;\n loading.value = true;\n\n const nsProject = await exportProject(\n calculation.Id,\n false,\n ExportType.JSON\n );\n\n if (nsProject) {\n const parent = projects.value.find(p => p.Id === selectedProject.value);\n if (parent && nsProject) {\n const newImport = await createImportProject(\n nsProject,\n parent,\n newName.value,\n includeAmount.value\n );\n\n if (newImport) {\n const success = await importProject(newImport);\n if (success) {\n await getProjects(true);\n if (navigateToCalc.value && projects.value) {\n const newActiveProj = projects.value.find(proj =>\n proj.Children.some(calc => calc.Id === newImport.Project.Id)\n );\n\n if (\n newActiveProj &&\n activeProjectOverview.value &&\n newActiveProj.Id === activeProjectOverview.value.Id\n ) {\n close();\n await refreshActiveProject();\n } else if (newActiveProj?.Id) {\n await setActiveProject(newActiveProj.Id, false);\n }\n\n if (newActiveProj) {\n const calc = newActiveProj.Children.find(\n calc => calc.Id === newImport.Project.Id\n );\n if (calc) {\n await setActiveCalculation(calc);\n await router.push(PROJECT_CALCULATION_PATH);\n }\n }\n } else {\n await refreshActiveProject();\n }\n }\n }\n }\n }\n\n loading.value = false;\n };\n\n return {\n copyEvent,\n close,\n dialog,\n loading,\n selectedProject,\n availableProjects,\n includeAmount,\n newName,\n navigateToCalc,\n rules: {\n required: (v: string) => !!v || `${translate('validation.required')}`,\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=b1d0b24e&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCheckbox,VCol,VContainer,VDialog,VIcon,VListItem,VListItemIcon,VListItemTitle,VRow,VSelect,VSpacer,VTextField})\n","import { translate } from '@/localization';\nimport { DataTableHeader } from '@/models/common/interfaces';\n\nexport const BUILDING_ELEMENT_HEADERS_CALCULATION: Array = [\n {\n text: '',\n value: 'sort-drag',\n class: 'header-cell',\n width: '1%',\n sortable: false,\n align: 'center',\n cellClass: 'cell-color-medium',\n },\n {\n text: '',\n value: 'palette',\n class: 'header-cell',\n width: '1%',\n sortable: false,\n align: 'center',\n cellClass: 'cell-color-medium',\n },\n {\n text: 'DeliveryOrder',\n value: 'DeliveryOrder',\n align: 'center',\n class: 'header-cell',\n width: '5%',\n sortable: false,\n cellClass: 'cell-color-medium',\n },\n {\n text: 'Name',\n value: 'Name',\n class: 'header-cell',\n width: '15%',\n sortable: false,\n cellClass: 'cell-color',\n },\n {\n text: '',\n value: 'Precut',\n class: 'header-cell',\n width: '1%',\n sortable: false,\n align: 'center',\n cellClass: 'cell-color-medium',\n },\n {\n text: '',\n value: 'warnings',\n class: 'header-cell',\n width: '2%',\n sortable: false,\n cellClass: 'cell-color',\n },\n {\n text: '',\n value: 'Status',\n class: 'header-cell',\n width: '5%',\n align: 'end',\n sortable: false,\n cellClass: 'cell-color-medium',\n },\n {\n text: 'BaseTime',\n value: 'BaseTime',\n class: 'header-cell',\n width: '7%',\n align: 'end',\n sortable: false,\n cellClass: 'cell-color-medium',\n },\n {\n text: 'SumTime',\n value: 'SumTime',\n class: 'header-cell',\n width: '5%',\n align: 'center',\n sortable: false,\n cellClass: 'cell-color-medium',\n },\n {\n text: 'Unit',\n value: 'Unit',\n class: 'header-cell',\n width: '5%',\n align: 'center',\n sortable: false,\n cellClass: 'cell-color-medium',\n },\n {\n text: 'Amount',\n value: 'Amount',\n class: 'header-cell',\n width: '5%',\n align: 'center',\n sortable: false,\n cellClass: 'cell-color-medium',\n },\n {\n text: 'AmountAdjustment',\n value: 'AmountAdjustment',\n class: 'header-cell',\n width: '5%',\n align: 'center',\n sortable: false,\n cellClass: 'cell-color-medium',\n },\n {\n text: 'AmountPrUnit',\n value: 'AmountPrUnit',\n class: 'header-cell',\n width: '5%',\n align: 'center',\n sortable: false,\n cellClass: 'cell-color-medium',\n },\n {\n text: 'UnitForOrder',\n value: 'UnitForOrder',\n class: 'header-cell',\n width: '5%',\n align: 'center',\n sortable: false,\n cellClass: 'cell-color-medium',\n },\n {\n text: 'Price',\n value: 'Price',\n class: 'header-cell',\n width: '5%',\n align: 'end',\n sortable: false,\n cellClass: 'cell-color-medium',\n },\n {\n text: 'AmountOfMaterials',\n value: 'AmountOfMaterials',\n width: '5%',\n class: 'header-cell',\n cellClass: 'cell-color-medium',\n align: 'end',\n sortable: false,\n },\n {\n text: 'UnitPriceWithAdditions',\n value: 'UnitPriceWithAdditions',\n class: 'header-cell',\n width: '5%',\n align: 'end',\n sortable: false,\n cellClass: 'cell-color-medium',\n },\n {\n text: 'SumTotalWithAdditions',\n value: 'SumTotalWithAdditions',\n class: 'header-cell',\n width: '5%',\n align: 'end',\n sortable: false,\n cellClass: 'cell-color-medium',\n },\n {\n text: '',\n value: 'Comments',\n class: 'header-cell',\n width: '2%',\n align: 'center',\n sortable: false,\n cellClass: 'cell-color-small',\n },\n {\n text: '',\n value: 'Actions',\n class: 'header-cell',\n width: '2%',\n align: 'center',\n sortable: false,\n cellClass: 'cell-color-small',\n },\n];\n\nexport const BUILDING_ELEMENT_HEADERS_HOURLY_CONSUMPTION: Array = [\n {\n text: '',\n value: 'sort-drag',\n class: 'header-cell',\n width: '1%',\n sortable: false,\n cellClass: 'cell-color-medium',\n },\n {\n text: 'Name',\n value: 'Name',\n width: '15%',\n class: 'header-cell',\n cellClass: 'cell-color',\n sortable: false,\n },\n {\n text: '',\n value: 'Precut',\n class: 'header-cell',\n width: '1%',\n sortable: false,\n align: 'center',\n cellClass: 'cell-color-medium',\n },\n {\n text: 'MileStone',\n value: 'MileStone',\n width: '5%',\n class: 'header-cell',\n cellClass: 'cell-color-small',\n sortable: false,\n },\n {\n text: 'BaseTime',\n value: 'BaseTime',\n class: 'header-cell',\n width: '5%',\n cellClass: 'cell-color-medium',\n align: 'end',\n sortable: false,\n },\n\n {\n text: 'OpeningAddition',\n value: 'OpeningAddition',\n class: 'header-cell',\n width: '5%',\n cellClass: 'cell-color-medium',\n align: 'end',\n sortable: false,\n },\n {\n text: 'SurfaceAddition',\n value: 'SurfaceAddition',\n class: 'header-cell',\n width: '5%',\n cellClass: 'cell-color-medium',\n align: 'end',\n sortable: false,\n },\n {\n text: 'Factor1',\n value: 'Factor1',\n class: 'header-cell',\n width: '5%',\n cellClass: 'cell-color-medium',\n align: 'end',\n sortable: false,\n },\n {\n text: 'TimePrUnit',\n value: 'TimePrUnit',\n class: 'header-cell',\n width: '5%',\n cellClass: 'cell-color-medium',\n align: 'end',\n sortable: false,\n },\n {\n text: 'SumTime',\n value: 'SumTime',\n class: 'header-cell',\n width: '5%',\n cellClass: 'cell-color-medium',\n align: 'end',\n sortable: false,\n },\n {\n text: 'Unit',\n value: 'Unit',\n class: 'header-cell',\n width: '5%',\n cellClass: 'cell-color-medium',\n align: 'center',\n sortable: false,\n },\n {\n text: 'Amount',\n value: 'Amount',\n class: 'header-cell',\n width: '5%',\n cellClass: 'cell-color-medium',\n align: 'center',\n sortable: false,\n },\n {\n text: '',\n value: 'Actions',\n class: 'header-cell',\n width: '2%',\n align: 'center',\n sortable: false,\n cellClass: 'cell-color-medium',\n },\n];\n\nexport const BUILDING_ELEMENT_HEADERS_ECONOMY: Array = [\n {\n text: '',\n value: 'sort-drag',\n class: 'header-cell',\n width: '1%',\n sortable: false,\n cellClass: 'cell-color-medium',\n },\n {\n text: 'SumTime',\n value: 'SumTime',\n width: '5%',\n class: 'header-cell',\n cellClass: 'cell-color-medium',\n align: 'end',\n sortable: false,\n },\n {\n text: 'SumProductionSalary',\n value: 'SumProductionSalary',\n width: '5%',\n class: 'header-cell',\n cellClass: 'cell-color-medium',\n align: 'end',\n sortable: false,\n },\n {\n text: 'SumSalaryAndSocialCost',\n value: 'SumSalaryAndSocialCost',\n width: '5%',\n class: 'header-cell',\n cellClass: 'cell-color-medium',\n align: 'end',\n sortable: false,\n },\n {\n text: 'Name',\n value: 'Name',\n width: '15%',\n class: 'header-cell',\n cellClass: 'cell-color',\n sortable: false,\n },\n {\n text: '',\n value: 'Precut',\n class: 'header-cell',\n width: '1%',\n sortable: false,\n align: 'center',\n cellClass: 'cell-color-medium',\n },\n {\n text: 'Amount',\n value: 'Amount',\n width: '7%',\n class: 'header-cell',\n cellClass: 'cell-color-medium',\n align: 'center',\n sortable: false,\n },\n {\n text: 'UnitForOrder',\n value: 'UnitForOrder',\n width: '6%',\n class: 'header-cell',\n cellClass: 'cell-color-medium',\n align: 'center',\n sortable: false,\n },\n {\n text: 'SumSelfCostMaterialsSubContractors',\n value: 'SumSelfCostMaterialsSubContractors',\n width: '6%',\n class: 'header-cell',\n cellClass: 'cell-color-medium',\n align: 'end',\n sortable: false,\n },\n {\n text: 'ProjectCost',\n value: 'ProjectCost',\n width: '6%',\n class: 'header-cell',\n cellClass: 'cell-color-medium',\n align: 'end',\n sortable: false,\n },\n {\n text: 'Factor4',\n value: 'Factor4',\n width: '7%',\n class: 'header-cell',\n cellClass: 'cell-color-medium',\n align: 'end',\n sortable: false,\n },\n {\n text: 'Factor6',\n value: 'Factor6',\n width: '7%',\n class: 'header-cell',\n cellClass: 'cell-color-medium',\n align: 'end',\n sortable: false,\n },\n {\n text: 'Factor7',\n value: 'Factor7',\n width: '7%',\n class: 'header-cell',\n cellClass: 'cell-color-medium',\n align: 'end',\n sortable: false,\n },\n {\n text: 'SumMargin',\n value: 'SumMargin',\n width: '7%',\n class: 'header-cell',\n cellClass: 'cell-color-medium',\n align: 'end',\n sortable: false,\n },\n {\n text: 'SumTotalWithAdditions',\n value: 'SumTotalWithAdditions',\n width: '7%',\n class: 'header-cell',\n cellClass: 'cell-color-medium',\n align: 'end',\n sortable: false,\n },\n {\n text: '',\n value: 'Comments',\n class: 'header-cell',\n width: '2%',\n align: 'center',\n sortable: false,\n cellClass: 'cell-color-medium',\n },\n {\n text: '',\n value: 'Actions',\n class: 'header-cell',\n width: '2%',\n align: 'center',\n sortable: false,\n cellClass: 'cell-color-medium',\n },\n];\n\nexport const BUILDING_ELEMENT_HEADERS_MATERIALS: Array = [\n {\n text: '',\n value: 'sort-drag',\n class: 'header-cell',\n width: '1%',\n sortable: false,\n cellClass: 'cell-color-medium',\n },\n {\n text: 'DeliveryOrder',\n value: 'DeliveryOrder',\n width: '6%',\n class: 'header-cell',\n cellClass: 'cell-color-medium',\n align: 'center',\n sortable: false,\n },\n {\n text: 'Name',\n value: 'Name',\n width: '15%',\n class: 'header-cell',\n cellClass: 'cell-color',\n sortable: false,\n },\n {\n text: '',\n value: 'Precut',\n class: 'header-cell',\n width: '1%',\n sortable: false,\n align: 'center',\n cellClass: 'cell-color-medium',\n },\n {\n text: 'NOBBNumber',\n value: 'NOBBNumber',\n width: '6%',\n class: 'header-cell',\n cellClass: 'cell-color-medium',\n align: 'end',\n sortable: false,\n },\n {\n text: 'Unit',\n value: 'Unit',\n width: '6%',\n class: 'header-cell',\n cellClass: 'cell-color-medium',\n align: 'center',\n sortable: false,\n },\n {\n text: 'Amount',\n value: 'Amount',\n width: '6%',\n class: 'header-cell',\n cellClass: 'cell-color-medium',\n align: 'center',\n sortable: false,\n },\n {\n text: 'AmountAdjustment',\n value: 'AmountAdjustment',\n width: '6%',\n class: 'header-cell',\n cellClass: 'cell-color-medium',\n align: 'center',\n sortable: false,\n },\n {\n text: 'AmountPrUnit',\n value: 'AmountPrUnit',\n class: 'header-cell',\n width: '5%',\n align: 'center',\n sortable: false,\n cellClass: 'cell-color-medium',\n },\n {\n text: 'UnitForOrder',\n value: 'UnitForOrder',\n width: '6%',\n class: 'header-cell',\n cellClass: 'cell-color-medium',\n align: 'center',\n sortable: false,\n },\n {\n text: 'Price',\n value: 'Price',\n width: '6%',\n class: 'header-cell',\n cellClass: 'cell-color-medium',\n align: 'end',\n sortable: false,\n },\n {\n text: 'AmountOfMaterials',\n value: 'AmountOfMaterials',\n width: '6%',\n class: 'header-cell',\n cellClass: 'cell-color-medium',\n align: 'end',\n sortable: false,\n },\n {\n text: 'UnitPriceMaterials',\n value: 'UnitPriceMaterials',\n width: '6%',\n class: 'header-cell',\n cellClass: 'cell-color-medium',\n align: 'end',\n sortable: false,\n },\n {\n text: 'Factor7',\n value: 'Factor7',\n width: '6%',\n class: 'header-cell',\n cellClass: 'cell-color-medium',\n align: 'end',\n sortable: false,\n },\n {\n text: 'SumMaterialsUE',\n value: 'SumMaterialsUE',\n width: '6%',\n class: 'header-cell',\n cellClass: 'cell-color-medium',\n align: 'end',\n sortable: false,\n },\n {\n text: '',\n value: 'Comments',\n class: 'header-cell',\n width: '2%',\n align: 'center',\n sortable: false,\n cellClass: 'cell-color-medium',\n },\n {\n text: '',\n value: 'Actions',\n class: 'header-cell',\n width: '2%',\n align: 'center',\n sortable: false,\n cellClass: 'cell-color-medium',\n },\n];\n\nexport const BUILDING_ELEMENT_HEADERS_SUBCONTRACTORS: Array = [\n {\n text: '',\n value: 'sort-drag',\n class: 'header-cell',\n width: '2%',\n sortable: false,\n cellClass: 'cell-color-medium',\n },\n {\n text: 'DeliveryOrder',\n value: 'DeliveryOrder',\n width: '3%',\n class: 'header-cell',\n cellClass: 'cell-color-medium',\n align: 'center',\n sortable: false,\n },\n {\n text: 'Name',\n value: 'Name',\n width: '15%',\n class: 'header-cell',\n cellClass: 'cell-color-small',\n sortable: false,\n },\n {\n text: '',\n value: 'Precut',\n class: 'header-cell',\n width: '1%',\n sortable: false,\n align: 'center',\n cellClass: 'cell-color-medium',\n },\n {\n text: 'Unit',\n value: 'Unit',\n width: '6%',\n class: 'header-cell',\n cellClass: 'cell-color-medium',\n align: 'center',\n sortable: false,\n },\n {\n text: 'Amount',\n value: 'Amount',\n width: '6%',\n class: 'header-cell',\n cellClass: 'cell-color-medium',\n align: 'center',\n sortable: false,\n },\n {\n text: 'Price',\n value: 'Price',\n width: '6%',\n class: 'header-cell',\n cellClass: 'cell-color-medium',\n align: 'end',\n sortable: false,\n },\n {\n text: 'Factor7',\n value: 'Factor7',\n width: '6%',\n class: 'header-cell',\n cellClass: 'cell-color-medium',\n align: 'end',\n sortable: false,\n },\n {\n text: 'SumMaterialsUE',\n value: 'SumMaterialsUE',\n width: '6%',\n class: 'header-cell',\n cellClass: 'cell-color-medium',\n align: 'end',\n sortable: false,\n },\n {\n text: '',\n value: 'Comments',\n class: 'header-cell',\n width: '2%',\n align: 'center',\n sortable: false,\n cellClass: 'cell-color-medium',\n },\n {\n text: '',\n value: 'Actions',\n class: 'header-cell',\n width: '2%',\n align: 'center',\n sortable: false,\n cellClass: 'cell-color-medium',\n },\n];\n\nexport const BUILDING_ELEMENT_HEADERS_DELIVERY: Array = [\n {\n text: '',\n value: 'sort-drag',\n class: 'header-cell',\n width: '2%',\n sortable: false,\n cellClass: 'cell-color-medium',\n },\n {\n text: 'DeliveryOrder',\n value: 'DeliveryOrder',\n width: '5%',\n class: 'header-cell',\n cellClass: 'cell-color-medium',\n align: 'center',\n sortable: false,\n },\n {\n text: 'MileStone',\n value: 'MileStone',\n width: '5%',\n class: 'header-cell',\n cellClass: 'cell-color-medium',\n align: 'end',\n sortable: false,\n },\n {\n text: 'Name',\n value: 'Name',\n width: '15%',\n class: 'header-cell',\n cellClass: 'cell-color',\n sortable: false,\n },\n {\n text: '',\n value: 'Precut',\n class: 'header-cell',\n width: '1%',\n sortable: false,\n align: 'center',\n cellClass: 'cell-color-medium',\n },\n {\n text: 'NOBBNumber',\n value: 'NOBBNumber',\n width: '5%',\n class: 'header-cell',\n cellClass: 'cell-color-medium',\n align: 'end',\n sortable: false,\n },\n {\n text: 'PriceListName',\n value: 'PriceListName',\n width: '5%',\n class: 'header-cell',\n cellClass: 'cell-color-medium',\n align: 'end',\n sortable: false,\n },\n {\n text: 'UnitForOrder',\n value: 'UnitForOrder',\n width: '5%',\n class: 'header-cell',\n cellClass: 'cell-color-medium',\n align: 'center',\n sortable: false,\n },\n {\n text: 'AmountOfMaterials',\n value: 'AmountOfMaterials',\n width: '5%',\n class: 'header-cell',\n cellClass: 'cell-color-medium',\n align: 'end',\n sortable: false,\n },\n {\n text: 'Price',\n value: 'Price',\n width: '5%',\n class: 'header-cell',\n cellClass: 'cell-color-medium',\n align: 'end',\n sortable: false,\n },\n {\n text: 'SumTotalWithAdditions',\n value: 'SumTotalWithAdditions',\n width: '5%',\n class: 'header-cell',\n cellClass: 'cell-color-medium',\n align: 'end',\n sortable: false,\n },\n {\n text: '',\n value: 'Comments',\n class: 'header-cell',\n width: '2%',\n align: 'center',\n sortable: false,\n cellClass: 'cell-color-medium',\n },\n {\n text: '',\n value: 'Actions',\n class: 'header-cell',\n width: '2%',\n align: 'center',\n sortable: false,\n cellClass: 'cell-color-medium',\n },\n];\n\nexport const BUILDING_ELEMENT_HEADERS_SIMPLE: Array = [\n {\n text: '',\n value: 'data-table-expand',\n width: '2%',\n class: 'element-header',\n sortable: false,\n },\n {\n text: 'Name',\n value: 'Name',\n width: '15%',\n class: 'element-header',\n sortable: false,\n },\n {\n text: 'Unit',\n value: 'Unit',\n width: '6%',\n class: 'element-header',\n sortable: false,\n align: 'center',\n },\n {\n text: '',\n value: 'actions',\n width: '6%',\n class: 'element-header',\n sortable: false,\n align: 'end',\n divider: true,\n },\n];\n\nexport const BUILDING_ELEMENT_HEADERS_SIMPLE_ALT1: Array = [\n {\n text: '',\n value: 'data-table-expand',\n width: '2%',\n class: 'element-header2',\n sortable: false,\n },\n {\n text: 'Name',\n value: 'Name',\n width: '15%',\n class: 'element-header2',\n sortable: false,\n },\n {\n text: 'Unit',\n value: 'Unit',\n width: '6%',\n class: 'element-header2',\n sortable: false,\n align: 'center',\n },\n {\n text: '',\n value: 'actions',\n width: '6%',\n class: 'element-header2',\n sortable: false,\n align: 'end',\n },\n];\n\nexport const BUILDING_ELEMENT_HEADERS_SIMPLE_ALT2: Array = [\n {\n text: '',\n value: 'data-table-expand',\n width: '2%',\n class: 'element-header3',\n sortable: false,\n },\n {\n text: 'Name',\n value: 'Name',\n width: '15%',\n class: 'element-header3',\n sortable: false,\n },\n {\n text: 'Unit',\n value: 'Unit',\n width: '6%',\n class: 'element-header3',\n sortable: false,\n align: 'center',\n },\n {\n text: '',\n value: 'actions',\n width: '6%',\n class: 'element-header3',\n sortable: false,\n align: 'end',\n },\n];\n\nexport const BUILDING_ITEM_HEADERS_SIMPLE: Array = [\n {\n text: '',\n value: 'sort-drag',\n class: 'item-header',\n width: '1%',\n sortable: false,\n },\n {\n text: 'Name',\n value: 'Name',\n width: '35%',\n class: 'item-header',\n sortable: false,\n },\n {\n text: 'Unit',\n value: 'Unit',\n class: 'item-header',\n sortable: false,\n align: 'center',\n },\n {\n text: 'BaseTime',\n value: 'BaseTime',\n class: 'item-header',\n sortable: false,\n align: 'center',\n },\n {\n text: 'Price',\n value: 'Price',\n class: 'item-header',\n sortable: false,\n align: 'center',\n },\n {\n text: 'NOBBNumber',\n value: 'NOBBNumber',\n class: 'item-header',\n sortable: false,\n align: 'center',\n },\n {\n text: '',\n value: 'actions',\n class: 'item-header',\n sortable: false,\n width: '15%',\n align: 'end',\n },\n];\n\nexport const BUILDING_ITEM_HEADERS_SIMPLE_ALT: Array = [\n {\n text: '',\n value: 'sort-drag',\n class: 'item-header2',\n width: '1%',\n sortable: false,\n },\n {\n text: 'Name',\n value: 'Name',\n width: '35%',\n class: 'item-header2',\n sortable: false,\n align: 'start',\n },\n {\n text: 'Unit',\n value: 'Unit',\n class: 'item-header2',\n sortable: false,\n align: 'center',\n },\n {\n text: 'BaseTime',\n value: 'BaseTime',\n class: 'item-header2',\n sortable: false,\n align: 'center',\n },\n {\n text: 'Price',\n value: 'Price',\n class: 'item-header2',\n sortable: false,\n align: 'center',\n },\n {\n text: 'NOBBNumber',\n value: 'NOBBNumber',\n class: 'item-header2',\n sortable: false,\n align: 'center',\n },\n {\n text: '',\n value: 'actions',\n class: 'item-header2',\n sortable: false,\n width: '15%',\n align: 'end',\n },\n];\n\nexport const BUILDING_ITEM_HEADERS_SIMPLE_ALT1: Array = [\n {\n text: 'Name',\n value: 'Name',\n width: '35%',\n class: 'item-header3',\n sortable: false,\n },\n {\n text: 'Unit',\n value: 'Unit',\n class: 'item-header3',\n sortable: false,\n align: 'center',\n },\n {\n text: 'BaseTime',\n value: 'BaseTime',\n class: 'item-header3',\n sortable: false,\n align: 'center',\n },\n {\n text: 'Price',\n value: 'Price',\n class: 'item-header3',\n sortable: false,\n align: 'center',\n },\n {\n text: 'NOBBNumber',\n value: 'NOBBNumber',\n class: 'item-header3',\n sortable: false,\n align: 'center',\n },\n {\n text: '',\n value: 'actions',\n class: 'item-header3',\n sortable: false,\n width: '15%',\n align: 'end',\n },\n];\n\nexport const BUILDING_ITEM_HEADERS_SIMPLE_ALT2: Array = [\n {\n text: 'Name',\n value: 'Name',\n width: '45%',\n class: 'item-header4',\n sortable: false,\n },\n {\n text: 'Unit',\n value: 'UnitForOrder',\n class: 'item-header4',\n sortable: false,\n align: 'center',\n },\n {\n text: 'Price',\n value: 'Price',\n class: 'item-header4',\n sortable: false,\n align: 'center',\n },\n {\n text: 'PriceListName',\n value: 'PriceListName',\n class: 'item-header4',\n sortable: false,\n align: 'center',\n },\n {\n text: 'NOBBNumber',\n value: 'NOBBNumber',\n class: 'item-header4',\n sortable: false,\n align: 'center',\n },\n];\n\nexport const PROJECT_HEADERS: Array = [\n {\n text: 'Profession',\n value: 'calculations',\n width: '6%',\n class: 'project-header',\n align: 'center',\n cellClass: 'cell-color-medium',\n sortable: false,\n },\n {\n text: 'Name',\n value: 'Name',\n width: '18%',\n class: 'project-header',\n cellClass: 'cell-color-medium',\n sortable: false,\n },\n {\n text: 'ProjectNumber',\n value: 'ProjectNumber',\n width: '8%',\n class: 'project-header',\n align: 'center',\n cellClass: 'cell-color-medium',\n sortable: false,\n },\n {\n text: 'Shared',\n value: 'Shared',\n width: '3%',\n class: 'project-header',\n align: 'center',\n cellClass: 'cell-color-medium',\n sortable: false,\n },\n {\n text: 'OwnedByName',\n value: 'OwnedByName',\n width: '10%',\n class: 'project-header',\n align: 'center',\n cellClass: 'cell-color-medium',\n sortable: false,\n },\n {\n text: 'LastModified',\n value: 'LastModified',\n width: '10%',\n class: 'project-header',\n align: 'center',\n cellClass: 'cell-color-medium',\n sortable: false,\n },\n {\n text: 'LastModifiedByName',\n value: 'LastModifiedByName',\n width: '10%',\n class: 'project-header',\n align: 'center',\n cellClass: 'cell-color-medium',\n sortable: false,\n },\n {\n text: 'Total',\n value: 'Total',\n width: '6%',\n class: 'project-header',\n align: 'end',\n cellClass: 'cell-color-medium',\n sortable: false,\n },\n {\n text: 'actions',\n value: 'actions',\n width: '15%',\n class: 'project-header',\n align: 'end',\n cellClass: 'cell-color-medium',\n sortable: false,\n },\n];\n\nexport const CALCULATION_HEADERS_SMALL: Array = [\n {\n text: 'profession',\n value: 'calculations',\n width: '6%',\n class: 'calculation-header',\n cellClass: 'cell-color-medium',\n align: 'center',\n sortable: false,\n },\n {\n text: 'ProjectNumber',\n value: 'ProjectNumber',\n width: '4%',\n class: 'calculation-header',\n cellClass: 'cell-color-medium',\n sortable: false,\n },\n {\n text: 'Name',\n value: 'Name',\n width: '15%',\n class: 'calculation-header',\n cellClass: 'cell-color-medium',\n sortable: false,\n },\n {\n text: 'Shared',\n value: 'Shared',\n width: '4%',\n class: 'calculation-header',\n cellClass: 'cell-color-medium',\n align: 'center',\n sortable: false,\n },\n {\n text: 'SumHours',\n value: 'ProjectTotals.Hours',\n width: '6%',\n class: 'calculation-header',\n cellClass: 'cell-color-medium',\n align: 'end',\n sortable: false,\n },\n {\n text: 'SelfCostMaterialsSubContractors',\n value: 'ProjectTotals.SelfCostMaterialsSubContractors',\n width: '6%',\n class: 'calculation-header',\n cellClass: 'cell-color-medium',\n align: 'end',\n sortable: false,\n },\n {\n text: 'SumMargin',\n value: 'ProjectTotals.SumMargin',\n width: '6%',\n class: 'calculation-header',\n cellClass: 'cell-color-medium',\n align: 'end',\n sortable: false,\n },\n {\n text: 'Profit',\n value: 'ProjectTotals.Profit',\n width: '6%',\n class: 'calculation-header',\n cellClass: 'cell-color-medium',\n align: 'end',\n sortable: false,\n },\n {\n text: 'Total',\n value: 'ProjectTotals.Total',\n width: '6%',\n class: 'calculation-header',\n cellClass: 'cell-color-medium',\n align: 'end',\n sortable: false,\n },\n {\n text: 'actions',\n value: 'actions',\n width: '15%',\n class: 'calculation-header',\n cellClass: 'cell-color-medium',\n align: 'center',\n sortable: false,\n },\n];\n\nexport const CALCULATION_BY_PROFESSION: Array = [\n {\n text: '',\n value: 'calculations',\n align: 'center',\n sortable: false,\n },\n {\n text: 'ProjectNumber',\n value: 'ProjectNumber',\n sortable: false,\n },\n {\n text: 'Name',\n value: 'Name',\n sortable: false,\n },\n {\n text: '',\n value: 'actions',\n align: 'end',\n sortable: false,\n },\n];\n\nexport const ESTIMATE_HEADERS: Array = [\n {\n text: 'NS3420',\n value: 'NS3420',\n class: 'estimate-header',\n cellClass: 'default',\n },\n {\n text: 'Name',\n value: 'Name',\n class: 'estimate-header',\n cellClass: 'default',\n },\n {\n text: 'Unit',\n value: 'Unit',\n class: 'estimate-header',\n cellClass: 'default',\n },\n {\n text: 'BaseTime',\n value: 'BaseTime',\n class: 'estimate-header',\n cellClass: 'default',\n },\n {\n text: 'OpeningAddition',\n value: 'OpeningAddition',\n class: 'estimate-header',\n cellClass: 'default',\n },\n {\n text: 'SurfaceAddition',\n value: 'SurfaceAddition',\n class: 'estimate-header',\n cellClass: 'default',\n },\n {\n text: 'TransportAddition',\n value: 'TransportAddition',\n class: 'estimate-header',\n cellClass: 'default',\n },\n {\n text: '',\n value: 'actions',\n class: 'estimate-header',\n cellClass: 'default',\n align: 'end',\n sortable: false,\n },\n];\n\nexport const LIBRARY_ELEMENT_HEADERS_SIMPLE: Array = [\n {\n text: '',\n value: 'data-table-select',\n class: 'element-main-header',\n width: '3%',\n cellClass: 'default',\n },\n {\n text: '',\n value: 'profession',\n width: '3%',\n class: 'element-main-header',\n cellClass: 'default',\n align: 'center',\n },\n {\n text: 'Library',\n value: 'library',\n width: '15%',\n class: 'element-main-header',\n cellClass: 'default',\n },\n {\n text: 'Building elements',\n value: 'Name',\n width: '30%',\n class: 'element-main-header',\n cellClass: 'big',\n },\n {\n text: 'Unit (NS 3420)',\n value: 'Unit',\n width: '6%',\n class: 'element-main-header',\n cellClass: 'default',\n },\n];\n\nexport const LIBRARY__HEADERS: Array = [\n {\n text: '',\n value: 'profession-icon',\n width: '1%',\n class: 'element-main-header',\n cellClass: 'default',\n align: 'center',\n sortable: false,\n },\n {\n text: 'Name',\n value: 'Name',\n width: '30%',\n class: 'element-main-header',\n cellClass: 'big',\n sortable: false,\n },\n {\n text: 'Created',\n value: 'Created',\n width: '6%',\n class: 'element-main-header',\n cellClass: 'default',\n sortable: false,\n },\n {\n text: 'LastModified',\n value: 'LastModified',\n width: '6%',\n class: 'element-main-header',\n cellClass: 'default',\n sortable: false,\n },\n {\n text: 'ImportTime',\n value: 'ImportTime',\n width: '6%',\n class: 'element-main-header',\n cellClass: 'default',\n sortable: false,\n },\n {\n text: '',\n value: 'actions',\n width: '6%',\n class: 'element-main-header',\n cellClass: 'default',\n sortable: false,\n },\n];\n\nexport const PRODUCT_HEADERS: Array = [\n {\n text: 'EAN13ItemNumber',\n value: 'EAN13ItemNumber',\n class: 'product-header',\n cellClass: 'product-value',\n sortable: false,\n },\n {\n text: 'ItemNumber',\n value: 'ItemNumber',\n class: 'product-header',\n cellClass: 'product-value',\n sortable: false,\n },\n {\n text: 'ItemText',\n value: 'ItemText',\n class: 'product-header',\n cellClass: 'product-value',\n sortable: false,\n },\n {\n text: 'BasePrice',\n value: 'BasePrice',\n class: 'product-header',\n cellClass: 'product-value',\n sortable: false,\n },\n {\n text: 'RecommendedPrice',\n value: 'RecommendedPrice',\n class: 'product-header',\n cellClass: 'product-value',\n sortable: false,\n },\n {\n text: 'UnitDesc',\n value: 'UnitDesc',\n class: 'product-header',\n cellClass: 'product-value',\n sortable: false,\n },\n {\n text: 'ItemText2',\n value: 'ItemText2',\n class: 'product-header',\n cellClass: 'product-value',\n },\n {\n text: 'PackageUnitDesc',\n value: 'PackageUnitDesc',\n class: 'product-header',\n cellClass: 'product-value',\n sortable: false,\n },\n {\n text: 'ItemsInPackage',\n value: 'ItemsInPackage',\n class: 'product-header',\n cellClass: 'product-value',\n sortable: false,\n },\n {\n text: 'BuyingPrice',\n value: 'BuyingPrice',\n class: 'product-header',\n cellClass: 'product-value',\n sortable: false,\n },\n {\n text: 'Discount',\n value: 'Discount',\n class: 'product-header',\n cellClass: 'product-value',\n sortable: false,\n },\n {\n text: 'ItemNumberNOBB',\n value: 'ItemNumberNOBB',\n class: 'product-header',\n cellClass: 'product-value',\n sortable: false,\n },\n {\n text: 'ItemOwnerNumber',\n value: 'ItemOwnerNumber',\n class: 'product-header',\n cellClass: 'product-value',\n sortable: false,\n },\n {\n text: 'ModuleNumber',\n value: 'ModuleNumber',\n class: 'product-header',\n cellClass: 'product-value',\n sortable: false,\n },\n];\n\nexport const PRICELIST_ITEM_HEADERS: Array = [\n {\n text: 'Name',\n value: 'Name',\n class: 'item-header',\n cellClass: 'item-value',\n width: '35%',\n sortable: false,\n },\n {\n text: 'ItemUnit',\n value: 'Unit',\n class: 'item-header',\n cellClass: 'item-value',\n sortable: false,\n },\n {\n text: 'ItemPrice',\n value: 'Price',\n class: 'item-header',\n cellClass: 'item-value',\n sortable: false,\n },\n {\n text: 'DiscountPercentage',\n value: 'DiscountPercentage',\n class: 'item-header',\n cellClass: 'item-value',\n sortable: false,\n },\n {\n text: 'BasePrice',\n value: 'BasePrice',\n class: 'item-header',\n cellClass: 'item-value',\n sortable: false,\n },\n {\n text: 'ItemNumber',\n value: 'ItemNumber',\n class: 'item-header',\n cellClass: 'item-value',\n sortable: false,\n },\n {\n text: 'NOBBNumber',\n value: 'NOBBNumber',\n class: 'item-header',\n cellClass: 'item-value',\n sortable: false,\n },\n {\n text: '',\n value: 'actions',\n width: '4%',\n class: 'item-header',\n cellClass: 'item-value',\n sortable: false,\n },\n];\n\nexport const PRICELIST_ITEM_HEADERS_ALT: Array = [\n {\n text: 'Name',\n value: 'Name',\n class: 'item-header2',\n width: '35%',\n sortable: false,\n },\n {\n text: 'ItemUnit',\n value: 'Unit',\n class: 'item-header2',\n sortable: false,\n },\n {\n text: 'ItemPrice',\n value: 'Price',\n class: 'item-header2',\n sortable: false,\n },\n {\n text: 'DiscountPercentage',\n value: 'DiscountPercentage',\n class: 'item-header2',\n sortable: false,\n },\n {\n text: 'BasePrice',\n value: 'BasePrice',\n class: 'item-header2',\n sortable: false,\n },\n {\n text: 'NOBBNumber',\n value: 'NOBBNumber',\n class: 'item-header2',\n sortable: false,\n },\n {\n text: '',\n value: 'actions',\n width: '4%',\n class: 'item-header2',\n sortable: false,\n },\n];\n\nexport const CATEGORY_HEADERS: Array = [\n {\n text: 'CategoryName',\n value: 'CategoryName',\n class: 'category-header',\n cellClass: 'category-value',\n sortable: false,\n },\n {\n text: 'CategoryProductLength',\n value: 'CategoryProductLength',\n class: 'category-header',\n cellClass: 'category-value',\n sortable: false,\n },\n];\n\nexport const BUILDING_ITEM_PRICE_UPDATE: Array = [\n {\n value: 'data-table-select',\n align: 'center',\n sortable: false,\n },\n {\n text: `${translate('headers.name')}`,\n value: 'Name',\n sortable: false,\n align: 'start',\n },\n {\n text: `${translate('headers.status')}`,\n value: 'Status',\n sortable: false,\n align: 'center',\n },\n {\n text: `${translate('headers.product')}`,\n value: 'Product',\n sortable: false,\n align: 'center',\n },\n {\n text: `${translate('headers.existing-price')}`,\n value: 'Price',\n sortable: false,\n align: 'center',\n },\n {\n text: `${translate('headers.new-price')}`,\n value: 'NewPrice',\n sortable: false,\n align: 'center',\n },\n {\n text: `${translate('headers.discount')}`,\n value: 'Discount',\n sortable: false,\n align: 'center',\n },\n {\n text: `${translate('headers.baseprice')}`,\n value: 'BasePrice',\n sortable: false,\n align: 'center',\n },\n {\n text: `${translate('headers.amountprunit')}`,\n value: 'AmountPrUnit',\n sortable: false,\n align: 'center',\n },\n {\n text: `${translate('headers.price-diff')}`,\n value: 'Diff',\n sortable: false,\n align: 'center',\n },\n {\n text: `${translate('headers.existing-unit')}`,\n value: 'Unit',\n sortable: false,\n align: 'center',\n },\n {\n text: `${translate('headers.new-unit')}`,\n value: 'NewUnit',\n sortable: false,\n align: 'center',\n },\n {\n text: `${translate('headers.pricelistname')}`,\n value: 'PriceListName',\n sortable: false,\n align: 'center',\n },\n {\n text: `${translate('headers.nobbnumber')}`,\n value: 'NOBBNumber',\n sortable: false,\n align: 'center',\n },\n {\n text: '',\n value: 'Actions',\n sortable: false,\n align: 'center',\n },\n];\n\nexport const BUILDING_ITEM_PRODUCT: Array = [\n {\n value: 'data-table-select',\n align: 'center',\n sortable: false,\n },\n {\n text: `${translate('headers.product-text')}`,\n value: 'Name',\n sortable: false,\n align: 'start',\n },\n {\n text: `${translate('headers.unit')}`,\n value: 'Unit',\n sortable: false,\n align: 'center',\n },\n {\n text: `${translate('headers.product-price')}`,\n value: 'Price',\n sortable: false,\n align: 'center',\n },\n {\n text: `${translate('headers.discountpercentage')}`,\n value: 'DiscountPercentage',\n sortable: false,\n align: 'center',\n },\n {\n text: `${translate('headers.baseprice')}`,\n value: 'BasePrice',\n sortable: false,\n align: 'center',\n },\n {\n text: `${translate('headers.nobbnumber')}`,\n value: 'NobbNumber',\n sortable: false,\n align: 'center',\n },\n {\n text: `${translate('headers.nobb-module')}`,\n value: 'NobbModuleNumber',\n sortable: false,\n align: 'center',\n },\n {\n text: `${translate('headers.itemnumber')}`,\n value: 'ItemNumber',\n sortable: false,\n align: 'center',\n },\n {\n text: `${translate('headers.categoryname')}`,\n value: 'CategoryName',\n sortable: false,\n align: 'center',\n },\n {\n text: `${translate('headers.pricelistname')}`,\n value: 'PriceListName',\n sortable: false,\n align: 'center',\n },\n {\n text: `${translate('headers.nobbtext')}`,\n value: 'NobbText',\n sortable: false,\n align: 'center',\n },\n {\n text: `${translate('headers.nobbkeywords')}`,\n value: 'NobbKeywords',\n sortable: false,\n align: 'center',\n },\n {\n text: '',\n value: 'Actions',\n sortable: false,\n align: 'center',\n },\n];\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { ProjectOverview } from '@/models/projects/interfaces';\nimport { defineComponent, PropType, ref } from '@vue/composition-api';\nimport { getIconByProfessionCode } from '@/helpers/common';\nimport DeleteProject from '@/components/projects/delete-project/index.vue';\nimport LockCalculation from '@/components/projects/lock-project/index.vue';\nimport ExportProject from '@/components/projects/export-project/index.vue';\nimport EditProject from '@/components/projects/edit-project/index.vue';\nimport Loader from '@/components/loader/index.vue';\nimport moment from 'moment';\nimport router from '@/router/index';\nimport {\n PROJECT_CALCULATION_PATH,\n PROJECT_CALCULATION_OVERVIEW_PATH,\n} from '@/constants/routes';\nimport { useCalculation } from '@/modules/calculation';\nimport { useProject } from '@/modules/project';\nimport CopyToAnotherProject from '@/components/projects/copy-project/index.vue';\nimport {\n PROJECT_HEADERS,\n CALCULATION_HEADERS_SMALL,\n} from '@/constants/table-headers';\nimport ContentBar from '@/components/common/content-bar/index.vue';\nimport { safePercentage } from '@/helpers/calculation';\n\ninterface RowEvent {\n isExpanded: boolean;\n item: ProjectOverview;\n}\n\nexport default defineComponent({\n components: {\n DeleteProject,\n LockCalculation,\n ExportProject,\n CopyToAnotherProject,\n ContentBar,\n EditProject,\n Loader,\n },\n props: {\n calculations: {\n type: Array as PropType>,\n required: true,\n },\n parent: {\n type: Object as PropType,\n required: true,\n },\n showHeaders: {\n type: Boolean,\n },\n small: {\n type: Boolean,\n },\n hideTitle: {\n type: Boolean,\n },\n importCalculation: {\n type: Boolean,\n },\n },\n setup(props, { emit }) {\n const {\n setActiveProject,\n projects,\n buildingTotals,\n activeProjectOverview,\n } = useProject();\n const { setActiveCalculation, loading } = useCalculation();\n const loadingId = ref>();\n\n const traverse = async (path: string, calculation: ProjectOverview) => {\n loadingId.value = calculation.Id;\n try {\n if (props.parent.Id) {\n if (\n !activeProjectOverview.value ||\n activeProjectOverview.value.Id !== props.parent.Id\n ) {\n await setActiveProject(props.parent.Id, false);\n }\n await setActiveCalculation(calculation);\n await router.push(path);\n }\n } catch (e) {\n console.log(e);\n }\n loadingId.value = null;\n };\n\n const emitImport = (calculation: ProjectOverview) => {\n emit('importCalculation', calculation);\n };\n\n const dblClickRow = (mouseEvent: MouseEvent, dblClickEvent: RowEvent) => {\n traverse(PROJECT_CALCULATION_PATH, dblClickEvent.item);\n };\n\n return {\n traverse,\n getIconByProfessionCode,\n dblClickRow,\n emitImport,\n safePercentage,\n moment,\n PROJECT_CALCULATION_PATH,\n PROJECT_CALCULATION_OVERVIEW_PATH,\n loading,\n projects,\n PROJECT_HEADERS,\n CALCULATION_HEADERS_SMALL,\n loadingId,\n buildingTotals,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=5adf4013&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=5adf4013&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5adf4013\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VBtnToggle } from 'vuetify/lib/components/VBtnToggle';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItemGroup } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VBtnToggle,VCol,VDataTable,VIcon,VList,VListItemGroup,VMenu,VRow,VSkeletonLoader,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"max-width\":_vm.fileOk ? 1200 : 700,\"retain-focus\":false},on:{\"click:outside\":_vm.close},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [(_vm.isMenuitem)?_c('v-list-item',_vm._g(_vm._b({},'v-list-item',attrs,false),on),[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('titles.import-project')))]),_c('v-list-item-icon',[_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-import\")])],1)],1):_c('v-btn',_vm._g(_vm._b({staticClass:\"ma-2\",attrs:{\"small\":\"\",\"fab\":!_vm.$vuetify.breakpoint.xlOnly && !_vm.first}},'v-btn',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.$vuetify.breakpoint.xlOnly || _vm.first ? _vm.first ? _vm.$t('buttons.import-project-capital-first') : _vm.$t('buttons.import-project-capital') : '')+\" \"),_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g({attrs:{\"right\":_vm.$vuetify.breakpoint.xlOnly || _vm.first}},on),[_vm._v(\" mdi-import \")])]}}],null,true)},[_c('span',[_vm._v(_vm._s(_vm.first ? _vm.$t('buttons.import-project-capital-first') : _vm.$t('buttons.import-project-capital')))])])],1)]}}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',{attrs:{\"flat\":\"\",\"tile\":\"\",\"loading\":_vm.validating}},[_c('dialog-title',{attrs:{\"headerText\":_vm.$t('titles.import-project')},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":_vm.close}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)]},proxy:true}])}),_c('v-card-text',{staticClass:\"import-message\"},[(!_vm.fileOk)?_c('vue-dropzone',{ref:\"importZone\",attrs:{\"id\":\"importZone\",\"options\":_vm.dropzoneOptions},on:{\"vdropzone-file-added\":_vm.validateImport,\"vdropzone-error\":_vm.handleError}}):_vm._e(),(_vm.fileOk)?_c('import-info',{attrs:{\"project\":_vm.newProject,\"generalInfo\":_vm.generalInfo},on:{\"removeCalc\":_vm.removeCalc}}):_vm._e()],1),_c('v-card-actions',{staticClass:\"import-actions\"},[_c('info-tooltip',{attrs:{\"information\":_vm.$t('project.import-project-info')}}),_c('v-spacer'),(_vm.projectFile)?_c('v-btn',{attrs:{\"color\":\"error\"},on:{\"click\":_vm.cancel}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.cancel'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-close\")])],1):_vm._e(),_c('v-btn',{attrs:{\"color\":\"secondary\",\"disabled\":!_vm.valid,\"loading\":_vm.loading},on:{\"click\":_vm.submit}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.import'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-import \")])],1),_c('v-btn',{on:{\"click\":_vm.close}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.close'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-close\")])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-form',[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"7\"}},[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{staticClass:\"top-row\",attrs:{\"cols\":\"8\"}},[_c('v-list-item-content',{staticClass:\"ma-2\"},[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.generalInfo.informasjonField)+\" \")]),_c('v-list-item-subtitle',[_vm._v(\" \"+_vm._s(_vm.moment(_vm.generalInfo.datoField) .lang((\"\" + (_vm.$i18n.locale === 'no' ? 'nb' : _vm.$i18n.locale))) .format('Do MMMM YYYY'))+\" \")])],1)],1),_c('v-col',{attrs:{\"cols\":\"4\",\"align-self\":\"end\"}},[_c('profession',{attrs:{\"code\":_vm.project.Project && _vm.project.Project.Profession\n ? _vm.project.Project.Profession.Code\n : ''}})],1),_c('v-row',{staticClass:\"project-fields\",attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"9\"}},[_c('v-text-field',{attrs:{\"outlined\":\"\",\"dense\":\"\",\"autofocus\":\"\",\"rules\":[_vm.rules.required],\"placeholder\":_vm.$t('labels.name'),\"label\":_vm.$t('labels.name'),\"clearable\":\"\"},on:{\"focus\":function($event){return $event.target.select()}},model:{value:(_vm.project.Project.Name),callback:function ($$v) {_vm.$set(_vm.project.Project, \"Name\", $$v)},expression:\"project.Project.Name\"}})],1),_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('v-text-field',{attrs:{\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"rules\":[_vm.rules.required],\"clearable\":\"\",\"placeholder\":_vm.$t('labels.number'),\"label\":_vm.$t('labels.number')},model:{value:(_vm.project.Project.ProjectNumber),callback:function ($$v) {_vm.$set(_vm.project.Project, \"ProjectNumber\", $$v)},expression:\"project.Project.ProjectNumber\"}})],1)],1),(_vm.project.Children && _vm.project.Children.length > 0)?_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-subheader',{staticClass:\"field-name items-subheader\"},[_vm._v(\" \"+_vm._s(_vm.$t('titles.calculations', { count: _vm.project.Children && _vm.project.Children.length > 0 ? _vm.project.Children.length : 0, }))+\" \")]),_c('v-list',{attrs:{\"dense\":\"\"}},[_c('perfect-scrollbar',{attrs:{\"options\":{\n suppressScrollX: true,\n }}},_vm._l((_vm.project.Children),function(calculation){return _c('v-list-item',{key:calculation.Id},[_c('v-list-item-avatar',[_c('v-icon',{attrs:{\"color\":\"primary\"}},[_vm._v(\" \"+_vm._s(_vm.getIconByProfessionCode( calculation.Project && calculation.Project.Profession ? calculation.Project.Profession.Code : '' ))+\" \")])],1),_c('v-list-item-content',[_c('v-list-item-title',{domProps:{\"textContent\":_vm._s(calculation.Project.Name)}}),_c('v-list-item-subtitle',{domProps:{\"textContent\":_vm._s(\n calculation.Project && calculation.Project.Profession\n ? calculation.Project.Profession.Name\n : ''\n )}})],1),_c('v-list-item-action',[_c('v-btn',{staticClass:\"ma-1\",attrs:{\"color\":\"error\",\"outlined\":\"\",\"small\":\"\"},on:{\"click\":function($event){return _vm.emit('removeCalc', calculation.Project.Id)}}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.remove')))])],1)],1)}),1)],1)],1):_vm._e()],1)],1),_c('v-col',{attrs:{\"cols\":\"5\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[(\n _vm.generalInfo.avsenderField &&\n _vm.generalInfo.avsenderField.personField\n )?_c('v-card',{staticClass:\"sender pa-2\",attrs:{\"tile\":\"\",\"flat\":\"\",\"min-height\":\"180\"}},[_c('v-subheader',{staticClass:\"field-name items-subheader\"},[_vm._v(\" \"+_vm._s(_vm.$t('titles.sender'))+\" \")]),_c('v-list-item',{staticClass:\"grow\"},[_c('v-list-item-icon',[_c('v-icon',{attrs:{\"color\":\"primary\"}},[_vm._v(\" mdi-domain \")])],1),_c('v-list-item-content',[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('span',{staticClass:\"field-name\"},[_vm._v(\" \"+_vm._s(_vm.$t('labels.name'))+\" \")])]),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('span',{staticClass:\"field-value\"},[_vm._v(\" \"+_vm._s(_vm.generalInfo.avsenderField.firmaField.navnField)+\" \")])]),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('span',{staticClass:\"field-name\"},[_vm._v(\" \"+_vm._s(_vm.$t('labels.email'))+\" \")])]),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('span',{staticClass:\"field-value\"},[_vm._v(\" \"+_vm._s(_vm.generalInfo.avsenderField.firmaField.epostField)+\" \")])]),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('span',{staticClass:\"field-name\"},[_vm._v(\" \"+_vm._s(_vm.$t('labels.org-number'))+\" \")])]),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('span',{staticClass:\"field-value\"},[_vm._v(\" \"+_vm._s(_vm.generalInfo.avsenderField.firmaField.orgnrField)+\" \")])]),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('span',{staticClass:\"field-name\"},[_vm._v(\" \"+_vm._s(_vm.$t('labels.address'))+\" \")])]),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('span',{staticClass:\"field-value\"},[_vm._v(\" \"+_vm._s(((_vm.generalInfo.avsenderField.firmaField.gateadresseField) + \", \" + (_vm.generalInfo.avsenderField.firmaField.postadresseField) + \" - \" + (_vm.generalInfo.avsenderField.firmaField.poststedField)))+\" \")])])],1)],1)],1),_c('v-list-item',{staticClass:\"grow\"},[_c('v-list-item-icon',[_c('v-icon',{attrs:{\"color\":\"primary\"}},[_vm._v(\" mdi-account \")])],1),_c('v-list-item-content',[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('span',{staticClass:\"field-name\"},[_vm._v(\" \"+_vm._s(_vm.$t('labels.name'))+\" \")])]),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('span',{staticClass:\"field-value\"},[_vm._v(\" \"+_vm._s(_vm.generalInfo.avsenderField.personField.navnField)+\" \")])]),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('span',{staticClass:\"field-name\"},[_vm._v(\" \"+_vm._s(_vm.$t('labels.email'))+\" \")])]),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('span',{staticClass:\"field-value\"},[_vm._v(\" \"+_vm._s(_vm.generalInfo.avsenderField.personField.epostField)+\" \")])]),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('span',{staticClass:\"field-name\"},[_vm._v(\" \"+_vm._s(_vm.$t('labels.org-number'))+\" \")])]),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('span',{staticClass:\"field-value\"},[_vm._v(\" \"+_vm._s(_vm.generalInfo.avsenderField.personField.orgnrField)+\" \")])]),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('span',{staticClass:\"field-name\"},[_vm._v(\" \"+_vm._s(_vm.$t('labels.address'))+\" \")])]),_c('v-col',{attrs:{\"cols\":\"6\"}},[(\n _vm.generalInfo.avsenderField.personField\n .gateadresseField &&\n _vm.generalInfo.avsenderField.personField\n .postadresseField &&\n _vm.generalInfo.avsenderField.personField\n .poststedField\n )?_c('span',{staticClass:\"field-value\"},[_vm._v(\" \"+_vm._s(((_vm.generalInfo.avsenderField.personField.gateadresseField) + \", \" + (_vm.generalInfo.avsenderField.personField.postadresseField) + \" - \" + (_vm.generalInfo.avsenderField.personField.poststedField)))+\" \")]):_vm._e()])],1)],1)],1)],1):_vm._e()],1)],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { getIconByProfessionCode } from '@/helpers/common';\nimport { ImportedProject } from '@/models/projects/interfaces';\nimport { NstGenerelt } from '@/models/standards/ns3459/interfaces';\nimport { defineComponent, PropType } from '@vue/composition-api';\nimport moment from 'moment';\nimport Profession from '@/components/profession/index.vue';\nimport { translate } from '@/localization';\n\nexport default defineComponent({\n components: {\n Profession,\n },\n props: {\n project: {\n type: Object as PropType,\n required: true,\n },\n generalInfo: {\n type: Object as PropType,\n required: true,\n },\n },\n setup(props, { emit }) {\n return {\n getIconByProfessionCode,\n emit,\n moment,\n rules: {\n required: (v: string) => !!v || `${translate('validation.required')}`,\n min: (v: string) =>\n (v && v.length >= 8) ||\n `${translate('validation.minimum-characters', [8])}`,\n },\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=f286b95c&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=f286b95c&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f286b95c\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemAction } from 'vuetify/lib/components/VList';\nimport { VListItemAvatar } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemSubtitle } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCol,VForm,VIcon,VList,VListItem,VListItemAction,VListItemAvatar,VListItemContent,VListItemIcon,VListItemSubtitle,VListItemTitle,VRow,VSubheader,VTextField})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { ref, defineComponent, computed } from '@vue/composition-api';\nimport { useImport } from '@/modules/import';\nimport vue2Dropzone from 'vue2-dropzone';\nimport 'vue2-dropzone/dist/vue2Dropzone.min.css';\nimport { useProject } from '@/modules/project';\nimport { useSnackbar } from '@/modules/snackbar';\nimport { ImportedProject } from '@/models/projects/interfaces';\nimport { translate } from '@/localization/index';\nimport DialogTitle from '@/components/common/dialog-title/index.vue';\nimport InfoTooltip from '@/components/common/tooltip-helper/index.vue';\nimport ImportInfo from '@/components/projects/import-project/import-info/index.vue';\nimport { NstGenerelt } from '@/models/standards/ns3459/interfaces';\n\nexport default defineComponent({\n props: {\n isMenuitem: {\n type: Boolean,\n },\n first: {\n type: Boolean,\n },\n },\n components: {\n vueDropzone: vue2Dropzone,\n DialogTitle,\n InfoTooltip,\n ImportInfo,\n },\n setup() {\n const dialog = ref(false);\n const loading = ref(false);\n const projectFile = ref(undefined);\n const importZone = ref();\n const validating = ref(false);\n const newProject = ref(undefined);\n const generalInfo = ref(undefined);\n\n const {\n parseProjectFile,\n importProject,\n createImportProject,\n } = useImport();\n const { getProjects, refreshActiveProject } = useProject();\n\n const valid = computed(() => {\n return (\n newProject.value &&\n generalInfo.value &&\n projectFile.value &&\n newProject.value.Project.Name &&\n newProject.value.Project.ProjectNumber\n );\n });\n\n const fileOk = computed(() => {\n return newProject.value && generalInfo.value && projectFile.value;\n });\n\n const validateImport = async (file: File) => {\n validating.value = true;\n projectFile.value = file;\n importZone.value && importZone.value.removeAllFiles();\n if (file.type === 'application/json' || file.type === 'text/xml') {\n try {\n const ns = await parseProjectFile(file);\n if (ns) {\n generalInfo.value = ns.genereltField;\n newProject.value = await createImportProject(ns);\n }\n } catch (e) {\n console.log(e);\n }\n\n if (valid.value) {\n importZone.value.disable();\n } else {\n projectFile.value = undefined;\n }\n importZone.value && importZone.value.removeAllFiles();\n } else {\n projectFile.value = undefined;\n importZone.value && importZone.value.removeAllFiles();\n }\n validating.value = false;\n };\n\n const removeCalc = (calcId: string) => {\n if (\n newProject.value &&\n newProject.value.Children &&\n newProject.value.Children.length > 0\n ) {\n const calcIndex = newProject.value.Children.findIndex(\n calc => calc.Project && calc.Project.Id === calcId\n );\n\n if (calcIndex >= 0) {\n newProject.value.Children.splice(calcIndex, 1);\n }\n }\n };\n\n const cancel = () => {\n projectFile.value = undefined;\n newProject.value = undefined;\n generalInfo.value = undefined;\n if (importZone.value) importZone.value.enable();\n };\n\n const close = () => {\n projectFile.value = undefined;\n newProject.value = undefined;\n generalInfo.value = undefined;\n dialog.value = false;\n };\n\n const handleError = (file: File, message: string) => {\n const { snack } = useSnackbar();\n importZone.value.removeFile(file);\n if (!message.includes('Upload')) {\n snack(message, false);\n }\n };\n\n const submit = async () => {\n loading.value = true;\n if (valid.value && newProject.value) {\n let imported = false;\n imported = await importProject(newProject.value);\n if (imported) {\n await getProjects(true);\n await refreshActiveProject();\n close();\n }\n }\n\n loading.value = false;\n };\n\n return {\n cancel,\n close,\n validateImport,\n handleError,\n submit,\n removeCalc,\n loading,\n importZone,\n projectFile,\n dialog,\n valid,\n fileOk,\n validating,\n newProject,\n generalInfo,\n dropzoneOptions: {\n autoProcessQueue: false,\n url: 'http://localhost',\n thumbnailWidth: 150,\n maxFilesize: 3,\n maxFiles: 1,\n acceptedFiles: '.xml,.json',\n dictDefaultMessage: `${translate(\n 'project.import-project-default-message'\n )}`,\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=6b9f913e&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=6b9f913e&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6b9f913e\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VDialog,VIcon,VListItem,VListItemIcon,VListItemTitle,VSpacer,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"max-width\":1200,\"retain-focus\":false},on:{\"click:outside\":_vm.close},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [(_vm.isMenuitem)?_c('v-list-item',_vm._g(_vm._b({},'v-list-item',attrs,false),on),[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('titles.import-calculation')))]),_c('v-list-item-icon',[_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-import\")])],1)],1):_c('v-btn',_vm._g(_vm._b({staticClass:\"import-button ma-2\",attrs:{\"small\":\"\",\"fab\":!_vm.$vuetify.breakpoint.xlOnly}},'v-btn',attrs,false),on),[_vm._v(\" \"+_vm._s(!_vm.$vuetify.breakpoint.xlOnly ? '' : _vm.$t('titles.import-calculation'))+\" \"),_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g({attrs:{\"right\":_vm.$vuetify.breakpoint.xlOnly}},on),[_vm._v(\" mdi-import \")])]}}],null,true)},[_c('span',[_vm._v(_vm._s(_vm.$t('titles.import-calculation')))])])],1)]}}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',{attrs:{\"flat\":\"\",\"tile\":\"\",\"loading\":_vm.validating}},[_c('dialog-title',{attrs:{\"headerText\":_vm.$t('titles.import-calculation'),\"center\":true},scopedSlots:_vm._u([{key:\"center\",fn:function(){return [_c('v-btn-toggle',{staticClass:\"methods\",attrs:{\"mandatory\":\"\",\"tile\":\"\",\"color\":\"secondary\",\"group\":\"\"},on:{\"change\":_vm.switchMethod},model:{value:(_vm.method),callback:function ($$v) {_vm.method=$$v},expression:\"method\"}},[_c('v-btn',{attrs:{\"value\":_vm.ImportMethod.FromCalculations}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.from-calculations'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-calculator\")])],1),_c('v-btn',{attrs:{\"value\":_vm.ImportMethod.FromFile}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.from-file'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-file\")])],1)],1)]},proxy:true},{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":_vm.close}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)]},proxy:true}])}),_c('v-card-text',{staticClass:\"import-message\"},[(_vm.method === _vm.ImportMethod.FromFile)?[(!_vm.fileOk)?_c('vue-dropzone',{ref:\"importZone\",attrs:{\"id\":\"importZone\",\"options\":_vm.dropzoneOptions},on:{\"vdropzone-file-added\":_vm.validateImport,\"vdropzone-error\":_vm.handleError}}):_vm._e(),(_vm.fileOk)?_c('import-info',{attrs:{\"project\":_vm.newProject,\"generalInfo\":_vm.generalInfo},on:{\"removeCalc\":_vm.removeCalc}}):_vm._e()]:(_vm.method === _vm.ImportMethod.FromCalculations)?[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-row',{staticClass:\"filters\",attrs:{\"dense\":\"\"}},[_c('v-subheader',{staticClass:\"field-name\"},[_vm._v(\" \"+_vm._s(_vm.$t('titles.projects', { count: _vm.filteredProjects && _vm.filteredProjects.length > 0 ? _vm.filteredProjects.length : 0, })))]),_c('v-spacer'),_c('v-text-field',{staticClass:\"project-search .d-none .d-sm-flex\",attrs:{\"append-icon\":\"mdi-magnify\",\"label\":_vm.$t('common.search'),\"single-line\":\"\",\"outlined\":\"\",\"clearable\":\"\",\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.filter.search),callback:function ($$v) {_vm.$set(_vm.filter, \"search\", $$v)},expression:\"filter.search\"}})],1)],1),_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('perfect-scrollbar',{attrs:{\"options\":{\n suppressScrollX: true,\n }}},[(_vm.filteredProjects && _vm.filteredProjects.length > 0)?_c('v-expansion-panels',{attrs:{\"tile\":\"\"}},_vm._l((_vm.filteredProjects),function(project){return _c('v-expansion-panel',{key:project.Id,class:project.Children != null && project.Children.length === 0\n ? 'project-header-empty'\n : 'project-header'},[_c('v-expansion-panel-header',[_c('v-row',{staticClass:\"project-props primary-data\",attrs:{\"dense\":\"\",\"justify\":\"start\",\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"hidden-md-and-down\",attrs:{\"cols\":\"1\"}},[_c('v-icon',{staticClass:\"shared\",attrs:{\"color\":project.Shared ? 'primary' : ''}},[_vm._v(_vm._s(project.Shared ? 'mdi-eye' : 'mdi-eye-off'))])],1),_c('v-col',{attrs:{\"cols\":\"4\",\"align-self\":\"center\"}},[_c('div',{staticClass:\"project-prop-long-primary\"},[_c('v-list-item',{attrs:{\"dense\":\"\",\"inactive\":\"\",\"ripple\":false}},[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(project.Name)+\" \")])],1)],1)],1)]),_c('v-col',{attrs:{\"cols\":\"2\",\"align-self\":\"center\"}},[_c('div',{staticClass:\"project-prop\"},[_c('v-list-item',{attrs:{\"dense\":\"\",\"inactive\":\"\",\"ripple\":false}},[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(project.ProjectNumber)+\" \")]),_c('v-list-item-subtitle',[_vm._v(_vm._s(_vm.$t('labels.projectnumber')))])],1)],1)],1)]),_c('v-col',{attrs:{\"cols\":\"5\",\"align-self\":\"center\"}},[_c('div',{staticClass:\"project-prop\"},[_c('v-list-item',{attrs:{\"dense\":\"\",\"inactive\":\"\",\"ripple\":false}},[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(project.OwnedByName)+\" \")]),_c('v-list-item-subtitle',[_vm._v(_vm._s(_vm.$t('labels.owned-by-name')))])],1)],1)],1)])],1)],1),_c('v-expansion-panel-content',{staticClass:\"project-content\"},[_c('calculations',{attrs:{\"calculations\":project.Children,\"parent\":project,\"hideTitle\":true,\"importCalculation\":true},on:{\"importCalculation\":_vm.importCalculation}})],1)],1)}),1):_c('v-alert',{attrs:{\"dense\":\"\",\"type\":\"info\",\"tile\":\"\",\"color\":\"primary\"}},[_vm._v(\" \"+_vm._s(_vm.$t('info.no-projects-found'))+\" \")])],1)],1)],1),_c('v-dialog',{attrs:{\"value\":_vm.includeDialog,\"max-width\":\"500\",\"retain-focus\":false},on:{\"click:outside\":_vm.abort}},[_c('v-card',{attrs:{\"flat\":\"\",\"tile\":\"\"}},[_c('v-card-title',{staticClass:\"import-title\"},[_vm._v(\" \"+_vm._s(_vm.$t('titles.import-calculation'))+\" \"),_c('v-spacer'),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":_vm.abort}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1),_c('v-divider'),_c('v-card-text',{staticClass:\"import-message\"},[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"outlined\":\"\",\"dense\":\"\",\"autofocus\":\"\",\"rules\":[_vm.rules.required],\"placeholder\":_vm.$t('labels.name'),\"label\":_vm.$t('labels.name'),\"clearable\":\"\"},on:{\"focus\":function($event){return $event.target.select()}},model:{value:(_vm.newName),callback:function ($$v) {_vm.newName=$$v},expression:\"newName\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-checkbox',{attrs:{\"color\":\"primary\",\"dense\":\"\",\"label\":_vm.$t('titles.include-amount'),\"hide-details\":\"\"},model:{value:(_vm.includeAmount),callback:function ($$v) {_vm.includeAmount=$$v},expression:\"includeAmount\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-checkbox',{attrs:{\"color\":\"primary\",\"dense\":\"\",\"label\":_vm.$t('labels.navigate-to-calc'),\"hide-details\":\"\"},model:{value:(_vm.navigateToCalc),callback:function ($$v) {_vm.navigateToCalc=$$v},expression:\"navigateToCalc\"}})],1)],1)],1)],1),_c('v-card-actions',{staticClass:\"import-actions\"},[_c('v-spacer'),(_vm.newName)?_c('v-btn',{attrs:{\"color\":\"secondary\",\"loading\":_vm.importing},on:{\"click\":_vm.importCalc}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.import'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-import \")])],1):_vm._e(),_c('v-btn',{staticClass:\"ma-2\",on:{\"click\":_vm.abort}},[_vm._v(_vm._s(_vm.$t('buttons.cancel'))),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-close\")])],1)],1)],1)],1)]:_vm._e()],2),_c('v-card-actions',{staticClass:\"import-actions\"},[(_vm.method === _vm.ImportMethod.FromFile)?_c('info-tooltip',{attrs:{\"information\":_vm.$t('project.import-calculation-info')}}):_vm._e(),_c('v-spacer'),(_vm.projectFile)?_c('v-btn',{attrs:{\"color\":\"error\"},on:{\"click\":_vm.cancel}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.cancel'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-close\")])],1):_vm._e(),(_vm.method === _vm.ImportMethod.FromFile)?_c('v-btn',{attrs:{\"color\":\"secondary\",\"disabled\":!_vm.valid,\"loading\":_vm.loading},on:{\"click\":_vm.submit}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.import'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-import \")])],1):_vm._e(),_c('v-btn',{on:{\"click\":_vm.close}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.close'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-close\")])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport {\n ref,\n defineComponent,\n PropType,\n computed,\n onMounted,\n} from '@vue/composition-api';\nimport { useImport } from '@/modules/import';\nimport vue2Dropzone from 'vue2-dropzone';\nimport 'vue2-dropzone/dist/vue2Dropzone.min.css';\nimport { useProject } from '@/modules/project';\nimport { useSnackbar } from '@/modules/snackbar';\nimport { ImportedProject, ProjectOverview } from '@/models/projects/interfaces';\nimport { translate } from '@/localization/index';\nimport DialogTitle from '@/components/common/dialog-title/index.vue';\nimport InfoTooltip from '@/components/common/tooltip-helper/index.vue';\nimport ImportInfo from '@/components/projects/import-project/import-info/index.vue';\nimport Loader from '@/components/loader/index.vue';\nimport Confirm from '@/components/common/confirm/index.vue';\nimport { NstGenerelt } from '@/models/standards/ns3459/interfaces';\nimport Calculations from '@/components/projects/calculations/index.vue';\nimport { CALCULATION_BY_PROFESSION } from '@/constants/table-headers';\nimport { useExport } from '@/modules/export';\nimport { ExportType } from '@/constants/enum';\nimport { PROJECT_CALCULATION_PATH } from '@/constants/routes';\nimport { useCalculation } from '@/modules/calculation';\nimport router from '@/router';\n\nenum ImportMethod {\n FromFile,\n FromCalculations,\n}\n\ninterface ProjectFilter {\n search: string;\n}\n\nexport default defineComponent({\n props: {\n isMenuitem: {\n type: Boolean,\n },\n parent: {\n type: Object as PropType,\n },\n },\n components: {\n vueDropzone: vue2Dropzone,\n DialogTitle,\n InfoTooltip,\n Calculations,\n ImportInfo,\n Loader,\n Confirm,\n },\n setup({ parent }) {\n const {\n parseProjectFile,\n importProject,\n createImportProject,\n } = useImport();\n const {\n getProjects,\n refreshActiveProject,\n setActiveProject,\n projects,\n activeProjectOverview,\n } = useProject();\n const { setActiveCalculation } = useCalculation();\n\n const dialog = ref(false);\n const loading = ref(false);\n const importingCalculation = ref();\n const includeAmount = ref(true);\n const includeDialog = ref(false);\n const projectFile = ref();\n const importing = ref(false);\n const navigateToCalc = ref(true);\n const importZone = ref();\n const validating = ref(false);\n const newProject = ref();\n const generalInfo = ref();\n const method = ref(ImportMethod.FromCalculations);\n const filter = ref({\n search: '',\n });\n const newName = ref();\n\n const valid = computed(() => {\n return (\n newProject.value &&\n generalInfo.value &&\n projectFile.value &&\n newProject.value.Project.Name &&\n newProject.value.Project.ProjectNumber\n );\n });\n\n const filteredProjects = computed(() => {\n if (projects?.value && projects.value.length > 0) {\n let filtered: Array = projects.value;\n if (filter.value.search) {\n filtered = filtered.filter(p => {\n return (\n p.Name.toUpperCase().includes(\n filter.value.search.toUpperCase()\n ) ||\n p.Children.find(c =>\n c.Name.toUpperCase().includes(filter.value.search.toUpperCase())\n )\n );\n });\n }\n return filtered;\n }\n });\n\n const fileOk = computed(() => {\n return newProject.value && generalInfo.value && projectFile.value;\n });\n\n onMounted(async () => {\n await getProjects();\n });\n\n const validateImport = async (file: File) => {\n validating.value = true;\n projectFile.value = file;\n importZone.value && importZone.value.removeAllFiles();\n if (file.type === 'application/json' || file.type === 'text/xml') {\n try {\n const ns = await parseProjectFile(file);\n if (ns) {\n generalInfo.value = ns.genereltField;\n newProject.value = await createImportProject(ns, parent);\n }\n } catch (e) {\n console.log(e);\n }\n\n if (valid.value) {\n importZone.value.disable();\n } else {\n projectFile.value = undefined;\n }\n importZone.value && importZone.value.removeAllFiles();\n } else {\n projectFile.value = undefined;\n importZone.value && importZone.value.removeAllFiles();\n }\n validating.value = false;\n };\n\n const removeCalc = (calcId: string) => {\n if (\n newProject.value &&\n newProject.value.Children &&\n newProject.value.Children.length > 0\n ) {\n const calcIndex = newProject.value.Children.findIndex(\n calc => calc.Project && calc.Project.Id === calcId\n );\n\n if (calcIndex >= 0) {\n newProject.value.Children.splice(calcIndex, 1);\n }\n }\n };\n\n const cancel = () => {\n projectFile.value = undefined;\n newProject.value = undefined;\n generalInfo.value = undefined;\n importingCalculation.value = undefined;\n importing.value = false;\n includeDialog.value = false;\n includeAmount.value = true;\n\n filter.value = {\n search: '',\n };\n if (importZone.value) importZone.value.enable();\n };\n\n const switchMethod = (newMethod: ImportMethod) => {\n cancel();\n method.value = newMethod;\n };\n\n const close = () => {\n projectFile.value = undefined;\n newProject.value = undefined;\n generalInfo.value = undefined;\n filter.value = {\n search: '',\n };\n method.value = ImportMethod.FromCalculations;\n importingCalculation.value = undefined;\n importing.value = false;\n includeDialog.value = false;\n newName.value = undefined;\n includeAmount.value = true;\n navigateToCalc.value = true;\n dialog.value = false;\n };\n\n const handleError = (file: File, message: string) => {\n const { snack } = useSnackbar();\n importZone.value.removeFile(file);\n if (!message.includes('Upload')) {\n snack(message, false);\n }\n };\n\n const importCalculation = async (calculation: ProjectOverview) => {\n importingCalculation.value = calculation;\n newName.value = calculation.Name;\n includeDialog.value = true;\n };\n\n const importCalc = async () => {\n const { exportProject } = useExport();\n const { createImportProject, importProject } = useImport();\n\n if (\n !importingCalculation.value ||\n !projects?.value ||\n !importingCalculation.value.Id\n )\n return;\n\n importing.value = true;\n\n const nsProject = await exportProject(\n importingCalculation.value.Id,\n false,\n ExportType.JSON\n );\n\n if (parent && nsProject) {\n const newImport = await createImportProject(\n nsProject,\n parent,\n newName.value,\n includeAmount.value\n );\n\n if (newImport) {\n const success = await importProject(newImport);\n if (success) {\n await getProjects(true);\n if (navigateToCalc.value && projects.value) {\n const newActiveProj = projects.value.find(proj =>\n proj.Children.some(calc => calc.Id === newImport.Project.Id)\n );\n\n if (\n newActiveProj &&\n activeProjectOverview.value &&\n newActiveProj.Id === activeProjectOverview.value.Id\n ) {\n close();\n await refreshActiveProject();\n } else if (newActiveProj?.Id) {\n await setActiveProject(newActiveProj.Id, false);\n }\n\n if (newActiveProj) {\n const calc = newActiveProj.Children.find(\n calc => calc.Id === newImport.Project.Id\n );\n if (calc) {\n await setActiveCalculation(calc);\n await router.push(PROJECT_CALCULATION_PATH);\n }\n }\n } else {\n await refreshActiveProject();\n }\n }\n }\n }\n\n importing.value = false;\n close();\n };\n\n const abort = () => {\n importingCalculation.value = undefined;\n includeDialog.value = false;\n newName.value = undefined;\n };\n\n const submit = async () => {\n loading.value = true;\n if (valid.value && newProject.value) {\n let imported = false;\n imported = await importProject(newProject.value);\n if (imported) {\n await getProjects(true);\n await refreshActiveProject();\n close();\n }\n }\n\n loading.value = false;\n };\n\n return {\n cancel,\n close,\n validateImport,\n handleError,\n submit,\n removeCalc,\n switchMethod,\n importCalculation,\n abort,\n importCalc,\n loading,\n importZone,\n projectFile,\n dialog,\n valid,\n fileOk,\n validating,\n newProject,\n generalInfo,\n method,\n ImportMethod,\n filter,\n filteredProjects,\n importing,\n includeDialog,\n includeAmount,\n navigateToCalc,\n newName,\n importingCalculation,\n CALCULATION_BY_PROFESSION,\n dropzoneOptions: {\n autoProcessQueue: false,\n url: 'http://localhost',\n thumbnailWidth: 150,\n maxFilesize: 3,\n maxFiles: 1,\n acceptedFiles: '.xml,.json',\n dictDefaultMessage: `${translate(\n 'project.import-project-default-message'\n )}`,\n },\n rules: {\n required: (v: string) => !!v || `${translate('validation.required')}`,\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=0ed37988&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=0ed37988&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0ed37988\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VBtnToggle } from 'vuetify/lib/components/VBtnToggle';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VExpansionPanel } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelContent } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelHeader } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanels } from 'vuetify/lib/components/VExpansionPanel';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemSubtitle } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VAlert,VBtn,VBtnToggle,VCard,VCardActions,VCardText,VCardTitle,VCheckbox,VCol,VContainer,VDialog,VDivider,VExpansionPanel,VExpansionPanelContent,VExpansionPanelHeader,VExpansionPanels,VIcon,VListItem,VListItemContent,VListItemIcon,VListItemSubtitle,VListItemTitle,VRow,VSpacer,VSubheader,VTextField,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',[_c('v-img',{staticClass:\"start-new\",attrs:{\"src\":require(\"@/assets/images/start_project.png\"),\"max-height\":\"500\",\"max-width\":\"800\"}},[_c('div',{staticClass:\"first-project\"},[_c('div',{staticClass:\"start-title\"},[_vm._v(\" \"+_vm._s(_vm.title)+\" \")]),_c('p',{staticClass:\"start-info\"},[_vm._t(\"message\"),_vm._v(\" \"+_vm._s(_vm.message)+\" \")],2),_c('div',{staticClass:\"start-actions\"},[_vm._t(\"actions\")],2)])])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\n\nexport default defineComponent({\n props: {\n title: {\n type: String,\n required: true,\n },\n message: {\n type: String,\n },\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=71da8c2c&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=71da8c2c&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"71da8c2c\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCol,VContainer,VImg,VRow})\n","import { ProjectOverview } from '@/models/projects/interfaces';\n\nexport const projectSumTotal = (project: ProjectOverview) => {\n let total = 0;\n\n if (project.Children) {\n project.Children.forEach(calc => {\n total += calc.Total != null ? calc.Total : 0;\n });\n }\n\n return total;\n};\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, onMounted, ref } from '@vue/composition-api';\nimport { useProject } from '@/modules/project';\nimport NewProject from '@/components/projects/new-project/index.vue';\nimport NewCalculation from '@/components/projects/new-calculation/index.vue';\nimport moment from 'moment';\nimport {\n getIconByProfessionCode,\n getNameByProfessionCode,\n} from '@/helpers/common';\nimport Calculations from '@/components/projects/calculations/index.vue';\nimport DeleteProject from '@/components/projects/delete-project/index.vue';\nimport { ProjectStartFilter } from '@/constants/enum';\nimport ExportProject from '@/components/projects/export-project/index.vue';\nimport ImportProject from '@/components/projects/import-project/index.vue';\nimport ImportCalculation from '@/components/projects/import-calculation/index.vue';\nimport { PROJECT_HEADERS } from '@/constants/table-headers';\nimport KalkHelper from '@/components/common/kalk-helper/index.vue';\nimport ContentBar from '@/components/common/content-bar/index.vue';\nimport { projectSumTotal } from '@/helpers/project';\nimport { ProjectOverview } from '@/models/projects/interfaces';\n\ninterface RowEvent {\n isExpanded: boolean;\n}\n\nexport default defineComponent({\n components: {\n NewProject,\n NewCalculation,\n ImportCalculation,\n Calculations,\n DeleteProject,\n ExportProject,\n ImportProject,\n KalkHelper,\n ContentBar,\n },\n setup() {\n const {\n getProjects,\n setActiveProject,\n deleteProject,\n firstProject,\n filteredProjects,\n projectFilter,\n } = useProject();\n\n const searchValue = ref('');\n const expanded = ref>([]);\n const loadingId = ref>();\n const loading = ref(false);\n\n const updateFilterWithProfessionCode = async (code: string) => {\n if (projectFilter.value && projectFilter.value.professionCode === code) {\n projectFilter.value.professionCode = undefined;\n return;\n }\n projectFilter.value.professionCode = code;\n };\n\n onMounted(async () => {\n loading.value = true;\n await getProjects();\n loading.value = false;\n });\n\n const handleClick = async (item: ProjectOverview) => {\n if (item.Id) {\n loadingId.value = item.Id;\n await setActiveProject(item.Id, true);\n loadingId.value = null;\n }\n };\n\n const clickRow = (item: number, event: RowEvent) => {\n if (event.isExpanded) {\n const index = expanded.value.findIndex(i => i === item);\n expanded.value.splice(index, 1);\n } else {\n expanded.value.push(item);\n }\n };\n\n return {\n getIconByProfessionCode,\n getNameByProfessionCode,\n handleClick,\n deleteProject,\n clickRow,\n projectSumTotal,\n updateFilterWithProfessionCode,\n moment,\n expanded,\n projectFilter,\n filteredProjects,\n searchValue,\n firstProject,\n PROJECT_HEADERS,\n ProjectStartFilter,\n loadingId,\n loading,\n documentationUrl: process.env.VUE_APP_DOCUMENTATION_URL,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=13f57ec8&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=13f57ec8&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"13f57ec8\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VBtnToggle } from 'vuetify/lib/components/VBtnToggle';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VExpansionPanel } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelContent } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelHeader } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanels } from 'vuetify/lib/components/VExpansionPanel';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemGroup } from 'vuetify/lib/components/VList';\nimport { VListItemSubtitle } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VAlert,VBtn,VBtnToggle,VCol,VExpansionPanel,VExpansionPanelContent,VExpansionPanelHeader,VExpansionPanels,VIcon,VList,VListItem,VListItemContent,VListItemGroup,VListItemSubtitle,VListItemTitle,VMenu,VRow,VSkeletonLoader,VTextField})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\nimport Projects from '@/components/projects/index.vue';\nimport ContentBar from '@/components/common/content-bar/index.vue';\nimport ImportProject from '@/components/projects/import-project/index.vue';\nimport NewProject from '@/components/projects/new-project/index.vue';\nimport { useProject } from '@/modules/project';\n\nexport default defineComponent({\n components: {\n Projects,\n ContentBar,\n ImportProject,\n NewProject,\n },\n name: 'Start',\n setup() {\n const { firstProject } = useProject();\n return { firstProject };\n },\n});\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Start.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Start.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Start.vue?vue&type=template&id=9da8d7de&scoped=true&\"\nimport script from \"./Start.vue?vue&type=script&lang=ts&\"\nexport * from \"./Start.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Start.vue?vue&type=style&index=0&id=9da8d7de&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9da8d7de\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VContainer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VContainer})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('content-bar',{attrs:{\"title\":_vm.$t('titles.pricebook')},scopedSlots:_vm._u([{key:\"content-right\",fn:function(){return [_c('download-pricelist'),_c('import-pricelist'),_c('upload-pricelist')]},proxy:true}])}),_c('v-container',{staticClass:\"grey lighten-5\"},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"3\"}},[_c('pricelists')],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"9\"}},[_c('itemlist')],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('content-bar',{attrs:{\"small\":true,\"title\":_vm.$t('titles.pricelists')}}),_c('v-card',{staticClass:\"pa-2\",attrs:{\"tile\":\"\"}},[_c('v-toolbar',{attrs:{\"flat\":\"\",\"dense\":\"\"}},[_c('v-text-field',{attrs:{\"append-icon\":\"mdi-magnify\",\"label\":_vm.$t('common.search'),\"single-line\":\"\",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}})],1),_c('v-subheader',[_vm._v(_vm._s(_vm.$t('titles.company-pricelists')))]),(_vm.loadingPricelists)?_c('loader',{attrs:{\"margins\":true}}):[_c('perfect-scrollbar',{attrs:{\"options\":{\n suppressScrollX: true,\n }}},[_c('v-treeview',{ref:\"treeRef\",attrs:{\"active\":_vm.active,\"items\":_vm.pricelists,\"item-children\":\"categories\",\"load-children\":_vm.getCategories,\"open\":_vm.open,\"item-text\":\"Name\",\"item-key\":\"Id\",\"search\":_vm.search,\"selection-type\":\"independent\",\"color\":\"primary\",\"open-on-click\":\"\",\"activatable\":\"\",\"transition\":\"\",\"dense\":\"\"},on:{\"update:active\":[function($event){_vm.active=$event},_vm.onActiveChangeEvent],\"update:open\":[function($event){_vm.open=$event},_vm.onOpenEvent]},scopedSlots:_vm._u([{key:\"prepend\",fn:function(ref){\n var item = ref.item;\nreturn [(!item.categories)?_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" mdi-group \")]):_vm._e()]}},{key:\"append\",fn:function(ref){\n var item = ref.item;\nreturn [(item.categories && item.categories.length)?_c('span',[_vm._v(\" \"+_vm._s((\"(\" + (item.categories.length) + \")\"))+\" \")]):(item.categories && item.categories.length === 0)?_c('v-icon',{attrs:{\"color\":\"primary\",\"left\":\"\"}},[_vm._v(\" mdi-cloud-download-outline \")]):_vm._e(),(\n (item.categories && item.categories.length) ||\n (item.categories && item.categories.length === 0)\n )?_c('v-menu',{attrs:{\"close-on-content-click\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var menu = ref.on;\n var attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\",\"small\":\"\"}},'v-btn',attrs,false),Object.assign({}, menu)),[_c('v-icon',[_vm._v(\"mdi-dots-vertical\")])],1)]}}],null,true)},[_c('v-list',{attrs:{\"dense\":\"\"}},[_c('v-list-item-group',{attrs:{\"color\":\"primary\"}},[(!item.IsSubscription)?_c('add-category',{attrs:{\"pricelist\":item},on:{\"update\":_vm.updatePriceLists}}):_vm._e(),(!item.CompanyPriceList)?_c('delete-pricelist',{attrs:{\"pricelist\":item},on:{\"update\":_vm.updatePriceLists}}):_vm._e()],1)],1)],1):_vm._e(),(!item.categories)?_c('v-menu',{attrs:{\"close-on-content-click\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var menu = ref.on;\n var attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\",\"small\":\"\"}},'v-btn',attrs,false),Object.assign({}, menu)),[_c('v-icon',[_vm._v(\"mdi-dots-vertical\")])],1)]}}],null,true)},[_c('v-list',{attrs:{\"dense\":\"\"}},[_c('v-list-item-group',{attrs:{\"color\":\"primary\"}},[(!item.IsSubscription)?_c('add-item',{attrs:{\"category\":item},on:{\"update\":_vm.updatePriceLists}}):_vm._e(),(!item.IsSubscription)?_c('delete-category',{attrs:{\"category\":item},on:{\"update\":_vm.updatePriceLists}}):_vm._e()],1)],1)],1):_vm._e()]}}])})],1)]],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"max-width\":\"900px\"},on:{\"click:outside\":_vm.close},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-list-item',_vm._g(_vm._b({},'v-list-item',attrs,false),on),[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"titles.add-item\")))]),_c('v-list-item-icon',[_c('v-icon',{attrs:{\"right\":\"\",\"color\":\"secondary\"}},[_vm._v(\"mdi-plus\")])],1)],1)]}}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',{attrs:{\"flat\":\"\",\"tile\":\"\"}},[_c('v-form',{attrs:{\"id\":\"item-form\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.submit.apply(null, arguments)}}},[_c('dialog-title',{attrs:{\"headerText\":((_vm.$t(\"titles.add-item\")) + \" - \" + (_vm.category.Name))},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":_vm.close}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)]},proxy:true}])}),(_vm.item)?_c('v-card-text',{staticClass:\"edit-content\"},[_c('v-subheader',{staticClass:\"field-name\"},[_vm._v(\" \"+_vm._s(_vm.$t('titles.product-information'))+\" \")]),_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"8\"}},[_c('v-text-field',{attrs:{\"rules\":[_vm.rules.required],\"clearable\":\"\",\"dense\":\"\",\"outlined\":\"\",\"placeholder\":_vm.$t('labels.name'),\"label\":_vm.$t('labels.name')},model:{value:(_vm.item.Name),callback:function ($$v) {_vm.$set(_vm.item, \"Name\", $$v)},expression:\"item.Name\"}})],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-text-field',{attrs:{\"clearable\":\"\",\"dense\":\"\",\"outlined\":\"\",\"placeholder\":_vm.$t('headers.itemnumber'),\"label\":_vm.$t('headers.itemnumber'),\"type\":\"number\"},model:{value:(_vm.item.ItemNumber),callback:function ($$v) {_vm.$set(_vm.item, \"ItemNumber\", _vm._n($$v))},expression:\"item.ItemNumber\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-text-field',{attrs:{\"clearable\":\"\",\"dense\":\"\",\"outlined\":\"\",\"placeholder\":_vm.$t('labels.description'),\"label\":_vm.$t('labels.description')},model:{value:(_vm.item.Description),callback:function ($$v) {_vm.$set(_vm.item, \"Description\", $$v)},expression:\"item.Description\"}})],1),_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('v-text-field',{attrs:{\"clearable\":\"\",\"dense\":\"\",\"outlined\":\"\",\"placeholder\":_vm.$t('labels.unit'),\"label\":_vm.$t('labels.unit')},model:{value:(_vm.item.Unit),callback:function ($$v) {_vm.$set(_vm.item, \"Unit\", $$v)},expression:\"item.Unit\"}})],1),_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('v-text-field',{attrs:{\"clearable\":\"\",\"dense\":\"\",\"outlined\":\"\",\"placeholder\":_vm.$t('headers.itemsinpackage'),\"label\":_vm.$t('headers.itemsinpackage')},model:{value:(_vm.item.ItemsInPackage),callback:function ($$v) {_vm.$set(_vm.item, \"ItemsInPackage\", $$v)},expression:\"item.ItemsInPackage\"}})],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-text-field',{attrs:{\"clearable\":\"\",\"dense\":\"\",\"outlined\":\"\",\"placeholder\":_vm.$t('labels.price'),\"label\":_vm.$t('labels.price'),\"type\":\"number\"},model:{value:(_vm.item.BasePrice),callback:function ($$v) {_vm.$set(_vm.item, \"BasePrice\", _vm._n($$v))},expression:\"item.BasePrice\"}})],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-text-field',{attrs:{\"clearable\":\"\",\"dense\":\"\",\"outlined\":\"\",\"placeholder\":_vm.$t('labels.discount'),\"label\":_vm.$t('labels.discount'),\"type\":\"number\"},model:{value:(_vm.item.DiscountPercentage),callback:function ($$v) {_vm.$set(_vm.item, \"DiscountPercentage\", _vm._n($$v))},expression:\"item.DiscountPercentage\"}})],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-text-field',{attrs:{\"clearable\":\"\",\"dense\":\"\",\"outlined\":\"\",\"placeholder\":_vm.$t('headers.nobbnumber'),\"label\":_vm.$t('headers.nobbnumber'),\"type\":\"number\"},model:{value:(_vm.item.NOBBNumber),callback:function ($$v) {_vm.$set(_vm.item, \"NOBBNumber\", _vm._n($$v))},expression:\"item.NOBBNumber\"}})],1)],1)],1)],1):_vm._e(),_c('v-card-actions',{staticClass:\"edit-actions\"},[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"secondary\",\"type\":\"submit\",\"disabled\":!_vm.valid,\"loading\":_vm.loading}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.add'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-check\")])],1),_c('v-btn',{on:{\"click\":_vm.close}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.close'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-close\")])],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport {\n BlobPriceListCategoryOverview,\n PriceListItem,\n} from '@/models/pricebook/interfaces';\nimport {\n defineComponent,\n ref,\n PropType,\n computed,\n onMounted,\n} from '@vue/composition-api';\nimport DialogTitle from '@/components/common/dialog-title/index.vue';\nimport { translate } from '@/localization';\nimport { usePriceBook } from '@/modules/pricebook';\nimport { v4 as uuidv4 } from 'uuid';\n\nexport default defineComponent({\n components: {\n DialogTitle,\n },\n props: {\n category: {\n type: Object as PropType,\n required: true,\n },\n },\n setup(props, { emit }) {\n const { insertPriceListItem } = usePriceBook();\n const dialog = ref(false);\n const loading = ref(false);\n const item = ref();\n\n const close = () => {\n dialog.value = false;\n };\n\n const valid = computed(() => {\n return true;\n });\n\n onMounted(() => {\n if (props.category) {\n item.value = {\n Id: uuidv4(),\n Name: null,\n ItemNumber: null,\n NOBBNumber: null,\n BasePrice: null,\n DiscountPercentage: null,\n Unit: null,\n ItemsInPackage: null,\n PackageUnitDesc: null,\n Description: null,\n Price: null,\n };\n }\n });\n\n const submit = async () => {\n loading.value = true;\n if (item.value) {\n //Without NOBBnumber it cannot be found in pricesearch, 9 is the number associated with \"Egendefinert\", adding in shadow if not set\n item.value.NOBBNumber = item.value.NOBBNumber ?? 9;\n await insertPriceListItem(props.category, item.value);\n emit('update', true);\n }\n loading.value = false;\n close();\n };\n\n return {\n close,\n submit,\n dialog,\n valid,\n loading,\n item,\n rules: {\n required: (v: string) => !!v || `${translate('validation.required')}`,\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=19f32c12&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VContainer,VDialog,VForm,VIcon,VListItem,VListItemIcon,VListItemTitle,VRow,VSpacer,VSubheader,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"max-width\":\"500\"},on:{\"click:outside\":_vm.close},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-list-item',_vm._g(_vm._b({attrs:{\"color\":\"secondary\"}},'v-list-item',attrs,false),on),[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"titles.add-category\")))]),_c('v-list-item-icon',[_c('v-icon',{attrs:{\"right\":\"\",\"color\":\"secondary\"}},[_vm._v(\"mdi-plus\")])],1)],1)]}}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',{attrs:{\"flat\":\"\",\"tile\":\"\"}},[_c('v-form',{attrs:{\"id\":\"category-form\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.submit.apply(null, arguments)}},model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('dialog-title',{attrs:{\"headerText\":_vm.$t(\"titles.add-category\")},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":_vm.close}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)]},proxy:true}])}),_c('v-card-text',{staticClass:\"pa-5\"},[_c('v-text-field',{attrs:{\"autofocus\":\"\",\"required\":\"\",\"clearable\":\"\",\"outlined\":\"\",\"dense\":\"\",\"rules\":[_vm.rules.required, _vm.rules.min],\"label\":_vm.$t('labels.name'),\"placeholder\":_vm.$t('labels.name')},model:{value:(_vm.categoryName),callback:function ($$v) {_vm.categoryName=$$v},expression:\"categoryName\"}})],1),_c('v-card-actions',{staticClass:\"category-actions\"},[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"secondary\",\"type\":\"submit\",\"disabled\":!_vm.valid}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.add'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-check\")])],1),_c('v-btn',{on:{\"click\":_vm.close}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.close'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-close\")])],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { translate } from '@/localization';\nimport { PriceListTreeNode, VareKategori } from '@/models/pricebook/interfaces';\nimport { usePriceBook } from '@/modules/pricebook';\nimport { defineComponent, PropType, ref } from '@vue/composition-api';\nimport DialogTitle from '@/components/common/dialog-title/index.vue';\n\nexport default defineComponent({\n components: {\n DialogTitle,\n },\n props: {\n pricelist: {\n type: Object as PropType,\n required: true,\n },\n },\n setup(props, { emit }) {\n const { addNewCategoryToPriceList } = usePriceBook();\n\n const dialog = ref(false);\n const categoryName = ref();\n\n const close = () => {\n dialog.value = false;\n };\n\n const valid = ref();\n\n const submit = async () => {\n if (props.pricelist.Id && valid && categoryName.value) {\n const category: VareKategori = {\n Number: '',\n Text: categoryName.value,\n Varer: [],\n };\n await addNewCategoryToPriceList(props.pricelist.Id, category, true);\n emit('update', true);\n }\n };\n return {\n close,\n submit,\n valid,\n dialog,\n categoryName,\n rules: {\n required: (v: string) => !!v || translate('validation.required'),\n min: (v: string) =>\n (v && v.length >= 3) ||\n translate('validation.minimum-characters', [3]),\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=7962e830&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VDialog,VForm,VIcon,VListItem,VListItemIcon,VListItemTitle,VSpacer,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('confirm',{scopedSlots:_vm._u([{key:\"activator-element\",fn:function(){return [_c('v-list-item',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('buttons.delete-pricelist')))]),_c('v-list-item-icon',[_c('v-icon',{attrs:{\"color\":\"error\",\"right\":\"\"}},[_vm._v(\"mdi-delete\")])],1)],1)]},proxy:true},{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(((_vm.$t('common.delete')) + \" \" + (_vm.pricelist.Name) + \"?\"))+\" \")]},proxy:true},{key:\"text\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('info.delete-pricelist'))+\" \")]},proxy:true},{key:\"accept\",fn:function(){return [_c('v-btn',{attrs:{\"color\":\"secondary\",\"loading\":_vm.loading,\"disabled\":!_vm.valid},on:{\"click\":_vm.deleteEvent}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.confirm'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-check\")])],1)]},proxy:true}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { ref, defineComponent, PropType } from '@vue/composition-api';\nimport Confirm from '@/components/common/confirm/index.vue';\nimport { usePriceBook } from '@/modules/pricebook';\nimport { PriceListTreeNode } from '@/models/pricebook/interfaces';\n\nexport default defineComponent({\n components: {\n Confirm,\n },\n props: {\n pricelist: {\n type: Object as PropType,\n required: true,\n },\n },\n setup(props, { emit }) {\n const { deletePricelist } = usePriceBook();\n const valid = ref(false);\n const loading = ref(false);\n const dialog = ref(false);\n\n const deleteEvent = async () => {\n loading.value = true;\n if (props.pricelist.Id && props.pricelist.IsSubscription != null) {\n await deletePricelist(\n props.pricelist.Id,\n props.pricelist.IsSubscription\n );\n emit('update', true);\n }\n loading.value = false;\n };\n\n valid.value = props.pricelist != null;\n\n return {\n loading,\n valid,\n dialog,\n deleteEvent,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=64ca201b&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"64ca201b\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\ninstallComponents(component, {VBtn,VIcon,VListItem,VListItemIcon,VListItemTitle})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('confirm',{scopedSlots:_vm._u([{key:\"activator-element\",fn:function(){return [_c('v-list-item',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('buttons.delete-category')))]),_c('v-list-item-icon',[_c('v-icon',{attrs:{\"color\":\"error\",\"right\":\"\"}},[_vm._v(\"mdi-delete\")])],1)],1)]},proxy:true},{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(((_vm.$t('common.delete')) + \" \" + (_vm.category.Name) + \"?\"))+\" \")]},proxy:true},{key:\"text\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('info.delete-category'))+\" \")]},proxy:true},{key:\"accept\",fn:function(){return [_c('v-btn',{attrs:{\"color\":\"secondary\",\"loading\":_vm.loading,\"disabled\":!_vm.valid},on:{\"click\":_vm.deleteEvent}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.confirm'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-check\")])],1)]},proxy:true}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { ref, defineComponent, PropType } from '@vue/composition-api';\nimport Confirm from '@/components/common/confirm/index.vue';\nimport { BlobPriceListCategoryOverview } from '@/models/pricebook/interfaces';\nimport { usePriceBook } from '@/modules/pricebook';\n\nexport default defineComponent({\n components: {\n Confirm,\n },\n props: {\n category: {\n type: Object as PropType,\n required: true,\n },\n },\n setup(props, { emit }) {\n const { deleteCategoryFromPriceList } = usePriceBook();\n const valid = ref(false);\n const loading = ref(false);\n const dialog = ref(false);\n\n const deleteEvent = async () => {\n loading.value = true;\n await deleteCategoryFromPriceList(props.category);\n loading.value = false;\n emit('update', true);\n };\n\n valid.value = true;\n\n return {\n loading,\n valid,\n dialog,\n deleteEvent,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=efcd010a&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"efcd010a\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\ninstallComponents(component, {VBtn,VIcon,VListItem,VListItemIcon,VListItemTitle})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { usePriceBook } from '@/modules/pricebook';\nimport { defineComponent, onMounted, ref } from '@vue/composition-api';\nimport Loader from '@/components/loader/index.vue';\nimport ContentBar from '@/components/common/content-bar/index.vue';\nimport { PriceListTreeNode } from '@/models/pricebook/interfaces';\nimport AddItem from '@/components/pricebook/add-item/index.vue';\nimport AddCategory from '@/components/pricebook/add-category/index.vue';\nimport DeletePricelist from '@/components/pricebook/delete-pricelist/index.vue';\nimport DeleteCategory from '@/components/pricebook/delete-category/index.vue';\n\nexport default defineComponent({\n components: {\n Loader,\n ContentBar,\n AddItem,\n AddCategory,\n DeleteCategory,\n DeletePricelist,\n },\n setup() {\n const {\n getPriceLists,\n getPriceListCategoriesOverview,\n destroyDownloaded,\n downloadCategory,\n setActivePricelist,\n setActivePricelistCategory,\n pricelists,\n loadingPricelists,\n activePricelist,\n } = usePriceBook();\n\n const search = ref('');\n\n const active = ref>([]);\n const open = ref>([]);\n\n const getCategories = async (item: PriceListTreeNode) => {\n if (item.Id) {\n item.categories = await getPriceListCategoriesOverview(item);\n }\n };\n\n const onActiveChangeEvent = async () => {\n const getListByCategory = (categoryId: string) => {\n return pricelists.value?.find(pl =>\n pl.categories?.some(c => c.Id === categoryId)\n );\n };\n destroyDownloaded();\n\n if (!pricelists.value) return;\n\n const list = getListByCategory(active.value[0]);\n if (list && list.categories) {\n const category = list.categories.find(c => c.Id === active.value[0]);\n if (category) {\n await downloadCategory(category);\n setActivePricelistCategory(category);\n }\n }\n };\n\n const onOpenEvent = (openNodes: Array) => {\n if (openNodes.length > 1) {\n open.value.splice(0, 1);\n }\n\n if (pricelists.value) {\n const newOpened = pricelists.value?.find(pl => pl.Id === open.value[0]);\n if (newOpened) {\n destroyDownloaded(true);\n setActivePricelist(newOpened);\n }\n }\n };\n\n const updatePriceLists = async (reload: boolean) => {\n await getPriceLists(reload);\n };\n\n onMounted(async () => {\n await getPriceLists();\n });\n\n return {\n getCategories,\n onActiveChangeEvent,\n updatePriceLists,\n onOpenEvent,\n selectedItem: 1,\n loadingPricelists,\n pricelists,\n activePricelist,\n active,\n open,\n search,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=5ff1f949&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=5ff1f949&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5ff1f949\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItemGroup } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\nimport { VTreeview } from 'vuetify/lib/components/VTreeview';\ninstallComponents(component, {VBtn,VCard,VIcon,VList,VListItemGroup,VMenu,VSubheader,VTextField,VToolbar,VTreeview})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{staticClass:\"pricelist-table-card\",attrs:{\"tile\":\"\",\"flat\":\"\"}},[_c('content-bar',{attrs:{\"small\":true,\"title\":_vm.$t('titles.products'),\"breadcrumb\":_vm.priceListTitle},scopedSlots:_vm._u([{key:\"content-right\",fn:function(){return [_c('v-text-field',{staticClass:\"pricelist-search .d-none .d-sm-flex\",attrs:{\"append-icon\":\"mdi-magnify\",\"label\":_vm.$t('common.search'),\"single-line\":\"\",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}})]},proxy:true}])}),_c('v-data-table',{staticClass:\"elevation-2 pricelist-items\",attrs:{\"headers\":_vm.PRICELIST_ITEM_HEADERS,\"items\":_vm.activePriceListItems,\"loading\":_vm.loading,\"search\":_vm.search,\"loading-text\":_vm.$t('info.loading'),\"no-data-text\":_vm.$t('info.no-data'),\"no-results-text\":_vm.$t('info.no-result'),\"footer-props\":{\n itemsPerPageText: _vm.$t('info.item-rows'),\n }},scopedSlots:_vm._u([_vm._l((_vm.PRICELIST_ITEM_HEADERS),function(h){return {key:(\"header.\" + (h.value)),fn:function(ref){return [_c('v-row',{key:h.text,attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-tooltip',{attrs:{\"bottom\":\"\",\"max-width\":\"350\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\nreturn [(h.text)?_c('span',_vm._g({},on),[_vm._v(\" \"+_vm._s(_vm.$t((\"headers.\" + (h.text.toLowerCase()))))+\" \")]):_vm._e()]}}],null,true)},[(h.text)?_c('span',[_vm._v(_vm._s(_vm.$t((\"headers-description.\" + (h.text.toLowerCase())))))]):_vm._e()])],1)],1)]}}}),{key:\"item.actions\",fn:function(ref){\n var item = ref.item;\nreturn [_c('v-row',{attrs:{\"justify\":\"center\",\"dense\":\"\"}},[_c('v-menu',{staticClass:\"action-menu\",attrs:{\"left\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var menu = ref.on;\n var attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"action-menu\",attrs:{\"icon\":\"\",\"color\":\"primary\"}},'v-btn',attrs,false),Object.assign({}, menu)),[_c('v-icon',[_vm._v(\"mdi-dots-vertical\")])],1)]}}],null,true)},[_c('v-list',{attrs:{\"dense\":\"\"}},[_c('v-list-item-group',{attrs:{\"color\":\"primary\"}},[(_vm.activePricelist && !_vm.activePricelist.IsSubscription)?_c('edit-item',{attrs:{\"item\":item}}):_vm._e(),(_vm.activePricelist && !_vm.activePricelist.IsSubscription)?_c('delete-item',{attrs:{\"item\":item}}):_vm._e(),(_vm.activePricelist && !_vm.activePricelist.CompanyPriceList)?_c('copy-item',{attrs:{\"item\":item}}):_vm._e(),_c('v-divider'),(item.NOBBNumber)?_c('nobb-info',{attrs:{\"nobbNr\":item.NOBBNumber}}):_vm._e()],1)],1)],1)],1)]}},{key:\"item.Price\",fn:function(ref){\n var item = ref.item;\nreturn [(_vm.calculatedPrice(item) != null)?_c('div',[_vm._v(\" \"+_vm._s(_vm.calculatedPrice(item).toLocaleString(_vm.$i18n.locale, { maximumFractionDigits: 2, }))+\" \")]):_vm._e()]}},{key:\"item.BasePrice\",fn:function(ref){\n var item = ref.item;\nreturn [(item.BasePrice != null)?_c('div',[_vm._v(\" \"+_vm._s(item.BasePrice.toLocaleString(_vm.$i18n.locale, { maximumFractionDigits: 2, }))+\" \")]):_vm._e()]}}],null,true)})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"max-width\":!_vm.loading && _vm.nobbItem ? 1500 : 500,\"retain-focus\":false},on:{\"click:outside\":_vm.close},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){return [(_vm.button)?_c('v-btn',{staticClass:\"ma-2\",attrs:{\"color\":\"primary\",\"small\":\"\"},on:{\"click\":_vm.initDialog}},[_vm._v(\" \"+_vm._s(_vm.$t('titles.nobb'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-information-outline\")])],1):(_vm.iconButton)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"color\":\"primary\",\"icon\":\"\"},on:{\"click\":_vm.initDialog}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-information-outline\")])],1)]}}],null,true)},[_c('span',[_vm._v(_vm._s(_vm.$t('titles.nobb')))])]):_c('v-list-item',{on:{\"click\":_vm.initDialog}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"titles.nobb\")))]),_c('v-list-item-icon',[_c('v-icon',{attrs:{\"right\":\"\",\"color\":\"primary\"}},[_vm._v(\"mdi-information-outline\")])],1)],1)]}}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',{attrs:{\"flat\":\"\",\"tile\":\"\"}},[_c('v-card-title',{staticClass:\"nobb-title\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"titles.nobb\"))+\" \"),_c('v-spacer'),_c('v-img',{staticClass:\"nobb-image\",attrs:{\"height\":\"60\",\"max-width\":\"60\",\"contain\":true,\"src\":require(\"@/assets/images/byggtjeneste.svg\")}}),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":_vm.close}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1),_c('v-divider'),_c('perfect-scrollbar',{attrs:{\"options\":{\n suppressScrollX: true,\n }}},[_c('v-card-text',{staticClass:\"nobb-message\"},[(_vm.loading)?_c('loader',{attrs:{\"margins\":true}}):_vm._e(),(!_vm.loading && !_vm.nobbItem)?_c('v-alert',{attrs:{\"dense\":\"\",\"type\":\"info\",\"tile\":\"\",\"color\":\"orange\"}},[_vm._v(\" \"+_vm._s(_vm.$t('info.no-nobb'))+\" \")]):_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"7\"}},[_c('br'),_c('v-list',{attrs:{\"dense\":\"\",\"disabled\":\"\"}},[(_vm.nobbItem)?_c('v-list-item-group',[_c('v-subheader',[_vm._v(_vm._s(_vm.$t(\"nobb.category-productinfo\")))]),_c('v-list-item',[_c('v-list-item-content',[_vm._v(_vm._s(_vm.$t(\"nobb.number\")))]),_c('v-list-item-content',{staticClass:\"align-end font-weight-medium\"},[_vm._v(\" \"+_vm._s(_vm.nobbItem.nobbNumber)+\" \")])],1),(_vm.nobbItem.replacedByNobbNumber)?_c('v-list-item',[_c('v-list-item-content',[_vm._v(_vm._s(_vm.$t(\"nobb.replaced-number\")))]),_c('v-list-item-content',{staticClass:\"align-end font-weight-medium\"},[_vm._v(\" \"+_vm._s(_vm.nobbItem.replacedByNobbNumber)+\" \")])],1):_vm._e(),_c('v-list-item',[_c('v-list-item-content',[_vm._v(_vm._s(_vm.$t(\"nobb.product-text\")))]),_c('v-list-item-content',{staticClass:\"align-end font-weight-medium\"},[_vm._v(\" \"+_vm._s(_vm.nobbItem.secondaryText ? ((_vm.nobbItem.primaryText) + \" - \" + (_vm.nobbItem.secondaryText)) : _vm.nobbItem.primaryText)+\" \")])],1),_c('v-list-item',[_c('v-list-item-content',[_vm._v(_vm._s(_vm.$t(\"nobb.product-group-name\")))]),_c('v-list-item-content',{staticClass:\"align-end font-weight-medium\"},[_vm._v(\" \"+_vm._s(_vm.nobbItem.productGroupName)+\" \")])],1),_c('v-list-item',[_c('v-list-item-content',[_vm._v(_vm._s(_vm.$t(\"nobb.description\")))]),_c('v-list-item-content',{staticClass:\"align-end font-weight-medium\"},[_vm._v(\" \"+_vm._s(_vm.nobbItem.description)+\" \")])],1),(_vm.nobbItem.status)?_c('v-list-item',[_c('v-list-item-content',[_vm._v(_vm._s(_vm.$t(\"nobb.status-created\")))]),_c('v-list-item-content',{staticClass:\"align-end font-weight-medium\"},[_vm._v(\" \"+_vm._s(_vm.moment(_vm.nobbItem.status.createdDate) .lang( (\"\" + (_vm.$i18n.locale === 'no' ? 'nb' : _vm.$i18n.locale)) ) .format('Do MMMM YYYY'))+\" \")])],1):_vm._e(),(_vm.nobbItem.status)?_c('v-list-item',[_c('v-list-item-content',[_vm._v(_vm._s(_vm.$t(\"nobb.status-modified\")))]),_c('v-list-item-content',{staticClass:\"align-end font-weight-medium\"},[_vm._v(\" \"+_vm._s(_vm.moment(_vm.nobbItem.status.lastModifiedDate) .lang( (\"\" + (_vm.$i18n.locale === 'no' ? 'nb' : _vm.$i18n.locale)) ) .format('Do MMMM YYYY'))+\" \")])],1):_vm._e()],1):_vm._e(),(_vm.nobbModule)?_c('v-list-item-group',[_c('v-subheader',[_vm._v(_vm._s(_vm.$t(\"nobb.category-module\")))]),_c('v-list-item',[_c('v-list-item-content',[_vm._v(_vm._s(_vm.$t(\"nobb.brand\")))]),_c('v-list-item-content',{staticClass:\"align-end font-weight-medium\"},[_vm._v(\" \"+_vm._s(_vm.nobbModule.brand)+\" \")])],1),_c('v-list-item',[_c('v-list-item-content',[_vm._v(_vm._s(_vm.$t(\"nobb.corporate-brand\")))]),_c('v-list-item-content',{staticClass:\"align-end font-weight-medium\"},[_vm._v(\" \"+_vm._s(_vm.nobbModule.corporateBrand)+\" \")])],1),_c('v-list-item',[_c('v-list-item-content',[_vm._v(_vm._s(_vm.$t(\"nobb.description\")))]),_c('v-list-item-content',{staticClass:\"align-end font-weight-medium\"},[_vm._v(\" \"+_vm._s(_vm.nobbModule.description)+\" \")])],1),_c('v-list-item',[_c('v-list-item-content',[_vm._v(_vm._s(_vm.$t(\"nobb.module-text\")))]),_c('v-list-item-content',{staticClass:\"align-end font-weight-medium\"},[_vm._v(\" \"+_vm._s(_vm.nobbModule.text)+\" \")])],1)],1):_vm._e()],1)],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"5\"}},[(_vm.nobbItem && _vm.supplier)?_c('v-row',{staticClass:\"supplier\",attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"7\"}},[_c('v-select',{attrs:{\"label\":_vm.$t(\"nobb.choose-supplier\"),\"items\":_vm.nobbItem.suppliers,\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"item-text\":\"name\",\"disabled\":_vm.nobbItem.suppliers.length === 1},model:{value:(_vm.supplier),callback:function ($$v) {_vm.supplier=$$v},expression:\"supplier\"}}),(_vm.supplier)?_c('v-list',{attrs:{\"disabled\":\"\",\"dense\":\"\"}},[_c('v-subheader',[_vm._v(_vm._s(_vm.$t(\"nobb.category-supplier\")))]),_c('v-list-item',[_c('v-list-item-content',[_vm._v(_vm._s(_vm.$t(\"nobb.name\")))]),_c('v-list-item-content',{staticClass:\"align-end font-weight-medium\"},[_vm._v(\" \"+_vm._s(_vm.supplier.name)+\" \")])],1),_c('v-list-item',[_c('v-list-item-content',[_vm._v(_vm._s(_vm.$t(\"nobb.main-supplier\")))]),_c('v-list-item-content',{staticClass:\"align-end font-weight-medium\"},[_vm._v(\" \"+_vm._s(_vm.$t(_vm.boolToYesNoLocaleKey(_vm.supplier.isMainSupplier)))+\" \")])],1)],1):_vm._e()],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"5\"}},[_c('v-spacer'),_c('v-avatar',{staticClass:\"item-avatar\",attrs:{\"size\":\"220\"}},[(_vm.imageUrl)?_c('CoolLightBox',{attrs:{\"items\":_vm.imageUrl ? [_vm.imageUrl] : [_vm.ImagePlaceholder],\"index\":_vm.index,\"overlayColor\":\"rgba(30, 30, 30, .3)\"},on:{\"close\":function($event){_vm.index = null}}}):_vm._e(),(!_vm.loading)?_c('v-img',{attrs:{\"src\":_vm.imageUrl ? _vm.imageUrl : _vm.ImagePlaceholder},on:{\"click\":function($event){_vm.index = 0}}}):_vm._e()],1)],1)],1):_vm._e(),(_vm.supplier && _vm.supplier.media)?_c('v-row',{attrs:{\"dense\":\"\"}},_vm._l((_vm.supplier.media),function(media,i){return _c('v-col',{key:(\"\" + (media.mediaType) + i),attrs:{\"md\":\"3\"}},[_c('media',{attrs:{\"url\":media.url,\"name\":media.mediaType}})],1)}),1):_vm._e()],1)],1)],1)],1),_c('v-card-actions',{staticClass:\"nobb-actions\"},[_c('v-spacer'),_c('v-btn',{on:{\"click\":_vm.close}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.close'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-close\")])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { reactive, toRefs } from '@vue/composition-api';\nimport { CustomError } from '@/models/common/interfaces';\nimport { useSnackbar } from './snackbar';\nimport { useErrorModal } from './error';\nimport { useApi } from './api';\nimport { isSuccess } from '@/helpers/common';\nimport { NobbItem, NobbModule } from '@/models/nobb/interfaces';\n\ninterface State {\n error?: CustomError;\n}\n\nconst state = reactive({\n error: undefined,\n});\n\nexport const useProductInfo = () => {\n const { snack } = useSnackbar();\n const { errorModal } = useErrorModal();\n\n const getNobbItem = async (nobbNr: number): Promise => {\n let items: Array = [];\n let item: NobbItem | undefined = undefined;\n\n const { get } = useApi('/nobb');\n\n const queries: Record = {\n nobbParams: `items?nobbnos=${nobbNr}`,\n };\n\n try {\n const response = await get(queries);\n if (isSuccess(response.status)) {\n items = JSON.parse(response.data);\n item = items.find(item => item.nobbNumber === nobbNr);\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n\n return item;\n };\n\n const convertToNobbNos = (numbers: number[]): string => {\n if (numbers.length === 1) {\n return String(numbers[0]);\n }\n return numbers.join(',');\n };\n\n const validateCommaSeparatedList = (input: string): boolean => {\n const regex = /^\\d+(,\\d+)*$/;\n return regex.test(input);\n };\n\n const getNobbItems = async (\n numbers: Array\n ): Promise> => {\n let items: Array = [];\n\n const { get } = useApi('/nobb');\n\n try {\n const nobbNos = convertToNobbNos(numbers);\n if (validateCommaSeparatedList(nobbNos)) {\n const queries: Record = {\n nobbParams: `items?nobbnos=${convertToNobbNos(numbers)}`,\n };\n\n try {\n const response = await get(queries);\n if (isSuccess(response.status)) {\n items = JSON.parse(response.data);\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n return [];\n }\n return items;\n };\n\n const getDocumentsByItem = async (\n nobbNr: number,\n publicationtype: string,\n filename: string\n ): Promise => {\n let success = false;\n const { get } = useApi('/nobb/pdf');\n\n const queries: Record = {\n nobbParams: `media/documents/items/${nobbNr}/${publicationtype}`,\n };\n\n try {\n const response = await get(queries, undefined, undefined, 'arraybuffer');\n if (isSuccess(response.status)) {\n // create the blob object with content-type \"application/pdf\"\n const arr = new Uint8Array(response.data);\n const blob = new Blob([arr], { type: 'application/pdf' });\n\n const blobUrl = URL.createObjectURL(blob);\n\n const link = document.createElement('a');\n\n link.href = blobUrl;\n link.download = filename;\n\n document.body.appendChild(link);\n\n // This is necessary as link.click() does not work on the latest firefox\n link.dispatchEvent(\n new MouseEvent('click', {\n bubbles: true,\n cancelable: true,\n view: window,\n })\n );\n\n // Remove link from body\n document.body.removeChild(link);\n\n success = true;\n }\n } catch (e) {\n success = false;\n }\n\n return success;\n };\n\n const convertMedia = async (mediaUrl: string): Promise => {\n let url = '';\n\n const { get } = useApi('/nobb');\n\n const queries: Record = {\n nobbParams: `media/converter?url=${mediaUrl}`,\n };\n\n try {\n const response = await get(queries);\n if (isSuccess(response.status)) {\n url = response.data;\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n\n return url;\n };\n\n const getNobbModule = async (\n moduleNr: number\n ): Promise => {\n let items: Array = [];\n let item: NobbModule | undefined = undefined;\n\n const { get } = useApi('/nobb');\n\n const queries: Record = {\n nobbParams: `modules?modules=${moduleNr}`,\n };\n\n try {\n const response = await get(queries);\n if (isSuccess(response.status)) {\n items = JSON.parse(response.data);\n item = items.find(item => item.number === moduleNr);\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n\n return item;\n };\n\n const downloadMedia = async (\n mediaUrl: string,\n name: string\n ): Promise => {\n const { get } = useApi('/nobb/');\n\n const queries: Record = {\n nobbParams: `media/${mediaUrl}?download=false`,\n };\n\n try {\n const response = await get(queries);\n if (isSuccess(response.status)) {\n const blob = response.data.on('finish', function() {\n return response.data.toBlob('application/pdf');\n });\n\n const blobUrl = URL.createObjectURL(blob);\n\n const link = document.createElement('a');\n\n link.href = blobUrl;\n link.download = name;\n\n document.body.appendChild(link);\n\n // This is necessary as link.click() does not work on the latest firefox\n link.dispatchEvent(\n new MouseEvent('click', {\n bubbles: true,\n cancelable: true,\n view: window,\n })\n );\n\n // Remove link from body\n document.body.removeChild(link);\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n };\n\n return {\n ...toRefs(state),\n getNobbItem,\n getNobbItems,\n getNobbModule,\n downloadMedia,\n convertMedia,\n getDocumentsByItem,\n };\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{staticClass:\"media-card\",attrs:{\"tile\":\"\",\"hover\":\"\",\"height\":\"100\",\"href\":_vm.url,\"target\":\"_blank\"}},[_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-icon',{staticClass:\"pdf-icon\",attrs:{\"color\":\"error\",\"x-large\":\"\"}},[_vm._v(\"mdi-file-pdf-box\")])],1),_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('span',{staticClass:\"font-weight-medium\"},[_vm._v(_vm._s(_vm.name))])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\n\nexport default defineComponent({\n props: {\n url: {\n type: String,\n required: true,\n },\n name: {\n type: String,\n required: true,\n },\n },\n setup() {\n return {};\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=4415970f&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=4415970f&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4415970f\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCard,VIcon,VRow})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { NobbItem, NobbModule, Supplier } from '@/models/nobb/interfaces';\nimport { useProductInfo } from '@/modules/product-info';\nimport { ref, defineComponent, computed } from '@vue/composition-api';\nimport Media from '@/components/nobb-info/media/index.vue';\nimport moment from 'moment';\nimport CoolLightBox from 'vue-cool-lightbox';\nimport 'vue-cool-lightbox/dist/vue-cool-lightbox.min.css';\nimport { boolToYesNoLocaleKey } from '@/helpers/common';\nimport Loader from '../loader/index.vue';\nimport ImagePlaceholder from '@/assets/images/image-placeholder.png';\n\nexport default defineComponent({\n components: {\n Media,\n CoolLightBox,\n Loader,\n },\n props: {\n nobbNr: {\n type: Number,\n required: true,\n },\n button: {\n type: Boolean,\n },\n iconButton: {\n type: Boolean,\n },\n },\n setup({ nobbNr }, { emit }) {\n const nobbItem = ref();\n const nobbModule = ref();\n const dialog = ref(false);\n const loading = ref(false);\n const supplier = ref();\n const { getNobbItem, getNobbModule } = useProductInfo();\n\n const imageUrl = computed(() => {\n let url = '';\n if (supplier.value && supplier.value.media) {\n const media = supplier.value.media.find(med => med.mediaType === 'PB');\n if (media) {\n url = media.url;\n }\n }\n return url;\n });\n\n const close = () => {\n dialog.value = false;\n emit('close', true);\n };\n\n const initDialog = async (event: { stopPropagation: () => void }) => {\n if (event) {\n event.stopPropagation();\n }\n dialog.value = true;\n loading.value = true;\n nobbItem.value = await getNobbItem(nobbNr);\n\n if (nobbItem.value && nobbItem.value.moduleNumber) {\n nobbModule.value = await getNobbModule(nobbItem.value.moduleNumber);\n }\n\n if (\n nobbItem.value &&\n nobbItem.value.suppliers &&\n nobbItem.value.suppliers.length > 0\n ) {\n supplier.value = nobbItem.value.suppliers[0];\n }\n loading.value = false;\n };\n\n return {\n close,\n boolToYesNoLocaleKey,\n initDialog,\n moment,\n dialog,\n nobbItem,\n nobbModule,\n supplier,\n imageUrl,\n index: null,\n loading,\n ImagePlaceholder,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=378a560e&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=378a560e&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"378a560e\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VAvatar } from 'vuetify/lib/components/VAvatar';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemGroup } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VAlert,VAvatar,VBtn,VCard,VCardActions,VCardText,VCardTitle,VCol,VDialog,VDivider,VIcon,VImg,VList,VListItem,VListItemContent,VListItemGroup,VListItemIcon,VListItemTitle,VRow,VSelect,VSpacer,VSubheader,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"max-width\":\"900px\"},on:{\"click:outside\":_vm.close},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-list-item',_vm._g(_vm._b({},'v-list-item',attrs,false),on),[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"titles.edit-item\")))]),_c('v-list-item-icon',[_c('v-icon',{attrs:{\"right\":\"\",\"color\":\"primary\"}},[_vm._v(\"mdi-pencil\")])],1)],1)]}}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',{attrs:{\"flat\":\"\",\"tile\":\"\"}},[_c('v-form',{attrs:{\"id\":\"item-form\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.submit.apply(null, arguments)}}},[_c('dialog-title',{attrs:{\"headerText\":_vm.$t(\"titles.edit-item\")},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":_vm.close}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)]},proxy:true}])}),(_vm.item)?_c('v-card-text',{staticClass:\"edit-content\"},[_c('v-subheader',{staticClass:\"field-name\"},[_vm._v(\" \"+_vm._s(_vm.$t('titles.product-information'))+\" \")]),_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"8\"}},[_c('v-text-field',{attrs:{\"rules\":[_vm.rules.required],\"clearable\":\"\",\"dense\":\"\",\"outlined\":\"\",\"placeholder\":_vm.$t('labels.name'),\"label\":_vm.$t('labels.name')},model:{value:(_vm.item.Name),callback:function ($$v) {_vm.$set(_vm.item, \"Name\", $$v)},expression:\"item.Name\"}})],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-text-field',{attrs:{\"clearable\":\"\",\"dense\":\"\",\"outlined\":\"\",\"placeholder\":_vm.$t('headers.itemnumber'),\"label\":_vm.$t('headers.itemnumber'),\"type\":\"number\"},model:{value:(_vm.item.ItemNumber),callback:function ($$v) {_vm.$set(_vm.item, \"ItemNumber\", _vm._n($$v))},expression:\"item.ItemNumber\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-text-field',{attrs:{\"clearable\":\"\",\"dense\":\"\",\"outlined\":\"\",\"placeholder\":_vm.$t('labels.description'),\"label\":_vm.$t('labels.description')},model:{value:(_vm.item.Description),callback:function ($$v) {_vm.$set(_vm.item, \"Description\", $$v)},expression:\"item.Description\"}})],1),_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('v-text-field',{attrs:{\"clearable\":\"\",\"dense\":\"\",\"outlined\":\"\",\"placeholder\":_vm.$t('labels.unit'),\"label\":_vm.$t('labels.unit')},model:{value:(_vm.item.Unit),callback:function ($$v) {_vm.$set(_vm.item, \"Unit\", $$v)},expression:\"item.Unit\"}})],1),_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('v-text-field',{attrs:{\"clearable\":\"\",\"dense\":\"\",\"outlined\":\"\",\"placeholder\":_vm.$t('headers.itemsinpackage'),\"label\":_vm.$t('headers.itemsinpackage')},model:{value:(_vm.item.ItemsInPackage),callback:function ($$v) {_vm.$set(_vm.item, \"ItemsInPackage\", $$v)},expression:\"item.ItemsInPackage\"}})],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-text-field',{attrs:{\"clearable\":\"\",\"dense\":\"\",\"outlined\":\"\",\"placeholder\":_vm.$t('labels.price'),\"label\":_vm.$t('labels.price'),\"type\":\"number\"},model:{value:(_vm.item.BasePrice),callback:function ($$v) {_vm.$set(_vm.item, \"BasePrice\", _vm._n($$v))},expression:\"item.BasePrice\"}})],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-text-field',{attrs:{\"clearable\":\"\",\"dense\":\"\",\"outlined\":\"\",\"placeholder\":_vm.$t('labels.discount'),\"label\":_vm.$t('labels.discount'),\"type\":\"number\"},model:{value:(_vm.item.DiscountPercentage),callback:function ($$v) {_vm.$set(_vm.item, \"DiscountPercentage\", _vm._n($$v))},expression:\"item.DiscountPercentage\"}})],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-text-field',{attrs:{\"clearable\":\"\",\"dense\":\"\",\"outlined\":\"\",\"placeholder\":_vm.$t('headers.nobbnumber'),\"label\":_vm.$t('headers.nobbnumber'),\"type\":\"number\"},model:{value:(_vm.item.NOBBNumber),callback:function ($$v) {_vm.$set(_vm.item, \"NOBBNumber\", _vm._n($$v))},expression:\"item.NOBBNumber\"}})],1)],1)],1)],1):_vm._e(),_c('v-card-actions',{staticClass:\"edit-actions\"},[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"secondary\",\"type\":\"submit\",\"disabled\":!_vm.valid,\"loading\":_vm.loading}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.update'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-check\")])],1),_c('v-btn',{on:{\"click\":_vm.close}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.close'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-close\")])],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { PriceListItem } from '@/models/pricebook/interfaces';\nimport { defineComponent, ref, PropType, computed } from '@vue/composition-api';\nimport DialogTitle from '@/components/common/dialog-title/index.vue';\nimport { translate } from '@/localization';\nimport { usePriceBook } from '@/modules/pricebook';\n\nexport default defineComponent({\n components: {\n DialogTitle,\n },\n props: {\n item: {\n type: Object as PropType,\n required: true,\n },\n },\n setup(props) {\n const { updatePriceListItem } = usePriceBook();\n const dialog = ref(false);\n const loading = ref(false);\n\n const close = () => {\n dialog.value = false;\n };\n\n const valid = computed(() => {\n return true;\n });\n\n const submit = async () => {\n loading.value = true;\n await updatePriceListItem(props.item);\n loading.value = false;\n close();\n };\n\n return {\n close,\n submit,\n dialog,\n valid,\n loading,\n rules: {\n required: (v: string) => !!v || `${translate('validation.required')}`,\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=268b66dd&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VContainer,VDialog,VForm,VIcon,VListItem,VListItemIcon,VListItemTitle,VRow,VSpacer,VSubheader,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('confirm',{scopedSlots:_vm._u([{key:\"activator-element\",fn:function(){return [_c('v-list-item',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('buttons.delete-item')))]),_c('v-list-item-icon',[_c('v-icon',{attrs:{\"color\":\"error\",\"right\":\"\"}},[_vm._v(\"mdi-delete\")])],1)],1)]},proxy:true},{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(((_vm.$t('common.delete')) + \" \" + (_vm.item.Name) + \"?\"))+\" \")]},proxy:true},{key:\"text\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('info.delete-item'))+\" \")]},proxy:true},{key:\"accept\",fn:function(){return [_c('v-btn',{attrs:{\"color\":\"secondary\",\"loading\":_vm.loading,\"disabled\":!_vm.valid},on:{\"click\":_vm.deleteEvent}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.confirm'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-check\")])],1)]},proxy:true}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { ref, defineComponent, PropType } from '@vue/composition-api';\nimport Confirm from '@/components/common/confirm/index.vue';\nimport { usePriceBook } from '@/modules/pricebook';\nimport { PriceListItem } from '@/models/pricebook/interfaces';\n\nexport default defineComponent({\n components: {\n Confirm,\n },\n props: {\n item: {\n type: Object as PropType,\n required: true,\n },\n },\n setup(props) {\n const { deletePriceListItem } = usePriceBook();\n const valid = ref(false);\n const loading = ref(false);\n const dialog = ref(false);\n\n const deleteEvent = async () => {\n loading.value = true;\n await deletePriceListItem(props.item);\n loading.value = false;\n dialog.value = false;\n };\n\n valid.value = true;\n\n return {\n loading,\n valid,\n dialog,\n deleteEvent,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=68edce90&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"68edce90\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\ninstallComponents(component, {VBtn,VIcon,VListItem,VListItemIcon,VListItemTitle})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"max-width\":\"700\",\"retain-focus\":false},on:{\"click:outside\":_vm.close},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-list-item',_vm._g(_vm._b({},'v-list-item',attrs,false),on),[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('buttons.add-to-company-list')))]),_c('v-list-item-icon',[_c('v-icon',{attrs:{\"color\":\"secondary\",\"right\":\"\"}},[_vm._v(\"mdi-plus\")])],1)],1)]}}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',{attrs:{\"flat\":\"\",\"tile\":\"\"}},[_c('dialog-title',{attrs:{\"headerText\":_vm.$t('titles.add-to-company-list'),\"secondaryText\":_vm.item.Name ? _vm.item.Name : ''},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":_vm.close}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)]},proxy:true}])}),_c('v-card-text',{staticClass:\"pa-5\"},[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{attrs:{\"dense\":\"\"}},[(_vm.companyPricelistCategories)?_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-select',{attrs:{\"outlined\":\"\",\"dense\":\"\",\"label\":_vm.$t('labels.select-product-category'),\"item-text\":\"Name\",\"return-object\":\"\",\"items\":_vm.companyPricelistCategories},model:{value:(_vm.selected),callback:function ($$v) {_vm.selected=$$v},expression:\"selected\"}})],1):_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-alert',{attrs:{\"dense\":\"\",\"type\":\"info\",\"tile\":\"\",\"color\":\"orange\"}},[_vm._v(\" \"+_vm._s(_vm.$t('info.no-company-pricelist'))+\" \")])],1)],1)],1)],1),_c('v-card-actions',{staticClass:\"pa-5\"},[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"secondary\",\"loading\":_vm.loading,\"disabled\":!_vm.valid},on:{\"click\":_vm.submit}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.add'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-check \")])],1),_c('v-btn',{on:{\"click\":_vm.close}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.close'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-close\")])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport {\n ref,\n defineComponent,\n PropType,\n onMounted,\n computed,\n} from '@vue/composition-api';\nimport DialogTitle from '@/components/common/dialog-title/index.vue';\nimport {\n BlobPriceListCategoryOverview,\n PriceListItem,\n} from '@/models/pricebook/interfaces';\nimport { usePriceBook } from '@/modules/pricebook';\nimport { useSnackbar } from '@/modules/snackbar';\n\nexport default defineComponent({\n components: {\n DialogTitle,\n },\n props: {\n item: {\n type: Object as PropType,\n required: true,\n },\n },\n setup(props) {\n const dialog = ref(false);\n const loading = ref(false);\n const selected = ref();\n\n const {\n getCompanyPricelistCategories,\n companyPricelistCategories,\n insertPriceListItem,\n } = usePriceBook();\n const { snack } = useSnackbar();\n\n const valid = computed(() => {\n return selected.value != null;\n });\n\n onMounted(async () => {\n await getCompanyPricelistCategories();\n });\n\n const close = () => {\n dialog.value = false;\n selected.value = undefined;\n };\n\n const submit = async () => {\n loading.value = true;\n if (selected.value && props.item) {\n await insertPriceListItem(selected.value, props.item);\n snack('snack.copied-to-company-pricelist', true);\n }\n loading.value = false;\n dialog.value = false;\n };\n\n return {\n close,\n submit,\n dialog,\n loading,\n valid,\n selected,\n companyPricelistCategories,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=c12e0fb0&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VAlert,VBtn,VCard,VCardActions,VCardText,VCol,VContainer,VDialog,VIcon,VListItem,VListItemIcon,VListItemTitle,VRow,VSelect,VSpacer})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, onUnmounted, ref } from '@vue/composition-api';\nimport { PRICELIST_ITEM_HEADERS } from '@/constants/table-headers';\nimport ContentBar from '@/components/common/content-bar/index.vue';\nimport { usePriceBook } from '@/modules/pricebook';\nimport NobbInfo from '@/components/nobb-info/index.vue';\nimport EditItem from '@/components/pricebook/edit-item/index.vue';\nimport DeleteItem from '@/components/pricebook/delete-item/index.vue';\nimport CopyItem from '@/components/pricebook/copy-item/index.vue';\nimport { calculatedPrice } from '@/helpers/pricebook';\n\nexport default defineComponent({\n components: {\n ContentBar,\n NobbInfo,\n EditItem,\n DeleteItem,\n CopyItem,\n },\n setup() {\n const {\n activePriceListItems,\n loading,\n priceListTitle,\n activePricelist,\n } = usePriceBook();\n const search = ref('');\n\n onUnmounted(() => {\n if (activePriceListItems?.value) activePriceListItems.value = undefined;\n if (priceListTitle?.value) priceListTitle.value = undefined;\n });\n\n return {\n calculatedPrice,\n PRICELIST_ITEM_HEADERS,\n activePriceListItems,\n loading,\n search,\n priceListTitle,\n activePricelist,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=0cb89917&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=0cb89917&lang=scss&scoped=true&\"\nimport style1 from \"./index.vue?vue&type=style&index=1&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0cb89917\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItemGroup } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCard,VCol,VDataTable,VDivider,VIcon,VList,VListItemGroup,VMenu,VRow,VTextField,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"max-width\":_vm.validFile && !_vm.parsing ? 1500 : 600,\"retain-focus\":false},on:{\"click:outside\":_vm.close},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"ma-2\",attrs:{\"color\":\"secondary\",\"small\":\"\"}},'v-btn',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.$t('buttons.import-pricelist'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-import \")])],1)]}}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-form',{attrs:{\"id\":\"product-form\",\"lazy-validation\":\"\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.submit.apply(null, arguments)}},model:{value:(_vm.validForm),callback:function ($$v) {_vm.validForm=$$v},expression:\"validForm\"}},[_c('v-card',{attrs:{\"flat\":\"\",\"tile\":\"\"}},[_c('dialog-title',{attrs:{\"headerText\":_vm.$t('titles.new-pricelist')},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":_vm.close}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)]},proxy:true}])}),(!_vm.validFile)?_c('v-card-text',{staticClass:\"import-pricelist-message\"},[_c('br'),_c('br'),_c('vue-dropzone',{ref:\"importZone\",attrs:{\"id\":\"importZone\",\"options\":_vm.dropzoneOptions},on:{\"vdropzone-file-added\":_vm.validateImport,\"vdropzone-error\":_vm.handleError}})],1):_vm._e(),(_vm.parsing)?_c('v-card-text',{staticClass:\"import-pricelist-message\"},[_c('loader',{attrs:{\"margins\":true,\"text\":_vm.$t('info.importing-products')}})],1):_vm._e(),(_vm.validFile && _vm.categories && _vm.categories.Categories)?_c('v-card-text',{staticClass:\"import-pricelist-message\"},[_c('v-subheader',[_vm._v(_vm._s(_vm.$t('common.information')))]),(_vm.pricelistFile)?_c('v-alert',{attrs:{\"border\":\"left\",\"colored-border\":\"\",\"tile\":\"\",\"color\":\"secondary\",\"dense\":\"\",\"type\":\"info\",\"elevation\":\"2\"}},[_vm._v(\" \"+_vm._s(_vm.$t('info.pricelist-parsed', { name: _vm.pricelistFile.name, products: _vm.categories.ProductCount, categories: _vm.categories.Categories.length, }))+\" \")]):_vm._e(),_c('v-subheader',[_vm._v(_vm._s(_vm.$t('common.example')))]),(_vm.categories.Categories[0])?_c('v-data-table',{staticClass:\"elevation-2 product-example\",attrs:{\"headers\":_vm.PRODUCT_HEADERS,\"items\":_vm.categories.Categories[0].Varer,\"loading-text\":_vm.$t('info.loading'),\"no-data-text\":_vm.$t('info.no-data'),\"no-results-text\":_vm.$t('info.no-result'),\"items-per-page\":1,\"hide-default-footer\":\"\"},scopedSlots:_vm._u([_vm._l((_vm.PRODUCT_HEADERS),function(h){return {key:(\"header.\" + (h.value)),fn:function(ref){return [_c('v-row',{key:h.text,attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-tooltip',{attrs:{\"bottom\":\"\",\"max-width\":\"350\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [(h.text)?_c('span',_vm._g({},on),[_vm._v(\" \"+_vm._s(_vm.$t((\"headers.\" + (h.text.toLowerCase()))))+\" \")]):_vm._e()]}}],null,true)},[(h.text)?_c('span',[_vm._v(_vm._s(_vm.$t((\"headers-description.\" + (h.text.toLowerCase())))))]):_vm._e()])],1)],1)]}}}),{key:\"item.EAN13ItemNumber\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('span',[_vm._v(_vm._s(item.EAN13ItemNumber))]),_c('v-icon',{attrs:{\"small\":\"\",\"color\":item.EAN13ItemNumber ? 'secondary' : 'error'}},[_vm._v(_vm._s(item.EAN13ItemNumber ? 'mdi-check' : 'mdi-close'))])]}},{key:\"item.ItemNumber\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('span',[_vm._v(_vm._s(item.ItemNumber))]),_c('v-icon',{attrs:{\"small\":\"\",\"color\":item.ItemNumber ? 'secondary' : 'error'}},[_vm._v(_vm._s(item.ItemNumber ? 'mdi-check' : 'mdi-close'))])]}},{key:\"item.ItemText\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('span',[_vm._v(_vm._s(item.ItemText))]),_c('v-icon',{attrs:{\"small\":\"\",\"color\":item.ItemText ? 'secondary' : 'error'}},[_vm._v(_vm._s(item.ItemText ? 'mdi-check' : 'mdi-close'))])]}},{key:\"item.BasePrice\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('span',[_vm._v(_vm._s(item.BasePrice))]),_c('v-icon',{attrs:{\"small\":\"\",\"color\":item.BasePrice ? 'secondary' : 'error'}},[_vm._v(_vm._s(item.BasePrice ? 'mdi-check' : 'mdi-close'))])]}},{key:\"item.RecommendedPrice\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('span',[_vm._v(_vm._s(item.RecommendedPrice))]),_c('v-icon',{attrs:{\"small\":\"\",\"color\":item.RecommendedPrice ? 'secondary' : 'error'}},[_vm._v(_vm._s(item.RecommendedPrice ? 'mdi-check' : 'mdi-close'))])]}},{key:\"item.UnitDesc\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('span',[_vm._v(_vm._s(item.UnitDesc))]),_c('v-icon',{attrs:{\"small\":\"\",\"color\":item.UnitDesc ? 'secondary' : 'error'}},[_vm._v(_vm._s(item.UnitDesc ? 'mdi-check' : 'mdi-close'))])]}},{key:\"item.ItemText2\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('span',[_vm._v(_vm._s(item.ItemText2))]),_c('v-icon',{attrs:{\"small\":\"\",\"color\":item.ItemText2 ? 'secondary' : 'error'}},[_vm._v(_vm._s(item.ItemText2 ? 'mdi-check' : 'mdi-close'))])]}},{key:\"item.PackageUnitDesc\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('span',[_vm._v(_vm._s(item.PackageUnitDesc))]),_c('v-icon',{attrs:{\"small\":\"\",\"color\":item.PackageUnitDesc ? 'secondary' : 'error'}},[_vm._v(_vm._s(item.PackageUnitDesc ? 'mdi-check' : 'mdi-close'))])]}},{key:\"item.ItemsInPackage\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('span',[_vm._v(_vm._s(item.ItemsInPackage))]),_c('v-icon',{attrs:{\"small\":\"\",\"color\":item.ItemsInPackage ? 'secondary' : 'error'}},[_vm._v(_vm._s(item.ItemsInPackage ? 'mdi-check' : 'mdi-close'))])]}},{key:\"item.BuyingPrice\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('span',[_vm._v(_vm._s(item.BuyingPrice))]),_c('v-icon',{attrs:{\"small\":\"\",\"color\":item.BuyingPrice ? 'secondary' : 'error'}},[_vm._v(_vm._s(item.BuyingPrice ? 'mdi-check' : 'mdi-close'))])]}},{key:\"item.Discount\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('span',[_vm._v(_vm._s(item.Discount))]),_c('v-icon',{attrs:{\"small\":\"\",\"color\":item.Discount ? 'secondary' : 'error'}},[_vm._v(_vm._s(item.Discount ? 'mdi-check' : 'mdi-close'))])]}},{key:\"item.ItemNumberNOBB\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('span',[_vm._v(_vm._s(item.ItemNumberNOBB))]),_c('v-icon',{attrs:{\"small\":\"\",\"color\":item.ItemNumberNOBB ? 'secondary' : 'error'}},[_vm._v(_vm._s(item.ItemNumberNOBB ? 'mdi-check' : 'mdi-close'))])]}},{key:\"item.ItemOwnerNumber\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('span',[_vm._v(_vm._s(item.ItemOwnerNumber))]),_c('v-icon',{attrs:{\"small\":\"\",\"color\":item.ItemOwnerNumber ? 'secondary' : 'error'}},[_vm._v(_vm._s(item.ItemOwnerNumber ? 'mdi-check' : 'mdi-close'))])]}},{key:\"item.ModuleNumber\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('span',[_vm._v(_vm._s(item.ModuleNumber))]),_c('v-icon',{attrs:{\"small\":\"\",\"color\":item.ModuleNumber ? 'secondary' : 'error'}},[_vm._v(_vm._s(item.ModuleNumber ? 'mdi-check' : 'mdi-close'))])]}}],null,true)}):_vm._e(),_c('br'),_c('v-subheader',[_vm._v(_vm._s(_vm.$t('common.choices')))]),_c('v-row',{staticClass:\"pricelist-options\",attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('div',{staticClass:\"name-container\"},[_c('v-text-field',{attrs:{\"label\":_vm.$t('labels.name'),\"rules\":_vm.fieldRules,\"dense\":\"\"},model:{value:(_vm.payload.name),callback:function ($$v) {_vm.$set(_vm.payload, \"name\", $$v)},expression:\"payload.name\"}})],1)]),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-checkbox',{staticClass:\"select-all\",attrs:{\"hide-details\":\"\",\"label\":_vm.$t('labels.categories-all')},model:{value:(_vm.allCategories),callback:function ($$v) {_vm.allCategories=$$v},expression:\"allCategories\"}})],1),(!_vm.allCategories)?_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-subheader',[_vm._v(_vm._s(_vm.$t('labels.product-categories')))]),_c('perfect-scrollbar',{attrs:{\"options\":{\n suppressScrollX: true,\n }}},[_c('v-combobox',{attrs:{\"multiple\":\"\",\"items\":_vm.categories.Categories,\"deletable-chips\":\"\",\"persistent-hint\":\"\",\"small-chips\":\"\",\"item-text\":\"Text\"},model:{value:(_vm.payload.categories),callback:function ($$v) {_vm.$set(_vm.payload, \"categories\", $$v)},expression:\"payload.categories\"}})],1)],1):_vm._e()],1)],1):_vm._e(),(!_vm.parsing)?_c('v-card-actions',{staticClass:\"import-pricelist-actions\"},[_c('info-tooltip',{attrs:{\"information\":_vm.$t('info.import-pricelist')}}),_c('v-btn',{attrs:{\"color\":\"info\",\"href\":\"/docs/5001txt_definisjon.pdf\",\"target\":\"_blank\"}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.5001-info'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-file-pdf-box\")])],1),_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"ma-2\",attrs:{\"color\":\"primary\",\"dark\":\"\"}},'v-btn',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.$t('buttons.5001-templates'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-file-document-multiple-outline\")])],1)]}}],null,false,3492611719)},[_c('v-list',[_c('v-list-item',{attrs:{\"href\":\"/docs/5001_Template_TXT_CSV.txt\",\"download\":\"\"}},[_c('v-list-item-title',[_vm._v(\"TXT/CSV\")]),_c('v-list-item-action',[_c('v-btn',{attrs:{\"icon\":\"\",\"small\":\"\"}},[_c('v-icon',[_vm._v(\"mdi-file-document-outline\")])],1)],1)],1),_c('v-list-item',{attrs:{\"href\":\"/docs/5001_Template_EXCEL.xlsx\",\"download\":\"\"}},[_c('v-list-item-title',[_vm._v(\"Excel\")]),_c('v-list-item-action',[_c('v-btn',{attrs:{\"icon\":\"\",\"small\":\"\"}},[_c('v-icon',[_vm._v(\"mdi-microsoft-excel\")])],1)],1)],1)],1)],1),_c('v-spacer'),(_vm.pricelistFile)?_c('v-btn',{attrs:{\"color\":\"error\"},on:{\"click\":_vm.cancel}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.cancel'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-close\")])],1):_vm._e(),(_vm.validFile)?_c('v-btn',{attrs:{\"color\":\"secondary\",\"type\":\"submit\",\"loading\":_vm.loading,\"disabled\":!_vm.validForm}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.create'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-import \")])],1):_vm._e(),_c('v-btn',{on:{\"click\":_vm.close}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.close'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-close\")])],1)],1):_vm._e()],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { translate } from '@/localization';\nimport { useImport } from '@/modules/import';\nimport { useSnackbar } from '@/modules/snackbar';\nimport { ref, defineComponent } from '@vue/composition-api';\nimport vue2Dropzone from 'vue2-dropzone';\nimport 'vue2-dropzone/dist/vue2Dropzone.min.css';\nimport DialogTitle from '@/components/common/dialog-title/index.vue';\nimport InfoTooltip from '@/components/common/tooltip-helper/index.vue';\nimport Loader from '@/components/loader/index.vue';\nimport { PriceListVM, VareKategori } from '@/models/pricebook/interfaces';\nimport { PRODUCT_HEADERS } from '@/constants/table-headers';\nimport { cleanSource } from '@/helpers/common';\nimport { isCSVorTXT, isExcel } from '@/helpers/parse';\nimport { usePriceBook } from '@/modules/pricebook';\n\ninterface Payload {\n categories: Array;\n name: string;\n}\n\nexport default defineComponent({\n components: {\n vueDropzone: vue2Dropzone,\n DialogTitle,\n InfoTooltip,\n Loader,\n },\n setup() {\n const dialog = ref(false);\n const loading = ref(false);\n const parsing = ref(false);\n const pricelistFile = ref();\n const importZone = ref();\n const validFile = ref(false);\n const validForm = ref(false);\n const allCategories = ref(true);\n const validating = ref(false);\n\n const categories = ref();\n\n const payload = ref({ categories: [], name: '' });\n\n const { parsePriceListCSV, parsePriceListExcel } = useImport();\n\n const { uploadPriceList } = usePriceBook();\n\n const handleError = (file: File, message: string) => {\n const { snack } = useSnackbar();\n importZone.value.removeFile(file);\n if (!message.includes('Upload')) {\n snack(message, false);\n }\n };\n\n const cancel = () => {\n pricelistFile.value = undefined;\n validFile.value = false;\n categories.value = undefined;\n allCategories.value = true;\n payload.value.name = '';\n payload.value.categories = [];\n if (importZone.value) importZone.value.enable();\n };\n\n const close = () => {\n pricelistFile.value = undefined;\n dialog.value = false;\n validFile.value = false;\n categories.value = undefined;\n allCategories.value = true;\n payload.value.name = '';\n payload.value.categories = [];\n };\n\n const submit = () => {\n if (validForm && categories.value) {\n categories.value.Name = payload.value.name;\n categories.value.Categories = payload.value.categories;\n uploadPriceList(categories.value);\n close();\n }\n };\n\n const validateImport = async (file: File) => {\n validating.value = true;\n pricelistFile.value = file;\n const { validatePriceListFile } = useImport();\n try {\n validFile.value = await validatePriceListFile(file);\n } catch (e) {\n console.log(e);\n }\n\n if (validFile.value) {\n importZone.value.disable();\n if (pricelistFile.value) {\n parsing.value = true;\n\n if (isCSVorTXT(pricelistFile.value.name)) {\n categories.value = await parsePriceListCSV(pricelistFile.value);\n } else if (isExcel(pricelistFile.value.name)) {\n categories.value = await parsePriceListExcel(pricelistFile.value);\n }\n\n if (categories.value) {\n payload.value.categories = cleanSource(categories.value.Categories);\n payload.value.name = categories.value.Name;\n } else {\n cancel();\n }\n\n parsing.value = false;\n }\n } else {\n cancel();\n }\n\n validating.value = false;\n };\n\n return {\n validateImport,\n handleError,\n cancel,\n close,\n submit,\n importZone,\n dialog,\n dropzoneOptions: {\n autoProcessQueue: false,\n url: 'http://localhost',\n thumbnailWidth: 150,\n maxFilesize: 100,\n maxFiles: 1,\n acceptedFiles: '.txt,.csv,.xlsx',\n dictDefaultMessage: `${translate(\n 'project.import-project-default-message'\n )}`,\n },\n loading,\n parsing,\n validFile,\n validForm,\n pricelistFile,\n categories,\n PRODUCT_HEADERS,\n payload,\n fieldRules: [(v: string) => !!v || `${translate('validation.required')}`],\n allCategories,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=f5bca310&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&lang=scss&\"\nimport style1 from \"./index.vue?vue&type=style&index=1&id=f5bca310&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f5bca310\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VCombobox } from 'vuetify/lib/components/VCombobox';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemAction } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VAlert,VBtn,VCard,VCardActions,VCardText,VCheckbox,VCol,VCombobox,VDataTable,VDialog,VForm,VIcon,VList,VListItem,VListItemAction,VListItemTitle,VMenu,VRow,VSpacer,VSubheader,VTextField,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"value\":_vm.uploadingPriceList,\"max-width\":\"700px\",\"persistent\":\"\"}},[_c('v-card',{attrs:{\"flat\":\"\",\"tile\":\"\",\"loading\":_vm.uploadingPriceList}},[_c('dialog-title',{attrs:{\"headerText\":_vm.$t('titles.uploading-pricelist'),\"secondaryText\":_vm.priceListName}}),_c('v-card-text',{staticClass:\"ma-4\"},[_vm._v(_vm._s(_vm.statusText))])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\nimport DialogTitle from '@/components/common/dialog-title/index.vue';\nimport { usePriceBook } from '@/modules/pricebook';\n\nexport default defineComponent({\n components: {\n DialogTitle,\n },\n setup() {\n const { uploadingPriceList, statusText, priceListName } = usePriceBook();\n\n return {\n uploadingPriceList,\n statusText,\n priceListName,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=a8e042ee&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\ninstallComponents(component, {VCard,VCardText,VDialog})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"max-width\":\"500\",\"retain-focus\":false},on:{\"click:outside\":_vm.close},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"ma-2\",attrs:{\"small\":\"\"}},'v-btn',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.$t('buttons.download-pricelist'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-download \")])],1)]}}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',{attrs:{\"flat\":\"\",\"tile\":\"\"}},[_c('dialog-title',{attrs:{\"headerText\":_vm.$t('buttons.download-pricelist')},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":_vm.close}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)]},proxy:true}])}),_c('v-card-text',{staticClass:\"pa-5\"},[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{attrs:{\"dense\":\"\"}},[(\n !_vm.loadingPriceLists &&\n _vm.downloadableFiles &&\n _vm.downloadableFiles.length > 0\n )?_c('v-col',[_c('v-list',{attrs:{\"shaped\":\"\"}},[_c('v-subheader',[_vm._v(_vm._s(_vm.$t('titles.pricelists')))]),_c('v-list-item-group',{attrs:{\"color\":\"primary\"},model:{value:(_vm.selectedFile),callback:function ($$v) {_vm.selectedFile=$$v},expression:\"selectedFile\"}},_vm._l((_vm.downloadableFiles),function(file){return _c('downloadable-pricelist',{key:file.Id,attrs:{\"icon\":'mdi-library',\"file\":file}})}),1)],1)],1):(_vm.loadingPriceLists)?_c('v-col',[_c('loader',{attrs:{\"margins\":true}})],1):_c('v-col',[_c('v-alert',{attrs:{\"dense\":\"\",\"type\":\"info\",\"tile\":\"\",\"color\":\"orange\"}},[_vm._v(\" \"+_vm._s(_vm.$t('info.no-downloadable'))+\" \")])],1)],1)],1)],1),_c('v-card-actions',{staticClass:\"pa-5\"},[_c('v-spacer'),_c('v-btn',{staticClass:\"ma-2\",attrs:{\"color\":\"secondary\",\"loading\":_vm.loading,\"disabled\":!_vm.valid},on:{\"click\":_vm.submit}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.download'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-download \")])],1),_c('v-btn',{staticClass:\"ma-2\",on:{\"click\":_vm.close}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.close'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-close\")])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-list-item',{attrs:{\"value\":_vm.file}},[_c('v-list-item-icon',[_c('v-icon',{domProps:{\"textContent\":_vm._s(_vm.icon)}})],1),_c('v-list-item-content',[_c('v-list-item-title',{domProps:{\"textContent\":_vm._s(_vm.file.Name)}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\nimport { PriceList } from '@/models/pricebook/interfaces';\nimport { defineComponent, PropType } from '@vue/composition-api';\n\nexport default defineComponent({\n props: {\n file: {\n type: Object as PropType,\n required: true,\n },\n icon: {\n type: String,\n required: true,\n },\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=004d0beb&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\ninstallComponents(component, {VIcon,VListItem,VListItemContent,VListItemIcon,VListItemTitle})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport {\n ref,\n defineComponent,\n onMounted,\n computed,\n} from '@vue/composition-api';\nimport DialogTitle from '@/components/common/dialog-title/index.vue';\nimport DownloadablePricelist from '@/components/pricebook/download-pricelist/downloadable-pricelist/index.vue';\nimport Loader from '@/components/loader/index.vue';\nimport { PriceList } from '@/models/pricebook/interfaces';\nimport { usePriceBook } from '@/modules/pricebook';\n\nexport default defineComponent({\n components: {\n DialogTitle,\n DownloadablePricelist,\n Loader,\n },\n setup() {\n const { getDownloadableFiles, subscribeToPriceList } = usePriceBook();\n const dialog = ref(false);\n const loadingPriceLists = ref(false);\n const loading = ref(false);\n const selectedFile = ref();\n const downloadableFiles = ref>([]);\n\n const valid = computed(() => {\n return selectedFile.value != null;\n });\n\n const initDownloadable = async () => {\n loadingPriceLists.value = true;\n downloadableFiles.value = await getDownloadableFiles();\n loadingPriceLists.value = false;\n };\n\n onMounted(async () => {\n await initDownloadable();\n });\n\n const close = () => {\n selectedFile.value = undefined;\n dialog.value = false;\n };\n\n const submit = async () => {\n if (selectedFile.value && valid.value) {\n loading.value = true;\n const success = await subscribeToPriceList(selectedFile.value);\n if (success) {\n selectedFile.value = undefined;\n await initDownloadable();\n } else {\n close();\n }\n }\n loading.value = false;\n };\n\n return {\n close,\n submit,\n dialog,\n loading,\n valid,\n selectedFile,\n downloadableFiles,\n loadingPriceLists,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=3d98abfa&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItemGroup } from 'vuetify/lib/components/VList';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VAlert,VBtn,VCard,VCardActions,VCardText,VCol,VContainer,VDialog,VIcon,VList,VListItemGroup,VRow,VSpacer,VSubheader})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\nimport ContentBar from '@/components/common/content-bar/index.vue';\nimport Pricelists from '@/components/pricebook/pricelists/index.vue';\nimport Itemlist from '@/components/pricebook/itemlist/index.vue';\nimport ImportPricelist from '@/components/pricebook/import-pricelist/index.vue';\nimport UploadPricelist from '@/components/pricebook/uploadPriceList/index.vue';\nimport DownloadPricelist from '@/components/pricebook/download-pricelist/index.vue';\n\nexport default defineComponent({\n components: {\n ContentBar,\n Pricelists,\n Itemlist,\n ImportPricelist,\n UploadPricelist,\n DownloadPricelist,\n },\n});\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Pricebook.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Pricebook.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Pricebook.vue?vue&type=template&id=3c40d052&\"\nimport script from \"./Pricebook.vue?vue&type=script&lang=ts&\"\nexport * from \"./Pricebook.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCol,VContainer,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('content-bar',{attrs:{\"title\":_vm.$t('titles.organization')}}),_c('v-container',{staticClass:\"grey lighten-5\",attrs:{\"fluid\":\"\"}},[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"8\"}},[_c('factors')],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"4\"}},[_c('organization')],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"8\"}},[_c('contacts')],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"4\"}},[_c('logo')],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('content-bar',{attrs:{\"small\":true,\"title\":_vm.$t('titles.factors')},scopedSlots:_vm._u([{key:\"content-left\",fn:function(){return [_c('info-tooltip',{attrs:{\"information\":_vm.$t('info.org-factors')}})]},proxy:true},{key:\"content-right\",fn:function(){return [_c('confirm',{scopedSlots:_vm._u([{key:\"activator-element\",fn:function(){return [_c('v-btn',{staticClass:\"ma-2 white--text\",attrs:{\"small\":\"\",\"color\":\"secondary\",\"outlined\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.reset-factors'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\",\"small\":\"\"}},[_vm._v(\"mdi-history\")])],1)]},proxy:true},{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('titles.reset-factors'))+\" \")]},proxy:true},{key:\"text\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('info.reset-factors'))+\" \")]},proxy:true},{key:\"accept\",fn:function(){return [_c('v-btn',{attrs:{\"color\":\"secondary\",\"loading\":_vm.loading},on:{\"click\":_vm.reset}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.confirm'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-check\")])],1)]},proxy:true}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}})]},proxy:true}])}),_c('v-card',{attrs:{\"tile\":\"\",\"height\":\"100%\"}},[(_vm.professions)?_c('v-tabs',{staticClass:\"factors\",attrs:{\"color\":\"secondary\",\"value\":_vm.activeProf}},[_vm._l((_vm.professions),function(p){return [_c('v-tab',{key:p.Code,staticClass:\"subtitle-2\",attrs:{\"value\":p.Code}},[_c('v-icon',{staticClass:\"subtitle-1\",attrs:{\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.getIconByProfessionCode(p.Code))+\" \")]),_vm._v(\" \"+_vm._s(_vm.getNameByProfessionCode(p.Code))+\" \")],1),_c('v-tab-item',{key:p.Code},[(!_vm.loading)?_c('v-card',{staticClass:\"factorItems\",attrs:{\"flat\":\"\"}},[_c('factor',{attrs:{\"factors\":_vm.filteredFactors(p.Code, _vm.factors)},on:{\"updateFactors\":_vm.initFactors}}),_c('factor-summary',{attrs:{\"factors\":_vm.filteredFactors(p.Code, _vm.factors)}})],1):_c('div',[_c('content-bar',{attrs:{\"small\":true,\"title\":_vm.$t('titles.factors')}}),_c('v-card',[_c('loader',{attrs:{\"margins\":true}})],1)],1)],1)]})],2):_c('div',[_c('content-bar',{attrs:{\"small\":true,\"title\":_vm.$t('titles.factors')}}),_c('v-card',[_c('loader',{attrs:{\"margins\":true}})],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-simple-table',{staticClass:\"factor-table\",attrs:{\"disabled\":true},scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('thead',[_c('tr',{staticClass:\"factor-headers\"},[_c('th',{staticClass:\"text-left\"},[_vm._v(\" \"+_vm._s(_vm.$t('labels.id'))+\" \")]),_c('th',{staticClass:\"text-left name-value\"},[_vm._v(\" \"+_vm._s(_vm.$t('labels.name'))+\" \")]),_c('th',{staticClass:\"text-left\"},[_vm._v(\" \"+_vm._s(_vm.$t('labels.factor'))+\" \")]),_c('th',{staticClass:\"text-left\"},[_vm._v(\" \"+_vm._s(_vm.$t('labels.value'))+\" \")]),_c('th',{staticClass:\"text-left\"},[_vm._v(\" \"+_vm._s(_vm.$t('labels.unit'))+\" \")]),_c('th',{staticClass:\"text-left\"})])]),_c('tbody',_vm._l((_vm.factors),function(factor){return _c('tr',{key:factor.Id},[_c('td',[_vm._v(_vm._s(factor.FactorNumber))]),_c('td',{staticClass:\"name-value\"},[_vm._v(\" \"+_vm._s(_vm.getFactorNameFromId(factor.FactorNumber))+\" \")]),(factor.Unit === 'kr')?_c('td',{staticClass:\"factorValue\"},[_vm._v(\" \"+_vm._s('')+\" \")]):_c('td',{staticClass:\"factorValue\"},[_vm._v(\" \"+_vm._s(_vm.calculateFactor(factor.CompanyFactorItems))+\" \")]),_c('td',[_vm._v(_vm._s(_vm.calculateValue(factor.CompanyFactorItems)))]),_c('td',[_vm._v(_vm._s(factor.Unit))]),_c('td',[_c('edit-modal',{attrs:{\"items\":factor.CompanyFactorItems,\"unit\":factor.Unit,\"id\":factor.Id,\"name\":_vm.getFactorNameFromId(factor.FactorNumber)},on:{\"updateFactors\":_vm.updateFactors}})],1)])}),0)]},proxy:true}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"width\":\"1000\"},on:{\"click:outside\":_vm.close},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"small\":\"\",\"outlined\":\"\",\"color\":\"primary\"}},'v-btn',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.$t('buttons.edit'))+\" \")])]}}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',{attrs:{\"tile\":\"\",\"flat\":\"\"}},[_c('dialog-title',{attrs:{\"headerText\":_vm.$t('titles.calculation-factors'),\"secondaryText\":_vm.name},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-spacer'),_c('add-modal',{attrs:{\"unit\":_vm.unit,\"items\":_vm._factorItems,\"name\":_vm.name},on:{\"added\":_vm.added}}),_c('v-btn',{staticClass:\"ma-2\",attrs:{\"icon\":\"\",\"small\":\"\"},on:{\"click\":_vm.close}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1)]},proxy:true}])}),_c('v-card-text',[_c('v-data-table',{attrs:{\"headers\":_vm.headers,\"items\":_vm._factorItems,\"loading-text\":_vm.$t('info.loading'),\"no-data-text\":_vm.$t('info.no-data'),\"no-results-text\":_vm.$t('info.no-result'),\"hide-default-footer\":\"\"},scopedSlots:_vm._u([{key:\"item.Name\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-text-field',{staticClass:\"font-bold\",attrs:{\"hide-details\":\"\",\"outlined\":\"\",\"label\":_vm.$t('labels.name'),\"dense\":\"\"},on:{\"focus\":function($event){return $event.target.select()},\"input\":function($event){_vm.change = true}},model:{value:(item.Name),callback:function ($$v) {_vm.$set(item, \"Name\", $$v)},expression:\"item.Name\"}})]}},{key:\"item.Value\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-text-field',{staticClass:\"font-bold\",attrs:{\"hide-details\":\"\",\"outlined\":\"\",\"label\":_vm.$t('labels.value'),\"dense\":\"\",\"type\":\"number\"},on:{\"focus\":function($event){return $event.target.select()},\"input\":function($event){item.Value = Number.isNaN($event) ? 0 : Number($event)},\"change\":function($event){_vm.change = true}},model:{value:(item.Value),callback:function ($$v) {_vm.$set(item, \"Value\", _vm._n($$v))},expression:\"item.Value\"}})]}},{key:\"item.actions\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-btn',{attrs:{\"small\":\"\",\"dark\":\"\",\"outlined\":\"\",\"color\":\"#c10909b0\"},on:{\"click\":function($event){_vm.deleteEvent(_vm._factorItems.indexOf(item))}}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.remove'))+\" \"),_c('v-icon',{attrs:{\"small\":\"\",\"right\":\"\"}},[_vm._v(\" mdi-close \")])],1)]}},{key:\"item.unit\",fn:function(ref){return [_vm._v(\" \"+_vm._s(_vm.unit)+\" \")]}}],null,true)}),_c('v-row',{staticClass:\"summary\"},[(_vm.unit === '%')?_c('v-col',{staticClass:\"factor-highlight\"},[_vm._v(\" \"+_vm._s(_vm.$t('labels.factor'))+\": \"),_c('span',{staticClass:\"factor\"},[_vm._v(_vm._s(_vm.calculateFactor(_vm._factorItems)))])]):_vm._e(),_c('v-col',{staticClass:\"factor-highlight\"},[_vm._v(\" \"+_vm._s(_vm.$t('labels.sum'))+\": \"),_c('span',{staticClass:\"sum\"},[_vm._v(_vm._s(_vm.calculateValue(_vm._factorItems))+\" \"+_vm._s(_vm.unit))])])],1)],1),_c('v-card-actions',{staticClass:\"factor-actions\"},[_c('info-tooltip',{attrs:{\"information\":_vm.$t('info.factors-edit', { name: _vm.name })}}),_c('v-spacer'),_c('v-form',{attrs:{\"id\":\"factor-form\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.submit.apply(null, arguments)}}},[_c('v-btn',{attrs:{\"color\":\"secondary\",\"type\":\"submit\",\"loading\":_vm.loading,\"disabled\":!(_vm.add || _vm.del || _vm.change)}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.save'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-check\")])],1),_c('v-btn',{staticClass:\"close-action\",on:{\"click\":_vm.close}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.close'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-close\")])],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import {\n ProjectFactor,\n ProjectFactorItem,\n} from '@/models/calculation/interfaces';\nimport { CompanyFactor, CompanyFactorItem } from '@/models/company/interfaces';\n\nexport const calculateValue = (\n factorItems: Array\n): number => {\n let value = 0;\n factorItems &&\n factorItems.length > 0 &&\n factorItems.map(item => {\n value += item.Value;\n });\n return value;\n};\n\nexport const calculateFactor = (\n factorItems: Array\n): number => {\n const value = calculateValue(factorItems);\n return Math.round(value + Number.EPSILON + 100) / 100;\n};\n\nexport const calculateValueProject = (\n factorItems: Array | undefined\n): number => {\n let value = 0;\n factorItems &&\n factorItems.length > 0 &&\n factorItems.map(item => {\n if (item.Value) value += item.Value;\n });\n return value;\n};\n\nexport const calculateFactorProject = (\n factorItems: Array | undefined\n): number => {\n const value = calculateValueProject(factorItems);\n return Math.round(value + Number.EPSILON + 100) / 100;\n};\n\nexport const customerHourPrice = (factors: Array): string => {\n let factor2 = 0;\n let factor3 = 0;\n let factor4 = 0;\n let factor6 = 0;\n\n factors &&\n factors.length > 0 &&\n factors.map(factor => {\n if (factor.FactorNumber == 2)\n factor2 = calculateValue(factor.CompanyFactorItems);\n if (factor.FactorNumber == 3)\n factor3 = calculateFactor(factor.CompanyFactorItems);\n if (factor.FactorNumber == 4)\n factor4 = calculateFactor(factor.CompanyFactorItems);\n if (factor.FactorNumber == 6)\n factor6 = calculateFactor(factor.CompanyFactorItems);\n });\n\n const value = factor2 * ((factor3 + factor4 - 1) * factor6);\n return value.toFixed(2);\n};\n\nexport const customerHourPriceCalculation = (\n factors: Array\n): string => {\n let factor2 = 0;\n let factor3 = 0;\n let factor4 = 0;\n let factor6 = 0;\n\n factors &&\n factors.length > 0 &&\n factors.map(factor => {\n if (factor.FactorNumber == 2 && factor.FactorItems)\n factor2 = calculateValueProject(factor.FactorItems);\n if (factor.FactorNumber == 3)\n factor3 = calculateFactorProject(factor.FactorItems);\n if (factor.FactorNumber == 4)\n factor4 = calculateFactorProject(factor.FactorItems);\n if (factor.FactorNumber == 6)\n factor6 = calculateFactorProject(factor.FactorItems);\n });\n\n const value = factor2 * ((factor3 + factor4 - 1) * factor6);\n return value.toFixed(2);\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('confirm',{attrs:{\"customTitle\":true},scopedSlots:_vm._u([{key:\"activator-element\",fn:function(){return [_c('v-btn',{staticClass:\"ma-2\",attrs:{\"color\":\"secondary\",\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.$t('titles.add-factor'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-plus\")])],1)]},proxy:true},{key:\"custom-title\",fn:function(){return [_c('dialog-title',{attrs:{\"headerText\":_vm.$t('titles.add-factor'),\"secondaryText\":_vm.name},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":_vm.close}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)]},proxy:true}])})]},proxy:true},{key:\"text\",fn:function(){return [_c('v-row',{attrs:{\"justify\":\"center\",\"dense\":\"\"}},[_c('v-text-field',{attrs:{\"dense\":\"\",\"label\":_vm.$t('labels.description'),\"required\":\"\",\"autofocus\":\"\",\"outlined\":\"\",\"clearable\":\"\"},model:{value:(_vm.payload.Name),callback:function ($$v) {_vm.$set(_vm.payload, \"Name\", $$v)},expression:\"payload.Name\"}}),_c('v-text-field',{attrs:{\"dense\":\"\",\"label\":_vm.$t('labels.value'),\"type\":\"number\",\"min\":\"0\",\"required\":\"\",\"suffix\":_vm.unit,\"outlined\":\"\",\"clearable\":\"\"},on:{\"input\":function($event){_vm.element.Amount = $event !== '' ? $event : null}},model:{value:(_vm.payload.Value),callback:function ($$v) {_vm.$set(_vm.payload, \"Value\", _vm._n($$v))},expression:\"payload.Value\"}})],1)]},proxy:true},{key:\"accept\",fn:function(){return [_c('v-btn',{attrs:{\"disabled\":!_vm.valid,\"color\":\"secondary\"},on:{\"click\":_vm.submit}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.add'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-check\")])],1)]},proxy:true}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport {\n reactive,\n PropType,\n defineComponent,\n computed,\n ref,\n} from '@vue/composition-api';\nimport { CompanyFactorItem } from '@/models/company/interfaces';\nimport { cleanSource } from '@/helpers/common';\nimport Confirm from '@/components/common/confirm/index.vue';\nimport DialogTitle from '@/components/common/dialog-title/index.vue';\n\nconst payload = reactive({\n Name: '',\n Value: 0,\n});\n\nconst valid = computed(() => {\n return payload.Name !== '' && payload.Value > 0;\n});\n\nexport default defineComponent({\n components: {\n Confirm,\n DialogTitle,\n },\n props: {\n unit: {\n type: String,\n },\n items: {\n type: Array as PropType>,\n required: true,\n },\n name: {\n type: String,\n },\n },\n setup({ items }, { emit }) {\n const dialog = ref(false);\n const close = () => {\n dialog.value = false;\n };\n const add = (item: CompanyFactorItem) => {\n const newItem: CompanyFactorItem = cleanSource(item);\n items.push(newItem);\n payload.Name = '';\n payload.Value = 0;\n emit('added', true);\n };\n\n const submit = () => {\n add(payload);\n close();\n };\n\n return {\n payload,\n valid,\n dialog,\n submit,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=1cfc9f32&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=1cfc9f32&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1cfc9f32\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VIcon,VRow,VTextField})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { calculateFactor, calculateValue } from '@/helpers/factor';\nimport AddModal from '@/components/factors/factor-add-modal/index.vue';\nimport { ref, PropType, defineComponent } from '@vue/composition-api';\nimport { CompanyFactor } from '@/models/company/interfaces';\nimport { cleanSource } from '@/helpers/common';\nimport { useFactors } from '@/modules/factors';\nimport DialogTitle from '@/components/common/dialog-title/index.vue';\nimport InfoTooltip from '@/components/common/tooltip-helper/index.vue';\nimport { translate } from '@/localization';\n\nexport default defineComponent({\n components: {\n AddModal,\n DialogTitle,\n InfoTooltip,\n },\n props: {\n items: {\n type: Array as PropType>,\n required: true,\n },\n unit: {\n type: String,\n required: true,\n },\n id: {\n type: String,\n required: true,\n },\n name: {\n type: String,\n required: true,\n },\n },\n setup({ items, id }, { emit }): Record {\n const { loading, updateFactors } = useFactors();\n\n const _factorItems = ref(cleanSource(items));\n const dialog = ref(false);\n const add = ref(false);\n const del = ref(false);\n const change = ref(false);\n\n const submit = async () => {\n const success = await updateFactors(id, _factorItems.value);\n emit('updateFactors', true);\n if (success) {\n add.value = false;\n del.value = false;\n change.value = false;\n }\n };\n\n const deleteEvent = (index: number) => {\n _factorItems.value.splice(index, 1);\n del.value = true;\n };\n\n const close = () => {\n dialog.value = false;\n add.value = false;\n del.value = false;\n change.value = false;\n _factorItems.value = cleanSource(items);\n };\n\n const added = () => {\n add.value = true;\n };\n\n return {\n close,\n calculateFactor,\n calculateValue,\n deleteEvent,\n added,\n submit,\n loading,\n _factorItems,\n headers: [\n {\n text: `${translate('labels.description')}`,\n align: 'start',\n sortable: false,\n value: 'Name',\n width: '50%',\n },\n { text: `${translate('labels.value')}`, value: 'Value', width: '15%' },\n { text: `${translate('headers.amount')}`, value: 'unit' },\n { text: '', value: 'actions', sortable: false },\n ],\n dialog,\n add,\n del,\n change,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=16b70dae&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=16b70dae&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"16b70dae\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VDataTable,VDialog,VForm,VIcon,VRow,VSpacer,VTextField})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport EditModal from '@/components/factors/factor-edit-modal/index.vue';\nimport { calculateFactor, calculateValue } from '@/helpers/factor';\nimport { CompanyFactor } from '@/models/company/interfaces';\nimport { useFactors } from '@/modules/factors';\nimport { defineComponent, PropType } from '@vue/composition-api';\n\nexport default defineComponent({\n components: {\n EditModal,\n },\n props: {\n factors: {\n type: Array as PropType>,\n required: true,\n },\n },\n setup(props, { emit }) {\n const { getFactorNameFromId } = useFactors();\n\n const updateFactors = () => {\n emit('updateFactors', true);\n };\n\n return {\n calculateFactor,\n getFactorNameFromId,\n calculateValue,\n updateFactors,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=2523b904&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=2523b904&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2523b904\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\ninstallComponents(component, {VSimpleTable})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"container\"},[_c('v-row',{attrs:{\"dense\":\"\",\"justify\":\"center\"}},[_c('div',{staticClass:\"summary-wrapper\"},[_vm._v(\" \"+_vm._s(_vm.$t('common.hourly-price'))+\" \"),_c('span',{staticClass:\"total\"},[_vm._v(_vm._s(_vm.IsCalculation ? _vm.customerHourPriceCalculation(_vm.factors) : _vm.customerHourPrice(_vm.factors)))]),_vm._v(\" \"+_vm._s(_vm.$t('common.vat-exclude'))+\" \"),_c('info-tooltip',{attrs:{\"information\":_vm.$t('info.customer-price')}})],1)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport {\n customerHourPrice,\n customerHourPriceCalculation,\n} from '@/helpers/factor';\nimport { ProjectFactor } from '@/models/calculation/interfaces';\nimport { CompanyFactor } from '@/models/company/interfaces';\nimport { defineComponent, PropType } from '@vue/composition-api';\nimport InfoTooltip from '@/components/common/tooltip-helper/index.vue';\n\nexport default defineComponent({\n components: {\n InfoTooltip,\n },\n props: {\n factors: {\n type: Array as PropType | Array>,\n },\n IsCalculation: {\n type: Boolean,\n },\n },\n setup() {\n return {\n customerHourPrice,\n customerHourPriceCalculation,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=b8224632&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=b8224632&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b8224632\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VRow})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Factor from '@/components/factors/factor/index.vue';\nimport FactorSummary from '@/components/factors/factor-summary/index.vue';\nimport InfoTooltip from '@/components/common/tooltip-helper/index.vue';\nimport { useFactors } from '@/modules/factors';\nimport { defineComponent, onMounted, ref } from '@vue/composition-api';\nimport Confirm from '@/components/common/confirm/index.vue';\nimport { CompanyFactor } from '@/models/company/interfaces';\nimport { useProject } from '@/modules/project';\nimport {\n getIconByProfessionCode,\n getNameByProfessionCode,\n} from '@/helpers/common';\nimport ContentBar from '@/components/common/content-bar/index.vue';\nimport Loader from '@/components/loader/index.vue';\n\nexport default defineComponent({\n components: {\n Factor,\n FactorSummary,\n Confirm,\n InfoTooltip,\n ContentBar,\n Loader,\n },\n setup() {\n const { loading, resetFactors, filteredFactors, getFactors } = useFactors();\n const { getProfessions, professions } = useProject();\n const dialog = ref(false);\n const activeProf = ref('03');\n\n const factors = ref | undefined>();\n\n const initFactors = async () => {\n factors.value = await getFactors();\n await getProfessions();\n };\n\n onMounted(async () => {\n await initFactors();\n });\n\n const reset = async () => {\n await resetFactors();\n };\n\n return {\n getIconByProfessionCode,\n getNameByProfessionCode,\n filteredFactors,\n reset,\n initFactors,\n loading,\n factors,\n professions,\n dialog,\n activeProf,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=27bfd2c9&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=27bfd2c9&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"27bfd2c9\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VTab } from 'vuetify/lib/components/VTabs';\nimport { VTabItem } from 'vuetify/lib/components/VTabs';\nimport { VTabs } from 'vuetify/lib/components/VTabs';\ninstallComponents(component, {VBtn,VCard,VIcon,VTab,VTabItem,VTabs})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.loading)?_c('div',[_c('content-bar',{attrs:{\"small\":true,\"title\":_vm.$t('titles.organization')},scopedSlots:_vm._u([{key:\"content-right\",fn:function(){return [_c('v-dialog',{attrs:{\"max-width\":\"900px\"},on:{\"click:outside\":_vm.close},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"ma-2 white--text\",attrs:{\"small\":\"\",\"color\":\"secondary\",\"outlined\":\"\"}},'v-btn',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.$t('buttons.edit-info'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\",\"small\":\"\"}},[_vm._v(\"mdi-pencil\")])],1)]}}],null,false,4229036591),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('organization-form',{on:{\"close\":_vm.close}})],1)]},proxy:true}],null,false,3173936837)}),_c('v-card',{attrs:{\"tile\":\"\",\"height\":\"100%\"}},[(_vm.company)?_c('v-list',{staticClass:\"org-info\",attrs:{\"two-line\":\"\"}},[_c('v-list-item',[_c('v-list-item-icon',[_c('v-icon',{attrs:{\"color\":\"#9e9e9e\"}},[_vm._v(\" mdi-card-account-details \")])],1),_c('v-list-item-content',[_c('v-row',[_c('v-col',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.company.OrganizationNumber))]),_c('v-list-item-subtitle',[_vm._v(_vm._s(_vm.$t('labels.org-number')))])],1),_c('v-col',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.company.CompanyName))]),_c('v-list-item-subtitle',[_vm._v(_vm._s(_vm.$t('labels.company-name')))])],1)],1)],1)],1),_c('v-divider',{attrs:{\"inset\":\"\"}}),_c('v-list-item',[_c('v-list-item-icon',[_c('v-icon',{attrs:{\"color\":\"#9e9e9e\"}},[_vm._v(\" mdi-email \")])],1),_c('v-list-item-content',[_c('v-row',[_c('v-col',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.company.Email))]),_c('v-list-item-subtitle',[_vm._v(_vm._s(_vm.$t('labels.email')))])],1),_c('v-col',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.company.ContactPersonName))]),_c('v-list-item-subtitle',[_vm._v(_vm._s(_vm.$t('labels.contact')))])],1)],1)],1)],1),_c('v-divider',{attrs:{\"inset\":\"\"}}),_c('v-list-item',[_c('v-list-item-icon',[_c('v-icon',{attrs:{\"color\":\"#9e9e9e\"}},[_vm._v(\" mdi-map-marker \")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.address))]),_c('v-list-item-subtitle',[_vm._v(_vm._s(_vm.$t('labels.address')))])],1)],1),(_vm.company.OrderInfo)?_c('v-list-item',[_c('v-list-item-title',[_vm._v(_vm._s(((_vm.$t('labels.order')) + \" \" + (_vm.$t('common.information'))))+\":\")]),_c('v-list-item-subtitle',{staticClass:\"text-right\"},[_vm._v(\" \"+_vm._s(_vm.company.OrderInfo)+\" \")])],1):_vm._e(),(_vm.company.PriceInfo)?_c('v-list-item',[_c('v-list-item-title',[_vm._v(_vm._s(((_vm.$t('labels.price')) + \" \" + (_vm.$t('common.information'))))+\":\")]),_c('v-list-item-subtitle',{staticClass:\"text-right\"},[_vm._v(\" \"+_vm._s(_vm.company.PriceInfo)+\" \")])],1):_vm._e()],1):_vm._e()],1)],1):_c('div',[_c('content-bar',{attrs:{\"small\":true,\"title\":_vm.$t('titles.organization')}}),_c('v-card',[_c('loader',{attrs:{\"margins\":true}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { reactive, toRefs } from '@vue/composition-api';\nimport { useApi } from './api';\nimport { Company } from '@/models/company/interfaces';\nimport { useSnackbar } from '@/modules/snackbar';\nimport { useErrorModal } from './error';\nimport { CustomError } from '@/models/common/interfaces';\nimport { isSuccess } from '@/helpers/common';\n\ninterface CompanyState {\n company?: Company;\n loading: boolean;\n error?: CustomError;\n}\n\nconst state = reactive({\n company: undefined,\n loading: false,\n error: undefined,\n});\n\nexport const useCompany = () => {\n const { errorModal } = useErrorModal();\n const { snack } = useSnackbar();\n\n const getCompany = async (force?: boolean): Promise => {\n const { get } = useApi('/company');\n if (state.company && !force) {\n return state.company;\n }\n state.loading = true;\n\n try {\n const response = await get();\n if (isSuccess(response.status)) {\n state.company = response.data;\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n\n state.loading = false;\n return state.company;\n };\n\n const updateCompany = async (updatedCompany: Company): Promise => {\n const { put } = useApi('/company/save');\n\n state.loading = true;\n\n try {\n const response = await put(updatedCompany);\n if (isSuccess(response.status)) {\n state.company = response.data;\n snack('snack.company-updated', true);\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n\n state.loading = false;\n };\n\n const getLogo = async (): Promise => {\n if (!state.company) {\n await getCompany();\n }\n return state.company?.Logo ?? '';\n };\n\n const setBaseUrl = async (file: File): Promise => {\n return new Promise((resolve, reject) => {\n try {\n const reader = new FileReader();\n let baseString: string;\n reader.onloadend = evt => {\n if (evt.target && evt.target.readyState == FileReader.DONE) {\n baseString = reader.result as string;\n if (state.company) {\n const base = baseString.substring(\n baseString.indexOf('base64,') + 'base64,'.length,\n baseString.length\n );\n state.company.Logo = base;\n resolve(base);\n }\n }\n };\n reader.readAsDataURL(file);\n } catch (e) {\n reject(e);\n }\n });\n };\n\n const uploadLogo = async (file: File): Promise => {\n const { postMultipart } = useApi('/company/logo');\n\n const formData = new FormData();\n formData.append('file', file);\n\n let updated = false;\n\n try {\n await postMultipart(formData);\n await setBaseUrl(file);\n snack('snack.logo-updated', true);\n updated = true;\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n\n return updated;\n };\n\n return {\n getCompany,\n updateCompany,\n getLogo,\n uploadLogo,\n ...toRefs(state),\n };\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{attrs:{\"flat\":\"\",\"tile\":\"\"}},[_c('v-form',{attrs:{\"id\":\"organization-form\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.submit.apply(null, arguments)}},model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('dialog-title',{attrs:{\"headerText\":_vm.$t('titles.edit-organization')},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":_vm.close}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)]},proxy:true}])}),_c('v-card-text',{staticClass:\"edit-content\"},[_c('v-subheader',{staticClass:\"field-name\"},[_vm._v(\" \"+_vm._s(_vm.$t('titles.info-organization'))+\" \")]),_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('input',{attrs:{\"type\":\"hidden\",\"v-model\":_vm.payload.Id}}),_c('input',{attrs:{\"type\":\"hidden\",\"v-model\":_vm.payload.OrganizationNumber}}),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-text-field',{attrs:{\"hint\":_vm.$t('info.org-number'),\"value\":_vm.payload.OrganizationNumber,\"readonly\":\"\",\"dense\":\"\",\"outlined\":\"\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-text-field',{attrs:{\"hint\":_vm.$t('info.org-name'),\"rules\":[_vm.rules.required],\"clearable\":\"\",\"dense\":\"\",\"outlined\":\"\",\"placeholder\":_vm.$t('labels.company-name'),\"label\":_vm.$t('labels.company-name')},model:{value:(_vm.payload.CompanyName),callback:function ($$v) {_vm.$set(_vm.payload, \"CompanyName\", $$v)},expression:\"payload.CompanyName\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-text-field',{attrs:{\"clearable\":\"\",\"dense\":\"\",\"outlined\":\"\",\"placeholder\":_vm.$t('labels.contact'),\"label\":_vm.$t('info.contact')},model:{value:(_vm.payload.ContactPersonName),callback:function ($$v) {_vm.$set(_vm.payload, \"ContactPersonName\", $$v)},expression:\"payload.ContactPersonName\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-text-field',{attrs:{\"clearable\":\"\",\"dense\":\"\",\"outlined\":\"\",\"placeholder\":_vm.$t('info.phone'),\"label\":_vm.$t('info.phone')},model:{value:(_vm.payload.ContactPersonPhone),callback:function ($$v) {_vm.$set(_vm.payload, \"ContactPersonPhone\", $$v)},expression:\"payload.ContactPersonPhone\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-text-field',{attrs:{\"clearable\":\"\",\"placeholder\":_vm.$t('labels.address'),\"label\":_vm.$t('labels.address'),\"dense\":\"\",\"outlined\":\"\"},model:{value:(_vm.payload.AddressLine1),callback:function ($$v) {_vm.$set(_vm.payload, \"AddressLine1\", $$v)},expression:\"payload.AddressLine1\"}})],1),_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('v-text-field',{attrs:{\"clearable\":\"\",\"dense\":\"\",\"outlined\":\"\",\"placeholder\":_vm.$t('labels.zip'),\"label\":_vm.$t('labels.zip')},model:{value:(_vm.payload.PostNumber),callback:function ($$v) {_vm.$set(_vm.payload, \"PostNumber\", $$v)},expression:\"payload.PostNumber\"}})],1),_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('v-text-field',{attrs:{\"clearable\":\"\",\"dense\":\"\",\"outlined\":\"\",\"placeholder\":_vm.$t('labels.post-office'),\"label\":_vm.$t('labels.post-office')},model:{value:(_vm.payload.PostOffice),callback:function ($$v) {_vm.$set(_vm.payload, \"PostOffice\", $$v)},expression:\"payload.PostOffice\"}})],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-text-field',{attrs:{\"clearable\":\"\",\"dense\":\"\",\"outlined\":\"\",\"rules\":_vm.emailRules,\"placeholder\":_vm.$t('labels.email'),\"label\":_vm.$t('labels.email')},model:{value:(_vm.payload.Email),callback:function ($$v) {_vm.$set(_vm.payload, \"Email\", $$v)},expression:\"payload.Email\"}})],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-text-field',{attrs:{\"clearable\":\"\",\"dense\":\"\",\"outlined\":\"\",\"placeholder\":_vm.$t('labels.phone'),\"label\":_vm.$t('labels.phone')},model:{value:(_vm.payload.Phone),callback:function ($$v) {_vm.$set(_vm.payload, \"Phone\", $$v)},expression:\"payload.Phone\"}})],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-text-field',{attrs:{\"clearable\":\"\",\"dense\":\"\",\"outlined\":\"\",\"placeholder\":_vm.$t('labels.website'),\"label\":_vm.$t('labels.website')},model:{value:(_vm.payload.Website),callback:function ($$v) {_vm.$set(_vm.payload, \"Website\", $$v)},expression:\"payload.Website\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-text-field',{attrs:{\"clearable\":\"\",\"dense\":\"\",\"outlined\":\"\",\"placeholder\":_vm.$t('labels.order'),\"label\":_vm.$t('labels.order')},model:{value:(_vm.payload.OrderInfo),callback:function ($$v) {_vm.$set(_vm.payload, \"OrderInfo\", $$v)},expression:\"payload.OrderInfo\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-text-field',{attrs:{\"clearable\":\"\",\"dense\":\"\",\"outlined\":\"\",\"placeholder\":_vm.$t('labels.price'),\"label\":_vm.$t('labels.price')},model:{value:(_vm.payload.PriceInfo),callback:function ($$v) {_vm.$set(_vm.payload, \"PriceInfo\", $$v)},expression:\"payload.PriceInfo\"}})],1)],1)],1)],1),_c('v-card-actions',{staticClass:\"edit-actions\"},[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"secondary\",\"type\":\"submit\",\"loading\":_vm.loading,\"disabled\":!_vm.valid}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.update'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-check\")])],1),_c('v-btn',{on:{\"click\":_vm.close}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.close'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-close\")])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { ref, defineComponent } from '@vue/composition-api';\nimport { useCompany } from '@/modules/company';\nimport { Company } from '@/models/company/interfaces';\nimport { cleanSource } from '@/helpers/common';\nimport DialogTitle from '@/components/common/dialog-title/index.vue';\nimport { translate } from '@/localization';\n\nconst valid = ref(false);\n\nexport default defineComponent({\n components: {\n DialogTitle,\n },\n setup(props, { emit }) {\n const { loading, company, error, updateCompany } = useCompany();\n let payload: Company = {};\n\n if (company?.value) {\n payload = cleanSource(company.value);\n }\n\n const submit = async () => {\n await updateCompany(payload);\n emit('close', true);\n };\n\n const close = () => {\n emit('close', true);\n };\n\n return {\n submit,\n close,\n loading,\n valid,\n payload,\n error,\n rules: {\n required: (v: string) => !!v || `${translate('validation.required')}`,\n },\n emailRules: [\n (v: string) => !!v || `${translate('validation.required')}`,\n (v: string) =>\n /.+@.+\\..+/.test(v) || `${translate('validation.invalid')}`,\n ],\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=44e65d96&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=44e65d96&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"44e65d96\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VContainer,VForm,VIcon,VRow,VSpacer,VSubheader,VTextField})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { useCompany } from '@/modules/company';\nimport { computed, ref } from '@vue/composition-api';\nimport OrganizationForm from '@/components/forms/organization-form/index.vue';\nimport { defineComponent } from '@vue/composition-api';\nimport ContentBar from '@/components/common/content-bar/index.vue';\nimport Loader from '@/components/loader/index.vue';\nimport { createAddressString } from '@/helpers/common';\n\nexport default defineComponent({\n components: {\n OrganizationForm,\n ContentBar,\n Loader,\n },\n setup() {\n const { loading, company } = useCompany();\n const dialog = ref(false);\n\n const close = () => {\n dialog.value = false;\n };\n\n const address = computed(() => {\n createAddressString(company?.value);\n });\n\n return {\n company,\n address,\n close,\n dialog,\n loading,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=24c678ef&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=24c678ef&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"24c678ef\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemSubtitle } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCard,VCol,VDialog,VDivider,VIcon,VList,VListItem,VListItemContent,VListItemIcon,VListItemSubtitle,VListItemTitle,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.loading)?_c('div',[_c('content-bar',{attrs:{\"small\":true,\"title\":_vm.$t('titles.contacts')},scopedSlots:_vm._u([{key:\"content-right\",fn:function(){return [(_vm.contacts)?_c('edit-contacts',{attrs:{\"contacts\":_vm.contacts}}):_vm._e()]},proxy:true}],null,false,1580546606)}),_c('v-card',{staticClass:\"contacts-card\",attrs:{\"tile\":\"\"}},[(_vm.contacts)?_c('v-container',{attrs:{\"fluid\":\"\"}},[(_vm.contacts)?_c('v-row',_vm._l((_vm.contacts),function(contact){return _c('v-col',{key:contact.id,attrs:{\"md\":\"4\",\"cols\":\"12\"}},[_c('contact-card',{attrs:{\"contact\":contact}})],1)}),1):(!_vm.loading)?_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('br'),_c('br'),_c('v-subheader',[_vm._v(\" \"+_vm._s(_vm.$t('common.no-contacts')))])],1):_vm._e()],1):_vm._e()],1)],1):_c('div',[_c('content-bar',{attrs:{\"small\":true,\"title\":_vm.$t('titles.contacts')}}),_c('v-card',[_c('loader',{attrs:{\"margins\":true}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { reactive, toRefs } from '@vue/composition-api';\nimport { useApi } from './api';\nimport {\n Contact,\n ContactMapping,\n ProjectContact,\n} from '@/models/contacts/interfaces';\nimport { useSnackbar } from './snackbar';\nimport { CustomError } from '@/models/common/interfaces';\nimport { useErrorModal } from './error';\nimport { isSuccess } from '@/helpers/common';\nimport { useCalculation } from './calculation';\n\ninterface ContactsState {\n contacts?: Array;\n projectContacts?: Array;\n loading: boolean;\n error?: CustomError;\n}\n\nconst state = reactive({\n contacts: undefined,\n projectContacts: undefined,\n loading: false,\n error: undefined,\n});\n\nexport const useContacts = () => {\n const { snack } = useSnackbar();\n const { errorModal } = useErrorModal();\n\n const getContacts = async (\n force?: boolean\n ): Promise | undefined> => {\n const { get } = useApi('/contact');\n if (state.contacts && !force) {\n return state.contacts;\n }\n state.loading = true;\n\n try {\n const response = await get();\n if (isSuccess(response.status)) {\n state.contacts = response.data;\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n\n state.loading = false;\n return state.contacts;\n };\n\n const existsAsCalculationContact = (\n contact: Contact,\n calcContacts: Array\n ): boolean => {\n const { projectCalculation } = useCalculation();\n let exists = false;\n if (!projectCalculation?.value?.Id) {\n return exists;\n }\n\n if (calcContacts) {\n const projContact = calcContacts.find(pc => pc.ContactId === contact.Id);\n\n if (projContact) {\n exists = true;\n }\n }\n\n return exists;\n };\n\n const existsAsPrimary = (\n contact: Contact,\n calcContacts: Array\n ): boolean => {\n const { projectCalculation } = useCalculation();\n\n let exists = false;\n if (!projectCalculation?.value?.Id) {\n return exists;\n }\n\n if (calcContacts) {\n const projContact = calcContacts.find(\n pc => pc.ContactId === contact.Id && pc.IsPrimaryContact\n );\n\n if (projContact) {\n exists = true;\n }\n }\n\n return exists;\n };\n\n const setAsPrimaryContact = async (contactId: string): Promise => {\n const { projectCalculation } = useCalculation();\n\n if (!projectCalculation?.value?.Id) {\n return;\n }\n const { post } = useApi(\n `/project/${projectCalculation.value.Id}/SetAsPrimaryContact/${contactId}`\n );\n\n try {\n const response = await post();\n if (isSuccess(response.status)) {\n snack('snack.contact-primary-contact-changed', true);\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n };\n\n const removeContactFromCalculation = async (\n contact: Contact\n ): Promise => {\n const { projectCalculation, getCalculationContacts } = useCalculation();\n\n if (!projectCalculation?.value?.Id) {\n return;\n }\n\n const { put } = useApi(`/project/${projectCalculation.value.Id}/contacts`);\n\n const contactMappings: Array = [];\n const calcContacts = await getCalculationContacts(\n projectCalculation.value.Id\n );\n\n if (calcContacts && calcContacts.length > 0) {\n calcContacts.forEach(pc => {\n if (pc.ContactId !== contact.Id) {\n const mapping: ContactMapping = {\n ProjectRole: pc.ProjectRole ?? '',\n ContactId: pc.ContactId ?? '',\n IsPrimaryContact: pc.IsPrimaryContact ?? false,\n };\n\n contactMappings.push(mapping);\n }\n });\n }\n\n try {\n const response = await put(contactMappings);\n if (isSuccess(response.status)) {\n snack('snack.contact-removed-calculation', true);\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n };\n\n const addContactToCalculation = async (contact: Contact): Promise => {\n const { projectCalculation, getCalculationContacts } = useCalculation();\n\n if (!projectCalculation?.value?.Id) {\n return;\n }\n\n const { put } = useApi(`/project/${projectCalculation.value.Id}/contacts`);\n\n const contactMappings: Array = [];\n const calcContacts = await getCalculationContacts(\n projectCalculation.value.Id\n );\n\n if (calcContacts && calcContacts.length > 0) {\n calcContacts.forEach(pc => {\n const mapping: ContactMapping = {\n ProjectRole: pc.ProjectRole ?? '',\n ContactId: pc.ContactId ?? '',\n IsPrimaryContact: pc.IsPrimaryContact ?? false,\n };\n\n contactMappings.push(mapping);\n });\n }\n\n if (contact.Id) {\n const newContact: ContactMapping = {\n ProjectRole: 'Participant',\n ContactId: contact.Id,\n IsPrimaryContact: false,\n };\n\n contactMappings.push(newContact);\n }\n\n try {\n const response = await put(contactMappings);\n if (isSuccess(response.status)) {\n snack('snack.contact-added-calculation', true);\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n };\n\n const updateContract = async (updatedContact: Contact): Promise => {\n const { put } = useApi('/contact/');\n\n state.loading = true;\n\n try {\n const response = await put(updatedContact);\n if (isSuccess(response.status) && state.contacts) {\n state.contacts.forEach(contact => {\n if (contact.Id === updatedContact.Id && state.contacts) {\n const index = state.contacts.indexOf(contact);\n state.contacts.splice(index, 1);\n state.contacts.unshift(updatedContact);\n }\n });\n snack('snack.contact-updated', true);\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n\n state.loading = false;\n };\n\n const createContact = async (newContact: Contact): Promise => {\n const { post } = useApi('/contact/');\n state.loading = true;\n\n try {\n const response = await post(newContact);\n if (isSuccess(response.status) && state.contacts) {\n state.contacts.unshift(response.data);\n snack('snack.contact-created', true);\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n\n state.loading = false;\n };\n\n const deleteContact = async (contactId: string): Promise => {\n const { deleteReq } = useApi(`/contact/${contactId}`);\n state.loading = true;\n\n try {\n const response = await deleteReq();\n if (isSuccess(response.status)) {\n state.contacts?.forEach(contact => {\n if (contact.Id === contactId && state.contacts) {\n const index = state.contacts.indexOf(contact);\n state.contacts?.splice(index, 1);\n snack('snack.contact-deleted', true);\n }\n });\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n\n state.loading = false;\n };\n\n return {\n createContact,\n updateContract,\n deleteContact,\n getContacts,\n setAsPrimaryContact,\n addContactToCalculation,\n existsAsCalculationContact,\n existsAsPrimary,\n removeContactFromCalculation,\n ...toRefs(state),\n };\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{attrs:{\"tile\":\"\",\"min-height\":\"80\",\"color\":_vm.color ? _vm.color : ''}},[_c('div',{staticClass:\"d-flex flex-no-wrap justify-space-between\"},[_c('div',[_c('v-card-title',{domProps:{\"textContent\":_vm._s(_vm.fullName)}}),_c('v-card-subtitle',[_vm._v(_vm._s(_vm.contact.Title ? _vm.contact.Title : _vm.$t('info.no-title')))])],1),_c('v-avatar',{attrs:{\"size\":\"80\",\"tile\":\"\"}},[_c('v-icon',{attrs:{\"color\":\"primary\"}},[_vm._v(\" mdi-account-circle-outline \")])],1)],1),(!_vm.small)?_c('v-list',{attrs:{\"dense\":\"\",\"disabled\":\"\",\"width\":\"100%\"}},[_c('v-list-item',{attrs:{\"dense\":\"\"}},[_c('v-list-item-content',[_vm._v(_vm._s(_vm.$t(\"labels.email\")))]),_c('v-list-item-content',{staticClass:\"align-end font-weight-medium\"},[_vm._v(\" \"+_vm._s(_vm.contact.Email)+\" \")])],1),_c('v-list-item',{attrs:{\"dense\":\"\"}},[_c('v-list-item-content',[_vm._v(_vm._s(_vm.$t(\"labels.phone\")))]),_c('v-list-item-content',{staticClass:\"align-end font-weight-medium\"},[_vm._v(\" \"+_vm._s(_vm.contact.Phone ? _vm.contact.Phone : '-')+\" \")])],1)],1):_vm._e(),(_vm.hasActions && !_vm.small)?_c('v-card-actions',[_vm._t(\"actions\")],2):(!_vm.small)?_c('v-row',{staticClass:\"ma-2\",attrs:{\"dense\":\"\"}},[(_vm.contact.IsPrimaryContact)?_c('div',[_c('v-chip',{staticClass:\"ma-3\",attrs:{\"small\":\"\",\"color\":\"green\",\"text-color\":\"white\"}},[_vm._v(\" \"+_vm._s(_vm.$t('common.primary-contact'))+\" \")])],1):_vm._e(),(_vm.contact.ProjectRole)?_c('div',[_c('v-chip',{staticClass:\"ma-3\",attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.contact.ProjectRole)+\" \")])],1):(\n _vm.contact.ProjectRoles && _vm.contact.ProjectRoles.length > 0 && !_vm.small\n )?_c('v-list',{staticClass:\"ma-2 roles\",attrs:{\"dense\":\"\",\"width\":\"100%\"}},[_c('v-list-group',{attrs:{\"no-action\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('v-list-item-content',[_c('v-list-item-title',{domProps:{\"textContent\":_vm._s(_vm.$t('common.roles'))}})],1)]},proxy:true}])},_vm._l((_vm.contact.ProjectRoles),function(role,i){return _c('v-list-item',{key:i},[_c('v-list-item-content',[_c('v-list-item-title',{domProps:{\"textContent\":_vm._s(((role.Role) + \" (\" + (role.ProjectName) + \")\"))}})],1)],1)}),1)],1):(!_vm.small)?_c('div',{staticClass:\"ma-2 font-italic\"},[_vm._v(\" \"+_vm._s(_vm.$t('info.no-roles'))+\" \")]):_vm._e()],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { computed, defineComponent, PropType } from '@vue/composition-api';\nimport { Contact, ProjectContact } from '@/models/contacts/interfaces';\nexport default defineComponent({\n props: {\n contact: {\n type: Object as PropType,\n required: true,\n },\n allowCrud: {\n type: Boolean,\n },\n color: {\n type: String,\n },\n small: {\n type: Boolean,\n },\n },\n setup(props, { slots }) {\n const hasActions = computed(() => {\n return slots.actions && slots.actions().length;\n });\n\n const fullName = computed(() => {\n return `${props.contact.FirstName} ${props.contact.LastName}`;\n });\n\n return {\n hasActions,\n fullName,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=30b13138&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=30b13138&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"30b13138\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAvatar } from 'vuetify/lib/components/VAvatar';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardSubtitle } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListGroup } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VAvatar,VCard,VCardActions,VCardSubtitle,VCardTitle,VChip,VIcon,VList,VListGroup,VListItem,VListItemContent,VListItemTitle,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"width\":_vm.newContact || _vm.editContact ? 1200 : 600},on:{\"click:outside\":_vm.close},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"ma-2 white--text\",attrs:{\"small\":\"\",\"color\":\"secondary\",\"outlined\":\"\"}},'v-btn',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.$t('buttons.edit-contact-list'))+\" \"),_c('v-icon',{attrs:{\"small\":\"\",\"right\":\"\"}},[_vm._v(\"mdi-account-edit\")])],1)]}}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',{attrs:{\"flat\":\"\",\"tile\":\"\",\"disabled\":_vm.loading}},[_c('dialog-title',{attrs:{\"headerText\":_vm.$t('buttons.edit-contact-list'),\"secondaryText\":_vm.newContact\n ? _vm.$t('titles.new-contacts')\n : ((_vm.$t('titles.contacts')) + \" (\" + (_vm.contacts.length) + \")\")},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [(_vm.newContact || _vm.editContact)?_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-spacer'),_c('v-btn',{staticClass:\"ma-2\",attrs:{\"small\":\"\",\"outlined\":\"\"},on:{\"click\":_vm.cancel}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"mdi-arrow-collapse-left\")]),_vm._v(\" \"+_vm._s(_vm.$t('buttons.cancel'))+\" \")],1),(_vm.deleteContact)?_c('confirm',{scopedSlots:_vm._u([{key:\"activator-element\",fn:function(){return [_c('v-btn',{staticClass:\"ma-2\",attrs:{\"color\":\"error\",\"small\":\"\",\"outlined\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.delete'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-account-minus\")])],1)]},proxy:true},{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('user.delete-user', { name: ((_vm.deleteContact.FirstName) + \" \" + (_vm.deleteContact.LastName)), }))+\" \")]},proxy:true},{key:\"text\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('user.delete-info', { name: ((_vm.deleteContact.FirstName) + \" \" + (_vm.deleteContact.LastName)), }))+\" \")]},proxy:true},{key:\"accept\",fn:function(){return [_c('v-btn',{attrs:{\"color\":\"secondary\",\"loading\":_vm.loading},on:{\"click\":function($event){return _vm.deleteContactById(_vm.deleteContact.Id)}}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.confirm'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-check\")])],1)]},proxy:true}],null,false,1186311646),model:{value:(_vm.deleteDialog),callback:function ($$v) {_vm.deleteDialog=$$v},expression:\"deleteDialog\"}}):_vm._e(),_c('v-btn',{staticClass:\"ma-2\",attrs:{\"icon\":\"\",\"small\":\"\"},on:{\"click\":_vm.close}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1):_c('v-row',{attrs:{\"dense\":\"\",\"align-content\":\"right\"}},[_c('v-btn',{staticClass:\"ma-2 white--text\",attrs:{\"color\":\"secondary\",\"small\":\"\"},on:{\"click\":function($event){return _vm.setNewMode()}}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.new-contact'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-account-plus\")])],1),_c('v-btn',{staticClass:\"ma-2\",attrs:{\"icon\":\"\",\"small\":\"\"},on:{\"click\":_vm.close}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1)]},proxy:true}])}),_c('v-form',{attrs:{\"id\":\"contact-form\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.submit.apply(null, arguments)}},model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-card-text',[_c('v-row',{attrs:{\"dense\":\"\"}},[(!_vm.newContact)?_c('v-col',{attrs:{\"cols\":_vm.editContact ? 5 : 12}},[_c('v-item-group',[_c('perfect-scrollbar',{attrs:{\"options\":{\n suppressScrollX: true,\n }}},[_c('v-container',{staticClass:\"list-container\"},[_c('v-row',{staticClass:\"contact-row\",attrs:{\"dense\":\"\"}},[_c('v-item',{scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\n var toggle = ref.toggle;\nreturn [(_vm.contacts)?_c('v-row',{attrs:{\"dense\":\"\",\"justify\":\"start\"}},_vm._l((_vm.contacts),function(contact){return _c('v-col',{key:contact.id,attrs:{\"cols\":\"12\"}},[_c('div',{class:_vm.payload.Id === contact.Id\n ? 'contact-item-active'\n : 'contact-item',on:{\"click\":function($event){_vm.setEditMode(contact);\n toggle($event);}}},[_c('contact-card',{attrs:{\"contact\":contact,\"small\":true}})],1)])}),1):_vm._e()]}}],null,false,3504766049)})],1)],1)],1)],1)],1):_vm._e(),(_vm.newContact || _vm.editContact)?[_c('v-col',[_c('v-card',{attrs:{\"flat\":\"\",\"tile\":\"\"}},[_c('v-card-text',{staticClass:\"edit-content\"},[_c('v-container',[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":\"6\"}},[_c('v-text-field',{attrs:{\"dense\":\"\",\"label\":((_vm.$t('labels.first-name')) + \"*\"),\"required\":\"\",\"value\":_vm.payload.FirstName,\"rules\":_vm.fieldRules},model:{value:(_vm.payload.FirstName),callback:function ($$v) {_vm.$set(_vm.payload, \"FirstName\", $$v)},expression:\"payload.FirstName\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":\"6\"}},[_c('v-text-field',{attrs:{\"dense\":\"\",\"label\":((_vm.$t('labels.last-name')) + \"*\"),\"required\":\"\",\"value\":_vm.payload.LastName,\"rules\":_vm.fieldRules},model:{value:(_vm.payload.LastName),callback:function ($$v) {_vm.$set(_vm.payload, \"LastName\", $$v)},expression:\"payload.LastName\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":\"6\"}},[_c('v-text-field',{attrs:{\"dense\":\"\",\"label\":(\"\" + (_vm.$t('labels.title'))),\"value\":_vm.payload.Title},model:{value:(_vm.payload.Title),callback:function ($$v) {_vm.$set(_vm.payload, \"Title\", $$v)},expression:\"payload.Title\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":\"6\"}},[_c('v-text-field',{attrs:{\"dense\":\"\",\"label\":(\"\" + (_vm.$t('labels.phone'))),\"value\":_vm.payload.Phone},model:{value:(_vm.payload.Phone),callback:function ($$v) {_vm.$set(_vm.payload, \"Phone\", $$v)},expression:\"payload.Phone\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"12\",\"md\":\"6\"}},[_c('v-text-field',{attrs:{\"dense\":\"\",\"label\":((_vm.$t('labels.email')) + \"*\"),\"required\":\"\",\"value\":_vm.payload.Email,\"rules\":_vm.emailRules},model:{value:(_vm.payload.Email),callback:function ($$v) {_vm.$set(_vm.payload, \"Email\", $$v)},expression:\"payload.Email\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"12\",\"md\":\"6\"}},[_c('v-text-field',{attrs:{\"dense\":\"\",\"label\":((_vm.$t('labels.company-name')) + \"*\"),\"required\":\"\",\"value\":_vm.payload.CompanyName},model:{value:(_vm.payload.CompanyName),callback:function ($$v) {_vm.$set(_vm.payload, \"CompanyName\", $$v)},expression:\"payload.CompanyName\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":\"6\"}},[_c('v-text-field',{attrs:{\"dense\":\"\",\"label\":(\"\" + (_vm.$t('labels.primary-address'))),\"value\":_vm.payload.AddressLine1},model:{value:(_vm.payload.AddressLine1),callback:function ($$v) {_vm.$set(_vm.payload, \"AddressLine1\", $$v)},expression:\"payload.AddressLine1\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":\"3\"}},[_c('v-text-field',{attrs:{\"dense\":\"\",\"label\":(\"\" + (_vm.$t('labels.zip'))),\"value\":_vm.payload.PostNumber},model:{value:(_vm.payload.PostNumber),callback:function ($$v) {_vm.$set(_vm.payload, \"PostNumber\", $$v)},expression:\"payload.PostNumber\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":\"3\"}},[_c('v-text-field',{attrs:{\"dense\":\"\",\"label\":(\"\" + (_vm.$t('labels.post-office'))),\"value\":_vm.payload.PostOffice},model:{value:(_vm.payload.PostOffice),callback:function ($$v) {_vm.$set(_vm.payload, \"PostOffice\", $$v)},expression:\"payload.PostOffice\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"12\",\"md\":\"12\"}},[_c('v-text-field',{attrs:{\"dense\":\"\",\"label\":(\"\" + (_vm.$t('labels.secondary-address'))),\"value\":_vm.payload.AddressLine2},model:{value:(_vm.payload.AddressLine2),callback:function ($$v) {_vm.$set(_vm.payload, \"AddressLine2\", $$v)},expression:\"payload.AddressLine2\"}})],1)],1)],1),_c('small',[_vm._v(_vm._s(_vm.$t('common.error-indicator')))])],1),(\n _vm.payload.ProjectRoles && _vm.payload.ProjectRoles.length > 0\n )?[_c('v-card-title',[_c('span',{staticClass:\"headline\"},[_vm._v(_vm._s(_vm.$t('titles.project-roles')))])]),_vm._l((_vm.payload.ProjectRoles),function(role,i){return _c('v-chip',{key:i,staticClass:\"ma-1\",attrs:{\"small\":\"\",\"color\":\"primary\",\"outlined\":\"\"}},[_vm._v(\" \"+_vm._s(((role.Role) + \" (\" + (role.ProjectName) + \")\"))+\" \")])})]:_vm._e(),_c('v-card-actions',{staticClass:\"edit-actions\"})],2)],1)]:_vm._e()],2)],1),_c('v-card-actions',[_c('v-spacer'),(_vm.newContact || _vm.editContact)?_c('v-btn',{staticClass:\"save\",attrs:{\"color\":\"secondary\",\"type\":\"submit\",\"loading\":_vm.loading,\"disabled\":!_vm.valid}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.save'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-check\")])],1):_vm._e(),_c('v-btn',{on:{\"click\":_vm.close}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.close'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-close\")])],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Contact } from '@/models/contacts/interfaces';\nimport {\n defineComponent,\n PropType,\n reactive,\n toRefs,\n} from '@vue/composition-api';\nimport ContactCard from '@/components/contacts/contact/index.vue';\nimport { useContacts } from '@/modules/contacts';\nimport { cleanSource } from '@/helpers/common';\nimport Confirm from '@/components/common/confirm/index.vue';\nimport DialogTitle from '@/components/common/dialog-title/index.vue';\n\ninterface State {\n dialog?: boolean;\n newContact?: boolean;\n editContact?: boolean;\n payload?: Contact;\n deleteContact?: Contact;\n valid?: boolean;\n deleteDialog: boolean;\n}\n\nconst initialState: State = {\n dialog: false,\n newContact: false,\n editContact: false,\n payload: {},\n deleteContact: undefined,\n valid: false,\n deleteDialog: false,\n};\n\nconst state = reactive(initialState);\n\nexport default defineComponent({\n components: {\n ContactCard,\n Confirm,\n DialogTitle,\n },\n props: {\n contacts: {\n type: Array as PropType>,\n required: true,\n },\n },\n setup() {\n const {\n createContact,\n updateContract,\n deleteContact,\n loading,\n } = useContacts();\n\n const close = () => {\n state.dialog = false;\n state.newContact = false;\n state.payload = {};\n state.deleteContact = undefined;\n state.editContact = false;\n };\n\n const cancel = () => {\n state.newContact = false;\n state.payload = {};\n state.deleteContact = undefined;\n state.editContact = false;\n };\n\n const cancelDelete = () => {\n state.deleteContact = undefined;\n };\n\n const setEditMode = (contact: Contact) => {\n if (state.deleteContact?.Id === contact.Id) {\n cancel();\n } else {\n state.newContact = false;\n state.editContact = true;\n state.deleteContact = contact;\n state.payload = cleanSource(contact);\n }\n };\n\n const setNewMode = () => {\n state.editContact = false;\n state.newContact = true;\n state.payload = {};\n };\n\n const deleteContactById = async (id: string) => {\n await deleteContact(id);\n state.deleteContact = undefined;\n state.editContact = false;\n state.payload = undefined;\n };\n\n const submit = async () => {\n if (state.newContact && state.payload) {\n const contact: Contact = state.payload;\n await createContact(contact);\n } else if (state.editContact && state.payload) {\n await updateContract(state.payload);\n }\n cancel();\n };\n\n return {\n ...toRefs(state),\n close,\n cancel,\n setEditMode,\n setNewMode,\n cancelDelete,\n deleteContactById,\n submit,\n loading,\n emailRules: [\n (v: string) => !!v || 'E-mail is required',\n (v: string) => /.+@.+\\..+/.test(v) || 'E-mail must be valid',\n ],\n fieldRules: [(v: string) => !!v || 'Field is required'],\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=7034158f&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=7034158f&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7034158f\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VItem } from 'vuetify/lib/components/VItemGroup';\nimport { VItemGroup } from 'vuetify/lib/components/VItemGroup';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VChip,VCol,VContainer,VDialog,VForm,VIcon,VItem,VItemGroup,VRow,VSpacer,VTextField})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, onMounted, ref } from '@vue/composition-api';\nimport { useContacts } from '@/modules/contacts';\nimport ContactCard from '@/components/contacts/contact/index.vue';\nimport EditContacts from '@/components/contacts/contacts-edit-modal/index.vue';\nimport ContentBar from '@/components/common/content-bar/index.vue';\nimport { Contact } from '@/models/contacts/interfaces';\nimport Loader from '@/components/loader/index.vue';\n\nexport default defineComponent({\n components: {\n ContactCard,\n EditContacts,\n ContentBar,\n Loader,\n },\n setup() {\n const { getContacts } = useContacts();\n\n const dialog = ref(false);\n const contacts = ref | undefined>(undefined);\n const loading = ref(true);\n\n onMounted(async () => {\n contacts.value = await getContacts();\n loading.value = false;\n });\n\n return {\n dialog,\n loading,\n contacts,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=4be47714&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=4be47714&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4be47714\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VCard,VCol,VContainer,VRow,VSubheader})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.loading)?_c('div',[_c('content-bar',{attrs:{\"small\":true,\"title\":_vm.$t('titles.logo')},scopedSlots:_vm._u([{key:\"content-left\",fn:function(){return [_c('info-tooltip',{attrs:{\"information\":_vm.$t('info.company-logo')}})]},proxy:true},{key:\"content-right\",fn:function(){return [(!_vm.isUploading)?[_c('v-btn',{staticClass:\"ma-2 white--text\",attrs:{\"small\":\"\",\"color\":\"secondary\",\"outlined\":\"\"},on:{\"click\":function () { return (_vm.isUploading = !_vm.isUploading); }}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.edit-logo'))+\" \"),_c('v-icon',{attrs:{\"small\":\"\",\"right\":\"\"}},[_vm._v(\"mdi-upload\")])],1)]:_vm._e(),(_vm.isUploading)?[_c('v-form',{attrs:{\"id\":\"file-form\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.submit.apply(null, arguments)}},model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-file-input',{attrs:{\"accept\":\"image/*\",\"dense\":\"\",\"required\":\"\",\"loading\":_vm.uploading,\"rules\":[_vm.rules.required, _vm.rules.maxSize]},model:{value:(_vm.upload),callback:function ($$v) {_vm.upload=$$v},expression:\"upload\"}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.edit-logo')))]),_c('v-btn',{attrs:{\"color\":\"secondary\",\"type\":\"submit\",\"small\":\"\",\"disabled\":!_vm.valid}},[_vm._v(_vm._s(_vm.$t('buttons.save')))]),_c('v-btn',{attrs:{\"small\":\"\",\"id\":\"close\"},on:{\"click\":function () { return (_vm.isUploading = !_vm.isUploading); }}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.cancel'))+\" \"),_c('v-icon',{attrs:{\"small\":\"\",\"right\":\"\"}},[_vm._v(\"mdi-arrow-collapse-right\")])],1)],1)]:_vm._e()]},proxy:true}],null,false,3028761489)}),_c('v-card',{staticClass:\"pa-2\",attrs:{\"tile\":\"\"}},[_c('div',{staticClass:\"wrapper\"},[_c('CoolLightBox',{attrs:{\"items\":_vm.logo ? [(\"data:image/png;base64,\" + _vm.logo)] : [],\"index\":_vm.index,\"overlayColor\":\"rgba(30, 30, 30, .3)\"},on:{\"close\":function($event){_vm.index = null}}}),_c('img',{key:0,staticClass:\"logo-image\",attrs:{\"src\":_vm.logo ? (\"data:image/png;base64,\" + _vm.logo) : ''},on:{\"click\":function($event){_vm.index = 0}}})],1)])],1):_c('div',[_c('content-bar',{attrs:{\"small\":true,\"title\":_vm.$t('titles.logo')}}),_c('v-card',[_c('loader',{attrs:{\"margins\":true}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { translate } from '@/localization';\nimport { useCompany } from '@/modules/company';\nimport {\n defineComponent,\n onMounted,\n reactive,\n toRefs,\n} from '@vue/composition-api';\nimport CoolLightBox from 'vue-cool-lightbox';\nimport 'vue-cool-lightbox/dist/vue-cool-lightbox.min.css';\nimport ContentBar from '@/components/common/content-bar/index.vue';\nimport Loader from '@/components/loader/index.vue';\nimport InfoTooltip from '@/components/common/tooltip-helper/index.vue';\n\ninterface State {\n logo: string;\n upload?: File;\n loading: boolean;\n uploading: boolean;\n isUploading: boolean;\n valid: boolean;\n}\n\nconst initialState: State = {\n logo: '',\n upload: undefined,\n loading: true,\n uploading: false,\n isUploading: false,\n valid: false,\n};\n\nconst state = reactive(initialState);\n\nexport default defineComponent({\n components: {\n CoolLightBox,\n ContentBar,\n Loader,\n InfoTooltip,\n },\n setup() {\n const { getLogo, uploadLogo } = useCompany();\n\n onMounted(async () => {\n state.logo = await getLogo();\n state.loading = false;\n });\n\n const submit = async () => {\n if (!state.upload) return;\n\n state.uploading = true;\n await uploadLogo(state.upload);\n state.logo = await getLogo();\n state.loading = false;\n state.uploading = false;\n state.isUploading = false;\n state.upload = undefined;\n };\n\n return {\n ...toRefs(state),\n rules: {\n required: (v: File) => !!v || translate('common.required'),\n maxSize: (value: { size: number }) =>\n (value && value.size < 2000000) ||\n !value ||\n translate('common.logo-size'),\n },\n file: state.logo,\n submit,\n index: null,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=3adf366a&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=3adf366a&lang=scss&scoped=true&\"\nimport style1 from \"./index.vue?vue&type=style&index=1&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3adf366a\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VFileInput } from 'vuetify/lib/components/VFileInput';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VCard,VFileInput,VForm,VIcon})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Factors from '@/components/factors/index.vue';\nimport Organization from '@/components/organization/index.vue';\nimport Contacts from '@/components/contacts/index.vue';\nimport Logo from '@/components/logo/index.vue';\nimport { defineComponent } from '@vue/composition-api';\nimport ContentBar from '@/components/common/content-bar/index.vue';\nexport default defineComponent({\n components: {\n Factors,\n Organization,\n Contacts,\n Logo,\n ContentBar,\n },\n});\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Organization.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Organization.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Organization.vue?vue&type=template&id=e273d29c&scoped=true&\"\nimport script from \"./Organization.vue?vue&type=script&lang=ts&\"\nexport * from \"./Organization.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Organization.vue?vue&type=style&index=0&id=e273d29c&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e273d29c\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCol,VContainer,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('content-bar',{attrs:{\"title\":_vm.$t('titles.admin')}}),_c('v-container',{staticClass:\"grey lighten-5\",attrs:{\"fluid\":\"\"}},[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"8\"}},[_c('license-adm')],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"4\"}},[_c('user-adm')],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.loading && _vm.licenses)?_c('div',[_c('content-bar',{attrs:{\"small\":true,\"title\":_vm.$t('titles.licenses', { count: _vm.licenses.length })},scopedSlots:_vm._u([{key:\"content-right\",fn:function(){return [_c('license-modal')]},proxy:true}],null,false,778057169)}),_c('v-card',{attrs:{\"tile\":\"\"}},[_c('v-container',{attrs:{\"fluid\":\"\"}},[(_vm.licenses)?_c('v-row',[_c('v-simple-table',{staticClass:\"license-table\",scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('thead',[_c('tr',[_c('th',{staticClass:\"text-left license-header\"}),_c('th',{staticClass:\"text-left license-header\"},[_vm._v(\" \"+_vm._s(_vm.$t('labels.username'))+\" \")]),_c('th',{staticClass:\"text-left license-header\"},[_vm._v(\" \"+_vm._s(_vm.$t('labels.status'))+\" \")]),_c('th',{staticClass:\"text-left license-header\"},[_vm._v(\" \"+_vm._s(_vm.$t('labels.start'))+\" \")]),_c('th',{staticClass:\"text-left license-header\"},[_vm._v(\" \"+_vm._s(_vm.$t('labels.end'))+\" \")]),_c('th',{staticClass:\"text-left license-header\"},[_vm._v(\" \"+_vm._s(_vm.$t('labels.type'))+\" \")]),_c('th',{staticClass:\"text-left license-header\",attrs:{\"license-header\":\"\"}})])]),_c('tbody',_vm._l((_vm.licenses),function(license){return _c('tr',{key:license.id},[_c('td',[_c('v-icon',{attrs:{\"color\":\"primary\",\"right\":\"\"}},[_vm._v(\"mdi-license\")])],1),_c('td',[_c('span',{staticClass:\"text-center\"},[_c('b',[_vm._v(_vm._s(license.GrantedToUsername && license.GrantedToUsername))])])]),_c('td',[_c('status',{attrs:{\"license\":license}})],1),_c('td',[_vm._v(\" \"+_vm._s(_vm.moment(license.CreatedDate) .lang((\"\" + (_vm.$i18n.locale === 'no' ? 'nb' : _vm.$i18n.locale))) .format('Do MMMM YYYY'))+\" \")]),_c('td',[_c('b',[_vm._v(\" \"+_vm._s(license.ExpiryDate ? _vm.moment(license.ExpiryDate) .lang( (\"\" + (_vm.$i18n.locale === 'no' ? 'nb' : _vm.$i18n.locale)) ) .format('Do MMMM YYYY') : ''))])]),_c('td',[_vm._v(_vm._s(license.LicenseType))]),_c('td',[(_vm.showLicenseActions(license))?_c('v-menu',{scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar menu = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\"}},'v-btn',attrs,false),Object.assign({}, menu)),[_c('v-icon',[_vm._v(\"mdi-dots-vertical\")])],1)]}}],null,true)},[_c('v-list',{attrs:{\"dense\":\"\"}},[_c('v-list-item-group',{attrs:{\"color\":\"primary\"}},[(_vm.canAssignLicense(license))?_c('assign-license-modal',{attrs:{\"license\":license}}):_vm._e(),(_vm.canDeleteLicense(license))?_c('delete-license-modal',{attrs:{\"license\":license}}):_vm._e()],1)],1)],1):_vm._e()],1)])}),0)]},proxy:true}],null,false,2591008637)})],1):_vm._e(),(!_vm.loading && _vm.licenses && _vm.licenses.length === 0)?_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('br'),_c('br'),_c('v-subheader',[_vm._v(\" \"+_vm._s(_vm.$t('info.no-licenses')))])],1):_vm._e()],1)],1)],1):_c('div',[_c('content-bar',{attrs:{\"small\":true,\"title\":_vm.$t('titles.licenses', { count: '~' })}}),_c('v-card',[_c('loader',{attrs:{\"margins\":true}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"width\":_vm.canChoose ? (_vm.step === 1 ? 1000 : 600) : 1000},on:{\"click:outside\":_vm.close},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"ma-2 white--text\",attrs:{\"small\":\"\",\"color\":\"secondary\",\"loading\":_vm.calculatingChoices,\"outlined\":\"\"}},'v-btn',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.$t('buttons.purchase-license'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\",\"small\":\"\"}},[_vm._v(\"mdi-plus\")])],1)]}}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-toolbar',{attrs:{\"elevation\":\"1\"}},[_c('v-toolbar-title',[_vm._v(\" \"+_vm._s(_vm.$t('titles.purchase-license')))]),_c('v-spacer')],1),_c('v-card',{attrs:{\"tile\":\"\",\"flat\":\"\"}},[_c('v-form',{ref:\"form\",attrs:{\"id\":\"license-form\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.submit.apply(null, arguments)}}},[(_vm.canChoose)?_c('v-stepper',{attrs:{\"tile\":\"\"},model:{value:(_vm.step),callback:function ($$v) {_vm.step=$$v},expression:\"step\"}},[_c('v-stepper-header',[_c('v-stepper-step',{attrs:{\"complete\":_vm.step > 1,\"step\":\"1\",\"color\":\"secondary\"}},[_vm._v(\" \"+_vm._s(_vm.$t('titles.existing-or-new'))+\" \")]),_c('v-divider'),_c('v-stepper-step',{attrs:{\"complete\":_vm.step > 2,\"step\":\"2\",\"color\":\"secondary\"}},[_vm._v(\" \"+_vm._s(_vm.$t('common.user'))+\" \")])],1),_c('v-stepper-items',[_c('v-stepper-content',{attrs:{\"step\":\"1\"}},[_c('v-row',[_c('v-col',{staticClass:\"offer-col\",attrs:{\"cols\":\"12\",\"md\":\"6\"}},[(_vm.licensePrice)?_c('Offer',{attrs:{\"price\":_vm.licensePrice}}):_vm._e()],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('v-item-group',[_c('v-container',[_c('v-row',{staticClass:\"options\"},[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"12\"}},[_c('v-card',{staticClass:\"d-flex align-center method\",attrs:{\"color\":_vm.method === 1 ? 'secondary' : '',\"height\":\"200\"},on:{\"click\":function($event){_vm.method = _vm.method === 1 ? undefined : 1}}},[_c('v-icon',{class:_vm.method === 1 ? 'icon-active' : 'icon-inactive'},[_vm._v(\"mdi-account\")]),_c('div',{class:_vm.method === 1 ? 'text-active' : 'text-inactive'},[_vm._v(\" \"+_vm._s(_vm.$t('titles.existing-user'))+\" \")]),_c('v-scroll-y-transition',[(_vm.method === 1)?_c('div',{staticClass:\"display-3 flex-grow-1\"}):_vm._e()])],1)],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"12\"}},[_c('v-card',{staticClass:\"d-flex align-center method\",attrs:{\"color\":_vm.method === 2 ? 'secondary' : '',\"height\":\"200\"},on:{\"click\":function($event){_vm.method = _vm.method === 2 ? undefined : 2}}},[_c('v-icon',{class:_vm.method === 2 ? 'icon-active' : 'icon-inactive'},[_vm._v(\"mdi-account-plus\")]),_c('div',{class:_vm.method === 2 ? 'text-active' : 'text-inactive'},[_vm._v(\" \"+_vm._s(_vm.$t('titles.new-user'))+\" \")]),_c('v-scroll-y-transition',[(_vm.method === 2)?_c('div',{staticClass:\"display-3 flex-grow-1\"}):_vm._e()])],1)],1)],1)],1),_c('v-toolbar',{attrs:{\"flat\":\"\"}},[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"secondary\",\"disabled\":!_vm.method},on:{\"click\":function($event){_vm.step = 2}}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.continue'))+\" \")]),_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":_vm.close}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.cancel'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-close\")])],1)],1)],1)],1)],1)],1),(_vm.licensePrice)?_c('v-stepper-content',{attrs:{\"step\":\"2\"}},[_c('div',{class:_vm.licensePrice.Member ? 'banner-header-member' : 'banner-header'},[_c('div',{class:_vm.licensePrice.Member ? 'banner-price-member' : 'banner-price'},[_c('v-icon',{attrs:{\"color\":\"white\",\"large\":\"\"}},[_vm._v(\"mdi-license\")])],1),_c('div',{staticClass:\"header-text\"},[_vm._v(\" \"+_vm._s(_vm.licensePrice && _vm.licensePrice.AdditionalLicencePriceName)+\" \")])]),(_vm.method === 1)?[_c('div',{staticClass:\"select-wrapper\"},[_c('v-select',{attrs:{\"items\":_vm.availableUsers,\"label\":_vm.$t('labels.select-user')},model:{value:(_vm.selectedUser),callback:function ($$v) {_vm.selectedUser=$$v},expression:\"selectedUser\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"12\",\"md\":\"12\",\"align-self\":\"center\"}},[_c('div',{staticClass:\"terms-wrapper\"},[_vm._v(\" \"+_vm._s(_vm.$t('common.read-and-understood1'))+\" \"),_c('a',{staticClass:\"terms-and-condition\",attrs:{\"target\":\"_blank\",\"href\":_vm.termsUrl}},[_vm._v(_vm._s(_vm.$t('common.read-and-understood2')))]),_c('v-checkbox',{staticClass:\"understood\",attrs:{\"dense\":\"\"},model:{value:(_vm.readAndUnderstood),callback:function ($$v) {_vm.readAndUnderstood=$$v},expression:\"readAndUnderstood\"}})],1)])]:_vm._e(),(_vm.method === 2)?[_c('v-card',{staticClass:\"form-card\",attrs:{\"tile\":\"\"}},[_c('v-card-text',[_c('v-container',[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":\"6\"}},[_c('v-text-field',{attrs:{\"dense\":\"\",\"label\":((_vm.$t('labels.first-name')) + \"*\"),\"required\":\"\",\"value\":_vm.user.FirstName,\"rules\":[_vm.rules.required],\"autofocus\":\"\"},model:{value:(_vm.user.FirstName),callback:function ($$v) {_vm.$set(_vm.user, \"FirstName\", $$v)},expression:\"user.FirstName\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":\"6\"}},[_c('v-text-field',{attrs:{\"dense\":\"\",\"label\":((_vm.$t('labels.last-name')) + \"*\"),\"required\":\"\",\"value\":_vm.user.LastName,\"rules\":[_vm.rules.required]},model:{value:(_vm.user.LastName),callback:function ($$v) {_vm.$set(_vm.user, \"LastName\", $$v)},expression:\"user.LastName\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"12\",\"md\":\"12\"}},[_c('v-text-field',{attrs:{\"dense\":\"\",\"label\":((_vm.$t('labels.email')) + \"*\"),\"required\":\"\",\"value\":_vm.user.Email,\"rules\":_vm.emailRules},model:{value:(_vm.user.Email),callback:function ($$v) {_vm.$set(_vm.user, \"Email\", $$v)},expression:\"user.Email\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"12\",\"md\":\"12\"}},[_c('v-checkbox',{attrs:{\"dense\":\"\",\"label\":(\"\" + (_vm.$t('labels.admin')))},model:{value:(_vm.user.Administrator),callback:function ($$v) {_vm.$set(_vm.user, \"Administrator\", $$v)},expression:\"user.Administrator\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"12\",\"md\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":((_vm.$t('labels.password')) + \"*\"),\"required\":\"\",\"value\":_vm.user.Password,\"type\":\"password\",\"rules\":[_vm.rules.required, _vm.rules.min]},model:{value:(_vm.user.Password),callback:function ($$v) {_vm.$set(_vm.user, \"Password\", $$v)},expression:\"user.Password\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"12\",\"md\":\"12\"}},[_c('v-text-field',{attrs:{\"dense\":\"\",\"label\":((_vm.$t('labels.password-confirm')) + \"*\"),\"required\":\"\",\"type\":\"password\",\"value\":_vm.user.ConfirmPassword,\"rules\":[\n _vm.rules.required,\n _vm.rules.passwordMatch,\n _vm.rules.containsLower,\n _vm.rules.containsUpper,\n _vm.rules.containsNumber ]},model:{value:(_vm.user.ConfirmPassword),callback:function ($$v) {_vm.$set(_vm.user, \"ConfirmPassword\", $$v)},expression:\"user.ConfirmPassword\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"12\",\"md\":\"12\",\"align-self\":\"center\"}},[_c('div',{staticClass:\"terms-wrapper\"},[_vm._v(\" \"+_vm._s(_vm.$t('common.read-and-understood1'))+\" \"),_c('a',{staticClass:\"terms-and-condition\",attrs:{\"target\":\"_blank\",\"href\":_vm.termsUrl}},[_vm._v(_vm._s(_vm.$t('common.read-and-understood2')))]),_c('v-checkbox',{staticClass:\"understood\",attrs:{\"dense\":\"\"},model:{value:(_vm.user.ReadAndUnderstood),callback:function ($$v) {_vm.$set(_vm.user, \"ReadAndUnderstood\", $$v)},expression:\"user.ReadAndUnderstood\"}})],1)])],1)],1),_c('small',[_vm._v(_vm._s(_vm.$t('common.error-indicator')))]),(_vm.error)?_c('div',{attrs:{\"id\":\"error\"}},[_vm._v(\" \"+_vm._s(_vm.error)+\" \")]):_vm._e()],1)],1)]:_vm._e(),_c('v-toolbar',{attrs:{\"flat\":\"\"}},[_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":_vm.goBack}},[_c('v-icon',{attrs:{\"left\":\"\",\"small\":\"\"}},[_vm._v(\"mdi-arrow-left\")]),_vm._v(\" \"+_vm._s(_vm.$t('buttons.back'))+\" \")],1),_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"secondary\",\"type\":\"submit\",\"loading\":_vm.createLoad,\"disabled\":_vm.method === 1 ? !_vm.altFormIsValid : !_vm.formIsValid}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.purchase'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\",\"small\":\"\"}},[_vm._v(\"mdi-license\")])],1),_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":_vm.close}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.cancel'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-close\")])],1)],1)],2):_vm._e()],1)],1):_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"license-row\",attrs:{\"height\":\"400\"}},[_c('v-col',{staticClass:\"new-license-col\",attrs:{\"cols\":\"12\",\"sm\":\"12\",\"md\":\"6\"}},[(_vm.licensePrice)?_c('offer',{attrs:{\"price\":_vm.licensePrice}}):_vm._e()],1),_c('v-col',{staticClass:\"form-col\",attrs:{\"cols\":\"12\",\"sm\":\"12\",\"md\":\"6\"}},[(_vm.licensePrice)?_c('v-card',{class:_vm.licensePrice.Member\n ? 'user-form-card-member'\n : 'user-form-card',attrs:{\"tile\":\"\",\"height\":\"400\"}},[_c('v-card-text',{staticClass:\"edit-content\"},[_c('v-container',[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":\"6\"}},[_c('v-text-field',{attrs:{\"dense\":\"\",\"label\":((_vm.$t('labels.first-name')) + \"*\"),\"required\":\"\",\"rules\":[_vm.rules.required],\"autofocus\":\"\"},model:{value:(_vm.user.FirstName),callback:function ($$v) {_vm.$set(_vm.user, \"FirstName\", $$v)},expression:\"user.FirstName\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":\"6\"}},[_c('v-text-field',{attrs:{\"dense\":\"\",\"label\":((_vm.$t('labels.last-name')) + \"*\"),\"required\":\"\",\"rules\":[_vm.rules.required]},model:{value:(_vm.user.LastName),callback:function ($$v) {_vm.$set(_vm.user, \"LastName\", $$v)},expression:\"user.LastName\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"12\",\"md\":\"12\"}},[_c('v-text-field',{attrs:{\"dense\":\"\",\"label\":((_vm.$t('labels.email')) + \"*\"),\"required\":\"\",\"rules\":_vm.emailRules},model:{value:(_vm.user.Email),callback:function ($$v) {_vm.$set(_vm.user, \"Email\", $$v)},expression:\"user.Email\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"12\",\"md\":\"12\"}},[_c('v-checkbox',{attrs:{\"dense\":\"\",\"label\":(\"\" + (_vm.$t('labels.admin')))},model:{value:(_vm.user.Administrator),callback:function ($$v) {_vm.$set(_vm.user, \"Administrator\", $$v)},expression:\"user.Administrator\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"12\",\"md\":\"12\"}},[_c('v-text-field',{attrs:{\"dense\":\"\",\"label\":((_vm.$t('labels.password')) + \"*\"),\"required\":\"\",\"type\":\"password\",\"rules\":[_vm.rules.required, _vm.rules.min]},model:{value:(_vm.user.Password),callback:function ($$v) {_vm.$set(_vm.user, \"Password\", $$v)},expression:\"user.Password\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"12\",\"md\":\"12\"}},[_c('v-text-field',{attrs:{\"dense\":\"\",\"label\":((_vm.$t('labels.password-confirm')) + \"*\"),\"required\":\"\",\"type\":\"password\",\"rules\":[\n _vm.rules.required,\n _vm.rules.passwordMatch,\n _vm.rules.containsLower,\n _vm.rules.containsUpper,\n _vm.rules.containsNumber ]},model:{value:(_vm.user.ConfirmPassword),callback:function ($$v) {_vm.$set(_vm.user, \"ConfirmPassword\", $$v)},expression:\"user.ConfirmPassword\"}})],1)],1)],1),_c('small',[_vm._v(_vm._s(_vm.$t('common.error-indicator')))]),(_vm.error)?_c('div',{attrs:{\"id\":\"error\"}},[_vm._v(\" \"+_vm._s(_vm.error)+\" \")]):_vm._e()],1)],1):_vm._e()],1)],1),_c('v-row',{attrs:{\"dense\":\"\",\"align-content\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"12\",\"md\":\"12\",\"align-self\":\"center\"}},[_c('div',{staticClass:\"terms-wrapper\"},[_vm._v(\" \"+_vm._s(_vm.$t('common.read-and-understood1'))+\" \"),_c('a',{staticClass:\"terms-and-condition\",attrs:{\"target\":\"_blank\",\"href\":_vm.termsUrl}},[_vm._v(_vm._s(_vm.$t('common.read-and-understood2')))]),_c('v-checkbox',{staticClass:\"understood\",attrs:{\"dense\":\"\"},model:{value:(_vm.user.ReadAndUnderstood),callback:function ($$v) {_vm.$set(_vm.user, \"ReadAndUnderstood\", $$v)},expression:\"user.ReadAndUnderstood\"}})],1)]),(_vm.error)?_c('div',{attrs:{\"id\":\"error\"}},[_vm._v(\" \"+_vm._s(_vm.error)+\" \")]):_vm._e()],1)],1),(!_vm.canChoose)?_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"secondary\",\"type\":\"submit\",\"loading\":_vm.createLoad,\"disabled\":!_vm.formIsValid}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.purchase'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\",\"small\":\"\"}},[_vm._v(\"mdi-license\")])],1),_c('v-btn',{attrs:{\"color\":\"primary\",\"text\":\"\"},on:{\"click\":_vm.close}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.close'))+\" \")])],1):_vm._e()],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{staticClass:\"offer-card\",attrs:{\"tile\":\"\",\"height\":\"100%\"}},[_c('div',{class:_vm.price.Member ? 'banner-header-member' : 'banner-header'},[_c('div',{class:_vm.price.Member ? 'banner-price-member' : 'banner-price'},[_vm._v(\" \"+_vm._s(_vm.price.AdditionalLicensePrice)+\" \")]),_c('div',{staticClass:\"header-text\"},[_vm._v(\" \"+_vm._s(_vm.offerTitle)+\" \")])]),_c('div',{staticClass:\"offer-text\"},[_c('p',[_vm._v(_vm._s(_vm.$t('license.offerp1-admin')))]),_c('p',[_vm._v(_vm._s(_vm.$t('license.offerp2-admin')))])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { translate } from '@/localization';\nimport { LicensePrice } from '@/models/admin/interfaces';\nimport { computed, defineComponent, PropType } from '@vue/composition-api';\nexport default defineComponent({\n props: {\n price: {\n type: Object as PropType,\n required: true,\n },\n },\n setup({ price }) {\n const offerTitle = computed(() => {\n if (price.Member) {\n return translate('common.monthly-membership-price');\n } else {\n return translate('common.monthly-price');\n }\n });\n\n return {\n offerTitle,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=7543d9f6&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=7543d9f6&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7543d9f6\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\ninstallComponents(component, {VCard})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport {\n computed,\n defineComponent,\n onMounted,\n reactive,\n ref,\n toRefs,\n} from '@vue/composition-api';\nimport { useLicense } from '@/modules/license';\nimport Offer from '@/components/license-adm/offer/index.vue';\nimport { UserRegistration, RegisterUserModel } from '@/models/auth/interfaces';\nimport { useUsers } from '@/modules/users';\nimport { UsernameModel } from '@/models/common/interfaces';\nimport { translate } from '@/localization';\n\ninterface State {\n dialog: boolean;\n user: UserRegistration;\n selectedUser?: string;\n method?: number;\n step: number;\n readAndUnderstood: boolean;\n}\n\nconst state = reactive({\n dialog: false,\n user: {\n Administrator: false,\n ReadAndUnderstood: false,\n },\n selectedUser: undefined,\n step: 1,\n method: undefined,\n readAndUnderstood: false,\n});\n\nexport default defineComponent({\n components: {\n Offer,\n },\n setup(): Record {\n const {\n loading,\n error,\n getLicensePrice,\n purchaseLicense,\n getLicenses,\n canAssignToExistingUser,\n availableUsers,\n licensePrice,\n calculatingChoices,\n canChoose,\n } = useLicense();\n\n const { createUser, getUsers } = useUsers();\n\n const createLoad = ref(false);\n const form = ref();\n\n onMounted(async () => {\n await getLicensePrice();\n await canAssignToExistingUser();\n });\n\n const close = () => {\n state.selectedUser = undefined;\n state.user = {\n Administrator: false,\n ReadAndUnderstood: false,\n } as UserRegistration;\n state.dialog = false;\n state.step = 1;\n state.method = undefined;\n state.readAndUnderstood = false;\n form.value.resetValidation();\n };\n\n const goBack = () => {\n state.selectedUser = undefined;\n state.user = {\n Administrator: false,\n ReadAndUnderstood: false,\n } as UserRegistration;\n state.step = 1;\n state.method = undefined;\n state.readAndUnderstood = false;\n };\n\n const submit = async () => {\n createLoad.value = true;\n\n const reg: RegisterUserModel = {\n Email: state.user.Email ? state.user.Email : '',\n FirstName: state.user.FirstName ? state.user.FirstName : '',\n LastName: state.user.LastName ? state.user.LastName : '',\n Password: state.user.Password ? state.user.Password : '',\n IsAdmin: state.user.Administrator,\n };\n\n let createdUser: string | undefined = '';\n\n if (!state.selectedUser) {\n createdUser = await createUser(reg);\n } else {\n createdUser = state.selectedUser;\n }\n\n if (createdUser) {\n const user: UsernameModel = {\n UserName: createdUser,\n };\n await purchaseLicense(user);\n }\n\n await getUsers(true);\n await getLicenses(true);\n await canAssignToExistingUser();\n close();\n createLoad.value = false;\n };\n\n const passwordValidator = () => {\n let valid = false;\n if (state.user.Password && state.user.ConfirmPassword) {\n if (state.user.Password.length > 7) {\n if (state.user.Password === state.user.ConfirmPassword) {\n if (/[a-z]/.test(state.user.Password)) {\n if (/[A-Z]/.test(state.user.Password)) {\n if (/[0-9]+/.test(state.user.Password)) {\n valid = true;\n }\n }\n }\n }\n }\n }\n return valid;\n };\n\n const formIsValid = computed(() => {\n const valid = false;\n if (\n state.user.FirstName &&\n state.user.LastName &&\n passwordValidator() &&\n state.user.ReadAndUnderstood\n ) {\n return state.user.Password === state.user.ConfirmPassword;\n }\n return valid;\n });\n\n const altFormIsValid = computed(() => {\n return (\n state.selectedUser !== undefined && state.readAndUnderstood === true\n );\n });\n\n return {\n ...toRefs(state),\n goBack,\n submit,\n close,\n loading,\n error,\n emailRules: [\n (v: string) => !!v || `${translate('validation.required')}`,\n (v: string) =>\n /.+@.+\\..+/.test(v) || `${translate('validation.valid-email')}`,\n ],\n formIsValid,\n createLoad,\n form,\n availableUsers,\n altFormIsValid,\n licensePrice,\n calculatingChoices,\n canChoose,\n termsUrl: process.env.VUE_APP_TERMS_URL,\n rules: {\n required: (v: string) => !!v || `${translate('validation.required')}`,\n min: (v: string) =>\n (v && v.length >= 8) ||\n `${translate('validation.minimum-characters', { amount: 8 })}`,\n passwordMatch: () =>\n state.user.Password === state.user.ConfirmPassword ||\n `${translate('validation.pw-missmatch')}`,\n containsLower: (v: string) =>\n /[a-z]/.test(v && v) || `${translate('validation.lowercase')}`,\n containsUpper: (v: string) =>\n /[A-Z]/.test(v && v) || `${translate('validation.uppercase')}`,\n containsNumber: (v: string) =>\n /[0-9]+/.test(v && v) || `${translate('validation.number')}`,\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=fc5e8b0a&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=fc5e8b0a&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"fc5e8b0a\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VItemGroup } from 'vuetify/lib/components/VItemGroup';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VScrollYTransition } from 'vuetify/lib/components/transitions';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VStepper } from 'vuetify/lib/components/VStepper';\nimport { VStepperContent } from 'vuetify/lib/components/VStepper';\nimport { VStepperHeader } from 'vuetify/lib/components/VStepper';\nimport { VStepperItems } from 'vuetify/lib/components/VStepper';\nimport { VStepperStep } from 'vuetify/lib/components/VStepper';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\nimport { VToolbarTitle } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCheckbox,VCol,VContainer,VDialog,VDivider,VForm,VIcon,VItemGroup,VRow,VScrollYTransition,VSelect,VSpacer,VStepper,VStepperContent,VStepperHeader,VStepperItems,VStepperStep,VTextField,VToolbar,VToolbarTitle})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('confirm',{scopedSlots:_vm._u([{key:\"activator-element\",fn:function(){return [_c('v-list-item',[_c('v-list-item-icon',[_c('v-icon',{attrs:{\"color\":\"error\"}},[_vm._v(\"mdi-stop-circle-outline\")])],1),_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('items.delete-license')))])],1)]},proxy:true},{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('titles.license-delete'))+\" \")]},proxy:true},{key:\"text\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('info.delete-license'))+\" \")]},proxy:true},{key:\"accept\",fn:function(){return [_c('v-btn',{attrs:{\"color\":\"secondary\",\"loading\":_vm.loading,\"disabled\":!_vm.valid},on:{\"click\":_vm.deleteEvent}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.confirm'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-check\")])],1)]},proxy:true}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { ref, PropType, defineComponent } from '@vue/composition-api';\nimport { useLicense } from '@/modules/license';\nimport { License } from '@/models/admin/interfaces';\nimport Confirm from '@/components/common/confirm/index.vue';\n\nexport default defineComponent({\n components: {\n Confirm,\n },\n props: {\n license: {\n type: Object as PropType,\n required: true,\n },\n },\n setup({ license }) {\n const { loading, deleteLicense } = useLicense();\n const valid = ref(false);\n const dialog = ref(false);\n\n valid.value = license && license.Id !== null && license.Id !== '';\n\n const deleteEvent = async () => {\n await deleteLicense(license);\n dialog.value = false;\n };\n\n return {\n loading,\n valid,\n dialog,\n deleteEvent,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=bfc4737a&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"bfc4737a\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\ninstallComponents(component, {VBtn,VIcon,VListItem,VListItemIcon,VListItemTitle})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"width\":_vm.canChoose ? (_vm.step === 1 ? 1000 : 600) : 500},on:{\"click:outside\":_vm.close},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-list-item',_vm._g(_vm._b({attrs:{\"disabled\":_vm.calculatingChoices}},'v-list-item',attrs,false),on),[_c('v-list-item-icon',[_c('v-icon',{attrs:{\"color\":\"secondary\"}},[_vm._v(\"mdi-license\")])],1),_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('license.assign-license')))])],1)]}}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[(_vm.licensePrice)?_c('v-card',{staticClass:\"new-user\",attrs:{\"flat\":\"\",\"tile\":\"\"}},[(_vm.canChoose)?_c('v-toolbar',{attrs:{\"flat\":\"\"}},[_c('v-toolbar-title',[_vm._v(_vm._s(_vm.$t('license.assign-license')))]),_c('v-spacer')],1):_vm._e(),(_vm.canChoose)?_c('v-stepper',{attrs:{\"tile\":\"\"},model:{value:(_vm.step),callback:function ($$v) {_vm.step=$$v},expression:\"step\"}},[_c('v-stepper-header',[_c('v-stepper-step',{attrs:{\"complete\":_vm.step > 1,\"step\":\"1\",\"color\":\"secondary\"}},[_vm._v(\" \"+_vm._s(_vm.$t('license.assign-method'))+\" \")]),_c('v-divider'),_c('v-stepper-step',{attrs:{\"complete\":_vm.step > 2,\"step\":\"2\",\"color\":\"secondary\"}},[_vm._v(\" \"+_vm._s(_vm.$t('license.assign-user'))+\" \")])],1),_c('v-stepper-items',[_c('v-stepper-content',{attrs:{\"step\":\"1\"}},[_c('v-item-group',[_c('v-container',[_c('v-row',{staticClass:\"options\"},[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('v-card',{staticClass:\"d-flex align-center method\",attrs:{\"color\":_vm.method === 1 ? 'secondary' : '',\"height\":\"200\"},on:{\"click\":function($event){_vm.method = _vm.method === 1 ? undefined : 1}}},[_c('v-icon',{class:_vm.method === 1 ? 'icon-active' : 'icon-inactive'},[_vm._v(\"mdi-account\")]),_c('div',{class:_vm.method === 1 ? 'text-active' : 'text-inactive'},[_vm._v(\" \"+_vm._s(_vm.$t('license.assign-user'))+\" \")]),_c('v-scroll-y-transition',[(_vm.method === 1)?_c('div',{staticClass:\"display-3 flex-grow-1\"}):_vm._e()])],1)],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('v-card',{staticClass:\"d-flex align-center method\",attrs:{\"color\":_vm.method === 2 ? 'secondary' : '',\"height\":\"200\"},on:{\"click\":function($event){_vm.method = _vm.method === 2 ? undefined : 2}}},[_c('v-icon',{class:_vm.method === 2 ? 'icon-active' : 'icon-inactive'},[_vm._v(\"mdi-account-plus\")]),_c('div',{class:_vm.method === 2 ? 'text-active' : 'text-inactive'},[_vm._v(\" \"+_vm._s(_vm.$t('license.new-user'))+\" \")]),_c('v-scroll-y-transition',[(_vm.method === 2)?_c('div',{staticClass:\"display-3 flex-grow-1\"}):_vm._e()])],1)],1)],1)],1),_c('v-toolbar',{attrs:{\"flat\":\"\"}},[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"secondary\",\"disabled\":!_vm.method},on:{\"click\":function($event){_vm.step = 2}}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.continue'))+\" \")]),_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":_vm.close}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.cancel'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-close\")])],1)],1)],1)],1),_c('v-stepper-content',{attrs:{\"step\":\"2\"}},[_c('v-form',{attrs:{\"id\":\"license-form\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.submit.apply(null, arguments)}}},[_c('div',{class:_vm.licensePrice.Member ? 'banner-header-member' : 'banner-header'},[_c('div',{class:_vm.licensePrice.Member ? 'banner-price-member' : 'banner-price'},[_c('v-icon',{attrs:{\"color\":\"white\",\"large\":\"\"}},[_vm._v(\"mdi-license\")])],1),_c('div',{staticClass:\"header-text\"},[_vm._v(\" \"+_vm._s(_vm.licensePrice.AdditionalLicencePriceName)+\" \")])]),(_vm.method === 1)?[_c('div',{staticClass:\"select-wrapper\"},[_c('v-select',{attrs:{\"items\":_vm.availableUsers,\"label\":_vm.$t('labels.select-user')},model:{value:(_vm.selectedUser),callback:function ($$v) {_vm.selectedUser=$$v},expression:\"selectedUser\"}})],1)]:_vm._e(),(_vm.method === 2)?[_c('v-card',{class:_vm.licensePrice.Member\n ? 'user-form-card-member'\n : 'user-form-card',attrs:{\"tile\":\"\"}},[_c('v-card-text',[_c('v-container',[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":\"6\"}},[_c('v-text-field',{attrs:{\"dense\":\"\",\"label\":_vm.$t('labels.first-name'),\"required\":\"\",\"value\":_vm.user.FirstName,\"rules\":[_vm.rules.required],\"autofocus\":\"\"},model:{value:(_vm.user.FirstName),callback:function ($$v) {_vm.$set(_vm.user, \"FirstName\", $$v)},expression:\"user.FirstName\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":\"6\"}},[_c('v-text-field',{attrs:{\"dense\":\"\",\"label\":_vm.$t('labels.last-name'),\"required\":\"\",\"value\":_vm.user.LastName,\"rules\":[_vm.rules.required]},model:{value:(_vm.user.LastName),callback:function ($$v) {_vm.$set(_vm.user, \"LastName\", $$v)},expression:\"user.LastName\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"12\",\"md\":\"12\"}},[_c('v-text-field',{attrs:{\"dense\":\"\",\"label\":((_vm.$t('labels.email')) + \"*\"),\"required\":\"\",\"value\":_vm.user.Email,\"rules\":_vm.emailRules},model:{value:(_vm.user.Email),callback:function ($$v) {_vm.$set(_vm.user, \"Email\", $$v)},expression:\"user.Email\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"12\",\"md\":\"12\"}},[_c('v-checkbox',{attrs:{\"dense\":\"\",\"label\":_vm.Administrator},model:{value:(_vm.user.Administrator),callback:function ($$v) {_vm.$set(_vm.user, \"Administrator\", $$v)},expression:\"user.Administrator\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"12\",\"md\":\"12\"}},[_c('v-text-field',{attrs:{\"dense\":\"\",\"label\":((_vm.$t('labels.password')) + \"*\"),\"required\":\"\",\"value\":_vm.user.Password,\"type\":\"password\",\"rules\":[_vm.rules.required, _vm.rules.min]},model:{value:(_vm.user.Password),callback:function ($$v) {_vm.$set(_vm.user, \"Password\", $$v)},expression:\"user.Password\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"12\",\"md\":\"12\"}},[_c('v-text-field',{attrs:{\"dense\":\"\",\"label\":((_vm.$t('labels.password-confirm')) + \"*\"),\"required\":\"\",\"type\":\"password\",\"value\":_vm.user.ConfirmPassword,\"rules\":[\n _vm.rules.required,\n _vm.rules.passwordMatch,\n _vm.rules.containsLower,\n _vm.rules.containsUpper,\n _vm.rules.containsNumber ]},model:{value:(_vm.user.ConfirmPassword),callback:function ($$v) {_vm.$set(_vm.user, \"ConfirmPassword\", $$v)},expression:\"user.ConfirmPassword\"}})],1)],1)],1),_c('small',[_vm._v(\" \"+_vm._s(_vm.$t('common.error-indicator')))]),(_vm.error)?_c('div',{attrs:{\"id\":\"error\"}},[_vm._v(\" \"+_vm._s(_vm.error)+\" \")]):_vm._e()],1)],1)]:_vm._e(),_c('v-toolbar',{attrs:{\"flat\":\"\"}},[_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":_vm.goBack}},[_c('v-icon',{attrs:{\"left\":\"\",\"small\":\"\"}},[_vm._v(\"mdi-arrow-left\")]),_vm._v(\" \"+_vm._s(_vm.$t('buttons.back'))+\" \")],1),_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"secondary\",\"type\":\"submit\",\"loading\":_vm.loading,\"disabled\":!_vm.formIsValid}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.assign'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\",\"small\":\"\"}},[_vm._v(\"mdi-license\")])],1),_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":_vm.close}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.cancel'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-close\")])],1)],1)],2)],1)],1)],1):_c('v-form',{attrs:{\"id\":\"license-form\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.submit.apply(null, arguments)}}},[_c('div',{class:_vm.licensePrice.Member ? 'banner-header-member' : 'banner-header'},[_c('div',{class:_vm.licensePrice.Member ? 'banner-price-member' : 'banner-price'},[_c('v-icon',{attrs:{\"color\":\"white\",\"large\":\"\"}},[_vm._v(\"mdi-license\")])],1),_c('div',{staticClass:\"header-text\"},[_vm._v(\" \"+_vm._s(_vm.licensePrice.AdditionalLicencePriceName)+\" \")])]),_c('v-card',{class:_vm.licensePrice.Member ? 'user-form-card-member' : 'user-form-card',attrs:{\"tile\":\"\"}},[_c('v-card-text',[_c('v-container',[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":\"6\"}},[_c('v-text-field',{attrs:{\"dense\":\"\",\"label\":((_vm.$t('labels.first-name')) + \"*\"),\"required\":\"\",\"value\":_vm.user.FirstName,\"rules\":[_vm.rules.required],\"autofocus\":\"\"},model:{value:(_vm.user.FirstName),callback:function ($$v) {_vm.$set(_vm.user, \"FirstName\", $$v)},expression:\"user.FirstName\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":\"6\"}},[_c('v-text-field',{attrs:{\"dense\":\"\",\"label\":((_vm.$t('labels.last-name')) + \"*\"),\"required\":\"\",\"value\":_vm.user.LastName,\"rules\":[_vm.rules.required]},model:{value:(_vm.user.LastName),callback:function ($$v) {_vm.$set(_vm.user, \"LastName\", $$v)},expression:\"user.LastName\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"12\",\"md\":\"12\"}},[_c('v-text-field',{attrs:{\"dense\":\"\",\"label\":((_vm.$t('labels.email')) + \"*\"),\"required\":\"\",\"value\":_vm.user.Email,\"rules\":_vm.emailRules},model:{value:(_vm.user.Email),callback:function ($$v) {_vm.$set(_vm.user, \"Email\", $$v)},expression:\"user.Email\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"12\",\"md\":\"12\"}},[_c('v-checkbox',{attrs:{\"dense\":\"\",\"label\":(\"\" + (_vm.$t('labels.admin')))},model:{value:(_vm.user.Administrator),callback:function ($$v) {_vm.$set(_vm.user, \"Administrator\", $$v)},expression:\"user.Administrator\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"12\",\"md\":\"12\"}},[_c('v-text-field',{attrs:{\"dense\":\"\",\"label\":\"Password*\",\"required\":\"\",\"value\":_vm.user.Password,\"type\":\"password\",\"rules\":[_vm.rules.required, _vm.rules.min]},model:{value:(_vm.user.Password),callback:function ($$v) {_vm.$set(_vm.user, \"Password\", $$v)},expression:\"user.Password\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"12\",\"md\":\"12\"}},[_c('v-text-field',{attrs:{\"dense\":\"\",\"label\":((_vm.$t('labels.password-confirm')) + \"*\"),\"required\":\"\",\"type\":\"password\",\"value\":_vm.user.ConfirmPassword,\"rules\":[\n _vm.rules.required,\n _vm.rules.passwordMatch,\n _vm.rules.containsLower,\n _vm.rules.containsUpper,\n _vm.rules.containsNumber ]},model:{value:(_vm.user.ConfirmPassword),callback:function ($$v) {_vm.$set(_vm.user, \"ConfirmPassword\", $$v)},expression:\"user.ConfirmPassword\"}})],1)],1)],1),_c('small',[_vm._v(\" \"+_vm._s(_vm.$t('common.error-indicator')))]),(_vm.error)?_c('div',{attrs:{\"id\":\"error\"}},[_vm._v(\" \"+_vm._s(_vm.error)+\" \")]):_vm._e()],1),_c('v-card-actions',[_c('info-tooltip',{attrs:{\"information\":_vm.$t('info.user-license')}}),_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"secondary\",\"type\":\"submit\",\"loading\":_vm.loading,\"disabled\":!_vm.formIsValid}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.assign'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\",\"small\":\"\"}},[_vm._v(\"mdi-license\")])],1),_c('v-btn',{attrs:{\"color\":\"primary\",\"text\":\"\"},on:{\"click\":_vm.close}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.close'))+\" \")])],1)],1)],1)],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport {\n defineComponent,\n computed,\n reactive,\n toRefs,\n PropType,\n onMounted,\n} from '@vue/composition-api';\nimport { useLicense } from '@/modules/license';\nimport { useUsers } from '@/modules/users';\nimport { RegisterUserModel, UserRegistration } from '@/models/auth/interfaces';\nimport { License } from '@/models/admin/interfaces';\nimport { UsernameModel } from '@/models/common/interfaces';\nimport InfoTooltip from '@/components/common/tooltip-helper/index.vue';\nimport { translate } from '@/localization';\n\ninterface State {\n dialog: boolean;\n user: UserRegistration;\n step: number;\n valid: boolean;\n selectedUser?: string;\n loading: boolean;\n method?: number;\n}\n\nconst state = reactive({\n dialog: false,\n user: {\n Administrator: false,\n ReadAndUnderstood: false,\n },\n step: 1,\n valid: false,\n selectedUser: undefined,\n loading: false,\n method: undefined,\n});\n\nexport default defineComponent({\n components: {\n InfoTooltip,\n },\n props: {\n license: {\n type: Object as PropType,\n required: true,\n },\n },\n setup({ license }) {\n const {\n error,\n getLicensePrice,\n grantLicenseToUser,\n licensePrice,\n canChoose,\n availableUsers,\n calculatingChoices,\n canAssignToExistingUser,\n getLicenses,\n } = useLicense();\n const { createUser, getUsers } = useUsers();\n\n onMounted(async () => {\n await getLicensePrice();\n await canAssignToExistingUser();\n });\n\n const close = () => {\n state.selectedUser = undefined;\n state.user = {\n Administrator: false,\n ReadAndUnderstood: false,\n } as UserRegistration;\n state.dialog = false;\n state.step = 1;\n state.method = undefined;\n };\n\n const goBack = () => {\n state.selectedUser = undefined;\n state.user = {\n Administrator: false,\n ReadAndUnderstood: false,\n } as UserRegistration;\n state.step = 1;\n state.method = undefined;\n };\n\n const submit = async () => {\n state.loading = true;\n let success = false;\n\n const reg: RegisterUserModel = {\n Email: state.user.Email ? state.user.Email : '',\n FirstName: state.user.FirstName ? state.user.FirstName : '',\n LastName: state.user.LastName ? state.user.LastName : '',\n Password: state.user.Password ? state.user.Password : '',\n IsAdmin: state.user.Administrator,\n };\n\n let createdUser: string | undefined = '';\n\n if (!state.selectedUser) {\n createdUser = await createUser(reg);\n } else {\n createdUser = state.selectedUser;\n }\n\n if (createdUser && license.Id) {\n const user: UsernameModel = {\n UserName: createdUser,\n };\n success = await grantLicenseToUser(license.Id, user);\n }\n\n if (success) {\n await getUsers(true);\n await getLicenses(true);\n await canAssignToExistingUser();\n close();\n }\n\n state.loading = false;\n };\n\n const passwordValidator = () => {\n let valid = false;\n if (state.user.Password && state.user.ConfirmPassword) {\n if (state.user.Password.length > 7) {\n if (state.user.Password === state.user.ConfirmPassword) {\n if (/[a-z]/.test(state.user.Password)) {\n if (/[A-Z]/.test(state.user.Password)) {\n if (/[0-9]+/.test(state.user.Password)) {\n valid = true;\n }\n }\n }\n }\n }\n }\n return valid;\n };\n\n const formIsValid = computed(() => {\n const valid = false;\n if (canChoose && state.method) {\n if (state.method === 1) {\n return state.selectedUser !== undefined;\n } else if (state.method === 2) {\n if (\n state.user.FirstName &&\n state.user.LastName &&\n passwordValidator()\n ) {\n return state.user.Password === state.user.ConfirmPassword;\n }\n }\n } else {\n if (\n state.user.FirstName &&\n state.user.LastName &&\n passwordValidator()\n ) {\n return state.user.Password === state.user.ConfirmPassword;\n }\n }\n return valid;\n });\n\n return {\n ...toRefs(state),\n submit,\n canChoose,\n rules: {\n required: (v: string) => !!v || `${translate('validation.required')}`,\n min: (v: string) =>\n (v && v.length >= 8) ||\n `${translate('validation.minimum-characters', { amount: 8 })}`,\n passwordMatch: () =>\n state.user.Password === state.user.ConfirmPassword ||\n `${translate('validation.pw-missmatch')}`,\n containsLower: (v: string) =>\n /[a-z]/.test(v && v) || `${translate('validation.lowercase')}`,\n containsUpper: (v: string) =>\n /[A-Z]/.test(v && v) || `${translate('validation.uppercase')}`,\n containsNumber: (v: string) =>\n /[0-9]+/.test(v && v) || `${translate('validation.number')}`,\n },\n emailRules: [\n (v: string) => !!v || `${translate('validation.required')}`,\n (v: string) =>\n /.+@.+\\..+/.test(v) || `${translate('validation.valid-email')}`,\n ],\n formIsValid,\n close,\n error,\n goBack,\n licensePrice,\n availableUsers,\n calculatingChoices,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=7a4fd5f7&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=7a4fd5f7&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7a4fd5f7\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VItemGroup } from 'vuetify/lib/components/VItemGroup';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VScrollYTransition } from 'vuetify/lib/components/transitions';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VStepper } from 'vuetify/lib/components/VStepper';\nimport { VStepperContent } from 'vuetify/lib/components/VStepper';\nimport { VStepperHeader } from 'vuetify/lib/components/VStepper';\nimport { VStepperItems } from 'vuetify/lib/components/VStepper';\nimport { VStepperStep } from 'vuetify/lib/components/VStepper';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\nimport { VToolbarTitle } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCheckbox,VCol,VContainer,VDialog,VDivider,VForm,VIcon,VItemGroup,VListItem,VListItemIcon,VListItemTitle,VRow,VScrollYTransition,VSelect,VSpacer,VStepper,VStepperContent,VStepperHeader,VStepperItems,VStepperStep,VTextField,VToolbar,VToolbarTitle})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"text-left\"},[(_vm.license.ExpiryDate)?_c('v-chip',{staticClass:\"ma-1\",attrs:{\"small\":\"\",\"color\":\"orange\",\"outlined\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.$t('common.status-terminated'))+\" \")]):_vm._e(),(_vm.license.GrantedToUsername)?_c('v-chip',{staticClass:\"ma-1\",attrs:{\"small\":\"\",\"color\":\"secondary\",\"outlined\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.$t('common.status-assigned'))+\" \")]):_vm._e(),(!_vm.license.GrantedToUsername)?_c('v-chip',{staticClass:\"ma-1\",attrs:{\"small\":\"\",\"color\":\"warning\",\"outlined\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.$t('common.status-unassigned'))+\" \")]):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { License } from '@/models/admin/interfaces';\nimport { defineComponent, PropType } from '@vue/composition-api';\n\nexport default defineComponent({\n props: {\n license: {\n type: Object as PropType,\n required: true,\n },\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=c8f8f80a&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VChip } from 'vuetify/lib/components/VChip';\ninstallComponents(component, {VChip})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, onMounted, ref } from '@vue/composition-api';\nimport { useLicense } from '@/modules/license';\nimport moment from 'moment';\nimport LicenseModal from '@/components/license-adm/license-modal/index.vue';\nimport DeleteLicenseModal from '@/components/license-adm/license-delete-modal/index.vue';\nimport AssignLicenseModal from '@/components/license-adm/license-assign-modal/index.vue';\nimport Status from '@/components/license-adm/status/index.vue';\nimport Loader from '@/components/loader/index.vue';\nimport ContentBar from '@/components/common/content-bar/index.vue';\n\nexport default defineComponent({\n components: {\n LicenseModal,\n DeleteLicenseModal,\n AssignLicenseModal,\n Status,\n Loader,\n ContentBar,\n },\n setup() {\n const {\n licenses,\n canAssignLicense,\n canDeleteLicense,\n showLicenseActions,\n getLicenses,\n } = useLicense();\n\n const loading = ref(true);\n\n onMounted(async () => {\n await getLicenses();\n loading.value = false;\n });\n\n return {\n licenses,\n loading,\n moment,\n canAssignLicense,\n canDeleteLicense,\n showLicenseActions,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=4379c945&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=4379c945&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4379c945\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItemGroup } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VBtn,VCard,VContainer,VIcon,VList,VListItemGroup,VMenu,VRow,VSimpleTable,VSubheader})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.loading)?_c('div',[_c('content-bar',{attrs:{\"small\":true,\"title\":_vm.$t('user.user-amount', { amount: _vm.users.length })}}),_c('v-card',{attrs:{\"tile\":\"\"}},[_c('v-container',{attrs:{\"fluid\":\"\"}},[(_vm.users)?_c('v-row',[_c('v-simple-table',{staticClass:\"user-table\",scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('thead',[_c('tr',[_c('th',{staticClass:\"text-left user-header\"}),_c('th',{staticClass:\"text-left user-header\"},[_vm._v(\" \"+_vm._s(_vm.$t('labels.name'))+\" \")]),_c('th',{staticClass:\"text-left user-header\"},[_vm._v(\" \"+_vm._s(_vm.$t('labels.username'))+\" \")]),_c('th',{staticClass:\"text-left user-header\"},[_vm._v(\" \"+_vm._s(_vm.$t('labels.type'))+\" \")]),_c('th',{staticClass:\"text-left user-header\"})])]),_c('tbody',_vm._l((_vm.users),function(user){return _c('tr',{key:user.Id},[_c('td',[(_vm.licenses)?_c('v-icon',{attrs:{\"color\":_vm.licenses &&\n _vm.licenses.some(function (l) { return l.GrantedToUsername === user.Email; })\n ? 'secondary'\n : 'error'}},[_vm._v(_vm._s(user.IsAdmin ? 'mdi-shield-account' : 'mdi-account'))]):_c('loader',{attrs:{\"small\":true,\"margins\":true}})],1),_c('td',[_vm._v(_vm._s(user.FullName))]),_c('td',[_c('span',[_c('b',[_vm._v(_vm._s(user.Email))])])]),_c('td',[_vm._v(\" \"+_vm._s(user.IsAdmin ? _vm.$t('titles.admin') : _vm.$t('labels.user'))+\" \")]),_c('td',[_c('v-menu',{attrs:{\"close-on-content-click\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var menu = ref.on;\n var attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\"}},'v-btn',attrs,false),Object.assign({}, menu)),[_c('v-icon',[_vm._v(\"mdi-dots-vertical\")])],1)]}}],null,true)},[_c('v-list',{attrs:{\"dense\":\"\"}},[_c('v-list-item-group',{attrs:{\"color\":\"primary\"}},[_c('user-modal',{attrs:{\"user\":user}}),_c('user-pw-modal',{attrs:{\"user\":user}}),(_vm.auth.Id !== user.Id)?_c('user-delete-modal',{attrs:{\"user\":user}}):_vm._e()],1)],1)],1)],1)])}),0)]},proxy:true}],null,false,1592449430)})],1):(!_vm.loading)?_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('br'),_c('br'),_c('v-subheader',[_vm._v(_vm._s(_vm.$t('info.no-users')))])],1):_vm._e()],1)],1)],1):_c('div',[_c('content-bar',{attrs:{\"small\":true,\"title\":_vm.$t('titles.users')}}),_c('v-card',[_c('loader',{attrs:{\"margins\":true}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"width\":\"500\"},on:{\"click:outside\":_vm.close},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-list-item',_vm._g(_vm._b({},'v-list-item',attrs,false),on),[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"mdi-account-edit\")])],1),_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('user.edit-user')))])],1)]}}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[(_vm.updatedUser)?_c('v-form',{staticClass:\"user-form\",on:{\"submit\":function($event){$event.preventDefault();return _vm.submit.apply(null, arguments)}},model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-card',{staticClass:\"user-content\",attrs:{\"tile\":\"\",\"flat\":\"\"}},[_c('dialog-title',{attrs:{\"headerText\":_vm.$t('user.edit-user')},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":_vm.close}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)]},proxy:true}],null,false,3663722865)}),_c('v-container',[_c('v-row',{staticClass:\"pa-3\",attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"dense\":\"\",\"label\":_vm.$t('labels.first-name'),\"placeholder\":_vm.$t('labels.first-name'),\"required\":\"\",\"outlined\":\"\",\"clearable\":\"\",\"autofocus\":\"\",\"rules\":[_vm.rules.required, _vm.rules.min]},model:{value:(_vm.updatedUser.FirstName),callback:function ($$v) {_vm.$set(_vm.updatedUser, \"FirstName\", $$v)},expression:\"updatedUser.FirstName\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"dense\":\"\",\"label\":_vm.$t('labels.last-name'),\"placeholder\":_vm.$t('labels.last-name'),\"outlined\":\"\",\"clearable\":\"\",\"required\":\"\",\"rules\":[_vm.rules.required, _vm.rules.min]},model:{value:(_vm.updatedUser.LastName),callback:function ($$v) {_vm.$set(_vm.updatedUser, \"LastName\", $$v)},expression:\"updatedUser.LastName\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-checkbox',{staticClass:\"understood\",attrs:{\"dense\":\"\",\"label\":_vm.$t('labels.admin')},model:{value:(_vm.updatedUser.IsAdmin),callback:function ($$v) {_vm.$set(_vm.updatedUser, \"IsAdmin\", $$v)},expression:\"updatedUser.IsAdmin\"}})],1)],1)],1),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"disabled\":!_vm.valid,\"color\":\"secondary\",\"type\":\"submit\",\"loading\":_vm.loading}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.save'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-check\")])],1),_c('v-btn',{on:{\"click\":_vm.close}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.close'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-close\")])],1)],1)],1)],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport {\n ref,\n PropType,\n defineComponent,\n onMounted,\n} from '@vue/composition-api';\nimport { cleanSource } from '@/helpers/common';\nimport { User } from '@/models/auth/interfaces';\nimport { useUsers } from '@/modules/users';\nimport DialogTitle from '@/components/common/dialog-title/index.vue';\nimport { translate } from '@/localization';\n\nexport default defineComponent({\n props: {\n user: {\n type: Object as PropType,\n required: true,\n },\n },\n components: {\n DialogTitle,\n },\n setup({ user }) {\n const { updateUser, loading } = useUsers();\n const updatedUser = ref();\n const valid = ref(false);\n const dialog = ref(false);\n\n onMounted(() => {\n updatedUser.value = cleanSource(user);\n });\n\n const close = () => {\n dialog.value = false;\n updatedUser.value = cleanSource(user);\n };\n\n const submit = async () => {\n if (!updatedUser.value) return;\n\n await updateUser(updatedUser.value);\n close();\n };\n\n return {\n dialog,\n close,\n updatedUser,\n submit,\n valid,\n loading,\n rules: {\n required: (v: string) => !!v || `${translate('validation.required')}`,\n min: (v: string) =>\n (v && v.length >= 3) ||\n `${translate('validation.minimum-characters', [3])}`,\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=b365bcb0&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=b365bcb0&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b365bcb0\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCheckbox,VCol,VContainer,VDialog,VForm,VIcon,VListItem,VListItemIcon,VListItemTitle,VRow,VSpacer,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('confirm',{scopedSlots:_vm._u([{key:\"activator-element\",fn:function(){return [_c('v-list-item',[_c('v-list-item-icon',[_c('v-icon',{attrs:{\"color\":\"error\"}},[_vm._v(\"mdi-account-minus\")])],1),_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('user.delete-user')))])],1)]},proxy:true},{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('user.delete-username', { name: _vm.user.FullName }))+\" \")]},proxy:true},{key:\"text\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('info.user-delete'))+\" \")]},proxy:true},{key:\"accept\",fn:function(){return [_c('v-btn',{attrs:{\"color\":\"secondary\",\"loading\":_vm.loading,\"disabled\":!_vm.valid},on:{\"click\":_vm.deleteEvent}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.confirm'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-check\")])],1)]},proxy:true}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { ref, PropType, defineComponent } from '@vue/composition-api';\nimport { User } from '@/models/auth/interfaces';\nimport { useUsers } from '@/modules/users';\nimport Confirm from '@/components/common/confirm/index.vue';\n\nexport default defineComponent({\n components: {\n Confirm,\n },\n props: {\n user: {\n type: Object as PropType,\n required: true,\n },\n },\n setup({ user }) {\n const { loading, deleteUser } = useUsers();\n const valid = ref(false);\n const dialog = ref(false);\n\n valid.value = user && user.Id !== null && user.Id !== '';\n\n const deleteEvent = async () => {\n await deleteUser(user);\n };\n\n return {\n loading,\n valid,\n dialog,\n deleteEvent,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=590fa002&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"590fa002\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\ninstallComponents(component, {VBtn,VIcon,VListItem,VListItemIcon,VListItemTitle})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, onMounted, ref } from '@vue/composition-api';\nimport { useUsers } from '@/modules/users';\nimport UserModal from '@/components/user-adm/user-modal/index.vue';\nimport UserPwModal from '@/components/user-adm/user-pwreset-modal/index.vue';\nimport UserDeleteModal from '@/components/user-adm/user-delete-modal/index.vue';\nimport { useAuth } from '@/modules/auth';\nimport { useLicense } from '@/modules/license';\nimport Loader from '@/components/loader/index.vue';\nimport ContentBar from '@/components/common/content-bar/index.vue';\n\nexport default defineComponent({\n components: {\n UserModal,\n UserPwModal,\n UserDeleteModal,\n Loader,\n ContentBar,\n },\n setup() {\n const { getUsers, users } = useUsers();\n const { getLicenses, licenses } = useLicense();\n const { user } = useAuth();\n const loading = ref(true);\n\n onMounted(async () => {\n await getUsers();\n await getLicenses();\n loading.value = false;\n });\n\n return {\n users,\n loading,\n auth: user,\n licenses,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=142a34b2&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=142a34b2&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"142a34b2\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItemGroup } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VBtn,VCard,VContainer,VIcon,VList,VListItemGroup,VMenu,VRow,VSimpleTable,VSubheader})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\nimport LicenseAdm from '@/components/license-adm/index.vue';\nimport UserAdm from '@/components/user-adm/index.vue';\nimport ContentBar from '@/components/common/content-bar/index.vue';\n\nexport default defineComponent({\n name: 'Admin',\n components: {\n LicenseAdm,\n UserAdm,\n ContentBar,\n },\n});\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Admin.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Admin.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Admin.vue?vue&type=template&id=3ee74b46&scoped=true&\"\nimport script from \"./Admin.vue?vue&type=script&lang=ts&\"\nexport * from \"./Admin.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Admin.vue?vue&type=style&index=0&id=3ee74b46&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3ee74b46\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCol,VContainer,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('library-manager')}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('content-bar',{attrs:{\"title\":_vm.$t('titles.library')},scopedSlots:_vm._u([{key:\"content-right\",fn:function(){return [_c('new-template',{attrs:{\"button\":true,\"profession\":_vm.currentProfession},on:{\"update\":_vm.initTemplates}}),_c('import-template',{on:{\"update\":_vm.initTemplates}}),_c('download-template',{attrs:{\"professionCode\":_vm.professionCode},on:{\"update\":_vm.initTemplates}})]},proxy:true}])}),_c('v-container',{staticClass:\"grey lighten-5\"},[_c('div',[_c('v-card-title',[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-subheader',{staticClass:\"field-name\"},[_vm._v(\" \"+_vm._s(_vm.$t('titles.professions'))+\" \")]),(_vm.professions)?_c('v-btn-toggle',{attrs:{\"mandatory\":\"\",\"tile\":\"\",\"group\":\"\"},model:{value:(_vm.professionCode),callback:function ($$v) {_vm.professionCode=$$v},expression:\"professionCode\"}},_vm._l((_vm.professions),function(prof){return _c('v-btn',{key:prof.Code,attrs:{\"value\":prof.Code}},[_vm._v(\" \"+_vm._s(_vm.getNameByProfessionCode(prof.Code))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.getIconByProfessionCode(prof.Code)))])],1)}),1):_vm._e()],1),_c('v-spacer'),_c('v-text-field',{staticClass:\"element-search\",attrs:{\"append-icon\":\"mdi-magnify\",\"label\":_vm.$t('common.search'),\"outlined\":\"\",\"dense\":\"\",\"single-line\":\"\",\"hide-details\":\"\",\"clearable\":\"\",\"autofocus\":\"\"},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}})],1),_c('v-card-text',[_c('v-subheader',{staticClass:\"element-subheader\"},[_vm._v(\" \"+_vm._s(_vm.filteredTemplates.length === 0 ? _vm.$t('titles.libraries-occupation') : ((_vm.$t('titles.libraries-occupation')) + \" (\" + (_vm.filteredTemplates.length) + \")\"))+\" \")]),(_vm.filteredTemplates && _vm.filteredTemplates.length > 0 && !_vm.loading)?_c('v-expansion-panels',{attrs:{\"tile\":\"\"}},_vm._l((_vm.filteredTemplates),function(template){return _c('v-expansion-panel',{key:template.Id,on:{\"click\":function($event){return _vm.getTemplateFull(template)}}},[_c('v-expansion-panel-header',{staticClass:\"library-header\",scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('export-template',{attrs:{\"template\":template}}),_c('delete-template',{attrs:{\"template\":template,\"text\":true},on:{\"update\":_vm.initTemplates}}),_c('v-icon',{staticClass:\"expand-lib\",attrs:{\"color\":\"primary\"}},[_vm._v(\" $expand \")])]},proxy:true}],null,true)},[_c('v-row',{staticClass:\"library-panel-header\",attrs:{\"dense\":\"\"}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.getIconByProfessionCode(template.ProfessionCode)))]),_c('div',{staticClass:\"emphasized-name\"},[_vm._v(_vm._s(template.Name))]),(template.Created)?_c('div',{staticClass:\"date-element\"},[_c('span',[_vm._v(_vm._s(_vm.$t('headers.importtime')))]),_c('span',[_vm._v(\" \"+_vm._s((\"\" + (_vm.moment(template.Created) .lang( (\"\" + (_vm.$i18n.locale === 'no' ? 'nb' : _vm.$i18n.locale)) ) .format('Do MMMM YYYY')))))])]):_vm._e(),(template.Created && template.LastModified)?_c('div',{staticClass:\"date-element\"},[_vm._v(\" / \")]):_vm._e(),(template.LastModified)?_c('div',{staticClass:\"date-element\"},[_c('span',[_vm._v(_vm._s(_vm.$t('headers.lastmodified')))]),_c('span',[_vm._v(\" \"+_vm._s((\"\" + (_vm.moment(template.LastModified) .lang( (\"\" + (_vm.$i18n.locale === 'no' ? 'nb' : _vm.$i18n.locale)) ) .format('Do MMMM YYYY')))))])]):_vm._e()],1)],1),_c('v-expansion-panel-content',[_c('v-subheader',{staticClass:\"element-subheader\"},[_vm._v(\" \"+_vm._s(template.BuildingElementTemplates.length === 0 ? _vm.$t('titles.building-element-templates') : ((_vm.$t('titles.building-element-templates')) + \" (\" + (template.BuildingElementTemplates.length) + \")\"))+\" \")]),(\n template &&\n template.BuildingElementTemplates.length > 0 &&\n !_vm.fetchingFull\n )?_c('v-expansion-panels',{staticClass:\"pa-4\",attrs:{\"tile\":\"\",\"popout\":\"\"}},_vm._l((template.BuildingElementTemplates),function(eleTemplate){return _c('v-expansion-panel',{key:eleTemplate.Id},[_c('v-expansion-panel-header',{staticClass:\"element-header\"},[_c('v-row',{staticClass:\"library-panel-header\",attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"8\"}},[_c('span',[_vm._v(\" \"+_vm._s(eleTemplate.BuildingItemTemplates && eleTemplate.BuildingItemTemplates.length > 0 ? ((eleTemplate.Name) + \" (\" + (eleTemplate.BuildingItemTemplates.length) + \")\") : eleTemplate.Name))])])],1)],1),_c('v-expansion-panel-content',[_c('v-data-table',{staticClass:\"element-items\",attrs:{\"headers\":_vm.BUILDING_ITEM_HEADERS_SIMPLE_ALT1,\"items\":eleTemplate.BuildingItemTemplates,\"item-key\":\"Id\",\"search\":_vm.search,\"loading-text\":_vm.$t('info.loading'),\"no-data-text\":_vm.$t('info.no-data'),\"no-results-text\":_vm.$t('info.no-result'),\"items-per-page\":100,\"hide-default-footer\":\"\"},scopedSlots:_vm._u([_vm._l((_vm.BUILDING_ITEM_HEADERS_SIMPLE_ALT1),function(h){return {key:(\"header.\" + (h.value)),fn:function(ref){return [_c('v-row',{key:h.text,attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\"}},[(h.text)?_c('span',{key:h.value},[_vm._v(\" \"+_vm._s(_vm.$t((\"headers.\" + (h.text.toLowerCase()))))+\" \")]):_vm._e()])],1)]}}}),{key:\"item.Price\",fn:function(ref){\n var item = ref.item;\nreturn [(item.Price != null)?_c('div',[_vm._v(\" \"+_vm._s(item.Price.toLocaleString(_vm.$i18n.locale, { maximumFractionDigits: 2, }))+\" \")]):_vm._e()]}},{key:\"item.BaseTime\",fn:function(ref){\n var item = ref.item;\nreturn [(item.BaseTime != null)?_c('div',[_vm._v(\" \"+_vm._s(item.BaseTime.toLocaleString(_vm.$i18n.locale, { maximumFractionDigits: 2, }))+\" \")]):_vm._e()]}}],null,true)})],1)],1)}),1):(_vm.fetchingFull)?_c('loader',{attrs:{\"margins\":true}}):_vm._e()],1)],1)}),1):(!_vm.loading)?_c('v-alert',{attrs:{\"dense\":\"\",\"type\":\"info\",\"tile\":\"\",\"color\":\"orange\"}},[_vm._v(\" \"+_vm._s(_vm.$t('info.no-libraries-for-prof'))+\" \")]):(_vm.loading)?_c('loader',{attrs:{\"margins\":true}}):_vm._e()],1)],1)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"max-width\":\"700\",\"retain-focus\":false},on:{\"click:outside\":function($event){_vm.dialog = false}},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"ma-2\",attrs:{\"small\":\"\",\"outlined\":\"\"}},'v-btn',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.$t('buttons.export'))+\" \")])]}}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',{attrs:{\"flat\":\"\",\"tile\":\"\"}},[_c('dialog-title',{attrs:{\"headerText\":_vm.$t('titles.export-template'),\"secondaryText\":_vm.template.Name},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.dialog = false}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)]},proxy:true}])}),_c('v-card-text',{staticClass:\"export-message\"},[_c('span',{staticClass:\"subtitle-1\"},[_vm._v(_vm._s(_vm.$t('labels.select-format')))]),_c('v-item-group',[_c('v-container',[_c('v-row',{staticClass:\"options\"},[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('v-card',{staticClass:\"d-flex align-center type-card\",attrs:{\"height\":\"150\",\"hover\":\"\",\"color\":_vm.type === _vm.ExportType.XML ? 'primary' : ''},on:{\"click\":function($event){_vm.type = _vm.ExportType.XML}}},[_c('v-icon',{class:_vm.type === _vm.ExportType.XML ? 'type-icon-active' : 'type-icon'},[_vm._v(\"mdi-xml\")]),_c('span',{class:_vm.type === _vm.ExportType.XML ? 'type-name-active' : 'type-name'},[_vm._v(\"XML\")]),_c('v-scroll-y-transition',[(_vm.type === _vm.ExportType.XML)?_c('div',{staticClass:\"display-3 flex-grow-1\"}):_vm._e()])],1)],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('v-card',{staticClass:\"d-flex align-center type-card\",attrs:{\"height\":\"150\",\"hover\":\"\",\"color\":_vm.type === _vm.ExportType.JSON ? 'primary' : ''},on:{\"click\":function($event){_vm.type = _vm.ExportType.JSON}}},[_c('v-icon',{class:_vm.type === _vm.ExportType.JSON\n ? 'type-icon-active'\n : 'type-icon'},[_vm._v(\"mdi-code-json\")]),_c('span',{class:_vm.type === _vm.ExportType.JSON\n ? 'type-name-active'\n : 'type-name'},[_vm._v(\"JSON\")]),_c('v-scroll-y-transition',[(_vm.type === _vm.ExportType.JSON)?_c('div',{staticClass:\"display-3 flex-grow-1\"}):_vm._e()])],1)],1)],1)],1)],1)],1),_c('v-card-actions',{staticClass:\"export-actions\"},[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"secondary\",\"loading\":_vm.loading},on:{\"click\":_vm.submit}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.export'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-export \")])],1),_c('v-btn',{on:{\"click\":function($event){_vm.dialog = false}}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.close'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-close\")])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { ExportType } from '@/constants/enum';\nimport { ref, defineComponent, PropType } from '@vue/composition-api';\nimport DialogTitle from '@/components/common/dialog-title/index.vue';\nimport { BuildingTypeTemplate } from '@/models/library/interfaces';\nimport { useExport } from '@/modules/export';\nimport xml2js from 'xml2js';\nimport { createXMLObject } from '@/helpers/library';\n\nexport default defineComponent({\n components: {\n DialogTitle,\n },\n props: {\n template: {\n type: Object as PropType,\n required: true,\n },\n },\n\n setup(props) {\n const { exportTemplate } = useExport();\n\n const dialog = ref(false);\n const loading = ref(false);\n const type = ref(ExportType.XML);\n\n const submit = async () => {\n loading.value = true;\n if (props.template.Id && type.value != null) {\n const response = await exportTemplate(props.template);\n if (response) {\n try {\n const xmlPayload = {\n BuildingTypeTemplate: response,\n };\n\n let blobParts = JSON.stringify(xmlPayload);\n let blobType = '';\n\n if (type.value === ExportType.XML) {\n const builderOptions: xml2js.BuilderOptions = {\n xmldec: {\n version: '1.0',\n encoding: 'UTF-8',\n },\n };\n\n const xmlObject = createXMLObject(response);\n const builder = new xml2js.Builder(builderOptions);\n blobParts = builder.buildObject(xmlObject);\n\n blobType = 'application/xml';\n } else {\n blobType = 'application/json';\n }\n const blob = new Blob([blobParts], {\n type: blobType,\n });\n const link = document.createElement('a');\n link.href = window.URL.createObjectURL(blob);\n link.download = `${props.template.Name}.${\n type.value === ExportType.XML ? 'xml' : 'json'\n }`;\n link.click();\n link.remove();\n } catch (e) {\n console.log(e);\n }\n }\n }\n loading.value = false;\n dialog.value = false;\n };\n\n return {\n submit,\n dialog,\n loading,\n type,\n ExportType,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=02a79a90&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=02a79a90&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"02a79a90\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VItemGroup } from 'vuetify/lib/components/VItemGroup';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VScrollYTransition } from 'vuetify/lib/components/transitions';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VContainer,VDialog,VIcon,VItemGroup,VRow,VScrollYTransition,VSpacer})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('confirm',{scopedSlots:_vm._u([{key:\"activator-element\",fn:function(){return [(_vm.isMenuitem)?_c('v-list-item',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('titles.delete-template')))]),_c('v-list-item-icon',[_c('v-icon',{attrs:{\"color\":\"error\",\"right\":\"\"}},[_vm._v(\"mdi-delete\")])],1)],1):(_vm.text)?_c('v-btn',{staticClass:\"ma-2\",attrs:{\"small\":\"\",\"outlined\":\"\",\"color\":\"error\"}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.delete-template'))+\" \")]):_c('v-btn',{attrs:{\"small\":\"\",\"icon\":\"\"}},[_c('v-icon',{attrs:{\"color\":\"rgba(193, 9, 9, 0.69)\"}},[_vm._v(\"mdi-delete\")])],1)]},proxy:true},(_vm.template)?{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(((_vm.$t('common.delete')) + \" \" + (_vm.template.Name) + \"?\"))+\" \")]},proxy:true}:null,{key:\"text\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('info.template-delete'))+\" \")]},proxy:true},{key:\"accept\",fn:function(){return [_c('v-btn',{attrs:{\"color\":\"secondary\",\"loading\":_vm.loading,\"disabled\":!_vm.valid},on:{\"click\":_vm.deleteEvent}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.confirm'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-check\")])],1)]},proxy:true}],null,true),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { ref, defineComponent, PropType, computed } from '@vue/composition-api';\nimport Confirm from '@/components/common/confirm/index.vue';\nimport { BuildingTypeTemplate } from '@/models/library/interfaces';\nimport { useLibrary } from '@/modules/library';\n\nexport default defineComponent({\n components: {\n Confirm,\n },\n props: {\n isMenuitem: {\n type: Boolean,\n },\n text: {\n type: Boolean,\n },\n template: {\n type: Object as PropType,\n required: true,\n },\n },\n setup(props, { emit }) {\n const dialog = ref(false);\n const loading = ref(false);\n\n const valid = computed(() => {\n return props.template && props.template.Id;\n });\n\n const deleteEvent = async () => {\n const {\n deleteBuildingTypeTemplate,\n initCalculationLibrary,\n } = useLibrary();\n if (props.template.Id) {\n loading.value = true;\n const success = await deleteBuildingTypeTemplate(props.template.Id);\n\n if (success) {\n initCalculationLibrary();\n emit('update', props.template.ProfessionCode);\n loading.value = false;\n dialog.value = false;\n }\n }\n };\n\n return {\n deleteEvent,\n dialog,\n loading,\n valid,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=178cca54&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=178cca54&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"178cca54\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\ninstallComponents(component, {VBtn,VIcon,VListItem,VListItemIcon,VListItemTitle})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"max-width\":\"700\",\"retain-focus\":false},on:{\"click:outside\":_vm.close},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"import-button\",attrs:{\"small\":\"\"}},'v-btn',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.$t('titles.import-template'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-import \")])],1)]}}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',{attrs:{\"flat\":\"\",\"tile\":\"\"}},[_c('dialog-title',{attrs:{\"headerText\":_vm.$t('titles.import-template')},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":_vm.close}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)]},proxy:true}])}),_c('v-card-text',{staticClass:\"import-template-message\"},[(!_vm.library)?_c('vue-dropzone',{ref:\"importZone\",attrs:{\"id\":\"importZone\",\"options\":_vm.dropzoneOptions},on:{\"vdropzone-file-added\":_vm.validateImport,\"vdropzone-error\":_vm.handleError}}):(_vm.library)?_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"8\"}},[_c('div',{staticClass:\"pa-5 library-info\"},[_vm._v(\" \"+_vm._s(_vm.$t('info.import-library-ready', { name: _vm.library.Name ? _vm.library.Name : '', elements: _vm.library.BuildingElementTemplates ? _vm.library.BuildingElementTemplates.length : 0, }))+\" \")])]),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('profession',{attrs:{\"code\":_vm.library.ProfessionCode.toString()}})],1)],1):_vm._e()],1),_c('v-card-actions',{staticClass:\"import-template-actions\"},[_c('info-tooltip',{attrs:{\"information\":_vm.$t('info.import-library-info')}}),_c('v-spacer'),(_vm.templateFile)?_c('v-btn',{attrs:{\"color\":\"error\"},on:{\"click\":_vm.cancel}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.cancel'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-close\")])],1):_vm._e(),_c('v-btn',{attrs:{\"color\":\"secondary\",\"disabled\":!_vm.library,\"loading\":_vm.loading},on:{\"click\":_vm.submit}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.import'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-import \")])],1),_c('v-btn',{on:{\"click\":_vm.close}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.close'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-close\")])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { translate } from '@/localization';\nimport { useImport } from '@/modules/import';\nimport { useSnackbar } from '@/modules/snackbar';\nimport { ref, defineComponent } from '@vue/composition-api';\nimport vue2Dropzone from 'vue2-dropzone';\nimport 'vue2-dropzone/dist/vue2Dropzone.min.css';\nimport DialogTitle from '@/components/common/dialog-title/index.vue';\nimport InfoTooltip from '@/components/common/tooltip-helper/index.vue';\nimport { BuildingTypeTemplate } from '@/models/library/interfaces';\nimport { useLibrary } from '@/modules/library';\nimport { finalizeBuildingTypeTemplate } from '@/helpers/library';\nimport Profession from '@/components/profession/index.vue';\n\nexport default defineComponent({\n components: {\n vueDropzone: vue2Dropzone,\n DialogTitle,\n InfoTooltip,\n Profession,\n },\n setup(props, { emit }) {\n const { importLibraryFromFile } = useImport();\n const { importTemplate } = useLibrary();\n const dialog = ref(false);\n const templateFile = ref(undefined);\n const importZone = ref();\n const library = ref();\n const validating = ref(false);\n const loading = ref(false);\n\n const validateImport = async (file: File) => {\n validating.value = true;\n templateFile.value = file;\n importZone.value && importZone.value.removeAllFiles();\n if (file.type === 'application/json' || file.type === 'text/xml') {\n try {\n library.value = await importLibraryFromFile(file);\n } catch (e) {\n console.log(e);\n library.value = undefined;\n }\n\n if (library.value) {\n importZone.value.disable();\n } else {\n templateFile.value = undefined;\n }\n importZone.value && importZone.value.removeAllFiles();\n } else {\n templateFile.value = undefined;\n importZone.value && importZone.value.removeAllFiles();\n }\n validating.value = false;\n };\n\n const handleError = (file: File, message: string) => {\n const { snack } = useSnackbar();\n importZone.value.removeFile(file);\n if (!message.includes('Upload')) {\n snack(message, false);\n }\n };\n\n const close = () => {\n templateFile.value = undefined;\n dialog.value = false;\n library.value = undefined;\n };\n\n const submit = async () => {\n loading.value = true;\n if (library.value) {\n try {\n const payload = finalizeBuildingTypeTemplate(library.value);\n const success = await importTemplate(payload);\n if (success) {\n emit('update', library.value.ProfessionCode?.toString());\n close();\n }\n } catch (e) {\n console.log(e);\n loading.value = false;\n }\n }\n loading.value = false;\n };\n\n const cancel = () => {\n templateFile.value = undefined;\n library.value = undefined;\n if (importZone.value) importZone.value.enable();\n };\n\n return {\n submit,\n validateImport,\n handleError,\n cancel,\n close,\n dialog,\n templateFile,\n importZone,\n library,\n validating,\n loading,\n dropzoneOptions: {\n autoProcessQueue: false,\n url: 'http://localhost',\n thumbnailWidth: 150,\n maxFilesize: 0.5,\n maxFiles: 1,\n acceptedFiles: '.xml,.json',\n dictDefaultMessage: `${translate(\n 'project.import-project-default-message'\n )}`,\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=677432c0&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=677432c0&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"677432c0\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VDialog,VIcon,VRow,VSpacer})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"max-width\":\"700\",\"retain-focus\":false},on:{\"click:outside\":_vm.close},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"ma-2\",attrs:{\"small\":\"\"},on:{\"click\":function($event){return _vm.getDownloadables(_vm.professionCode)}}},'v-btn',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.$t('buttons.download-templates'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-download \")])],1)]}}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',{attrs:{\"flat\":\"\",\"tile\":\"\"}},[_c('dialog-title',{attrs:{\"headerText\":_vm.$t('buttons.download-templates')},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":_vm.close}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)]},proxy:true}])}),_c('v-card-text',{staticClass:\"pa-5\"},[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('profession',{attrs:{\"code\":_vm.professionCode}})],1),_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{attrs:{\"dense\":\"\"}},[(\n !_vm.loadingTemplates && _vm.availableFiles && _vm.availableFiles.length > 0\n )?_c('v-col',[_c('v-list',{attrs:{\"shaped\":\"\"}},[_c('v-subheader',[_vm._v(_vm._s(_vm.availableFiles && _vm.availableFiles.length > 0 ? ((_vm.$t('titles.templates')) + \" (\" + (_vm.availableFiles.length) + \")\") : _vm.$t('titles.templates')))]),_c('v-list-item-group',{model:{value:(_vm.selectedFile),callback:function ($$v) {_vm.selectedFile=$$v},expression:\"selectedFile\"}},_vm._l((_vm.availableFiles),function(file){return _c('downloadable-library',{key:file.Id,attrs:{\"icon\":'mdi-book',\"file\":file}})}),1)],1)],1):(_vm.loadingTemplates)?_c('v-col',[_c('loader')],1):_c('v-col',[_c('v-alert',{attrs:{\"dense\":\"\",\"type\":\"info\",\"tile\":\"\",\"color\":\"orange\"}},[_vm._v(\" \"+_vm._s(_vm.$t('info.no-downloadable-templates'))+\" \")])],1)],1)],1)],1),_c('v-card-actions',{staticClass:\"pa-5\"},[_c('v-spacer'),_c('v-btn',{staticClass:\"ma-2\",attrs:{\"color\":\"secondary\",\"loading\":_vm.loading,\"disabled\":!_vm.valid},on:{\"click\":_vm.submit}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.download'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-download \")])],1),_c('v-btn',{staticClass:\"ma-2\",on:{\"click\":_vm.close}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.close'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-close\")])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { ref, defineComponent, computed } from '@vue/composition-api';\nimport DialogTitle from '@/components/common/dialog-title/index.vue';\nimport DownloadableLibrary from '@/components/pricebook/download-pricelist/downloadable-pricelist/index.vue';\nimport Profession from '@/components/profession/index.vue';\nimport Loader from '@/components/loader/index.vue';\nimport { TemplateFile } from '@/models/library/interfaces';\nimport { useLibrary } from '@/modules/library';\n\nexport default defineComponent({\n components: {\n DialogTitle,\n DownloadableLibrary,\n Profession,\n Loader,\n },\n props: {\n professionCode: {\n type: String,\n },\n },\n setup(props, { emit }) {\n const {\n downloadTemplateFile,\n getAllBuildingTemplates,\n getTemplateFiles,\n } = useLibrary();\n const dialog = ref(false);\n const loadingTemplates = ref(false);\n const loading = ref(false);\n const selectedFile = ref();\n const availableFiles = ref>([]);\n\n const valid = computed(() => {\n return selectedFile.value != null;\n });\n\n const getDownloadables = async (professionCode: string) => {\n loadingTemplates.value = true;\n const templates = await getAllBuildingTemplates(true);\n const files = await getTemplateFiles(true);\n\n availableFiles.value = files.filter(\n file => professionCode === file.Profession.Code\n );\n\n availableFiles.value.forEach((file, i) => {\n if (templates) {\n const found = templates.findIndex(\n temp => temp.GlobalKey === file.GlobalKey\n );\n if (found >= 0) {\n availableFiles.value.splice(i, 1);\n }\n }\n });\n loadingTemplates.value = false;\n };\n\n const close = () => {\n selectedFile.value = undefined;\n dialog.value = false;\n };\n\n const submit = async () => {\n if (selectedFile.value && valid.value) {\n loading.value = true;\n const success = await downloadTemplateFile(selectedFile.value);\n if (success) {\n emit('update', selectedFile.value.Profession.Code);\n selectedFile.value = undefined;\n close();\n }\n }\n loading.value = false;\n };\n\n return {\n close,\n submit,\n getDownloadables,\n availableFiles,\n dialog,\n loading,\n valid,\n selectedFile,\n loadingTemplates,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=3de310de&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItemGroup } from 'vuetify/lib/components/VList';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VAlert,VBtn,VCard,VCardActions,VCardText,VCol,VContainer,VDialog,VIcon,VList,VListItemGroup,VRow,VSpacer,VSubheader})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"max-width\":\"550\",\"retain-focus\":false},on:{\"click:outside\":function($event){_vm.dialog = false}},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({class:_vm.first ? 'start' : _vm.button ? 'ma-2' : '',attrs:{\"color\":\"secondary\",\"dark\":\"\",\"fixed\":!_vm.button,\"bottom\":!_vm.button,\"right\":!_vm.button,\"fab\":!_vm.button,\"small\":_vm.button}},'v-btn',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.button ? _vm.$t('buttons.new-template') : '')+\" \"),_c('v-icon',{attrs:{\"right\":_vm.button}},[_vm._v(\"mdi-plus\")])],1)]}}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',{attrs:{\"flat\":\"\",\"tile\":\"\"}},[_c('dialog-title',{attrs:{\"headerText\":_vm.$t('titles.new-template'),\"center\":true},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.dialog = false}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)]},proxy:true}])}),_c('v-card-text',{staticClass:\"element-new-message pa-5\"},[_c('v-text-field',{attrs:{\"autofocus\":\"\",\"required\":\"\",\"clearable\":\"\",\"outlined\":\"\",\"dense\":\"\",\"label\":_vm.$t('labels.name'),\"placeholder\":_vm.$t('labels.name')},model:{value:(_vm.payload.name),callback:function ($$v) {_vm.$set(_vm.payload, \"name\", $$v)},expression:\"payload.name\"}}),_c('v-text-field',{attrs:{\"placeholder\":_vm.$t('labels.description'),\"label\":_vm.$t('labels.description'),\"clearable\":\"\",\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.payload.description),callback:function ($$v) {_vm.$set(_vm.payload, \"description\", $$v)},expression:\"payload.description\"}})],1),_c('v-card-actions',{staticClass:\"element-new-actions\"},[(_vm.profession && _vm.profession.Code)?_c('profession-view',{attrs:{\"code\":_vm.profession && _vm.profession.Code}}):_vm._e(),_c('v-spacer'),_c('v-btn',{attrs:{\"disabled\":!_vm.valid,\"color\":\"secondary\",\"loading\":_vm.loading},on:{\"click\":_vm.submit}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.add'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-check\")])],1),_c('v-btn',{on:{\"click\":function($event){_vm.dialog = false}}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.close'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-close\")])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { ref, defineComponent, computed, PropType } from '@vue/composition-api';\nimport DialogTitle from '@/components/common/dialog-title/index.vue';\nimport ProfessionView from '@/components/profession/index.vue';\nimport { useLibrary } from '@/modules/library';\nimport { createDefaultBuildingTypeTemplate } from '@/helpers/library';\nimport { Profession } from '@/models/common/interfaces';\nimport {\n getIconByProfessionCode,\n getNameByProfessionCode,\n} from '@/helpers/common';\n\ninterface NewDefaultBuildingTypeTemplatePayload {\n name: Nullable;\n description: Nullable;\n}\n\nexport default defineComponent({\n components: {\n DialogTitle,\n ProfessionView,\n },\n props: {\n profession: {\n type: Object as PropType,\n },\n first: {\n type: Boolean,\n },\n button: {\n type: Boolean,\n },\n },\n setup(props, { emit }) {\n const dialog = ref(false);\n const loading = ref(false);\n const payload = ref({\n name: null,\n description: null,\n });\n\n const valid = computed(() => {\n return payload.value.name && props.profession;\n });\n\n const submit = async () => {\n const {\n createBuildingTypeTemplate,\n initCalculationLibrary,\n } = useLibrary();\n\n if (!props.profession) return;\n\n const newTemplate = createDefaultBuildingTypeTemplate(props.profession);\n\n if (newTemplate && props.profession) {\n newTemplate.Name = payload.value.name;\n newTemplate.Description = payload.value.description;\n\n loading.value = true;\n const success = await createBuildingTypeTemplate(newTemplate);\n\n if (success) {\n initCalculationLibrary();\n emit('update', props.profession.Code.toString());\n payload.value.name = null;\n payload.value.description = null;\n loading.value = false;\n dialog.value = false;\n }\n }\n };\n\n return {\n submit,\n getIconByProfessionCode,\n getNameByProfessionCode,\n dialog,\n payload,\n valid,\n loading,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=9b52892a&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=9b52892a&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9b52892a\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VDialog,VIcon,VSpacer,VTextField})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport {\n defineComponent,\n onMounted,\n ref,\n computed,\n} from '@vue/composition-api';\nimport { useLibrary } from '@/modules/library';\nimport { BuildingTypeTemplate } from '@/models/library/interfaces';\nimport {\n BUILDING_ITEM_HEADERS_SIMPLE_ALT1,\n LIBRARY__HEADERS,\n} from '@/constants/table-headers';\nimport {\n cleanSource,\n getIconByProfessionCode,\n getNameByProfessionCode,\n} from '@/helpers/common';\nimport Professions from '@/components/profession/index.vue';\nimport { useProject } from '@/modules/project';\nimport { Profession } from '@/models/common/interfaces';\nimport moment from 'moment';\nimport ExportTemplate from '@/components/library/export-template/index.vue';\nimport Loader from '@/components/loader/index.vue';\nimport DeleteTemplate from '@/components/library/delete-template/index.vue';\nimport ContentBar from '@/components/common/content-bar/index.vue';\nimport ImportTemplate from '@/components/library/import-template/index.vue';\nimport DownloadTemplate from '@/components/library/download-template/index.vue';\nimport NewTemplate from '@/components/library/new-template/index.vue';\n\nexport default defineComponent({\n components: {\n Professions,\n ExportTemplate,\n Loader,\n DeleteTemplate,\n ContentBar,\n ImportTemplate,\n DownloadTemplate,\n NewTemplate,\n },\n setup() {\n const { getAllBuildingTemplates, getBuildingTemplate } = useLibrary();\n const { getProfessions } = useProject();\n\n const search = ref();\n const templates = ref>();\n const loading = ref(false);\n const professions = ref>();\n const professionCode = ref();\n const fetchingFull = ref(false);\n\n const currentProfession = computed(() => {\n if (professions.value) {\n return professions.value.find(\n prof => prof.Code === professionCode.value\n );\n }\n });\n\n const initTemplates = async () => {\n loading.value = true;\n templates.value = await getAllBuildingTemplates(true);\n professions.value = await getProfessions();\n if (!professionCode.value) {\n professionCode.value = '01';\n }\n loading.value = false;\n };\n\n onMounted(async () => {\n await initTemplates();\n });\n\n const getTemplateFull = async (template: BuildingTypeTemplate) => {\n if (template.Id) {\n fetchingFull.value = true;\n const templateFull = await getBuildingTemplate(template.Id);\n\n if (templateFull && templates.value) {\n const temp = templates.value.find(t => t.Id === templateFull.Id);\n if (temp) {\n temp.BuildingElementTemplates =\n templateFull.BuildingElementTemplates;\n }\n }\n fetchingFull.value = false;\n }\n };\n\n const filteredTemplates = computed(() => {\n let _templates: Array = cleanSource(\n templates.value ?? []\n );\n if (templates?.value && professionCode.value) {\n _templates = _templates.filter(\n template => professionCode.value === template.ProfessionCode\n );\n\n if (search.value) {\n _templates = _templates.filter(\n temp =>\n (temp.Name &&\n search.value &&\n temp.Name.toUpperCase().includes(search.value.toUpperCase())) ||\n temp.BuildingElementTemplates.find(\n bet =>\n bet.Name &&\n search.value &&\n bet.Name.toUpperCase().includes(search.value.toUpperCase())\n )\n );\n }\n }\n return _templates;\n });\n\n const getLibraryCount = (profCode: string): number | undefined => {\n let count: number | undefined = undefined;\n if (templates.value) {\n const filtered = templates.value.filter(\n temp => temp.ProfessionCode === profCode\n );\n count = filtered.length;\n }\n\n return count;\n };\n\n return {\n getIconByProfessionCode,\n getNameByProfessionCode,\n getLibraryCount,\n initTemplates,\n getTemplateFull,\n fetchingFull,\n search,\n LIBRARY__HEADERS,\n BUILDING_ITEM_HEADERS_SIMPLE_ALT1,\n filteredTemplates,\n loading,\n professions,\n moment,\n professionCode,\n currentProfession,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=761d9f78&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=761d9f78&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"761d9f78\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VBtnToggle } from 'vuetify/lib/components/VBtnToggle';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VExpansionPanel } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelContent } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelHeader } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanels } from 'vuetify/lib/components/VExpansionPanel';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VAlert,VBtn,VBtnToggle,VCardText,VCardTitle,VCol,VContainer,VDataTable,VExpansionPanel,VExpansionPanelContent,VExpansionPanelHeader,VExpansionPanels,VIcon,VRow,VSpacer,VSubheader,VTextField})\n","\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\nimport LibraryManager from '@/components/library/manager/index.vue';\n\nexport default defineComponent({\n components: {\n LibraryManager,\n },\n});\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Library.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Library.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Library.vue?vue&type=template&id=1b604132&\"\nimport script from \"./Library.vue?vue&type=script&lang=ts&\"\nexport * from \"./Library.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.activeCalculation)?_c('div',{class:_vm.activateLibrary ? 'wrapper' : 'wrapper-wide'},[_c('content-bar',{attrs:{\"title\":_vm.$t('titles.calculation'),\"breadcrumb\":_vm.activeCalculation && _vm.activeCalculation.Name},scopedSlots:_vm._u([{key:\"content-right\",fn:function(){return [_c('new-element'),_c('reports',{attrs:{\"isProject\":false}}),_c('v-btn',{staticClass:\"ma-2\",attrs:{\"small\":\"\",\"fab\":!_vm.$vuetify.breakpoint.xlOnly,\"to\":_vm.PROJECT_CALCULATION_PRICE_UPDATE_PATH}},[_vm._v(\" \"+_vm._s(!_vm.$vuetify.breakpoint.xlOnly ? '' : _vm.$t('buttons.price-update'))+\" \"),_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g({attrs:{\"right\":_vm.$vuetify.breakpoint.xlOnly}},on),[_vm._v(\" mdi-arrow-right \")])]}}],null,false,3761202946)},[_c('span',[_vm._v(_vm._s(_vm.$t('buttons.price-update')))])])],1),(_vm.activeCalculation)?_c('export-project',{attrs:{\"project\":_vm.activeCalculation,\"isCalculation\":true}}):_vm._e(),(\n _vm.projectCalculation &&\n _vm.projectCalculation.BuildingElements &&\n _vm.projectCalculation.BuildingElements.length > 0\n )?_c('convert-to-template'):_vm._e(),(_vm.activeCalculation)?_c('lock-calculation',{attrs:{\"calculation\":_vm.activeCalculation}}):_vm._e(),(_vm.activeCalculation)?_c('delete-project',{attrs:{\"project\":_vm.activeCalculation,\"isCalculation\":true,\"routeTo\":_vm.PROJECT_OVERVIEW_PATH}}):_vm._e()]},proxy:true}],null,false,1607529228)}),_c('v-container',{staticClass:\"grey lighten-5\",attrs:{\"fluid\":\"\"}},[_c('calculalation')],1)],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('library-drawer'),_c('building-element')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (\n (_vm.projectCalculation &&\n _vm.projectCalculation.BuildingElements &&\n _vm.projectCalculation.BuildingElements.length > 0) ||\n (_vm.customElements && _vm.customElements.length > 0)\n )?_c('v-card',{staticClass:\"table-card\",attrs:{\"tile\":\"\",\"min-height\":\"550\",\"flat\":\"\"}},[_c('v-card-title',{staticClass:\"calc-card-title\"},[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-subheader',{staticClass:\"field-name\"},[_vm._v(\" \"+_vm._s(_vm.$t('titles.views'))+\" \")]),_c('v-btn-toggle',{attrs:{\"mandatory\":\"\",\"tile\":\"\",\"color\":\"secondary\",\"group\":\"\",\"dense\":\"\"}},[_c('v-btn',{on:{\"click\":function($event){_vm.columnView = _vm.CalculationColumnView.Calculation}}},[_vm._v(\" \"+_vm._s(_vm.$t('calculation.category1'))+\" \")]),_c('v-btn',{on:{\"click\":function($event){_vm.columnView = _vm.CalculationColumnView.HourlyConsumption}}},[_vm._v(\" \"+_vm._s(_vm.$t('calculation.category2'))+\" \")]),_c('v-btn',{on:{\"click\":function($event){_vm.columnView = _vm.CalculationColumnView.Materials}}},[_vm._v(\" \"+_vm._s(_vm.$t('calculation.category4'))+\" \")]),_c('v-btn',{on:{\"click\":function($event){_vm.columnView = _vm.CalculationColumnView.Delivery}}},[_vm._v(\" \"+_vm._s(_vm.$t('calculation.category6'))+\" \")]),_c('v-btn',{on:{\"click\":function($event){_vm.columnView = _vm.CalculationColumnView.Economy}}},[_vm._v(\" \"+_vm._s(_vm.$t('calculation.category3'))+\" \")])],1)],1),_c('v-spacer'),_c('calculation-switcher'),_c('v-tooltip',{attrs:{\"bottom\":\"\",\"max-width\":\"250\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"exp-col pa-5\",attrs:{\"icon\":\"\",\"small\":\"\"},on:{\"click\":_vm.collapseAll}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-arrow-collapse-vertical\")])],1)]}}],null,false,2761609898)},[_c('span',[_vm._v(_vm._s(_vm.$t('calculation.collapse-all')))])])],1),_c('v-subheader',{staticClass:\"field-name\"},[_vm._v(\" \"+_vm._s(_vm.$t('titles.building-elements-length', { length: _vm.customElements ? _vm.customElements.length : _vm.projectCalculation.BuildingElements != null && _vm.projectCalculation.BuildingElements.length, }))+\" \")]),(!_vm.loading)?_c('v-expansion-panels',{staticClass:\"building-elements\",attrs:{\"multiple\":\"\",\"tile\":\"\",\"focusable\":\"\",\"value\":_vm.expendCalc,\"id\":\"element-container\"}},[_c('draggable',{staticClass:\"draggable-wrapper\",attrs:{\"v-model\":_vm.elements,\"disabled\":!_vm.allowDrag,\"options\":{ handle: '.element-draggable' }},on:{\"end\":_vm.onDropCallback}},_vm._l((_vm.elements),function(element){return _c('building-calc-element',{key:(\"\" + (element.Id) + _vm.key),attrs:{\"element\":element,\"smallVariant\":_vm.smallVariant,\"columns\":_vm.columns,\"search\":_vm.search,\"columnView\":_vm.columnView}})}),1)],1):_c('v-skeleton-loader',{attrs:{\"type\":\"table-tbody\"}})],1):_c('kalk-helper',{attrs:{\"title\":_vm.$t('titles.add-first-element'),\"message\":_vm.$t('info.add-first-element1')}},[_c('template',{slot:\"actions\"},[_c('v-btn',{staticClass:\"ma-2\",attrs:{\"to\":_vm.PROJECT_CALCULATION_OVERVIEW_PATH,\"small\":\"\"}},[_vm._v(_vm._s(_vm.$t('buttons.go-to-factors')))])],1)],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-row',{attrs:{\"dense\":\"\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"2\",\"align-self\":\"center\"}}),_c('v-col',{attrs:{\"cols\":\"3\",\"align-self\":\"center\"}},[_c('v-subheader',[_vm._v(\" \"+_vm._s(_vm.$t('labels.switch-calculation'))+\" \")])],1),_c('v-col',{attrs:{\"cols\":\"7\",\"align-self\":\"center\"}},[_c('v-select',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.calculations && _vm.activeCalculation),expression:\"calculations && activeCalculation\"}],staticClass:\"calculation-select pa-2\",attrs:{\"hide-details\":\"\",\"dense\":\"\",\"outlined\":\"\",\"color\":\"primary\",\"items\":_vm.calculations,\"label\":_vm.activeCalculation.Name,\"value\":_vm.activeCalculation.Id},on:{\"input\":_vm.handleChange},scopedSlots:_vm._u([(_vm.activeCalculation)?{key:\"item\",fn:function(ref){\nvar item = ref.item;\nreturn [(item.Id !== _vm.activeCalculation.Id)?_c('div',[_c('v-icon',{staticClass:\"calc-icon\"},[_vm._v(_vm._s(_vm.getIconByProfessionCode( item.Profession && item.Profession.Code ? item.Profession.Code : item.ProfessionCode )))]),_vm._v(\" \"+_vm._s(item.Name)+\" \")],1):_vm._e()]}}:null],null,true)})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { getIconByProfessionCode } from '@/helpers/common';\nimport { translate } from '@/localization';\nimport { ProjectOverview } from '@/models/projects/interfaces';\nimport { useCalculation } from '@/modules/calculation';\nimport { useLoader } from '@/modules/loader';\nimport { useProject } from '@/modules/project';\nimport { useSnackbar } from '@/modules/snackbar';\nimport { computed, defineComponent } from '@vue/composition-api';\n\nexport default defineComponent({\n setup() {\n const { activeProjectOverview } = useProject();\n const { activeCalculation, setActiveCalculation } = useCalculation();\n const { startLoader, stopLoader } = useLoader();\n const { snack } = useSnackbar();\n\n const calculations = computed(() => {\n if (\n activeProjectOverview?.value?.Children &&\n activeCalculation?.value?.Id != null\n ) {\n const calcId = activeCalculation.value.Id;\n const calcs: Array = activeProjectOverview.value.Children.filter(\n calc => calc.Id !== calcId\n );\n return calcs ?? [];\n }\n });\n\n const handleChange = async (item: ProjectOverview) => {\n if (item.Id !== activeCalculation?.value?.Id) {\n await startLoader(`${translate('loader.calculation-changing')}`);\n await setActiveCalculation(item);\n await stopLoader();\n\n snack(`${translate('calculation.calculation-changed')}`, true);\n }\n };\n return {\n calculations,\n activeCalculation,\n getIconByProfessionCode,\n handleChange,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=737df33a&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=737df33a&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"737df33a\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VCol,VIcon,VRow,VSelect,VSubheader})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-select',{attrs:{\"hide-details\":\"\",\"dense\":\"\",\"outlined\":\"\",\"label\":_vm.$t('labels.active-pricelist'),\"color\":\"secondary\",\"value\":_vm.selected && _vm.selected.Id,\"items\":_vm.priceLists,\"loading\":_vm.loadingPricelists,\"item-text\":\"Name\",\"item-value\":\"Id\"},on:{\"change\":_vm.onChangeEvent}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { PriceListTreeNode } from '@/models/pricebook/interfaces';\nimport { useCalculation } from '@/modules/calculation';\nimport { usePriceBook } from '@/modules/pricebook';\nimport { defineComponent, onMounted, ref } from '@vue/composition-api';\n\nexport default defineComponent({\n setup() {\n const { getPriceLists } = usePriceBook();\n const {\n getCalculationPriceListFromElements,\n setPriceListForActiveCalculation,\n } = useCalculation();\n\n const priceLists = ref>([]);\n const selected = ref();\n\n const onChangeEvent = async (pricelistId: string) => {\n selected.value = priceLists.value.find(pl => pl.Id === pricelistId);\n if (selected.value) {\n await setPriceListForActiveCalculation(selected.value);\n }\n };\n\n const loadingPricelists = ref(false);\n onMounted(async () => {\n loadingPricelists.value = true;\n priceLists.value = await getPriceLists();\n loadingPricelists.value = false;\n const plId = await getCalculationPriceListFromElements();\n selected.value = priceLists.value.find(pl => pl.Id === plId);\n });\n return {\n onChangeEvent,\n getCalculationPriceListFromElements,\n loadingPricelists,\n priceLists,\n selected,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=8814d532&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VSelect } from 'vuetify/lib/components/VSelect';\ninstallComponents(component, {VSelect})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-expansion-panel',{key:_vm.element.Id,staticClass:\"element-wrapper\",attrs:{\"active-class\":\"active-element\"},on:{\"change\":function($event){return _vm.changeEvent(_vm.element)}}},[_c('v-expansion-panel-header',{class:_vm.getRowColor(_vm.element),attrs:{\"ripple\":{ class: 'secondary--text' }},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-spacer'),(_vm.element)?_c('element-prop-item',{attrs:{\"text\":_vm.$t('titles.building-items'),\"propValue\":_vm.element.BuildingItems ? _vm.element.BuildingItems.length : 0,\"propValueClass\":'emphasized text-right',\"textClass\":'text-right',\"small\":true}}):_vm._e(),(_vm.element)?_c('element-prop-item',{attrs:{\"text\":_vm.$t('headers.sumhours'),\"propValue\":_vm.element.SumHours.value != null &&\n _vm.element.SumHours.value.toLocaleString(_vm.$i18n.locale, {\n maximumFractionDigits: 2,\n }),\"propValueClass\":'emphasized text-right',\"textClass\":'text-right',\"small\":true}}):_vm._e(),(_vm.element)?_c('element-prop-item',{attrs:{\"text\":_vm.$t('labels.material-cost'),\"propValue\":_vm.element.SumSelfCostMaterialsSubContractors.value &&\n _vm.element.SumSelfCostMaterialsSubContractors.value != null &&\n _vm.element.SumSelfCostMaterialsSubContractors.value.toLocaleString(\n _vm.$i18n.locale,\n {\n maximumFractionDigits: 0,\n }\n ),\"propValueClass\":'emphasized-orange text-right',\"textClass\":'text-right',\"small\":true}}):_vm._e(),(_vm.element)?_c('element-prop-item',{attrs:{\"text\":_vm.$t('layout.sidebar-gross-margin'),\"propValue\":_vm.element.SumMargin.value &&\n _vm.element.SumMargin.value != null &&\n _vm.element.SumMargin.value.toLocaleString(_vm.$i18n.locale, {\n maximumFractionDigits: 0,\n }),\"propValueClass\":'emphasized text-right',\"textClass\":'text-right'}}):_vm._e(),(_vm.element)?_c('element-prop-item',{attrs:{\"text\":_vm.$t('layout.sidebar-profit-margin'),\"propValue\":_vm.element.SumProfit &&\n _vm.element.SumProfit.value != null &&\n _vm.element.SumProfit.value.toLocaleString(_vm.$i18n.locale, {\n maximumFractionDigits: 0,\n }),\"propValueClass\":'emphasized-green text-right',\"textClass\":'text-right',\"small\":true}}):_vm._e(),(_vm.element)?_c('element-prop-item',{attrs:{\"text\":_vm.$t('layout.unit-price'),\"propValue\":_vm.element.UnitPrice &&\n _vm.element.UnitPrice.value != null &&\n _vm.element.UnitPrice.value.toLocaleString(_vm.$i18n.locale, {\n maximumFractionDigits: 0,\n }),\"propValueClass\":'emphasized text-right',\"textClass\":'text-right',\"small\":true}}):_vm._e(),(_vm.element)?_c('element-prop-item',{attrs:{\"text\":_vm.$t('headers.total'),\"propValue\":_vm.element.SumTotal.value != null &&\n _vm.element.SumTotal.value.toLocaleString(_vm.$i18n.locale, {\n maximumFractionDigits: 0,\n }),\"propValueClass\":'emphasized text-right',\"textClass\":'text-right ',\"small\":true}}):_vm._e(),_c('v-btn',{staticClass:\"ma-4\",attrs:{\"small\":\"\",\"color\":\"primary\",\"outlined\":\"\",\"to\":{\n path: _vm.PROJECT_CALCULATION_BUILDING_ELEMENT_PATH,\n query: { elementId: _vm.element.Id },\n }},on:{\"click\":function($event){$event.stopPropagation();return (function () { return _vm.traverseToElement(_vm.element.Id); }).apply(null, arguments)}}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.isolate'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\",\"small\":\"\"}},[_vm._v(\"mdi-circle-slice-8\")])],1),_c('v-icon',{staticClass:\"ma-4\",attrs:{\"color\":\"primary\"}},[_vm._v(\" $expand \")])],1)]},proxy:true}])},[_c('div',{staticClass:\"element-draggable\"},[_c('v-icon',{on:{\"mousedown\":function($event){$event.stopPropagation();}},nativeOn:{\"click\":function($event){$event.stopPropagation();}}},[_vm._v(\" mdi-drag-variant \")])],1),_c('v-menu',{attrs:{\"offset-y\":\"\"},nativeOn:{\"click\":function($event){$event.stopPropagation();}},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var attrs = ref.attrs;\n var on = ref.on;\nreturn [_c('v-icon',_vm._g(_vm._b({staticClass:\"color-picker\"},'v-icon',attrs,false),on),[_vm._v(\" mdi-palette \")])]}}])},[_c('v-list',{attrs:{\"dense\":\"\"}},[_c('v-list-item',{on:{\"click\":function($event){return _vm.changeColor(_vm.RowColorsElement.Default, _vm.element)}}},[_c('v-list-item-title',[_c('div',{staticClass:\"white-option\"})])],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.changeColor(_vm.RowColorsElement.Red, _vm.element)}}},[_c('v-list-item-title',[_c('div',{staticClass:\"red-option\"})])],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.changeColor(_vm.RowColorsElement.Green, _vm.element)}}},[_c('v-list-item-title',[_c('div',{staticClass:\"green-option\"})])],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.changeColor(_vm.RowColorsElement.Orange, _vm.element)}}},[_c('v-list-item-title',[_c('div',{staticClass:\"orange-option\"})])],1)],1)],1),_c('input',{staticClass:\"element-id\",attrs:{\"type\":\"hidden\"},domProps:{\"value\":_vm.element.Id}}),_c('v-row',{staticClass:\"element-props\",attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-text-field',{staticClass:\"name-field head\",attrs:{\"hide-details\":\"\",\"label\":_vm.$t('labels.name'),\"outlined\":\"\",\"dense\":\"\"},on:{\"change\":function($event){return _vm.registerElementBatchOperation(_vm.element, _vm.BatchType.Save)},\"focus\":function($event){return $event.target.select()}},nativeOn:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.element.Name),callback:function ($$v) {_vm.$set(_vm.element, \"Name\", $$v)},expression:\"element.Name\"}})],1),(_vm.productionLineEnabled)?_c('v-col',[_c('v-text-field',{staticClass:\"productionline-field head\",attrs:{\"hide-details\":\"\",\"outlined\":\"\",\"label\":_vm.$t('headers.productionline'),\"dense\":\"\"},on:{\"change\":function($event){return _vm.registerElementBatchOperation(_vm.element, _vm.BatchType.Save)},\"focus\":function($event){return $event.target.select()}},nativeOn:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.element.ProductionLine),callback:function ($$v) {_vm.$set(_vm.element, \"ProductionLine\", $$v)},expression:\"element.ProductionLine\"}})],1):_vm._e(),(_vm.amountEnabled)?_c('v-col',[_c('v-text-field',{staticClass:\"font-bold emphasized-primary amount-field head\",attrs:{\"value\":_vm.element.Amount,\"hide-details\":\"\",\"outlined\":\"\",\"label\":_vm.$t('labels.amount'),\"dense\":\"\",\"type\":\"number\"},on:{\"input\":function($event){_vm.element.Amount = $event !== '' ? Number($event) : null},\"change\":function($event){return _vm.registerAndNudge(_vm.element)},\"focus\":function($event){return $event.target.select()}},nativeOn:{\"click\":function($event){$event.stopPropagation();}}})],1):_vm._e(),(_vm.element.Factor1Calculated.value && _vm.factor1Enabled)?_c('v-col',[_c('v-text-field',{staticClass:\"emphasized-primary factor1-field head\",attrs:{\"value\":_vm.element.Factor1Calculated.value,\"hide-details\":\"\",\"outlined\":\"\",\"dense\":\"\",\"label\":_vm.$t('headers.factor1'),\"type\":\"number\"},on:{\"input\":function($event){_vm.element.Factor1Calculated.value =\n $event !== '' ? Number($event) : null},\"change\":function($event){return _vm.registerElementSaveChangesWithChildren(_vm.element)},\"focus\":function($event){return $event.target.select()}},nativeOn:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.element.Factor1Calculated.value),callback:function ($$v) {_vm.$set(_vm.element.Factor1Calculated, \"value\", _vm._n($$v))},expression:\"element.Factor1Calculated.value\"}})],1):_vm._e(),_c('v-col',[_c('v-select',{staticClass:\"unit-field head\",attrs:{\"hide-details\":\"\",\"dense\":\"\",\"outlined\":\"\",\"items\":_vm.NS3420Units,\"label\":_vm.$t('labels.unit')},nativeOn:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.element.Unit.value),callback:function ($$v) {_vm.$set(_vm.element.Unit, \"value\", $$v)},expression:\"element.Unit.value\"}})],1)],1),_c('v-row',{attrs:{\"dense\":\"\",\"justify\":\"center\"}},[_c('v-edit-dialog',{attrs:{\"return-value\":_vm.element.Comments,\"large\":\"\",\"save-text\":_vm.$t('buttons.save'),\"cancel-text\":_vm.$t('buttons.cancel')},on:{\"update:returnValue\":function($event){return _vm.$set(_vm.element, \"Comments\", $event)},\"update:return-value\":function($event){return _vm.$set(_vm.element, \"Comments\", $event)},\"save\":function($event){return _vm.registerElementBatchOperation(_vm.element, _vm.BatchType.Save)}},scopedSlots:_vm._u([{key:\"input\",fn:function(){return [_c('v-card',{attrs:{\"min-width\":\"400\",\"flat\":\"\"}},[_c('v-textarea',{staticClass:\"mt-5\",attrs:{\"label\":_vm.$t('labels.comment'),\"dense\":\"\",\"outlined\":\"\",\"auto-grow\":\"\"},on:{\"focus\":function($event){return $event.target.select()}},model:{value:(_vm.element.Comments),callback:function ($$v) {_vm.$set(_vm.element, \"Comments\", $$v)},expression:\"element.Comments\"}})],1)]},proxy:true}])},[_c('v-tooltip',{key:_vm.element.Name,attrs:{\"bottom\":\"\",\"max-width\":\"400\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"element-comment\",attrs:{\"icon\":\"\",\"small\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"color\":_vm.element.Comments ? 'secondary' : ''}},[_vm._v(_vm._s(_vm.element.Comments ? 'mdi-text-box' : 'mdi-text-box-plus'))])],1)]}}])},[_c('span',[_vm._v(_vm._s(_vm.element.Comments ? _vm.element.Comments : _vm.$t('info.add-comment')))])])],1)],1),(_vm.element.ElementWarnings && _vm.element.ElementWarnings.length > 0)?_c('element-warnings',{attrs:{\"warnings\":_vm.element.ElementWarnings}}):_vm._e()],1),_c('v-expansion-panel-content',{staticClass:\"building-element-content\"},[_c('v-row',{attrs:{\"dense\":\"\",\"align\":\"center\"}},[_vm._l((_vm.element.AdditionItems),function(additionItem){return _c('addition-item',{key:additionItem.Id,attrs:{\"additionItem\":additionItem,\"expanded\":_vm.element.IsExpanded ? _vm.element.IsExpanded : false,\"isSurface\":additionItem.Name !== 'Åpninger'}})}),_c('v-spacer'),_c('new-item',{attrs:{\"element\":_vm.element}}),_c('documentation',{attrs:{\"element\":_vm.element}}),(_vm.element.BuildingItems && _vm.element.BuildingItems.length > 0)?_c('v-btn',{staticClass:\"ma-2 white--text\",attrs:{\"small\":\"\",\"color\":\"primary\",\"outlined\":\"\"},on:{\"click\":function($event){return _vm.initPriceUpdate(_vm.element)}}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.price-update'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\",\"small\":\"\"}},[_vm._v(\"mdi-update\")])],1):_vm._e(),_c('add-to-library',{attrs:{\"element\":_vm.element}}),_c('delete-element',{attrs:{\"element\":_vm.element}})],2),(_vm.element.BuildingItems && _vm.element.BuildingItems.length > 0)?_c('v-divider'):_vm._e(),(_vm.element.BuildingItems && _vm.element.BuildingItems.length > 0)?_c('v-subheader',{staticClass:\"field-name items-subheader\"},[_vm._v(\" \"+_vm._s(_vm.$t('titles.building-items'))+\" \")]):_vm._e(),(_vm.element.BuildingItems && _vm.element.BuildingItems.length > 0)?_c('building-item',{attrs:{\"items\":_vm.element.BuildingItems,\"headers\":_vm.columns,\"calcElement\":_vm.element,\"search\":_vm.search,\"smallVariant\":_vm.smallVariant}}):_vm._e(),(_vm.updateProducts)?_c('price-update',{attrs:{\"active\":_vm.updateProducts,\"element\":_vm.element},on:{\"cancelUpdate\":_vm.cancelPriceUpdate}}):_vm._e()],1),_c('div',{staticClass:\"id-container\"},[_c('input',{attrs:{\"type\":\"hidden\"},domProps:{\"value\":_vm.element.Id}})])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"prop-container ma-2\"},[_c('div',[_c('div',{staticClass:\"pa-1 pt-0\",class:_vm.propValueClass},[_vm._v(\" \"+_vm._s(_vm.propValue)+\" \")]),_c('div',{staticClass:\"pa-1 pt-0 prop-label\",class:_vm.textClass,domProps:{\"textContent\":_vm._s(_vm.text)}})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\n\nexport default defineComponent({\n props: {\n propValue: {\n type: [String, Number],\n required: true,\n },\n propValueClass: {\n type: String,\n required: true,\n },\n text: {\n type: String,\n required: true,\n },\n textClass: {\n type: String,\n required: true,\n },\n small: {\n type: Boolean,\n },\n margin: {\n type: Boolean,\n },\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=5ebd5c44&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=5ebd5c44&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5ebd5c44\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.expanded)?_c('div',[_c('v-list-item',{class:(\"addition \" + (_vm.isSurface ? 'surface' : 'opening')),attrs:{\"color\":\"success\",\"dense\":\"\",\"flat\":\"\"}},[_c('div',{staticClass:\"addition-title font-weight-medium ma-2\"},[_vm._v(\" \"+_vm._s(_vm.$t((\"calculation.\" + (_vm.additionItem.Name.toLowerCase()))))+\" \")]),_c('v-text-field',{staticClass:\"mx-4\",attrs:{\"hide-details\":\"\",\"label\":_vm.$t('labels.amount'),\"dense\":\"\",\"type\":\"number\",\"outlined\":\"\"},on:{\"change\":function($event){return _vm.registerElementAndAdditionsChanges(\n _vm.additionItem.BuildingElement,\n _vm.BatchType.Save\n )},\"focus\":function($event){return $event.target.select()}},model:{value:(_vm.additionItem.AmountCalculated.value),callback:function ($$v) {_vm.$set(_vm.additionItem.AmountCalculated, \"value\", _vm._n($$v))},expression:\"additionItem.AmountCalculated.value\"}})],1)],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { AdditionItemCalculation } from '@/models/building-element/interfaces';\nimport { defineComponent, PropType } from '@vue/composition-api';\nimport { useBatch } from '@/modules/batch';\nimport { BatchType } from '@/constants/enum';\n\nexport default defineComponent({\n props: {\n additionItem: {\n type: Object as PropType,\n required: true,\n },\n expanded: {\n type: Boolean,\n required: true,\n },\n isSurface: {\n type: Boolean,\n required: true,\n },\n },\n setup() {\n const { registerElementAndAdditionsChanges } = useBatch();\n\n return {\n registerElementAndAdditionsChanges,\n BatchType,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=981ccf18&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=981ccf18&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"981ccf18\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VListItem,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-data-table',{class:_vm.elevated ? 'item-table elevation-2' : 'item-table',attrs:{\"headers\":_vm.headers,\"items\":_vm.items,\"hide-default-footer\":\"\",\"loading-text\":_vm.$t('info.loading'),\"no-data-text\":_vm.$t('info.no-data'),\"no-results-text\":_vm.$t('info.no-result'),\"item-class\":_vm.itemRowBackground,\"items-per-page\":30,\"item-key\":\"Id\"},scopedSlots:_vm._u([{key:\"body\",fn:function(){return [_c('draggable',{attrs:{\"list\":_vm.items,\"tag\":\"tbody\",\"disabled\":!_vm.allowDrag,\"handle\":\".item-draggable\"},on:{\"end\":_vm.onDropCallback}},_vm._l((_vm.items),function(item,index){return _c('data-table-row-handler',{key:index,attrs:{\"item\":item,\"headers\":_vm.headers,\"value\":item.Id,\"itemClass\":_vm.getRowColor(item)},scopedSlots:_vm._u([{key:\"item.sort-drag\",fn:function(ref){return [_c('div',{staticClass:\"item-draggable\"},[_c('v-icon',[_vm._v(\" mdi-drag-variant \")])],1)]}},{key:\"item.palette\",fn:function(ref){return [_c('div',[_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar attrs = ref.attrs;\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g(_vm._b({},'v-icon',attrs,false),on),[_vm._v(\" mdi-palette \")])]}}],null,true)},[_c('v-list',{attrs:{\"dense\":\"\"}},[_c('v-list-item',{on:{\"click\":function($event){return _vm.changeColor(_vm.RowColors.Default, item)}}},[_c('v-list-item-title',[_c('div',{staticClass:\"white-option\"})])],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.changeColor(_vm.RowColors.Red, item)}}},[_c('v-list-item-title',[_c('div',{staticClass:\"red-option\"})])],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.changeColor(_vm.RowColors.Green, item)}}},[_c('v-list-item-title',[_c('div',{staticClass:\"green-option\"})])],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.changeColor(_vm.RowColors.Orange, item)}}},[_c('v-list-item-title',[_c('div',{staticClass:\"orange-option\"})])],1)],1)],1)],1)]}},{key:\"item.Price\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-text-field',{attrs:{\"hide-details\":\"\",\"outlined\":\"\",\"dense\":\"\",\"type\":\"number\"},on:{\"change\":function($event){return _vm.registerItemSaveChangesWithAdditionAndParent(item)},\"focus\":function($event){return $event.target.select()}},model:{value:(item.Price),callback:function ($$v) {_vm.$set(item, \"Price\", _vm._n($$v))},expression:\"item.Price\"}})]}},{key:\"item.MileStone\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-text-field',{attrs:{\"hide-details\":\"\",\"outlined\":\"\",\"dense\":\"\"},on:{\"change\":function($event){return _vm.registerBuildingItemBatchOperation(item, _vm.BatchType.Save)},\"focus\":function($event){return $event.target.select()}},model:{value:(item.MileStone),callback:function ($$v) {_vm.$set(item, \"MileStone\", $$v)},expression:\"item.MileStone\"}})]}},{key:\"item.SurfaceAddition\",fn:function(ref){\nvar item = ref.item;\nreturn [(item.Unit && item.Unit === 'm2')?_c('v-text-field',{attrs:{\"hide-details\":\"\",\"outlined\":\"\",\"dense\":\"\",\"type\":\"number\"},on:{\"change\":function($event){return _vm.registerItemSaveChangesWithAdditionAndParent(item)},\"focus\":function($event){return $event.target.select()}},model:{value:(item.SurfaceAddition),callback:function ($$v) {_vm.$set(item, \"SurfaceAddition\", _vm._n($$v))},expression:\"item.SurfaceAddition\"}}):_vm._e()]}},{key:\"item.OpeningAddition\",fn:function(ref){\nvar item = ref.item;\nreturn [(item.Unit && item.Unit === 'm2')?_c('v-text-field',{attrs:{\"hide-details\":\"\",\"outlined\":\"\",\"dense\":\"\",\"type\":\"number\"},on:{\"change\":function($event){return _vm.registerItemSaveChangesWithAdditionAndParent(item)},\"focus\":function($event){return $event.target.select()}},model:{value:(item.OpeningAddition),callback:function ($$v) {_vm.$set(item, \"OpeningAddition\", _vm._n($$v))},expression:\"item.OpeningAddition\"}}):_vm._e()]}},(!_vm.simple)?{key:\"item.Name\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-tooltip',{staticClass:\"pa-2\",attrs:{\"bottom\":\"\",\"max-width\":\"750\",\"color\":\"primary\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-edit-dialog',{attrs:{\"return-value\":item.Name,\"large\":\"\",\"save-text\":_vm.$t('buttons.save'),\"cancel-text\":_vm.$t('buttons.cancel')},on:{\"update:returnValue\":function($event){return _vm.$set(item, \"Name\", $event)},\"update:return-value\":function($event){return _vm.$set(item, \"Name\", $event)},\"save\":function () { return _vm.registerBuildingItemBatchOperation(item, _vm.BatchType.Save); }},scopedSlots:_vm._u([{key:\"input\",fn:function(){return [_c('v-card',{attrs:{\"min-width\":\"450\",\"flat\":\"\"}},[_c('v-text-field',{staticClass:\"mt-5\",attrs:{\"value\":item.Name,\"label\":_vm.$t('labels.name'),\"outlined\":\"\"},on:{\"input\":function($event){item.Name = $event !== '' ? $event : null},\"focus\":function($event){return $event.target.select()}}})],1)]},proxy:true}],null,true)},[_c('div',_vm._g(_vm._b({},'div',attrs,false),on),[_c('div',{class:item.IsRecentlyAdded && item.IsRecentlyAdded\n ? 'recently-added'\n : 'emphasized'},[_vm._v(\" \"+_vm._s(item.Name)+\" \")]),_c('div',[_vm._v(_vm._s(item.PriceListItemName))])])])]}}],null,true)},[_c('div',{staticClass:\"info-tooltip\"},[_c('div',{staticClass:\"title white--text font-weight-bold\"},[_vm._v(\" \"+_vm._s(item.Name)+\" \")]),_c('v-divider',{staticClass:\"custom-divider\",attrs:{\"dark\":\"\"}}),_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{staticClass:\"white--text\",attrs:{\"cols\":\"4\"}},[_vm._v(_vm._s(_vm.$t('calculation.name-timebook')))]),_c('v-col',{staticClass:\"white--text\",attrs:{\"cols\":\"1\"}},[_vm._v(\":\")]),_c('v-col',{staticClass:\"white--text\",attrs:{\"cols\":\"7\"}},[_vm._v(_vm._s(item.TimeEstimateName ? item.TimeEstimateName : _vm.$t('common.unset')))]),_c('v-col',{staticClass:\"white--text\",attrs:{\"cols\":\"4\"}},[_vm._v(_vm._s(_vm.$t('calculation.name-pricelist')))]),_c('v-col',{staticClass:\"white--text\",attrs:{\"cols\":\"1\"}},[_vm._v(\":\")]),_c('v-col',{staticClass:\"white--text\",attrs:{\"cols\":\"7\"}},[_vm._v(_vm._s(item.PriceListItemName ? item.PriceListItemName : _vm.$t('common.unset')))]),_c('v-col',{staticClass:\"white--text\",attrs:{\"cols\":\"4\"}},[_vm._v(_vm._s(_vm.$t('calculation.marked-precut')))]),_c('v-col',{staticClass:\"white--text\",attrs:{\"cols\":\"1\"}},[_vm._v(\":\")]),_c('v-col',{staticClass:\"white--text\",attrs:{\"cols\":\"7\"}},[_vm._v(_vm._s(item.Precut ? _vm.$t('common.yes') : _vm.$t('common.no')))])],1)],1)])]}}:null,(!_vm.simple)?{key:\"item.Amount\",fn:function(ref){\n var item = ref.item;\nreturn [_c('v-slide-y-transition',[_c('v-text-field',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.amountTransition),expression:\"amountTransition\"}],attrs:{\"value\":item.AmountCalculated.value,\"hide-details\":\"\",\"outlined\":\"\",\"dense\":\"\",\"type\":\"number\"},on:{\"input\":function($event){item.AmountCalculated.value =\n $event !== '' ? Number($event) : null},\"change\":function($event){return _vm.registerItemSaveChangesWithAdditionAndParent(item)},\"focus\":function($event){return $event.target.select()}}})],1)]}}:null,{key:\"item.DeliveryOrder\",fn:function(ref){\n var item = ref.item;\nreturn [_c('v-text-field',{attrs:{\"value\":item.DeliveryOrder,\"hide-details\":\"\",\"outlined\":\"\",\"dense\":\"\",\"type\":\"number\"},on:{\"input\":function($event){item.DeliveryOrder = $event !== '' ? Number($event) : null},\"change\":function($event){return _vm.registerBuildingItemBatchOperation(item, _vm.BatchType.Save)},\"focus\":function($event){return $event.target.select()}}})]}},{key:\"item.Status\",fn:function(ref){\n var item = ref.item;\nreturn [_c('building-item-status',{attrs:{\"buildingItemCalc\":item}})]}},{key:\"item.Precut\",fn:function(ref){\n var item = ref.item;\nreturn [(item.Precut)?_c('v-icon',{attrs:{\"color\":\"error\"}},[_vm._v(\"mdi-alpha-p\")]):_c('div')]}},{key:\"item.AmountOfMaterials\",fn:function(ref){\n var item = ref.item;\nreturn [(item.AmountOfMaterials.value !== null)?_c('div',[_vm._v(\" \"+_vm._s(item.AmountOfMaterials.value.toLocaleString(_vm.$i18n.locale, { maximumFractionDigits: 2, }))+\" \")]):_vm._e()]}},(!_vm.simple)?{key:\"item.BaseTime\",fn:function(ref){\n var item = ref.item;\nreturn [_c('v-text-field',{attrs:{\"hide-details\":\"\",\"dense\":\"\",\"outlined\":\"\",\"type\":\"number\",\"width\":\"50px\"},on:{\"change\":function($event){return _vm.registerItemSaveChangesWithAdditionAndParent(item)},\"focus\":function($event){return $event.target.select()}},scopedSlots:_vm._u([(!_vm.smallVariant)?{key:\"append\",fn:function(){return [(item.IsTimeEstimateAdded.value === true)?_c('v-tooltip',{key:item.Name,attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({attrs:{\"color\":\"#424143\"}},'v-icon',attrs,false),on),[_vm._v(\"mdi-timer-outline\")])]}}],null,true)},[_c('span',[_vm._v(_vm._s(_vm.$t('info.timebook')))])]):_vm._e()]},proxy:true}:null],null,true),model:{value:(item.BaseTime),callback:function ($$v) {_vm.$set(item, \"BaseTime\", _vm._n($$v))},expression:\"item.BaseTime\"}})]}}:null,{key:\"item.AmountAdjustment\",fn:function(ref){\n var item = ref.item;\nreturn [_c('div',[_c('v-text-field',{staticClass:\"emphasized-orange\",attrs:{\"hide-details\":\"\",\"outlined\":\"\",\"dense\":\"\",\"type\":\"number\"},on:{\"change\":function($event){return _vm.onBuildingItemAdjustmentChange(item)},\"focus\":function($event){return $event.target.select()}},model:{value:(item.AmountAdjustment),callback:function ($$v) {_vm.$set(item, \"AmountAdjustment\", _vm._n($$v))},expression:\"item.AmountAdjustment\"}})],1)]}},{key:\"item.UnitForOrder\",fn:function(ref){\n var item = ref.item;\nreturn [_c('div',[_c('v-text-field',{attrs:{\"hide-details\":\"\",\"outlined\":\"\",\"dense\":\"\"},on:{\"change\":function($event){return _vm.registerBuildingItemBatchOperation(item, _vm.BatchType.Save)},\"focus\":function($event){return $event.target.select()}},model:{value:(item.UnitForOrder),callback:function ($$v) {_vm.$set(item, \"UnitForOrder\", $$v)},expression:\"item.UnitForOrder\"}})],1)]}},(!_vm.simple)?{key:\"item.Unit\",fn:function(ref){\n var item = ref.item;\nreturn [_c('v-select',{attrs:{\"hide-details\":\"\",\"dense\":\"\",\"outlined\":\"\",\"items\":_vm.NS3420Units},on:{\"change\":function($event){return _vm.registerBuildingItemBatchOperation(item, _vm.BatchType.Save)}},model:{value:(item.Unit),callback:function ($$v) {_vm.$set(item, \"Unit\", $$v)},expression:\"item.Unit\"}})]}}:null,{key:\"item.SumSelfCostMaterialsSubContractors\",fn:function(ref){\n var item = ref.item;\nreturn [(item.SumSelfCostMaterialsSubContractors.value !== null)?_c('div',[_vm._v(\" \"+_vm._s(item.SumSelfCostMaterialsSubContractors.value.toLocaleString( _vm.$i18n.locale, { maximumFractionDigits: 0, } ))+\" \")]):_vm._e()]}},{key:\"item.Factor7\",fn:function(ref){\n var item = ref.item;\nreturn [(item.Factor7.value !== null)?_c('div',[_vm._v(\" \"+_vm._s(item.Factor7.value.toLocaleString(_vm.$i18n.locale, { maximumFractionDigits: 0, }))+\" \")]):_vm._e()]}},{key:\"item.ProjectCost\",fn:function(ref){\n var item = ref.item;\nreturn [(item.ProjectCost.value !== null)?_c('div',[_vm._v(\" \"+_vm._s(item.ProjectCost.value.toLocaleString(_vm.$i18n.locale, { maximumFractionDigits: 0, }))+\" \")]):_vm._e()]}},{key:\"item.UnitPriceMaterials\",fn:function(ref){\n var item = ref.item;\nreturn [(item.UnitPriceMaterials.value !== null)?_c('div',[_vm._v(\" \"+_vm._s(typeof item.UnitPriceMaterials.value === 'number' ? item.UnitPriceMaterials.value.toLocaleString(_vm.$i18n.locale, { maximumFractionDigits: 1, }) : 0)+\" \")]):_vm._e()]}},{key:\"item.SumMaterialsUE\",fn:function(ref){\n var item = ref.item;\nreturn [(item.SumMaterialsUE.value !== null)?_c('div',[_vm._v(\" \"+_vm._s(item.SumMaterialsUE.value.toLocaleString(_vm.$i18n.locale, { maximumFractionDigits: 0, }))+\" \")]):_vm._e()]}},(!_vm.simple)?{key:\"item.SumHours\",fn:function(ref){\n var item = ref.item;\nreturn [(item.SumHours.value !== null)?_c('div',[_vm._v(\" \"+_vm._s(item.SumHours.value.toLocaleString(_vm.$i18n.locale, { maximumFractionDigits: 2, }))+\" \")]):_vm._e()]}}:null,(!_vm.simple)?{key:\"item.SumTime\",fn:function(ref){\n var item = ref.item;\nreturn [(item.SumTime.value !== null)?_c('div',[_vm._v(\" \"+_vm._s(item.SumTime.value.toLocaleString(_vm.$i18n.locale, { maximumFractionDigits: 2, }))+\" \")]):_vm._e()]}}:null,{key:\"item.SumTotal\",fn:function(ref){\n var item = ref.item;\nreturn [(item.SumTotal.value !== null)?_c('div',{staticClass:\"font-weight-medium\"},[_vm._v(\" \"+_vm._s(item.SumTotal.value.toLocaleString(_vm.$i18n.locale, { maximumFractionDigits: 0, }))+\" \")]):_vm._e()]}},{key:\"item.SumTotalWithAdditions\",fn:function(ref){\n var item = ref.item;\nreturn [(item.SumTotalWithAdditions.value !== null)?_c('div',{staticClass:\"font-weight-medium\"},[_vm._v(\" \"+_vm._s(item.SumTotalWithAdditions.value.toLocaleString(_vm.$i18n.locale, { maximumFractionDigits: 0, }))+\" \")]):_vm._e()]}},{key:\"item.UnitPrice\",fn:function(ref){\n var item = ref.item;\nreturn [(item.UnitPrice.value !== null)?_c('div',[_vm._v(\" \"+_vm._s(item.UnitPrice.value.toLocaleString(_vm.$i18n.locale, { maximumFractionDigits: 2, }))+\" \")]):_vm._e()]}},{key:\"item.UnitPriceWithAdditions\",fn:function(ref){\n var item = ref.item;\nreturn [(item.UnitPriceWithAdditions.value !== null)?_c('div',[_vm._v(\" \"+_vm._s(item.UnitPriceWithAdditions.value.toLocaleString(_vm.$i18n.locale, { maximumFractionDigits: 2, }))+\" \")]):_vm._e()]}},{key:\"item.Factor1\",fn:function(ref){\n var item = ref.item;\nreturn [_c('v-text-field',{staticClass:\"emphasized-primary\",attrs:{\"value\":item.Factor1Calculated.value,\"hide-details\":\"\",\"outlined\":\"\",\"dense\":\"\",\"type\":\"number\"},on:{\"input\":function($event){item.Factor1Calculated.value =\n $event !== '' ? Number($event) : null},\"change\":function($event){return _vm.registerItemSaveChangesWithAdditionAndParent(item)},\"focus\":function($event){return $event.target.select()}}})]}},{key:\"item.Factor2\",fn:function(ref){\n var item = ref.item;\nreturn [(item.Factor2.value !== null)?_c('div',[_vm._v(\" \"+_vm._s(item.Factor2.value.toLocaleString(_vm.$i18n.locale, { maximumFractionDigits: 0, }))+\" \")]):_vm._e()]}},{key:\"item.Factor3\",fn:function(ref){\n var item = ref.item;\nreturn [(item.Factor3.value !== null)?_c('div',[_vm._v(\" \"+_vm._s(item.Factor3.value.toLocaleString(_vm.$i18n.locale, { maximumFractionDigits: 0, }))+\" \")]):_vm._e()]}},{key:\"item.Factor4\",fn:function(ref){\n var item = ref.item;\nreturn [(item.Factor4.value !== null)?_c('div',[_vm._v(\" \"+_vm._s(item.Factor4.value.toLocaleString(_vm.$i18n.locale, { maximumFractionDigits: 0, }))+\" \")]):_vm._e()]}},{key:\"item.Factor6\",fn:function(ref){\n var item = ref.item;\nreturn [(item.Factor6.value !== null)?_c('div',[_vm._v(\" \"+_vm._s(item.Factor6.value.toLocaleString(_vm.$i18n.locale, { maximumFractionDigits: 0, }))+\" \")]):_vm._e()]}},{key:\"item.SumProductionSalary\",fn:function(ref){\n var item = ref.item;\nreturn [(item.SumProductionSalary.value !== null)?_c('div',[_vm._v(\" \"+_vm._s(item.SumProductionSalary.value.toLocaleString(_vm.$i18n.locale, { maximumFractionDigits: 0, }))+\" \")]):_vm._e()]}},{key:\"item.SumSelfCostSalaryAndExpenses\",fn:function(ref){\n var item = ref.item;\nreturn [(item.SumSelfCostSalaryAndExpenses.value !== null)?_c('div',[_vm._v(\" \"+_vm._s(item.SumSelfCostSalaryAndExpenses.value.toLocaleString( _vm.$i18n.locale, { maximumFractionDigits: 0, } ))+\" \")]):_vm._e()]}},{key:\"item.SumSalaryAndSocialCost\",fn:function(ref){\n var item = ref.item;\nreturn [(item.SumSalaryAndSocialCost.value !== null)?_c('div',[_vm._v(\" \"+_vm._s(item.SumSalaryAndSocialCost.value.toLocaleString(_vm.$i18n.locale, { maximumFractionDigits: 0, }))+\" \")]):_vm._e()]}},{key:\"item.SumSalaryAndExpenses\",fn:function(ref){\n var item = ref.item;\nreturn [(item.SumSalaryAndExpenses.value !== null)?_c('div',[_vm._v(\" \"+_vm._s(item.SumSalaryAndExpenses.value.toLocaleString(_vm.$i18n.locale, { maximumFractionDigits: 0, }))+\" \")]):_vm._e()]}},{key:\"item.TimePrUnit\",fn:function(ref){\n var item = ref.item;\nreturn [(item.TimePrUnit.value !== null)?_c('div',[_vm._v(\" \"+_vm._s(item.TimePrUnit.value.toLocaleString(_vm.$i18n.locale, { maximumFractionDigits: 2, }))+\" \")]):_vm._e()]}},{key:\"item.AmountPrUnit\",fn:function(ref){\n var item = ref.item;\nreturn [_c('v-text-field',{attrs:{\"hide-details\":\"\",\"outlined\":\"\",\"dense\":\"\",\"type\":\"number\"},on:{\"change\":function($event){return _vm.registerItemSaveChangesWithAdditionAndParent(item)},\"focus\":function($event){return $event.target.select()}},model:{value:(item.AmountPrUnit),callback:function ($$v) {_vm.$set(item, \"AmountPrUnit\", _vm._n($$v))},expression:\"item.AmountPrUnit\"}})]}},{key:\"item.NOBBNumber\",fn:function(ref){\n var item = ref.item;\nreturn [_c('div',[_c('v-text-field',{attrs:{\"hide-details\":\"\",\"outlined\":\"\",\"dense\":\"\",\"type\":\"number\"},on:{\"change\":function($event){return _vm.registerBuildingItemBatchOperation(item, _vm.BatchType.Save)},\"focus\":function($event){return $event.target.select()}},model:{value:(item.NOBBNumber),callback:function ($$v) {_vm.$set(item, \"NOBBNumber\", _vm._n($$v))},expression:\"item.NOBBNumber\"}})],1)]}},{key:\"item.IsFDVExportSelected\",fn:function(ref){\n var item = ref.item;\nreturn [_c('v-row',[_c('v-spacer'),_c('v-checkbox',{attrs:{\"dense\":\"\",\"hide-details\":\"\"},on:{\"change\":function($event){return _vm.registerBuildingItemBatchOperation(item, _vm.BatchType.Save)}},model:{value:(item.IsFDVExportSelected),callback:function ($$v) {_vm.$set(item, \"IsFDVExportSelected\", $$v)},expression:\"item.IsFDVExportSelected\"}}),_c('v-spacer')],1)]}},{key:\"item.SumMargin\",fn:function(ref){\n var item = ref.item;\nreturn [(item.SumMargin.value !== null)?_c('div',[_vm._v(\" \"+_vm._s(item.SumMargin.value.toLocaleString(_vm.$i18n.locale, { maximumFractionDigits: 0, }))+\" \")]):_vm._e()]}},{key:\"item.warnings\",fn:function(ref){\n var item = ref.item;\nreturn [(item.ItemWarnings && item.ItemWarnings.length > 0)?_c('item-warnings',{attrs:{\"warnings\":item.ItemWarnings,\"calm\":true}}):_vm._e()]}},{key:\"item.Comments\",fn:function(ref){\n var item = ref.item;\nreturn [_c('v-row',{attrs:{\"dense\":\"\",\"justify\":\"center\"}},[_c('v-edit-dialog',{attrs:{\"return-value\":item.Comments,\"large\":\"\",\"save-text\":_vm.$t('buttons.save'),\"cancel-text\":_vm.$t('buttons.cancel')},on:{\"update:returnValue\":function($event){return _vm.$set(item, \"Comments\", $event)},\"update:return-value\":function($event){return _vm.$set(item, \"Comments\", $event)},\"save\":function($event){return _vm.registerBuildingItemBatchOperation(item, _vm.BatchType.Save)}},scopedSlots:_vm._u([{key:\"input\",fn:function(){return [_c('v-card',{attrs:{\"min-width\":\"400\",\"flat\":\"\"}},[_c('v-textarea',{staticClass:\"mt-5\",attrs:{\"label\":_vm.$t('labels.comment'),\"dense\":\"\",\"outlined\":\"\",\"auto-grow\":\"\"},on:{\"focus\":function($event){return $event.target.select()}},model:{value:(item.Comments),callback:function ($$v) {_vm.$set(item, \"Comments\", $$v)},expression:\"item.Comments\"}})],1)]},proxy:true}],null,true)},[_c('v-tooltip',{key:item.Name,attrs:{\"bottom\":\"\",\"max-width\":\"450\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"ma-1\",attrs:{\"icon\":\"\",\"small\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"color\":item.Comments ? 'secondary' : ''}},[_vm._v(_vm._s(item.Comments ? 'mdi-text-box' : 'mdi-text-box-plus'))])],1)]}}],null,true)},[_c('span',[_vm._v(_vm._s(item.Comments ? item.Comments : _vm.$t('info.add-comment')))])])],1)],1)]}},{key:\"item.Actions\",fn:function(ref){\n var item = ref.item;\nreturn [_c('v-row',{staticClass:\"item-id-container\",attrs:{\"justify\":\"center\",\"dense\":\"\"}},[_c('input',{attrs:{\"type\":\"hidden\"},domProps:{\"value\":item.Id}}),_c('v-menu',{ref:\"itemMenu\",refInFor:true,attrs:{\"close-on-content-click\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var menu = ref.on;\n var attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\"}},'v-btn',attrs,false),Object.assign({}, menu)),[_c('v-icon',{attrs:{\"color\":\"primary\"}},[_vm._v(\"mdi-dots-vertical\")])],1)]}}],null,true)},[_c('v-list',{attrs:{\"dense\":\"\"}},[_c('v-list-item-group',{attrs:{\"color\":\"primary\"}},[_c('get-product',{attrs:{\"isMenuOption\":true,\"itemCalc\":item},on:{\"product\":_vm.findItems,\"close\":_vm.closeMenu}}),(!item.Precut)?_c('edit-time-estimate',{attrs:{\"item\":item,\"element\":_vm.calcElement},on:{\"close\":_vm.closeMenu}}):_vm._e(),(\n item.IsTimeEstimateAdded.value === true && !item.Precut\n )?_c('remove-time-estimate',{attrs:{\"item\":item},on:{\"updated\":function($event){return _vm.registerBuildingItemBatchOperation(item, _vm.BatchType.Save)},\"close\":_vm.closeMenu}}):_vm._e(),(!item.Precut)?_c('set-precut',{attrs:{\"item\":item,\"isMenuitem\":true},on:{\"close\":_vm.closeMenu}}):_c('remove-precut',{attrs:{\"item\":item,\"isMenuitem\":true},on:{\"close\":_vm.closeMenu}}),_c('add-item-to-library',{attrs:{\"item\":item},on:{\"close\":_vm.closeMenu}}),_c('delete-item',{attrs:{\"item\":item,\"isMenuitem\":true},on:{\"close\":_vm.closeMenu}}),_c('v-divider'),(item.NOBBNumber)?_c('nobb-info',{attrs:{\"nobbNr\":item.NOBBNumber},on:{\"close\":_vm.closeMenu}}):_vm._e(),_c('replace-products',{attrs:{\"itemCalcs\":_vm.sameProduct},on:{\"closeEvent\":_vm.closeEvent,\"replaceAll\":_vm.replaceAll}})],1)],1)],1)],1)]}}],null,true)})}),1)]},proxy:true},_vm._l((_vm.headers),function(h){return {key:(\"header.\" + (h.value)),fn:function(ref){return [_c('v-row',{key:h.text,attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-tooltip',{key:h.value,attrs:{\"bottom\":\"\",\"max-width\":\"350\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\nreturn [(h.text)?_c('span',_vm._g({},on),[_vm._v(\" \"+_vm._s(_vm.$t((\"headers.\" + (h.text.toLowerCase()))))+\" \")]):_vm._e()]}}],null,true)},[(h.text)?_c('span',[_vm._v(_vm._s(_vm.$t((\"headers-description.\" + (h.text.toLowerCase())))))]):_vm._e()])],1),_c('v-row',{attrs:{\"align-content\":\"center\",\"dense\":\"\"}},[_c('v-spacer'),_c('div',{class:_vm.getElementTotalTypography(h.text)},[_vm._v(\" \"+_vm._s(_vm.getElementTotalByProp(h.text, _vm.calcElement))+\" \")]),_c('v-spacer')],1)],1)]}}})],null,true)})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"retain-focus\":false},on:{\"click:outside\":_vm.close},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [(_vm.iconButton && _vm.item.IsTimeEstimateAdded.value)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar onEdit = ref.on;\nvar attrsEdit = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"color\":\"orange\",\"icon\":\"\"}},'v-btn',Object.assign({}, attrs, attrsEdit),false),Object.assign({}, on, onEdit)),[_c('v-icon',[_vm._v(\"mdi-timer-outline\")])],1)]}}],null,true)},[_c('span',[_vm._v(_vm._s(_vm.$t('calculation.edit-time')))])]):(_vm.iconButton && !_vm.item.IsTimeEstimateAdded.value)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar onAdd = ref.on;\nvar attrsAdd = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"color\":\"secondary\",\"icon\":\"\"}},'v-btn',Object.assign({}, attrs, attrsAdd),false),Object.assign({}, on, onAdd)),[_c('v-icon',[_vm._v(\"mdi-clock-plus-outline\")])],1)]}}],null,true)},[_c('span',[_vm._v(_vm._s(_vm.$t('calculation.add-time')))])]):(_vm.item.IsTimeEstimateAdded.value)?_c('v-list-item',_vm._g(_vm._b({attrs:{\"color\":\"orange\"}},'v-list-item',attrs,false),on),[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('calculation.edit-time')))]),_c('v-list-item-icon',[_c('v-icon',{attrs:{\"right\":\"\",\"color\":\"orange\"}},[_vm._v(\"mdi-timer-outline\")])],1)],1):_c('v-list-item',_vm._g(_vm._b({attrs:{\"color\":\"secondary\"}},'v-list-item',attrs,false),on),[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('calculation.add-time')))]),_c('v-list-item-icon',[_c('v-icon',{attrs:{\"right\":\"\",\"color\":\"secondary\"}},[_vm._v(\"mdi-clock-plus-outline\")])],1)],1)]}}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',{attrs:{\"flat\":\"\",\"tile\":\"\"}},[_c('dialog-title',{attrs:{\"headerText\":_vm.$t('common.timebook')},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":_vm.close}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)]},proxy:true}])}),_c('v-card-text',[_c('time-estimates',{attrs:{\"searchKey\":_vm.item.TimeEstimateName},on:{\"selectedEstimate\":_vm.selectedEvent}}),(_vm.estimate)?_c('confirm',{attrs:{\"value\":_vm.confirmDialog,\"customClose\":true},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('info.new-name'))+\" \")]},proxy:true},{key:\"text\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('info.overwrite-name', { old: _vm.item.Name, new: _vm.estimate.Name }))+\" \")]},proxy:true},{key:\"accept\",fn:function(){return [_c('v-btn',{attrs:{\"color\":\"secondary\",\"width\":\"80\"},on:{\"click\":_vm.confirm}},[_vm._v(_vm._s(_vm.$t('buttons.yes'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-check\")])],1),_c('v-btn',{attrs:{\"width\":\"80\"},on:{\"click\":_vm.deny}},[_vm._v(_vm._s(_vm.$t('buttons.no'))),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-close\")])],1)]},proxy:true}],null,false,630570357)}):_vm._e()],1),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{staticClass:\"ma-2\",on:{\"click\":_vm.close}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.cancel'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-close\")])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{attrs:{\"flat\":\"\",\"tile\":\"\",\"loading\":_vm.loading}},[_c('v-toolbar',{attrs:{\"flat\":\"\"}},[_c('span',{staticClass:\"subheader\"},[_vm._v(_vm._s(_vm.$t('titles.add-from-timebook')))]),_c('v-spacer'),_c('v-checkbox',{staticClass:\"toggle-exclude\",attrs:{\"dense\":\"\",\"hide-details\":\"\",\"label\":_vm.$t('labels.show-all')},model:{value:(_vm.excludeItems),callback:function ($$v) {_vm.excludeItems=$$v},expression:\"excludeItems\"}}),_c('v-text-field',{staticClass:\"estimate-search .d-none .d-sm-flex\",attrs:{\"append-icon\":\"mdi-magnify\",\"label\":_vm.$t('labels.search-estimates'),\"single-line\":\"\",\"hide-details\":\"\",\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}}),_c('profession',{attrs:{\"code\":_vm.projectCalculation &&\n _vm.projectCalculation.Profession.Code &&\n _vm.projectCalculation.Profession.Code.toString()}})],1),_c('perfect-scrollbar',{attrs:{\"options\":{\n suppressScrollX: true,\n }}},[(_vm.filteredCategories)?_c('v-card-text',{staticClass:\"edit-content\"},[_c('v-expansion-panels',{attrs:{\"tile\":\"\",\"value\":_vm.expanded}},_vm._l((_vm.filteredCategories),function(category){return _c('v-expansion-panel',{key:category.Name},[_c('v-expansion-panel-header',{staticClass:\"estimate-header\"},[_c('v-row',{staticClass:\"category-props\",attrs:{\"dense\":\"\"}},[_c('v-col',[_vm._v(\" \"+_vm._s(((category.NS3420) + \" - \" + (category.Name) + \" (\" + (category.Estimates.length) + \")\"))+\" \")])],1)],1),_c('v-expansion-panel-content',{staticClass:\"estimate-content\"},[_c('v-data-table',{staticClass:\"estimates\",attrs:{\"headers\":_vm.ESTIMATE_HEADERS,\"items\":category.Estimates,\"search\":_vm.excludeItems ? '' : _vm.search,\"sort-by\":\"Name\",\"loading-text\":_vm.$t('info.loading'),\"items-per-page\":1000,\"no-data-text\":_vm.$t('info.no-data'),\"hide-default-footer\":\"\",\"no-results-text\":_vm.$t('info.no-result')},scopedSlots:_vm._u([_vm._l((_vm.ESTIMATE_HEADERS),function(h){return {key:(\"header.\" + (h.value)),fn:function(ref){return [_c('v-tooltip',{key:h.text,attrs:{\"bottom\":\"\",\"max-width\":\"350\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\nreturn [(h.text)?_c('span',_vm._g({staticStyle:{\"max-width\":\"90px\"}},on),[_vm._v(\" \"+_vm._s(_vm.$t((\"headers.\" + (h.text.toLowerCase()))))+\" \")]):_vm._e()]}}],null,true)},[(h.text)?_c('span',[_vm._v(_vm._s(_vm.$t((\"headers-description.\" + (h.text.toLowerCase())))))]):_vm._e()])]}}}),{key:\"item.Name\",fn:function(ref){\n var item = ref.item;\nreturn [_c('span',[_vm._v(_vm._s(item.Name))]),(category.Description)?_c('v-tooltip',{attrs:{\"bottom\":\"\",\"max-width\":\"400px\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"ma-2 white--text\",attrs:{\"icon\":\"\",\"small\":\"\",\"color\":\"info\"}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"mdi-information-outline\")])],1)]}}],null,true)},[_c('span',[_vm._v(_vm._s((\"\" + (category.Description))))])]):_vm._e()]}},{key:\"item.actions\",fn:function(ref){\n var item = ref.item;\nreturn [_c('v-btn',{attrs:{\"outlined\":\"\",\"color\":\"secondary\",\"small\":\"\"},on:{\"click\":function($event){return _vm.itemSelected(item)}}},[_vm._v(_vm._s(_vm.$t('buttons.add')))])]}}],null,true)})],1)],1)}),1)],1):_vm._e()],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { isSuccess } from '@/helpers/common';\nimport { CustomError } from '@/models/common/interfaces';\nimport {\n TimeEstimate,\n TimeEstimateCategory,\n} from '@/models/time-estimate/interface';\nimport { reactive, toRefs } from '@vue/composition-api';\nimport { useApi } from './api';\nimport { useErrorModal } from './error';\nimport { useSnackbar } from './snackbar';\ninterface State {\n error?: CustomError;\n}\n\nconst state = reactive({\n error: undefined,\n});\n\nexport const useTimeEstimate = () => {\n const { snack } = useSnackbar();\n const { errorModal } = useErrorModal();\n\n const getTimeEstimateCategories = async (\n professionCode: string\n ): Promise | undefined> => {\n if (!professionCode) return;\n\n const { get } = useApi(`/timeestimates/profession/${professionCode}`);\n let categories: Array | undefined = undefined;\n\n try {\n const response = await get();\n if (isSuccess(response.status)) {\n categories = response.data;\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n\n return categories;\n };\n\n const findAllEstimatesInCategory = (\n category: TimeEstimateCategory\n ): Array => {\n let categoryEstimates: Array = category.Estimates;\n\n if (category.Categories && category.Categories.length > 0) {\n category.Categories.forEach(cat => {\n categoryEstimates = categoryEstimates.concat(cat.Estimates);\n });\n }\n\n return categoryEstimates;\n };\n\n const buildEstimates = async (categories: Array) => {\n categories.forEach(category => {\n category.Estimates = findAllEstimatesInCategory(category);\n });\n };\n\n return {\n getTimeEstimateCategories,\n buildEstimates,\n ...toRefs(state),\n };\n};\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, onMounted, ref, watch } from '@vue/composition-api';\nimport { useCalculation } from '@/modules/calculation';\nimport { useTimeEstimate } from '@/modules/time-estimate';\nimport {\n TimeEstimate,\n TimeEstimateCategory,\n} from '@/models/time-estimate/interface';\nimport { cleanSource, getIconByProfessionCode } from '@/helpers/common';\nimport { ESTIMATE_HEADERS } from '@/constants/table-headers';\nimport Profession from '@/components/profession/index.vue';\n\nexport default defineComponent({\n props: {\n searchKey: {\n type: String,\n },\n },\n components: {\n Profession,\n },\n setup(props, { emit }) {\n const { projectCalculation } = useCalculation();\n const { getTimeEstimateCategories, buildEstimates } = useTimeEstimate();\n\n const loading = ref(false);\n const categories = ref>();\n const filteredCategories = ref>();\n const search = ref('');\n const expanded = ref();\n const excludeItems = ref(false);\n\n onMounted(async () => {\n if (projectCalculation.value?.Profession?.Code) {\n categories.value = await getTimeEstimateCategories(\n projectCalculation.value.Profession.Code\n );\n if (categories.value) {\n buildEstimates(categories.value);\n filteredCategories.value = cleanSource(categories.value ?? []);\n }\n\n search.value = props.searchKey ?? '';\n }\n });\n\n watch([search], () => {\n if (categories.value) {\n filteredCategories.value = categories.value.filter(\n cat =>\n (cat.NS3420 && cat.NS3420.includes(search.value.toUpperCase())) ||\n (cat.Name && cat.Name.includes(search.value.toUpperCase())) ||\n cat.Estimates.find(e =>\n e.Name.toUpperCase().includes(search.value.toUpperCase())\n )\n );\n\n if (filteredCategories.value.length > 0) {\n expanded.value = 0;\n }\n }\n });\n\n const itemSelected = (estimate: TimeEstimate) => {\n emit('selectedEstimate', estimate);\n };\n\n return {\n close,\n getIconByProfessionCode,\n itemSelected,\n loading,\n filteredCategories,\n expanded,\n excludeItems,\n search,\n ESTIMATE_HEADERS,\n projectCalculation,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=156c8a73&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=156c8a73&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"156c8a73\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VExpansionPanel } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelContent } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelHeader } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanels } from 'vuetify/lib/components/VExpansionPanel';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCard,VCardText,VCheckbox,VCol,VDataTable,VExpansionPanel,VExpansionPanelContent,VExpansionPanelHeader,VExpansionPanels,VIcon,VRow,VSpacer,VTextField,VToolbar,VTooltip})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { ref, defineComponent, PropType, computed } from '@vue/composition-api';\nimport { BuildingItemCalculation } from '@/models/building-element/interfaces';\nimport TimeEstimates from '@/components/time-estimate/index.vue';\nimport DialogTitle from '@/components/common/dialog-title/index.vue';\nimport { TimeEstimate } from '@/models/time-estimate/interface';\nimport { useBuildingItem } from '@/modules/building-item';\nimport Confirm from '@/components/common/confirm/index.vue';\n\nexport default defineComponent({\n components: {\n TimeEstimates,\n DialogTitle,\n Confirm,\n },\n props: {\n item: {\n type: Object as PropType,\n required: true,\n },\n iconButton: {\n type: Boolean,\n },\n },\n setup(props, { emit }) {\n const dialog = ref(false);\n const confirmDialog = ref(false);\n const estimate = ref();\n const overwriteName = ref(true);\n const userConfirm = ref(false);\n const loading = ref(false);\n\n const { upsertTimeEstimate } = useBuildingItem();\n\n const valid = computed(() => {\n let ok = false;\n if (estimate.value) {\n ok = true;\n }\n return ok;\n });\n\n const upsertTime = async () => {\n if (estimate.value) {\n loading.value = true;\n await upsertTimeEstimate(\n estimate.value,\n props.item,\n overwriteName.value\n );\n emit('updated', true);\n loading.value = false;\n }\n };\n\n const close = () => {\n userConfirm.value = false;\n overwriteName.value = true;\n confirmDialog.value = false;\n dialog.value = false;\n estimate.value = undefined;\n emit('close', true);\n };\n\n const confirm = async () => {\n userConfirm.value = true;\n overwriteName.value = true;\n confirmDialog.value = false;\n await upsertTime();\n close();\n };\n\n const deny = async () => {\n userConfirm.value = true;\n overwriteName.value = false;\n confirmDialog.value = false;\n await upsertTime();\n close();\n };\n\n const selectedEvent = async (est: TimeEstimate | undefined) => {\n userConfirm.value = false;\n estimate.value = est;\n if (valid.value && estimate.value) {\n if (props.item.Name != null) {\n confirmDialog.value = true;\n } else {\n overwriteName.value = true;\n await upsertTime();\n close();\n }\n }\n };\n\n return {\n close,\n selectedEvent,\n confirm,\n deny,\n loading,\n dialog,\n confirmDialog,\n valid,\n estimate,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=6c8d3179&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6c8d3179\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VDialog,VIcon,VListItem,VListItemIcon,VListItemTitle,VSpacer,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('confirm',{scopedSlots:_vm._u([{key:\"activator-element\",fn:function(){return [(_vm.iconButton)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"color\":\"error\",\"icon\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-clock-remove-outline\")])],1)]}}],null,false,692467672)},[_c('span',[_vm._v(_vm._s(_vm.$t('calculation.remove-time')))])]):_c('v-list-item',{attrs:{\"color\":\"error\"}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('calculation.remove-time')))]),_c('v-list-item-icon',[_c('v-icon',{attrs:{\"right\":\"\",\"color\":\"error\"}},[_vm._v(\"mdi-clock-remove-outline\")])],1)],1)]},proxy:true},{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(((_vm.$t('buttons.remove')) + \" \" + (_vm.item.TimeEstimateName) + \"?\"))+\" \")]},proxy:true},{key:\"text\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('calculation.remove-time-warning'))+\" \")]},proxy:true},{key:\"accept\",fn:function(){return [_c('v-btn',{attrs:{\"color\":\"secondary\",\"loading\":_vm.loading,\"disabled\":!_vm.valid},on:{\"click\":_vm.deleteEvent}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.confirm'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-check\")])],1)]},proxy:true}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { ref, PropType, defineComponent, computed } from '@vue/composition-api';\nimport Confirm from '@/components/common/confirm/index.vue';\nimport { BuildingItemCalculation } from '@/models/building-element/interfaces';\nimport { removeTimeEstimate } from '@/helpers/building-item';\n\nexport default defineComponent({\n components: {\n Confirm,\n },\n props: {\n item: {\n type: Object as PropType,\n required: true,\n },\n iconButton: {\n type: Boolean,\n },\n },\n setup(props, { emit }) {\n const dialog = ref(false);\n const loading = ref(false);\n\n const valid = computed(() => {\n return props.item !== undefined;\n });\n\n const close = () => {\n dialog.value = false;\n emit('close', true);\n };\n\n const deleteEvent = () => {\n loading.value = true;\n removeTimeEstimate(props.item);\n emit('updated', true);\n loading.value = false;\n close();\n };\n\n return {\n valid,\n dialog,\n loading,\n deleteEvent,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=62639cae&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=62639cae&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"62639cae\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VIcon,VListItem,VListItemIcon,VListItemTitle,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('confirm',{scopedSlots:_vm._u([{key:\"activator-element\",fn:function(){return [(_vm.isMenuitem)?_c('v-list-item',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('items.delete-building-item')))]),_c('v-list-item-icon',[_c('v-icon',{attrs:{\"color\":\"error\",\"right\":\"\"}},[_vm._v(\"mdi-delete\")])],1)],1):_c('v-btn',{attrs:{\"small\":\"\",\"icon\":\"\"}},[_c('v-icon',{attrs:{\"right\":\"\",\"color\":\"error\"}},[_vm._v(\"mdi-delete-forever\")])],1)]},proxy:true},{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(((_vm.$t('common.delete')) + \" \" + (_vm.item.Name) + \"?\"))+\" \")]},proxy:true},{key:\"text\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('calculation.item-delete-warning'))+\" \")]},proxy:true},{key:\"accept\",fn:function(){return [_c('v-btn',{attrs:{\"color\":\"secondary\",\"loading\":_vm.loading},on:{\"click\":_vm.deleteEvent}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.confirm'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-check\")])],1)]},proxy:true}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { ref, PropType, defineComponent } from '@vue/composition-api';\nimport Confirm from '@/components/common/confirm/index.vue';\nimport { BuildingItemCalculation } from '@/models/building-element/interfaces';\nimport { useBuildingItem } from '@/modules/building-item';\n\nexport default defineComponent({\n components: {\n Confirm,\n },\n props: {\n item: {\n type: Object as PropType,\n required: true,\n },\n icon: {\n type: Boolean,\n },\n isMenuitem: {\n type: Boolean,\n },\n },\n setup(props, { emit }) {\n const dialog = ref(false);\n const loading = ref(false);\n\n const { deleteItemFromCalculation } = useBuildingItem();\n\n const deleteEvent = () => {\n loading.value = true;\n deleteItemFromCalculation(props.item);\n loading.value = false;\n emit('close', true);\n dialog.value = false;\n };\n\n return {\n deleteEvent,\n dialog,\n loading,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=464967e0&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=464967e0&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"464967e0\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\ninstallComponents(component, {VBtn,VIcon,VListItem,VListItemIcon,VListItemTitle})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{on:{\"click:outside\":_vm.close},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [(_vm.isMenuOption)?_c('v-list-item',_vm._g(_vm._b({attrs:{\"color\":\"primary\"}},'v-list-item',attrs,false),on),[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('calculation.replace-element')))]),_c('v-list-item-icon',[_c('v-icon',{attrs:{\"right\":\"\",\"color\":\"primary\"}},[_vm._v(\"mdi-swap-horizontal\")])],1)],1):(_vm.iconButton)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar onReplace = ref.on;\nvar attrsReplace = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"color\":\"primary\",\"icon\":\"\"}},'v-btn',Object.assign({}, attrs, attrsReplace),false),Object.assign({}, on, onReplace)),[_c('v-icon',[_vm._v(\"mdi-swap-horizontal\")])],1)]}}],null,true)},[_c('span',[_vm._v(_vm._s(_vm.$t('calculation.replace-element')))])]):_c('v-btn',_vm._g(_vm._b({staticClass:\"ma-2\",attrs:{\"small\":\"\",\"color\":\"primary\",\"outlined\":\"\"}},'v-btn',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.$t('buttons.get-product'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\",\"small\":\"\"}},[_vm._v(\"mdi-swap-horizontal\")])],1)]}}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',{attrs:{\"flat\":\"\",\"tile\":\"\",\"disabled\":_vm.loading}},[_c('dialog-title',{attrs:{\"headerText\":_vm.$t('titles.get-product')},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-row',{attrs:{\"dense\":\"\",\"align-content\":\"center\"}},[_c('v-spacer'),_c('v-btn',{staticClass:\"close-icon\",attrs:{\"icon\":\"\"},on:{\"click\":_vm.close}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1)]},proxy:true}])}),_c('v-card-text',[_c('perfect-scrollbar',{attrs:{\"options\":{\n suppressScrollX: true,\n }}},[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"3\"}},[_c('content-bar',{attrs:{\"small\":true,\"title\":''}}),_c('v-card',{staticClass:\"ma-2 pa-2\",attrs:{\"disabled\":_vm.fetchingProducts}},[_c('v-card-title',[_vm._v(_vm._s(_vm.$t('titles.result-filters')))]),_c('v-list',{staticClass:\"pa-4\",attrs:{\"dense\":\"\"}},[(_vm.searchFilter && _vm.searchFilter.PriceListNames)?_c('v-subheader',[_vm._v(_vm._s(_vm.$t('titles.pricelists')))]):_vm._e(),(_vm.azureResult && _vm.azureResult.PriceListFacets)?_c('v-list-item-group',{attrs:{\"multiple\":\"\"},on:{\"change\":_vm.searchWithFilters},model:{value:(_vm.searchFilter.PriceListNames),callback:function ($$v) {_vm.$set(_vm.searchFilter, \"PriceListNames\", $$v)},expression:\"searchFilter.PriceListNames\"}},_vm._l((_vm.azureResult.PriceListFacets),function(pricelist){return _c('v-list-item',{key:pricelist.Name,attrs:{\"value\":pricelist.Name},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\n var active = ref.active;\nreturn [_c('v-list-item-action',[_c('v-checkbox',{attrs:{\"input-value\":active,\"dense\":\"\"}})],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(((pricelist.Name) + \" (\" + (pricelist.Count) + \")\")))])],1)]}}],null,true)})}),1):_vm._e(),(_vm.searchFilter && _vm.searchFilter.CategoryNames)?_c('v-subheader',[_vm._v(_vm._s(_vm.$t('titles.categories')))]):_vm._e(),(_vm.azureResult && _vm.azureResult.CategoryFacets)?_c('v-list-item-group',{attrs:{\"multiple\":\"\"},on:{\"change\":_vm.searchWithFilters},model:{value:(_vm.searchFilter.CategoryNames),callback:function ($$v) {_vm.$set(_vm.searchFilter, \"CategoryNames\", $$v)},expression:\"searchFilter.CategoryNames\"}},_vm._l((_vm.azureResult.CategoryFacets),function(category){return _c('v-list-item',{key:category.Name,attrs:{\"value\":category.Name},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\n var active = ref.active;\nreturn [_c('v-list-item-action',[_c('v-checkbox',{attrs:{\"input-value\":active,\"dense\":\"\"}})],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(((category.Name) + \" (\" + (category.Count) + \")\")))])],1)]}}],null,true)})}),1):_vm._e()],1)],1)],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"9\"}},[_c('content-bar',{attrs:{\"small\":true,\"title\":''},scopedSlots:_vm._u([{key:\"content-right\",fn:function(){return [_c('v-text-field',{staticClass:\"ma-2 search-field\",attrs:{\"single-line\":\"\",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"clearable\":\"\",\"autofocus\":\"\",\"label\":_vm.$t('buttons.search-in-pricelist')},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}}),_c('v-btn',{staticClass:\"ma-2\",attrs:{\"color\":\"primary\",\"disabled\":!_vm.search,\"loading\":_vm.fetchingProducts},on:{\"click\":_vm.azureSearch}},[_vm._v(\" \"+_vm._s(_vm.$t('common.search'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-cloud-search-outline\")])],1)]},proxy:true}])}),_c('v-card',{staticClass:\"ma-2 pa-2\"},[_c('v-card-title',[_vm._v(_vm._s(_vm.azureResult && _vm.azureResult.FoundPriceLists.length > 0 ? ((_vm.$t('titles.result')) + \" (\" + (_vm.azureResult.FoundPriceLists.length) + \")\") : _vm.$t('titles.result'))),_c('v-spacer'),_c('v-text-field',{staticClass:\"result-search\",attrs:{\"append-icon\":\"mdi-magnify\",\"label\":_vm.$t('labels.result-search'),\"single-line\":\"\",\"hide-details\":\"\",\"clearable\":\"\",\"disabled\":!_vm.azureResult || !_vm.azureResult.FoundPriceLists,\"outlined\":\"\",\"autofocus\":_vm.azureResult && _vm.azureResult.FoundPriceLists.length > 0,\"dense\":\"\"},model:{value:(_vm.resultSearch),callback:function ($$v) {_vm.resultSearch=$$v},expression:\"resultSearch\"}})],1),(_vm.fetchingProducts)?_c('loader',{attrs:{\"margins\":true}}):_c('v-data-table',{attrs:{\"headers\":_vm.BUILDING_ITEM_PRODUCT,\"items\":_vm.azureResult ? _vm.azureResult.FoundPriceLists : [],\"loading-text\":_vm.$t('info.loading'),\"no-data-text\":_vm.$t('info.no-data'),\"no-results-text\":_vm.$t('info.no-result'),\"single-select\":\"\",\"dense\":\"\",\"items-per-page\":5,\"show-select\":\"\",\"search\":_vm.resultSearch,\"item-key\":\"Id\"},on:{\"item-selected\":_vm.toggleItem},scopedSlots:_vm._u([{key:\"item.Actions\",fn:function(ref){\n var item = ref.item;\nreturn [_c('v-menu',{staticClass:\"action-menu\",attrs:{\"left\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var menu = ref.on;\n var attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"action-menu\",attrs:{\"icon\":\"\",\"color\":\"primary\"}},'v-btn',attrs,false),Object.assign({}, menu)),[_c('v-icon',[_vm._v(\"mdi-dots-vertical\")])],1)]}}],null,true)},[_c('v-list',{attrs:{\"dense\":\"\"}},[_c('v-list-item-group',{attrs:{\"color\":\"primary\"}},[(item.NobbNumber)?_c('nobb-info',{attrs:{\"nobbNr\":item.NobbNumber}}):_vm._e()],1)],1)],1)]}},{key:\"item.NobbKeywords\",fn:function(ref){\n var item = ref.item;\nreturn [_c('span',{staticClass:\"d-inline-block text-truncate\",staticStyle:{\"max-width\":\"50px\"}},[_vm._v(\" \"+_vm._s(item.NobbKeywords)+\" \")])]}},{key:\"item.Price\",fn:function(ref){\n var item = ref.item;\nreturn [(_vm.calculatedPrice(item))?_c('div',[_vm._v(\" \"+_vm._s(_vm.calculatedPrice(item).toLocaleString(_vm.$i18n.locale, { maximumFractionDigits: 2, }))+\" \")]):_vm._e()]}}],null,true)}),_c('confirm',{attrs:{\"value\":_vm.differentUnitDialog,\"customClose\":true},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('info.unit-diff'))+\" \")]},proxy:true},{key:\"text\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('info.continue-with-diff'))+\" \")]},proxy:true},{key:\"accept\",fn:function(){return [_c('v-btn',{staticClass:\"ma-3\",attrs:{\"color\":\"secondary\",\"width\":\"80\"},on:{\"click\":_vm.differentUnitAccept}},[_vm._v(_vm._s(_vm.$t('buttons.yes'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-check\")])],1),_c('v-btn',{staticClass:\"ma-3\",attrs:{\"width\":\"80\"},on:{\"click\":_vm.differentUnitDeclined}},[_vm._v(_vm._s(_vm.$t('buttons.no'))),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-close\")])],1)]},proxy:true}])})],1)],1)],1)],1)],1),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{staticClass:\"ma-2\",attrs:{\"color\":\"secondary\",\"disabled\":!_vm.valid},on:{\"click\":_vm.addFromPricelist}},[_vm._v(_vm._s(_vm.$t('buttons.approve'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-check\")])],1),_c('v-btn',{staticClass:\"ma-2\",on:{\"click\":_vm.close}},[_vm._v(_vm._s(_vm.$t('buttons.close'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-close\")])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"value\":_vm.itemCalcs && _vm.itemCalcs.length > 0,\"persistent\":\"\",\"max-width\":\"1200\"},on:{\"click:outside\":_vm.close}},[_c('v-card',{attrs:{\"flat\":\"\",\"tile\":\"\",\"disabled\":_vm.loading}},[_c('dialog-title',{attrs:{\"headerText\":_vm.$t('titles.replace-products'),\"secondaryText\":_vm.$t('info.same-product')},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":_vm.close}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)]},proxy:true}])}),_c('v-card-text',{staticClass:\"pa-3\"},[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-subheader',{staticClass:\"items-subheader\"},[_vm._v(\" \"+_vm._s(_vm.$t('titles.building-items'))+\" \")]),_c('v-data-table',{staticClass:\"building-items\",attrs:{\"headers\":_vm.BUILDING_ITEM_HEADERS_SIMPLE_ALT2,\"items\":_vm.itemCalcs,\"item-key\":\"Id\",\"loading-text\":_vm.$t('info.loading'),\"no-data-text\":_vm.$t('info.no-data'),\"no-results-text\":_vm.$t('info.no-result'),\"hide-default-footer\":\"\"},scopedSlots:_vm._u([_vm._l((_vm.BUILDING_ITEM_HEADERS_SIMPLE_ALT2),function(h){return {key:(\"header.\" + (h.value)),fn:function(ref){return [_c('v-row',{key:h.text,attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\"}},[(h.text)?_c('span',{key:h.value},[_vm._v(\" \"+_vm._s(_vm.$t((\"headers.\" + (h.text.toLowerCase()))))+\" \")]):_vm._e()])],1)]}}}),{key:\"item.Name\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',{staticClass:\"emphasized\"},[_vm._v(\" \"+_vm._s(item.Name)+\" \")]),_c('div',[_vm._v(_vm._s(item.PriceListItemName))])]}}],null,true)})],1)],1)],1),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{staticClass:\"ma-2\",attrs:{\"color\":\"secondary\"},on:{\"click\":function($event){return _vm.submit()}}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.replace'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-swap-horizontal\")])],1),_c('v-btn',{staticClass:\"ma-2\",on:{\"click\":_vm.close}},[_vm._v(_vm._s(_vm.$t('buttons.close'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-close\")])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, PropType, ref } from '@vue/composition-api';\nimport DialogTitle from '@/components/common/dialog-title/index.vue';\nimport { BuildingItemCalculation } from '@/models/building-element/interfaces';\nimport { BUILDING_ITEM_HEADERS_SIMPLE_ALT2 } from '@/constants/table-headers';\n\nexport default defineComponent({\n components: {\n DialogTitle,\n },\n props: {\n isMenuOption: {\n type: Boolean,\n },\n itemCalcs: {\n type: Array as PropType>,\n },\n },\n setup(props, { emit }) {\n const loading = ref(false);\n\n const close = () => {\n emit('closeEvent', true);\n };\n\n const submit = async () => {\n if (props.itemCalcs) {\n emit('replaceAll', true);\n close();\n }\n };\n\n return {\n close,\n submit,\n loading,\n BUILDING_ITEM_HEADERS_SIMPLE_ALT2,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=fabf117e&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=fabf117e&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"fabf117e\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VDataTable,VDialog,VIcon,VRow,VSpacer,VSubheader})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { calculatedPrice } from '@/helpers/pricebook';\nimport {\n PriceListSearchResult,\n SearchablePriceListItem,\n SearchFilter,\n} from '@/models/pricebook/interfaces';\nimport { usePriceBook } from '@/modules/pricebook';\nimport {\n defineComponent,\n onMounted,\n PropType,\n ref,\n computed,\n} from '@vue/composition-api';\nimport Loader from '@/components/loader/index.vue';\nimport DialogTitle from '@/components/common/dialog-title/index.vue';\nimport ContentBar from '@/components/common/content-bar/index.vue';\nimport NobbInfo from '@/components/nobb-info/index.vue';\nimport Confirm from '@/components/common/confirm/index.vue';\nimport ReplaceProducts from '@/components/calculation/building-item/replace-products/index.vue';\nimport { BuildingItemCalculation } from '@/models/building-element/interfaces';\nimport { BUILDING_ITEM_PRODUCT } from '@/constants/table-headers';\nimport { areUnitsEqual } from '@/helpers/common';\nimport { ItemWithProduct } from '@/models/common/interfaces';\n\nexport default defineComponent({\n components: {\n NobbInfo,\n Loader,\n Confirm,\n DialogTitle,\n ContentBar,\n ReplaceProducts,\n },\n props: {\n isMenuOption: {\n type: Boolean,\n },\n itemCalc: {\n type: Object as PropType,\n },\n iconButton: {\n type: Boolean,\n },\n },\n setup(props, { emit }) {\n const {\n getPriceLists,\n searchProductsInPricelists,\n getSubscribedPricelists,\n searchProductsInPricelistsWithFilter,\n getCategoryFacets,\n getPriceListFacets,\n pricelists,\n } = usePriceBook();\n\n const dialog = ref(false);\n const loading = ref(false);\n\n const differentUnit = ref(false);\n const differentUnitDialog = ref(false);\n const differentUnitDecided = ref(false);\n\n const search = ref('');\n const resultSearch = ref('');\n const searchFilter = ref();\n const fetchingProducts = ref(false);\n const chosenItem = ref();\n const azureResult = ref();\n const subscribedPriceListIds = ref>([]);\n\n const toggleItem = (toggleObject: {\n item: SearchablePriceListItem;\n value: boolean;\n }) => {\n if (toggleObject.value) {\n chosenItem.value = toggleObject.item;\n } else {\n chosenItem.value = undefined;\n }\n };\n\n const close = async () => {\n azureResult.value = undefined;\n chosenItem.value = undefined;\n fetchingProducts.value = false;\n searchFilter.value = {\n CategoryNames: [],\n PriceListNames: [],\n Search: '',\n SubscribedPriceListIds: subscribedPriceListIds.value,\n };\n\n differentUnit.value = false;\n differentUnitDialog.value = false;\n differentUnitDecided.value = false;\n dialog.value = false;\n emit('close', true);\n };\n\n const selectedItemHasDifferentUnit = (\n item: SearchablePriceListItem\n ): boolean => {\n const existingUnit = props.itemCalc?.UnitForOrder;\n\n if (existingUnit) {\n if (item.Unit) {\n const diffUnit = !areUnitsEqual(existingUnit, item.Unit);\n if (diffUnit) {\n return true;\n }\n }\n }\n return false;\n };\n\n const addFromPricelist = async () => {\n if (chosenItem.value) {\n differentUnit.value = selectedItemHasDifferentUnit(chosenItem.value);\n\n if (differentUnit.value && !differentUnitDecided.value) {\n differentUnitDialog.value = true;\n return;\n }\n\n if (props.itemCalc) {\n const iwp: ItemWithProduct = {\n Item: props.itemCalc,\n PriceListItem: chosenItem.value,\n };\n\n emit('product', iwp);\n close();\n } else {\n const iwp: ItemWithProduct = {\n PriceListItem: chosenItem.value,\n };\n\n emit('product', iwp);\n close();\n }\n }\n };\n\n const differentUnitAccept = () => {\n differentUnitDialog.value = false;\n differentUnitDecided.value = true;\n addFromPricelist();\n };\n\n const differentUnitDeclined = () => {\n differentUnitDecided.value = false;\n differentUnitDialog.value = false;\n };\n\n const azureSearch = async () => {\n if (searchFilter.value) {\n searchFilter.value.CategoryNames = [];\n searchFilter.value.PriceListNames = [];\n }\n if (search.value) {\n searchFilter.value = {\n Search: search.value,\n SubscribedPriceListIds: subscribedPriceListIds.value,\n CategoryNames: [],\n PriceListNames: [],\n };\n fetchingProducts.value = true;\n azureResult.value = await searchProductsInPricelists(\n searchFilter.value\n );\n fetchingProducts.value = false;\n }\n };\n\n const searchWithFilters = async () => {\n if (searchFilter.value && azureResult.value) {\n fetchingProducts.value = true;\n const filteredSearch = await searchProductsInPricelistsWithFilter(\n searchFilter.value\n );\n const pricelistFacets = await getPriceListFacets(searchFilter.value);\n const categoryFacets = await getCategoryFacets(searchFilter.value);\n\n azureResult.value.FoundPriceLists = filteredSearch.FoundPriceLists;\n azureResult.value.TotalResultCount = filteredSearch.TotalResultCount;\n azureResult.value.CategoryFacets = categoryFacets;\n azureResult.value.PriceListFacets = pricelistFacets;\n fetchingProducts.value = false;\n }\n };\n\n const valid = computed(() => {\n return chosenItem.value != null;\n });\n\n onMounted(async () => {\n loading.value = true;\n searchFilter.value = undefined;\n subscribedPriceListIds.value = [];\n if (props.itemCalc) {\n if (props.itemCalc.PriceListItemName) {\n search.value = props.itemCalc.PriceListItemName;\n }\n }\n await getPriceLists();\n const spl = await getSubscribedPricelists();\n\n if (spl) {\n spl.forEach(pl => {\n if (pl.Id) {\n subscribedPriceListIds.value.push(pl.Id);\n }\n });\n }\n\n loading.value = false;\n });\n\n return {\n close,\n addFromPricelist,\n calculatedPrice,\n azureSearch,\n searchWithFilters,\n toggleItem,\n confirm,\n differentUnitAccept,\n differentUnitDeclined,\n emit,\n differentUnitDecided,\n differentUnit,\n differentUnitDialog,\n searchFilter,\n pricelists,\n fetchingProducts,\n chosenItem,\n search,\n loading,\n dialog,\n valid,\n azureResult,\n BUILDING_ITEM_PRODUCT,\n resultSearch,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=2e2a0756&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=2e2a0756&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2e2a0756\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemAction } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemGroup } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VCheckbox,VCol,VDataTable,VDialog,VIcon,VList,VListItem,VListItemAction,VListItemContent,VListItemGroup,VListItemIcon,VListItemTitle,VMenu,VRow,VSpacer,VSubheader,VTextField,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"text-left\"},[(_vm.buildingItemCalc.Status)?_c('v-chip',{attrs:{\"x-small\":\"\",\"color\":_vm.buildingItemCalc.Status.StatusColor}},[_vm._v(\" \"+_vm._s(_vm.buildingItemCalc.Status.StatusText)+\" \")]):(_vm.buildingItemCalc.IsRecentlyAdded)?_c('v-chip',{attrs:{\"x-small\":\"\",\"color\":\"secondary\",\"prepend-icon\":\"mdi-check\"}},[_vm._v(\" \"+_vm._s(_vm.$t('common.status-new'))+\" \")]):(_vm.buildingItemCalc.IsModifiedRecently)?_c('v-chip',{attrs:{\"x-small\":\"\",\"color\":\"orange\"}},[_vm._v(\" \"+_vm._s(_vm.$t('common.status-modified'))+\" \")]):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport {\n BuildingItemCalculation,\n ItemStatus,\n} from '@/models/building-element/interfaces';\nimport { defineComponent, PropType } from '@vue/composition-api';\n\nexport default defineComponent({\n props: {\n buildingItemCalc: {\n type: Object as PropType,\n required: true,\n },\n },\n setup() {\n return {\n ItemStatus,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=45570da8&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VChip } from 'vuetify/lib/components/VChip';\ninstallComponents(component, {VChip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"max-width\":\"500\",\"retain-focus\":false},on:{\"click:outside\":_vm.close},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-list-item',[_c('v-list-item-title',_vm._g(_vm._b({},'v-list-item-title',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.$t('items.add-to-library')))]),_c('v-list-item-icon',[_c('v-icon',{attrs:{\"color\":\"primary\",\"right\":\"\"}},[_vm._v(\"mdi-shape-square-plus\")])],1)],1)]}}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',{attrs:{\"flat\":\"\",\"tile\":\"\"}},[_c('dialog-title',{attrs:{\"headerText\":_vm.$t('titles.choose-library')},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":_vm.close}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)]},proxy:true}])}),_c('v-card-text',{staticClass:\"pa-5\"},[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"outlined\":\"\",\"dense\":\"\",\"autofocus\":\"\",\"rules\":[_vm.rules.required],\"placeholder\":_vm.$t('labels.name'),\"label\":_vm.$t('labels.name'),\"clearable\":\"\"},on:{\"focus\":function($event){return $event.target.select()}},model:{value:(_vm.newName),callback:function ($$v) {_vm.newName=$$v},expression:\"newName\"}})],1),(_vm.buildingTemplatesByProfession)?_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-select',{attrs:{\"outlined\":\"\",\"dense\":\"\",\"label\":_vm.$t('labels.libraries-occupation'),\"item-text\":\"Name\",\"return-object\":\"\",\"items\":_vm.buildingTemplatesByProfession},on:{\"change\":_vm.onLibraryChange},model:{value:(_vm.selectedLibrary),callback:function ($$v) {_vm.selectedLibrary=$$v},expression:\"selectedLibrary\"}})],1):_vm._e(),(_vm.selectedLibrary)?_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-select',{key:\"Id\",attrs:{\"outlined\":\"\",\"dense\":\"\",\"label\":_vm.$t('labels.building-element-template'),\"item-text\":\"Name\",\"return-object\":\"\",\"loading\":_vm.loading,\"items\":_vm.selectedLibrary.BuildingElementTemplates},model:{value:(_vm.selectedElementTemplate),callback:function ($$v) {_vm.selectedElementTemplate=$$v},expression:\"selectedElementTemplate\"}})],1):_vm._e()],1)],1)],1),_c('v-card-actions',{staticClass:\"pa-5\"},[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"secondary\",\"loading\":_vm.loading,\"disabled\":!_vm.valid},on:{\"click\":_vm.submit}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.add'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-check \")])],1),_c('v-btn',{on:{\"click\":_vm.close}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.close'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-close\")])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport {\n ref,\n defineComponent,\n PropType,\n onMounted,\n computed,\n} from '@vue/composition-api';\nimport DialogTitle from '@/components/common/dialog-title/index.vue';\nimport { translate } from '@/localization';\nimport { useCalculation } from '@/modules/calculation';\nimport { BuildingItemCalculation } from '@/models/building-element/interfaces';\nimport { useLibrary } from '@/modules/library';\nimport {\n BuildingElementTemplate,\n BuildingTypeTemplate,\n} from '@/models/library/interfaces';\n\nexport default defineComponent({\n components: {\n DialogTitle,\n },\n props: {\n item: {\n type: Object as PropType,\n required: true,\n },\n },\n setup(props, { emit }) {\n const dialog = ref(false);\n const loading = ref(false);\n const selectedLibrary = ref();\n const selectedElementTemplate = ref();\n const newName = ref>(props.item.Name ?? null);\n\n const { projectCalculation } = useCalculation();\n const {\n addItemToLibrary,\n getBuildingTemplatesByProfession,\n buildingTemplatesByProfession,\n getBuildingTemplate,\n } = useLibrary();\n\n const valid = computed(() => {\n return (\n selectedLibrary.value != null &&\n newName.value &&\n selectedElementTemplate.value != null\n );\n });\n\n onMounted(async () => {\n if (\n !buildingTemplatesByProfession.value &&\n projectCalculation.value?.Profession?.Code\n ) {\n await getBuildingTemplatesByProfession(\n projectCalculation.value.Profession.Code,\n true\n );\n }\n });\n\n const onLibraryChange = async () => {\n if (selectedLibrary.value?.Id) {\n selectedLibrary.value = await getBuildingTemplate(\n selectedLibrary.value.Id\n );\n selectedElementTemplate.value = undefined;\n }\n };\n\n const close = () => {\n dialog.value = false;\n selectedLibrary.value = undefined;\n selectedElementTemplate.value = undefined;\n newName.value = null;\n emit('close', true);\n };\n\n const submit = async () => {\n if (\n selectedLibrary.value &&\n valid.value &&\n newName.value &&\n selectedElementTemplate.value\n ) {\n loading.value = true;\n await addItemToLibrary(\n selectedLibrary.value,\n selectedElementTemplate.value,\n props.item,\n newName.value\n );\n loading.value = false;\n dialog.value = false;\n }\n };\n\n return {\n close,\n submit,\n onLibraryChange,\n buildingTemplatesByProfession,\n selectedElementTemplate,\n dialog,\n loading,\n valid,\n newName,\n selectedLibrary,\n rules: {\n required: (v: string) => !!v || `${translate('validation.required')}`,\n },\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=cdf1067c&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VContainer,VDialog,VIcon,VListItem,VListItemIcon,VListItemTitle,VRow,VSelect,VSpacer,VTextField})\n","import { reactive, toRefs } from '@vue/composition-api';\n\ninterface State {\n amountTransition: boolean;\n}\n\nconst state = reactive({\n amountTransition: true,\n});\n\nexport const useNudge = () => {\n const nudgeAmount = () => {\n state.amountTransition = false;\n state.amountTransition = true;\n };\n return {\n ...toRefs(state),\n nudgeAmount,\n };\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{staticClass:\"grey lighten-5\",attrs:{\"fullscreen\":\"\",\"hide-overlay\":\"\",\"transition\":\"dialog-bottom-transition\"},on:{\"click:outside\":_vm.close},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-list-item',_vm._g(_vm._b({attrs:{\"color\":\"primary\"}},'v-list-item',attrs,false),on),[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('calculation.replace-element')))]),_c('v-list-item-icon',[_c('v-icon',{attrs:{\"right\":\"\",\"color\":\"primary\"}},[_vm._v(\"mdi-swap-horizontal\")])],1)],1)]}}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',{attrs:{\"flat\":\"\",\"tile\":\"\"}},[_c('content-bar',{attrs:{\"title\":_vm.$t('titles.product-search')},scopedSlots:_vm._u([{key:\"content-right\",fn:function(){return [_c('v-btn',{staticClass:\"ma-2\",attrs:{\"color\":\"#ff5667\",\"dark\":\"\"},on:{\"click\":_vm.close}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.close'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-close\")])],1)]},proxy:true}])}),_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"3\"}},[_c('v-card',{staticClass:\"ma-2\",attrs:{\"tile\":\"\"}},[_c('v-card-title',[_vm._v(_vm._s(_vm.$t('titles.pricelists')))]),_c('v-card-text')],1),_c('v-card',{staticClass:\"ma-2\",attrs:{\"tile\":\"\"}},[_c('v-card-title',[_vm._v(_vm._s(_vm.$t('titles.categories')))]),_c('v-card-text')],1)],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"9\"}},[_c('v-card',{staticClass:\"ma-2\",attrs:{\"tile\":\"\",\"flat\":\"\"}},[_c('v-toolbar',{attrs:{\"flat\":\"\"}},[_c('v-text-field',{staticClass:\"azure-search-field\",attrs:{\"label\":_vm.$t('common.search'),\"single-line\":\"\",\"outlined\":\"\",\"flat\":\"\",\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}}),_c('v-btn',{staticClass:\"ma-2\",attrs:{\"color\":\"secondary\",\"loading\":_vm.loading}},[_vm._v(\" \"+_vm._s(_vm.$t('common.search'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-cloud-search-outline \")])],1)],1),_c('v-data-table',{staticClass:\"elevation-2 pricelist-items\",attrs:{\"headers\":_vm.PRICELIST_ITEM_HEADERS,\"loading\":_vm.loading,\"search\":_vm.search,\"loading-text\":_vm.$t('info.loading'),\"no-data-text\":_vm.$t('info.no-data'),\"no-results-text\":_vm.$t('info.no-result'),\"footer-props\":{\n itemsPerPageText: _vm.$t('info.item-rows'),\n }},scopedSlots:_vm._u([_vm._l((_vm.PRICELIST_ITEM_HEADERS),function(h){return {key:(\"header.\" + (h.value)),fn:function(ref){return [_c('v-row',{key:h.text,attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-tooltip',{attrs:{\"bottom\":\"\",\"max-width\":\"350\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\nreturn [(h.text)?_c('span',_vm._g({},on),[_vm._v(\" \"+_vm._s(_vm.$t((\"headers.\" + (h.text.toLowerCase()))))+\" \")]):_vm._e()]}}],null,true)},[(h.text)?_c('span',[_vm._v(_vm._s(_vm.$t((\"headers-description.\" + (h.text.toLowerCase())))))]):_vm._e()])],1)],1)]}}})],null,true)})],1)],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { ref, defineComponent } from '@vue/composition-api';\nimport ContentBar from '@/components/common/content-bar/index.vue';\nimport { PRICELIST_ITEM_HEADERS } from '@/constants/table-headers';\nexport default defineComponent({\n components: {\n ContentBar,\n },\n setup() {\n const dialog = ref(false);\n const loading = ref(false);\n const search = ref('');\n\n const close = () => {\n dialog.value = false;\n };\n\n return {\n close,\n dialog,\n loading,\n search,\n PRICELIST_ITEM_HEADERS,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=2c217337&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=2c217337&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2c217337\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCard,VCardText,VCardTitle,VCol,VContainer,VDataTable,VDialog,VIcon,VListItem,VListItemIcon,VListItemTitle,VRow,VTextField,VToolbar,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',{class:_vm.itemClass + ' lighten-5',attrs:{\"data-id\":_vm.value ? _vm.value : ''}},_vm._l((_vm.headers),function(header,index){return _c('td',{key:index},[_vm._t(_vm.columnName(header),function(){return [_c('div',{style:(_vm.getAlignment(header))},[_vm._v(\" \"+_vm._s(_vm.getNonSlotValue(_vm.item, header))+\" \")])]},{\"item\":_vm.item})],2)}),0)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\n\nexport default defineComponent({\n name: 'DataTableRowHandler',\n props: {\n itemClass: {\n type: String,\n },\n item: {\n type: Object,\n },\n headers: {\n type: Array,\n },\n value: {\n type: String,\n },\n },\n setup() {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const columnName = (header: { value: any }) => {\n return `item.${header.value}`;\n };\n\n const getAlignment = (header: { align: string }) => {\n const align = header.align ? header.align : 'right';\n return `text-align: ${align} !important`;\n };\n\n const getNonSlotValue = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n item: { [x: string]: any },\n header: { value: string | number }\n ) => {\n const val = item[header.value];\n\n if (val != null) {\n return val;\n }\n\n return '';\n };\n\n return {\n getNonSlotValue,\n getAlignment,\n columnName,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=17947c70&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-tooltip',{attrs:{\"right\":\"\",\"min-width\":\"400\",\"color\":\"white\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-badge',_vm._g(_vm._b({class:_vm.calm ? 'element-warnings-calm' : 'element-warnings',attrs:{\"content\":_vm.warnings.length,\"color\":_vm.calm ? 'grey' : 'warning',\"bordered\":\"\",\"dot\":_vm.calm,\"overlap\":\"\"}},'v-badge',attrs,false),on),[_c('v-icon',_vm._g(_vm._b({},'v-icon',attrs,false),on),[_vm._v(_vm._s(_vm.calm ? 'mdi-alert-circle-outline' : 'mdi-alert-outline'))])],1)]}}])},[_c('v-list',{attrs:{\"dense\":\"\"}},[_c('v-subheader',[_vm._v(_vm._s(_vm.$t('common.warnings')))]),_vm._l((_vm.warnings),function(warning,i){return _c('v-list-item',{key:i,attrs:{\"dense\":\"\"}},[_c('v-list-item-icon',[_c('v-icon',{attrs:{\"x-small\":_vm.calm},domProps:{\"textContent\":_vm._s('mdi-circle-small')}})],1),_c('v-list-item-content',[_c('v-list-item-title',{domProps:{\"textContent\":_vm._s(_vm.$t(warning))}})],1)],1)})],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, PropType } from '@vue/composition-api';\n\nexport default defineComponent({\n props: {\n warnings: {\n type: Array as PropType>,\n },\n calm: {\n type: Boolean,\n },\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=2f8c26d0&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=2f8c26d0&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2f8c26d0\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBadge } from 'vuetify/lib/components/VBadge';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBadge,VIcon,VList,VListItem,VListItemContent,VListItemIcon,VListItemTitle,VSubheader,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"max-width\":\"700\",\"retain-focus\":false},on:{\"click:outside\":_vm.close},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [(_vm.isMenuitem)?_c('v-list-item',_vm._g(_vm._b({},'v-list-item',attrs,false),on),[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('titles.set-precut')))]),_c('v-list-item-icon',[_c('v-icon',{attrs:{\"color\":\"error\",\"right\":\"\"}},[_vm._v(\"mdi-alpha-p\")])],1)],1):_c('v-btn',_vm._g(_vm._b({attrs:{\"small\":\"\",\"outlined\":\"\",\"color\":\"primary\"}},'v-btn',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.$t('titles.set-precut'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-alpha-p\")])],1)]}}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',{attrs:{\"flat\":\"\",\"tile\":\"\"}},[_c('dialog-title',{attrs:{\"headerText\":_vm.$t('titles.set-precut')},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":_vm.close}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)]},proxy:true}])}),_c('v-card-text',{staticClass:\"pa-5\"},[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-text-field',{attrs:{\"outlined\":\"\",\"dense\":\"\",\"autofocus\":\"\",\"value\":_vm.item.AmountCalculated.value,\"placeholder\":_vm.$t('labels.quantity'),\"label\":_vm.$t('labels.quantity'),\"type\":\"number\",\"clearable\":\"\"},on:{\"input\":function($event){_vm.item.AmountCalculated.value =\n $event !== '' ? Number($event) : null},\"focus\":function($event){return $event.target.select()}}})],1),_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('v-text-field',{attrs:{\"outlined\":\"\",\"dense\":\"\",\"autofocus\":\"\",\"placeholder\":_vm.$t('labels.length'),\"label\":_vm.$t('labels.length'),\"type\":\"number\",\"clearable\":\"\"},model:{value:(_vm.item.AmountPrUnit),callback:function ($$v) {_vm.$set(_vm.item, \"AmountPrUnit\", _vm._n($$v))},expression:\"item.AmountPrUnit\"}})],1),_c('v-col',{attrs:{\"cols\":\"5\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"9\"}},[_c('v-text-field',{attrs:{\"outlined\":\"\",\"dense\":\"\",\"autofocus\":\"\",\"placeholder\":_vm.$t('labels.amount-adjusted'),\"label\":_vm.$t('labels.amount-adjusted'),\"clearable\":\"\"},on:{\"change\":function($event){_vm.item.Amount = null}},model:{value:(_vm.item.AmountAdjustment),callback:function ($$v) {_vm.$set(_vm.item, \"AmountAdjustment\", _vm._n($$v))},expression:\"item.AmountAdjustment\"}})],1),_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('info-tooltip',{attrs:{\"information\":_vm.$t('info.adjusted-amount-precut')}})],1)],1)],1)],1)],1),(_vm.item.IsTimeEstimateAdded)?_c('v-alert',{staticClass:\"ma-3\",attrs:{\"dense\":\"\",\"type\":\"warning\",\"tile\":\"\",\"color\":\"error\"}},[_vm._v(\" \"+_vm._s(_vm.$t('info.precut-time'))+\" \")]):_vm._e()],1),_c('v-card-actions',{staticClass:\"pa-5\"},[_c('info-tooltip',{attrs:{\"information\":_vm.$t('info.precut')}}),_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"secondary\"},on:{\"click\":_vm.submit}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.set'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-check \")])],1),_c('v-btn',{on:{\"click\":_vm.close}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.cancel'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-close\")])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport {\n ref,\n defineComponent,\n PropType,\n onMounted,\n} from '@vue/composition-api';\nimport DialogTitle from '@/components/common/dialog-title/index.vue';\nimport {\n BuildingItemCalculation,\n PrecutItem,\n} from '@/models/building-element/interfaces';\nimport { useBatch } from '@/modules/batch';\nimport InfoTooltip from '@/components/common/tooltip-helper/index.vue';\nimport RemoveTimeEstimate from '@/components/calculation/building-item/remove-time-estimate/index.vue';\nimport { removeTimeEstimate } from '@/helpers/building-item';\n\nexport default defineComponent({\n components: {\n DialogTitle,\n InfoTooltip,\n RemoveTimeEstimate,\n },\n props: {\n item: {\n type: Object as PropType,\n required: true,\n },\n isMenuitem: {\n type: Boolean,\n },\n },\n setup(props, { emit }) {\n const dialog = ref(false);\n\n const { registerItemSaveChangesWithAdditionAndParent } = useBatch();\n\n const precutItem = ref();\n\n onMounted(() => {\n precutItem.value = {\n Amount: props.item.Amount,\n AmountAdjustment: props.item.AmountAdjustment ?? null,\n AmountPrUnit: props.item.AmountPrUnit,\n };\n });\n\n const close = () => {\n props.item.Amount = precutItem.value?.Amount ?? null;\n props.item.AmountAdjustment = precutItem.value?.AmountAdjustment ?? null;\n props.item.AmountPrUnit = precutItem.value?.AmountPrUnit ?? null;\n dialog.value = false;\n emit('close', true);\n };\n\n const submit = async () => {\n props.item.Precut = true;\n props.item.Unit = 'stk';\n if (props.item.IsTimeEstimateAdded.value) {\n removeTimeEstimate(props.item);\n }\n\n registerItemSaveChangesWithAdditionAndParent(props.item);\n\n dialog.value = false;\n };\n\n return {\n close,\n submit,\n dialog,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=10f2660a&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VAlert,VBtn,VCard,VCardActions,VCardText,VCol,VContainer,VDialog,VIcon,VListItem,VListItemIcon,VListItemTitle,VRow,VSpacer,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('confirm',{scopedSlots:_vm._u([{key:\"activator-element\",fn:function(){return [(_vm.isMenuitem)?_c('v-list-item',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('titles.remove-precut')))]),_c('v-list-item-icon',[_c('v-icon',{attrs:{\"color\":\"error\",\"right\":\"\"}},[_vm._v(\"mdi-alpha-p\")])],1)],1):_c('v-btn',{attrs:{\"small\":\"\",\"outlined\":\"\",\"color\":\"primary\"}},[_vm._v(\" \"+_vm._s(_vm.$t('titles.remove-precut'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-alpha-p\")])],1)]},proxy:true},{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('titles.remove-precut'))+\" \")]},proxy:true},{key:\"text\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('info.remove-precut'))+\" \")]},proxy:true},{key:\"accept\",fn:function(){return [_c('v-btn',{attrs:{\"color\":\"secondary\"},on:{\"click\":_vm.removeEvent}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.confirm'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-check\")])],1)]},proxy:true}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { ref, PropType, defineComponent } from '@vue/composition-api';\nimport Confirm from '@/components/common/confirm/index.vue';\nimport { BuildingItemCalculation } from '@/models/building-element/interfaces';\nimport { useBatch } from '@/modules/batch';\n\nexport default defineComponent({\n components: {\n Confirm,\n },\n props: {\n item: {\n type: Object as PropType,\n required: true,\n },\n isMenuitem: {\n type: Boolean,\n },\n },\n setup(props, { emit }) {\n const dialog = ref(false);\n\n const { registerItemSaveChangesWithAdditionAndParent } = useBatch();\n\n const removeEvent = async () => {\n props.item.Precut = false;\n registerItemSaveChangesWithAdditionAndParent(props.item);\n emit('close', true);\n dialog.value = false;\n };\n\n return {\n removeEvent,\n dialog,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=4d1659e6&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=4d1659e6&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4d1659e6\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\ninstallComponents(component, {VBtn,VIcon,VListItem,VListItemIcon,VListItemTitle})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport {\n BuildingElementCalculation,\n BuildingItemCalculation,\n} from '@/models/building-element/interfaces';\nimport { defineComponent, PropType, ref } from '@vue/composition-api';\nimport { useCalculation } from '@/modules/calculation';\nimport NobbInfo from '@/components/nobb-info/index.vue';\nimport { DataTableHeader, ItemWithProduct } from '@/models/common/interfaces';\nimport EditTimeEstimate from '@/components/calculation/building-item/edit-time-estimate/index.vue';\nimport RemoveTimeEstimate from '@/components/calculation/building-item/remove-time-estimate/index.vue';\nimport DeleteItem from '@/components/calculation/building-item/delete-item/index.vue';\nimport GetProduct from '@/components/calculation/get-product/index.vue';\nimport ReplaceProducts from '@/components/calculation/building-item/replace-products/index.vue';\nimport BuildingItemStatus from '@/components/calculation/building-item/building-item-status/index.vue';\nimport AddItemToLibrary from '@/components/calculation/building-item/add-item-to-library/index.vue';\nimport { useBatch } from '@/modules/batch';\nimport { useNudge } from '@/modules/nudge';\nimport { BatchType, RowColors } from '@/constants/enum';\nimport {\n getElementTotalByProp,\n getElementTotalTypography,\n} from '@/helpers/building-element';\nimport { onBuildingItemAdjustmentChange } from '@/helpers/building-item';\nimport ProductSearch from '@/components/pricebook/product-search/index.vue';\nimport DataTableRowHandler from '@/components/common/table-row-handler/index.vue';\nimport draggable from 'vuedraggable';\nimport ItemWarnings from '@/components/calculation/building-elements/calc-element/element-warnings/index.vue';\nimport SetPrecut from '@/components/calculation/building-item/set-precut/index.vue';\nimport RemovePrecut from '@/components/calculation/building-item/remove-precut/index.vue';\nimport { calculatedPrice } from '@/helpers/pricebook';\nimport { SearchablePriceListItem } from '@/models/pricebook/interfaces';\n\nexport default defineComponent({\n components: {\n NobbInfo,\n EditTimeEstimate,\n RemoveTimeEstimate,\n DeleteItem,\n ProductSearch,\n GetProduct,\n ReplaceProducts,\n BuildingItemStatus,\n AddItemToLibrary,\n DataTableRowHandler,\n draggable,\n ItemWarnings,\n SetPrecut,\n RemovePrecut,\n },\n props: {\n items: {\n type: Array as PropType>,\n required: true,\n },\n headers: {\n type: Array as PropType>,\n required: true,\n },\n simple: {\n type: Boolean,\n },\n calcElement: {\n type: Object as PropType,\n required: true,\n },\n smallVariant: {\n type: Boolean,\n required: true,\n },\n elevated: {\n type: Boolean,\n },\n },\n setup(props) {\n const {\n NS3420Units,\n projectCalculation,\n getItemsWithSimilarProduct,\n } = useCalculation();\n const {\n registerBuildingItemBatchOperation,\n registerItemSaveChangesWithAdditionAndParent,\n registerBuildingItemsBatchOperation,\n } = useBatch();\n const { amountTransition } = useNudge();\n\n const sameProduct = ref>();\n const product = ref();\n const itemMenu = ref();\n\n const closeMenu = () => {\n if (itemMenu.value && itemMenu.value.length > 0) {\n itemMenu.value.forEach(\n (menu: { isActive: boolean }) => (menu.isActive = false)\n );\n }\n };\n\n const findItems = async (iwp: ItemWithProduct) => {\n if (!iwp.Item?.Id) return;\n\n if (iwp.Item.NOBBNumber) {\n sameProduct.value = getItemsWithSimilarProduct(\n iwp.Item.NOBBNumber,\n iwp.Item.Id\n );\n }\n\n product.value = iwp.PriceListItem;\n iwp.Item.NOBBNumber = product.value.NobbNumber;\n iwp.Item.Price = calculatedPrice(product.value);\n iwp.Item.UnitForOrder = product.value.Unit;\n iwp.Item.PriceListItemName = product.value.Name;\n iwp.Item.PriceListName = product.value.PriceListName;\n iwp.Item.IsModifiedRecently = true;\n\n registerBuildingItemBatchOperation(iwp.Item, BatchType.Save);\n };\n\n const closeEvent = () => {\n sameProduct.value = [];\n product.value = undefined;\n closeMenu();\n };\n\n const replaceAll = async () => {\n if (sameProduct.value && product.value) {\n for (const item of sameProduct.value) {\n item.NOBBNumber = product.value.NobbNumber;\n item.Price = calculatedPrice(product.value);\n item.UnitForOrder = product.value.Unit;\n item.PriceListItemName = product.value.Name;\n item.PriceListName = product.value.PriceListName;\n item.IsModifiedRecently = true;\n }\n registerBuildingItemsBatchOperation(sameProduct.value, BatchType.Save);\n closeEvent();\n }\n };\n\n const itemRowBackground = (item: BuildingItemCalculation) => {\n return item.IsModifiedRecently ? 'modified' : '';\n };\n\n const onDropCallback = (evt: { from: HTMLElement }) => {\n const parent = evt.from as HTMLElement;\n\n if (parent.children) {\n for (let i = 0; i < parent.children.length; i++) {\n const id = parent.children[i].getAttribute('data-id');\n\n if (props.calcElement && id) {\n const item = props.calcElement.BuildingItems.find(\n item => item.Id === id\n );\n if (item) {\n item.SortOrder = i;\n }\n }\n }\n registerBuildingItemsBatchOperation(\n props.calcElement.BuildingItems,\n BatchType.Save\n );\n }\n };\n\n const getRowColor = (item: BuildingItemCalculation) => {\n let color = '';\n if (item.Transport != null && RowColors[item.Transport]) {\n color = RowColors[item.Transport].toLocaleLowerCase();\n }\n return color;\n };\n\n const changeColor = (color: RowColors, item: BuildingItemCalculation) => {\n item.Transport = color;\n registerBuildingItemBatchOperation(item, BatchType.Save);\n };\n\n return {\n registerItemSaveChangesWithAdditionAndParent,\n registerBuildingItemBatchOperation,\n itemRowBackground,\n getElementTotalByProp,\n getElementTotalTypography,\n onBuildingItemAdjustmentChange,\n findItems,\n closeEvent,\n replaceAll,\n onDropCallback,\n changeColor,\n getRowColor,\n projectCalculation,\n BatchType,\n RowColors,\n NS3420Units,\n amountTransition,\n sameProduct,\n allowDrag: true,\n itemMenu,\n closeMenu,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=93187f92&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=93187f92&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"93187f92\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VEditDialog } from 'vuetify/lib/components/VDataTable';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemGroup } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSlideYTransition } from 'vuetify/lib/components/transitions';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTextarea } from 'vuetify/lib/components/VTextarea';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCard,VCheckbox,VCol,VDataTable,VDivider,VEditDialog,VIcon,VList,VListItem,VListItemGroup,VListItemTitle,VMenu,VRow,VSelect,VSlideYTransition,VSpacer,VTextField,VTextarea,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"fullscreen\":\"\",\"hide-overlay\":\"\",\"transition\":\"dialog-bottom-transition\"},on:{\"click:outside\":_vm.close},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [(_vm.isMenuitem)?_c('v-list-item',_vm._g(_vm._b({},'v-list-item',attrs,false),on),[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('calculation.new-building-items')))]),_c('v-list-item-icon',[_c('v-icon',{attrs:{\"right\":\"\",\"color\":\"secondary\"}},[_vm._v(\"mdi-plus\")])],1)],1):_c('v-btn',_vm._g(_vm._b({staticClass:\"ma-3 new-button\",attrs:{\"small\":\"\",\"color\":\"secondary\",\"outlined\":!_vm.primary}},'v-btn',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.$t('calculation.new-building-items'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-plus\")])],1)]}}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',{staticClass:\"add-item-card\",attrs:{\"flat\":\"\",\"tile\":\"\",\"loading\":_vm.loading}},[_c('dialog-title',{attrs:{\"header-text\":_vm.$t('calculation.new-building-items'),\"center\":true},scopedSlots:_vm._u([{key:\"center\",fn:function(){return [_c('v-btn-toggle',{staticClass:\"methods\",attrs:{\"mandatory\":\"\",\"tile\":\"\",\"color\":\"secondary\",\"group\":\"\"}},[_c('v-btn',{attrs:{\"value\":_vm.AddItemMethod.CreateNew},on:{\"click\":function($event){_vm.method = _vm.AddItemMethod.CreateNew}}},[_vm._v(\" \"+_vm._s(_vm.$t('calculation.create-new'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-text-box-plus-outline\")])],1),_c('v-btn',{attrs:{\"value\":\"center\"},on:{\"click\":function($event){_vm.method =\n _vm.method === _vm.AddItemMethod.FromLibrary\n ? undefined\n : _vm.AddItemMethod.FromLibrary}}},[_vm._v(\" \"+_vm._s(_vm.$t('calculation.from-library'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-book\")])],1),_c('v-btn',{attrs:{\"value\":_vm.AddItemMethod.FromCalculation},on:{\"click\":function($event){_vm.method =\n _vm.method === _vm.AddItemMethod.FromCalculation\n ? undefined\n : _vm.AddItemMethod.FromCalculation}}},[_vm._v(\" \"+_vm._s(_vm.$t('calculation.from-calculation'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-calculator \")])],1)],1)]},proxy:true},{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":_vm.close}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)]},proxy:true}])}),_c('v-card-text',{staticClass:\"pa-3\"},[(_vm.element.Id)?_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[(_vm.method === _vm.AddItemMethod.FromCalculation)?[_c('from-calculations',{attrs:{\"elementId\":_vm.element.Id,\"selectItems\":true},on:{\"addItem\":_vm.addFromCalculation}})]:_vm._e(),(_vm.method === _vm.AddItemMethod.FromLibrary)?[_c('from-library',{attrs:{\"selectItems\":true},on:{\"addFromTemplate\":_vm.addFromLibrary}})]:_vm._e(),(_vm.method === _vm.AddItemMethod.CreateNew)?[_c('from-default',{attrs:{\"elementId\":_vm.element.Id},on:{\"addFromDefault\":_vm.addFromDefault}})]:_vm._e()],2),_c('v-col',{staticClass:\"new-col\",attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('v-subheader',{staticClass:\"item-subheader\"},[_vm._v(\" \"+_vm._s(_vm.buildingItems.length === 0 ? _vm.$t('titles.new-building-items') : ((_vm.$t('titles.new-building-items')) + \" (\" + (_vm.buildingItems.length) + \")\"))+\" \")]),_c('v-card-text',[(_vm.buildingItems && _vm.buildingItems.length > 0)?_c('v-expansion-panels',{attrs:{\"tile\":\"\",\"mandatory\":\"\"}},[_c('v-expansion-panel',[_c('v-expansion-panel-header',{staticClass:\"calc-element-header\",scopedSlots:_vm._u([{key:\"actions\",fn:function(){return undefined},proxy:true}],null,false,1648903300)},[_c('span',[_vm._v(\" \"+_vm._s(_vm.element.Items.length > 0 ? ((_vm.element.Name) + \" (\" + (_vm.element.Items.length) + \")\") : _vm.element.Name))])]),_c('v-expansion-panel-content',{staticClass:\"element-content\"},[_c('v-data-table',{ref:\"myTable\",attrs:{\"headers\":_vm.BUILDING_ITEM_HEADERS_SIMPLE,\"items\":_vm.buildingItems,\"loading-text\":_vm.$t('info.loading'),\"no-data-text\":_vm.$t('info.no-data'),\"no-results-text\":_vm.$t('info.no-result'),\"loading\":_vm.loading,\"item-key\":\"Id\",\"items-per-page\":100,\"hide-default-footer\":\"\"},scopedSlots:_vm._u([_vm._l((_vm.BUILDING_ITEM_HEADERS_SIMPLE),function(h){return {key:(\"header.\" + (h.value)),fn:function(ref){return [_c('v-row',{key:h.text,attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\"}},[(h.text)?_c('span',{key:h.value},[_vm._v(\" \"+_vm._s(_vm.$t((\"headers.\" + (h.text.toLowerCase()))))+\" \")]):_vm._e()])],1)]}}}),{key:\"body\",fn:function(){return [_c('draggable',{attrs:{\"list\":_vm.buildingItems,\"tag\":\"tbody\",\"disabled\":!_vm.allowDrag,\"move\":_vm.onMoveCallback,\"options\":{ handle: '.item-draggable' }}},_vm._l((_vm.buildingItems),function(item,index){return _c('data-table-row-handler',{key:index,attrs:{\"item\":item,\"headers\":_vm.BUILDING_ITEM_HEADERS_SIMPLE},scopedSlots:_vm._u([{key:\"item.sort-drag\",fn:function(){return [_c('div',{staticClass:\"item-draggable\"},[_c('v-icon',[_vm._v(\" mdi-drag-variant \")])],1)]},proxy:true},{key:\"item.Price\",fn:function(ref){\n var item = ref.item;\nreturn [(item.Price != null)?_c('div',[_vm._v(\" \"+_vm._s(item.Price.toLocaleString(_vm.$i18n.locale, { maximumFractionDigits: 2, }))+\" \")]):_vm._e()]}},{key:\"item.NOBBNumber\",fn:function(ref){\n var item = ref.item;\nreturn [_vm._v(\" \"+_vm._s(item.NOBBNumber && !isNaN(item.NOBBNumber) ? item.NOBBNumber : '')+\" \")]}},{key:\"item.actions\",fn:function(ref){\n var item = ref.item;\nreturn [_c('v-row',{attrs:{\"dense\":\"\"}},[_c('edit-item',{attrs:{\"buildingItem\":item}}),_c('v-btn',{staticClass:\"ma-1\",attrs:{\"color\":\"error\",\"outlined\":\"\",\"small\":\"\"},on:{\"click\":function($event){return _vm.removeItem(item)}}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.remove')))])],1)]}},{key:\"item.Name\",fn:function(ref){\n var item = ref.item;\nreturn [_c('div',{staticClass:\"emphasized\"},[_vm._v(\" \"+_vm._s(item.Name)+\" \")]),_c('div',[_vm._v(_vm._s(item.PriceListItemName))])]}}],null,true)})}),1)]},proxy:true}],null,true)})],1)],1)],1):_c('kalk-helper',{attrs:{\"title\":_vm.$t('titles.add-new-building-items'),\"message\":_vm.$t('info.add-first-new-item')}})],1)],1)],1):_vm._e()],1)],1),_c('v-footer',{staticClass:\"dialog-footer\",attrs:{\"fixed\":\"\",\"tile\":\"\",\"padless\":\"\"}},[(_vm.projectCalculation)?_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('profession',{attrs:{\"code\":_vm.projectCalculation.Profession &&\n _vm.projectCalculation.Profession.Code,\"iconLeft\":true}})],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-list-item',{staticClass:\"element-prop\",attrs:{\"two-line\":\"\"}},[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.element.Name)+\" \")]),_c('v-list-item-subtitle',[_vm._v(_vm._s(_vm.$t('titles.building-element')))])],1)],1)],1)],1):_vm._e(),_c('v-spacer'),_c('v-btn',{staticClass:\"add-element ma-3\",attrs:{\"color\":\"secondary\",\"disabled\":_vm.buildingItems.length === 0},on:{\"click\":_vm.submit}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.create'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-plus\")])],1),_c('v-btn',{staticClass:\"ma-3\",on:{\"click\":_vm.close}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.cancel'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-close\")])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{staticClass:\"d-flex align-center method-card\",attrs:{\"height\":\"200\",\"hover\":\"\",\"tile\":\"\",\"color\":_vm.selected ? 'secondary' : ''},on:{\"click\":function($event){return _vm.methodSelected(_vm.method)}}},[(!_vm.nobb)?_c('v-icon',{class:_vm.selected ? 'method-icon-active' : 'method-icon'},[_vm._v(_vm._s(_vm.icon))]):_vm._e(),(_vm.nobb && _vm.selected)?_c('v-img',{staticClass:\"method-image\",attrs:{\"width\":\"67\",\"max-height\":\"90\",\"contain\":true,\"src\":require(\"@/assets/images/byggtjeneste_select.svg\")}}):_vm._e(),(_vm.nobb && !_vm.selected)?_c('v-img',{staticClass:\"method-image\",attrs:{\"width\":\"67\",\"max-height\":\"90\",\"contain\":true,\"src\":require(\"@/assets/images/byggtjeneste_unselect.svg\")}}):_vm._e(),_c('span',{class:_vm.selected ? 'method-name-active' : 'method-name'},[_vm._v(_vm._s(_vm.$t(_vm.text)))]),_c('v-scroll-y-transition',[(_vm.selected)?_c('div',{staticClass:\"display-3 flex-grow-1\"}):_vm._e()])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\nimport { AddItemMethod } from '@/constants/enum';\nexport default defineComponent({\n props: {\n method: {\n type: Number,\n required: true,\n },\n selected: {\n type: Boolean,\n required: true,\n },\n icon: {\n type: String,\n },\n text: {\n type: String,\n required: true,\n },\n nobb: {\n type: Boolean,\n },\n },\n setup(props, { emit }) {\n const methodSelected = (m: AddItemMethod) => {\n emit('selectMethod', m);\n };\n return { AddItemMethod, methodSelected };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=d94e69d4&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=d94e69d4&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d94e69d4\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VScrollYTransition } from 'vuetify/lib/components/transitions';\ninstallComponents(component, {VCard,VIcon,VImg,VScrollYTransition})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"max-width\":\"1000\"},on:{\"click:outside\":_vm.close},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"ma-1 white--text\",attrs:{\"small\":\"\",\"icon\":\"\",\"color\":\"primary\",\"outlined\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"mdi-pencil\")])],1)]}}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',{attrs:{\"flat\":\"\",\"tile\":\"\"}},[_c('dialog-title',{attrs:{\"headerText\":_vm.$t('titles.edit')},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":_vm.close}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)]},proxy:true}])}),_c('v-card-text',{staticClass:\"pa-2\"},[_c('from-default',{attrs:{\"editItem\":_vm.buildingItem}})],1),_c('v-card-actions',{staticClass:\"edit-actions pa-4\"},[_c('v-spacer'),_c('v-btn',{staticClass:\"ma-3\",attrs:{\"color\":\"secondary\"},on:{\"click\":function($event){return _vm.submit()}}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.okey'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-check\")])],1),_c('v-btn',{staticClass:\"ma-3\",on:{\"click\":_vm.close}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.close'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-close\")])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(!_vm.editItem)?_c('v-card-title',{staticClass:\"new-title\"},[_c('v-subheader',{staticClass:\"new-subheader\"},[_vm._v(\" \"+_vm._s(_vm.$t('calculation.new-building-item'))+\" \")])],1):_vm._e(),_c('v-card-text',{staticClass:\"pb-15\"},[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-card',{staticClass:\"pa-1\",attrs:{\"tile\":\"\",\"flat\":_vm.editItem != null}},[_c('v-card-title',{staticClass:\"new-title\"},[_c('v-subheader',{staticClass:\"new-subheader\"},[_vm._v(\" \"+_vm._s(_vm.$t('common.part'))+\" \")])],1),_c('v-container',{attrs:{\"fluid\":\"\"}},[(_vm.buildingItem)?_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('labels.name'),\"dense\":\"\",\"outlined\":\"\",\"autofocus\":\"\"},on:{\"focus\":function($event){return $event.target.select()}},model:{value:(_vm.buildingItem.Name),callback:function ($$v) {_vm.$set(_vm.buildingItem, \"Name\", $$v)},expression:\"buildingItem.Name\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\",\"md\":\"3\"}},[_c('v-text-field',{attrs:{\"clearable\":\"\",\"dense\":\"\",\"outlined\":\"\",\"placeholder\":_vm.$t('labels.amount'),\"label\":_vm.$t('labels.amount'),\"type\":\"number\"},on:{\"focus\":function($event){return $event.target.select()}},model:{value:(_vm.buildingItem.Amount),callback:function ($$v) {_vm.$set(_vm.buildingItem, \"Amount\", _vm._n($$v))},expression:\"buildingItem.Amount\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\",\"md\":\"3\"}},[_c('v-select',{attrs:{\"hide-details\":\"\",\"items\":_vm.NS3420Units,\"outlined\":\"\",\"dense\":\"\",\"label\":_vm.$t('labels.unit')},on:{\"focus\":function($event){return $event.target.select()},\"change\":function($event){return _vm.removeSurfaceAndAddition()}},model:{value:(_vm.buildingItem.Unit),callback:function ($$v) {_vm.$set(_vm.buildingItem, \"Unit\", $$v)},expression:\"buildingItem.Unit\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\",\"md\":\"6\"}},[_c('v-text-field',{attrs:{\"clearable\":\"\",\"dense\":\"\",\"outlined\":\"\",\"placeholder\":_vm.$t('labels.factor1'),\"label\":_vm.$t('labels.factor1'),\"type\":\"number\"},on:{\"focus\":function($event){return $event.target.select()}},model:{value:(_vm.buildingItem.Factor1),callback:function ($$v) {_vm.$set(_vm.buildingItem, \"Factor1\", _vm._n($$v))},expression:\"buildingItem.Factor1\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\",\"md\":\"6\"}},[_c('v-text-field',{attrs:{\"clearable\":\"\",\"dense\":\"\",\"outlined\":\"\",\"placeholder\":_vm.$t('labels.factor5'),\"label\":_vm.$t('labels.factor5'),\"type\":\"number\"},on:{\"focus\":function($event){return $event.target.select()}},model:{value:(_vm.buildingItem.Factor5),callback:function ($$v) {_vm.$set(_vm.buildingItem, \"Factor5\", _vm._n($$v))},expression:\"buildingItem.Factor5\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\",\"md\":\"6\"}},[_c('v-text-field',{attrs:{\"clearable\":\"\",\"dense\":\"\",\"outlined\":\"\",\"placeholder\":_vm.$t('labels.milestone'),\"label\":_vm.$t('labels.milestone')},on:{\"focus\":function($event){return $event.target.select()}},model:{value:(_vm.buildingItem.MileStone),callback:function ($$v) {_vm.$set(_vm.buildingItem, \"MileStone\", $$v)},expression:\"buildingItem.MileStone\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\",\"md\":\"6\"}},[_c('v-textarea',{attrs:{\"clearable\":\"\",\"dense\":\"\",\"outlined\":\"\",\"rows\":\"1\",\"auto-grow\":\"\",\"placeholder\":_vm.$t('labels.comments'),\"label\":_vm.$t('labels.comments')},on:{\"focus\":function($event){return $event.target.select()}},model:{value:(_vm.buildingItem.Comments),callback:function ($$v) {_vm.$set(_vm.buildingItem, \"Comments\", $$v)},expression:\"buildingItem.Comments\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-card',{staticClass:\"pa-1\",attrs:{\"outlined\":\"\"}},[_c('v-card-title',{staticClass:\"new-title\"},[_c('v-subheader',{staticClass:\"new-subheader\"},[_vm._v(\" \"+_vm._s(_vm.$t('common.product'))+\" \")]),_c('v-spacer'),(_vm.buildingItem.NOBBNumber)?_c('nobb-info',{attrs:{\"nobbNr\":_vm.buildingItem.NOBBNumber,\"button\":true}}):_vm._e(),_c('get-product',{on:{\"product\":_vm.addFromPricelist}})],1),_c('v-container',{attrs:{\"fluid\":\"\"}},[(_vm.buildingItem)?_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('v-text-field',{attrs:{\"clearable\":\"\",\"dense\":\"\",\"outlined\":\"\",\"placeholder\":_vm.$t('labels.nobb-number'),\"label\":_vm.$t('labels.nobb-number'),\"type\":\"number\"},on:{\"focus\":function($event){return $event.target.select()}},model:{value:(_vm.buildingItem.NOBBNumber),callback:function ($$v) {_vm.$set(_vm.buildingItem, \"NOBBNumber\", _vm._n($$v))},expression:\"buildingItem.NOBBNumber\"}})],1),_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('v-text-field',{attrs:{\"clearable\":\"\",\"dense\":\"\",\"outlined\":\"\",\"placeholder\":_vm.$t('labels.amount-pr-unit'),\"label\":_vm.$t('labels.amount-pr-unit'),\"type\":\"number\"},on:{\"focus\":function($event){return $event.target.select()}},model:{value:(_vm.buildingItem.AmountPrUnit),callback:function ($$v) {_vm.$set(_vm.buildingItem, \"AmountPrUnit\", _vm._n($$v))},expression:\"buildingItem.AmountPrUnit\"}})],1),_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('v-text-field',{attrs:{\"clearable\":\"\",\"placeholder\":_vm.$t('labels.price'),\"label\":_vm.$t('labels.price'),\"dense\":\"\",\"outlined\":\"\",\"type\":\"number\"},on:{\"focus\":function($event){return $event.target.select()}},model:{value:(_vm.buildingItem.Price),callback:function ($$v) {_vm.$set(_vm.buildingItem, \"Price\", _vm._n($$v))},expression:\"buildingItem.Price\"}})],1),_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('v-text-field',{attrs:{\"clearable\":\"\",\"dense\":\"\",\"outlined\":\"\",\"placeholder\":_vm.$t('labels.unit-for-order'),\"label\":_vm.$t('labels.unit-for-order')},on:{\"focus\":function($event){return $event.target.select()}},model:{value:(_vm.buildingItem.UnitForOrder),callback:function ($$v) {_vm.$set(_vm.buildingItem, \"UnitForOrder\", $$v)},expression:\"buildingItem.UnitForOrder\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-text-field',{attrs:{\"dense\":\"\",\"outlined\":\"\",\"readonly\":\"\",\"disabled\":\"\",\"placeholder\":_vm.$t('labels.pricelist-name'),\"label\":_vm.$t('labels.pricelist-name')},on:{\"focus\":function($event){return $event.target.select()}},model:{value:(_vm.buildingItem.PriceListName),callback:function ($$v) {_vm.$set(_vm.buildingItem, \"PriceListName\", $$v)},expression:\"buildingItem.PriceListName\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-text-field',{attrs:{\"dense\":\"\",\"outlined\":\"\",\"readonly\":\"\",\"disabled\":\"\",\"placeholder\":_vm.$t('labels.pricelist-item-name'),\"label\":_vm.$t('labels.pricelist-item-name')},on:{\"focus\":function($event){return $event.target.select()}},model:{value:(_vm.buildingItem.PriceListItemName),callback:function ($$v) {_vm.$set(_vm.buildingItem, \"PriceListItemName\", $$v)},expression:\"buildingItem.PriceListItemName\"}})],1)],1):_vm._e()],1)],1)],1),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-card',{staticClass:\"pa-1\",attrs:{\"outlined\":\"\"}},[_c('v-card-title',{staticClass:\"new-title\"},[_c('v-subheader',{staticClass:\"new-subheader\"},[_vm._v(\" \"+_vm._s(_vm.$t('common.time'))+\" \")]),_c('v-spacer'),_c('get-time',{attrs:{\"existingName\":_vm.buildingItem.Name},on:{\"addFromEstimate\":_vm.addFromEstimate}})],1),_c('v-container',{attrs:{\"fluid\":\"\"}},[(_vm.buildingItem)?_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('v-text-field',{attrs:{\"clearable\":\"\",\"dense\":\"\",\"outlined\":\"\",\"placeholder\":_vm.$t('labels.basetime'),\"label\":_vm.$t('labels.basetime')},on:{\"focus\":function($event){return $event.target.select()}},model:{value:(_vm.buildingItem.BaseTime),callback:function ($$v) {_vm.$set(_vm.buildingItem, \"BaseTime\", $$v)},expression:\"buildingItem.BaseTime\"}})],1),(_vm.hasOpeningAndSurface)?_c('v-col',{attrs:{\"cols\":\"2\"}},[_c('v-text-field',{attrs:{\"clearable\":\"\",\"dense\":\"\",\"outlined\":\"\",\"placeholder\":_vm.$t('labels.surface-addition'),\"label\":_vm.$t('labels.surface-addition'),\"type\":\"number\"},on:{\"focus\":function($event){return $event.target.select()}},model:{value:(_vm.buildingItem.SurfaceAddition),callback:function ($$v) {_vm.$set(_vm.buildingItem, \"SurfaceAddition\", _vm._n($$v))},expression:\"buildingItem.SurfaceAddition\"}})],1):_vm._e(),(_vm.hasOpeningAndSurface)?_c('v-col',{attrs:{\"cols\":\"2\"}},[_c('v-text-field',{attrs:{\"clearable\":\"\",\"dense\":\"\",\"outlined\":\"\",\"placeholder\":_vm.$t('labels.opening-addition'),\"label\":_vm.$t('labels.opening-addition'),\"type\":\"number\"},on:{\"focus\":function($event){return $event.target.select()}},model:{value:(_vm.buildingItem.OpeningAddition),callback:function ($$v) {_vm.$set(_vm.buildingItem, \"OpeningAddition\", _vm._n($$v))},expression:\"buildingItem.OpeningAddition\"}})],1):_vm._e(),_c('v-col',{attrs:{\"cols\":_vm.hasOpeningAndSurface ? 5 : 9}},[_c('v-text-field',{attrs:{\"readonly\":\"\",\"disabled\":\"\",\"dense\":\"\",\"outlined\":\"\",\"placeholder\":_vm.$t('labels.time-estimate-name'),\"label\":_vm.$t('labels.time-estimate-name')},on:{\"focus\":function($event){return $event.target.select()}},model:{value:(_vm.buildingItem.TimeEstimateName),callback:function ($$v) {_vm.$set(_vm.buildingItem, \"TimeEstimateName\", $$v)},expression:\"buildingItem.TimeEstimateName\"}})],1)],1):_vm._e()],1)],1)],1)],1):_vm._e()],1),(!_vm.editItem)?_c('v-row',{staticClass:\"ma-4\"},[_c('v-spacer'),_c('v-btn',{staticClass:\"ma-2\",attrs:{\"outlined\":\"\",\"color\":\"orange\"},on:{\"click\":function($event){return _vm.initItem()}}},[_vm._v(_vm._s(_vm.$t('buttons.reset')))]),_c('v-btn',{staticClass:\"ma-2\",attrs:{\"outlined\":\"\",\"color\":\"secondary\"},on:{\"click\":_vm.addFromDefault}},[_vm._v(_vm._s(_vm.$t('buttons.add')))])],1):_vm._e(),(_vm.timeEstimate)?_c('confirm',{attrs:{\"value\":_vm.confirmDialog,\"customClose\":true},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('info.new-name'))+\" \")]},proxy:true},{key:\"text\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('info.overwrite-name', { old: _vm.buildingItem.Name, new: _vm.timeEstimate.Name, }))+\" \")]},proxy:true},{key:\"accept\",fn:function(){return [_c('v-btn',{staticClass:\"ma-3\",attrs:{\"color\":\"secondary\",\"width\":\"80\"},on:{\"click\":_vm.confirm}},[_vm._v(_vm._s(_vm.$t('buttons.yes'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-check\")])],1),_c('v-btn',{staticClass:\"ma-3\",attrs:{\"width\":\"80\"},on:{\"click\":_vm.deny}},[_vm._v(_vm._s(_vm.$t('buttons.no'))),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-close\")])],1)]},proxy:true}],null,false,4238821402)}):_vm._e()],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{on:{\"click:outside\":_vm.close},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"ma-2\",attrs:{\"small\":\"\",\"color\":\"#ab47bc\",\"outlined\":\"\",\"width\":\"130\"}},'v-btn',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.$t('buttons.get-time'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\",\"small\":\"\"}},[_vm._v(\"mdi-clock-outline\")])],1)]}}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',{attrs:{\"flat\":\"\",\"tile\":\"\"}},[_c('dialog-title',{attrs:{\"headerText\":_vm.$t('titles.get-time')},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":_vm.close}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)]},proxy:true}])}),_c('v-card-text',{staticClass:\"pa-3\"},[_c('time-estimates',{on:{\"selectedEstimate\":_vm.addFromEstimate}})],1),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{staticClass:\"ma-2\",on:{\"click\":_vm.close}},[_vm._v(_vm._s(_vm.$t('buttons.close'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-close\")])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { ESTIMATE_HEADERS } from '@/constants/table-headers';\nimport { defineComponent, ref } from '@vue/composition-api';\nimport Loader from '@/components/loader/index.vue';\nimport DialogTitle from '@/components/common/dialog-title/index.vue';\nimport TimeEstimates from '@/components/time-estimate/index.vue';\nimport { TimeEstimate } from '@/models/time-estimate/interface';\n\nexport default defineComponent({\n components: {\n Loader,\n DialogTitle,\n TimeEstimates,\n },\n props: {},\n setup(props, { emit }) {\n const dialog = ref(false);\n\n const close = async () => {\n dialog.value = false;\n };\n\n const addFromEstimate = (estimate: TimeEstimate) => {\n emit('addFromEstimate', estimate);\n close();\n };\n\n return {\n close,\n addFromEstimate,\n ESTIMATE_HEADERS,\n dialog,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=523034a0&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=523034a0&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"523034a0\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VDialog,VIcon,VSpacer})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport {\n computed,\n defineComponent,\n onMounted,\n onUnmounted,\n PropType,\n ref,\n} from '@vue/composition-api';\nimport GetProduct from '@/components/calculation/get-product/index.vue';\nimport GetTime from '@/components/calculation/get-time/index.vue';\nimport Confirm from '@/components/common/confirm/index.vue';\nimport { BuildingItem } from '@/models/building-element/interfaces';\nimport { createNewDefaultFromElement } from '@/helpers/building-item';\nimport { useCalculation } from '@/modules/calculation';\nimport { useBuildingItem } from '@/modules/building-item';\nimport { TimeEstimate } from '@/models/time-estimate/interface';\nimport NobbInfo from '@/components/nobb-info/index.vue';\nimport { ItemWithProduct } from '@/models/common/interfaces';\nimport { calculatedPrice } from '@/helpers/pricebook';\n\nexport default defineComponent({\n components: {\n GetProduct,\n GetTime,\n Confirm,\n NobbInfo,\n },\n props: {\n elementId: {\n type: String,\n },\n editItem: {\n type: Object as PropType,\n },\n },\n setup(props, { emit }) {\n const { NS3420Units } = useCalculation();\n const { upsertTimeEstimate } = useBuildingItem();\n\n const buildingItem = ref();\n const timeEstimate = ref();\n const confirmDialog = ref(false);\n\n const initItem = () => {\n if (!props.editItem && props.elementId) {\n buildingItem.value = createNewDefaultFromElement(props.elementId);\n } else {\n buildingItem.value = props.editItem;\n }\n timeEstimate.value = undefined;\n };\n\n const addFromPricelist = (iwp: ItemWithProduct) => {\n if (buildingItem.value) {\n buildingItem.value.NOBBNumber = iwp.PriceListItem.NobbNumber;\n buildingItem.value.Price = calculatedPrice(iwp.PriceListItem);\n buildingItem.value.UnitForOrder = iwp.PriceListItem.Unit;\n buildingItem.value.PriceListItemName = iwp.PriceListItem.Name;\n buildingItem.value.PriceListName = iwp.PriceListItem.PriceListName;\n }\n };\n\n const replaceName = (estimate: TimeEstimate) => {\n timeEstimate.value = estimate;\n confirmDialog.value = true;\n };\n\n const confirm = async () => {\n if (timeEstimate.value && buildingItem.value != null) {\n await upsertTimeEstimate(timeEstimate.value, buildingItem.value, true);\n confirmDialog.value = false;\n }\n };\n\n const deny = async () => {\n if (timeEstimate.value && buildingItem.value != null) {\n await upsertTimeEstimate(timeEstimate.value, buildingItem.value, false);\n confirmDialog.value = false;\n }\n };\n\n const addFromEstimate = async (estimate: TimeEstimate) => {\n if (buildingItem.value != null) {\n if (buildingItem.value.Name) {\n replaceName(estimate);\n } else {\n await upsertTimeEstimate(estimate, buildingItem.value, true);\n }\n }\n };\n\n const addFromDefault = () => {\n emit('addFromDefault', buildingItem.value);\n if (!props.editItem) {\n initItem();\n }\n };\n\n const hasProduct = computed(() => {\n return (\n buildingItem?.value?.PriceListName != null &&\n buildingItem?.value?.PriceListItemName != null\n );\n });\n\n const hasTime = computed(() => {\n return (\n buildingItem?.value?.TimeEstimateName != null &&\n buildingItem?.value?.NS3420 != null\n );\n });\n\n const hasOpeningAndSurface = computed(() => {\n return buildingItem.value?.Unit?.toLowerCase() === 'm2';\n });\n\n const removeSurfaceAndAddition = () => {\n if (\n buildingItem.value != null &&\n buildingItem.value?.Unit?.toLowerCase() !== 'm2'\n ) {\n buildingItem.value.SurfaceAddition = 0;\n buildingItem.value.OpeningAddition = 0;\n }\n };\n\n onMounted(() => {\n initItem();\n });\n\n onUnmounted(() => {\n initItem();\n });\n\n return {\n initItem,\n addFromDefault,\n addFromPricelist,\n confirm,\n deny,\n addFromEstimate,\n removeSurfaceAndAddition,\n buildingItem,\n NS3420Units,\n hasProduct,\n hasTime,\n hasOpeningAndSurface,\n timeEstimate,\n confirmDialog,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=1319ba99&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=1319ba99&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1319ba99\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTextarea } from 'vuetify/lib/components/VTextarea';\ninstallComponents(component, {VBtn,VCard,VCardText,VCardTitle,VCol,VContainer,VIcon,VRow,VSelect,VSpacer,VSubheader,VTextField,VTextarea})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { ref, defineComponent, PropType } from '@vue/composition-api';\nimport DialogTitle from '@/components/common/dialog-title/index.vue';\nimport FromDefault from '@/components/calculation/new-building-item/from-default/index.vue';\nimport { BuildingItem } from '@/models/building-element/interfaces';\nimport { useCalculation } from '@/modules/calculation';\n\nconst valid = ref(false);\n\nexport default defineComponent({\n components: {\n DialogTitle,\n FromDefault,\n },\n props: {\n buildingItem: {\n type: Object as PropType,\n required: true,\n },\n },\n setup() {\n const { NS3420Units } = useCalculation();\n const dialog = ref(false);\n\n const close = async () => {\n dialog.value = false;\n };\n\n const submit = async () => {\n close();\n };\n\n return {\n submit,\n close,\n valid,\n dialog,\n NS3420Units,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=23deef78&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=23deef78&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"23deef78\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VDialog,VIcon,VSpacer})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-card-title',{staticClass:\"calc-title\"},[_c('v-select',{attrs:{\"hide-details\":\"\",\"dense\":\"\",\"outlined\":\"\",\"items\":_vm.calculationsByProf,\"prepend-icon\":\"mdi-calculator\",\"label\":_vm.$t('calculation.from-existing-calculations'),\"item-text\":\"Name\",\"item-value\":\"Id\"},on:{\"input\":_vm.handleChange},scopedSlots:_vm._u([{key:\"item\",fn:function(data){return [_vm._v(\" \"+_vm._s(((data.item.ProjectNumber) + \" - \" + (data.item.Name)))+\" \")]}}])}),_c('v-spacer'),_c('v-text-field',{staticClass:\"element-search\",attrs:{\"append-icon\":\"mdi-magnify\",\"label\":_vm.$t('common.search'),\"single-line\":\"\",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"clearable\":\"\",\"autofocus\":\"\",\"disabled\":!_vm.filteredElements},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}})],1),_c('v-card-text',[_c('v-subheader',{staticClass:\"element-subheader\"},[_vm._v(\" \"+_vm._s(_vm.filteredElements.length === 0 ? _vm.$t('titles.building-elements') : ((_vm.$t('titles.building-elements')) + \" (\" + (_vm.filteredElements.length) + \")\"))+\" \")]),(_vm.filteredElements && _vm.filteredElements.length > 0 && !_vm.loading)?_c('v-expansion-panels',{attrs:{\"tile\":\"\",\"value\":_vm.expanded}},_vm._l((_vm.filteredElements),function(element){return _c('v-expansion-panel',{key:element.Id},[_c('v-expansion-panel-header',{staticClass:\"calc-element-header\",scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [(!_vm.selectItems)?_c('v-btn',{attrs:{\"outlined\":\"\",\"color\":\"secondary\",\"small\":\"\"},on:{\"click\":function($event){return _vm.addElement(element)}},nativeOn:{\"click\":function($event){$event.stopPropagation();}}},[_vm._v(_vm._s(_vm.$t('buttons.add')))]):_vm._e()]},proxy:true}],null,true)},[_c('span',[_vm._v(\" \"+_vm._s(element.Items.length > 0 ? ((element.Name) + \" (\" + (element.Items.length) + \")\") : element.Name))])]),_c('v-expansion-panel-content',{staticClass:\"calculation-content\"},[_c('v-data-table',{staticClass:\"element-items\",attrs:{\"headers\":_vm.BUILDING_ITEM_HEADERS_SIMPLE_ALT,\"items\":element.Items,\"item-key\":\"Id\",\"items-per-page\":100,\"search\":_vm.excludeItems ? _vm.search : '',\"loading-text\":_vm.$t('info.loading'),\"no-data-text\":_vm.$t('info.no-data'),\"no-results-text\":_vm.$t('info.no-result'),\"hide-default-footer\":\"\"},scopedSlots:_vm._u([_vm._l((_vm.BUILDING_ITEM_HEADERS_SIMPLE_ALT),function(h){return {key:(\"header.\" + (h.value)),fn:function(ref){return [_c('v-row',{key:h.text,attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\"}},[(h.text)?_c('span',{key:h.value},[_vm._v(\" \"+_vm._s(_vm.$t((\"headers.\" + (h.text.toLowerCase()))))+\" \")]):_vm._e()])],1)]}}}),{key:\"item.actions\",fn:function(ref){\nvar item = ref.item;\nreturn [(_vm.selectItems)?_c('v-btn',{attrs:{\"outlined\":\"\",\"color\":\"secondary\",\"small\":\"\"},on:{\"click\":function($event){return _vm.addItem(item)}}},[_vm._v(_vm._s(_vm.$t('buttons.add')))]):_vm._e()]}}],null,true)})],1)],1)}),1):(!_vm.loading)?_c('v-alert',{attrs:{\"dense\":\"\",\"type\":\"info\",\"tile\":\"\",\"color\":_vm.calculation != null ? 'orange' : 'primary'}},[_vm._v(\" \"+_vm._s(_vm.calculation != null ? _vm.$t('info.no-building-elements') : _vm.$t('info.no-calculation-selected'))+\" \")]):(_vm.loading)?_c('loader',{attrs:{\"margins\":true}}):_vm._e()],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport {\n BUILDING_ELEMENT_HEADERS_SIMPLE_ALT1,\n BUILDING_ITEM_HEADERS_SIMPLE_ALT,\n} from '@/constants/table-headers';\nimport { cleanSource } from '@/helpers/common';\nimport {\n BuildingElement,\n BuildingItem,\n} from '@/models/building-element/interfaces';\nimport { Calculation } from '@/models/calculation/interfaces';\nimport Loader from '@/components/loader/index.vue';\nimport { ProjectOverview } from '@/models/projects/interfaces';\nimport { useCalculation } from '@/modules/calculation';\nimport { defineComponent, onMounted, ref, watch } from '@vue/composition-api';\nimport { sortBuildingElements } from '@/helpers/building-element';\n\nexport default defineComponent({\n props: {\n selectItems: {\n type: Boolean,\n },\n },\n components: {\n Loader,\n },\n setup(props, { emit }) {\n const {\n activeCalculation,\n getCalculationByProfession,\n getCalculation,\n } = useCalculation();\n const calculation = ref();\n const calculationsByProf = ref>([]);\n const loading = ref(false);\n const filteredElements = ref>([]);\n const search = ref('');\n const expanded = ref>([]);\n const excludeItems = ref(props.selectItems);\n\n const handleChange = async (id: string) => {\n loading.value = true;\n calculation.value = await getCalculation(id);\n filteredElements.value = cleanSource(\n calculation.value?.BuildingElements ?? []\n );\n filteredElements.value = sortBuildingElements(filteredElements.value);\n loading.value = false;\n };\n\n watch([search], () => {\n if (calculation.value?.BuildingElements && search.value != null) {\n filteredElements.value = calculation.value.BuildingElements.filter(\n ele =>\n (ele.Name && ele.Name.includes(search.value.toUpperCase())) ||\n ele.Items.find(\n i =>\n i.Name &&\n i.Name.toUpperCase().includes(search.value.toUpperCase())\n )\n );\n } else {\n filteredElements.value = cleanSource(\n calculation.value?.BuildingElements ?? []\n );\n }\n\n if (filteredElements.value.length === 1) {\n expanded.value = [0];\n } else expanded.value = [];\n });\n\n const addElement = (element: BuildingElement) => {\n emit('addElement', element);\n };\n\n const addItem = (item: BuildingItem) => {\n emit('addItem', item);\n };\n\n onMounted(async () => {\n if (activeCalculation?.value?.ProfessionCode) {\n calculationsByProf.value = await getCalculationByProfession(\n activeCalculation?.value?.ProfessionCode\n );\n }\n });\n\n return {\n addElement,\n addItem,\n handleChange,\n calculationsByProf,\n calculation,\n filteredElements,\n expanded,\n excludeItems,\n search,\n loading,\n BUILDING_ELEMENT_HEADERS_SIMPLE_ALT1,\n BUILDING_ITEM_HEADERS_SIMPLE_ALT,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=c8f12dc8&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=c8f12dc8&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c8f12dc8\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VExpansionPanel } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelContent } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelHeader } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanels } from 'vuetify/lib/components/VExpansionPanel';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VAlert,VBtn,VCardText,VCardTitle,VCol,VDataTable,VExpansionPanel,VExpansionPanelContent,VExpansionPanelHeader,VExpansionPanels,VRow,VSelect,VSpacer,VSubheader,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-card-title',{staticClass:\"lib-title\"},[_c('v-combobox',{staticClass:\"select-elements\",attrs:{\"items\":_vm.templates,\"item-text\":\"Name\",\"item-value\":\"Id\",\"label\":_vm.$t('labels.libraries-occupation'),\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"prepend-icon\":\"mdi-book\"},on:{\"change\":_vm.updateElements},model:{value:(_vm.selectedTemplate),callback:function ($$v) {_vm.selectedTemplate=$$v},expression:\"selectedTemplate\"}}),_c('v-spacer'),_c('v-text-field',{staticClass:\"element-search\",attrs:{\"append-icon\":\"mdi-magnify\",\"label\":_vm.$t('common.search'),\"single-line\":\"\",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"disabled\":!_vm.selectedTemplate,\"clearable\":\"\"},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}})],1),_c('v-card-text',[(_vm.filteredElements)?_c('v-subheader',{staticClass:\"element-subheader\"},[_vm._v(\" \"+_vm._s(_vm.filteredElements.length === 0 ? _vm.$t('titles.building-elements') : ((_vm.$t('titles.building-elements')) + \" (\" + (_vm.filteredElements.length) + \")\"))+\" \")]):_vm._e(),(_vm.filteredElements && _vm.filteredElements.length > 0 && !_vm.loading)?_c('v-treeview',{attrs:{\"color\":\"secondary\",\"item-text\":\"Name\",\"item-children\":\"Items\",\"item-key\":\"Id\",\"dense\":\"\",\"items\":_vm.categorizedTemplates,\"return-object\":\"\",\"open-on-click\":\"\"},scopedSlots:_vm._u([{key:\"append\",fn:function(ref){\nvar item = ref.item;\nreturn [(!_vm.selectItems && item.Id)?_c('v-btn',{attrs:{\"outlined\":\"\",\"color\":\"secondary\",\"small\":\"\"},on:{\"click\":function($event){return _vm.addElement(item)}}},[_vm._v(_vm._s(_vm.$t('buttons.add')))]):(_vm.selectItems && !item.Items)?_c('v-btn',{attrs:{\"outlined\":\"\",\"color\":\"secondary\",\"small\":\"\"},on:{\"click\":function($event){return _vm.addItem(item)}}},[_vm._v(_vm._s(_vm.$t('buttons.add')))]):_vm._e()]}}],null,false,230536543)}):(!_vm.loading)?_c('v-alert',{attrs:{\"dense\":\"\",\"type\":\"info\",\"tile\":\"\",\"color\":_vm.selectedTemplate != null ? 'orange' : 'primary'}},[_vm._v(\" \"+_vm._s(_vm.selectedTemplate != null ? _vm.$t('info.no-library-elements') : _vm.$t('info.no-libraries-selected'))+\" \")]):(_vm.loading)?_c('loader',{attrs:{\"margins\":true}}):_vm._e()],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { reactive, toRefs } from '@vue/composition-api';\nimport { CustomError } from '@/models/common/interfaces';\nimport { useApi } from './api';\nimport { isSuccess } from '@/helpers/common';\nimport { useSnackbar } from './snackbar';\nimport { useErrorModal } from './error';\nimport { Ns3451 } from '@/models/standards/ns3451/interfaces';\n\ninterface State {\n Ns3451?: Array;\n error?: CustomError;\n Ns3451Children?: Array;\n}\n\nconst state = reactive({\n Ns3451: undefined,\n error: undefined,\n Ns3451Children: undefined,\n});\n\nexport const useStandards = () => {\n const { snack } = useSnackbar();\n const { errorModal } = useErrorModal();\n\n const getStandards = async (\n force?: boolean\n ): Promise | undefined> => {\n if (state.Ns3451 && !force) {\n return state.Ns3451;\n }\n\n const { get } = useApi('/standard');\n\n try {\n const response = await get();\n if (isSuccess(response.status)) {\n state.Ns3451 = response.data;\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n\n return state.Ns3451;\n };\n\n const getStandardChildren = async (\n force?: boolean\n ): Promise | undefined> => {\n if (state.Ns3451Children && !force) {\n return state.Ns3451Children;\n }\n\n const { get } = useApi('/standard/children');\n\n try {\n const response = await get();\n if (isSuccess(response.status)) {\n state.Ns3451Children = response.data;\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n\n return state.Ns3451Children;\n };\n\n return {\n ...toRefs(state),\n getStandards,\n getStandardChildren,\n };\n};\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, onMounted, ref, watch } from '@vue/composition-api';\nimport { useLibrary } from '@/modules/library';\nimport { useCalculation } from '@/modules/calculation';\nimport {\n BuildingTypeTemplate,\n BuildingElementTemplate,\n BuildingItemTemplate,\n} from '@/models/library/interfaces';\nimport {\n BUILDING_ELEMENT_HEADERS_SIMPLE_ALT2,\n BUILDING_ITEM_HEADERS_SIMPLE_ALT1,\n} from '@/constants/table-headers';\nimport { cleanSource, getIconByProfessionCode } from '@/helpers/common';\nimport Loader from '@/components/loader/index.vue';\nimport { sortBuildingElementTemplatesByNS3451 } from '@/helpers/library';\nimport { useStandards } from '@/modules/standards';\nimport { Ns3451 } from '@/models/standards/ns3451/interfaces';\n\ninterface BuildingElementTemplateNodes extends BuildingElementTemplate {\n Items: Array;\n}\n\ninterface NS3451BuildingTemplates {\n Name: string;\n Items: Array<\n | BuildingElementTemplateNodes\n | BuildingItemTemplate\n | NS3451BuildingTemplates\n >;\n}\n\nexport default defineComponent({\n props: {\n selectItems: {\n type: Boolean,\n },\n },\n components: {\n Loader,\n },\n setup(props, { emit }) {\n const {\n getBuildingTemplatesByProfession,\n getBuildingTemplate,\n } = useLibrary();\n const { activeCalculation } = useCalculation();\n const { getStandards } = useStandards();\n\n const templates = ref>();\n const selectedTemplate = ref();\n const elements = ref>();\n const filteredElements = ref>([]);\n const selected = ref();\n const standards = ref>();\n const categorizedTemplates = ref>([]);\n\n const search = ref('');\n const loading = ref(false);\n\n const groupByToMap = (\n array: T[],\n predicate: (value: T, index: number, array: T[]) => Q\n ) =>\n array.reduce((map, value, index, array) => {\n const key = predicate(value, index, array);\n map.get(key)?.push(value) ?? map.set(key, [value]);\n return map;\n }, new Map());\n\n const getNS3451NameFromStandards = (key: Nullable): string => {\n if (!standards.value || (!key && key?.length !== 3)) return 'Ukjendt';\n\n const topLevel = Number(key.charAt(0));\n const topLevelNS3451 = standards.value.find(s => s.Number === topLevel);\n if (topLevelNS3451) {\n const secondLevel = Number(`${topLevel}${key.charAt(1)}`);\n const secondLevelNS3451 = topLevelNS3451.Children.find(\n s => s.Number === secondLevel\n );\n if (secondLevelNS3451) {\n const thirdLevel = Number(\n `${topLevel}${key.charAt(1)}${key.charAt(2)}`\n );\n const thirdLevelNS3451 = secondLevelNS3451.Children.find(\n s => s.Number === thirdLevel\n );\n if (thirdLevelNS3451) {\n return thirdLevelNS3451.CodeName;\n }\n }\n }\n\n return 'Ukjendt';\n };\n\n const buildNS3451Categories = (\n templates: Array\n ) => {\n const newCategories: Array = [];\n\n const groupedTemplates = groupByToMap(templates, e => e.NS3451);\n\n groupedTemplates.forEach((value, key) => {\n const elementTemplates: Array = [];\n value.forEach(et => {\n const elementNode: BuildingElementTemplateNodes = {\n ...et,\n Name: props.selectItems\n ? `${et.Name} (${et.BuildingItemTemplates.length})`\n : et.Name,\n Items: props.selectItems ? et.BuildingItemTemplates : [],\n };\n elementTemplates.push(elementNode);\n });\n\n const category: NS3451BuildingTemplates = {\n Name: `${getNS3451NameFromStandards(key)} (${value.length})`,\n Items: elementTemplates,\n };\n\n newCategories.push(category);\n });\n\n categorizedTemplates.value = newCategories;\n };\n\n const updateElements = async (template: BuildingElementTemplate) => {\n loading.value = true;\n elements.value = [];\n if (template.Id) {\n const _bt = await getBuildingTemplate(template.Id);\n if (_bt?.BuildingElementTemplates) {\n if (!elements.value) elements.value = [];\n elements.value = _bt.BuildingElementTemplates;\n filteredElements.value = cleanSource(elements.value ?? []);\n filteredElements.value = sortBuildingElementTemplatesByNS3451(\n filteredElements.value\n );\n buildNS3451Categories(filteredElements.value);\n }\n }\n loading.value = false;\n };\n\n watch([search], () => {\n if (elements.value && search.value != null) {\n filteredElements.value = elements.value.filter(\n ele =>\n (ele.Name && ele.Name.includes(search.value.toUpperCase())) ||\n ele.BuildingItemTemplates.find(\n i =>\n i.Name &&\n i.Name.toUpperCase().includes(search.value.toUpperCase())\n ) ||\n ele.NS3451?.toUpperCase().includes(search.value.toUpperCase())\n );\n } else {\n filteredElements.value = cleanSource(elements.value ?? []);\n }\n buildNS3451Categories(filteredElements.value);\n });\n\n const addElement = (elementTemplate: BuildingElementTemplate) => {\n if (elementTemplate) {\n emit('addFromTemplate', elementTemplate);\n }\n };\n\n const addItem = (elementItemTemplate: BuildingItemTemplate) => {\n if (elementItemTemplate) {\n emit('addFromTemplate', elementItemTemplate);\n }\n };\n\n onMounted(async () => {\n if (activeCalculation?.value) {\n templates.value = await getBuildingTemplatesByProfession(\n activeCalculation?.value.ProfessionCode\n );\n standards.value = await getStandards();\n }\n });\n\n return {\n addElement,\n addItem,\n updateElements,\n getIconByProfessionCode,\n search,\n templates,\n loading,\n selectedTemplate,\n filteredElements,\n elements,\n selected,\n BUILDING_ELEMENT_HEADERS_SIMPLE_ALT2,\n BUILDING_ITEM_HEADERS_SIMPLE_ALT1,\n categorizedTemplates,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=735c5e70&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=735c5e70&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"735c5e70\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCombobox } from 'vuetify/lib/components/VCombobox';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTreeview } from 'vuetify/lib/components/VTreeview';\ninstallComponents(component, {VAlert,VBtn,VCardText,VCardTitle,VCombobox,VSpacer,VSubheader,VTextField,VTreeview})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, PropType, ref } from '@vue/composition-api';\nimport Method from '@/components/calculation/method/index.vue';\nimport { cleanSource, getIconByProfessionCode } from '@/helpers/common';\nimport EditItem from '@/components/calculation/new-building-item/edit-item/index.vue';\nimport FromDefault from '@/components/calculation/new-building-item/from-default/index.vue';\nimport FromCalculations from '@/components/calculation/from-calculations/index.vue';\nimport FromLibrary from '@/components/calculation/from-library/index.vue';\nimport DialogTitle from '@/components/common/dialog-title/index.vue';\nimport Profession from '@/components/profession/index.vue';\nimport { TimeEstimate } from '@/models/time-estimate/interface';\nimport { AddItemMethod } from '@/constants/enum';\nimport {\n BuildingElementCalculation,\n BuildingItem,\n} from '@/models/building-element/interfaces';\nimport { BUILDING_ITEM_HEADERS_SIMPLE } from '@/constants/table-headers';\nimport { useBatch } from '@/modules/batch';\nimport { useCalculation } from '@/modules/calculation';\nimport { BuildingItemTemplate } from '@/models/library/interfaces';\nimport { useBuildingItem } from '@/modules/building-item';\nimport { buildItemCalculations } from '@/helpers/building-item';\nimport { v4 as uuidv4 } from 'uuid';\nimport DataTableRowHandler from '@/components/common/table-row-handler/index.vue';\nimport draggable from 'vuedraggable';\nimport KalkHelper from '@/components/common/kalk-helper/index.vue';\n\nexport default defineComponent({\n props: {\n isMenuitem: {\n type: Boolean,\n },\n element: {\n type: Object as PropType,\n required: true,\n },\n primary: {\n type: Boolean,\n },\n },\n components: {\n FromDefault,\n FromLibrary,\n FromCalculations,\n Method,\n DialogTitle,\n EditItem,\n Profession,\n DataTableRowHandler,\n draggable,\n KalkHelper,\n },\n setup(props) {\n const { projectCalculation } = useCalculation();\n\n const loading = ref(false);\n const dialog = ref(false);\n const search = ref('');\n const method = ref(AddItemMethod.CreateNew);\n const estimate = ref();\n\n const buildingItems = ref>([]);\n\n const close = () => {\n estimate.value = undefined;\n search.value = '';\n method.value = AddItemMethod.CreateNew;\n buildingItems.value = [];\n dialog.value = false;\n };\n\n const selectMethod = (sel: AddItemMethod) => {\n method.value = sel;\n };\n\n const addFromDefault = (bic: BuildingItem) => {\n buildingItems.value.push(bic);\n };\n\n const addFromCalculation = (bic: BuildingItem) => {\n const newItem: BuildingItem = cleanSource(bic);\n newItem.Id = uuidv4();\n newItem.BuildingElementId = props.element.Id;\n buildingItems.value.push(newItem);\n };\n\n const addFromLibrary = (template: BuildingItemTemplate) => {\n const { createFromBuildingItemTemplate } = useBuildingItem();\n\n if (props.element.Id) {\n const newItem = createFromBuildingItemTemplate(\n template,\n props.element.Id\n );\n buildingItems.value.push(newItem);\n }\n };\n\n const removeItem = (item: BuildingItem) => {\n const index = buildingItems.value.findIndex(e => e.Id === item.Id);\n if (index >= 0) {\n buildingItems.value.splice(index, 1);\n }\n };\n\n const submit = () => {\n const { registerNewBuildingItems } = useBatch();\n loading.value = true;\n let index = 1;\n for (const item of buildingItems.value) {\n if (props.element && props.element.BuildingItems.length >= 0) {\n item.SortOrder = props.element.BuildingItems.length + index;\n }\n index++;\n }\n registerNewBuildingItems(buildingItems.value);\n const becs = buildItemCalculations(buildingItems.value, props.element);\n becs.forEach(bec => {\n bec.IsRecentlyAdded = true;\n });\n props.element.BuildingItems = props.element.BuildingItems.concat(becs);\n loading.value = false;\n close();\n };\n\n const onMoveCallback = (evt: {\n draggedContext: { element: BuildingItem; futureIndex: number };\n }) => {\n const item = evt.draggedContext.element;\n const itemIdx = evt.draggedContext.futureIndex;\n\n item.SortOrder = itemIdx;\n\n return true;\n };\n\n return {\n addFromCalculation,\n addFromLibrary,\n close,\n getIconByProfessionCode,\n selectMethod,\n submit,\n removeItem,\n addFromDefault,\n onMoveCallback,\n dialog,\n loading,\n method,\n search,\n AddItemMethod,\n buildingItems,\n BUILDING_ITEM_HEADERS_SIMPLE,\n projectCalculation,\n allowDrag: true,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=dd1be368&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=dd1be368&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"dd1be368\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VBtnToggle } from 'vuetify/lib/components/VBtnToggle';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VExpansionPanel } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelContent } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelHeader } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanels } from 'vuetify/lib/components/VExpansionPanel';\nimport { VFooter } from 'vuetify/lib/components/VFooter';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemSubtitle } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VBtn,VBtnToggle,VCard,VCardText,VCol,VDataTable,VDialog,VExpansionPanel,VExpansionPanelContent,VExpansionPanelHeader,VExpansionPanels,VFooter,VIcon,VListItem,VListItemContent,VListItemIcon,VListItemSubtitle,VListItemTitle,VRow,VSpacer,VSubheader})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"max-width\":\"1000\",\"retain-focus\":false},on:{\"click:outside\":_vm.close},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [(_vm.isMenuitem)?_c('v-list-item',_vm._g(_vm._b({},'v-list-item',attrs,false),on),[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('calculation.edit-element')))]),_c('v-list-item-icon',[_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-playlist-edit\")])],1)],1):_c('v-btn',_vm._g(_vm._b({attrs:{\"small\":\"\",\"icon\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-playlist-edit\")])],1)]}}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('element-form',{attrs:{\"element\":_vm.element},on:{\"close\":_vm.close}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{attrs:{\"flat\":\"\",\"tile\":\"\"}},[_c('v-form',{attrs:{\"id\":\"element-form\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.submit.apply(null, arguments)}}},[_c('dialog-title',{attrs:{\"headerText\":_vm.$t('titles.edit-element')},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":_vm.close}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)]},proxy:true}])}),(_vm.element)?_c('v-card-text',{staticClass:\"edit-content\"},[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-subheader',{staticClass:\"field-name\"},[_vm._v(\" \"+_vm._s(_vm.$t('labels.name'))+\"*\")])],1),_c('v-col',{attrs:{\"cols\":\"8\"}},[_c('v-text-field',{attrs:{\"hint\":_vm.$t('labels.name'),\"value\":_vm.element.Name}})],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-subheader',{staticClass:\"field-name\"},[_vm._v(_vm._s(_vm.$t('labels.ns3450'))+\" / \"+_vm._s(_vm.$t('labels.ns3451')))])],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-text-field',{attrs:{\"clearable\":\"\",\"placeholder\":_vm.$t('labels.ns3450')},model:{value:(_vm.element.NS3450),callback:function ($$v) {_vm.$set(_vm.element, \"NS3450\", $$v)},expression:\"element.NS3450\"}})],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-text-field',{attrs:{\"clearable\":\"\",\"placeholder\":_vm.$t('labels.ns3451')},model:{value:(_vm.element.NS3451),callback:function ($$v) {_vm.$set(_vm.element, \"NS3451\", $$v)},expression:\"element.NS3451\"}})],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-subheader',[_vm._v(_vm._s(_vm.$t('labels.amount'))+\" / \"+_vm._s(_vm.$t('labels.unit'))+\" \")])],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-text-field',{attrs:{\"clearable\":\"\",\"placeholder\":_vm.$t('labels.amount')},model:{value:(_vm.element.Amount),callback:function ($$v) {_vm.$set(_vm.element, \"Amount\", $$v)},expression:\"element.Amount\"}})],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-select',{attrs:{\"hide-details\":\"\",\"items\":_vm.NS3420Units},model:{value:(_vm.element.Unit.value),callback:function ($$v) {_vm.$set(_vm.element.Unit, \"value\", $$v)},expression:\"element.Unit.value\"}})],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-subheader',{staticClass:\"field-name\"},[_vm._v(_vm._s(_vm.$t('labels.factor1'))+\"* / \"+_vm._s(_vm.$t('labels.factor5')))])],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-text-field',{attrs:{\"clearable\":\"\",\"placeholder\":_vm.$t('labels.factor1')},model:{value:(_vm.element.Factor1),callback:function ($$v) {_vm.$set(_vm.element, \"Factor1\", $$v)},expression:\"element.Factor1\"}})],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-text-field',{attrs:{\"clearable\":\"\",\"placeholder\":_vm.$t('labels.factor5')},model:{value:(_vm.element.Factor5),callback:function ($$v) {_vm.$set(_vm.element, \"Factor5\", $$v)},expression:\"element.Factor5\"}})],1)],1)],1),_c('small',[_vm._v(_vm._s(_vm.$t('common.error-indicator')))])],1):_vm._e(),_c('v-card-actions',{staticClass:\"edit-actions\"},[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"secondary\",\"type\":\"submit\",\"disabled\":!_vm.valid}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.update'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-check\")])],1),_c('v-btn',{on:{\"click\":_vm.close}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.close'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-close\")])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, PropType, computed } from '@vue/composition-api';\nimport DialogTitle from '@/components/common/dialog-title/index.vue';\nimport { BuildingElementCalculation } from '@/models/building-element/interfaces';\nimport { useCalculation } from '@/modules/calculation';\n\nexport default defineComponent({\n components: {\n DialogTitle,\n },\n props: {\n element: {\n type: Object as PropType,\n required: true,\n },\n },\n setup(props, { emit }) {\n const { NS3420Units } = useCalculation();\n const valid = computed(() => {\n return true;\n });\n\n const submit = async () => {\n emit('close', true);\n };\n\n const close = () => {\n emit('close', true);\n };\n\n return {\n submit,\n close,\n NS3420Units,\n valid,\n rules: {\n required: (v: string) => !!v || 'Field is required.',\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=7f6967d6&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=7f6967d6&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7f6967d6\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VContainer,VForm,VIcon,VRow,VSelect,VSpacer,VSubheader,VTextField})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { ref, defineComponent, PropType } from '@vue/composition-api';\nimport { BuildingElementCalculation } from '@/models/building-element/interfaces';\nimport ElementForm from '@/components/forms/element-form/index.vue';\n\nexport default defineComponent({\n components: {\n ElementForm,\n },\n props: {\n element: {\n type: Object as PropType,\n },\n isMenuitem: {\n type: Boolean,\n },\n },\n setup() {\n const dialog = ref(false);\n\n const close = () => {\n dialog.value = false;\n };\n\n return {\n dialog,\n close,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=5713d111&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\ninstallComponents(component, {VBtn,VDialog,VIcon,VListItem,VListItemIcon,VListItemTitle})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('confirm',{scopedSlots:_vm._u([{key:\"activator-element\",fn:function(){return [(_vm.isMenuitem)?_c('v-list-item',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('items.delete-element')))]),_c('v-list-item-icon',[_c('v-icon',{attrs:{\"color\":\"error\",\"right\":\"\"}},[_vm._v(\"mdi-delete\")])],1)],1):_c('v-btn',{staticClass:\"ma-3\",attrs:{\"small\":\"\",\"color\":\"rgba(193, 9, 9, 0.69)\",\"dark\":\"\",\"outlined\":!_vm.primary}},[_vm._v(\" \"+_vm._s(_vm.$t('items.delete-element'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-delete-forever\")])],1)]},proxy:true},{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(((_vm.$t('common.delete')) + \" \" + (_vm.element.Name) + \"?\"))+\" \")]},proxy:true},{key:\"text\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('calculation.delete-warning'))+\" \")]},proxy:true},{key:\"accept\",fn:function(){return [_c('v-btn',{attrs:{\"color\":\"secondary\",\"loading\":_vm.loading},on:{\"click\":_vm.deleteEvent}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.confirm'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-check\")])],1)]},proxy:true}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { ref, PropType, defineComponent } from '@vue/composition-api';\nimport Confirm from '@/components/common/confirm/index.vue';\nimport { BuildingElementCalculation } from '@/models/building-element/interfaces';\nimport { useBuildingElement } from '@/modules/building-element';\nimport router from '@/router/index';\nimport { PROJECT_CALCULATION_PATH } from '@/constants/routes';\n\nexport default defineComponent({\n components: {\n Confirm,\n },\n props: {\n element: {\n type: Object as PropType,\n required: true,\n },\n icon: {\n type: Boolean,\n },\n isMenuitem: {\n type: Boolean,\n },\n primary: {\n type: Boolean,\n },\n routeToCalculation: {\n type: Boolean,\n },\n },\n setup(props) {\n const dialog = ref(false);\n const loading = ref(false);\n\n const { deleteElementFromCalculation } = useBuildingElement();\n\n const deleteEvent = async () => {\n loading.value = true;\n deleteElementFromCalculation(props.element);\n if (props.routeToCalculation) {\n await router.push(PROJECT_CALCULATION_PATH);\n }\n loading.value = false;\n };\n\n return {\n deleteEvent,\n dialog,\n loading,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=765fc1c4&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=765fc1c4&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"765fc1c4\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\ninstallComponents(component, {VBtn,VIcon,VListItem,VListItemIcon,VListItemTitle})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"max-width\":\"500\",\"retain-focus\":false},on:{\"click:outside\":_vm.close},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"ma-3\",attrs:{\"small\":\"\",\"outlined\":!_vm.primary}},'v-btn',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.$t('items.add-to-library'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-shape-square-plus\")])],1)]}}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',{attrs:{\"flat\":\"\",\"tile\":\"\"}},[_c('dialog-title',{attrs:{\"headerText\":_vm.$t('titles.choose-library')},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":_vm.close}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)]},proxy:true}])}),_c('v-card-text',{staticClass:\"pa-5\"},[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"outlined\":\"\",\"dense\":\"\",\"autofocus\":\"\",\"rules\":[_vm.rules.required],\"placeholder\":_vm.$t('labels.name'),\"label\":_vm.$t('labels.name'),\"clearable\":\"\"},on:{\"focus\":function($event){return $event.target.select()}},model:{value:(_vm.newName),callback:function ($$v) {_vm.newName=$$v},expression:\"newName\"}})],1),(_vm.buildingTemplatesByProfession)?_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-select',{attrs:{\"outlined\":\"\",\"dense\":\"\",\"label\":_vm.$t('labels.libraries-occupation'),\"item-text\":\"Name\",\"return-object\":\"\",\"items\":_vm.buildingTemplatesByProfession},model:{value:(_vm.selected),callback:function ($$v) {_vm.selected=$$v},expression:\"selected\"}})],1):_vm._e()],1)],1)],1),_c('v-card-actions',{staticClass:\"pa-5\"},[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"secondary\",\"loading\":_vm.loading,\"disabled\":!_vm.valid},on:{\"click\":_vm.submit}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.add'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-check \")])],1),_c('v-btn',{on:{\"click\":_vm.close}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.close'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-close\")])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport {\n ref,\n defineComponent,\n PropType,\n onMounted,\n computed,\n} from '@vue/composition-api';\nimport DialogTitle from '@/components/common/dialog-title/index.vue';\nimport { translate } from '@/localization';\nimport { useCalculation } from '@/modules/calculation';\nimport { BuildingElementCalculation } from '@/models/building-element/interfaces';\nimport { useLibrary } from '@/modules/library';\nimport { BuildingTypeTemplate } from '@/models/library/interfaces';\n\nexport default defineComponent({\n components: {\n DialogTitle,\n },\n props: {\n element: {\n type: Object as PropType,\n required: true,\n },\n primary: {\n type: Boolean,\n },\n },\n setup(props) {\n const dialog = ref(false);\n const loading = ref(false);\n const selected = ref();\n const newName = ref>(props.element.Name ?? null);\n\n const { projectCalculation } = useCalculation();\n const {\n addElementToLibrary,\n getBuildingTemplatesByProfession,\n buildingTemplatesByProfession,\n } = useLibrary();\n\n const valid = computed(() => {\n return selected.value != null && newName.value;\n });\n\n onMounted(async () => {\n if (\n !buildingTemplatesByProfession.value &&\n projectCalculation.value?.Profession?.Code\n ) {\n await getBuildingTemplatesByProfession(\n projectCalculation.value.Profession.Code,\n true\n );\n }\n });\n\n const close = () => {\n dialog.value = false;\n selected.value = undefined;\n newName.value = null;\n };\n\n const submit = async () => {\n if (selected.value && valid.value && newName.value) {\n loading.value = true;\n await addElementToLibrary(selected.value, props.element, newName.value);\n loading.value = false;\n dialog.value = false;\n }\n };\n\n return {\n close,\n submit,\n buildingTemplatesByProfession,\n dialog,\n loading,\n valid,\n newName,\n selected,\n rules: {\n required: (v: string) => !!v || `${translate('validation.required')}`,\n },\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=59e1766a&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VContainer,VDialog,VIcon,VRow,VSelect,VSpacer,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"max-width\":\"1000\",\"retain-focus\":false},on:{\"click:outside\":function($event){_vm.dialog = false}},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"ma-3\",attrs:{\"small\":\"\",\"outlined\":!_vm.primary}},'v-btn',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.$t('buttons.documentation'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-text-box-multiple\")])],1)]}}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',{attrs:{\"flat\":\"\",\"tile\":\"\"}},[_c('v-card-title',{staticClass:\"documentation-title\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"titles.documentation\"))+\" \"),_c('v-spacer')],1),_c('v-divider'),_c('perfect-scrollbar',{attrs:{\"options\":{\n suppressScrollX: true,\n }}},[_c('v-card-text',{staticClass:\"documentation-message\"},[_c('v-subheader',{staticClass:\"field-name\"},[_vm._v(\" \"+_vm._s(_vm.$t('titles.documentation-type'))+\" \")]),_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-btn-toggle',{attrs:{\"tile\":\"\",\"color\":\"secondary accent-3\",\"group\":\"\"},on:{\"change\":_vm.typeChanged},model:{value:(_vm.selectedDocType),callback:function ($$v) {_vm.selectedDocType=$$v},expression:\"selectedDocType\"}},[_c('v-btn',{attrs:{\"value\":_vm.PublicationType.Fdv}},[_c('span',{staticClass:\"hidden-sm-and-down\"},[_vm._v(\"FDV\")]),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\" mdi-file-document-outline \")])],1),_c('v-btn',{attrs:{\"value\":_vm.PublicationType.Epd}},[_c('span',{staticClass:\"hidden-sm-and-down\"},[_vm._v(\"EPD\")]),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\" mdi-file-document-outline \")])],1),_c('v-btn',{attrs:{\"value\":_vm.PublicationType.Yte}},[_c('span',{staticClass:\"hidden-sm-and-down\"},[_vm._v(\"YTE\")]),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\" mdi-file-document-outline \")])],1),_c('v-btn',{attrs:{\"value\":_vm.PublicationType.Hms}},[_c('span',{staticClass:\"hidden-sm-and-down\"},[_vm._v(\"HMS\")]),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\" mdi-file-document-outline \")])],1),_c('v-btn',{attrs:{\"value\":_vm.PublicationType.Man}},[_c('span',{staticClass:\"hidden-sm-and-down\"},[_vm._v(\"MAN\")]),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\" mdi-file-document-outline \")])],1),_c('v-btn',{attrs:{\"value\":_vm.PublicationType.Pre}},[_c('span',{staticClass:\"hidden-sm-and-down\"},[_vm._v(\"PRE\")]),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\" mdi-file-document-outline \")])],1)],1)],1),_c('v-subheader',{staticClass:\"field-name\"},[_vm._v(\" \"+_vm._s(_vm.$t('titles.building-items'))+\" \")]),_c('v-data-table',{attrs:{\"headers\":_vm.headers,\"items\":_vm.element.BuildingItems,\"item-key\":\"Id\",\"show-select\":\"\",\"hide-default-footer\":\"\",\"items-per-page\":50,\"singleSelect\":false,\"loading-text\":_vm.$t('info.loading'),\"no-data-text\":_vm.$t('info.no-data'),\"no-results-text\":_vm.$t('info.no-result')},scopedSlots:_vm._u([{key:\"header.data-table-select\",fn:function(ref){return [_c('v-simple-checkbox',{attrs:{\"value\":_vm.allSelected,\"ripple\":false},on:{\"click\":_vm.toggleAll}})]}},{key:\"item.data-table-select\",fn:function(ref){\n var item = ref.item;\nreturn [(_vm.loadingItemId === item.Id)?_c('loader',{attrs:{\"small\":true}}):_c('v-simple-checkbox',{attrs:{\"value\":_vm.isSelected(item),\"ripple\":false,\"disabled\":!item.NOBBNumber},on:{\"click\":function($event){item.NOBBNumber && _vm.toggleSingle(item)}}})]}},{key:\"item.PriceListItemName\",fn:function(ref){\n var item = ref.item;\nreturn [_c('div',{staticClass:\"emphasized\"},[_vm._v(\" \"+_vm._s(item.Name)+\" \")]),_c('div',[_vm._v(_vm._s(item.PriceListItemName))])]}},{key:\"item.status\",fn:function(ref){\n var item = ref.item;\nreturn [_c('document-status',{attrs:{\"nobbNr\":item.NOBBNumber,\"status\":item.DocumentationDownloaded}})]}},{key:\"item.actions\",fn:function(ref){\n var item = ref.item;\nreturn [(item.NOBBNumber)?_c('nobb-info',{attrs:{\"nobbNr\":item.NOBBNumber,\"button\":true}}):_vm._e()]}}]),model:{value:(_vm.selected),callback:function ($$v) {_vm.selected=$$v},expression:\"selected\"}})],1)],1),_c('v-card-actions',{staticClass:\"documentation-actions\"},[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"secondary\",\"disabled\":!_vm.valid},on:{\"click\":_vm.downloadAll}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.download'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-download\")])],1),_c('v-btn',{on:{\"click\":function($event){_vm.dialog = false}}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.close'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-close\")])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(!_vm.nobbNr)?_c('v-chip',{staticClass:\"ma-1\",attrs:{\"small\":\"\",\"outlined\":\"\",\"color\":\"warning\"}},[_vm._v(\" \"+_vm._s(_vm.$t('info.no-nobbno'))+\" \")]):(_vm.status === _vm.DocumentationStatus.Default)?_c('v-chip',{staticClass:\"ma-1\",attrs:{\"small\":\"\",\"outlined\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.$t('info.download-ready'))+\" \")]):(_vm.status === _vm.DocumentationStatus.Succeeded)?_c('v-chip',{staticClass:\"ma-1\",attrs:{\"small\":\"\",\"outlined\":\"\",\"color\":\"secondary\"}},[_vm._v(\" \"+_vm._s(_vm.$t('info.downloaded'))+\" \")]):(_vm.status === _vm.DocumentationStatus.Failed)?_c('v-chip',{staticClass:\"ma-1\",attrs:{\"small\":\"\",\"outlined\":\"\",\"color\":\"error\"}},[_vm._v(\" \"+_vm._s(_vm.$t('info.failed'))+\" \")]):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\nimport { DocumentationStatus } from '@/models/building-element/interfaces';\n\nexport default defineComponent({\n props: {\n nobbNr: {\n type: Number,\n },\n status: {\n type: Number,\n },\n },\n setup() {\n return {\n DocumentationStatus,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=51425d7a&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VChip } from 'vuetify/lib/components/VChip';\ninstallComponents(component, {VChip})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { PublicationType } from '@/constants/enum';\nimport { translate } from '@/localization';\nimport {\n BuildingElementCalculation,\n BuildingItemCalculation,\n DocumentationStatus,\n} from '@/models/building-element/interfaces';\nimport { useProductInfo } from '@/modules/product-info';\nimport {\n computed,\n defineComponent,\n onMounted,\n PropType,\n ref,\n} from '@vue/composition-api';\nimport Loader from '../loader/index.vue';\nimport NobbInfo from '@/components/nobb-info/index.vue';\nimport DocumentStatus from '@/components/documentation/document-status/index.vue';\n\nexport default defineComponent({\n components: {\n NobbInfo,\n Loader,\n DocumentStatus,\n },\n props: {\n element: {\n type: Object as PropType,\n required: true,\n },\n primary: {\n type: Boolean,\n },\n },\n setup(props) {\n const dialog = ref(false);\n const selected = ref>();\n const failed = ref>([]);\n const succeeded = ref>([]);\n const selectedDocType = ref(PublicationType.Fdv);\n const loadingItemId = ref>('');\n const loading = ref(false);\n const ranOnce = ref(false);\n\n const typeChanged = async () => {\n if (!selected.value) return;\n\n ranOnce.value = false;\n for (const item of selected.value) {\n item.DocumentationDownloaded = DocumentationStatus.Default;\n }\n };\n\n const toggleSingle = (item: BuildingItemCalculation) => {\n if (!selected.value) return;\n\n const index = selected.value.findIndex(i => i.Id === item.Id);\n if (index >= 0) {\n selected.value.splice(index, 1);\n } else {\n selected.value.push(item);\n }\n };\n const isSelected = (item: BuildingItemCalculation) => {\n if (!selected.value) return;\n\n return selected.value.findIndex(i => i.Id === item.Id) >= 0;\n };\n const toggleAll = () => {\n let allSelected = true;\n const available = props.element.BuildingItems.filter(\n i => i.NOBBNumber != null\n );\n available.forEach(i => {\n if (!isSelected(i)) {\n allSelected = false;\n return;\n }\n });\n if (allSelected) {\n selected.value = [];\n } else {\n selected.value = available;\n }\n return allSelected;\n };\n\n onMounted(() => {\n selected.value = [];\n toggleAll();\n typeChanged();\n });\n\n const allSelected = computed(() => {\n let allSelected = true;\n const available = props.element.BuildingItems.filter(\n i => i.NOBBNumber != null\n );\n available.forEach(i => {\n if (!isSelected(i)) {\n allSelected = false;\n return;\n }\n });\n return allSelected;\n });\n const valid = computed(() => {\n if (selected.value && selected.value.length === 0) return false;\n if (selectedDocType.value == null) return false;\n if (loading.value) return false;\n return true;\n });\n\n const downloadAll = async () => {\n const { getDocumentsByItem } = useProductInfo();\n\n if (!selected.value) return;\n\n loading.value = true;\n ranOnce.value = true;\n for (const item of selected.value) {\n if (item.NOBBNumber) {\n loadingItemId.value = item.Id;\n const fileName = `${(\n item.PriceListItemName ?? `${translate('common.unknown')}`\n ).replace(/ /g, '_')}_${PublicationType[selectedDocType.value]}.pdf`;\n const downloaded = await getDocumentsByItem(\n item.NOBBNumber,\n PublicationType[selectedDocType.value],\n fileName\n );\n\n if (downloaded && item.Id) {\n item.DocumentationDownloaded = DocumentationStatus.Succeeded;\n } else if (item.Id) {\n failed.value.push(item.Id);\n item.DocumentationDownloaded = DocumentationStatus.Failed;\n }\n }\n }\n loading.value = false;\n loadingItemId.value = '';\n };\n return {\n toggleSingle,\n toggleAll,\n isSelected,\n downloadAll,\n typeChanged,\n dialog,\n loadingItemId,\n loading,\n selected,\n headers: [\n {\n text: '',\n value: 'data-table-select',\n cellClass: 'default',\n width: '2%',\n },\n {\n text: '',\n value: 'status',\n cellClass: 'default',\n width: '18%',\n },\n {\n text: `${translate('headers.name')}`,\n value: 'PriceListItemName',\n width: '50%',\n class: 'header-cell',\n cellClass: 'cell-color',\n sortable: false,\n },\n {\n text: `${translate('headers.nobbnumber')}`,\n value: 'NOBBNumber',\n width: '15%',\n class: 'header-cell',\n cellClass: 'cell-color-medium',\n sortable: false,\n },\n {\n text: '',\n value: 'actions',\n width: '15%',\n class: 'header-cell',\n cellClass: 'cell-color-medium',\n sortable: false,\n },\n ],\n allSelected,\n PublicationType,\n selectedDocType,\n valid,\n ranOnce,\n succeeded,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=40419f96&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=40419f96&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"40419f96\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VBtnToggle } from 'vuetify/lib/components/VBtnToggle';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSimpleCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VBtn,VBtnToggle,VCard,VCardActions,VCardText,VCardTitle,VDataTable,VDialog,VDivider,VIcon,VRow,VSimpleCheckbox,VSpacer,VSubheader})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"value\":_vm.active},on:{\"click:outside\":_vm.close}},[_c('v-card',{attrs:{\"flat\":\"\",\"tile\":\"\",\"loading\":_vm.loading}},[_c('dialog-title',{attrs:{\"headerText\":_vm.$t('titles.price-update'),\"halfAndHalf\":true},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-row',{attrs:{\"dense\":\"\",\"align-content\":\"center\"}},[_c('v-spacer'),_c('v-select',{staticClass:\"pricelists\",attrs:{\"dense\":\"\",\"outlined\":\"\",\"label\":_vm.$t('labels.choose-pricelist'),\"item-text\":\"Name\",\"items\":_vm.pricelists,\"return-object\":\"\",\"hide-details\":\"\",\"disabled\":_vm.loading},model:{value:(_vm.chosenPriceList),callback:function ($$v) {_vm.chosenPriceList=$$v},expression:\"chosenPriceList\"}}),_c('v-btn',{staticClass:\"fetch-button\",attrs:{\"color\":\"primary\",\"disabled\":!_vm.chosenPriceList,\"loading\":_vm.fetchingPrices,\"small\":\"\"},on:{\"click\":_vm.fetchPrices}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.get-prices'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-bullseye-arrow\")])],1),_c('v-btn',{staticClass:\"close-icon\",attrs:{\"icon\":\"\"},on:{\"click\":_vm.close}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1)]},proxy:true}])}),_c('v-card-text',{staticClass:\"ma-0 pa-1\"},[(_vm.element.BuildingItems && _vm.element.BuildingItems.length > 0)?_c('v-subheader',{staticClass:\"field-name items-subheader\"},[_vm._v(\" \"+_vm._s(((_vm.$t('titles.building-items')) + \" (\" + (_vm.element.BuildingItems.length) + \")\"))+\" \")]):_vm._e(),_c('perfect-scrollbar',{attrs:{\"options\":{\n suppressScrollX: true,\n }}},[_c('v-data-table',{staticClass:\"building-items\",attrs:{\"headers\":_vm.BUILDING_ITEM_PRICE_UPDATE,\"items\":_vm.element.BuildingItems,\"item-key\":\"Id\",\"loading-text\":_vm.$t('info.loading'),\"no-data-text\":_vm.$t('info.no-data'),\"no-results-text\":_vm.$t('info.no-result'),\"show-select\":\"\",\"items-per-page\":100,\"hide-default-footer\":\"\"},scopedSlots:_vm._u([{key:\"header.data-table-select\",fn:function(ref){return [_c('v-simple-checkbox',{attrs:{\"value\":_vm.allSelected,\"disabled\":!_vm.pricesFetched,\"ripple\":false},on:{\"click\":_vm.toggleAll}})]}},{key:\"item.data-table-select\",fn:function(ref){\n var item = ref.item;\nreturn [_c('v-simple-checkbox',{attrs:{\"value\":_vm.isSelected(item),\"ripple\":false,\"disabled\":!_vm.isEnabled(item)},on:{\"click\":function($event){_vm.isEnabled(item) && _vm.toggleSingle(item)}}})]}},{key:\"item.Name\",fn:function(ref){\n var item = ref.item;\nreturn [_c('div',{staticClass:\"emphasized\"},[_vm._v(\" \"+_vm._s(item.Name)+\" \")]),_c('div',[_vm._v(_vm._s(item.PriceListItemName))])]}},{key:\"item.Status\",fn:function(ref){\n var item = ref.item;\nreturn [_c('building-item-status',{attrs:{\"buildingItemCalc\":item}})]}},{key:\"item.PriceListName\",fn:function(ref){\n var item = ref.item;\nreturn [(item.PriceMatch)?_c('div',[_vm._v(\" \"+_vm._s(item.PriceMatch.BuildingItemPriceListName)+\" \")]):_c('div')]}},{key:\"item.Price\",fn:function(ref){\n var item = ref.item;\nreturn [(item.Price !== null)?_c('div',[_vm._v(\" \"+_vm._s(item.Price.toLocaleString(_vm.$i18n.locale, { maximumFractionDigits: 2, }))+\" \")]):_vm._e()]}},{key:\"item.Unit\",fn:function(ref){\n var item = ref.item;\nreturn [(item.UnitForOrder !== null)?_c('div',[_vm._v(\" \"+_vm._s(item.UnitForOrder)+\" \")]):_vm._e()]}},{key:\"item.NewUnit\",fn:function(ref){\n var item = ref.item;\nreturn [(item.PriceMatch && item.PriceMatch.PriceListUnit)?_c('div',{class:item.PriceMatch.HasDifferentUnit.value\n ? 'emphasize-red'\n : 'emphasize'},[_vm._v(\" \"+_vm._s(item.PriceMatch.PriceListUnit)+\" \")]):_vm._e()]}},{key:\"item.NewPrice\",fn:function(ref){\n var item = ref.item;\nreturn [_c('div',{staticClass:\"emphasize\"},[_vm._v(\" \"+_vm._s(item.PriceMatch && item.PriceMatch.PriceListPrice ? item.PriceMatch.PriceListPrice.toLocaleString( _vm.$i18n.locale, { maximumFractionDigits: 2, } ) : '')+\" \")])]}},{key:\"item.Diff\",fn:function(ref){\n var item = ref.item;\nreturn [(item.PriceMatch && item.PriceMatch.PriceDifference)?_c('div',{staticClass:\"emphasize\"},[_vm._v(\" \"+_vm._s(item.PriceMatch.PriceDifference.value.toLocaleString( _vm.$i18n.locale, { maximumFractionDigits: 2, } ))+\" \")]):_vm._e()]}},{key:\"item.Product\",fn:function(ref){\n var item = ref.item;\nreturn [(\n item.PriceMatch &&\n item.PriceMatch.BuildingItemPriceListItemName\n )?_c('div',{staticClass:\"emphasize\"},[_vm._v(\" \"+_vm._s(item.PriceMatch.BuildingItemPriceListItemName)+\" \")]):_vm._e()]}},{key:\"item.AmountPrUnit\",fn:function(ref){\n var item = ref.item;\nreturn [(_vm.pricesFetched)?_c('v-text-field',{staticClass:\"amountprunit\",attrs:{\"hide-details\":\"\",\"outlined\":\"\",\"dense\":\"\",\"type\":\"number\"},on:{\"change\":function($event){return _vm.amountChange(item)},\"focus\":function($event){return $event.target.select()}},model:{value:(item.AmountPrUnit),callback:function ($$v) {_vm.$set(item, \"AmountPrUnit\", _vm._n($$v))},expression:\"item.AmountPrUnit\"}}):_c('div',[_vm._v(_vm._s(item.AmountPrUnit))])]}},{key:\"item.Discount\",fn:function(ref){\n var item = ref.item;\nreturn [(item.PriceMatch && item.PriceMatch.DiscountPercentage)?_c('div',[_vm._v(\" \"+_vm._s(item.PriceMatch.DiscountPercentage)+\" \")]):_vm._e()]}},{key:\"item.BasePrice\",fn:function(ref){\n var item = ref.item;\nreturn [(item.PriceMatch && item.PriceMatch.BasePrice)?_c('div',[_vm._v(\" \"+_vm._s(item.PriceMatch.BasePrice)+\" \")]):_vm._e()]}},{key:\"item.Actions\",fn:function(ref){\n var item = ref.item;\nreturn [_c('v-row',{staticClass:\"action-row\",attrs:{\"dense\":\"\"}},[(_vm.pricesFetched)?_c('get-product',{attrs:{\"itemCalc\":item,\"iconButton\":true},on:{\"product\":_vm.updateProduct}}):_vm._e(),(!item.Precut && _vm.pricesFetched)?_c('edit-time-estimate',{attrs:{\"item\":item,\"element\":item.BuildingElement,\"iconButton\":true},on:{\"updated\":function($event){return _vm.timeUpdated(item)}}}):_vm._e(),(\n item.IsTimeEstimateAdded.value === true &&\n !item.Precut &&\n _vm.pricesFetched\n )?_c('remove-time-estimate',{attrs:{\"item\":item,\"iconButton\":true},on:{\"updated\":function($event){return _vm.timeUpdated(item)}}}):_vm._e(),(item.NOBBNumber)?_c('nobb-info',{attrs:{\"nobbNr\":item.NOBBNumber,\"iconButton\":true}}):_vm._e()],1)]}}],null,true)})],1)],1),_c('v-card-actions',{staticClass:\"pa-5\"},[_c('v-spacer'),_c('v-btn',{staticClass:\"ma-2\",attrs:{\"color\":\"secondary\",\"disabled\":!_vm.valid,\"loading\":_vm.updatingPrices},on:{\"click\":_vm.priceUpdate}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.update'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-update\")])],1),_c('v-btn',{staticClass:\"ma-2\",on:{\"click\":_vm.close}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.cancel'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-close\")])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport {\n BuildingElementCalculation,\n BuildingItemCalculation,\n ItemStatus,\n} from '@/models/building-element/interfaces';\nimport {\n PriceListTreeNode,\n PriceMatch,\n SearchablePriceListItem,\n} from '@/models/pricebook/interfaces';\nimport { usePriceBook } from '@/modules/pricebook';\nimport ContentBar from '@/components/common/content-bar/index.vue';\nimport BuildingItemStatus from '@/components/calculation/building-item/building-item-status/index.vue';\nimport {\n defineComponent,\n onMounted,\n ref,\n PropType,\n computed,\n} from '@vue/composition-api';\nimport { BUILDING_ITEM_PRICE_UPDATE } from '@/constants/table-headers';\nimport { areUnitsEqual, unitDescriptionConverter } from '@/helpers/common';\nimport { translate } from '@/localization';\nimport { useBuildingItem } from '@/modules/building-item';\nimport DialogTitle from '@/components/common/dialog-title/index.vue';\nimport EditTimeEstimate from '@/components/calculation/building-item/edit-time-estimate/index.vue';\nimport RemoveTimeEstimate from '@/components/calculation/building-item/remove-time-estimate/index.vue';\nimport GetProduct from '@/components/calculation/get-product/index.vue';\nimport NobbInfo from '@/components/nobb-info/index.vue';\nimport { useBatch } from '@/modules/batch';\nimport { ItemWithProduct } from '@/models/common/interfaces';\nimport { BatchType } from '@/constants/enum';\nimport { calculatedPrice } from '@/helpers/pricebook';\n\nexport default defineComponent({\n components: {\n ContentBar,\n BuildingItemStatus,\n DialogTitle,\n EditTimeEstimate,\n RemoveTimeEstimate,\n GetProduct,\n NobbInfo,\n },\n props: {\n element: {\n type: Object as PropType,\n required: true,\n },\n active: {\n type: Boolean,\n required: true,\n },\n },\n setup(props, { emit }) {\n const {\n getPriceLists,\n updatePricesFromNOBBNumbers,\n pricelists,\n } = usePriceBook();\n const { updateBuildingItemPrices } = useBuildingItem();\n const {\n registerItemSaveChangesWithAdditionAndParent,\n registerBuildingItemBatchOperation,\n } = useBatch();\n const loading = ref(false);\n const fetchingPrices = ref(false);\n const updatingPrices = ref(false);\n const chosenPriceList = ref();\n const pricesFetched = ref(false);\n const selected = ref>();\n const searchablePriceListItems = ref>();\n\n const toggleSingle = (item: BuildingItemCalculation) => {\n if (!selected.value) selected.value = [];\n\n const index = selected.value.findIndex(i => i.Id === item.Id);\n if (index >= 0) {\n selected.value.splice(index, 1);\n } else {\n selected.value.push(item);\n }\n };\n const isSelected = (item: BuildingItemCalculation) => {\n if (!selected.value) return;\n\n return selected.value.findIndex(i => i.Id === item.Id) >= 0;\n };\n\n const isEnabled = (item: BuildingItemCalculation) => {\n let enable = true;\n\n if (!pricesFetched.value || !item.NOBBNumber) {\n enable = false;\n }\n\n if (\n (item.Status && item.Status.StatusType === ItemStatus.MatchNoDiff) ||\n (item.Status && item.Status.StatusType === ItemStatus.MissingNobb)\n ) {\n enable = false;\n }\n\n return enable;\n };\n\n const toggleAll = () => {\n if (!pricesFetched.value) return;\n let allSelected = true;\n const available = props.element.BuildingItems.filter(i => isEnabled(i));\n available.forEach(i => {\n if (!isSelected(i)) {\n allSelected = false;\n return;\n }\n });\n if (allSelected) {\n selected.value = [];\n } else {\n selected.value = available;\n }\n return allSelected;\n };\n\n const allSelected = computed(() => {\n let allSelected = true;\n const available = props.element.BuildingItems.filter(\n i => i.NOBBNumber != null\n );\n available.forEach(i => {\n if (!isSelected(i)) {\n allSelected = false;\n return;\n }\n });\n return allSelected;\n });\n\n const updatePriceMatchStatus = (items: Array) => {\n items.forEach(item => {\n if (item.PriceMatch) {\n if (item.PriceMatch.HasDifferentUnit.value) {\n item.Status = {\n StatusColor: 'error',\n StatusText: `${translate('info.match-unit-diff')}`,\n StatusType: ItemStatus.MatchWithUnitDiff,\n };\n } else if (item.PriceMatch.HasPrice.value) {\n item.Status = {\n StatusColor: 'secondary',\n StatusText: `${translate('info.match-price-diff')}`,\n StatusType: ItemStatus.MatchWithPriceDiff,\n };\n }\n } else if (item.NOBBNumber) {\n item.Status = {\n StatusColor: 'orange',\n StatusText: `${translate('info.match-no-hit')}`,\n StatusType: ItemStatus.MatchNoDiff,\n };\n }\n });\n };\n\n const setPriceMatches = (\n items: Array,\n priceListItems: Array,\n withoutChecking?: boolean\n ) => {\n items.forEach(item => {\n const priceListItem = priceListItems.find(\n pItem => item.NOBBNumber && item.NOBBNumber === pItem.NobbNumber\n );\n\n if (priceListItem) {\n const priceMatch: PriceMatch = {\n BuildingElementId: item.BuildingElementId ?? null,\n BuildingElementName: item.BuildingElement?.Name ?? null,\n BuildingItemId: item.Id,\n Name: item.Name,\n NobbNumber: item.NOBBNumber ?? null,\n Price: item.Price ?? null,\n BuildingItemPriceListItemName: item.PriceListItemName,\n BuildingItemPriceListName: item.PriceListName ?? null,\n UnitForOrder: item.UnitForOrder,\n PriceDifference: computed(() => {\n let diff = 0;\n if (priceMatch.Price && priceMatch.PriceListPrice) {\n diff = priceMatch.PriceListPrice - priceMatch.Price;\n }\n return diff;\n }),\n HasDifferentUnit: computed(() => {\n let diffUnit = false;\n\n if (priceMatch.UnitForOrder && priceMatch.PriceListUnit) {\n diffUnit = !areUnitsEqual(\n priceMatch.UnitForOrder,\n unitDescriptionConverter(priceMatch.PriceListUnit)\n );\n }\n\n return diffUnit;\n }),\n HasPrice: computed(() => {\n let priceFound = false;\n\n if (\n priceMatch.PriceListPrice != null &&\n priceMatch.PriceListPrice !== 0\n ) {\n priceFound = true;\n }\n return priceFound;\n }),\n ShouldAutoSelect: computed(() => {\n return (\n priceMatch.HasPrice.value && !priceMatch.HasDifferentUnit.value\n );\n }),\n PriceListItemName: priceListItem.Name,\n PriceListUnit: priceListItem.Unit,\n DiscountPercentage: priceListItem.DiscountPercentage ?? null,\n BasePrice: priceListItem.BasePrice ?? null,\n PriceListPrice: 0,\n };\n\n if (priceListItem.BasePrice) {\n let discountPercentage = 0;\n\n if (priceListItem.DiscountPercentage) {\n discountPercentage = priceListItem.DiscountPercentage;\n }\n\n priceMatch.PriceListPrice =\n (priceListItem.BasePrice * (100 - discountPercentage)) / 100;\n }\n\n item.PriceMatch = priceMatch;\n if (priceMatch.ShouldAutoSelect.value && !withoutChecking) {\n toggleSingle(item);\n }\n }\n });\n\n updatePriceMatchStatus(items);\n };\n\n const timeUpdated = (item: BuildingItemCalculation) => {\n if (searchablePriceListItems.value) {\n registerBuildingItemBatchOperation(item, BatchType.Save);\n setPriceMatches(\n props.element.BuildingItems,\n searchablePriceListItems.value,\n true\n );\n }\n };\n\n const clearPriceMatches = (items: Array) => {\n items.forEach(item => {\n item.PriceMatch = null;\n item.Status = null;\n });\n };\n\n const updateProduct = (iwp: ItemWithProduct) => {\n if (searchablePriceListItems.value && iwp.Item && iwp.PriceListItem) {\n iwp.Item.NOBBNumber = iwp.PriceListItem.NobbNumber;\n iwp.Item.Price = calculatedPrice(iwp.PriceListItem);\n iwp.Item.UnitForOrder = iwp.PriceListItem.Unit;\n iwp.Item.PriceListItemName = iwp.PriceListItem.Name;\n iwp.Item.PriceListName = iwp.PriceListItem.PriceListName;\n iwp.Item.IsModifiedRecently = true;\n registerBuildingItemBatchOperation(iwp.Item, BatchType.Save);\n\n setPriceMatches(\n props.element.BuildingItems,\n searchablePriceListItems.value,\n true\n );\n }\n };\n\n const reset = () => {\n pricesFetched.value = false;\n selected.value = undefined;\n searchablePriceListItems.value = undefined;\n\n clearPriceMatches(props.element.BuildingItems);\n };\n\n const amountChange = (item: BuildingItemCalculation) => {\n if (searchablePriceListItems.value) {\n registerItemSaveChangesWithAdditionAndParent(item);\n setPriceMatches(\n props.element.BuildingItems,\n searchablePriceListItems.value,\n true\n );\n }\n };\n\n const close = () => {\n reset();\n chosenPriceList.value = undefined;\n emit('cancelUpdate', true);\n };\n\n const fetchPrices = async () => {\n if (!chosenPriceList.value?.Id) return;\n\n const nobbs: Array = [];\n\n reset();\n\n props.element.BuildingItems.forEach(bi => {\n if (bi.NOBBNumber) {\n nobbs.push(bi.NOBBNumber);\n }\n });\n\n fetchingPrices.value = true;\n\n try {\n searchablePriceListItems.value = await updatePricesFromNOBBNumbers(\n chosenPriceList.value.Id,\n nobbs\n );\n pricesFetched.value = true;\n } catch (e) {\n console.log(e);\n } finally {\n fetchingPrices.value = false;\n }\n\n if (searchablePriceListItems.value) {\n setPriceMatches(\n props.element.BuildingItems,\n searchablePriceListItems.value\n );\n }\n };\n\n const valid = computed(() => {\n let canUpdate = true;\n\n if (!pricesFetched.value) {\n canUpdate = false;\n }\n\n if (!selected.value || selected.value.length === 0) {\n canUpdate = false;\n }\n\n return canUpdate;\n });\n\n const priceUpdate = async () => {\n if (!valid || !selected.value || !chosenPriceList.value?.Name) return;\n\n updatingPrices.value = true;\n await updateBuildingItemPrices(\n selected.value,\n chosenPriceList.value.Name\n );\n updatingPrices.value = false;\n close();\n };\n\n onMounted(async () => {\n loading.value = true;\n await getPriceLists();\n loading.value = false;\n selected.value = [];\n });\n\n return {\n priceUpdate,\n fetchPrices,\n toggleSingle,\n isSelected,\n toggleAll,\n close,\n isEnabled,\n amountChange,\n updateProduct,\n timeUpdated,\n BUILDING_ITEM_PRICE_UPDATE,\n pricelists,\n allSelected,\n chosenPriceList,\n loading,\n valid,\n fetchingPrices,\n pricesFetched,\n updatingPrices,\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=f65cd386&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=f65cd386&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f65cd386\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSimpleCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VDataTable,VDialog,VIcon,VRow,VSelect,VSimpleCheckbox,VSpacer,VSubheader,VTextField})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport {\n BatchType,\n CalculationColumnView,\n RowColorsElement,\n} from '@/constants/enum';\nimport {\n BuildingElementCalculation,\n ItemStatus,\n} from '@/models/building-element/interfaces';\nimport { DataTableHeader } from '@/models/common/interfaces';\nimport { useBatch } from '@/modules/batch';\nimport { useCalculation } from '@/modules/calculation';\nimport { useLibrary } from '@/modules/library';\nimport { computed, defineComponent, PropType, ref } from '@vue/composition-api';\nimport ElementPropItem from '@/components/calculation/building-elements/element-prop-item/index.vue';\nimport AdditionItem from '@/components/calculation/addition-item/index.vue';\nimport BuildingItem from '@/components/calculation/building-item/index.vue';\nimport NewItem from '@/components/calculation/new-building-item/index.vue';\nimport EditElement from '@/components/calculation/edit-element/index.vue';\nimport DeleteElement from '@/components/calculation/delete-element/index.vue';\nimport AddToLibrary from '@/components/calculation/building-elements/add-to-library/index.vue';\nimport Documentation from '@/components/documentation/index.vue';\nimport ElementWarnings from '@/components/calculation/building-elements/calc-element/element-warnings/index.vue';\nimport { PROJECT_CALCULATION_BUILDING_ELEMENT_PATH } from '@/constants/routes';\nimport { useNudge } from '@/modules/nudge';\nimport PriceUpdate from '@/components/calculation/building-elements/calc-element/price-update/index.vue';\nimport { translate } from '@/localization';\n\nexport default defineComponent({\n components: {\n ElementPropItem,\n AdditionItem,\n BuildingItem,\n NewItem,\n EditElement,\n DeleteElement,\n Documentation,\n AddToLibrary,\n ElementWarnings,\n PriceUpdate,\n },\n props: {\n element: {\n type: Object as PropType,\n required: true,\n },\n smallVariant: {\n type: Boolean,\n required: true,\n },\n search: {\n type: String,\n required: true,\n },\n columns: {\n type: Array as PropType>,\n required: true,\n },\n columnView: {\n type: Number,\n required: true,\n },\n },\n setup(props) {\n const {\n registerElementSaveChangesWithChildren,\n registerElementBatchOperation,\n } = useBatch();\n const { activeTemplate } = useLibrary();\n const { NS3420Units } = useCalculation();\n\n const changeColor = (\n color: RowColorsElement,\n element: BuildingElementCalculation\n ) => {\n element.Transport = color;\n registerElementBatchOperation(element, BatchType.Save);\n };\n\n const getRowColor = (element: BuildingElementCalculation) => {\n let color = '';\n if (element.Transport != null && RowColorsElement[element.Transport]) {\n color = RowColorsElement[element.Transport].toLocaleLowerCase();\n }\n return `${color} lighten-5 element-header`;\n };\n\n const updateProducts = ref(false);\n\n const cancelPriceUpdate = () => {\n updateProducts.value = false;\n };\n\n const initPriceUpdate = async (element: BuildingElementCalculation) => {\n if (element.BuildingItems) {\n element.BuildingItems.forEach(item => {\n if (!item.NOBBNumber) {\n item.Status = {\n StatusColor: 'primary',\n StatusText: `${translate('info.no-nobbno')}`,\n StatusType: ItemStatus.MissingNobb,\n };\n }\n });\n }\n\n updateProducts.value = true;\n };\n\n const amountEnabled = computed(() => {\n const enabledWhen: Array = [\n CalculationColumnView.Calculation,\n CalculationColumnView.HourlyConsumption,\n CalculationColumnView.Materials,\n CalculationColumnView.Economy,\n ];\n return enabledWhen.includes(props.columnView);\n });\n\n const milestoneEnabled = computed(() => {\n const enabledWhen: Array = [\n CalculationColumnView.Delivery,\n ];\n return enabledWhen.includes(props.columnView);\n });\n\n const factor1Enabled = computed(() => {\n const enabledWhen: Array = [\n CalculationColumnView.HourlyConsumption,\n ];\n return enabledWhen.includes(props.columnView);\n });\n\n const productionLineEnabled = computed(() => {\n const enabledWhen: Array = [\n CalculationColumnView.Delivery,\n ];\n return enabledWhen.includes(props.columnView);\n });\n\n const FDVEnabled = computed(() => {\n const enabledWhen: Array = [\n CalculationColumnView.Materials,\n CalculationColumnView.Delivery,\n ];\n return enabledWhen.includes(props.columnView);\n });\n\n const deliveryOrderEnabled = computed(() => {\n const enabledWhen: Array = [\n CalculationColumnView.Calculation,\n CalculationColumnView.Materials,\n CalculationColumnView.Delivery,\n ];\n return enabledWhen.includes(props.columnView);\n });\n\n const registerAndNudge = (element: BuildingElementCalculation) => {\n const { nudgeAmount } = useNudge();\n\n registerElementSaveChangesWithChildren(element);\n nudgeAmount();\n };\n\n const changeEvent = (element: BuildingElementCalculation) => {\n element.IsExpanded = !element.IsExpanded;\n };\n\n return {\n registerElementBatchOperation,\n registerElementSaveChangesWithChildren,\n changeEvent,\n changeColor,\n registerAndNudge,\n initPriceUpdate,\n cancelPriceUpdate,\n getRowColor,\n RowColorsElement,\n BatchType,\n activeTemplate,\n NS3420Units,\n amountEnabled,\n milestoneEnabled,\n factor1Enabled,\n productionLineEnabled,\n FDVEnabled,\n deliveryOrderEnabled,\n PROJECT_CALCULATION_BUILDING_ELEMENT_PATH,\n updateProducts,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=7b740ff0&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=7b740ff0&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7b740ff0\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VEditDialog } from 'vuetify/lib/components/VDataTable';\nimport { VExpansionPanel } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelContent } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelHeader } from 'vuetify/lib/components/VExpansionPanel';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTextarea } from 'vuetify/lib/components/VTextarea';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCard,VCol,VDivider,VEditDialog,VExpansionPanel,VExpansionPanelContent,VExpansionPanelHeader,VIcon,VList,VListItem,VListItemTitle,VMenu,VRow,VSelect,VSpacer,VSubheader,VTextField,VTextarea,VTooltip})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport {\n computed,\n ComputedRef,\n defineComponent,\n PropType,\n ref,\n} from '@vue/composition-api';\n\nimport { useCalculation } from '@/modules/calculation';\nimport {\n BUILDING_ELEMENT_HEADERS_CALCULATION,\n BUILDING_ELEMENT_HEADERS_DELIVERY,\n BUILDING_ELEMENT_HEADERS_MATERIALS,\n BUILDING_ELEMENT_HEADERS_ECONOMY,\n BUILDING_ELEMENT_HEADERS_HOURLY_CONSUMPTION,\n} from '@/constants/table-headers';\nimport { BuildingElementCalculation } from '@/models/building-element/interfaces';\nimport { BatchType, CalculationColumnView } from '@/constants/enum';\nimport { DataTableHeader } from '@/models/common/interfaces';\nimport { PROJECT_CALCULATION_OVERVIEW_PATH } from '@/constants/routes';\nimport {\n getCalculationTotalByProp,\n getCalculationTotalTypography,\n} from '@/helpers/calculation';\nimport { useBatch } from '@/modules/batch';\nimport { useLibrary } from '@/modules/library';\nimport CalculationSwitcher from '@/components/calculation/calculation-switcher/index.vue';\nimport KalkHelper from '@/components/common/kalk-helper/index.vue';\nimport PriceList from '@/components/calculation/building-elements/pricelist/index.vue';\nimport BuildingCalcElement from '@/components/calculation/building-elements/calc-element/index.vue';\nimport { v4 as uuidv4 } from 'uuid';\nimport draggable from 'vuedraggable';\n\nexport default defineComponent({\n components: {\n CalculationSwitcher,\n KalkHelper,\n PriceList,\n BuildingCalcElement,\n draggable,\n },\n props: {\n selectable: {\n type: Boolean,\n },\n customElements: {\n type: Array as PropType>,\n },\n customLoader: {\n type: Boolean,\n },\n },\n setup({ customElements }) {\n const {\n NS3420Units,\n projectCalculation,\n updating,\n loading,\n } = useCalculation();\n const {\n registerElementsBatchOperation,\n registerElementSaveChangesWithChildren,\n registerAllBuildingItemSaveChanges,\n } = useBatch();\n const { activeTemplate } = useLibrary();\n const search = ref('');\n const selected = ref>([]);\n const columnView = ref(0);\n const smallVariant = ref(false);\n const key = ref(uuidv4());\n\n const elements: ComputedRef> = computed({\n get() {\n let listed: Array = [];\n if (customElements) {\n listed = customElements;\n } else if (projectCalculation.value?.BuildingElements) {\n listed = projectCalculation.value.BuildingElements;\n }\n return listed;\n },\n set(val) {\n console.log(val);\n },\n });\n\n const expendCalc = computed(() => {\n const exp: Array = [];\n if (projectCalculation?.value?.BuildingElements) {\n projectCalculation?.value?.BuildingElements.forEach((e, i) => {\n if (e.IsExpanded) {\n exp.push(i);\n }\n });\n }\n\n return exp;\n });\n\n const collapseAll = () => {\n if (projectCalculation?.value?.BuildingElements) {\n projectCalculation?.value?.BuildingElements.forEach(e => {\n e.IsExpanded = false;\n });\n }\n };\n\n const columns = computed(() => {\n let headers: Array = [];\n switch (columnView.value) {\n case CalculationColumnView.Calculation:\n smallVariant.value = false;\n headers = BUILDING_ELEMENT_HEADERS_CALCULATION;\n break;\n case CalculationColumnView.HourlyConsumption:\n smallVariant.value = true;\n headers = BUILDING_ELEMENT_HEADERS_HOURLY_CONSUMPTION;\n break;\n case CalculationColumnView.Economy:\n smallVariant.value = false;\n headers = BUILDING_ELEMENT_HEADERS_ECONOMY;\n break;\n case CalculationColumnView.Materials:\n smallVariant.value = false;\n headers = BUILDING_ELEMENT_HEADERS_MATERIALS;\n break;\n case CalculationColumnView.Delivery:\n smallVariant.value = false;\n headers = BUILDING_ELEMENT_HEADERS_DELIVERY;\n break;\n }\n return headers;\n });\n\n const customFilter = (\n _value: string,\n search: string | null,\n item: BuildingElementCalculation\n ) => {\n const searchable = Object.assign({}, item);\n searchable.Project = undefined;\n searchable.BuildingItems.forEach(bi => {\n bi.BuildingElement = undefined;\n });\n searchable.AdditionItems.forEach(ai => {\n ai.BuildingElement = undefined;\n });\n const filterText = JSON.stringify(searchable).toLowerCase();\n if (search) return filterText.includes(search.toLowerCase());\n };\n\n const onDropCallback = () => {\n const panels = document.querySelector('#element-container');\n if (panels) {\n const newPanels = panels.querySelectorAll('.v-expansion-panel');\n newPanels.forEach((panel, i) => {\n const id = panel.querySelector('.element-id') as HTMLInputElement;\n if (id && elements.value) {\n const bEle = elements.value.find(ele => ele.Id === id.value);\n if (bEle) {\n bEle.SortOrder = i;\n }\n }\n });\n if (elements.value) {\n registerElementsBatchOperation(elements.value, BatchType.Save);\n }\n }\n };\n\n return {\n customFilter,\n collapseAll,\n getCalculationTotalByProp,\n getCalculationTotalTypography,\n registerElementSaveChangesWithChildren,\n registerAllBuildingItemSaveChanges,\n onDropCallback,\n NS3420Units,\n projectCalculation,\n CalculationColumnView,\n search,\n selected,\n columnView,\n columns,\n loading,\n PROJECT_CALCULATION_OVERVIEW_PATH,\n updating,\n activeTemplate,\n BatchType,\n smallVariant,\n expendCalc,\n key,\n elements,\n allowDrag: true,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=4da00d3b&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&lang=scss&\"\nimport style1 from \"./index.vue?vue&type=style&index=1&id=4da00d3b&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4da00d3b\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VBtnToggle } from 'vuetify/lib/components/VBtnToggle';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VExpansionPanels } from 'vuetify/lib/components/VExpansionPanel';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VBtnToggle,VCard,VCardTitle,VExpansionPanels,VIcon,VRow,VSkeletonLoader,VSpacer,VSubheader,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-navigation-drawer',{staticClass:\"library-drawer\",attrs:{\"bottom\":\"\",\"hide-overlay\":\"\",\"permanent\":\"\",\"clipped\":\"\",\"fixed\":\"\",\"mini-variant\":_vm.activateLibrary,\"width\":\"400\"},on:{\"update:miniVariant\":function($event){_vm.activateLibrary=$event},\"update:mini-variant\":function($event){_vm.activateLibrary=$event}},model:{value:(_vm.activateLibrary),callback:function ($$v) {_vm.activateLibrary=$$v},expression:\"activateLibrary\"}},[_c('v-list',{attrs:{\"dense\":\"\"}},[_c('v-list-item',{attrs:{\"link\":\"\"},on:{\"click\":function($event){_vm.activateLibrary = !_vm.activateLibrary}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"book\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('titles.building-element-library')))])],1)],1)],1),_c('v-divider'),(!_vm.activateLibrary)?_c('templates',{attrs:{\"elementId\":_vm.elementId}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.activeTemplate)?_c('v-card',{attrs:{\"tile\":\"\",\"flat\":\"\"}},[_c('v-card-title',[_c('v-row',{staticClass:\"ma-1\",attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"9\"}},[_c('v-combobox',{staticClass:\"select-elements\",attrs:{\"items\":_vm.buildingTemplatesByProfession,\"item-text\":\"Name\",\"item-value\":\"Id\",\"dense\":\"\",\"color\":\"primary\",\"label\":_vm.$t('labels.libraries-occupation'),\"width\":\"100%\",\"hide-details\":\"\",\"loading\":_vm.loading},on:{\"change\":_vm.setActiveTemplate},model:{value:(_vm.activeTemplate),callback:function ($$v) {_vm.activeTemplate=$$v},expression:\"activeTemplate\"}})],1),_c('v-col',{attrs:{\"cols\":\"3\"}},[(_vm.activeTemplate)?_c('v-row',{staticClass:\"ma-1\",attrs:{\"dense\":\"\"}},[_c('v-spacer'),_c('delete-template',{attrs:{\"template\":_vm.activeTemplate}}),_c('update-template',{attrs:{\"template\":_vm.activeTemplate}})],1):_vm._e()],1),_c('new-template',{attrs:{\"profession\":_vm.projectCalculation.Profession}})],1),_c('v-spacer'),_c('v-text-field',{staticClass:\"element-search ma-1\",attrs:{\"append-icon\":\"mdi-magnify\",\"label\":_vm.$t('common.search'),\"outlined\":\"\",\"dense\":\"\",\"single-line\":\"\",\"hide-details\":\"\",\"clearable\":\"\",\"autofocus\":\"\"},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}})],1),(_vm.loading)?_c('loading',{attrs:{\"margins\":true}}):_c('perfect-scrollbar',{staticClass:\"library-treeview\",attrs:{\"options\":{\n suppressScrollX: true,\n }}},[_c('v-treeview',{attrs:{\"color\":\"secondary\",\"item-text\":\"Name\",\"item-children\":\"Items\",\"item-key\":\"Id\",\"open-on-click\":\"\",\"items\":_vm.categorizedTemplates,\"return-object\":\"\"},scopedSlots:_vm._u([{key:\"label\",fn:function(ref){\n var item = ref.item;\nreturn [_c('v-tooltip',{attrs:{\"bottom\":\"\",\"max-width\":\"250\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [_c('div',_vm._g(_vm._b({},'div',attrs,false),on),[_vm._v(_vm._s(item.Name))])]}}],null,true)},[_c('span',[_vm._v(_vm._s(item.Name))])])]}},{key:\"append\",fn:function(ref){\n var item = ref.item;\nreturn [_c('div',{staticClass:\"append-container\"},[(\n item.Id &&\n item.BuildingItemTemplates &&\n item.BuildingItemTemplates.length > 0\n )?_c('delete-element-template',{attrs:{\"template\":item}}):(item.Id && !item.BuildingItemTemplates)?_c('delete-item-element-template',{attrs:{\"template\":item}}):_vm._e(),(\n item.BuildingItemTemplates &&\n item.BuildingItemTemplates.length > 0 &&\n !_vm.elementId\n )?_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [(item.Id)?_c('v-btn',_vm._g(_vm._b({staticClass:\"ma-1\",attrs:{\"icon\":\"\",\"small\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){return _vm.createFromBuildingElementTemplate(item)}}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-plus\")])],1):_vm._e()]}}],null,true)},[_c('span',[_vm._v(_vm._s(_vm.$t('labels.add-element-template')))])]):(item.Id && !_vm.elementId && !item.BuildingItemTemplates)?_c('add-item-to-calculation',{attrs:{\"template\":item,\"icon\":true}}):_vm._e()],1)]}}],null,false,905881337)})],1)],1):_c('v-card',{attrs:{\"tile\":\"\",\"flat\":\"\"}},[_c('v-alert',{attrs:{\"dense\":\"\",\"type\":\"info\",\"tile\":\"\",\"color\":\"orange\"}},[_vm._v(\" \"+_vm._s(_vm.$t('info.no-templates'))+\" \")]),_c('new-template',{attrs:{\"profession\":_vm.projectCalculation.Profession,\"first\":true}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('confirm',{scopedSlots:_vm._u([{key:\"activator-element\",fn:function(){return [(_vm.isMenuitem)?_c('v-list-item',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('labels.delete-element-template')))]),_c('v-list-item-icon',[_c('v-icon',{attrs:{\"color\":\"error\",\"right\":\"\"}},[_vm._v(\"mdi-delete-outline\")])],1)],1):_c('v-btn',{attrs:{\"small\":\"\",\"icon\":\"\"}},[_c('v-icon',[_vm._v(\"mdi-delete-outline\")])],1)]},proxy:true},(_vm.template)?{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(((_vm.$t('common.delete')) + \" \" + (_vm.template.Name) + \"?\"))+\" \")]},proxy:true}:null,{key:\"text\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('info.template-element-delete'))+\" \")]},proxy:true},{key:\"accept\",fn:function(){return [_c('v-btn',{attrs:{\"color\":\"secondary\",\"loading\":_vm.loading,\"disabled\":!_vm.valid},on:{\"click\":_vm.deleteEvent}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.confirm'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-check\")])],1)]},proxy:true}],null,true),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { ref, defineComponent, PropType, computed } from '@vue/composition-api';\nimport Confirm from '@/components/common/confirm/index.vue';\nimport { BuildingElementTemplate } from '@/models/library/interfaces';\nimport { useLibrary } from '@/modules/library';\n\nexport default defineComponent({\n components: {\n Confirm,\n },\n props: {\n isMenuitem: {\n type: Boolean,\n },\n template: {\n type: Object as PropType,\n required: true,\n },\n },\n setup(props) {\n const dialog = ref(false);\n const loading = ref(false);\n\n const valid = computed(() => {\n return props.template && props.template.Id;\n });\n\n const deleteEvent = async () => {\n const {\n deleteBuildingElementTemplate,\n initCalculationLibrary,\n } = useLibrary();\n if (props.template.Id) {\n loading.value = true;\n const success = await deleteBuildingElementTemplate(props.template.Id);\n\n if (success) {\n initCalculationLibrary();\n loading.value = false;\n dialog.value = false;\n }\n }\n };\n\n return {\n deleteEvent,\n dialog,\n loading,\n valid,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=6250d9ea&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=6250d9ea&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6250d9ea\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\ninstallComponents(component, {VBtn,VIcon,VListItem,VListItemIcon,VListItemTitle})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('confirm',{scopedSlots:_vm._u([{key:\"activator-element\",fn:function(){return [(_vm.isMenuitem)?_c('v-list-item',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('titles.delete-building-item-template')))]),_c('v-list-item-icon',[_c('v-icon',{attrs:{\"color\":\"error\",\"right\":\"\"}},[_vm._v(\"mdi-delete\")])],1)],1):_c('v-btn',{attrs:{\"small\":\"\",\"icon\":\"\"}},[_c('v-icon',[_vm._v(\"mdi-delete-outline\")])],1)]},proxy:true},(_vm.template)?{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(((_vm.$t('common.delete')) + \" \" + (_vm.template.Name) + \"?\"))+\" \")]},proxy:true}:null,{key:\"text\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('info.template-item-delete'))+\" \")]},proxy:true},{key:\"accept\",fn:function(){return [_c('v-btn',{attrs:{\"color\":\"secondary\",\"loading\":_vm.loading,\"disabled\":!_vm.valid},on:{\"click\":_vm.deleteEvent}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.confirm'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-check\")])],1)]},proxy:true}],null,true),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { ref, defineComponent, PropType, computed } from '@vue/composition-api';\nimport Confirm from '@/components/common/confirm/index.vue';\nimport { BuildingItemTemplate } from '@/models/library/interfaces';\nimport { useLibrary } from '@/modules/library';\n\nexport default defineComponent({\n components: {\n Confirm,\n },\n props: {\n isMenuitem: {\n type: Boolean,\n },\n template: {\n type: Object as PropType,\n required: true,\n },\n },\n setup(props) {\n const dialog = ref(false);\n const loading = ref(false);\n\n const valid = computed(() => {\n return props.template && props.template.Id;\n });\n\n const deleteEvent = async () => {\n const {\n deleteBuildingItemTemplate,\n initCalculationLibrary,\n } = useLibrary();\n if (props.template.Id) {\n loading.value = true;\n const success = await deleteBuildingItemTemplate(props.template.Id);\n\n if (success) {\n initCalculationLibrary();\n loading.value = false;\n dialog.value = false;\n }\n }\n };\n\n return {\n deleteEvent,\n dialog,\n loading,\n valid,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=b2d4604c&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=b2d4604c&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b2d4604c\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\ninstallComponents(component, {VBtn,VIcon,VListItem,VListItemIcon,VListItemTitle})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"max-width\":\"500\",\"retain-focus\":false},on:{\"click:outside\":_vm.close},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [(_vm.icon)?_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\",\"small\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-plus\")])],1):_c('v-list-item',_vm._g(_vm._b({},'v-list-item',attrs,false),on),[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('labels.add-building-item-template')))]),_c('v-list-item-icon',[_c('v-icon',{attrs:{\"color\":\"secondary\",\"right\":\"\"}},[_vm._v(\"mdi-plus\")])],1)],1)]}}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',{attrs:{\"flat\":\"\",\"tile\":\"\"}},[_c('dialog-title',{attrs:{\"headerText\":_vm.$t('titles.choose-building-element')},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":_vm.close}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)]},proxy:true}])}),_c('v-card-text',{staticClass:\"pa-5\"},[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{attrs:{\"dense\":\"\"}},[(_vm.buildingElements)?_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-select',{attrs:{\"outlined\":\"\",\"dense\":\"\",\"label\":_vm.$t('labels.building-elements'),\"item-text\":\"Name\",\"item-value\":\"Id\",\"items\":_vm.buildingElements},model:{value:(_vm.selected),callback:function ($$v) {_vm.selected=$$v},expression:\"selected\"}})],1):_vm._e()],1)],1)],1),_c('v-card-actions',{staticClass:\"pa-5\"},[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"secondary\",\"loading\":_vm.loading,\"disabled\":!_vm.valid},on:{\"click\":_vm.submit}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.add'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-check \")])],1),_c('v-btn',{on:{\"click\":_vm.close}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.close'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-close\")])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { ref, defineComponent, PropType, computed } from '@vue/composition-api';\nimport DialogTitle from '@/components/common/dialog-title/index.vue';\nimport { translate } from '@/localization';\nimport { BuildingItemTemplate } from '@/models/library/interfaces';\nimport { useCalculation } from '@/modules/calculation';\nimport { useBuildingItem } from '@/modules/building-item';\nimport { useBatch } from '@/modules/batch';\nimport { BatchType } from '@/constants/enum';\n\nexport default defineComponent({\n components: {\n DialogTitle,\n },\n props: {\n template: {\n type: Object as PropType,\n required: true,\n },\n icon: {\n type: Boolean,\n },\n },\n setup(props) {\n const dialog = ref(false);\n const loading = ref(false);\n const selected = ref();\n\n const { projectCalculation } = useCalculation();\n const { createBICFromBuildingItemTemplate } = useBuildingItem();\n const { registerBuildingItemBatchOperation } = useBatch();\n\n const valid = computed(() => {\n return selected.value != null;\n });\n\n const close = () => {\n dialog.value = false;\n selected.value = undefined;\n };\n\n const submit = () => {\n if (\n valid &&\n selected.value &&\n props.template &&\n projectCalculation.value?.BuildingElements\n ) {\n const element = projectCalculation.value.BuildingElements.find(\n ele => ele.Id === selected.value\n );\n\n if (element?.Id) {\n const newItemCalc = createBICFromBuildingItemTemplate(\n props.template,\n element,\n element.Id\n );\n element.BuildingItems.push(newItemCalc);\n element.IsExpanded = true;\n registerBuildingItemBatchOperation(newItemCalc, BatchType.Insert);\n }\n\n close();\n }\n };\n\n return {\n close,\n submit,\n dialog,\n loading,\n projectCalculation,\n buildingElements: computed(\n () => projectCalculation.value?.BuildingElements\n ),\n valid,\n selected,\n rules: {\n required: (v: string) => !!v || `${translate('validation.required')}`,\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=2a449509&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VContainer,VDialog,VIcon,VListItem,VListItemIcon,VListItemTitle,VRow,VSelect,VSpacer})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"max-width\":\"500\",\"retain-focus\":false},on:{\"click:outside\":_vm.close},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"small\":\"\",\"icon\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-pencil\")])],1)]}}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',{attrs:{\"flat\":\"\",\"tile\":\"\"}},[_c('dialog-title',{attrs:{\"headerText\":_vm.$t('titles.edit-template')},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":_vm.close}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)]},proxy:true}])}),(_vm.payload)?_c('v-card-text',{staticClass:\"element-new-message pa-5\"},[_c('v-text-field',{attrs:{\"autofocus\":\"\",\"required\":\"\",\"clearable\":\"\",\"outlined\":\"\",\"dense\":\"\",\"label\":_vm.$t('labels.name'),\"placeholder\":_vm.$t('labels.name')},model:{value:(_vm.payload.Name),callback:function ($$v) {_vm.$set(_vm.payload, \"Name\", $$v)},expression:\"payload.Name\"}}),_c('v-text-field',{attrs:{\"placeholder\":_vm.$t('labels.description'),\"label\":_vm.$t('labels.description'),\"clearable\":\"\",\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.payload.Description),callback:function ($$v) {_vm.$set(_vm.payload, \"Description\", $$v)},expression:\"payload.Description\"}})],1):_vm._e(),_c('v-card-actions',{staticClass:\"element-new-actions\"},[_c('v-spacer'),_c('v-btn',{attrs:{\"disabled\":!_vm.valid,\"color\":\"secondary\",\"loading\":_vm.loading},on:{\"click\":_vm.submit}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.update'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-check\")])],1),_c('v-btn',{on:{\"click\":_vm.close}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.close'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-close\")])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport {\n ref,\n defineComponent,\n computed,\n PropType,\n onMounted,\n watch,\n} from '@vue/composition-api';\nimport DialogTitle from '@/components/common/dialog-title/index.vue';\nimport { useLibrary } from '@/modules/library';\nimport { BuildingTypeTemplate } from '@/models/library/interfaces';\nimport { cleanSource } from '@/helpers/common';\n\nexport default defineComponent({\n components: {\n DialogTitle,\n },\n props: {\n template: {\n type: Object as PropType,\n required: true,\n },\n },\n setup(props) {\n const dialog = ref(false);\n const loading = ref(false);\n const payload = ref();\n\n watch(\n () => props.template,\n newVal => {\n payload.value = cleanSource(newVal);\n }\n );\n\n const valid = computed(() => {\n return props.template?.ProfessionCode && payload.value;\n });\n\n onMounted(() => {\n payload.value = cleanSource(props.template);\n });\n\n const close = () => {\n payload.value = undefined;\n dialog.value = false;\n };\n\n const submit = async () => {\n const {\n updateBuildingTypeTemplate,\n initCalculationLibrary,\n } = useLibrary();\n\n if (props.template?.ProfessionCode && payload.value) {\n loading.value = true;\n const success = await updateBuildingTypeTemplate(payload.value);\n if (success) {\n initCalculationLibrary();\n loading.value = false;\n close();\n }\n }\n };\n\n return {\n submit,\n close,\n dialog,\n payload,\n valid,\n loading,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=39324882&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=39324882&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"39324882\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VDialog,VIcon,VSpacer,VTextField})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, onMounted, ref, watch } from '@vue/composition-api';\nimport { useLibrary } from '@/modules/library';\nimport { useCalculation } from '@/modules/calculation';\nimport {\n BuildingTypeTemplate,\n BuildingElementTemplate,\n BuildingItemTemplate,\n} from '@/models/library/interfaces';\nimport NewTemplate from '@/components/library/new-template/index.vue';\nimport DeleteTemplate from '@/components/library/delete-template/index.vue';\nimport DeleteElementTemplate from '@/components/library/delete-element-template/index.vue';\nimport DeleteItemElementTemplate from '@/components/library/delete-item-template/index.vue';\nimport AddItemToCalculation from '@/components/library/add-item-to-calculation/index.vue';\nimport UpdateTemplate from '@/components/library/update-template/index.vue';\nimport Loading from '@/components/loader/index.vue';\nimport KalkHelper from '@/components/common/kalk-helper/index.vue';\nimport { useBuildingElement } from '@/modules/building-element';\nimport { useBatch } from '@/modules/batch';\nimport { useBuildingItem } from '@/modules/building-item';\nimport { BatchType } from '@/constants/enum';\nimport { useStandards } from '@/modules/standards';\nimport { Ns3451 } from '@/models/standards/ns3451/interfaces';\n\ninterface BuildingElementTemplateNodes extends BuildingElementTemplate {\n Items: Array;\n}\n\ninterface NS3451BuildingTemplates {\n Name: string;\n Items: Array<\n | BuildingElementTemplateNodes\n | BuildingItemTemplate\n | NS3451BuildingTemplates\n >;\n}\n\nexport default defineComponent({\n components: {\n NewTemplate,\n DeleteTemplate,\n DeleteElementTemplate,\n DeleteItemElementTemplate,\n UpdateTemplate,\n Loading,\n KalkHelper,\n AddItemToCalculation,\n },\n props: {\n elementId: {\n type: String,\n },\n },\n setup(props) {\n const {\n setActiveTemplate,\n activeTemplate,\n loading,\n buildingTemplatesByProfession,\n } = useLibrary();\n const { projectCalculation } = useCalculation();\n const { createFromBuildingElementTemplate } = useBuildingElement();\n const { registerBuildingItemBatchOperation } = useBatch();\n const { createBICFromBuildingItemTemplate } = useBuildingItem();\n const { getStandards } = useStandards();\n\n const elements = ref>();\n const templates = ref>();\n const search = ref>(null);\n const standards = ref>();\n const categorizedTemplates = ref>([]);\n\n const groupByToMap = (\n array: T[],\n predicate: (value: T, index: number, array: T[]) => Q\n ) =>\n array.reduce((map, value, index, array) => {\n const key = predicate(value, index, array);\n map.get(key)?.push(value) ?? map.set(key, [value]);\n return map;\n }, new Map());\n\n const getNS3451NameFromStandards = (key: Nullable): string => {\n if (!standards.value || (!key && key?.length !== 3)) return 'Ukjendt';\n\n const topLevel = Number(key.charAt(0));\n const topLevelNS3451 = standards.value.find(s => s.Number === topLevel);\n if (topLevelNS3451) {\n const secondLevel = Number(`${topLevel}${key.charAt(1)}`);\n const secondLevelNS3451 = topLevelNS3451.Children.find(\n s => s.Number === secondLevel\n );\n if (secondLevelNS3451) {\n const thirdLevel = Number(\n `${topLevel}${key.charAt(1)}${key.charAt(2)}`\n );\n const thirdLevelNS3451 = secondLevelNS3451.Children.find(\n s => s.Number === thirdLevel\n );\n if (thirdLevelNS3451) {\n return thirdLevelNS3451.CodeName;\n }\n }\n }\n\n return 'Ukjendt';\n };\n\n const buildNS3451Categories = (\n templates: Array\n ) => {\n const newCategories: Array = [];\n\n const groupedTemplates = groupByToMap(templates, e => e.NS3451);\n\n groupedTemplates.forEach((value, key) => {\n const elementTemplates: Array = [];\n value.forEach(et => {\n const elementNode: BuildingElementTemplateNodes = {\n ...et,\n Items: et.BuildingItemTemplates,\n };\n elementTemplates.push(elementNode);\n });\n\n const category: NS3451BuildingTemplates = {\n Name: `${getNS3451NameFromStandards(key)} (${value.length})`,\n Items: elementTemplates,\n };\n\n newCategories.push(category);\n });\n\n categorizedTemplates.value = newCategories;\n };\n\n watch(\n () => [activeTemplate.value?.BuildingElementTemplates, search.value],\n ([newTemplates, search]) => {\n if (newTemplates && newTemplates instanceof Array) {\n buildNS3451Categories(newTemplates);\n }\n if (\n search &&\n activeTemplate.value?.BuildingElementTemplates &&\n typeof search === 'string'\n ) {\n const filteredElements = activeTemplate.value.BuildingElementTemplates.filter(\n ele =>\n (ele.Name && ele.Name.includes(search.toUpperCase())) ||\n ele.BuildingItemTemplates.find(\n i =>\n i.Name && i.Name.toUpperCase().includes(search.toUpperCase())\n ) ||\n ele.NS3451?.toUpperCase().includes(search.toUpperCase())\n );\n buildNS3451Categories(filteredElements);\n }\n }\n );\n\n const createFromBuildingItemTemplate = (template: BuildingItemTemplate) => {\n if (projectCalculation.value && props.elementId) {\n const element = projectCalculation.value.BuildingElements.find(\n ele => ele.Id === props.elementId\n );\n\n if (element?.Id) {\n const newItemCalc = createBICFromBuildingItemTemplate(\n template,\n element,\n element.Id\n );\n element.BuildingItems.push(newItemCalc);\n registerBuildingItemBatchOperation(newItemCalc, BatchType.Insert);\n }\n }\n };\n\n onMounted(async () => {\n standards.value = await getStandards();\n if (activeTemplate.value) {\n buildNS3451Categories(activeTemplate.value.BuildingElementTemplates);\n }\n });\n\n return {\n setActiveTemplate,\n createFromBuildingElementTemplate,\n createFromBuildingItemTemplate,\n search,\n templates,\n loading,\n elements,\n projectCalculation,\n activeTemplate,\n buildingTemplatesByProfession,\n categorizedTemplates,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=a4574ab0&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=a4574ab0&lang=scss&scoped=true&\"\nimport style1 from \"./index.vue?vue&type=style&index=1&lang=scss&\"\nimport style2 from \"./index.vue?vue&type=style&index=2&id=a4574ab0&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a4574ab0\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VCombobox } from 'vuetify/lib/components/VCombobox';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\nimport { VTreeview } from 'vuetify/lib/components/VTreeview';\ninstallComponents(component, {VAlert,VBtn,VCard,VCardTitle,VCol,VCombobox,VIcon,VRow,VSpacer,VTextField,VTooltip,VTreeview})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { useCalculation } from '@/modules/calculation';\nimport { defineComponent } from '@vue/composition-api';\nimport Templates from '@/components/library/templates/index.vue';\n\nexport default defineComponent({\n components: {\n Templates,\n },\n props: {\n elementId: {\n type: String,\n },\n },\n setup() {\n const { activateLibrary } = useCalculation();\n return {\n activateLibrary,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=e34810c4&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=e34810c4&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e34810c4\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VNavigationDrawer } from 'vuetify/lib/components/VNavigationDrawer';\ninstallComponents(component, {VDivider,VIcon,VList,VListItem,VListItemContent,VListItemIcon,VListItemTitle,VNavigationDrawer})\n","\n\n\n\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\nimport BuildingElement from '@/components/calculation/building-elements/index.vue';\nimport LibraryDrawer from '@/components/library/drawer/index.vue';\n\nexport default defineComponent({\n components: {\n BuildingElement,\n LibraryDrawer,\n },\n});\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, onMounted, ref } from '@vue/composition-api';\nimport { useStandards } from '@/modules/standards';\nimport { Ns3451 } from '@/models/standards/ns3451/interfaces';\nimport { useCalculation } from '@/modules/calculation';\nimport BuildingElements from '@/components/calculation/building-elements/index.vue';\nimport {\n BuildingElement,\n BuildingItem,\n} from '@/models/building-element/interfaces';\nimport Profession from '@/components/profession/index.vue';\nimport KalkHelper from '@/components/common/kalk-helper/index.vue';\nimport draggable from 'vuedraggable';\nimport FromLibrary from '@/components/calculation/from-library/index.vue';\nimport FromCalculations from '@/components/calculation/from-calculations/index.vue';\nimport { useBuildingElement } from '@/modules/building-element';\nimport DialogTitle from '@/components/common/dialog-title/index.vue';\nimport {\n BUILDING_ELEMENT_HEADERS_SIMPLE,\n BUILDING_ITEM_HEADERS_SIMPLE,\n} from '@/constants/table-headers';\nimport { BuildingElementTemplate } from '@/models/library/interfaces';\nimport { v4 as uuidv4 } from 'uuid';\nimport { useBuildingItem } from '@/modules/building-item';\nimport { useBatch } from '@/modules/batch';\nimport { cleanSource, scrollToBottom } from '@/helpers/common';\nimport { createAdditionElements } from '@/helpers/building-element';\n\nenum AddElementMethod {\n CreateNew = 1,\n FromLibraries = 2,\n FromCalculations = 3,\n}\n\nexport default defineComponent({\n components: {\n BuildingElements,\n Profession,\n FromLibrary,\n FromCalculations,\n DialogTitle,\n KalkHelper,\n draggable,\n },\n setup() {\n const { getStandards } = useStandards();\n const { activeCalculation, projectCalculation } = useCalculation();\n const {\n createElementFromNS3451,\n addFirstelement,\n addBuildingElementToCalculation,\n } = useBuildingElement();\n const { registerNewElementsWithChildren } = useBatch();\n\n const loading = ref(false);\n const dialog = ref(false);\n const method = ref();\n const items = ref | undefined>(undefined);\n const search = ref('');\n\n const elements = ref();\n\n const buildingElements = ref>([]);\n\n const onDropCallback = (evt: { oldIndex: number; newIndex: number }) => {\n const temp = buildingElements.value[evt.newIndex];\n buildingElements.value[evt.newIndex] =\n buildingElements.value[evt.oldIndex];\n buildingElements.value[evt.oldIndex] = temp;\n };\n\n onMounted(async () => {\n loading.value = true;\n items.value = await getStandards();\n loading.value = false;\n });\n\n const close = () => {\n buildingElements.value = [];\n method.value = AddElementMethod.CreateNew;\n dialog.value = false;\n };\n\n const addElementFromCalculation = (element: BuildingElement) => {\n if (!projectCalculation.value?.Id) return;\n\n const newElement: BuildingElement = cleanSource(element);\n newElement.Id = uuidv4();\n newElement.ProjectId = projectCalculation.value.Id;\n newElement.Amount = null;\n\n if (newElement.Unit === 'm2') {\n const additions = createAdditionElements(newElement);\n newElement.AdditionItems = additions;\n }\n\n newElement.Items.forEach(bi => {\n bi.Id = uuidv4();\n bi.BuildingElementId = newElement.Id;\n });\n\n buildingElements.value.push(newElement);\n };\n\n const addElementFromNS3451 = async (ns3451: Ns3451) => {\n if (!projectCalculation.value?.Id) return;\n const element = await createElementFromNS3451(ns3451);\n if (element) {\n if (element.Unit === 'm2') {\n const additions = createAdditionElements(element);\n element.AdditionItems = additions;\n }\n element.ProjectId = projectCalculation.value.Id;\n buildingElements.value.push(element);\n }\n };\n\n const addElementFromLibrary = (template: BuildingElementTemplate) => {\n const { createFromBuildingItemTemplate } = useBuildingItem();\n\n if (!projectCalculation.value?.Id) return;\n\n const element: BuildingElement = {\n Name: template.Name,\n NS3451: template.NS3451,\n Unit: template.Unit,\n Comments: template.Comments,\n Transport: template.Transport,\n AdditionItems: [],\n Items: [],\n ProjectId: projectCalculation.value.Id,\n SortOrder: template.SortOrder,\n ProductionLine: template.ProductionLine,\n NS3450: template.NS3450,\n Id: uuidv4(),\n Amount: template.Amount,\n };\n\n template.BuildingItemTemplates.forEach(t => {\n if (element.Id) {\n const item = createFromBuildingItemTemplate(t, element.Id);\n element.Items.push(item);\n }\n });\n // Overflater skal overføres når det importeres fra bibliotek.\n if (element.Unit === 'm2') {\n const additions = createAdditionElements(element);\n element.AdditionItems = additions;\n }\n\n buildingElements.value.push(element);\n };\n\n const removeElement = (element: BuildingElement) => {\n const index = buildingElements.value.findIndex(e => e.Id === element.Id);\n if (index >= 0) {\n buildingElements.value.splice(index, 1);\n }\n };\n\n const removeItem = (item: BuildingItem) => {\n const element = buildingElements.value.find(\n ele => ele.Id === item.BuildingElementId\n );\n if (element) {\n const index = element.Items.findIndex(i => i.Id === item.Id);\n if (index >= 0) {\n element.Items.splice(index, 1);\n }\n }\n };\n\n const submit = async () => {\n const { projectCalculation } = useCalculation();\n loading.value = true;\n\n let index = 1;\n for (const e of buildingElements.value) {\n if (\n projectCalculation.value &&\n projectCalculation.value.BuildingElements.length >= 0\n ) {\n e.SortOrder =\n projectCalculation.value.BuildingElements.length + index;\n }\n addBuildingElementToCalculation(e);\n index++;\n }\n\n loading.value = false;\n registerNewElementsWithChildren(buildingElements.value);\n scrollToBottom();\n close();\n };\n\n return {\n addElementFromCalculation,\n addElementFromLibrary,\n addElementFromNS3451,\n removeElement,\n removeItem,\n close,\n submit,\n onDropCallback,\n dialog,\n loading,\n items,\n method,\n AddElementMethod,\n addFirstelement,\n code: activeCalculation?.value?.ProfessionCode\n ? activeCalculation?.value?.ProfessionCode\n : '',\n elements,\n BUILDING_ELEMENT_HEADERS_SIMPLE,\n BUILDING_ITEM_HEADERS_SIMPLE,\n buildingElements,\n search,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=d2397e9a&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"fullscreen\":\"\",\"hide-overlay\":\"\",\"transition\":\"dialog-bottom-transition\"},on:{\"click:outside\":_vm.close},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({class:(\"ma-2 white--text \" + (_vm.addFirstelement ? 'start' : '')),attrs:{\"small\":\"\",\"color\":\"secondary\",\"fab\":!_vm.$vuetify.breakpoint.xlOnly}},'v-btn',attrs,false),on),[_vm._v(\" \"+_vm._s(!_vm.$vuetify.breakpoint.xlOnly ? '' : _vm.$t('buttons.add-elements'))+\" \"),_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g({attrs:{\"right\":_vm.$vuetify.breakpoint.xlOnly}},on),[_vm._v(\" mdi-plus \")])]}}],null,true)},[_c('span',[_vm._v(_vm._s(_vm.$t('buttons.add-elements')))])])],1)]}}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',{staticClass:\"add-calc-card\",attrs:{\"flat\":\"\",\"tile\":\"\",\"loading\":_vm.loading}},[_c('dialog-title',{attrs:{\"header-text\":_vm.$t('buttons.add-elements'),\"center\":true},scopedSlots:_vm._u([{key:\"center\",fn:function(){return [_c('v-btn-toggle',{staticClass:\"methods\",attrs:{\"mandatory\":\"\",\"tile\":\"\",\"color\":\"secondary\",\"group\":\"\"},model:{value:(_vm.method),callback:function ($$v) {_vm.method=$$v},expression:\"method\"}},[_c('v-btn',{attrs:{\"value\":_vm.AddElementMethod.CreateNew}},[_vm._v(\" \"+_vm._s(_vm.$t('calculation.create-new-element'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-wrench-outline\")])],1),_c('v-btn',{attrs:{\"value\":_vm.AddElementMethod.FromLibraries}},[_vm._v(\" \"+_vm._s(_vm.$t('calculation.from-library'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-book\")])],1),_c('v-btn',{attrs:{\"value\":_vm.AddElementMethod.FromCalculations}},[_vm._v(\" \"+_vm._s(_vm.$t('calculation.from-calculation'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-calculator\")])],1)],1)]},proxy:true},{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":_vm.close}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)]},proxy:true}])}),_c('v-card-text',{staticClass:\"pa-3\"},[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{staticClass:\"old-col\",attrs:{\"cols\":\"12\",\"md\":\"6\"}},[(_vm.method === _vm.AddElementMethod.CreateNew)?[_c('div',[_c('v-card-title',{staticClass:\"ns3451-title\"},[_c('span',{staticClass:\"subheader\"},[_vm._v(\"NS 3451 Standard\")]),_c('v-spacer'),_c('v-text-field',{attrs:{\"append-icon\":\"mdi-magnify\",\"label\":_vm.$t('common.search'),\"single-line\":\"\",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}})],1),_c('v-card-text',[_c('v-treeview',{attrs:{\"color\":\"secondary\",\"item-text\":\"CodeName\",\"item-children\":\"Children\",\"item-key\":\"Id\",\"search\":_vm.search,\"dense\":\"\",\"items\":_vm.items,\"return-object\":\"\",\"open-on-click\":\"\"},scopedSlots:_vm._u([{key:\"append\",fn:function(ref){\nvar item = ref.item;\nreturn [(item.Children.length === 0)?_c('v-btn',{attrs:{\"outlined\":\"\",\"color\":\"secondary\",\"small\":\"\"},on:{\"click\":function($event){return _vm.addElementFromNS3451(item)}}},[_vm._v(_vm._s(_vm.$t('buttons.add')))]):_vm._e()]}}],null,false,393518551)})],1)],1)]:(_vm.method === _vm.AddElementMethod.FromLibraries)?[_c('from-library',{on:{\"addFromTemplate\":_vm.addElementFromLibrary}})]:(_vm.method === _vm.AddElementMethod.FromCalculations)?[_c('from-calculations',{on:{\"addElement\":_vm.addElementFromCalculation}})]:_vm._e()],2),_c('v-col',{staticClass:\"new-col\",attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('v-subheader',{staticClass:\"element-subheader\"},[_vm._v(\" \"+_vm._s(_vm.buildingElements.length === 0 ? _vm.$t('titles.new-building-elements') : ((_vm.$t('titles.new-building-elements')) + \" (\" + (_vm.buildingElements.length) + \")\"))+\" \")]),_c('v-card-text',[(_vm.buildingElements && _vm.buildingElements.length > 0)?_c('v-expansion-panels',{attrs:{\"tile\":\"\"}},[_c('draggable',{staticClass:\"draggable-wrapper\",attrs:{\"v-model\":_vm.buildingElements,\"options\":{ handle: '.element-draggable' }},on:{\"end\":_vm.onDropCallback}},_vm._l((_vm.buildingElements),function(element){return _c('v-expansion-panel',{key:element.Id},[_c('v-expansion-panel-header',{staticClass:\"building-element-header\",scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-btn',{staticClass:\"ma-1\",attrs:{\"color\":\"error\",\"outlined\":\"\",\"small\":\"\"},on:{\"click\":function($event){return _vm.removeElement(element)}},nativeOn:{\"click\":function($event){$event.stopPropagation();}}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.remove'))+\" \")])]},proxy:true}],null,true)},[_c('div',{staticClass:\"element-draggable\"},[_c('v-icon',{on:{\"mousedown\":function($event){$event.stopPropagation();}},nativeOn:{\"click\":function($event){$event.stopPropagation();}}},[_vm._v(\" mdi-drag-variant \")])],1),_c('span',[_vm._v(\" \"+_vm._s(element.Items.length > 0 ? ((element.Name) + \" (\" + (element.Items.length) + \")\") : element.Name))])]),_c('v-expansion-panel-content',{staticClass:\"element-content\"},[_c('v-data-table',{staticClass:\"element-items\",attrs:{\"headers\":_vm.BUILDING_ITEM_HEADERS_SIMPLE,\"items\":element.Items,\"item-key\":\"Id\",\"search\":_vm.search,\"items-per-page\":100,\"loading-text\":_vm.$t('info.loading'),\"no-data-text\":_vm.$t('info.no-data'),\"no-results-text\":_vm.$t('info.no-result'),\"hide-default-footer\":\"\"},scopedSlots:_vm._u([_vm._l((_vm.BUILDING_ITEM_HEADERS_SIMPLE),function(h){return {key:(\"header.\" + (h.value)),fn:function(ref){return [_c('v-row',{key:h.text,attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\"}},[(h.text)?_c('span',{key:h.value},[_vm._v(\" \"+_vm._s(_vm.$t((\"headers.\" + (h.text.toLowerCase()))))+\" \")]):_vm._e()])],1)]}}}),{key:\"item.actions\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-btn',{staticClass:\"ma-1\",attrs:{\"color\":\"error\",\"outlined\":\"\",\"small\":\"\"},on:{\"click\":function($event){return _vm.removeItem(item)}}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.remove'))+\" \")])]}},{key:\"item.Price\",fn:function(ref){\nvar item = ref.item;\nreturn [(item.Price !== null)?_c('div',[_vm._v(\" \"+_vm._s(item.Price.toLocaleString(_vm.$i18n.locale, { maximumFractionDigits: 2, }))+\" \")]):_vm._e()]}}],null,true)})],1)],1)}),1)],1):_c('kalk-helper',{attrs:{\"title\":_vm.$t('titles.add-new-building-elements'),\"message\":_vm.$t('info.add-first-new-element')}})],1)],1)],1)],1)],1),_c('v-footer',{staticClass:\"dialog-footer\",attrs:{\"fixed\":\"\",\"tile\":\"\",\"padless\":\"\"}},[_c('profession',{attrs:{\"code\":_vm.code,\"header\":true}}),_c('v-spacer'),_c('v-btn',{staticClass:\"add-element\",attrs:{\"color\":\"secondary\",\"loading\":_vm.loading,\"disabled\":_vm.buildingElements.length === 0},on:{\"click\":_vm.submit}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.create'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-plus\")])],1),_c('v-btn',{on:{\"click\":_vm.close}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.cancel'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-close\")])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=08c36742&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=08c36742&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"08c36742\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VBtnToggle } from 'vuetify/lib/components/VBtnToggle';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VExpansionPanel } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelContent } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelHeader } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanels } from 'vuetify/lib/components/VExpansionPanel';\nimport { VFooter } from 'vuetify/lib/components/VFooter';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\nimport { VTreeview } from 'vuetify/lib/components/VTreeview';\ninstallComponents(component, {VBtn,VBtnToggle,VCard,VCardText,VCardTitle,VCol,VDataTable,VDialog,VExpansionPanel,VExpansionPanelContent,VExpansionPanelHeader,VExpansionPanels,VFooter,VIcon,VRow,VSpacer,VSubheader,VTextField,VTooltip,VTreeview})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"max-width\":\"900\",\"retain-focus\":false},on:{\"click:outside\":function($event){_vm.dialog = false}},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"ma-2\",attrs:{\"small\":\"\",\"dark\":\"\",\"color\":\"#455a64\",\"fab\":!_vm.$vuetify.breakpoint.xlOnly}},'v-btn',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.$vuetify.breakpoint.xlOnly ? _vm.isProject ? _vm.$t('buttons.project-reports') : _vm.$t('buttons.calculation-reports') : '')+\" \"),_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g({attrs:{\"right\":_vm.$vuetify.breakpoint.xlOnly,\"small\":\"\"}},on),[_vm._v(\" mdi-file-chart \")])]}}],null,true)},[_c('span',[_vm._v(_vm._s(_vm.isProject ? _vm.$t('buttons.project-reports') : _vm.$t('buttons.calculation-reports')))])])],1)]}}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',{attrs:{\"flat\":\"\",\"tile\":\"\"}},[_c('v-card-title',{staticClass:\"report-title\"},[_vm._v(\" \"+_vm._s(_vm.isProject ? _vm.$t('buttons.project-reports') : _vm.$t('buttons.calculation-reports'))+\" \"),_c('v-spacer'),_c('v-icon',{attrs:{\"large\":\"\",\"color\":\"primary\"}},[_vm._v(\"mdi-file-chart\")]),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.dialog = false}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1),_c('v-divider'),_c('v-card-text',{staticClass:\"report-message\"},[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"md\":\"6\",\"cols\":\"12\"}},[_c('v-list',{attrs:{\"shaped\":\"\",\"dense\":\"\"}},[_c('v-subheader',[_vm._v(_vm._s(_vm.isProject ? _vm.$t('buttons.project-reports') : _vm.$t('buttons.calculation-reports')))]),_c('v-list-item-group',{attrs:{\"color\":\"secondary\"},on:{\"change\":_vm.filterChange},model:{value:(_vm.selectedItem),callback:function ($$v) {_vm.selectedItem=$$v},expression:\"selectedItem\"}},[(_vm.isProject)?_c('report',{attrs:{\"id\":_vm.ReportType.ProjectMileStone,\"icon\":'mdi-information',\"text\":_vm.$t('reports.project-milestone-report'),\"information\":_vm.$t('info.project-milestone-report')}}):_vm._e(),(_vm.isProject)?_c('report',{attrs:{\"id\":_vm.ReportType.ProjectAttachmentPriceOffer,\"icon\":'mdi-information',\"text\":_vm.$t('reports.project-attachment-price-report'),\"information\":_vm.$t('info.project-attachment-price-report')}}):_vm._e(),(_vm.isProject)?_c('report',{attrs:{\"id\":_vm.ReportType.ProjectBuildingElements,\"icon\":'mdi-information',\"text\":_vm.$t('reports.project-building-element-report'),\"information\":_vm.$t('info.project-building-element-report')}}):_vm._e(),(_vm.isProject)?_c('report',{attrs:{\"id\":_vm.ReportType.ProjectMainSums,\"icon\":'mdi-information',\"text\":_vm.$t('reports.project-main-sums-report'),\"information\":_vm.$t('info.project-main-sums-report')}}):_vm._e(),(!_vm.isProject)?_c('report',{attrs:{\"id\":_vm.ReportType.MaterialOrder,\"icon\":'mdi-information',\"text\":_vm.$t('reports.material-order-report'),\"information\":_vm.$t('info.material-order-report-info')}}):_vm._e(),(!_vm.isProject)?_c('report',{attrs:{\"id\":_vm.ReportType.MileStone,\"icon\":'mdi-information',\"text\":_vm.$t('reports.milestone-report'),\"information\":_vm.$t('info.milestone-report-info')}}):_vm._e(),(!_vm.isProject)?_c('report',{attrs:{\"id\":_vm.ReportType.MaterialListPrecut,\"icon\":'mdi-information',\"text\":_vm.$t('reports.material-list-precut-report'),\"information\":_vm.$t('info.material-list-precut-report')}}):_vm._e(),(!_vm.isProject)?_c('report',{attrs:{\"id\":_vm.ReportType.AttachmentPriceOffer,\"icon\":'mdi-information',\"text\":_vm.$t('reports.attachment-price-offer-report'),\"information\":_vm.$t('info.attachment-price-offer-report')}}):_vm._e(),(!_vm.isProject)?_c('report',{attrs:{\"id\":_vm.ReportType.BuildingElements,\"icon\":'mdi-information',\"text\":_vm.$t('reports.building-elements-report'),\"information\":_vm.$t('info.building-elements-report')}}):_vm._e(),(!_vm.isProject)?_c('report',{attrs:{\"id\":_vm.ReportType.MainSums,\"icon\":'mdi-information',\"text\":_vm.$t('reports.main-sums-report'),\"information\":_vm.$t('info.main-sums-report')}}):_vm._e(),(!_vm.isProject)?_c('report',{attrs:{\"id\":_vm.ReportType.PriceRequest,\"icon\":'mdi-information',\"text\":_vm.$t('reports.price-request-report'),\"information\":_vm.$t('info.price-request-report')}}):_vm._e(),(!_vm.isProject)?_c('report',{attrs:{\"id\":_vm.ReportType.Environment,\"icon\":'mdi-information',\"text\":_vm.$t('reports.environment-report'),\"information\":_vm.$t('info.environment-report')}}):_vm._e(),(!_vm.isProject)?_c('v-subheader',[_vm._v(_vm._s(_vm.$t('titles.views')))]):_vm._e(),(!_vm.isProject)?_c('report',{attrs:{\"id\":_vm.ReportType.CalculationView,\"icon\":'mdi-information',\"text\":_vm.$t('calculation.category1'),\"information\":_vm.$t('info.category1')}}):_vm._e(),(!_vm.isProject)?_c('report',{attrs:{\"id\":_vm.ReportType.TimeView,\"icon\":'mdi-information',\"text\":_vm.$t('calculation.category2'),\"information\":_vm.$t('info.category2')}}):_vm._e(),(!_vm.isProject)?_c('report',{attrs:{\"id\":_vm.ReportType.MaterialsView,\"icon\":'mdi-information',\"text\":_vm.$t('calculation.category4'),\"information\":_vm.$t('calculation.category4')}}):_vm._e(),(!_vm.isProject)?_c('report',{attrs:{\"id\":_vm.ReportType.EconomyView,\"icon\":'mdi-information',\"text\":_vm.$t('calculation.category3'),\"information\":_vm.$t('info.category3')}}):_vm._e(),(!_vm.isProject)?_c('report',{attrs:{\"id\":_vm.ReportType.DeliveryView,\"icon\":'mdi-information',\"text\":_vm.$t('calculation.category6'),\"information\":_vm.$t('info.category6')}}):_vm._e()],1)],1)],1),_c('v-col',{attrs:{\"md\":\"6\",\"cols\":\"12\"}},[_c('v-subheader',{staticClass:\"report-settings\"},[_vm._v(_vm._s(_vm.$t('titles.report-settings')))]),_c('v-row',{attrs:{\"dense\":\"\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"3\",\"align-self\":\"center\"}},[_vm._v(_vm._s(_vm.$t('labels.type')))]),_c('v-col',{attrs:{\"cols\":\"9\"}},[_c('v-btn-toggle',{staticClass:\"project-groups\",attrs:{\"mandatory\":\"\",\"tile\":\"\",\"color\":\"secondary\",\"group\":\"\",\"dense\":\"\"},model:{value:(_vm.options.FileType),callback:function ($$v) {_vm.$set(_vm.options, \"FileType\", $$v)},expression:\"options.FileType\"}},[_c('v-btn',{attrs:{\"value\":_vm.ReportFileType.PDF}},[_vm._v(\" PDF \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-file-pdf-box\")])],1),_c('v-btn',{attrs:{\"value\":_vm.ReportFileType.XLSX}},[_vm._v(\" EXCEL \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-microsoft-excel\")])],1)],1)],1),(_vm.options.FileType === _vm.ReportFileType.PDF)?_c('v-col',{attrs:{\"cols\":\"3\",\"align-self\":\"center\"}},[_vm._v(_vm._s(_vm.$t('common.fontsize')))]):_vm._e(),(_vm.options.FileType === _vm.ReportFileType.PDF)?_c('v-col',{attrs:{\"cols\":\"9\"}},[_c('v-select',{attrs:{\"items\":_vm.items,\"item-text\":\"name\",\"item-value\":\"value\",\"menu-props\":{ offsetY: true },\"dense\":\"\",\"outlined\":\"\",\"hide-details\":\"\",\"label\":(\"\" + (_vm.$t('common.fontsize')))},model:{value:(_vm.options.FontSize),callback:function ($$v) {_vm.$set(_vm.options, \"FontSize\", $$v)},expression:\"options.FontSize\"}})],1):_vm._e(),(_vm.calculationsEnabled)?_c('v-col',{attrs:{\"cols\":\"3\",\"align-self\":\"center\"}},[_vm._v(\" \"+_vm._s(_vm.$t('labels.calculations'))+\" \")]):_vm._e(),(_vm.calculationsEnabled)?_c('v-col',{attrs:{\"cols\":\"9\"}},[_c('v-combobox',{attrs:{\"clearable\":\"\",\"multiple\":\"\",\"items\":_vm.activeProjectOverview ? _vm.activeProjectOverview.Children : [],\"item-text\":\"Name\",\"return-object\":\"\",\"small-chips\":\"\",\"dense\":\"\",\"outlined\":\"\",\"hide-details\":\"\"},model:{value:(_vm.options.Calculations),callback:function ($$v) {_vm.$set(_vm.options, \"Calculations\", $$v)},expression:\"options.Calculations\"}})],1):_vm._e(),(_vm.deliveryOrdersEnabled)?_c('v-col',{attrs:{\"cols\":\"3\",\"align-self\":\"center\"}},[_vm._v(\" \"+_vm._s(_vm.$t('labels.delivery-order'))+\" \")]):_vm._e(),(_vm.deliveryOrdersEnabled)?_c('v-col',{attrs:{\"cols\":\"9\"}},[_c('v-combobox',{attrs:{\"clearable\":\"\",\"multiple\":\"\",\"items\":_vm.availableDeliveryOrders,\"small-chips\":\"\",\"dense\":\"\",\"outlined\":\"\",\"hide-details\":\"\"},model:{value:(_vm.options.DeliveryOrders),callback:function ($$v) {_vm.$set(_vm.options, \"DeliveryOrders\", $$v)},expression:\"options.DeliveryOrders\"}})],1):_vm._e(),(_vm.showProductNameEnabled)?_c('v-col',{attrs:{\"cols\":\"3\"}}):_vm._e(),(_vm.showProductNameEnabled)?_c('v-col',{attrs:{\"cols\":\"9\"}},[_c('v-checkbox',{attrs:{\"dense\":\"\",\"hide-details\":\"\",\"label\":(\"\" + (_vm.$t('labels.show-product-name')))},model:{value:(_vm.options.ShowProductName),callback:function ($$v) {_vm.$set(_vm.options, \"ShowProductName\", $$v)},expression:\"options.ShowProductName\"}})],1):_vm._e(),(_vm.includeBuildingItemsEnabled)?_c('v-col',{attrs:{\"cols\":\"3\"}}):_vm._e(),(_vm.includeBuildingItemsEnabled)?_c('v-col',{attrs:{\"cols\":\"9\"}},[_c('v-checkbox',{attrs:{\"dense\":\"\",\"hide-details\":\"\",\"label\":(\"\" + (_vm.$t('labels.include-building-items')))},model:{value:(_vm.options.IncludeBuildingItems),callback:function ($$v) {_vm.$set(_vm.options, \"IncludeBuildingItems\", $$v)},expression:\"options.IncludeBuildingItems\"}})],1):_vm._e(),(_vm.includeWithoutDeliveryOrder)?_c('v-col',{attrs:{\"cols\":\"3\"}}):_vm._e(),(_vm.includeWithoutDeliveryOrder)?_c('v-col',{attrs:{\"cols\":\"9\"}},[_c('v-checkbox',{attrs:{\"dense\":\"\",\"hide-details\":\"\",\"label\":(\"\" + (_vm.$t('labels.include-without-delivery-order')))},model:{value:(_vm.options.IncludeWithoutDeliveryOrder),callback:function ($$v) {_vm.$set(_vm.options, \"IncludeWithoutDeliveryOrder\", $$v)},expression:\"options.IncludeWithoutDeliveryOrder\"}})],1):_vm._e(),(_vm.includeCommentsEnabled)?_c('v-col',{attrs:{\"cols\":\"3\"}}):_vm._e(),(_vm.includeCommentsEnabled)?_c('v-col',{attrs:{\"cols\":\"9\"}},[_c('v-checkbox',{attrs:{\"dense\":\"\",\"hide-details\":\"\",\"label\":(\"\" + (_vm.$t('labels.include-comments')))},model:{value:(_vm.options.IncludeComments),callback:function ($$v) {_vm.$set(_vm.options, \"IncludeComments\", $$v)},expression:\"options.IncludeComments\"}})],1):_vm._e(),(_vm.includeAmountsEnabled)?_c('v-col',{attrs:{\"cols\":\"3\"}}):_vm._e(),(_vm.includeAmountsEnabled)?_c('v-col',{attrs:{\"cols\":\"9\"}},[_c('v-checkbox',{attrs:{\"dense\":\"\",\"hide-details\":\"\",\"label\":(\"\" + (_vm.$t('labels.include-amounts')))},model:{value:(_vm.options.IncludeAmounts),callback:function ($$v) {_vm.$set(_vm.options, \"IncludeAmounts\", $$v)},expression:\"options.IncludeAmounts\"}})],1):_vm._e(),(_vm.includeBuildingElementSumsEnabled)?_c('v-col',{attrs:{\"cols\":\"3\"}}):_vm._e(),(_vm.includeBuildingElementSumsEnabled)?_c('v-col',{attrs:{\"cols\":\"9\"}},[_c('v-checkbox',{attrs:{\"dense\":\"\",\"hide-details\":\"\",\"label\":(\"\" + (_vm.$t('labels.include-element-sums')))},model:{value:(_vm.options.IncludeElementSums),callback:function ($$v) {_vm.$set(_vm.options, \"IncludeElementSums\", $$v)},expression:\"options.IncludeElementSums\"}})],1):_vm._e(),(_vm.includeBuildingItemSumsEnabled)?_c('v-col',{attrs:{\"cols\":\"3\"}}):_vm._e(),(_vm.includeBuildingItemSumsEnabled)?_c('v-col',{attrs:{\"cols\":\"9\"}},[_c('v-checkbox',{attrs:{\"dense\":\"\",\"hide-details\":\"\",\"label\":(\"\" + (_vm.$t('labels.include-item-sums')))},model:{value:(_vm.options.IncludeItemSums),callback:function ($$v) {_vm.$set(_vm.options, \"IncludeItemSums\", $$v)},expression:\"options.IncludeItemSums\"}})],1):_vm._e(),(_vm.includePrecutEnabled)?_c('v-col',{attrs:{\"cols\":\"3\"}}):_vm._e(),(_vm.includePrecutEnabled)?_c('v-col',{attrs:{\"cols\":\"9\"}},[_c('v-checkbox',{attrs:{\"dense\":\"\",\"hide-details\":\"\",\"label\":(\"\" + (_vm.$t('labels.include-precut')))},model:{value:(_vm.options.IncludePrecut),callback:function ($$v) {_vm.$set(_vm.options, \"IncludePrecut\", $$v)},expression:\"options.IncludePrecut\"}})],1):_vm._e(),(_vm.includeBuildingElementsEnabled)?_c('v-col',{attrs:{\"cols\":\"3\"}}):_vm._e(),(_vm.includeBuildingElementsEnabled)?_c('v-col',{attrs:{\"cols\":\"9\"}},[_c('v-checkbox',{attrs:{\"dense\":\"\",\"hide-details\":\"\",\"label\":(\"\" + (_vm.$t('labels.include-building-elements')))},model:{value:(_vm.options.IncludeBuildingElements),callback:function ($$v) {_vm.$set(_vm.options, \"IncludeBuildingElements\", $$v)},expression:\"options.IncludeBuildingElements\"}})],1):_vm._e(),(_vm.includeBuildingItemsWithMissingNOBBEnabled)?_c('v-col',{attrs:{\"cols\":\"3\"}}):_vm._e(),(_vm.includeBuildingItemsWithMissingNOBBEnabled)?_c('v-col',{attrs:{\"cols\":\"9\"}},[_c('v-checkbox',{attrs:{\"dense\":\"\",\"disabled\":!_vm.options.IncludeBuildingElements,\"hide-details\":\"\",\"label\":(\"\" + (_vm.$t('labels.include-missing-nobbs')))},model:{value:(_vm.options.IncludeBuildingItemsWithMissingNOBB),callback:function ($$v) {_vm.$set(_vm.options, \"IncludeBuildingItemsWithMissingNOBB\", $$v)},expression:\"options.IncludeBuildingItemsWithMissingNOBB\"}})],1):_vm._e(),(_vm.includeBuildingItemsWithMissingEPDEnabled)?_c('v-col',{attrs:{\"cols\":\"3\"}}):_vm._e(),(_vm.includeBuildingItemsWithMissingEPDEnabled)?_c('v-col',{attrs:{\"cols\":\"9\"}},[_c('v-checkbox',{attrs:{\"dense\":\"\",\"disabled\":!_vm.options.IncludeBuildingElements,\"hide-details\":\"\",\"label\":(\"\" + (_vm.$t('labels.include-missing-epd')))},model:{value:(_vm.options.IncludeBuildingItemsWithMissingEPD),callback:function ($$v) {_vm.$set(_vm.options, \"IncludeBuildingItemsWithMissingEPD\", $$v)},expression:\"options.IncludeBuildingItemsWithMissingEPD\"}})],1):_vm._e()],1)],1)],1)],1),_c('v-card-actions',{staticClass:\"report-actions\"},[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"secondary\",\"disabled\":!_vm.valid,\"loading\":_vm.loading},on:{\"click\":_vm.submit}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.generate'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-cogs\")])],1),_c('v-btn',{on:{\"click\":function($event){_vm.dialog = false}}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.close'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-close\")])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-list-item',{attrs:{\"value\":_vm.id}},[_c('v-list-item-icon',[(_vm.information)?_c('v-tooltip',{attrs:{\"left\":\"\",\"max-width\":\"300\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({domProps:{\"textContent\":_vm._s(_vm.icon)}},'v-icon',attrs,false),on))]}}],null,false,113474433)},[_c('span',[_vm._v(_vm._s(_vm.information))])]):_c('v-icon',_vm._g(_vm._b({domProps:{\"textContent\":_vm._s(_vm.icon)}},'v-icon',_vm.attrs,false),_vm.on))],1),_c('v-list-item-content',[_c('v-list-item-title',{domProps:{\"textContent\":_vm._s(_vm.text)}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\n\nexport default defineComponent({\n props: {\n icon: {\n type: String,\n required: true,\n },\n text: {\n type: String,\n required: true,\n },\n id: {\n type: Number,\n required: true,\n },\n information: {\n type: String,\n },\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=4da7180f&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VIcon,VListItem,VListItemContent,VListItemIcon,VListItemTitle,VTooltip})\n","export enum ReportType {\n MaterialOrder,\n MileStone,\n MaterialListPrecut,\n AttachmentPriceOffer,\n BuildingElements,\n PriceRequest,\n MainSums,\n CalculationView,\n DeliveryView,\n EconomyView,\n MaterialsView,\n TimeView,\n ProjectMileStone,\n ProjectAttachmentPriceOffer,\n ProjectBuildingElements,\n ProjectMainSums,\n Environment,\n}\n\nexport enum ReportFileType {\n PDF,\n XLSX,\n CSV,\n}\n\nexport const NO_MILESTONE = 'empty';\n","export interface NobbItem {\n bundleItems: BundleItem[];\n customsEuCode: string;\n customsNoCode: string;\n dangerousGoods: DangerousGoods;\n description: string;\n digitalChannelText: string;\n environmentLabels: string[];\n finfoNumber: string;\n firstTimeApproved: string;\n hasDurabilityDate: boolean;\n hazardLabels: string[];\n launchDate: string;\n manufacturerItemNumber: string;\n modelName: string;\n moduleNumber: number;\n nobbNumber: number;\n nrfInfo: NrfInfo;\n priceUnit: string;\n hasPCU: boolean;\n primaryText: string;\n replacedByNobbNumber: number;\n secondaryText: string;\n seriesName: string;\n stocked: boolean;\n tax: Tax;\n toleratesFrost: boolean;\n tunNumber: string;\n productGroupNumber: string;\n productGroupName: string;\n type: string;\n suppliers: Supplier[];\n properties: Properties;\n status: Status;\n}\n\nexport interface BundleItem {\n nobbNumber: number;\n consistsOfCount: number;\n gtin: string;\n}\n\nexport interface DangerousGoods {\n number: number;\n adrName: string;\n packagingGroup: number;\n classes: Class[];\n}\n\nexport interface Class {\n class: string;\n className: string;\n}\n\nexport interface NrfInfo {\n additionalText: string;\n dimension: string;\n name: string;\n number: number;\n productGroupNumber: string;\n supplierNumber: number;\n}\n\nexport interface Properties {\n etim: Etim[];\n environment: Environment[];\n marketing: Environment[];\n epd: Epd[];\n}\n\nexport interface Epd {\n propertyGuid: string;\n propertyName: string;\n propertyDescription: string;\n value: string;\n unit: string;\n}\n\nexport interface Environment {\n propertyGuid: string;\n propertyName: string;\n propertyDescription: string;\n unit?: string;\n value: string;\n}\n\nexport interface Etim {\n propertyName: string;\n unit: string;\n value: string;\n valueUpper: string;\n etimFeatureCode: string;\n etimValueCode: string;\n etimUnitCode: string;\n}\n\nexport interface Status {\n createdDate: Date;\n lastModifiedDate: Date;\n}\n\nexport interface Supplier {\n participantNumber: string;\n name: string;\n isMainSupplier: boolean;\n supplierItemNumber: string;\n expiryDate: string;\n packages: Package[];\n media: Media[];\n}\n\nexport interface Media {\n mediaType: string;\n url: string;\n}\n\nexport interface Package {\n availableFrom: string;\n availableTo: string;\n calculatedCount: number;\n class: string;\n consistsOfCount: number;\n consistsOfUnit: string;\n deliverable: boolean;\n dPakLayerCount: number;\n gtin: string;\n gtinType: string;\n height: number;\n length: number;\n maxStackingWeight: number;\n minOrderQuantity: number;\n packageNumber: number;\n stocked: boolean;\n unit: string;\n volume: number;\n weight: number;\n isPCU: boolean;\n width: number;\n status: Status;\n}\n\nexport interface Tax {\n code: string;\n description: string;\n}\n\nexport interface NobbModule {\n brand: string;\n corporateBrand: string;\n description: string;\n internalid: string;\n manufacturerNumber: number;\n manufacturerName: string;\n ownerParticipantNumber: number;\n productGroupNumber: string;\n productGroupName: string;\n text: string;\n status: Status;\n number: number;\n}\n\nexport interface SubGroup {\n status: Status;\n name: string;\n number: string;\n subGroups?: SubGroup[];\n unspscnr?: string;\n}\n\nexport enum EPDPropertyGUIDS {\n A1A3_GWP = 'B99EA4C9-A2ED-407C-B274-88FB6E21E37E',\n A1A3_GWP_IOBC = '1D5FB051-5F5B-4364-8A01-8E3B6E6A3A5E',\n A4_GWP_IOBC = '7E665C59-CF5A-4B6E-96CD-196D6C0364A6',\n A5_GWP = '570C4D52-3300-4E46-8E81-6EC920C6F47C',\n A5_GWP_IOBC = '125F05F4-14FA-45E3-B71D-E21DA0BCC26B',\n C1_GWP = '93D984F3-CFD3-4FE6-A05A-FA79235B1A46',\n C2_GWP = '2BEAEB5E-E733-44EC-8FBD-A06B526F025D',\n C3_GWP = '9037C9EF-1DD5-4F61-9013-77AE127AC5B6',\n D_GWP = 'B8D6EAF2-354F-41B6-A1E8-FC1CEA5A7AEA',\n ValidUntil = '33948955-9D6A-4370-BFC4-B1FFE66F9D92',\n ReferenceUnit = 'C5C3A9B6-74E7-411C-909B-029DBCEA021D',\n}\n","import { translate } from '@/localization';\nimport { BuildingItemCalculation } from '@/models/building-element/interfaces';\nimport { ProjectCalculation } from '@/models/calculation/interfaces';\nimport {\n NO_MILESTONE,\n ReportFileType,\n ReportType,\n} from '@/models/report/enums';\nimport { MaterialItemTotal } from '@/models/report/interfaces';\nimport { useCalculation } from '@/modules/calculation';\nimport { computed } from '@vue/composition-api';\nimport { activeBuildingItems, allBuildingItems } from './calculation';\nimport { saveAs } from 'file-saver';\nimport { useProject } from '@/modules/project';\n\nexport const onlyIfPrecut = (\n isPrecut: Nullable | undefined,\n amount: Nullable\n): Nullable => {\n if (isPrecut == null || !isPrecut) return null;\n\n return amount;\n};\n\nexport const onlyIfPrecutUnit = (\n isPrecut: Nullable,\n precutUnit: Nullable\n): Nullable => {\n if (isPrecut === null || !isPrecut) return '';\n return precutUnit;\n};\n\nexport const getPrecutText = (isPrecut: Nullable): string => {\n if (!isPrecut) return '';\n return 'P';\n};\n\nexport const getPriceListItemName = (\n groupName: string,\n item: BuildingItemCalculation\n) => {\n if (!item.PriceListItemName || !item.NOBBNumber) return groupName;\n\n return item.PriceListItemName;\n};\n\nexport const getMileStoneData = (\n project: ProjectCalculation,\n includeAllBuildingItems: boolean\n): Map> => {\n const materialItems: Array = [];\n\n const milestones = new Map>();\n\n let items: Array = activeBuildingItems(project)\n ? activeBuildingItems(project)\n : [];\n\n if (includeAllBuildingItems) {\n items = allBuildingItems(project) ? allBuildingItems(project) : [];\n }\n\n if (items) {\n items.forEach(item => {\n const matItem: MaterialItemTotal = {\n Id: item.Id ?? '',\n AccountName: null,\n AccountNumber: null,\n Amount: item.AmountCalculated.value,\n AmountOfMaterials: item.AmountCalculated.value ?? 0,\n ItemName: `${item.Name} ${\n item.PriceListItemName ? `(${item.PriceListItemName})` : ''\n }`,\n ProductionLine: null,\n Unit: item.Unit,\n TimePrUnit: item.TimePrUnit.value,\n ProjectCost: item.ProjectCost.value,\n SumHours: item.SumTime.value,\n MileStone: item.MileStone ?? null,\n SortOrder: item.SortOrder,\n Sum: item.SumTotal.value,\n SumSelfCost: item.SumSelfCost.value,\n OpeningAddition: item.OpeningAddition ?? 0,\n SurfaceAddition: item.SurfaceAddition ?? 0,\n Factor1Calculated: item.Factor1Calculated.value ?? 0,\n SumSelfCostMaterialsSubContractors:\n item.SumSelfCostMaterialsSubContractors.value ?? 0,\n AmountPrUnit: 0,\n BuildingElement: item.BuildingElement,\n BuildingElementId: item.BuildingElementId ?? '',\n Comments: '',\n DeliveryOrder: null,\n NOBBNumber: null,\n OpeningAdditionAmount: computed(() => {\n return 0;\n }),\n Precut: null,\n PrecutText: null,\n PrecutUnit: null,\n Price: null,\n PriceListItemName: null,\n SumAdditions: computed(() => {\n return 0;\n }),\n SumProfit: null,\n SumTime: computed(() => {\n return 0;\n }),\n SurfaceAdditionAmount: computed(() => {\n return 0;\n }),\n TotalAmount: null,\n UnitForOrder: null,\n };\n\n materialItems.push(matItem);\n });\n }\n\n if (materialItems) {\n materialItems.forEach(matItem => {\n if (matItem.MileStone !== null && matItem.MileStone !== '') {\n if (milestones.has(matItem.MileStone)) {\n const values = milestones.get(matItem.MileStone);\n if (values) {\n values.push(matItem);\n }\n } else {\n milestones.set(matItem.MileStone, [matItem]);\n }\n } else {\n if (milestones.has(NO_MILESTONE)) {\n const values = milestones.get(NO_MILESTONE);\n if (values) {\n values.push(matItem);\n }\n } else {\n milestones.set(NO_MILESTONE, [matItem]);\n }\n }\n });\n }\n\n return milestones;\n};\n\nexport const getMaterialsForElement = (\n project: ProjectCalculation,\n includeAllBuildingItems: boolean\n): Array => {\n const materialItems: Array = [];\n let items: Array = project.ActiveBuildingItems?.value\n ? project.ActiveBuildingItems.value\n : [];\n\n if (includeAllBuildingItems) {\n items = project.AllBuildingItems?.value\n ? project.AllBuildingItems.value\n : [];\n }\n\n if (items) {\n items.forEach(item => {\n const matItem: MaterialItemTotal = {\n BuildingElement: item.BuildingElement,\n BuildingElementId: item.BuildingElementId ?? '',\n NOBBNumber: item.NOBBNumber ?? null,\n ItemName: getPriceListItemName(item.Name ?? '', item),\n PriceListItemName: item.Name,\n Unit: item.Unit,\n Price: item.Price ?? null,\n AmountOfMaterials: item.AmountCalculated.value ?? 0,\n AmountPrUnit: item.AmountPrUnit,\n Precut: item.Precut ?? null,\n PrecutUnit: onlyIfPrecutUnit(item.Precut ?? null, 'm'),\n PrecutText: getPrecutText(item.Precut ?? null),\n DeliveryOrder: item.DeliveryOrder ?? null,\n AccountNumber: item.AccountNumber ? item.AccountNumber.toString() : '',\n TotalAmount: onlyIfPrecut(\n item.Precut ?? null,\n item.AmountCalculated.value\n ),\n SumSelfCostMaterialsSubContractors:\n item.SumSelfCostMaterialsSubContractors.value ?? 0,\n SumSelfCost: item.SumSelfCost.value,\n SumProfit: item.SumProfit.value,\n UnitForOrder: item.UnitForOrder,\n MileStone: item.MileStone ?? null,\n Id: item.Id ?? '',\n AccountName: null,\n Amount: item.Amount,\n ProductionLine: null,\n TimePrUnit: item.TimePrUnit.value,\n ProjectCost: item.ProjectCost.value,\n SumHours: item.SumTime.value,\n SortOrder: item.SortOrder,\n Sum: item.SumTotal.value,\n\n OpeningAddition: item.OpeningAddition ?? 0,\n SurfaceAddition: item.SurfaceAddition ?? 0,\n Factor1Calculated: item.Factor1Calculated.value ?? 0,\n Comments: '',\n OpeningAdditionAmount: computed(() => {\n return 0;\n }),\n SumAdditions: computed(() => {\n return 0;\n }),\n SumTime: computed(() => {\n return 0;\n }),\n SurfaceAdditionAmount: computed(() => {\n return 0;\n }),\n };\n\n materialItems.push(matItem);\n });\n }\n\n return materialItems;\n};\n\nexport const createReportName = (\n type: ReportType,\n fileType: ReportFileType,\n isProject?: boolean\n) => {\n let reportName = '';\n const { projectCalculation } = useCalculation();\n const { activeProjectOverview } = useProject();\n\n switch (type) {\n case ReportType.MaterialOrder:\n reportName = `${translate('reports.material-order-report')}`;\n break;\n case ReportType.MileStone:\n reportName = `${translate('reports.milestone-report')}`;\n break;\n case ReportType.MaterialListPrecut:\n reportName = `${translate('reports.material-list-precut-report')}`;\n break;\n case ReportType.AttachmentPriceOffer:\n reportName = `${translate('reports.attachment-price-offer-report')}`;\n break;\n case ReportType.BuildingElements:\n reportName = `${translate('reports.building-elements-report')}`;\n break;\n case ReportType.MainSums:\n reportName = `${translate('reports.main-sums-report')}`;\n break;\n case ReportType.PriceRequest:\n reportName = `${translate('reports.price-request-report')}`;\n break;\n case ReportType.CalculationView:\n reportName = `${translate('reports.calculation-view-report')}`;\n break;\n case ReportType.TimeView:\n reportName = `${translate('reports.time-view-report')}`;\n break;\n case ReportType.DeliveryView:\n reportName = `${translate('reports.delivery-view-report')}`;\n break;\n case ReportType.EconomyView:\n reportName = `${translate('reports.economy-view-report')}`;\n break;\n case ReportType.MaterialsView:\n reportName = `${translate('reports.material-view-report')}`;\n break;\n case ReportType.ProjectMileStone:\n reportName = `${translate('reports.project-milestone-report')}`;\n break;\n case ReportType.ProjectAttachmentPriceOffer:\n reportName = `${translate('reports.project-attachment-price-report')}`;\n break;\n case ReportType.ProjectBuildingElements:\n reportName = `${translate('reports.project-building-element-report')}`;\n break;\n case ReportType.ProjectMainSums:\n reportName = `${translate('reports.project-main-sums-report')}`;\n break;\n case ReportType.Environment:\n reportName = `${translate('reports.environment-report')}`;\n break;\n default:\n reportName = `${translate('common.unknown')}`;\n break;\n }\n\n let name = `${reportName}.${ReportFileType[fileType].toLowerCase()}`;\n\n if (isProject && activeProjectOverview.value) {\n name = `${activeProjectOverview.value.Name.replace(\n ' ',\n ''\n )}_${reportName}.${ReportFileType[fileType].toLowerCase()}`;\n } else if (projectCalculation.value?.Name) {\n name = `${projectCalculation.value.Name.replace(\n ' ',\n ''\n )}_${reportName}.${ReportFileType[fileType].toLowerCase()}`;\n }\n\n name = name.replace(/[&#,+()$~%'\":*?<>{}]/g, '');\n\n return name;\n};\n\nexport const getBuildingMaterials = (\n project: ProjectCalculation,\n includeAllBuildingItems: boolean\n): Array => {\n const materialItems: Array = [];\n let items: Array = activeBuildingItems(project)\n ? activeBuildingItems(project)\n : [];\n\n if (includeAllBuildingItems) {\n items = allBuildingItems(project) ? allBuildingItems(project) : [];\n }\n\n if (items) {\n items = items.filter(\n item => item.SumMaterialsUE.value && item.SumMaterialsUE.value != 0\n );\n\n items.forEach(item => {\n const matItem: MaterialItemTotal = {\n NOBBNumber: item.NOBBNumber ?? null,\n ItemName: getPriceListItemName(item.Name ?? '', item),\n Unit: item.UnitForOrder,\n Price: item.Price ?? null,\n AmountOfMaterials: item.AmountOfMaterials.value ?? 0,\n AmountPrUnit: onlyIfPrecut(item.Precut, item.AmountPrUnit),\n Precut: item.Precut ?? null,\n PrecutUnit: onlyIfPrecutUnit(item.Precut ?? null, 'm'),\n PrecutText: getPrecutText(item.Precut ?? null),\n DeliveryOrder: item.DeliveryOrder ?? null,\n AccountNumber: item.NS3420 ?? '',\n TotalAmount: onlyIfPrecut(item.Precut, item.AmountCalculated.value),\n Comments: item.Comments ?? '',\n AccountName: null,\n Amount: null,\n BuildingElementId: null,\n Factor1Calculated: 0,\n Id: '',\n MileStone: null,\n OpeningAddition: 0,\n PriceListItemName: null,\n ProductionLine: null,\n ProjectCost: null,\n SortOrder: null,\n Sum: null,\n SumHours: null,\n SumProfit: null,\n SumSelfCost: null,\n SumSelfCostMaterialsSubContractors: null,\n SurfaceAddition: 0,\n TimePrUnit: null,\n UnitForOrder: null,\n BuildingElement: item.BuildingElement,\n OpeningAdditionAmount: computed(() => {\n return 0;\n }),\n SumAdditions: computed(() => {\n return 0;\n }),\n SumTime: computed(() => {\n return 0;\n }),\n SurfaceAdditionAmount: computed(() => {\n return 0;\n }),\n };\n\n const matExist = materialItems.findIndex(\n mi =>\n mi.NOBBNumber === matItem.NOBBNumber &&\n mi.UnitForOrder === matItem.UnitForOrder &&\n mi.BuildingElement?.ProductionLine ===\n matItem.BuildingElement?.ProductionLine &&\n mi.DeliveryOrder === matItem.DeliveryOrder &&\n mi.Precut === matItem.Precut &&\n mi.AmountPrUnit === matItem.AmountPrUnit\n );\n\n if (matExist >= 0) {\n const newMat = materialItems[matExist];\n newMat.AmountOfMaterials += matItem.AmountOfMaterials;\n if (newMat.TotalAmount !== null && newMat.TotalAmount > 0) {\n newMat.TotalAmount += matItem.TotalAmount ?? 0;\n } else {\n newMat.TotalAmount = matItem.TotalAmount ?? 0;\n }\n\n materialItems.splice(matExist, 1, newMat);\n } else {\n materialItems.push(matItem);\n }\n });\n }\n\n return materialItems;\n};\n\nexport const getPriceRequestMaterials = (\n project: ProjectCalculation,\n includeAllBuildingItems: boolean\n): Array => {\n const materialItems: Array = [];\n let items: Array = activeBuildingItems(project)\n ? activeBuildingItems(project)\n : [];\n\n if (includeAllBuildingItems) {\n items = allBuildingItems(project) ? allBuildingItems(project) : [];\n }\n\n if (items) {\n items = items.filter(\n item => item.SumMaterialsUE.value && item.SumMaterialsUE.value != 0\n );\n\n items.forEach(item => {\n const matItem: MaterialItemTotal = {\n NOBBNumber: item.NOBBNumber ?? null,\n ItemName: getPriceListItemName(item.Name ?? '', item),\n Unit: item.UnitForOrder,\n Price: item.Price ?? null,\n AmountOfMaterials: item.AmountOfMaterials.value ?? 0,\n AmountPrUnit: onlyIfPrecut(item.Precut, item.AmountPrUnit),\n Precut: item.Precut ?? null,\n PrecutUnit: onlyIfPrecutUnit(item.Precut ?? null, 'm'),\n PrecutText: getPrecutText(item.Precut ?? null),\n DeliveryOrder: item.DeliveryOrder ?? null,\n AccountNumber: item.NS3420 ?? '',\n TotalAmount: onlyIfPrecut(item.Precut, item.AmountCalculated.value),\n Comments: item.Comments ?? '',\n AccountName: null,\n Amount: null,\n BuildingElementId: null,\n Factor1Calculated: 0,\n Id: '',\n MileStone: null,\n OpeningAddition: 0,\n PriceListItemName: null,\n ProductionLine: null,\n ProjectCost: null,\n SortOrder: null,\n Sum: null,\n SumHours: null,\n SumProfit: null,\n SumSelfCost: null,\n SumSelfCostMaterialsSubContractors: null,\n SurfaceAddition: 0,\n TimePrUnit: null,\n UnitForOrder: null,\n BuildingElement: item.BuildingElement,\n OpeningAdditionAmount: computed(() => {\n return 0;\n }),\n SumAdditions: computed(() => {\n return 0;\n }),\n SumTime: computed(() => {\n return 0;\n }),\n SurfaceAdditionAmount: computed(() => {\n return 0;\n }),\n };\n\n const matExist = materialItems.findIndex(\n mi =>\n mi.NOBBNumber === matItem.NOBBNumber &&\n mi.UnitForOrder === matItem.UnitForOrder &&\n mi.BuildingElement?.ProductionLine ===\n matItem.BuildingElement?.ProductionLine &&\n mi.DeliveryOrder === matItem.DeliveryOrder &&\n mi.Precut === matItem.Precut &&\n mi.AmountPrUnit === matItem.AmountPrUnit &&\n mi.Price === matItem.Price\n );\n\n if (matExist >= 0) {\n const newMat = materialItems[matExist];\n newMat.AmountOfMaterials += matItem.AmountOfMaterials;\n if (newMat.TotalAmount !== null && newMat.TotalAmount > 0) {\n newMat.TotalAmount += matItem.TotalAmount ?? 0;\n } else {\n newMat.TotalAmount = matItem.TotalAmount ?? 0;\n }\n\n materialItems.splice(matExist, 1, newMat);\n } else {\n materialItems.push(matItem);\n }\n });\n }\n\n return materialItems;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const downloadExcel = (fileName: string, out: any) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const s2ab = (s: any) => {\n const buf = new ArrayBuffer(s.length); //convert s to arrayBuffer\n const view = new Uint8Array(buf); //create uint8array as viewer\n for (let i = 0; i < s.length; i++) view[i] = s.charCodeAt(i) & 0xff; //convert to octet\n return buf;\n };\n\n saveAs(new Blob([s2ab(out)], { type: 'application/octet-stream' }), fileName);\n};\n","import { DEFAULT_TEXT_SMALL, LARGE_TEXT_SMALL } from '@/constants/styles';\nimport { createAddressString } from '@/helpers/common';\nimport { translate } from '@/localization';\nimport { useCompany } from '@/modules/company';\nimport jsPDF from 'jspdf';\nimport autoTable from 'jspdf-autotable';\nimport { ReportOptions } from './interfaces';\n\nconst getImageDimensions = async (\n imageData: string\n): Promise<{ w: number; h: number }> => {\n return new Promise(function(resolved) {\n const i = new Image();\n i.onload = function() {\n resolved({ w: i.naturalWidth, h: i.naturalHeight });\n };\n i.src = imageData;\n });\n};\n\nexport const createHeader = async (doc: jsPDF, options: ReportOptions) => {\n const MAX_IMAGE_WIDTH = 40; // Maximum width for the logo\n const MAX_IMAGE_HEIGHT = 20; // Maximum height for the logo\n\n const { getLogo, getCompany } = useCompany();\n const logoData = await getLogo();\n const company = await getCompany();\n\n const companyName = company?.CompanyName ?? `${translate('common.unknown')}`;\n\n doc.text(companyName, 14, 18);\n\n const data = [\n [translate('labels.org-number'), company?.OrganizationNumber ?? ''],\n [translate('labels.address'), createAddressString(company)],\n [translate('labels.email'), company?.Email ?? '-'],\n [translate('labels.phone'), company?.Phone ?? '-'],\n ];\n\n if (logoData) {\n const logo = `data:image/png;base64,${logoData}`;\n const dims = await getImageDimensions(logo);\n\n if (dims.w && dims.h) {\n const ratio = Math.min(\n MAX_IMAGE_WIDTH / dims.w,\n MAX_IMAGE_HEIGHT / dims.h\n );\n const imageWidth = dims.w * ratio;\n const imageHeight = dims.h * ratio;\n\n doc.addImage(logo, 'PNG', 155, 18, imageWidth, imageHeight);\n }\n }\n\n autoTable(doc, {\n startY: 24,\n body: data,\n theme: 'plain',\n margin: { right: 107 },\n styles: {\n fontSize:\n options.FontSize === 'default' ? DEFAULT_TEXT_SMALL : LARGE_TEXT_SMALL,\n cellPadding: 0.5,\n },\n columnStyles: {\n 0: {\n fontStyle: 'bold',\n },\n },\n });\n};\n\nexport const createHeaderXlsx = async (xlData: (string | number)[][]) => {\n const { getCompany } = useCompany();\n const company = await getCompany();\n\n const companyName = company?.CompanyName ?? `${translate('common.unknown')}`;\n\n xlData.push([companyName]);\n xlData.push(['']);\n xlData.push([\n `${translate('labels.org-number')}`,\n company?.OrganizationNumber ?? '',\n ]);\n xlData.push([\n `${translate('labels.address')}`,\n createAddressString(company) ?? '',\n ]);\n xlData.push([`${translate('labels.email')}`, company?.Email ?? '-']);\n xlData.push([`${translate('labels.phone')}`, company?.Phone ?? '-']);\n xlData.push(['']);\n};\n","import { getNameByProfessionCode } from '@/helpers/common';\nimport { translate } from '@/localization';\nimport { useCalculation } from '@/modules/calculation';\nimport { useProject } from '@/modules/project';\nimport jsPDF from 'jspdf';\nimport autoTable from 'jspdf-autotable';\nimport { ProjectContact } from '@/models/contacts/interfaces';\nimport { ReportOptions } from './interfaces';\nimport { DEFAULT_TEXT_SMALL, LARGE_TEXT_SMALL } from '@/constants/styles';\n\nexport const createProjectInfo = async (\n doc: jsPDF,\n orderInfo: boolean,\n options: ReportOptions,\n isProject?: boolean\n) => {\n const {\n projectCalculation,\n activeCalculation,\n getPrimaryContact,\n } = useCalculation();\n\n const { activeProjectDetails, activeProjectOverview } = useProject();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const first = (doc as any).autoTable.previous;\n\n let contact: ProjectContact | undefined = undefined;\n\n if (projectCalculation.value?.Id) {\n contact = await getPrimaryContact(projectCalculation.value);\n }\n\n const data = [\n ['', '', '', '', '', '', '', ''],\n [\n ' ',\n translate('labels.projectnumber'),\n activeCalculation?.value?.ProjectNumber ?? '-',\n translate('labels.contact'),\n !isProject\n ? `${\n contact?.FirstName != null && contact?.LastName != null\n ? `${contact.FirstName} ${contact.LastName}`\n : '-'\n }`\n : '',\n translate('labels.street-number'),\n activeProjectDetails?.value?.StreetNumber ?? '-',\n ' ',\n ],\n [\n ' ',\n translate('labels.main-project'),\n activeProjectOverview.value?.Name ?? '-',\n translate('labels.phone'),\n !isProject ? contact?.Phone ?? '-' : '',\n translate('labels.usage-number'),\n activeProjectDetails?.value?.UsageNumber ?? '-',\n ' ',\n ],\n [\n ' ',\n translate('common.calculation'),\n !isProject ? activeCalculation?.value?.Name ?? '-' : '',\n translate('labels.email'),\n !isProject ? contact?.Email ?? '-' : '',\n translate('labels.housing-number'),\n activeProjectDetails?.value?.HousingNumber ?? '-',\n ' ',\n ],\n [\n ' ',\n translate('labels.occupation-calculation'),\n !isProject\n ? getNameByProfessionCode(\n projectCalculation.value?.Profession.Code ?? ''\n ) ?? '-'\n : '',\n\n '',\n '',\n translate('labels.section-number'),\n activeProjectDetails?.value?.SectionNumber ?? '-',\n ' ',\n ],\n [\n ' ',\n translate('labels.address-workplace'),\n activeProjectDetails?.value?.AddressLine1 ?? '-',\n '',\n '',\n '',\n '',\n ' ',\n ],\n ['', '', '', '', '', '', '', ''],\n ];\n\n autoTable(doc, {\n startY: first.finalY + 6,\n body: data,\n theme: 'plain',\n tableLineColor: '#b7b7b7',\n tableLineWidth: 0.1,\n styles: {\n fontSize:\n options.FontSize === 'default' ? DEFAULT_TEXT_SMALL : LARGE_TEXT_SMALL,\n cellPadding: 0.5,\n },\n columnStyles: {\n 1: {\n fontStyle: 'bold',\n },\n 3: {\n fontStyle: 'bold',\n },\n 5: {\n fontStyle: 'bold',\n },\n 6: {\n halign: 'right',\n },\n },\n });\n\n if (activeProjectDetails?.value?.AdditionalInformation && orderInfo) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const second = (doc as any).autoTable.previous;\n\n const orderData = [\n [\n translate('labels.order-information'),\n activeProjectDetails.value.AdditionalInformation,\n ],\n ];\n autoTable(doc, {\n startY: second.finalY + 6,\n body: orderData,\n theme: 'plain',\n styles: {\n fontSize:\n options.FontSize === 'default'\n ? DEFAULT_TEXT_SMALL\n : LARGE_TEXT_SMALL,\n },\n columnStyles: {\n 0: {\n fontStyle: 'bold',\n },\n 1: {\n fontStyle: 'italic',\n },\n },\n });\n }\n};\n\nexport const createProjectInfoXlsx = async (\n xlData: (string | number)[][],\n isProject?: boolean\n) => {\n const {\n projectCalculation,\n activeCalculation,\n getPrimaryContact,\n } = useCalculation();\n\n const { activeProjectDetails, activeProjectOverview } = useProject();\n let contact: ProjectContact | undefined = undefined;\n\n if (projectCalculation.value?.Id) {\n contact = await getPrimaryContact(projectCalculation.value);\n }\n\n xlData.push([\n `${translate('labels.projectnumber')}`,\n !isProject ? activeCalculation?.value?.ProjectNumber ?? '-' : '-',\n `${translate('labels.contact')}`,\n `${\n !isProject\n ? contact?.FirstName != null && contact?.LastName != null\n ? `${contact.FirstName} ${contact.LastName}`\n : '-'\n : '-'\n }`,\n `${translate('labels.street-number')}`,\n activeProjectDetails?.value?.StreetNumber ?? '-',\n ]);\n xlData.push([\n `${translate('labels.main-project')}`,\n activeProjectOverview.value?.Name ?? '-',\n `${translate('labels.phone')}`,\n !isProject ? contact?.Phone ?? '-' : '-',\n `${translate('labels.usage-number')}`,\n activeProjectDetails?.value?.UsageNumber ?? '-',\n ]);\n xlData.push([\n `${translate('common.calculation')}`,\n !isProject ? activeCalculation?.value?.Name ?? '-' : '-',\n `${translate('labels.email')}`,\n !isProject ? contact?.Email ?? '-' : '-',\n `${translate('labels.housing-number')}`,\n activeProjectDetails?.value?.HousingNumber ?? '-',\n ]);\n xlData.push([\n `${translate('labels.occupation-calculation')}`,\n !isProject\n ? getNameByProfessionCode(\n projectCalculation.value?.Profession.Code ?? ''\n ) ?? '-'\n : '-',\n\n '',\n '',\n `${translate('labels.section-number')}`,\n activeProjectDetails?.value?.SectionNumber ?? '-',\n ]);\n xlData.push([\n `${translate('labels.address-workplace')}`,\n activeProjectDetails?.value?.AddressLine1 ?? '-',\n '',\n '',\n '',\n '',\n ]);\n xlData.push(['', '', '', '', '', '', '', '']);\n};\n","import {\n createReportName,\n downloadExcel,\n getBuildingMaterials,\n} from '@/helpers/reports';\nimport { defaultLocaleString, translate } from '@/localization';\nimport jsPDF from 'jspdf';\nimport autoTable from 'jspdf-autotable';\nimport { ReportOptions } from '@/models/report/interfaces';\nimport { createHeader, createHeaderXlsx } from '@/models/report/report-header';\nimport {\n createProjectInfo,\n createProjectInfoXlsx,\n} from '@/models/report/report-project-info';\nimport { useCalculation } from '@/modules/calculation';\nimport { ReportFileType, ReportType } from '@/models/report/enums';\nimport XLSX from 'xlsx';\nimport { numberToAbsStringOrEmpty } from '@/helpers/common';\nimport {\n DEFAULT_TEXT_MEDIUM,\n DEFAULT_TEXT_XSMALL,\n LARGE_TEXT_MEDIUM,\n LARGE_TEXT_XSMALL,\n} from '@/constants/styles';\nimport { useReport } from '@/modules/report';\n\nexport const generateMaterialOrderReportPDF = async (\n type: ReportType,\n options: ReportOptions\n) => {\n const { projectCalculation } = useCalculation();\n\n if (!projectCalculation.value) return;\n\n const doc = new jsPDF('p', 'mm', [210, 297]);\n\n const pdfName = createReportName(type, ReportFileType.PDF);\n\n await createHeader(doc, options);\n await createProjectInfo(doc, true, options, false);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const first = (doc as any).autoTable.previous;\n\n const head = [\n [\n translate('labels.zip'),\n translate('labels.delivery-order'),\n translate('labels.production-line'),\n translate('labels.nobb-number'),\n translate('labels.description'),\n translate('labels.precut'),\n translate('labels.unit'),\n translate('labels.quantity'),\n translate('labels.length'),\n translate('labels.amount'),\n translate('labels.comments'),\n ],\n ];\n const data: (string | number)[][] = [];\n\n let postnr = 1;\n let matItems = getBuildingMaterials(projectCalculation.value, false);\n\n if (!options.IncludePrecut) {\n matItems = matItems.filter(mat => !mat.Precut);\n }\n\n const matItemsWithoutDeliveryOrder = matItems.filter(\n mi => mi.DeliveryOrder === null\n );\n matItems = matItems.filter(\n mi =>\n mi.DeliveryOrder !== null &&\n options.DeliveryOrders.includes(mi.DeliveryOrder)\n );\n\n if (options.IncludeWithoutDeliveryOrder) {\n matItems = matItems.concat(matItemsWithoutDeliveryOrder);\n }\n\n matItems = matItems.sort((a, b) =>\n (a.NOBBNumber ?? -1) > (b.NOBBNumber ?? -1)\n ? 1\n : (b.NOBBNumber ?? -1) > (a.NOBBNumber ?? -1)\n ? -1\n : 0\n );\n\n matItems = matItems.sort((a, b) =>\n (a.DeliveryOrder ?? -1) > (b.DeliveryOrder ?? -1)\n ? 1\n : (b.DeliveryOrder ?? -1) > (a.DeliveryOrder ?? -1)\n ? -1\n : 0\n );\n\n matItems.forEach(item => {\n const row = [\n postnr++,\n item.DeliveryOrder ?? '',\n '',\n item.NOBBNumber ?? '',\n item.ItemName ?? '',\n item.Precut ? (item.PrecutText != null ? item.PrecutText : '') : '',\n item.Unit ?? '',\n item.TotalAmount != null && item.TotalAmount > 0 ? item.TotalAmount : '',\n item.AmountPrUnit != null && item.AmountPrUnit > 0\n ? `${item.AmountPrUnit} ${item.PrecutUnit}`\n : '',\n numberToAbsStringOrEmpty(item.AmountOfMaterials, 2),\n options.IncludeComments ? item.Comments ?? '' : '',\n ];\n\n data.push(row);\n });\n\n const reportName = `${translate('reports.material-order-report')}`;\n\n doc.text(reportName, 14, first.finalY + 9);\n\n autoTable(doc, {\n startY: first.finalY + 14,\n head: head,\n body: data,\n showHead: 'firstPage',\n headStyles: { fillColor: '#263238' },\n styles: {\n fontSize:\n options.FontSize === 'default'\n ? DEFAULT_TEXT_XSMALL\n : LARGE_TEXT_XSMALL,\n },\n columnStyles: {\n 0: {\n valign: 'middle',\n },\n 1: {\n valign: 'middle',\n },\n 2: {\n valign: 'middle',\n },\n 3: {\n valign: 'middle',\n },\n 4: {\n valign: 'middle',\n },\n 5: {\n valign: 'middle',\n textColor: '#b71c1c',\n },\n 6: {\n valign: 'middle',\n },\n 7: {\n valign: 'middle',\n },\n 8: {\n valign: 'middle',\n },\n 9: {\n valign: 'middle',\n },\n 10: {\n valign: 'middle',\n },\n },\n });\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const pages = (doc.internal as any).getNumberOfPages();\n const pageWidth = doc.internal.pageSize.width; //Optional\n const pageHeight = doc.internal.pageSize.height; //Optional\n doc.setFontSize(\n options.FontSize === 'default' ? DEFAULT_TEXT_MEDIUM : LARGE_TEXT_MEDIUM\n ); //Optional\n\n for (let j = 1; j < pages + 1; j++) {\n const horizontalPos = pageWidth / 2;\n const verticalPos = pageHeight - 10;\n doc.setPage(j);\n doc.text(\n `${j} ${translate('common.by')} ${pages}`,\n horizontalPos,\n verticalPos,\n {\n align: 'center',\n }\n );\n\n const currentDate = new Date();\n const createdAt = `${currentDate.toLocaleString(defaultLocaleString)}`;\n\n doc.text(createdAt, 10, verticalPos, {\n align: 'left',\n });\n }\n\n await doc.save(pdfName);\n};\n\nexport const generateMaterialOrderReportEXCEL = async (\n type: ReportType,\n options: ReportOptions\n) => {\n const { projectCalculation } = useCalculation();\n const { checkAndbuildSheetName } = useReport();\n\n if (!projectCalculation.value) return;\n\n const wb = XLSX.utils.book_new();\n\n const xlsxName = createReportName(type, ReportFileType.XLSX);\n\n const sheetName = checkAndbuildSheetName(\n projectCalculation.value.Name,\n wb.SheetNames\n );\n\n wb.Props = {\n Title: `${translate('reports.material-order-report')}`,\n CreatedDate: new Date(),\n };\n\n wb.SheetNames.push(sheetName);\n\n const data: (string | number)[][] = [];\n\n data.push([sheetName]);\n data.push(['']);\n\n await createHeaderXlsx(data);\n await createProjectInfoXlsx(data);\n\n data.push([\n `${translate('labels.zip')}`,\n `${translate('labels.delivery-order')}`,\n `${translate('labels.production-line')}`,\n `${translate('labels.nobb-number')}`,\n `${translate('labels.description')}`,\n `${translate('labels.precut')}`,\n `${translate('labels.unit')}`,\n `${translate('labels.quantity')}`,\n `${translate('labels.length')}`,\n `${translate('labels.amount')}`,\n `${translate('labels.comments')}`,\n ]);\n\n let postnr = 1;\n let matItems = getBuildingMaterials(projectCalculation.value, false);\n\n if (!options.IncludePrecut) {\n matItems = matItems.filter(mat => !mat.Precut);\n }\n\n const matItemsWithoutDeliveryOrder = matItems.filter(\n mi => mi.DeliveryOrder === null\n );\n matItems = matItems.filter(\n mi =>\n mi.DeliveryOrder !== null &&\n options.DeliveryOrders.includes(mi.DeliveryOrder)\n );\n\n if (options.IncludeWithoutDeliveryOrder) {\n matItems = matItems.concat(matItemsWithoutDeliveryOrder);\n }\n\n matItems = matItems.sort((a, b) =>\n (a.NOBBNumber ?? -1) > (b.NOBBNumber ?? -1)\n ? 1\n : (b.NOBBNumber ?? -1) > (a.NOBBNumber ?? -1)\n ? -1\n : 0\n );\n\n matItems = matItems.sort((a, b) =>\n (a.DeliveryOrder ?? -1) > (b.DeliveryOrder ?? -1)\n ? 1\n : (b.DeliveryOrder ?? -1) > (a.DeliveryOrder ?? -1)\n ? -1\n : 0\n );\n\n matItems.forEach(item => {\n const row = [\n postnr++,\n item.DeliveryOrder ?? '',\n '',\n item.NOBBNumber ?? '',\n item.ItemName ?? '',\n item.Precut ? (item.PrecutText != null ? item.PrecutText : '') : '',\n item.Unit ?? '',\n item.TotalAmount != null && item.TotalAmount > 0 ? item.TotalAmount : '',\n item.AmountPrUnit != null && item.AmountPrUnit > 0\n ? `${item.AmountPrUnit} ${item.PrecutUnit}`\n : '',\n numberToAbsStringOrEmpty(item.AmountOfMaterials, 2),\n options.IncludeComments ? item.Comments ?? '' : '',\n ];\n\n data.push(row);\n });\n\n const ws = XLSX.utils.aoa_to_sheet(data);\n wb.Sheets[sheetName] = ws;\n\n const wbout = XLSX.write(wb, { bookType: 'xlsx', type: 'binary' });\n\n downloadExcel(xlsxName, wbout);\n};\n\nexport const generateMaterialOrderReport = async (\n type: ReportType,\n options: ReportOptions\n) => {\n switch (options.FileType) {\n case ReportFileType.PDF:\n await generateMaterialOrderReportPDF(type, options);\n break;\n case ReportFileType.XLSX:\n await generateMaterialOrderReportEXCEL(type, options);\n break;\n default:\n break;\n }\n};\n","import {\n createReportName,\n downloadExcel,\n getMileStoneData,\n} from '@/helpers/reports';\nimport { defaultLocaleString, translate } from '@/localization';\nimport jsPDF from 'jspdf';\nimport autoTable from 'jspdf-autotable';\nimport {\n NO_MILESTONE,\n ReportFileType,\n ReportType,\n} from '@/models/report//enums';\nimport { createHeader, createHeaderXlsx } from '@/models/report/report-header';\nimport {\n createProjectInfo,\n createProjectInfoXlsx,\n} from '@/models/report/report-project-info';\nimport { useCalculation } from '@/modules/calculation';\nimport { ReportOptions } from '@/models/report/interfaces';\nimport XLSX from 'xlsx';\nimport { numberToAbsStringOrEmpty } from '@/helpers/common';\nimport {\n DEFAULT_TEXT_LARGE,\n DEFAULT_TEXT_MEDIUM,\n DEFAULT_TEXT_SMALL,\n DEFAULT_TEXT_XSMALL,\n LARGE_TEXT_LARGE,\n LARGE_TEXT_MEDIUM,\n LARGE_TEXT_SMALL,\n LARGE_TEXT_XSMALL,\n} from '@/constants/styles';\nimport { useReport } from '@/modules/report';\n\nexport const generateMilestoneReportPDF = async (\n type: ReportType,\n options: ReportOptions\n) => {\n const { projectCalculation } = useCalculation();\n console.log(options);\n\n if (!projectCalculation.value) return;\n\n const doc = new jsPDF('p', 'mm', [210, 297]);\n\n const pdfName = createReportName(type, ReportFileType.PDF);\n\n await createHeader(doc, options);\n await createProjectInfo(doc, false, options, false);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const first = (doc as any).autoTable.previous;\n let sumSelfCost = 0;\n let sumhours = 0;\n\n const head = [\n [\n translate('labels.milestone'),\n translate('labels.building-element'),\n translate('labels.building-item'),\n translate('labels.unit'),\n translate('labels.amount'),\n translate('labels.sum-selfcost-mat-sub'),\n translate('labels.hours'),\n ],\n ];\n\n const reportName = `${translate('reports.milestone-report')}`;\n\n doc.text(reportName, 14, first.finalY + 9);\n\n const milestones = getMileStoneData(projectCalculation.value, false);\n const withoutMilestone = milestones.get(NO_MILESTONE);\n\n if (milestones) {\n if (withoutMilestone) {\n const mileStonedata: (string | number)[][] = [];\n\n withoutMilestone.forEach(item => {\n const row = [\n item.MileStone ?? '',\n item.BuildingElement?.Name ?? '',\n `${item.ItemName}` ?? '',\n item.Unit ?? '',\n numberToAbsStringOrEmpty(item.Amount, 2),\n numberToAbsStringOrEmpty(item.SumSelfCostMaterialsSubContractors, 2),\n numberToAbsStringOrEmpty(item.SumHours, 2),\n ];\n\n mileStonedata.push(row);\n });\n\n sumSelfCost += withoutMilestone.reduce((prev, cur) => {\n return prev + (cur.SumSelfCostMaterialsSubContractors ?? 0);\n }, 0);\n sumhours += withoutMilestone.reduce((prev, cur) => {\n return prev + (cur.SumHours ?? 0);\n }, 0);\n\n const lastRow = [\n '',\n '',\n '',\n '',\n '',\n numberToAbsStringOrEmpty(\n withoutMilestone.reduce((prev, cur) => {\n return prev + (cur.SumSelfCostMaterialsSubContractors ?? 0);\n }, 0),\n 2\n ),\n numberToAbsStringOrEmpty(\n withoutMilestone.reduce((prev, cur) => {\n return prev + (cur.SumHours ?? 0);\n }, 0),\n 2\n ),\n ];\n\n mileStonedata.push(lastRow);\n\n const milestoneHeader = [[translate(`labels.${NO_MILESTONE}`)]];\n\n autoTable(doc, {\n startY: first.finalY + 12,\n head: milestoneHeader,\n theme: 'plain',\n styles: {\n fontStyle: 'italic',\n },\n });\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const second = (doc as any).autoTable.previous;\n\n autoTable(doc, {\n startY: second.finalY,\n showHead: 'firstPage',\n head: head,\n body: mileStonedata,\n headStyles: {\n fillColor: '#656d72',\n fontSize:\n options.FontSize === 'default'\n ? DEFAULT_TEXT_XSMALL\n : LARGE_TEXT_XSMALL,\n valign: 'middle',\n },\n styles: {\n fontSize:\n options.FontSize === 'default'\n ? DEFAULT_TEXT_XSMALL\n : LARGE_TEXT_XSMALL,\n },\n didParseCell(data) {\n if (data.row.index === mileStonedata.length - 1) {\n data.cell.styles.fontStyle = 'bold';\n data.cell.styles.fillColor = 'white';\n }\n },\n columnStyles: {\n 0: {\n cellWidth: 25,\n valign: 'middle',\n },\n 1: {\n cellWidth: 'auto',\n valign: 'middle',\n },\n 2: {\n cellWidth: 'auto',\n valign: 'middle',\n },\n 3: {\n cellWidth:\n options.FontSize === 'default'\n ? DEFAULT_TEXT_LARGE\n : LARGE_TEXT_LARGE,\n valign: 'middle',\n halign: 'center',\n },\n 4: {\n cellWidth:\n options.FontSize === 'default'\n ? DEFAULT_TEXT_LARGE\n : LARGE_TEXT_LARGE,\n valign: 'middle',\n halign: 'center',\n },\n 5: {\n cellWidth: 25,\n valign: 'middle',\n halign: 'right',\n },\n 6: {\n cellWidth: 15,\n valign: 'middle',\n halign: 'right',\n },\n },\n });\n\n milestones.delete(NO_MILESTONE);\n }\n\n milestones.forEach((value, key) => {\n const mileStonedata: (string | number)[][] = [];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const first = (doc as any).autoTable.previous;\n\n value.forEach(item => {\n const row = [\n item.MileStone ?? '',\n item.BuildingElement?.Name ?? '',\n `${item.ItemName}` ?? '',\n item.Unit ?? '',\n numberToAbsStringOrEmpty(item.Amount, 2),\n numberToAbsStringOrEmpty(item.SumSelfCostMaterialsSubContractors, 2),\n numberToAbsStringOrEmpty(item.SumHours, 2),\n ];\n\n mileStonedata.push(row);\n });\n\n sumSelfCost += value.reduce((prev, cur) => {\n return prev + (cur.SumSelfCostMaterialsSubContractors ?? 0);\n }, 0);\n sumhours += value.reduce((prev, cur) => {\n return prev + (cur.SumHours ?? 0);\n }, 0);\n\n const lastRow = [\n key,\n '',\n '',\n '',\n '',\n numberToAbsStringOrEmpty(\n value.reduce((prev, cur) => {\n return prev + (cur.SumSelfCostMaterialsSubContractors ?? 0);\n }, 0),\n 2\n ),\n numberToAbsStringOrEmpty(\n value.reduce((prev, cur) => {\n return prev + (cur.SumHours ?? 0);\n }, 0),\n 2\n ),\n ];\n\n mileStonedata.push(lastRow);\n\n const milestoneHeader = [[`${translate('labels.milestone')} - ${key}`]];\n\n autoTable(doc, {\n startY: withoutMilestone ? first.finalY + 6 : first.finalY + 12,\n head: milestoneHeader,\n theme: 'plain',\n styles: {\n fontStyle: 'italic',\n },\n });\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const second = (doc as any).autoTable.previous;\n\n autoTable(doc, {\n showHead: 'firstPage',\n startY: second.finalY,\n head: head,\n body: mileStonedata,\n headStyles: {\n fillColor: '#263238',\n fontSize:\n options.FontSize === 'default'\n ? DEFAULT_TEXT_XSMALL\n : LARGE_TEXT_XSMALL,\n valign: 'middle',\n },\n styles: {\n fontSize:\n options.FontSize === 'default'\n ? DEFAULT_TEXT_XSMALL\n : LARGE_TEXT_XSMALL,\n },\n didParseCell(data) {\n if (data.row.index === mileStonedata.length - 1) {\n data.cell.styles.fontStyle = 'bold';\n data.cell.styles.fillColor = 'white';\n }\n },\n columnStyles: {\n 0: {\n cellWidth: 25,\n valign: 'middle',\n },\n 1: {\n cellWidth: 'auto',\n valign: 'middle',\n },\n 2: {\n cellWidth: 'auto',\n valign: 'middle',\n },\n 3: {\n cellWidth:\n options.FontSize === 'default'\n ? DEFAULT_TEXT_LARGE\n : LARGE_TEXT_LARGE,\n valign: 'middle',\n halign: 'center',\n },\n 4: {\n cellWidth:\n options.FontSize === 'default'\n ? DEFAULT_TEXT_LARGE\n : LARGE_TEXT_LARGE,\n valign: 'middle',\n halign: 'center',\n },\n 5: {\n cellWidth: 25,\n valign: 'middle',\n halign: 'right',\n },\n 6: {\n cellWidth: 15,\n valign: 'middle',\n halign: 'right',\n },\n },\n });\n });\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const last = (doc as any).autoTable.previous;\n\n const summaryData: (string | number)[][] = [\n [\n 'Total',\n '',\n '',\n '',\n '',\n numberToAbsStringOrEmpty(sumSelfCost, 2),\n numberToAbsStringOrEmpty(sumhours, 2),\n ],\n ];\n\n autoTable(doc, {\n startY: last.finalY + 10,\n body: summaryData,\n theme: 'plain',\n styles: {\n fontSize:\n options.FontSize === 'default'\n ? DEFAULT_TEXT_SMALL\n : LARGE_TEXT_SMALL,\n fontStyle: 'bold',\n },\n columnStyles: {\n 0: {\n cellWidth: 25,\n valign: 'middle',\n },\n 1: {\n cellWidth: 'auto',\n valign: 'middle',\n },\n 2: {\n cellWidth: 'auto',\n valign: 'middle',\n },\n 3: {\n cellWidth:\n options.FontSize === 'default'\n ? DEFAULT_TEXT_LARGE\n : LARGE_TEXT_LARGE,\n valign: 'middle',\n halign: 'center',\n },\n 4: {\n cellWidth:\n options.FontSize === 'default'\n ? DEFAULT_TEXT_LARGE\n : LARGE_TEXT_LARGE,\n valign: 'middle',\n halign: 'center',\n },\n 5: {\n cellWidth: 25,\n valign: 'middle',\n halign: 'right',\n },\n 6: {\n cellWidth: 15,\n valign: 'middle',\n halign: 'right',\n },\n },\n });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const pages = (doc.internal as any).getNumberOfPages();\n const pageWidth = doc.internal.pageSize.width; //Optional\n const pageHeight = doc.internal.pageSize.height; //Optional\n doc.setFontSize(\n options.FontSize === 'default' ? DEFAULT_TEXT_MEDIUM : LARGE_TEXT_MEDIUM\n ); //Optional\n\n for (let j = 1; j < pages + 1; j++) {\n const horizontalPos = pageWidth / 2;\n const verticalPos = pageHeight - 10;\n doc.setPage(j);\n doc.text(\n `${j} ${translate('common.by')} ${pages}`,\n horizontalPos,\n verticalPos,\n {\n align: 'center',\n }\n );\n\n const currentDate = new Date();\n const createdAt = `${currentDate.toLocaleString(defaultLocaleString)}`;\n\n doc.text(createdAt, 10, verticalPos, {\n align: 'left',\n });\n }\n\n await doc.save(pdfName);\n};\n\nexport const generateMilestoneReportEXCEL = async (\n type: ReportType,\n options: ReportOptions\n) => {\n const { projectCalculation } = useCalculation();\n const { checkAndbuildSheetName } = useReport();\n console.log(options);\n\n if (!projectCalculation.value) return;\n\n let sumSelfCost = 0;\n let sumhours = 0;\n\n const wb = XLSX.utils.book_new();\n\n const xlsxName = createReportName(type, ReportFileType.XLSX);\n\n const sheetName = checkAndbuildSheetName(\n projectCalculation.value.Name,\n wb.SheetNames\n );\n\n wb.Props = {\n Title: `${translate('reports.material-order-report')}`,\n CreatedDate: new Date(),\n };\n\n wb.SheetNames.push(sheetName);\n\n const milestones = getMileStoneData(projectCalculation.value, false);\n const withoutMilestone = milestones.get(NO_MILESTONE);\n const mileStonedata: (string | number)[][] = [];\n\n mileStonedata.push([sheetName]);\n mileStonedata.push(['']);\n\n await createHeaderXlsx(mileStonedata);\n await createProjectInfoXlsx(mileStonedata);\n\n if (milestones) {\n if (withoutMilestone) {\n mileStonedata.push([`${translate(`labels.${NO_MILESTONE}`)}`]);\n\n mileStonedata.push([\n `${translate('labels.milestone')}`,\n `${translate('labels.building-element')}`,\n `${translate('labels.building-item')}`,\n `${translate('labels.unit')}`,\n `${translate('labels.amount')}`,\n `${translate('labels.sum-selfcost-mat-sub')}`,\n `${translate('labels.hours')}`,\n ]);\n withoutMilestone.forEach(item => {\n const row = [\n item.MileStone ?? '',\n item.BuildingElement?.Name ?? '',\n `${item.ItemName}` ?? '',\n item.Unit ?? '',\n numberToAbsStringOrEmpty(item.Amount, 2),\n numberToAbsStringOrEmpty(item.SumSelfCostMaterialsSubContractors, 2),\n numberToAbsStringOrEmpty(item.SumHours, 2),\n ];\n\n mileStonedata.push(row);\n });\n\n sumSelfCost += withoutMilestone.reduce((prev, cur) => {\n return prev + (cur.SumSelfCostMaterialsSubContractors ?? 0);\n }, 0);\n sumhours += withoutMilestone.reduce((prev, cur) => {\n return prev + (cur.SumHours ?? 0);\n }, 0);\n\n const lastRow = [\n 'Total',\n '',\n '',\n '',\n '',\n numberToAbsStringOrEmpty(\n withoutMilestone.reduce((prev, cur) => {\n return prev + (cur.SumSelfCostMaterialsSubContractors ?? 0);\n }, 0),\n 2\n ),\n numberToAbsStringOrEmpty(\n withoutMilestone.reduce((prev, cur) => {\n return prev + (cur.SumHours ?? 0);\n }, 0),\n 2\n ),\n ];\n\n mileStonedata.push(lastRow);\n\n milestones.delete(NO_MILESTONE);\n }\n\n milestones.forEach((value, key) => {\n mileStonedata.push(['']);\n\n mileStonedata.push([`${translate('labels.milestone')} - ${key}`]);\n\n mileStonedata.push([\n `${translate('labels.milestone')}`,\n `${translate('labels.building-element')}`,\n `${translate('labels.building-item')}`,\n `${translate('labels.unit')}`,\n `${translate('labels.amount')}`,\n `${translate('labels.sum-selfcost-mat-sub')}`,\n `${translate('labels.hours')}`,\n ]);\n\n value.forEach(item => {\n const row = [\n item.MileStone ?? '',\n item.BuildingElement?.Name ?? '',\n `${item.ItemName}` ?? '',\n item.Unit ?? '',\n numberToAbsStringOrEmpty(item.Amount, 2),\n numberToAbsStringOrEmpty(item.SumSelfCostMaterialsSubContractors, 2),\n numberToAbsStringOrEmpty(item.SumHours, 2),\n ];\n\n mileStonedata.push(row);\n });\n\n sumSelfCost += value.reduce((prev, cur) => {\n return prev + (cur.SumSelfCostMaterialsSubContractors ?? 0);\n }, 0);\n sumhours += value.reduce((prev, cur) => {\n return prev + (cur.SumHours ?? 0);\n }, 0);\n\n const lastRow = [\n key,\n '',\n '',\n '',\n '',\n numberToAbsStringOrEmpty(\n value.reduce((prev, cur) => {\n return prev + (cur.SumSelfCostMaterialsSubContractors ?? 0);\n }, 0),\n 2\n ),\n numberToAbsStringOrEmpty(\n value.reduce((prev, cur) => {\n return prev + (cur.SumHours ?? 0);\n }, 0),\n 2\n ),\n ];\n\n mileStonedata.push(lastRow);\n\n mileStonedata.push([\n 'Total',\n '',\n '',\n '',\n '',\n numberToAbsStringOrEmpty(sumSelfCost, 2),\n numberToAbsStringOrEmpty(sumhours, 2),\n ]);\n });\n const ws = XLSX.utils.aoa_to_sheet(mileStonedata);\n wb.Sheets[sheetName] = ws;\n\n const wbout = XLSX.write(wb, { bookType: 'xlsx', type: 'binary' });\n\n downloadExcel(xlsxName, wbout);\n }\n};\n\nexport const generateMilestoneReport = async (\n type: ReportType,\n options: ReportOptions\n) => {\n switch (options.FileType) {\n case ReportFileType.PDF:\n await generateMilestoneReportPDF(type, options);\n break;\n case ReportFileType.XLSX:\n await generateMilestoneReportEXCEL(type, options);\n break;\n default:\n break;\n }\n};\n","import {\n createReportName,\n downloadExcel,\n getBuildingMaterials,\n} from '@/helpers/reports';\nimport { defaultLocaleString, translate } from '@/localization';\nimport jsPDF from 'jspdf';\nimport autoTable from 'jspdf-autotable';\nimport { createHeader, createHeaderXlsx } from '@/models/report/report-header';\nimport {\n createProjectInfo,\n createProjectInfoXlsx,\n} from '@/models/report/report-project-info';\nimport { ReportFileType, ReportType } from './enums';\nimport { ReportOptions } from '@/models/report/interfaces';\nimport { useCalculation } from '@/modules/calculation';\nimport XLSX from 'xlsx';\nimport { numberToAbsStringOrEmpty } from '@/helpers/common';\nimport {\n DEFAULT_TEXT_MEDIUM,\n DEFAULT_TEXT_XSMALL,\n LARGE_TEXT_MEDIUM,\n LARGE_TEXT_XSMALL,\n} from '@/constants/styles';\nimport { useReport } from '@/modules/report';\n\nconst generateMaterialListPrecutReportPDF = async (\n type: ReportType,\n options: ReportOptions\n) => {\n const { projectCalculation } = useCalculation();\n console.log(options);\n\n if (!projectCalculation.value) return;\n\n const doc = new jsPDF('p', 'mm', [210, 297]);\n\n const pdfName = createReportName(type, ReportFileType.PDF);\n\n await createHeader(doc, options);\n await createProjectInfo(doc, false, options, false);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const first = (doc as any).autoTable.previous;\n\n const head = [\n [\n translate('labels.zip'),\n translate('labels.delivery-order'),\n translate('labels.production-line'),\n translate('labels.nobb-number'),\n translate('labels.description'),\n translate('labels.precut'),\n translate('labels.unit'),\n translate('labels.quantity'),\n translate('labels.length'),\n translate('labels.amount'),\n translate('labels.comments'),\n ],\n ];\n const data: (string | number)[][] = [];\n\n let postnr = 1;\n let matITems = getBuildingMaterials(projectCalculation.value, false);\n matITems = matITems.filter(mat => mat.Precut);\n\n matITems.forEach(item => {\n const row = [\n postnr++,\n item.DeliveryOrder ?? '',\n '',\n item.NOBBNumber ?? '',\n item.ItemName ?? '',\n item.Precut ? (item.PrecutText != null ? item.PrecutText : '') : '',\n item.Unit ?? '',\n item.TotalAmount != null && item.TotalAmount > 0 ? item.TotalAmount : '',\n item.AmountPrUnit != null && item.AmountPrUnit > 0\n ? `${item.AmountPrUnit} ${item.PrecutUnit}`\n : '',\n numberToAbsStringOrEmpty(item.AmountOfMaterials, 2),\n item.Comments ?? '',\n ];\n\n data.push(row);\n });\n\n const reportName = `${translate('reports.material-list-precut-report')}`;\n\n doc.text(reportName, 14, first.finalY + 9);\n\n autoTable(doc, {\n startY: first.finalY + 14,\n head: head,\n body: data,\n headStyles: { fillColor: '#58a333' },\n styles: {\n fontSize:\n options.FontSize === 'default'\n ? DEFAULT_TEXT_XSMALL\n : LARGE_TEXT_XSMALL,\n },\n columnStyles: {\n 0: {\n valign: 'middle',\n },\n 1: {\n valign: 'middle',\n },\n 2: {\n valign: 'middle',\n },\n 3: {\n valign: 'middle',\n },\n 4: {\n valign: 'middle',\n },\n 5: {\n valign: 'middle',\n textColor: '#b71c1c',\n },\n 6: {\n valign: 'middle',\n },\n 7: {\n valign: 'middle',\n },\n 8: {\n valign: 'middle',\n },\n 9: {\n valign: 'middle',\n },\n 10: {\n valign: 'middle',\n },\n },\n });\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const pages = (doc.internal as any).getNumberOfPages();\n const pageWidth = doc.internal.pageSize.width; //Optional\n const pageHeight = doc.internal.pageSize.height; //Optional\n doc.setFontSize(\n options.FontSize === 'default' ? DEFAULT_TEXT_MEDIUM : LARGE_TEXT_MEDIUM\n ); //Optional\n\n for (let j = 1; j < pages + 1; j++) {\n const horizontalPos = pageWidth / 2;\n const verticalPos = pageHeight - 10;\n doc.setPage(j);\n doc.text(\n `${j} ${translate('common.by')} ${pages}`,\n horizontalPos,\n verticalPos,\n {\n align: 'center',\n }\n );\n\n const currentDate = new Date();\n const createdAt = `${currentDate.toLocaleString(defaultLocaleString)}`;\n\n doc.text(createdAt, 10, verticalPos, {\n align: 'left',\n });\n }\n\n await doc.save(pdfName);\n};\n\nconst generateMaterialListPrecutReportEXCEL = async (\n type: ReportType,\n options: ReportOptions\n) => {\n const { projectCalculation } = useCalculation();\n const { checkAndbuildSheetName } = useReport();\n console.log(options);\n\n if (!projectCalculation.value) return;\n\n const wb = XLSX.utils.book_new();\n\n const xlsxName = createReportName(type, ReportFileType.XLSX);\n\n const sheetName = checkAndbuildSheetName(\n projectCalculation.value.Name,\n wb.SheetNames\n );\n\n wb.Props = {\n Title: `${translate('reports.material-list-precut-report')}`,\n CreatedDate: new Date(),\n };\n\n wb.SheetNames.push(sheetName);\n\n const data: (string | number)[][] = [];\n\n data.push([sheetName]);\n data.push(['']);\n\n await createHeaderXlsx(data);\n await createProjectInfoXlsx(data);\n\n data.push([\n `${translate('labels.zip')}`,\n `${translate('labels.delivery-order')}`,\n `${translate('labels.production-line')}`,\n `${translate('labels.nobb-number')}`,\n `${translate('labels.description')}`,\n `${translate('labels.precut')}`,\n `${translate('labels.unit')}`,\n `${translate('labels.quantity')}`,\n `${translate('labels.length')}`,\n `${translate('labels.amount')}`,\n `${translate('labels.comments')}`,\n ]);\n\n let postnr = 1;\n let matItems = getBuildingMaterials(projectCalculation.value, false);\n matItems = matItems.filter(mat => mat.Precut);\n\n matItems.forEach(item => {\n const row = [\n postnr++,\n item.DeliveryOrder ?? '',\n '',\n item.NOBBNumber ?? '',\n item.ItemName ?? '',\n item.Precut ? (item.PrecutText != null ? item.PrecutText : '') : '',\n item.Unit ?? '',\n item.TotalAmount != null && item.TotalAmount > 0 ? item.TotalAmount : '',\n item.AmountPrUnit != null && item.AmountPrUnit > 0\n ? `${item.AmountPrUnit} ${item.PrecutUnit}`\n : '',\n numberToAbsStringOrEmpty(item.AmountOfMaterials, 2),\n item.Comments ?? '',\n ];\n\n data.push(row);\n });\n\n const ws = XLSX.utils.aoa_to_sheet(data);\n wb.Sheets[sheetName] = ws;\n\n const wbout = XLSX.write(wb, { bookType: 'xlsx', type: 'binary' });\n\n downloadExcel(xlsxName, wbout);\n};\n\nexport const generateMaterialListPrecutReport = async (\n type: ReportType,\n options: ReportOptions\n) => {\n switch (options.FileType) {\n case ReportFileType.PDF:\n await generateMaterialListPrecutReportPDF(type, options);\n break;\n case ReportFileType.XLSX:\n await generateMaterialListPrecutReportEXCEL(type, options);\n break;\n default:\n break;\n }\n};\n","import { defaultLocaleString, translate } from '@/localization';\nimport jsPDF from 'jspdf';\nimport autoTable from 'jspdf-autotable';\nimport { ReportOptions } from '@/models/report/interfaces';\nimport { createHeader, createHeaderXlsx } from '@/models/report/report-header';\nimport {\n createProjectInfo,\n createProjectInfoXlsx,\n} from '@/models/report/report-project-info';\nimport { ReportFileType, ReportType } from '@/models/report/enums';\nimport { useCalculation } from '@/modules/calculation';\nimport { createReportName, downloadExcel } from '@/helpers/reports';\nimport XLSX from 'xlsx';\nimport {\n DEFAULT_TEXT_MEDIUM,\n DEFAULT_TEXT_XSMALL,\n LARGE_TEXT_MEDIUM,\n LARGE_TEXT_XSMALL,\n} from '@/constants/styles';\nimport { useReport } from '@/modules/report';\n\nconst generateAttachmentPriceOfferReportPDF = async (\n type: ReportType,\n options: ReportOptions\n) => {\n const { projectCalculation } = useCalculation();\n\n if (!projectCalculation.value) return;\n\n const doc = new jsPDF('p', 'mm', [210, 297]);\n\n const pdfName = createReportName(type, ReportFileType.PDF);\n\n await createHeader(doc, options);\n await createProjectInfo(doc, false, options, false);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const first = (doc as any).autoTable.previous;\n\n const buildingElementBreakPoints: Array = [];\n\n const reportName = `${translate('reports.attachment-price-offer-report')}`;\n\n doc.text(reportName, 14, first.finalY + 9);\n\n const head = [\n [\n translate('labels.zip'),\n translate('labels.description'),\n translate('labels.comments'),\n translate('labels.unit'),\n translate('labels.amount'),\n translate('labels.sum'),\n ],\n ];\n const offerData: (string | number)[][] = [];\n\n let elements = projectCalculation.value.BuildingElements.filter(\n ele => ele.IsAmountSet\n );\n\n if (elements) {\n let postnr = 1;\n elements = elements.sort((a, b) =>\n (a.SortOrder ?? -1) > (b.SortOrder ?? -1)\n ? 1\n : (b.SortOrder ?? -1) > (a.SortOrder ?? -1)\n ? -1\n : 0\n );\n\n elements.forEach(ele => {\n const row = [\n '',\n ele.Name ?? '',\n options.IncludeComments ? ele.Comments ?? '' : '',\n ele.Unit?.value ?? '',\n options.IncludeAmounts\n ? ele.Amount?.toLocaleString(defaultLocaleString, {\n maximumFractionDigits: 2,\n }) ?? ''\n : '',\n options.IncludeElementSums && ele.SumTotal.value\n ? ele.SumTotal.value.toLocaleString(defaultLocaleString, {\n maximumFractionDigits: 2,\n })\n : '',\n ];\n\n buildingElementBreakPoints.push(offerData.length);\n offerData.push(row);\n\n let filteredItems = ele.BuildingItems.filter(\n i => i.UnitPrice.value && i.UnitPrice.value > 0\n );\n\n filteredItems = filteredItems.sort((a, b) =>\n (a.BuildingElement?.SortOrder ?? -1) >\n (b.BuildingElement?.SortOrder ?? -1)\n ? 1\n : (b.BuildingElement?.SortOrder ?? -1) >\n (a.BuildingElement?.SortOrder ?? -1)\n ? -1\n : 0\n );\n\n if (options.IncludeBuildingItems) {\n filteredItems.forEach(item => {\n const row = [\n postnr++,\n `${item.Name ?? ''} ${\n item.PriceListItemName && options.ShowProductName\n ? `(${item.PriceListItemName})`\n : ''\n }`,\n options.IncludeComments ? item.Comments ?? '' : '',\n item.Unit ?? '',\n options.IncludeAmounts\n ? item.AmountCalculated.value?.toLocaleString(\n defaultLocaleString,\n {\n maximumFractionDigits: 2,\n }\n ) ?? ''\n : '',\n options.IncludeItemSums && item.SumTotalWithAdditions.value\n ? item.SumTotalWithAdditions.value.toLocaleString(\n defaultLocaleString,\n {\n maximumFractionDigits: 2,\n }\n )\n : '',\n ];\n\n offerData.push(row);\n });\n }\n });\n\n const MVA = 0.25;\n let sumExclMva = 0;\n let sumInclMva = 0;\n let MvaOnly = 0;\n\n elements.forEach(ele => {\n sumExclMva += ele.SumTotal.value ?? 0;\n });\n\n MvaOnly = sumExclMva * MVA;\n sumInclMva = sumExclMva + MvaOnly;\n\n const fillRow = ['', '', '', '', ''];\n const sumExclMvaRow = [\n '',\n '',\n '',\n '',\n `${translate('labels.sum-exclude-mva')}`,\n sumExclMva.toLocaleString(defaultLocaleString, {\n maximumFractionDigits: 2,\n }),\n ];\n const mvaRow = [\n '',\n '',\n '',\n '',\n `${translate('labels.sum-mva-only')}`,\n MvaOnly.toLocaleString(defaultLocaleString, {\n maximumFractionDigits: 2,\n }),\n ];\n const sumInclMvaRow = [\n '',\n '',\n '',\n '',\n `${translate('labels.sum-include-mva')}`,\n sumInclMva.toLocaleString(defaultLocaleString, {\n maximumFractionDigits: 2,\n }),\n ];\n\n offerData.push(fillRow);\n offerData.push(sumExclMvaRow);\n offerData.push(mvaRow);\n offerData.push(sumInclMvaRow);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const elePos = (doc as any).autoTable.previous;\n\n autoTable(doc, {\n startY: elePos.finalY + 14,\n head: head,\n body: offerData,\n showHead: 'firstPage',\n headStyles: { fillColor: '#263238' },\n styles: {\n fontSize:\n options.FontSize === 'default'\n ? DEFAULT_TEXT_XSMALL\n : LARGE_TEXT_XSMALL,\n },\n didParseCell(data) {\n if (\n buildingElementBreakPoints.includes(data.row.index) &&\n data.section === 'body'\n ) {\n data.cell.styles.fontStyle = 'bold';\n data.cell.styles.fillColor = options.IncludeBuildingItems\n ? '#d6d8da'\n : 'white';\n } else if (\n (data.section === 'body' &&\n data.row.index === offerData.length - 1) ||\n data.row.index === offerData.length - 2 ||\n data.row.index === offerData.length - 3\n ) {\n data.row.cells[0].styles.fillColor = 'white';\n data.row.cells[1].styles.fillColor = 'white';\n data.row.cells[2].styles.fillColor = 'white';\n data.row.cells[3].styles.fillColor = 'white';\n\n data.row.cells[4].styles.fontStyle = 'bold';\n data.row.cells[4].styles.cellPadding = 0.7;\n data.row.cells[4].styles.fillColor = '#f7f7f7';\n\n data.row.cells[5].styles.fontStyle = 'bold';\n data.row.cells[5].styles.cellPadding = 0.7;\n data.row.cells[5].styles.fillColor = '#f7f7f7';\n } else if (data.section === 'body') {\n data.cell.styles.fillColor = 'white';\n }\n },\n columnStyles: {\n 0: {\n valign: 'middle',\n },\n 1: {\n valign: 'middle',\n },\n 2: {\n valign: 'middle',\n },\n 3: {\n valign: 'middle',\n },\n 4: {\n valign: 'middle',\n halign: 'right',\n cellWidth: 20,\n },\n 5: {\n valign: 'middle',\n halign: 'right',\n cellWidth: 20,\n },\n },\n });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const pages = (doc.internal as any).getNumberOfPages();\n const pageWidth = doc.internal.pageSize.width; //Optional\n const pageHeight = doc.internal.pageSize.height; //Optional\n doc.setFontSize(\n options.FontSize === 'default' ? DEFAULT_TEXT_MEDIUM : LARGE_TEXT_MEDIUM\n ); //Optional\n\n for (let j = 1; j < pages + 1; j++) {\n const horizontalPos = pageWidth / 2;\n const verticalPos = pageHeight - 10;\n doc.setPage(j);\n doc.text(\n `${j} ${translate('common.by')} ${pages}`,\n horizontalPos,\n verticalPos,\n {\n align: 'center',\n }\n );\n\n const currentDate = new Date();\n const createdAt = `${currentDate.toLocaleString(defaultLocaleString)}`;\n\n doc.text(createdAt, 10, verticalPos, {\n align: 'left',\n });\n }\n\n await doc.save(pdfName);\n};\n\nconst generateAttachmentPriceOfferReportEXCEL = async (\n type: ReportType,\n options: ReportOptions\n) => {\n const { projectCalculation } = useCalculation();\n const { checkAndbuildSheetName } = useReport();\n\n if (!projectCalculation.value) return;\n\n const wb = XLSX.utils.book_new();\n\n const xlsxName = createReportName(type, ReportFileType.XLSX);\n\n const sheetName = checkAndbuildSheetName(\n projectCalculation.value.Name,\n wb.SheetNames\n );\n\n wb.Props = {\n Title: `${translate('reports.material-order-report')}`,\n CreatedDate: new Date(),\n };\n\n wb.SheetNames.push(sheetName);\n\n const offerData: (string | number)[][] = [];\n\n offerData.push([sheetName]);\n offerData.push(['']);\n\n await createHeaderXlsx(offerData);\n await createProjectInfoXlsx(offerData);\n\n offerData.push([\n `${translate('labels.zip')}`,\n `${translate('labels.description')}`,\n `${translate('labels.comments')}`,\n `${translate('labels.unit')}`,\n `${translate('labels.amount')}`,\n `${translate('labels.sum')}`,\n ]);\n\n let elements = projectCalculation.value.BuildingElements.filter(\n ele => ele.IsAmountSet\n );\n\n if (elements) {\n let postnr = 1;\n elements = elements.sort((a, b) =>\n (a.SortOrder ?? -1) > (b.SortOrder ?? -1)\n ? 1\n : (b.SortOrder ?? -1) > (a.SortOrder ?? -1)\n ? -1\n : 0\n );\n\n elements.forEach(ele => {\n const row = [\n '',\n ele.Name ?? '',\n options.IncludeComments ? ele.Comments ?? '' : '',\n ele.Unit?.value ?? '',\n options.IncludeAmounts\n ? ele.Amount?.toLocaleString(defaultLocaleString, {\n maximumFractionDigits: 2,\n }) ?? ''\n : '',\n options.IncludeElementSums && ele.SumTotal.value\n ? ele.SumTotal.value.toLocaleString(defaultLocaleString, {\n maximumFractionDigits: 2,\n })\n : '',\n ];\n\n offerData.push(['', '', '', '', '']);\n offerData.push(row);\n\n let filteredItems = ele.BuildingItems.filter(\n i => i.UnitPrice.value && i.UnitPrice.value > 0\n );\n\n filteredItems = filteredItems.sort((a, b) =>\n (a.BuildingElement?.SortOrder ?? -1) >\n (b.BuildingElement?.SortOrder ?? -1)\n ? 1\n : (b.BuildingElement?.SortOrder ?? -1) >\n (a.BuildingElement?.SortOrder ?? -1)\n ? -1\n : 0\n );\n\n if (options.IncludeBuildingItems) {\n filteredItems.forEach(item => {\n const row = [\n postnr++,\n `${item.Name ?? ''} ${\n item.PriceListItemName && options.ShowProductName\n ? `(${item.PriceListItemName})`\n : ''\n }`,\n options.IncludeComments ? item.Comments ?? '' : '',\n item.Unit ?? '',\n options.IncludeAmounts\n ? item.AmountCalculated.value?.toLocaleString(\n defaultLocaleString,\n {\n maximumFractionDigits: 2,\n }\n ) ?? ''\n : '',\n options.IncludeItemSums && item.SumTotalWithAdditions.value\n ? item.SumTotalWithAdditions.value.toLocaleString(\n defaultLocaleString,\n {\n maximumFractionDigits: 2,\n }\n )\n : '',\n ];\n\n offerData.push(row);\n });\n }\n });\n\n const MVA = 0.25;\n let sumExclMva = 0;\n let sumInclMva = 0;\n let MvaOnly = 0;\n\n elements.forEach(ele => {\n sumExclMva += ele.SumTotal.value ?? 0;\n });\n\n MvaOnly = sumExclMva * MVA;\n sumInclMva = sumExclMva + MvaOnly;\n\n const fillRow = ['', '', '', '', ''];\n const sumExclMvaRow = [\n '',\n '',\n '',\n '',\n `${translate('labels.sum-exclude-mva')}`,\n sumExclMva.toLocaleString(defaultLocaleString, {\n maximumFractionDigits: 2,\n }),\n ];\n const mvaRow = [\n '',\n '',\n '',\n '',\n `${translate('labels.sum-mva-only')}`,\n MvaOnly.toLocaleString(defaultLocaleString, {\n maximumFractionDigits: 2,\n }),\n ];\n const sumInclMvaRow = [\n '',\n '',\n '',\n '',\n `${translate('labels.sum-include-mva')}`,\n sumInclMva.toLocaleString(defaultLocaleString, {\n maximumFractionDigits: 2,\n }),\n ];\n\n offerData.push(fillRow);\n offerData.push(sumExclMvaRow);\n offerData.push(mvaRow);\n offerData.push(sumInclMvaRow);\n }\n\n const ws = XLSX.utils.aoa_to_sheet(offerData);\n wb.Sheets[sheetName] = ws;\n\n const wbout = XLSX.write(wb, { bookType: 'xlsx', type: 'binary' });\n\n downloadExcel(xlsxName, wbout);\n};\n\nexport const generateAttachmentPriceOfferReport = async (\n type: ReportType,\n options: ReportOptions\n) => {\n switch (options.FileType) {\n case ReportFileType.PDF:\n await generateAttachmentPriceOfferReportPDF(type, options);\n break;\n case ReportFileType.XLSX:\n await generateAttachmentPriceOfferReportEXCEL(type, options);\n break;\n default:\n break;\n }\n};\n","import { createReportName, downloadExcel } from '@/helpers/reports';\nimport { defaultLocaleString, translate } from '@/localization';\nimport jsPDF from 'jspdf';\nimport autoTable from 'jspdf-autotable';\nimport { ReportOptions } from '@/models/report/interfaces';\nimport { createHeader, createHeaderXlsx } from '@/models/report/report-header';\nimport {\n createProjectInfo,\n createProjectInfoXlsx,\n} from '@/models/report/report-project-info';\nimport { useCalculation } from '@/modules/calculation';\nimport { ReportFileType, ReportType } from '@/models/report/enums';\nimport XLSX from 'xlsx';\nimport { numberToAbsStringOrEmpty } from '@/helpers/common';\nimport { DEFAULT_TEXT_XSMALL, LARGE_TEXT_XSMALL } from '@/constants/styles';\nimport { useReport } from '@/modules/report';\n\nexport const generateBuildingElementReportPDF = async (\n type: ReportType,\n options: ReportOptions\n) => {\n const { projectCalculation } = useCalculation();\n\n if (!projectCalculation.value) return;\n\n const doc = new jsPDF('p', 'mm', [210, 297]);\n\n const pdfName = createReportName(type, ReportFileType.PDF);\n\n await createHeader(doc, options);\n await createProjectInfo(doc, false, options, false);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const first = (doc as any).autoTable.previous;\n\n const head = [\n [\n translate('labels.zip'),\n translate('labels.production-line'),\n translate('labels.description'),\n translate('labels.unit'),\n translate('labels.amount'),\n translate('labels.unit-price'),\n translate('labels.sum'),\n ],\n ];\n const bEdata: (string | number)[][] = [];\n const buildingElementBreakPoints: Array = [];\n\n const elements = projectCalculation.value.BuildingElements;\n let postnr = 1;\n\n if (!elements) return;\n\n elements.forEach(ele => {\n buildingElementBreakPoints.push(bEdata.length);\n const row = [\n !options.IncludeBuildingItems ? postnr++ : '',\n ele.ProductionLine ?? '',\n ele.Name ?? '',\n ele.Unit?.value ?? '',\n numberToAbsStringOrEmpty(ele.Amount, 2),\n numberToAbsStringOrEmpty(ele.UnitPrice?.value, 2),\n numberToAbsStringOrEmpty(ele.SumTotal.value, 2),\n ];\n bEdata.push(row);\n\n if (options.IncludeBuildingItems) {\n ele.BuildingItems.forEach(item => {\n const row = [\n postnr++,\n '',\n item.Name ?? '',\n item.Unit ?? '',\n numberToAbsStringOrEmpty(item.AmountCalculated.value, 2),\n numberToAbsStringOrEmpty(item.UnitPriceWithAdditions?.value, 2),\n numberToAbsStringOrEmpty(item.SumTotalWithAdditions.value, 2),\n ];\n bEdata.push(row);\n });\n }\n });\n\n const MVA = 0.25;\n let sumExclMva = 0;\n let sumInclMva = 0;\n let MvaOnly = 0;\n\n elements.forEach(ele => {\n sumExclMva += ele.SumTotal.value ?? 0;\n });\n\n MvaOnly = sumExclMva * MVA;\n sumInclMva = sumExclMva + MvaOnly;\n\n const sumExclMvaRow = [\n '',\n '',\n '',\n '',\n '',\n `${translate('labels.sum-exclude-mva')}`,\n numberToAbsStringOrEmpty(sumExclMva, 2),\n ];\n const mvaRow = [\n '',\n '',\n '',\n '',\n '',\n `${translate('labels.sum-mva-only')}`,\n numberToAbsStringOrEmpty(MvaOnly, 2),\n ];\n const sumInclMvaRow = [\n '',\n '',\n '',\n '',\n '',\n `${translate('labels.sum-include-mva')}`,\n numberToAbsStringOrEmpty(sumInclMva, 2),\n ];\n\n bEdata.push(sumExclMvaRow);\n bEdata.push(mvaRow);\n bEdata.push(sumInclMvaRow);\n\n const reportName = options.IncludeBuildingItems\n ? `${translate('reports.building-elements-include-bi-report')}`\n : `${translate('reports.building-elements-report')}`;\n\n doc.text(reportName, 14, first.finalY + 9);\n\n autoTable(doc, {\n startY: first.finalY + 14,\n head: head,\n body: bEdata,\n showHead: 'firstPage',\n headStyles: { fillColor: '#263238' },\n styles: {\n fontSize:\n options.FontSize === 'default'\n ? DEFAULT_TEXT_XSMALL\n : LARGE_TEXT_XSMALL,\n },\n didParseCell(data) {\n if (\n buildingElementBreakPoints.includes(data.row.index) &&\n data.section === 'body' &&\n options.IncludeBuildingItems\n ) {\n data.cell.styles.fontStyle = 'bold';\n data.cell.styles.fillColor = '#d6d8da';\n } else if (\n (data.section === 'body' && data.row.index === bEdata.length - 1) ||\n data.row.index === bEdata.length - 2 ||\n data.row.index === bEdata.length - 3\n ) {\n data.row.cells[0].styles.fillColor = 'white';\n data.row.cells[1].styles.fillColor = 'white';\n data.row.cells[2].styles.fillColor = 'white';\n data.row.cells[3].styles.fillColor = 'white';\n data.row.cells[4].styles.fillColor = 'white';\n\n data.row.cells[5].styles.fontStyle = 'bold';\n data.row.cells[5].styles.cellPadding = 0.7;\n data.row.cells[5].styles.fillColor = '#f7f7f7';\n\n data.row.cells[6].styles.fontStyle = 'bold';\n data.row.cells[6].styles.cellPadding = 0.7;\n data.row.cells[6].styles.fillColor = '#f7f7f7';\n } else if (data.section === 'body' && options.IncludeBuildingItems) {\n data.cell.styles.fillColor = 'white';\n }\n },\n columnStyles: {\n 0: {\n valign: 'middle',\n },\n 1: {\n valign: 'middle',\n },\n 2: {\n valign: 'middle',\n },\n 3: {\n valign: 'middle',\n },\n 4: {\n valign: 'middle',\n },\n 5: {\n valign: 'middle',\n halign: 'right',\n cellWidth: 20,\n },\n 6: {\n valign: 'middle',\n halign: 'right',\n cellWidth: 20,\n },\n },\n });\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const pages = (doc.internal as any).getNumberOfPages();\n const pageWidth = doc.internal.pageSize.width; //Optional\n const pageHeight = doc.internal.pageSize.height; //Optional\n doc.setFontSize(10); //Optional\n\n for (let j = 1; j < pages + 1; j++) {\n const horizontalPos = pageWidth / 2;\n const verticalPos = pageHeight - 10;\n doc.setPage(j);\n doc.text(\n `${j} ${translate('common.by')} ${pages}`,\n horizontalPos,\n verticalPos,\n {\n align: 'center',\n }\n );\n\n const currentDate = new Date();\n const createdAt = `${currentDate.toLocaleString(defaultLocaleString)}`;\n\n doc.text(createdAt, 10, verticalPos, {\n align: 'left',\n });\n }\n\n await doc.save(pdfName);\n};\n\nexport const generateBuildingElementReportEXCEL = async (\n type: ReportType,\n options: ReportOptions\n) => {\n const { projectCalculation } = useCalculation();\n const { checkAndbuildSheetName } = useReport();\n\n if (!projectCalculation.value) return;\n\n const wb = XLSX.utils.book_new();\n\n const xlsxName = createReportName(type, ReportFileType.XLSX);\n\n const sheetName = checkAndbuildSheetName(\n projectCalculation.value.Name,\n wb.SheetNames\n );\n\n wb.Props = {\n Title: `${translate('reports.material-order-report')}`,\n CreatedDate: new Date(),\n };\n\n wb.SheetNames.push(sheetName);\n\n const data: (string | number)[][] = [];\n\n data.push([sheetName]);\n data.push(['']);\n\n await createHeaderXlsx(data);\n await createProjectInfoXlsx(data);\n\n data.push([\n `${translate('labels.zip')}`,\n `${translate('labels.production-line')}`,\n `${translate('labels.description')}`,\n `${translate('labels.unit')}`,\n `${translate('labels.amount')}`,\n `${translate('labels.unit-price')}`,\n `${translate('labels.sum')}`,\n ]);\n const elements = projectCalculation.value.BuildingElements;\n let postnr = 1;\n\n if (!elements) return;\n\n elements.forEach(ele => {\n const row = [\n '',\n ele.ProductionLine ?? '',\n ele.Name ?? '',\n ele.Unit?.value ?? '',\n numberToAbsStringOrEmpty(ele.Amount, 2),\n numberToAbsStringOrEmpty(ele.UnitPrice?.value, 2),\n numberToAbsStringOrEmpty(ele.SumTotal.value, 2),\n ];\n data.push(row);\n\n if (options.IncludeBuildingItems) {\n ele.BuildingItems.forEach(item => {\n const row = [\n postnr++,\n '',\n item.Name ?? '',\n item.Unit ?? '',\n numberToAbsStringOrEmpty(item.AmountCalculated.value, 2),\n numberToAbsStringOrEmpty(item.UnitPriceWithAdditions?.value, 2),\n numberToAbsStringOrEmpty(item.SumTotalWithAdditions.value, 2),\n ];\n data.push(row);\n });\n }\n });\n\n const MVA = 0.25;\n let sumExclMva = 0;\n let sumInclMva = 0;\n let MvaOnly = 0;\n\n elements.forEach(ele => {\n sumExclMva += ele.SumTotal.value ?? 0;\n });\n\n MvaOnly = sumExclMva * MVA;\n sumInclMva = sumExclMva + MvaOnly;\n\n const fillRow = ['', '', '', '', ''];\n const sumExclMvaRow = [\n '',\n '',\n '',\n '',\n '',\n `${translate('labels.sum-exclude-mva')}`,\n numberToAbsStringOrEmpty(sumExclMva, 2),\n ];\n const mvaRow = [\n '',\n '',\n '',\n '',\n '',\n `${translate('labels.sum-mva-only')}`,\n numberToAbsStringOrEmpty(MvaOnly, 2),\n ];\n const sumInclMvaRow = [\n '',\n '',\n '',\n '',\n '',\n `${translate('labels.sum-include-mva')}`,\n numberToAbsStringOrEmpty(sumInclMva, 2),\n ];\n\n data.push(fillRow);\n data.push(sumExclMvaRow);\n data.push(mvaRow);\n data.push(sumInclMvaRow);\n\n const ws = XLSX.utils.aoa_to_sheet(data);\n wb.Sheets[sheetName] = ws;\n\n const wbout = XLSX.write(wb, { bookType: 'xlsx', type: 'binary' });\n\n downloadExcel(xlsxName, wbout);\n};\n\nexport const generateBuildingElementReport = async (\n type: ReportType,\n options: ReportOptions\n) => {\n switch (options.FileType) {\n case ReportFileType.PDF:\n await generateBuildingElementReportPDF(type, options);\n break;\n case ReportFileType.XLSX:\n await generateBuildingElementReportEXCEL(type, options);\n break;\n default:\n break;\n }\n};\n","import { createReportName, downloadExcel } from '@/helpers/reports';\nimport { defaultLocaleString, translate } from '@/localization';\nimport jsPDF from 'jspdf';\nimport autoTable from 'jspdf-autotable';\nimport { ReportOptions } from '@/models/report/interfaces';\nimport { createHeader, createHeaderXlsx } from '@/models/report/report-header';\nimport {\n createProjectInfo,\n createProjectInfoXlsx,\n} from '@/models/report/report-project-info';\nimport { useCalculation } from '@/modules/calculation';\nimport { ReportFileType, ReportType } from '@/models/report/enums';\nimport XLSX from 'xlsx';\nimport { numberToAbsStringOrEmpty } from '@/helpers/common';\nimport {\n DEFAULT_TEXT_MEDIUM,\n DEFAULT_TEXT_MINI,\n LARGE_TEXT_MEDIUM,\n LARGE_TEXT_MINI,\n} from '@/constants/styles';\nimport { useReport } from '@/modules/report';\n\nexport const generateMainSumsReportPDF = async (\n type: ReportType,\n options: ReportOptions\n) => {\n const { projectCalculation } = useCalculation();\n\n if (!projectCalculation.value) return;\n\n const doc = new jsPDF('p', 'mm', [210, 297]);\n\n const pdfName = createReportName(type, ReportFileType.PDF);\n\n await createHeader(doc, options);\n await createProjectInfo(doc, false, options, false);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const first = (doc as any).autoTable.previous;\n\n const head = [\n [\n translate('labels.description'),\n translate('labels.amount'),\n translate('labels.unit'),\n translate('labels.time-per-unit'),\n translate('labels.hours'),\n translate('labels.sum-selfcost-salary-and-expenses'),\n translate('labels.sum-selfcost-mat-and-sub'),\n translate('labels.factor4'),\n translate('labels.selfcost'),\n translate('labels.profit'),\n translate('labels.total'),\n ],\n ];\n const bEdata: (string | number)[][] = [];\n const buildingElementBreakPoints: Array = [];\n\n const elements = projectCalculation.value.BuildingElements;\n\n if (!elements) return;\n\n elements.forEach(ele => {\n buildingElementBreakPoints.push(bEdata.length);\n const row = [\n ele.Name ?? '',\n numberToAbsStringOrEmpty(ele.Amount, 2),\n ele.Unit?.value ?? '',\n numberToAbsStringOrEmpty(ele.TimePrUnit.value, 2),\n numberToAbsStringOrEmpty(ele.SumTime.value, 2),\n numberToAbsStringOrEmpty(ele.SumSalaryAndSocialCost.value, 2),\n numberToAbsStringOrEmpty(ele.SumSelfCostMaterialsSubContractors.value, 2),\n numberToAbsStringOrEmpty(ele.Factor4.value, 2),\n numberToAbsStringOrEmpty(ele.SumSelfCost.value, 2),\n numberToAbsStringOrEmpty(ele.SumProfit.value, 2),\n numberToAbsStringOrEmpty(ele.SumTotal.value, 2),\n ];\n bEdata.push(row);\n\n if (options.IncludeBuildingItems) {\n ele.BuildingItems.forEach(item => {\n const row = [\n item.Name ?? '',\n numberToAbsStringOrEmpty(item.Amount, 2),\n item.Unit ?? '',\n numberToAbsStringOrEmpty(item.TimePrUnit.value, 2),\n numberToAbsStringOrEmpty(item.SumTime.value, 2),\n numberToAbsStringOrEmpty(item.SumSalaryAndSocialCost.value, 2),\n numberToAbsStringOrEmpty(\n item.SumSelfCostMaterialsSubContractors.value,\n 2\n ),\n numberToAbsStringOrEmpty(item.Factor4.value, 2),\n numberToAbsStringOrEmpty(item.SumSelfCost.value, 2),\n numberToAbsStringOrEmpty(item.SumProfit.value, 2),\n numberToAbsStringOrEmpty(item.SumTotalWithAdditions.value, 2),\n ];\n bEdata.push(row);\n });\n }\n });\n\n const lastRow = [\n '',\n '',\n '',\n '',\n numberToAbsStringOrEmpty(\n elements.reduce((prev, cur) => {\n return prev + (cur.SumTime.value ?? 0);\n }, 0),\n 2\n ),\n numberToAbsStringOrEmpty(\n elements.reduce((prev, cur) => {\n return prev + (cur.SumSalaryAndSocialCost.value ?? 0);\n }, 0),\n 2\n ),\n numberToAbsStringOrEmpty(\n elements.reduce((prev, cur) => {\n return prev + (cur.SumSelfCostMaterialsSubContractors.value ?? 0);\n }, 0),\n 2\n ),\n numberToAbsStringOrEmpty(\n elements.reduce((prev, cur) => {\n return prev + (cur.Factor4.value ?? 0);\n }, 0),\n 2\n ),\n numberToAbsStringOrEmpty(\n elements.reduce((prev, cur) => {\n return prev + (cur.SumSelfCost.value ?? 0);\n }, 0),\n 2\n ),\n numberToAbsStringOrEmpty(\n elements.reduce((prev, cur) => {\n return prev + (cur.SumProfit.value ?? 0);\n }, 0),\n 2\n ),\n numberToAbsStringOrEmpty(\n elements.reduce((prev, cur) => {\n return prev + (cur.SumTotal.value ?? 0);\n }, 0),\n 2\n ),\n ];\n\n bEdata.push(lastRow);\n\n const reportName = `${translate('reports.main-sums-report')}`;\n\n doc.text(reportName, 14, first.finalY + 9);\n\n autoTable(doc, {\n startY: first.finalY + 14,\n head: head,\n body: bEdata,\n showHead: 'firstPage',\n headStyles: {\n fillColor: '#263238',\n fontSize:\n options.FontSize === 'default' ? DEFAULT_TEXT_MINI : LARGE_TEXT_MINI,\n valign: 'middle',\n overflow: 'linebreak',\n },\n styles: {\n fontSize:\n options.FontSize === 'default' ? DEFAULT_TEXT_MINI : LARGE_TEXT_MINI,\n },\n didParseCell(data) {\n if (\n buildingElementBreakPoints.includes(data.row.index) &&\n data.section === 'body' &&\n options.IncludeBuildingItems\n ) {\n data.cell.styles.fontStyle = 'bold';\n data.cell.styles.fillColor = '#d6d8da';\n } else if (\n data.section === 'body' &&\n data.row.index === bEdata.length - 1\n ) {\n data.cell.styles.fillColor = 'white';\n data.cell.styles.fontStyle = 'bold';\n } else if (data.section === 'body' && options.IncludeBuildingItems) {\n data.cell.styles.fillColor = 'white';\n }\n },\n columnStyles: {\n 0: {\n valign: 'middle',\n cellWidth: 30,\n },\n 1: {\n valign: 'middle',\n },\n 2: {\n valign: 'middle',\n },\n 3: {\n valign: 'middle',\n halign: 'right',\n },\n 4: {\n valign: 'middle',\n halign: 'right',\n },\n 5: {\n valign: 'middle',\n halign: 'right',\n cellWidth: 15,\n },\n 6: {\n valign: 'middle',\n halign: 'right',\n cellWidth: 15,\n },\n 7: {\n valign: 'middle',\n halign: 'right',\n cellWidth: 15,\n },\n 8: {\n valign: 'middle',\n halign: 'right',\n },\n 9: {\n valign: 'middle',\n halign: 'right',\n },\n 10: {\n valign: 'middle',\n halign: 'right',\n },\n },\n });\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const pages = (doc.internal as any).getNumberOfPages();\n const pageWidth = doc.internal.pageSize.width; //Optional\n const pageHeight = doc.internal.pageSize.height; //Optional\n doc.setFontSize(\n options.FontSize === 'default' ? DEFAULT_TEXT_MEDIUM : LARGE_TEXT_MEDIUM\n ); //Optional\n\n for (let j = 1; j < pages + 1; j++) {\n const horizontalPos = pageWidth / 2;\n const verticalPos = pageHeight - 10;\n doc.setPage(j);\n doc.text(\n `${j} ${translate('common.by')} ${pages}`,\n horizontalPos,\n verticalPos,\n {\n align: 'center',\n }\n );\n\n const currentDate = new Date();\n const createdAt = `${currentDate.toLocaleString(defaultLocaleString)}`;\n\n doc.text(createdAt, 10, verticalPos, {\n align: 'left',\n });\n }\n\n await doc.save(pdfName);\n};\n\nexport const generateMainSumsReportEXCEL = async (\n type: ReportType,\n options: ReportOptions\n) => {\n const { projectCalculation } = useCalculation();\n const { checkAndbuildSheetName } = useReport();\n\n if (!projectCalculation.value) return;\n\n const wb = XLSX.utils.book_new();\n\n const xlsxName = createReportName(type, ReportFileType.XLSX);\n\n const sheetName = checkAndbuildSheetName(\n projectCalculation.value.Name,\n wb.SheetNames\n );\n\n wb.Props = {\n Title: `${translate('reports.material-order-report')}`,\n CreatedDate: new Date(),\n };\n\n wb.SheetNames.push(sheetName);\n\n const bEdata: (string | number)[][] = [];\n\n bEdata.push([sheetName]);\n bEdata.push(['']);\n\n await createHeaderXlsx(bEdata);\n await createProjectInfoXlsx(bEdata);\n\n const elements = projectCalculation.value.BuildingElements;\n\n bEdata.push([\n `${translate('labels.description')}`,\n `${translate('labels.amount')}`,\n `${translate('labels.unit')}`,\n `${translate('labels.time-per-unit')}`,\n `${translate('labels.hours')}`,\n `${translate('labels.sum-selfcost-salary-and-expenses')}`,\n `${translate('labels.sum-selfcost-mat-and-sub')}`,\n `${translate('labels.factor4')}`,\n `${translate('labels.selfcost')}`,\n `${translate('labels.profit')}`,\n `${translate('labels.total')}`,\n ]);\n\n if (!elements) return;\n\n elements.forEach(ele => {\n const row = [\n ele.Name ?? '',\n numberToAbsStringOrEmpty(ele.Amount, 2),\n ele.Unit?.value ?? '',\n numberToAbsStringOrEmpty(ele.TimePrUnit.value, 2),\n numberToAbsStringOrEmpty(ele.SumTime.value, 2),\n numberToAbsStringOrEmpty(ele.SumSelfCostSalaryAndExpenses.value, 2),\n numberToAbsStringOrEmpty(ele.SumSelfCostMaterialsSubContractors.value, 2),\n numberToAbsStringOrEmpty(ele.Factor4.value, 2),\n numberToAbsStringOrEmpty(ele.SumSelfCost.value, 2),\n numberToAbsStringOrEmpty(ele.SumProfit.value, 2),\n numberToAbsStringOrEmpty(ele.SumTotal.value, 2),\n ];\n bEdata.push(row);\n\n if (options.IncludeBuildingItems) {\n ele.BuildingItems.forEach(item => {\n const row = [\n item.Name ?? '',\n numberToAbsStringOrEmpty(item.Amount, 2),\n item.Unit ?? '',\n numberToAbsStringOrEmpty(item.TimePrUnit.value, 2),\n numberToAbsStringOrEmpty(item.SumTime.value, 2),\n numberToAbsStringOrEmpty(item.SumSelfCostSalaryAndExpenses.value, 2),\n numberToAbsStringOrEmpty(\n item.SumSelfCostMaterialsSubContractors.value,\n 2\n ),\n numberToAbsStringOrEmpty(item.Factor4.value, 2),\n numberToAbsStringOrEmpty(item.SumSelfCost.value, 2),\n numberToAbsStringOrEmpty(item.SumProfit.value, 2),\n numberToAbsStringOrEmpty(item.SumTotalWithAdditions.value, 2),\n ];\n bEdata.push(row);\n });\n }\n });\n\n const lastRow = [\n '',\n '',\n '',\n '',\n numberToAbsStringOrEmpty(\n elements.reduce((prev, cur) => {\n return prev + (cur.SumTime.value ?? 0);\n }, 0),\n 2\n ),\n numberToAbsStringOrEmpty(\n elements.reduce((prev, cur) => {\n return prev + (cur.SumSelfCostSalaryAndExpenses.value ?? 0);\n }, 0),\n 2\n ),\n numberToAbsStringOrEmpty(\n elements.reduce((prev, cur) => {\n return prev + (cur.SumSelfCostMaterialsSubContractors.value ?? 0);\n }, 0),\n 2\n ),\n numberToAbsStringOrEmpty(\n elements.reduce((prev, cur) => {\n return prev + (cur.Factor4.value ?? 0);\n }, 0),\n 2\n ),\n numberToAbsStringOrEmpty(\n elements.reduce((prev, cur) => {\n return prev + (cur.SumSelfCost.value ?? 0);\n }, 0),\n 2\n ),\n numberToAbsStringOrEmpty(\n elements.reduce((prev, cur) => {\n return prev + (cur.SumProfit.value ?? 0);\n }, 0),\n 2\n ),\n numberToAbsStringOrEmpty(\n elements.reduce((prev, cur) => {\n return prev + (cur.SumTotal.value ?? 0);\n }, 0),\n 2\n ),\n ];\n\n bEdata.push(lastRow);\n\n const ws = XLSX.utils.aoa_to_sheet(bEdata);\n wb.Sheets[sheetName] = ws;\n\n const wbout = XLSX.write(wb, { bookType: 'xlsx', type: 'binary' });\n\n downloadExcel(xlsxName, wbout);\n};\n\nexport const generateMainSumsReport = async (\n type: ReportType,\n options: ReportOptions\n) => {\n switch (options.FileType) {\n case ReportFileType.PDF:\n await generateMainSumsReportPDF(type, options);\n break;\n case ReportFileType.XLSX:\n await generateMainSumsReportEXCEL(type, options);\n break;\n default:\n break;\n }\n};\n","import {\n createReportName,\n downloadExcel,\n getPriceRequestMaterials,\n} from '@/helpers/reports';\nimport { defaultLocaleString, translate } from '@/localization';\nimport jsPDF from 'jspdf';\nimport autoTable from 'jspdf-autotable';\nimport { createHeader, createHeaderXlsx } from '@/models/report/report-header';\nimport {\n createProjectInfo,\n createProjectInfoXlsx,\n} from '@/models/report/report-project-info';\nimport { ReportFileType, ReportType } from './enums';\nimport { ReportOptions } from '@/models/report/interfaces';\nimport { useCalculation } from '@/modules/calculation';\nimport XLSX from 'xlsx';\nimport { numberToAbsStringOrEmpty } from '@/helpers/common';\nimport {\n DEFAULT_TEXT_MEDIUM,\n DEFAULT_TEXT_XSMALL,\n LARGE_TEXT_MEDIUM,\n LARGE_TEXT_XSMALL,\n} from '@/constants/styles';\nimport { useReport } from '@/modules/report';\n\nconst generatePriceRequestReportPDF = async (\n type: ReportType,\n options: ReportOptions\n) => {\n const { projectCalculation } = useCalculation();\n console.log(options);\n\n if (!projectCalculation.value) return;\n\n const doc = new jsPDF('p', 'mm', [210, 297]);\n\n const pdfName = createReportName(type, ReportFileType.PDF);\n\n await createHeader(doc, options);\n await createProjectInfo(doc, false, options, false);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const first = (doc as any).autoTable.previous;\n\n const head = [\n [\n translate('labels.zip'),\n translate('labels.delivery-order'),\n translate('labels.production-line'),\n translate('labels.nobb-number'),\n translate('labels.description'),\n translate('labels.precut'),\n translate('labels.unit'),\n translate('labels.quantity'),\n translate('labels.length'),\n translate('labels.amount'),\n translate('labels.comments'),\n translate('labels.unit-price'),\n translate('labels.sum'),\n ],\n ];\n const prData: (string | number)[][] = [];\n\n let postnr = 1;\n let matItems = getPriceRequestMaterials(projectCalculation.value, false);\n\n const matItemsWithoutDeliveryOrder = matItems.filter(\n mi => mi.DeliveryOrder === null\n );\n matItems = matItems.filter(\n mi =>\n mi.DeliveryOrder !== null &&\n options.DeliveryOrders.includes(mi.DeliveryOrder)\n );\n\n if (options.IncludeWithoutDeliveryOrder) {\n matItems = matItems.concat(matItemsWithoutDeliveryOrder);\n }\n\n matItems = matItems.sort((a, b) =>\n (a.NOBBNumber ?? -1) > (b.NOBBNumber ?? -1)\n ? 1\n : (b.NOBBNumber ?? -1) > (a.NOBBNumber ?? -1)\n ? -1\n : 0\n );\n\n matItems = matItems.sort((a, b) =>\n (a.DeliveryOrder ?? -1) > (b.DeliveryOrder ?? -1)\n ? 1\n : (b.DeliveryOrder ?? -1) > (a.DeliveryOrder ?? -1)\n ? -1\n : 0\n );\n\n matItems.forEach(item => {\n const row = [\n postnr++,\n item.DeliveryOrder ?? '',\n '',\n item.NOBBNumber ?? '',\n item.ItemName ?? '',\n item.Precut ? (item.PrecutText != null ? item.PrecutText : '') : '',\n item.Unit ?? '',\n item.TotalAmount != null && item.TotalAmount > 0 ? item.TotalAmount : '',\n item.AmountPrUnit != null && item.AmountPrUnit > 0\n ? `${item.AmountPrUnit} ${item.PrecutUnit}`\n : '',\n numberToAbsStringOrEmpty(item.AmountOfMaterials, 2),\n item.Comments ?? '',\n '',\n '',\n ];\n\n prData.push(row);\n });\n\n const reportName = `${translate('reports.price-request-report')}`;\n\n doc.text(reportName, 14, first.finalY + 9);\n\n const sumExclMvaRow = [\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n `${translate('labels.sum-exclude-mva')}`,\n '',\n ];\n const mvaRow = [\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n `${translate('labels.sum-mva-only')}`,\n '',\n ];\n const sumInclMvaRow = [\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n `${translate('labels.sum-include-mva')}`,\n '',\n ];\n\n prData.push(sumExclMvaRow);\n prData.push(mvaRow);\n prData.push(sumInclMvaRow);\n\n autoTable(doc, {\n startY: first.finalY + 14,\n head: head,\n body: prData,\n headStyles: { fillColor: '#58a333' },\n styles: {\n fontSize:\n options.FontSize === 'default'\n ? DEFAULT_TEXT_XSMALL\n : LARGE_TEXT_XSMALL,\n },\n didParseCell(data) {\n if (\n (data.section === 'body' && data.row.index === prData.length - 1) ||\n data.row.index === prData.length - 2 ||\n data.row.index === prData.length - 3\n ) {\n data.cell.styles.fillColor = 'white';\n data.cell.styles.fontStyle = 'bold';\n data.cell.styles.cellPadding = 0.7;\n }\n },\n showHead: 'firstPage',\n columnStyles: {\n 0: {\n valign: 'middle',\n },\n 1: {\n valign: 'middle',\n },\n 2: {\n valign: 'middle',\n },\n 3: {\n valign: 'middle',\n },\n 4: {\n valign: 'middle',\n },\n 5: {\n valign: 'middle',\n textColor: '#b71c1c',\n },\n 6: {\n valign: 'middle',\n },\n 7: {\n valign: 'middle',\n },\n 8: {\n valign: 'middle',\n },\n 9: {\n valign: 'middle',\n },\n 10: {\n valign: 'middle',\n },\n 11: {\n valign: 'middle',\n cellWidth: 20,\n },\n 12: {\n valign: 'middle',\n cellWidth: 20,\n },\n },\n });\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const pages = (doc.internal as any).getNumberOfPages();\n const pageWidth = doc.internal.pageSize.width; //Optional\n const pageHeight = doc.internal.pageSize.height; //Optional\n doc.setFontSize(\n options.FontSize === 'default' ? DEFAULT_TEXT_MEDIUM : LARGE_TEXT_MEDIUM\n ); //Optional\n\n for (let j = 1; j < pages + 1; j++) {\n const horizontalPos = pageWidth / 2;\n const verticalPos = pageHeight - 10;\n doc.setPage(j);\n doc.text(\n `${j} ${translate('common.by')} ${pages}`,\n horizontalPos,\n verticalPos,\n {\n align: 'center',\n }\n );\n\n const currentDate = new Date();\n const createdAt = `${currentDate.toLocaleString(defaultLocaleString)}`;\n\n doc.text(createdAt, 10, verticalPos, {\n align: 'left',\n });\n }\n\n await doc.save(pdfName);\n};\n\nconst generatePriceRequestReportEXCEL = async (\n type: ReportType,\n options: ReportOptions\n) => {\n const { projectCalculation } = useCalculation();\n const { checkAndbuildSheetName } = useReport();\n console.log(options);\n\n if (!projectCalculation.value) return;\n\n const wb = XLSX.utils.book_new();\n\n const xlsxName = createReportName(type, ReportFileType.XLSX);\n\n const sheetName = checkAndbuildSheetName(\n projectCalculation.value.Name,\n wb.SheetNames\n );\n\n wb.Props = {\n Title: `${translate('reports.price-request-report')}`,\n CreatedDate: new Date(),\n };\n\n wb.SheetNames.push(sheetName);\n\n const data: (string | number)[][] = [];\n\n data.push([sheetName]);\n data.push(['']);\n\n await createHeaderXlsx(data);\n await createProjectInfoXlsx(data);\n\n data.push([\n `${translate('labels.zip')}`,\n `${translate('labels.delivery-order')}`,\n `${translate('labels.production-line')}`,\n `${translate('labels.nobb-number')}`,\n `${translate('labels.description')}`,\n `${translate('labels.precut')}`,\n `${translate('labels.unit')}`,\n `${translate('labels.quantity')}`,\n `${translate('labels.length')}`,\n `${translate('labels.amount')}`,\n `${translate('labels.comments')}`,\n `${translate('labels.unit-price')}`,\n `${translate('labels.sum')}`,\n ]);\n\n let postnr = 1;\n\n let matItems = getPriceRequestMaterials(projectCalculation.value, false);\n\n const matItemsWithoutDeliveryOrder = matItems.filter(\n mi => mi.DeliveryOrder === null\n );\n matItems = matItems.filter(\n mi =>\n mi.DeliveryOrder !== null &&\n options.DeliveryOrders.includes(mi.DeliveryOrder)\n );\n\n if (options.IncludeWithoutDeliveryOrder) {\n matItems = matItems.concat(matItemsWithoutDeliveryOrder);\n }\n\n matItems = matItems.sort((a, b) =>\n (a.NOBBNumber ?? -1) > (b.NOBBNumber ?? -1)\n ? 1\n : (b.NOBBNumber ?? -1) > (a.NOBBNumber ?? -1)\n ? -1\n : 0\n );\n\n matItems = matItems.sort((a, b) =>\n (a.DeliveryOrder ?? -1) > (b.DeliveryOrder ?? -1)\n ? 1\n : (b.DeliveryOrder ?? -1) > (a.DeliveryOrder ?? -1)\n ? -1\n : 0\n );\n\n matItems.forEach(item => {\n const row = [\n postnr++,\n item.DeliveryOrder ?? '',\n '',\n item.NOBBNumber ?? '',\n item.ItemName ?? '',\n item.Precut ? (item.PrecutText != null ? item.PrecutText : '') : '',\n item.Unit ?? '',\n item.TotalAmount != null && item.TotalAmount > 0 ? item.TotalAmount : '',\n item.AmountPrUnit != null && item.AmountPrUnit > 0\n ? `${item.AmountPrUnit} ${item.PrecutUnit}`\n : '',\n numberToAbsStringOrEmpty(item.AmountOfMaterials, 2),\n item.Comments ?? '',\n '',\n '',\n ];\n\n data.push(row);\n });\n\n const sumExclMvaRow = [\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n `${translate('labels.sum-exclude-mva')}`,\n '',\n ];\n const mvaRow = [\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n `${translate('labels.sum-mva-only')}`,\n '',\n ];\n const sumInclMvaRow = [\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n `${translate('labels.sum-include-mva')}`,\n '',\n ];\n\n data.push(sumExclMvaRow);\n data.push(mvaRow);\n data.push(sumInclMvaRow);\n\n const ws = XLSX.utils.aoa_to_sheet(data);\n wb.Sheets[sheetName] = ws;\n\n const wbout = XLSX.write(wb, { bookType: 'xlsx', type: 'binary' });\n\n downloadExcel(xlsxName, wbout);\n};\n\nexport const generatePriceRequestReport = async (\n type: ReportType,\n options: ReportOptions\n) => {\n switch (options.FileType) {\n case ReportFileType.PDF:\n await generatePriceRequestReportPDF(type, options);\n break;\n case ReportFileType.XLSX:\n await generatePriceRequestReportEXCEL(type, options);\n break;\n default:\n break;\n }\n};\n","import { createReportName, downloadExcel } from '@/helpers/reports';\nimport { defaultLocaleString, translate } from '@/localization';\nimport jsPDF from 'jspdf';\nimport autoTable from 'jspdf-autotable';\nimport { ReportOptions } from '@/models/report/interfaces';\nimport { createHeader, createHeaderXlsx } from '@/models/report/report-header';\nimport {\n createProjectInfo,\n createProjectInfoXlsx,\n} from '@/models/report/report-project-info';\nimport { useCalculation } from '@/modules/calculation';\nimport { ReportFileType, ReportType } from '@/models/report/enums';\nimport XLSX from 'xlsx';\nimport { numberToAbsStringOrEmpty } from '@/helpers/common';\nimport {\n DEFAULT_TEXT_MEDIUM,\n DEFAULT_TEXT_MINI,\n LARGE_TEXT_MEDIUM,\n LARGE_TEXT_MINI,\n} from '@/constants/styles';\nimport { useReport } from '@/modules/report';\n\nexport const generateCalculationViewReportPDF = async (\n type: ReportType,\n options: ReportOptions\n) => {\n const { projectCalculation } = useCalculation();\n\n if (!projectCalculation.value) return;\n\n const doc = new jsPDF('p', 'mm', [210, 297]);\n\n const pdfName = createReportName(type, ReportFileType.PDF);\n\n await createHeader(doc, options);\n await createProjectInfo(doc, false, options, false);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const first = (doc as any).autoTable.previous;\n\n const head = [\n [\n translate('labels.zip'),\n translate('headers.deliveryorder'),\n translate('headers.name'),\n '',\n translate('headers.basetime'),\n translate('headers.sumtime'),\n translate('headers.unit'),\n translate('headers.amount'),\n translate('headers.amountadjustment'),\n translate('headers.amountprunit'),\n translate('headers.unitfororder'),\n translate('headers.price'),\n translate('headers.unitprice'),\n translate('headers.total'),\n ],\n ];\n const bEdata: (string | number)[][] = [];\n const buildingElementBreakPoints: Array = [];\n\n const elements = projectCalculation.value.BuildingElements;\n let postnr = 1;\n\n if (!elements) return;\n\n elements.forEach(ele => {\n buildingElementBreakPoints.push(bEdata.length);\n const row = [\n !options.IncludeBuildingItems ? postnr++ : '',\n '',\n ele.Name ?? '',\n '',\n '',\n numberToAbsStringOrEmpty(ele.SumTime.value, 1),\n ele.Unit?.value ?? '',\n numberToAbsStringOrEmpty(ele.Amount, 2),\n '',\n '',\n '',\n numberToAbsStringOrEmpty(ele.Price.value, 1),\n numberToAbsStringOrEmpty(ele.UnitPrice?.value, 1),\n numberToAbsStringOrEmpty(ele.SumTotal.value, 0),\n ];\n\n bEdata.push(row);\n\n if (options.IncludeBuildingItems) {\n ele.BuildingItems.forEach(item => {\n const row = [\n postnr++,\n item.DeliveryOrder ?? '',\n item.Name ?? '',\n item.PreCutText.value ?? '',\n item.BaseTime ?? '',\n numberToAbsStringOrEmpty(item.SumTime.value, 1),\n item.Unit ?? '',\n numberToAbsStringOrEmpty(item.AmountCalculated.value, 2),\n item.AmountAdjustment ?? '',\n item.AmountPrUnit ?? '',\n item.UnitForOrder ?? '',\n numberToAbsStringOrEmpty(item.Price, 1),\n numberToAbsStringOrEmpty(item.UnitPriceWithAdditions?.value, 1),\n numberToAbsStringOrEmpty(item.SumTotalWithAdditions.value, 0),\n ];\n bEdata.push(row);\n });\n }\n });\n\n const reportName = `${translate('reports.calculation-view-report')}`;\n\n doc.text(reportName, 14, first.finalY + 9);\n\n autoTable(doc, {\n startY: first.finalY + 14,\n head: head,\n body: bEdata,\n showHead: 'firstPage',\n headStyles: { fillColor: '#263238', valign: 'middle' },\n styles: {\n fontSize:\n options.FontSize === 'default' ? DEFAULT_TEXT_MINI : LARGE_TEXT_MINI,\n },\n didParseCell(data) {\n if (\n buildingElementBreakPoints.includes(data.row.index) &&\n data.section === 'body' &&\n options.IncludeBuildingItems\n ) {\n data.cell.styles.fontStyle = 'bold';\n data.cell.styles.fillColor = '#d6d8da';\n }\n },\n columnStyles: {\n 0: {\n valign: 'middle',\n },\n 1: {\n valign: 'middle',\n },\n 2: {\n valign: 'middle',\n },\n 3: {\n valign: 'middle',\n textColor: '#b71c1c',\n },\n 4: {\n valign: 'middle',\n },\n 5: {\n valign: 'middle',\n },\n 6: {\n valign: 'middle',\n },\n 7: {\n valign: 'middle',\n cellWidth:\n options.FontSize === 'default'\n ? DEFAULT_TEXT_MEDIUM\n : LARGE_TEXT_MEDIUM,\n },\n 8: {\n valign: 'middle',\n cellWidth:\n options.FontSize === 'default'\n ? DEFAULT_TEXT_MEDIUM\n : LARGE_TEXT_MEDIUM,\n },\n 9: {\n valign: 'middle',\n cellWidth:\n options.FontSize === 'default'\n ? DEFAULT_TEXT_MEDIUM\n : LARGE_TEXT_MEDIUM,\n },\n 10: {\n valign: 'middle',\n halign: 'right',\n cellWidth: 15,\n },\n 11: {\n valign: 'middle',\n halign: 'right',\n },\n 12: {\n valign: 'middle',\n halign: 'right',\n cellWidth:\n options.FontSize === 'default'\n ? DEFAULT_TEXT_MEDIUM\n : LARGE_TEXT_MEDIUM,\n },\n 13: {\n valign: 'middle',\n halign: 'right',\n cellWidth:\n options.FontSize === 'default'\n ? DEFAULT_TEXT_MEDIUM\n : LARGE_TEXT_MEDIUM,\n },\n },\n });\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const pages = (doc.internal as any).getNumberOfPages();\n const pageWidth = doc.internal.pageSize.width; //Optional\n const pageHeight = doc.internal.pageSize.height; //Optional\n doc.setFontSize(\n options.FontSize === 'default' ? DEFAULT_TEXT_MEDIUM : LARGE_TEXT_MEDIUM\n ); //Optional\n\n for (let j = 1; j < pages + 1; j++) {\n const horizontalPos = pageWidth / 2;\n const verticalPos = pageHeight - 10;\n doc.setPage(j);\n doc.text(\n `${j} ${translate('common.by')} ${pages}`,\n horizontalPos,\n verticalPos,\n {\n align: 'center',\n }\n );\n\n const currentDate = new Date();\n const createdAt = `${currentDate.toLocaleString(defaultLocaleString)}`;\n\n doc.text(createdAt, 10, verticalPos, {\n align: 'left',\n });\n }\n await doc.save(pdfName);\n};\n\nexport const generateCalculationViewReportEXCEL = async (\n type: ReportType,\n options: ReportOptions\n) => {\n const { projectCalculation } = useCalculation();\n const { checkAndbuildSheetName } = useReport();\n\n if (!projectCalculation.value) return;\n\n const wb = XLSX.utils.book_new();\n\n const xlsxName = createReportName(type, ReportFileType.XLSX);\n\n const sheetName = checkAndbuildSheetName(\n projectCalculation.value.Name,\n wb.SheetNames\n );\n\n wb.Props = {\n Title: `${translate('reports.calculation-view-report')}`,\n CreatedDate: new Date(),\n };\n\n wb.SheetNames.push(sheetName);\n\n const bEdata: (string | number)[][] = [];\n\n bEdata.push([sheetName]);\n bEdata.push(['']);\n\n await createHeaderXlsx(bEdata);\n await createProjectInfoXlsx(bEdata);\n\n bEdata.push([\n `${translate('labels.zip')}`,\n `${translate('headers.deliveryorder')}`,\n `${translate('headers.name')}`,\n '',\n `${translate('headers.basetime')}`,\n `${translate('headers.sumtime')}`,\n `${translate('headers.unit')}`,\n `${translate('headers.amount')}`,\n `${translate('headers.amountadjustment')}`,\n `${translate('headers.amountprunit')}`,\n `${translate('headers.unitfororder')}`,\n `${translate('headers.price')}`,\n `${translate('headers.unitprice')}`,\n `${translate('headers.total')}`,\n ]);\n\n const buildingElementBreakPoints: Array = [];\n\n const elements = projectCalculation.value.BuildingElements;\n let postnr = 1;\n\n if (!elements) return;\n\n elements.forEach(ele => {\n buildingElementBreakPoints.push(bEdata.length);\n const row = [\n !options.IncludeBuildingItems ? postnr++ : '',\n '',\n ele.Name ?? '',\n '',\n '',\n numberToAbsStringOrEmpty(ele.SumTime.value, 1),\n ele.Unit?.value ?? '',\n numberToAbsStringOrEmpty(ele.Amount, 2),\n '',\n '',\n '',\n numberToAbsStringOrEmpty(ele.Price.value, 1),\n numberToAbsStringOrEmpty(ele.UnitPrice?.value, 1),\n numberToAbsStringOrEmpty(ele.SumTotal.value, 0),\n ];\n\n bEdata.push(row);\n\n if (options.IncludeBuildingItems) {\n ele.BuildingItems.forEach(item => {\n const row = [\n postnr++,\n item.DeliveryOrder ?? '',\n item.Name ?? '',\n item.PreCutText.value ?? '',\n item.BaseTime ?? '',\n numberToAbsStringOrEmpty(item.SumTime.value, 1),\n item.Unit ?? '',\n numberToAbsStringOrEmpty(item.AmountCalculated.value, 2),\n item.AmountAdjustment ?? '',\n item.AmountPrUnit ?? '',\n item.UnitForOrder ?? '',\n numberToAbsStringOrEmpty(item.Price, 1),\n numberToAbsStringOrEmpty(item.UnitPriceWithAdditions?.value, 1),\n numberToAbsStringOrEmpty(item.SumTotalWithAdditions.value, 0),\n ];\n bEdata.push(row);\n });\n }\n });\n\n const ws = XLSX.utils.aoa_to_sheet(bEdata);\n wb.Sheets[sheetName] = ws;\n\n const wbout = XLSX.write(wb, { bookType: 'xlsx', type: 'binary' });\n\n downloadExcel(xlsxName, wbout);\n};\n\nexport const generateCalculationViewReport = async (\n type: ReportType,\n options: ReportOptions\n) => {\n switch (options.FileType) {\n case ReportFileType.PDF:\n await generateCalculationViewReportPDF(type, options);\n break;\n case ReportFileType.XLSX:\n await generateCalculationViewReportEXCEL(type, options);\n break;\n default:\n break;\n }\n};\n","import { createReportName, downloadExcel } from '@/helpers/reports';\nimport { defaultLocaleString, translate } from '@/localization';\nimport jsPDF from 'jspdf';\nimport autoTable from 'jspdf-autotable';\nimport { ReportOptions } from '@/models/report/interfaces';\nimport { createHeader, createHeaderXlsx } from '@/models/report/report-header';\nimport {\n createProjectInfo,\n createProjectInfoXlsx,\n} from '@/models/report/report-project-info';\nimport { useCalculation } from '@/modules/calculation';\nimport { ReportFileType, ReportType } from '@/models/report/enums';\nimport XLSX from 'xlsx';\nimport { numberToAbsStringOrEmpty } from '@/helpers/common';\nimport {\n DEFAULT_TEXT_MEDIUM,\n DEFAULT_TEXT_MINI,\n LARGE_TEXT_MEDIUM,\n LARGE_TEXT_MINI,\n} from '@/constants/styles';\nimport { useReport } from '@/modules/report';\n\nexport const generateDeliveryViewReportPDF = async (\n type: ReportType,\n options: ReportOptions\n) => {\n const { projectCalculation } = useCalculation();\n\n if (!projectCalculation.value) return;\n\n const doc = new jsPDF('p', 'mm', [210, 297]);\n\n const pdfName = createReportName(type, ReportFileType.PDF);\n\n await createHeader(doc, options);\n await createProjectInfo(doc, false, options, false);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const first = (doc as any).autoTable.previous;\n\n const head = [\n [\n `${translate('labels.zip')}`,\n `${translate('headers.deliveryorder')}`,\n `${translate('headers.milestone')}`,\n `${translate('headers.name')}`,\n '',\n `${translate('headers.nobbnumber')}`,\n `${translate('headers.pricelistname')}`,\n `${translate('headers.unitfororder')}`,\n `${translate('headers.amountofmaterials')}`,\n `${translate('headers.price')}`,\n `${translate('headers.sumtotal')}`,\n ],\n ];\n const bEdata: (string | number)[][] = [];\n const buildingElementBreakPoints: Array = [];\n\n const elements = projectCalculation.value.BuildingElements;\n let postnr = 1;\n\n if (!elements) return;\n\n elements.forEach(ele => {\n buildingElementBreakPoints.push(bEdata.length);\n const row = [\n !options.IncludeBuildingItems ? postnr++ : '',\n '',\n '',\n ele.Name ?? '',\n '',\n '',\n '',\n '',\n numberToAbsStringOrEmpty(ele.AmountOfMaterials.value, 1),\n numberToAbsStringOrEmpty(ele.Price.value, 1),\n numberToAbsStringOrEmpty(ele.SumTotal.value, 0),\n ];\n\n bEdata.push(row);\n\n if (options.IncludeBuildingItems) {\n ele.BuildingItems.forEach(item => {\n const row = [\n postnr++,\n item.DeliveryOrder ?? '',\n item.MileStone ?? '',\n item.Name ?? '',\n item.PreCutText.value ?? '',\n item.NOBBNumber ?? '',\n item.PriceListName ?? '',\n item.UnitForOrder ?? '',\n numberToAbsStringOrEmpty(item.AmountOfMaterials.value, 1),\n numberToAbsStringOrEmpty(item.Price, 1),\n numberToAbsStringOrEmpty(item.SumTotalWithAdditions.value, 0),\n ];\n bEdata.push(row);\n });\n }\n });\n\n const reportName = `${translate('reports.delivery-view-report')}`;\n\n doc.text(reportName, 14, first.finalY + 9);\n\n autoTable(doc, {\n startY: first.finalY + 14,\n head: head,\n body: bEdata,\n showHead: 'firstPage',\n headStyles: { fillColor: '#263238', valign: 'middle' },\n styles: {\n fontSize:\n options.FontSize === 'default' ? DEFAULT_TEXT_MINI : LARGE_TEXT_MINI,\n },\n didParseCell(data) {\n if (\n buildingElementBreakPoints.includes(data.row.index) &&\n data.section === 'body' &&\n options.IncludeBuildingItems\n ) {\n data.cell.styles.fontStyle = 'bold';\n data.cell.styles.fillColor = '#d6d8da';\n }\n },\n columnStyles: {\n 0: {\n valign: 'middle',\n },\n 1: {\n valign: 'middle',\n },\n 2: {\n valign: 'middle',\n },\n 3: {\n valign: 'middle',\n },\n 4: {\n valign: 'middle',\n textColor: '#b71c1c',\n },\n 5: {\n valign: 'middle',\n },\n 6: {\n valign: 'middle',\n },\n 7: {\n valign: 'middle',\n cellWidth:\n options.FontSize === 'default'\n ? DEFAULT_TEXT_MEDIUM\n : LARGE_TEXT_MEDIUM,\n },\n 8: {\n valign: 'middle',\n cellWidth:\n options.FontSize === 'default'\n ? DEFAULT_TEXT_MEDIUM\n : LARGE_TEXT_MEDIUM,\n },\n 9: {\n valign: 'middle',\n halign: 'right',\n cellWidth: 15,\n },\n 10: {\n valign: 'middle',\n halign: 'right',\n cellWidth: 15,\n },\n },\n });\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const pages = (doc.internal as any).getNumberOfPages();\n const pageWidth = doc.internal.pageSize.width; //Optional\n const pageHeight = doc.internal.pageSize.height; //Optional\n doc.setFontSize(\n options.FontSize === 'default' ? DEFAULT_TEXT_MEDIUM : LARGE_TEXT_MEDIUM\n ); //Optional\n\n for (let j = 1; j < pages + 1; j++) {\n const horizontalPos = pageWidth / 2;\n const verticalPos = pageHeight - 10;\n doc.setPage(j);\n doc.text(\n `${j} ${translate('common.by')} ${pages}`,\n horizontalPos,\n verticalPos,\n {\n align: 'center',\n }\n );\n\n const currentDate = new Date();\n const createdAt = `${currentDate.toLocaleString(defaultLocaleString)}`;\n\n doc.text(createdAt, 10, verticalPos, {\n align: 'left',\n });\n }\n\n await doc.save(pdfName);\n};\n\nexport const generateDeliveryViewReportEXCEL = async (\n type: ReportType,\n options: ReportOptions\n) => {\n const { projectCalculation } = useCalculation();\n const { checkAndbuildSheetName } = useReport();\n\n if (!projectCalculation.value) return;\n\n const wb = XLSX.utils.book_new();\n\n const xlsxName = createReportName(type, ReportFileType.XLSX);\n\n const sheetName = checkAndbuildSheetName(\n projectCalculation.value.Name,\n wb.SheetNames\n );\n\n wb.Props = {\n Title: `${translate('reports.delivery-view-report')}`,\n CreatedDate: new Date(),\n };\n\n wb.SheetNames.push(sheetName);\n\n const bEdata: (string | number)[][] = [];\n\n bEdata.push([sheetName]);\n bEdata.push(['']);\n\n await createHeaderXlsx(bEdata);\n await createProjectInfoXlsx(bEdata);\n\n bEdata.push([\n `${translate('labels.zip')}`,\n `${translate('headers.deliveryorder')}`,\n `${translate('headers.milestone')}`,\n `${translate('headers.name')}`,\n `${translate('headers.precut')}`,\n `${translate('headers.nobbnumber')}`,\n `${translate('headers.pricelistname')}`,\n `${translate('headers.unitfororder')}`,\n `${translate('headers.amountofmaterials')}`,\n `${translate('headers.price')}`,\n `${translate('headers.sumtotal')}`,\n ]);\n\n const buildingElementBreakPoints: Array = [];\n\n const elements = projectCalculation.value.BuildingElements;\n let postnr = 1;\n\n if (!elements) return;\n\n elements.forEach(ele => {\n buildingElementBreakPoints.push(bEdata.length);\n const row = [\n !options.IncludeBuildingItems ? postnr++ : '',\n '',\n '',\n '',\n ele.Name ?? '',\n '',\n '',\n '',\n '',\n numberToAbsStringOrEmpty(ele.AmountOfMaterials.value, 1),\n numberToAbsStringOrEmpty(ele.Price.value, 1),\n numberToAbsStringOrEmpty(ele.SumTotal.value, 0),\n ];\n\n bEdata.push(row);\n\n if (options.IncludeBuildingItems) {\n ele.BuildingItems.forEach(item => {\n const row = [\n postnr++,\n item.DeliveryOrder ?? '',\n item.MileStone ?? '',\n item.Name ?? '',\n item.PreCutText.value ?? '',\n item.NOBBNumber ?? '',\n item.PriceListName ?? '',\n item.UnitForOrder ?? '',\n numberToAbsStringOrEmpty(item.AmountOfMaterials.value, 1),\n numberToAbsStringOrEmpty(item.Price, 1),\n numberToAbsStringOrEmpty(item.SumTotalWithAdditions.value, 0),\n ];\n bEdata.push(row);\n });\n }\n });\n\n const ws = XLSX.utils.aoa_to_sheet(bEdata);\n wb.Sheets[sheetName] = ws;\n\n const wbout = XLSX.write(wb, { bookType: 'xlsx', type: 'binary' });\n\n downloadExcel(xlsxName, wbout);\n};\n\nexport const generateDeliveryViewReport = async (\n type: ReportType,\n options: ReportOptions\n) => {\n switch (options.FileType) {\n case ReportFileType.PDF:\n await generateDeliveryViewReportPDF(type, options);\n break;\n case ReportFileType.XLSX:\n await generateDeliveryViewReportEXCEL(type, options);\n break;\n default:\n break;\n }\n};\n","import { createReportName, downloadExcel } from '@/helpers/reports';\nimport { defaultLocaleString, translate } from '@/localization';\nimport jsPDF from 'jspdf';\nimport autoTable from 'jspdf-autotable';\nimport { ReportOptions } from '@/models/report/interfaces';\nimport { createHeader, createHeaderXlsx } from '@/models/report/report-header';\nimport {\n createProjectInfo,\n createProjectInfoXlsx,\n} from '@/models/report/report-project-info';\nimport { useCalculation } from '@/modules/calculation';\nimport { ReportFileType, ReportType } from '@/models/report/enums';\nimport XLSX from 'xlsx';\nimport { numberToAbsStringOrEmpty } from '@/helpers/common';\nimport {\n DEFAULT_TEXT_MEDIUM,\n DEFAULT_TEXT_MINI,\n LARGE_TEXT_MEDIUM,\n LARGE_TEXT_MINI,\n} from '@/constants/styles';\nimport { useReport } from '@/modules/report';\n\nexport const generateTimeViewReportPDF = async (\n type: ReportType,\n options: ReportOptions\n) => {\n const { projectCalculation } = useCalculation();\n\n if (!projectCalculation.value) return;\n\n const doc = new jsPDF('p', 'mm', [210, 297]);\n\n const pdfName = createReportName(type, ReportFileType.PDF);\n\n await createHeader(doc, options);\n await createProjectInfo(doc, false, options, false);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const first = (doc as any).autoTable.previous;\n\n const head = [\n [\n translate('labels.zip'),\n translate('headers.name'),\n '',\n translate('headers.milestone'),\n translate('headers.basetime'),\n translate('headers.openingaddition'),\n translate('headers.surfaceaddition'),\n translate('headers.factor1'),\n translate('headers.timeprunit'),\n translate('headers.sumtime'),\n translate('headers.unit'),\n translate('headers.amount'),\n ],\n ];\n const bEdata: (string | number)[][] = [];\n const buildingElementBreakPoints: Array = [];\n\n const elements = projectCalculation.value.BuildingElements;\n let postnr = 1;\n\n if (!elements) return;\n\n elements.forEach(ele => {\n buildingElementBreakPoints.push(bEdata.length);\n const row = [\n !options.IncludeBuildingItems ? postnr++ : '',\n ele.Name ?? '',\n '',\n '',\n '',\n numberToAbsStringOrEmpty(ele.OpeningAddition.value, 2),\n numberToAbsStringOrEmpty(ele.SurfaceAddition.value, 2),\n ele.Factor1Calculated.value ?? '',\n numberToAbsStringOrEmpty(ele.TimePrUnit.value, 2),\n numberToAbsStringOrEmpty(ele.SumTime.value, 1),\n ele.Unit?.value ?? '',\n numberToAbsStringOrEmpty(ele.Amount, 2),\n ];\n\n bEdata.push(row);\n\n if (options.IncludeBuildingItems) {\n ele.BuildingItems.forEach(item => {\n const row = [\n postnr++,\n item.Name ?? '',\n item.PreCutText.value ?? '',\n item.MileStone ?? '',\n item.BaseTime ?? '',\n numberToAbsStringOrEmpty(item.OpeningAddition, 2),\n numberToAbsStringOrEmpty(item.SurfaceAddition, 2),\n numberToAbsStringOrEmpty(item.Factor1Calculated.value, 2),\n numberToAbsStringOrEmpty(item.TimePrUnit.value, 2),\n numberToAbsStringOrEmpty(item.SumTime.value, 1),\n item.Unit ?? '',\n numberToAbsStringOrEmpty(item.AmountCalculated.value, 2),\n ];\n bEdata.push(row);\n });\n }\n });\n\n const reportName = `${translate('reports.time-view-report')}`;\n\n doc.text(reportName, 14, first.finalY + 9);\n\n autoTable(doc, {\n startY: first.finalY + 14,\n head: head,\n body: bEdata,\n showHead: 'firstPage',\n headStyles: { fillColor: '#263238', valign: 'middle' },\n styles: {\n fontSize:\n options.FontSize === 'default' ? DEFAULT_TEXT_MINI : LARGE_TEXT_MINI,\n },\n didParseCell(data) {\n if (\n buildingElementBreakPoints.includes(data.row.index) &&\n data.section === 'body' &&\n options.IncludeBuildingItems\n ) {\n data.cell.styles.fontStyle = 'bold';\n data.cell.styles.fillColor = '#d6d8da';\n }\n },\n columnStyles: {\n 0: {\n valign: 'middle',\n },\n 1: {\n valign: 'middle',\n },\n 2: {\n valign: 'middle',\n textColor: '#b71c1c',\n },\n 3: {\n valign: 'middle',\n },\n 4: {\n valign: 'middle',\n },\n 5: {\n valign: 'middle',\n },\n 6: {\n valign: 'middle',\n },\n 7: {\n valign: 'middle',\n cellWidth:\n options.FontSize === 'default'\n ? DEFAULT_TEXT_MEDIUM\n : LARGE_TEXT_MEDIUM,\n },\n 8: {\n valign: 'middle',\n cellWidth:\n options.FontSize === 'default'\n ? DEFAULT_TEXT_MEDIUM\n : LARGE_TEXT_MEDIUM,\n },\n 9: {\n valign: 'middle',\n cellWidth:\n options.FontSize === 'default'\n ? DEFAULT_TEXT_MEDIUM\n : LARGE_TEXT_MEDIUM,\n },\n 10: {\n valign: 'middle',\n halign: 'right',\n cellWidth: 15,\n },\n 11: {\n valign: 'middle',\n halign: 'right',\n cellWidth:\n options.FontSize === 'default'\n ? DEFAULT_TEXT_MEDIUM\n : LARGE_TEXT_MEDIUM,\n },\n 12: {\n valign: 'middle',\n halign: 'right',\n },\n },\n });\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const pages = (doc.internal as any).getNumberOfPages();\n const pageWidth = doc.internal.pageSize.width; //Optional\n const pageHeight = doc.internal.pageSize.height; //Optional\n doc.setFontSize(\n options.FontSize === 'default' ? DEFAULT_TEXT_MEDIUM : LARGE_TEXT_MEDIUM\n ); //Optional\n\n for (let j = 1; j < pages + 1; j++) {\n const horizontalPos = pageWidth / 2;\n const verticalPos = pageHeight - 10;\n doc.setPage(j);\n doc.text(\n `${j} ${translate('common.by')} ${pages}`,\n horizontalPos,\n verticalPos,\n {\n align: 'center',\n }\n );\n\n const currentDate = new Date();\n const createdAt = `${currentDate.toLocaleString(defaultLocaleString)}`;\n\n doc.text(createdAt, 10, verticalPos, {\n align: 'left',\n });\n }\n\n await doc.save(pdfName);\n};\n\nexport const generateTimeViewReportEXCEL = async (\n type: ReportType,\n options: ReportOptions\n) => {\n const { projectCalculation } = useCalculation();\n const { checkAndbuildSheetName } = useReport();\n\n if (!projectCalculation.value) return;\n\n const wb = XLSX.utils.book_new();\n\n const xlsxName = createReportName(type, ReportFileType.XLSX);\n\n const sheetName = checkAndbuildSheetName(\n projectCalculation.value.Name,\n wb.SheetNames\n );\n\n wb.Props = {\n Title: `${translate('reports.time-view-report')}`,\n CreatedDate: new Date(),\n };\n\n wb.SheetNames.push(sheetName);\n\n const bEdata: (string | number)[][] = [];\n\n bEdata.push([sheetName]);\n bEdata.push(['']);\n\n await createHeaderXlsx(bEdata);\n await createProjectInfoXlsx(bEdata);\n\n bEdata.push([\n `${translate('labels.zip')}`,\n `${translate('headers.name')}`,\n `${translate('headers.precut')}`,\n `${translate('headers.milestone')}`,\n `${translate('headers.basetime')}`,\n `${translate('headers.openingaddition')}`,\n `${translate('headers.surfaceaddition')}`,\n `${translate('headers.factor1')}`,\n `${translate('headers.timeprunit')}`,\n `${translate('headers.sumtime')}`,\n `${translate('headers.unit')}`,\n `${translate('headers.amount')}`,\n ]);\n\n const buildingElementBreakPoints: Array = [];\n\n const elements = projectCalculation.value.BuildingElements;\n let postnr = 1;\n\n if (!elements) return;\n\n elements.forEach(ele => {\n buildingElementBreakPoints.push(bEdata.length);\n const row = [\n !options.IncludeBuildingItems ? postnr++ : '',\n ele.Name ?? '',\n '',\n '',\n '',\n numberToAbsStringOrEmpty(ele.OpeningAddition.value, 2),\n numberToAbsStringOrEmpty(ele.SurfaceAddition.value, 2),\n ele.Factor1Calculated.value ?? '',\n numberToAbsStringOrEmpty(ele.TimePrUnit.value, 2),\n numberToAbsStringOrEmpty(ele.SumTime.value, 1),\n ele.Unit?.value ?? '',\n numberToAbsStringOrEmpty(ele.Amount, 2),\n ];\n\n bEdata.push(row);\n\n if (options.IncludeBuildingItems) {\n ele.BuildingItems.forEach(item => {\n const row = [\n postnr++,\n item.Name ?? '',\n item.PreCutText.value ?? '',\n item.MileStone ?? '',\n item.BaseTime ?? '',\n numberToAbsStringOrEmpty(item.OpeningAddition, 2),\n numberToAbsStringOrEmpty(item.SurfaceAddition, 2),\n numberToAbsStringOrEmpty(item.Factor1Calculated.value, 2),\n numberToAbsStringOrEmpty(item.TimePrUnit.value, 2),\n numberToAbsStringOrEmpty(item.SumTime.value, 1),\n item.Unit ?? '',\n numberToAbsStringOrEmpty(item.AmountCalculated.value, 2),\n ];\n bEdata.push(row);\n });\n }\n });\n\n const ws = XLSX.utils.aoa_to_sheet(bEdata);\n wb.Sheets[sheetName] = ws;\n\n const wbout = XLSX.write(wb, { bookType: 'xlsx', type: 'binary' });\n\n downloadExcel(xlsxName, wbout);\n};\n\nexport const generateTimeViewReport = async (\n type: ReportType,\n options: ReportOptions\n) => {\n switch (options.FileType) {\n case ReportFileType.PDF:\n await generateTimeViewReportPDF(type, options);\n break;\n case ReportFileType.XLSX:\n await generateTimeViewReportEXCEL(type, options);\n break;\n default:\n break;\n }\n};\n","import { createReportName, downloadExcel } from '@/helpers/reports';\nimport { defaultLocaleString, translate } from '@/localization';\nimport jsPDF from 'jspdf';\nimport autoTable from 'jspdf-autotable';\nimport { ReportOptions } from '@/models/report/interfaces';\nimport { createHeader, createHeaderXlsx } from '@/models/report/report-header';\nimport {\n createProjectInfo,\n createProjectInfoXlsx,\n} from '@/models/report/report-project-info';\nimport { useCalculation } from '@/modules/calculation';\nimport { ReportFileType, ReportType } from '@/models/report/enums';\nimport XLSX from 'xlsx';\nimport { numberToAbsStringOrEmpty } from '@/helpers/common';\nimport {\n DEFAULT_TEXT_LARGE,\n DEFAULT_TEXT_MEDIUM,\n DEFAULT_TEXT_MINI,\n LARGE_TEXT_LARGE,\n LARGE_TEXT_MEDIUM,\n LARGE_TEXT_MINI,\n} from '@/constants/styles';\nimport { useReport } from '@/modules/report';\n\nexport const generateMaterialViewReportPDF = async (\n type: ReportType,\n options: ReportOptions\n) => {\n const { projectCalculation } = useCalculation();\n\n if (!projectCalculation.value) return;\n\n const doc = new jsPDF('p', 'mm', [210, 297]);\n\n const pdfName = createReportName(type, ReportFileType.PDF);\n\n await createHeader(doc, options);\n await createProjectInfo(doc, false, options, false);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const first = (doc as any).autoTable.previous;\n\n const head = [\n [\n `${translate('labels.zip')}`,\n `${translate('headers.deliveryorder')}`,\n `${translate('headers.name')}`,\n '',\n `${translate('headers.nobbnumber')}`,\n `${translate('headers.unit')}`,\n `${translate('headers.amount')}`,\n `${translate('headers.amountadjustment')}`,\n `${translate('headers.amountprunit')}`,\n `${translate('headers.unitfororder')}`,\n `${translate('headers.price')}`,\n `${translate('headers.amountofmaterials')}`,\n `${translate('headers.unitpricematerials')}`,\n `${translate('headers.factor7')}`, //Profit in material cost\n `${translate('headers.summaterialsue')}`,\n ],\n ];\n const bEdata: (string | number)[][] = [];\n const buildingElementBreakPoints: Array = [];\n\n const elements = projectCalculation.value.BuildingElements;\n let postnr = 1;\n\n if (!elements) return;\n\n elements.forEach(ele => {\n buildingElementBreakPoints.push(bEdata.length);\n const row = [\n !options.IncludeBuildingItems ? postnr++ : '',\n '',\n ele.Name ?? '',\n '',\n '',\n ele.Unit?.value ?? '',\n numberToAbsStringOrEmpty(ele.Amount, 2),\n '',\n '',\n '',\n numberToAbsStringOrEmpty(ele.Price.value, 2),\n numberToAbsStringOrEmpty(ele.AmountOfMaterials.value, 2),\n numberToAbsStringOrEmpty(ele.UnitPriceMaterials.value, 2),\n numberToAbsStringOrEmpty(ele.Factor7.value, 2),\n numberToAbsStringOrEmpty(ele.SumMaterialsUE.value, 2),\n ];\n\n bEdata.push(row);\n\n if (options.IncludeBuildingItems) {\n ele.BuildingItems.forEach(item => {\n const row = [\n postnr++,\n item.DeliveryOrder ?? '',\n item.Name ?? '',\n item.PreCutText.value ?? '',\n item.NOBBNumber ?? '',\n item.Unit ?? '',\n numberToAbsStringOrEmpty(item.AmountCalculated.value, 2),\n item.AmountAdjustment ?? '',\n item.AmountPrUnit ?? '',\n item.UnitForOrder ?? '',\n numberToAbsStringOrEmpty(item.Price, 2),\n numberToAbsStringOrEmpty(item.AmountOfMaterials.value, 2),\n numberToAbsStringOrEmpty(item.UnitPriceMaterials.value, 2),\n numberToAbsStringOrEmpty(item.Factor7.value, 2),\n numberToAbsStringOrEmpty(item.SumMaterialsUE.value, 2),\n ];\n bEdata.push(row);\n });\n }\n });\n\n const reportName = `${translate('reports.material-view-report')}`;\n\n doc.text(reportName, 14, first.finalY + 9);\n\n autoTable(doc, {\n startY: first.finalY + 14,\n head: head,\n body: bEdata,\n showHead: 'firstPage',\n headStyles: { fillColor: '#263238', valign: 'middle' },\n styles: {\n fontSize:\n options.FontSize === 'default' ? DEFAULT_TEXT_MINI : LARGE_TEXT_MINI,\n },\n didParseCell(data) {\n if (\n buildingElementBreakPoints.includes(data.row.index) &&\n data.section === 'body' &&\n options.IncludeBuildingItems\n ) {\n data.cell.styles.fontStyle = 'bold';\n data.cell.styles.fillColor = '#d6d8da';\n }\n },\n columnStyles: {\n 0: {\n valign: 'middle',\n },\n 1: {\n valign: 'middle',\n },\n 2: {\n valign: 'middle',\n },\n 3: {\n valign: 'middle',\n textColor: '#b71c1c',\n },\n 4: {\n valign: 'middle',\n },\n 5: {\n valign: 'middle',\n },\n 6: {\n valign: 'middle',\n },\n 7: {\n valign: 'middle',\n cellWidth:\n options.FontSize === 'default'\n ? DEFAULT_TEXT_MEDIUM\n : LARGE_TEXT_MEDIUM,\n },\n 8: {\n valign: 'middle',\n cellWidth:\n options.FontSize === 'default'\n ? DEFAULT_TEXT_MEDIUM\n : LARGE_TEXT_MEDIUM,\n },\n 9: {\n valign: 'middle',\n cellWidth:\n options.FontSize === 'default'\n ? DEFAULT_TEXT_MEDIUM\n : LARGE_TEXT_MEDIUM,\n },\n 10: {\n valign: 'middle',\n halign: 'right',\n cellWidth:\n options.FontSize === 'default'\n ? DEFAULT_TEXT_LARGE\n : LARGE_TEXT_LARGE,\n },\n 11: {\n valign: 'middle',\n halign: 'right',\n },\n 12: {\n valign: 'middle',\n halign: 'right',\n cellWidth: 15,\n },\n 13: {\n valign: 'middle',\n halign: 'right',\n cellWidth: 15,\n },\n },\n });\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const pages = (doc.internal as any).getNumberOfPages();\n const pageWidth = doc.internal.pageSize.width; //Optional\n const pageHeight = doc.internal.pageSize.height; //Optional\n doc.setFontSize(\n options.FontSize === 'default' ? DEFAULT_TEXT_MEDIUM : LARGE_TEXT_MEDIUM\n ); //Optional\n\n for (let j = 1; j < pages + 1; j++) {\n const horizontalPos = pageWidth / 2;\n const verticalPos = pageHeight - 10;\n doc.setPage(j);\n doc.text(\n `${j} ${translate('common.by')} ${pages}`,\n horizontalPos,\n verticalPos,\n {\n align: 'center',\n }\n );\n\n const currentDate = new Date();\n const createdAt = `${currentDate.toLocaleString(defaultLocaleString)}`;\n\n doc.text(createdAt, 10, verticalPos, {\n align: 'left',\n });\n }\n\n await doc.save(pdfName);\n};\n\nexport const generateMaterialViewReportEXCEL = async (\n type: ReportType,\n options: ReportOptions\n) => {\n const { projectCalculation } = useCalculation();\n const { checkAndbuildSheetName } = useReport();\n\n if (!projectCalculation.value) return;\n\n const wb = XLSX.utils.book_new();\n\n const xlsxName = createReportName(type, ReportFileType.XLSX);\n\n const sheetName = checkAndbuildSheetName(\n projectCalculation.value.Name,\n wb.SheetNames\n );\n\n wb.Props = {\n Title: `${translate('reports.material-view-report')}`,\n CreatedDate: new Date(),\n };\n\n wb.SheetNames.push(sheetName);\n\n const bEdata: (string | number)[][] = [];\n\n bEdata.push([sheetName]);\n bEdata.push(['']);\n\n await createHeaderXlsx(bEdata);\n await createProjectInfoXlsx(bEdata);\n\n bEdata.push([\n `${translate('labels.zip')}`,\n `${translate('headers.deliveryorder')}`,\n `${translate('headers.name')}`,\n `${translate('headers.precut')}`,\n `${translate('headers.nobbnumber')}`,\n `${translate('headers.unit')}`,\n `${translate('headers.amount')}`,\n `${translate('headers.amountadjustment')}`,\n `${translate('headers.amountprunit')}`,\n `${translate('headers.unitfororder')}`,\n `${translate('headers.price')}`,\n `${translate('headers.amountofmaterials')}`,\n `${translate('headers.unitpricematerials')}`,\n `${translate('headers.factor7')}`,\n `${translate('headers.summaterialsue')}`,\n ]);\n\n const buildingElementBreakPoints: Array = [];\n\n const elements = projectCalculation.value.BuildingElements;\n let postnr = 1;\n\n if (!elements) return;\n\n elements.forEach(ele => {\n buildingElementBreakPoints.push(bEdata.length);\n const row = [\n !options.IncludeBuildingItems ? postnr++ : '',\n '',\n ele.Name ?? '',\n '',\n '',\n ele.Unit?.value ?? '',\n numberToAbsStringOrEmpty(ele.Amount, 2),\n '',\n '',\n '',\n numberToAbsStringOrEmpty(ele.Price.value, 2),\n numberToAbsStringOrEmpty(ele.AmountOfMaterials.value, 2),\n numberToAbsStringOrEmpty(ele.UnitPriceMaterials.value, 2),\n numberToAbsStringOrEmpty(ele.Factor7.value, 2),\n numberToAbsStringOrEmpty(ele.SumMaterialsUE.value, 2),\n ];\n\n bEdata.push(row);\n\n if (options.IncludeBuildingItems) {\n ele.BuildingItems.forEach(item => {\n const row = [\n postnr++,\n item.DeliveryOrder ?? '',\n item.Name ?? '',\n item.PreCutText.value ?? '',\n item.NOBBNumber ?? '',\n item.Unit ?? '',\n numberToAbsStringOrEmpty(item.AmountCalculated.value, 2),\n item.AmountAdjustment ?? '',\n item.AmountPrUnit ?? '',\n item.UnitForOrder ?? '',\n numberToAbsStringOrEmpty(item.Price, 2),\n numberToAbsStringOrEmpty(item.AmountOfMaterials.value, 2),\n numberToAbsStringOrEmpty(item.UnitPriceMaterials.value, 2),\n numberToAbsStringOrEmpty(item.Factor7.value, 2),\n numberToAbsStringOrEmpty(item.SumMaterialsUE.value, 2),\n ];\n bEdata.push(row);\n });\n }\n });\n\n const ws = XLSX.utils.aoa_to_sheet(bEdata);\n wb.Sheets[sheetName] = ws;\n\n const wbout = XLSX.write(wb, { bookType: 'xlsx', type: 'binary' });\n\n downloadExcel(xlsxName, wbout);\n};\n\nexport const generateMaterialViewReport = async (\n type: ReportType,\n options: ReportOptions\n) => {\n switch (options.FileType) {\n case ReportFileType.PDF:\n await generateMaterialViewReportPDF(type, options);\n break;\n case ReportFileType.XLSX:\n await generateMaterialViewReportEXCEL(type, options);\n break;\n default:\n break;\n }\n};\n","import { createReportName, downloadExcel } from '@/helpers/reports';\nimport { defaultLocaleString, translate } from '@/localization';\nimport jsPDF from 'jspdf';\nimport autoTable from 'jspdf-autotable';\nimport { ReportOptions } from '@/models/report/interfaces';\nimport { createHeader, createHeaderXlsx } from '@/models/report/report-header';\nimport {\n createProjectInfo,\n createProjectInfoXlsx,\n} from '@/models/report/report-project-info';\nimport { useCalculation } from '@/modules/calculation';\nimport { ReportFileType, ReportType } from '@/models/report/enums';\nimport XLSX from 'xlsx';\nimport { numberToAbsStringOrEmpty } from '@/helpers/common';\nimport {\n DEFAULT_TEXT_MEDIUM,\n DEFAULT_TEXT_MINI,\n LARGE_TEXT_MEDIUM,\n LARGE_TEXT_MINI,\n} from '@/constants/styles';\nimport { useReport } from '@/modules/report';\n\nexport const generateEconomyViewReportPDF = async (\n type: ReportType,\n options: ReportOptions\n) => {\n const { projectCalculation } = useCalculation();\n\n if (!projectCalculation.value) return;\n\n const doc = new jsPDF('p', 'mm', [210, 297]);\n\n const pdfName = createReportName(type, ReportFileType.PDF);\n\n await createHeader(doc, options);\n await createProjectInfo(doc, false, options, false);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const first = (doc as any).autoTable.previous;\n\n const head = [\n [\n `${translate('labels.zip')}`,\n `${translate('headers.sumtime')}`,\n `${translate('headers.factor2')}`,\n `${translate('headers.sumsalaryandsocialcost')}`,\n `${translate('headers.name')}`,\n '',\n `${translate('headers.amount')}`,\n `${translate('headers.unitfororder')}`,\n `${translate('headers.summaterialsue')}`,\n `${translate('headers.projectcost')}`,\n `${translate('headers.factor4')}`,\n `${translate('headers.factor6')}`,\n `${translate('headers.factor7')}`,\n `${translate('headers.summargin')}`,\n `${translate('headers.sumtotal')}`,\n ],\n ];\n const bEdata: (string | number)[][] = [];\n const buildingElementBreakPoints: Array = [];\n\n const elements = projectCalculation.value.BuildingElements;\n let postnr = 1;\n\n if (!elements) return;\n\n elements.forEach(ele => {\n buildingElementBreakPoints.push(bEdata.length);\n const row = [\n !options.IncludeBuildingItems ? postnr++ : '',\n numberToAbsStringOrEmpty(ele.SumTime.value, 0),\n numberToAbsStringOrEmpty(ele.Factor2.value, 0),\n numberToAbsStringOrEmpty(ele.SumSalaryAndSocialCost.value, 0),\n ele.Name ?? '',\n '',\n numberToAbsStringOrEmpty(ele.Amount, 2),\n '',\n numberToAbsStringOrEmpty(ele.SumMaterialsUE.value, 0),\n numberToAbsStringOrEmpty(ele.ProjectCost.value, 0),\n numberToAbsStringOrEmpty(ele.Factor4.value, 0),\n numberToAbsStringOrEmpty(ele.Factor6.value, 0),\n numberToAbsStringOrEmpty(ele.Factor7.value, 0),\n numberToAbsStringOrEmpty(ele.SumMargin.value, 0),\n numberToAbsStringOrEmpty(ele.SumTotal.value, 0),\n ];\n\n bEdata.push(row);\n\n if (options.IncludeBuildingItems) {\n ele.BuildingItems.forEach(item => {\n const row = [\n postnr++,\n numberToAbsStringOrEmpty(item.SumTime.value, 0),\n numberToAbsStringOrEmpty(item.Factor2.value, 0),\n numberToAbsStringOrEmpty(item.SumSalaryAndSocialCost.value, 0),\n item.Name ?? '',\n item.PreCutText.value ?? '',\n numberToAbsStringOrEmpty(item.AmountCalculated.value, 2),\n item.UnitForOrder ?? '',\n numberToAbsStringOrEmpty(item.SumMaterialsUE.value, 0),\n numberToAbsStringOrEmpty(item.ProjectCost.value, 0),\n numberToAbsStringOrEmpty(item.Factor4.value, 0),\n numberToAbsStringOrEmpty(item.Factor6.value, 0),\n numberToAbsStringOrEmpty(item.Factor7.value, 0),\n numberToAbsStringOrEmpty(item.SumMargin.value, 0),\n numberToAbsStringOrEmpty(item.SumTotalWithAdditions.value, 0),\n ];\n bEdata.push(row);\n });\n }\n });\n\n const reportName = `${translate('reports.economy-view-report')}`;\n\n doc.text(reportName, 14, first.finalY + 9);\n\n autoTable(doc, {\n startY: first.finalY + 14,\n head: head,\n body: bEdata,\n showHead: 'firstPage',\n headStyles: { fillColor: '#263238', valign: 'middle' },\n styles: {\n fontSize:\n options.FontSize === 'default' ? DEFAULT_TEXT_MINI : LARGE_TEXT_MINI,\n },\n didParseCell(data) {\n if (\n buildingElementBreakPoints.includes(data.row.index) &&\n data.section === 'body' &&\n options.IncludeBuildingItems\n ) {\n data.cell.styles.fontStyle = 'bold';\n data.cell.styles.fillColor = '#d6d8da';\n }\n },\n columnStyles: {\n 0: {\n valign: 'middle',\n cellWidth: 8,\n },\n 1: {\n valign: 'middle',\n },\n 2: {\n valign: 'middle',\n cellWidth:\n options.FontSize === 'default'\n ? DEFAULT_TEXT_MEDIUM\n : LARGE_TEXT_MEDIUM,\n },\n 3: {\n valign: 'middle',\n },\n 4: {\n valign: 'middle',\n },\n 5: {\n valign: 'middle',\n textColor: '#b71c1c',\n },\n 6: {\n valign: 'middle',\n },\n 7: {\n valign: 'middle',\n cellWidth:\n options.FontSize === 'default'\n ? DEFAULT_TEXT_MEDIUM\n : LARGE_TEXT_MEDIUM,\n },\n 8: {\n valign: 'middle',\n cellWidth:\n options.FontSize === 'default'\n ? DEFAULT_TEXT_MEDIUM\n : LARGE_TEXT_MEDIUM,\n },\n 9: {\n valign: 'middle',\n cellWidth:\n options.FontSize === 'default'\n ? DEFAULT_TEXT_MEDIUM\n : LARGE_TEXT_MEDIUM,\n },\n 10: {\n valign: 'middle',\n halign: 'right',\n cellWidth:\n options.FontSize === 'default'\n ? DEFAULT_TEXT_MEDIUM\n : LARGE_TEXT_MEDIUM,\n },\n 11: {\n valign: 'middle',\n halign: 'right',\n cellWidth: 15,\n },\n 12: {\n valign: 'middle',\n halign: 'right',\n },\n 13: {\n valign: 'middle',\n halign: 'right',\n cellWidth: 15,\n },\n 14: {\n valign: 'middle',\n halign: 'right',\n cellWidth: 15,\n },\n },\n });\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const pages = (doc.internal as any).getNumberOfPages();\n const pageWidth = doc.internal.pageSize.width; //Optional\n const pageHeight = doc.internal.pageSize.height; //Optional\n doc.setFontSize(\n options.FontSize === 'default' ? DEFAULT_TEXT_MEDIUM : LARGE_TEXT_MEDIUM\n ); //Optional\n\n for (let j = 1; j < pages + 1; j++) {\n const horizontalPos = pageWidth / 2;\n const verticalPos = pageHeight - 10;\n doc.setPage(j);\n doc.text(\n `${j} ${translate('common.by')} ${pages}`,\n horizontalPos,\n verticalPos,\n {\n align: 'center',\n }\n );\n\n const currentDate = new Date();\n const createdAt = `${currentDate.toLocaleString(defaultLocaleString)}`;\n\n doc.text(createdAt, 10, verticalPos, {\n align: 'left',\n });\n }\n\n await doc.save(pdfName);\n};\n\nexport const generateEconomyViewReportEXCEL = async (\n type: ReportType,\n options: ReportOptions\n) => {\n const { projectCalculation } = useCalculation();\n const { checkAndbuildSheetName } = useReport();\n\n if (!projectCalculation.value) return;\n\n const wb = XLSX.utils.book_new();\n\n const xlsxName = createReportName(type, ReportFileType.XLSX);\n\n const sheetName = checkAndbuildSheetName(\n projectCalculation.value.Name,\n wb.SheetNames\n );\n\n wb.Props = {\n Title: `${translate('reports.economy-view-report')}`,\n CreatedDate: new Date(),\n };\n\n wb.SheetNames.push(sheetName);\n\n const bEdata: (string | number)[][] = [];\n\n bEdata.push([sheetName]);\n bEdata.push(['']);\n\n await createHeaderXlsx(bEdata);\n await createProjectInfoXlsx(bEdata);\n\n bEdata.push([\n `${translate('labels.zip')}`,\n `${translate('headers.sumtime')}`,\n `${translate('headers.factor2')}`,\n `${translate('headers.sumsalaryandsocialcost')}`,\n `${translate('headers.name')}`,\n `${translate('headers.precut')}`,\n `${translate('headers.amount')}`,\n `${translate('headers.unitfororder')}`,\n `${translate('headers.summaterialsue')}`,\n `${translate('headers.projectcost')}`,\n `${translate('headers.factor4')}`,\n `${translate('headers.factor6')}`,\n `${translate('headers.factor7')}`,\n `${translate('headers.summargin')}`,\n `${translate('headers.sumtotal')}`,\n ]);\n\n const buildingElementBreakPoints: Array = [];\n\n const elements = projectCalculation.value.BuildingElements;\n let postnr = 1;\n\n if (!elements) return;\n\n elements.forEach(ele => {\n buildingElementBreakPoints.push(bEdata.length);\n const row = [\n !options.IncludeBuildingItems ? postnr++ : '',\n numberToAbsStringOrEmpty(ele.SumTime.value, 0),\n numberToAbsStringOrEmpty(ele.Factor2.value, 0),\n numberToAbsStringOrEmpty(ele.SumSalaryAndSocialCost.value, 0),\n ele.Name ?? '',\n '',\n numberToAbsStringOrEmpty(ele.Amount, 2),\n '',\n numberToAbsStringOrEmpty(ele.SumMaterialsUE.value, 0),\n numberToAbsStringOrEmpty(ele.ProjectCost.value, 0),\n numberToAbsStringOrEmpty(ele.Factor4.value, 0),\n numberToAbsStringOrEmpty(ele.Factor6.value, 0),\n numberToAbsStringOrEmpty(ele.Factor7.value, 0),\n numberToAbsStringOrEmpty(ele.SumMargin.value, 0),\n numberToAbsStringOrEmpty(ele.SumTotal.value, 0),\n ];\n\n bEdata.push(row);\n\n if (options.IncludeBuildingItems) {\n ele.BuildingItems.forEach(item => {\n const row = [\n postnr++,\n numberToAbsStringOrEmpty(item.SumTime.value, 0),\n numberToAbsStringOrEmpty(item.Factor2.value, 0),\n numberToAbsStringOrEmpty(item.SumSalaryAndSocialCost.value, 0),\n item.Name ?? '',\n item.PreCutText.value ?? '',\n numberToAbsStringOrEmpty(item.AmountCalculated.value, 2),\n item.UnitForOrder ?? '',\n numberToAbsStringOrEmpty(item.SumMaterialsUE.value, 0),\n numberToAbsStringOrEmpty(item.ProjectCost.value, 0),\n numberToAbsStringOrEmpty(item.Factor4.value, 0),\n numberToAbsStringOrEmpty(item.Factor6.value, 0),\n numberToAbsStringOrEmpty(item.Factor7.value, 0),\n numberToAbsStringOrEmpty(item.SumMargin.value, 0),\n numberToAbsStringOrEmpty(item.SumTotalWithAdditions.value, 0),\n ];\n bEdata.push(row);\n });\n }\n });\n\n const ws = XLSX.utils.aoa_to_sheet(bEdata);\n wb.Sheets[sheetName] = ws;\n\n const wbout = XLSX.write(wb, { bookType: 'xlsx', type: 'binary' });\n\n downloadExcel(xlsxName, wbout);\n};\n\nexport const generateEconomyViewReport = async (\n type: ReportType,\n options: ReportOptions\n) => {\n switch (options.FileType) {\n case ReportFileType.PDF:\n await generateEconomyViewReportPDF(type, options);\n break;\n case ReportFileType.XLSX:\n await generateEconomyViewReportEXCEL(type, options);\n break;\n default:\n break;\n }\n};\n","import {\n createReportName,\n downloadExcel,\n getMileStoneData,\n} from '@/helpers/reports';\nimport { defaultLocaleString, translate } from '@/localization';\nimport jsPDF from 'jspdf';\nimport autoTable from 'jspdf-autotable';\nimport {\n NO_MILESTONE,\n ReportFileType,\n ReportType,\n} from '@/models/report//enums';\nimport { createHeader, createHeaderXlsx } from '@/models/report/report-header';\nimport {\n createProjectInfo,\n createProjectInfoXlsx,\n} from '@/models/report/report-project-info';\nimport { useCalculation } from '@/modules/calculation';\nimport { ReportOptions } from '@/models/report/interfaces';\nimport XLSX from 'xlsx';\nimport {\n getNameByProfessionCode,\n numberToAbsStringOrEmpty,\n} from '@/helpers/common';\nimport {\n DEFAULT_TEXT_LARGE,\n DEFAULT_TEXT_MEDIUM,\n DEFAULT_TEXT_SMALL,\n DEFAULT_TEXT_XSMALL,\n LARGE_TEXT_LARGE,\n LARGE_TEXT_MEDIUM,\n LARGE_TEXT_SMALL,\n LARGE_TEXT_XSMALL,\n} from '@/constants/styles';\nimport { useReport } from '@/modules/report';\n\nexport const generateProjectMilestoneReportPDF = async (\n type: ReportType,\n options: ReportOptions\n) => {\n const { getCalculation, buildProjectCalculation } = useCalculation();\n\n if (options.Calculations.length === 0) return;\n\n const doc = new jsPDF('p', 'mm', [210, 297]);\n const pdfName = createReportName(type, ReportFileType.PDF, true);\n\n await createHeader(doc, options);\n await createProjectInfo(doc, false, options, true);\n\n const reportName = `${translate('reports.project-milestone-report')}`;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const first = (doc as any).autoTable.previous;\n doc.text(reportName, 14, first.finalY + 9);\n\n let projectSumSelfCost = 0;\n let projectSumhours = 0;\n\n let calculationCount = 0;\n for (const calc of options.Calculations) {\n if (calc.Id) {\n const calculation = await getCalculation(calc.Id);\n\n if (calculation) {\n const projectCalc = await buildProjectCalculation(calculation);\n if (!projectCalc || projectCalc.BuildingElements.length === 0) continue;\n calculationCount++;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const first = (doc as any).autoTable.previous;\n\n const head = [\n [\n translate('labels.milestone'),\n translate('labels.building-element'),\n translate('labels.building-item'),\n translate('labels.unit'),\n translate('labels.amount'),\n translate('labels.sum-selfcost-mat-sub'),\n translate('labels.hours'),\n ],\n ];\n\n const calcName = `${projectCalc.Name} - ${getNameByProfessionCode(\n projectCalc.Profession.Code\n )}`;\n\n autoTable(doc, {\n startY: calculationCount === 1 ? first.finalY + 14 : first.finalY + 6,\n head: [[calcName]],\n theme: 'plain',\n styles: {\n fontSize:\n options.FontSize === 'default'\n ? DEFAULT_TEXT_LARGE\n : LARGE_TEXT_LARGE,\n halign: 'left',\n },\n });\n\n const milestones = getMileStoneData(projectCalc, false);\n const withoutMilestone = milestones.get(NO_MILESTONE);\n\n if (milestones) {\n if (withoutMilestone) {\n const mileStonedata: (string | number)[][] = [];\n\n withoutMilestone.forEach(item => {\n const row = [\n item.MileStone ?? '',\n item.BuildingElement?.Name ?? '',\n `${item.ItemName}` ?? '',\n item.Unit ?? '',\n numberToAbsStringOrEmpty(item.Amount, 2),\n numberToAbsStringOrEmpty(\n item.SumSelfCostMaterialsSubContractors,\n 2\n ),\n numberToAbsStringOrEmpty(item.SumHours, 2),\n ];\n\n mileStonedata.push(row);\n });\n\n projectSumSelfCost += withoutMilestone.reduce((prev, cur) => {\n return prev + (cur.SumSelfCostMaterialsSubContractors ?? 0);\n }, 0);\n projectSumhours += withoutMilestone.reduce((prev, cur) => {\n return prev + (cur.SumHours ?? 0);\n }, 0);\n\n const lastRow = [\n '',\n '',\n '',\n '',\n '',\n numberToAbsStringOrEmpty(\n withoutMilestone.reduce((prev, cur) => {\n return prev + (cur.SumSelfCostMaterialsSubContractors ?? 0);\n }, 0),\n 2\n ),\n numberToAbsStringOrEmpty(\n withoutMilestone.reduce((prev, cur) => {\n return prev + (cur.SumHours ?? 0);\n }, 0),\n 2\n ),\n ];\n\n mileStonedata.push(lastRow);\n\n const milestoneHeader = [[translate(`labels.${NO_MILESTONE}`)]];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const second = (doc as any).autoTable.previous;\n\n autoTable(doc, {\n startY: second.finalY + 2,\n head: milestoneHeader,\n theme: 'plain',\n styles: {\n fontStyle: 'italic',\n },\n });\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const third = (doc as any).autoTable.previous;\n\n autoTable(doc, {\n startY: third.finalY + 2,\n showHead: 'firstPage',\n head: head,\n body: mileStonedata,\n headStyles: {\n fillColor: '#656d72',\n fontSize:\n options.FontSize === 'default'\n ? DEFAULT_TEXT_XSMALL\n : LARGE_TEXT_XSMALL,\n valign: 'middle',\n },\n styles: {\n fontSize:\n options.FontSize === 'default'\n ? DEFAULT_TEXT_XSMALL\n : LARGE_TEXT_XSMALL,\n },\n didParseCell(data) {\n if (data.row.index === mileStonedata.length - 1) {\n data.cell.styles.fontStyle = 'bold';\n data.cell.styles.fillColor = 'white';\n }\n },\n columnStyles: {\n 0: {\n cellWidth: 25,\n valign: 'middle',\n },\n 1: {\n cellWidth: 'auto',\n valign: 'middle',\n },\n 2: {\n cellWidth: 'auto',\n valign: 'middle',\n },\n 3: {\n cellWidth:\n options.FontSize === 'default'\n ? DEFAULT_TEXT_LARGE\n : LARGE_TEXT_LARGE,\n valign: 'middle',\n halign: 'center',\n },\n 4: {\n cellWidth:\n options.FontSize === 'default'\n ? DEFAULT_TEXT_LARGE\n : LARGE_TEXT_LARGE,\n valign: 'middle',\n halign: 'center',\n },\n 5: {\n cellWidth: 25,\n valign: 'middle',\n halign: 'right',\n },\n 6: {\n cellWidth: 15,\n valign: 'middle',\n halign: 'right',\n },\n },\n });\n\n milestones.delete(NO_MILESTONE);\n }\n\n milestones.forEach((value, key) => {\n const mileStonedata: (string | number)[][] = [];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const first = (doc as any).autoTable.previous;\n\n value.forEach(item => {\n const row = [\n item.MileStone ?? '',\n item.BuildingElement?.Name ?? '',\n `${item.ItemName}` ?? '',\n item.Unit ?? '',\n numberToAbsStringOrEmpty(item.Amount, 2),\n numberToAbsStringOrEmpty(\n item.SumSelfCostMaterialsSubContractors,\n 2\n ),\n numberToAbsStringOrEmpty(item.SumHours, 2),\n ];\n\n mileStonedata.push(row);\n });\n\n projectSumSelfCost += value.reduce((prev, cur) => {\n return prev + (cur.SumSelfCostMaterialsSubContractors ?? 0);\n }, 0);\n projectSumhours += value.reduce((prev, cur) => {\n return prev + (cur.SumHours ?? 0);\n }, 0);\n\n const lastRow = [\n key,\n '',\n '',\n '',\n '',\n numberToAbsStringOrEmpty(\n value.reduce((prev, cur) => {\n return prev + (cur.SumSelfCostMaterialsSubContractors ?? 0);\n }, 0),\n 2\n ),\n numberToAbsStringOrEmpty(\n value.reduce((prev, cur) => {\n return prev + (cur.SumHours ?? 0);\n }, 0),\n 2\n ),\n ];\n\n mileStonedata.push(lastRow);\n\n const milestoneHeader = [\n [`${translate('labels.milestone')} - ${key}`],\n ];\n\n autoTable(doc, {\n startY: first.finalY + 6,\n head: milestoneHeader,\n theme: 'plain',\n styles: {\n fontStyle: 'italic',\n },\n });\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const second = (doc as any).autoTable.previous;\n\n autoTable(doc, {\n showHead: 'firstPage',\n startY: second.finalY,\n head: head,\n body: mileStonedata,\n headStyles: {\n fillColor: '#263238',\n fontSize:\n options.FontSize === 'default'\n ? DEFAULT_TEXT_XSMALL\n : LARGE_TEXT_XSMALL,\n valign: 'middle',\n },\n styles: {\n fontSize:\n options.FontSize === 'default'\n ? DEFAULT_TEXT_XSMALL\n : LARGE_TEXT_XSMALL,\n },\n didParseCell(data) {\n if (data.row.index === mileStonedata.length - 1) {\n data.cell.styles.fontStyle = 'bold';\n data.cell.styles.fillColor = 'white';\n }\n },\n columnStyles: {\n 0: {\n cellWidth: 25,\n valign: 'middle',\n },\n 1: {\n cellWidth: 'auto',\n valign: 'middle',\n },\n 2: {\n cellWidth: 'auto',\n valign: 'middle',\n },\n 3: {\n cellWidth:\n options.FontSize === 'default'\n ? DEFAULT_TEXT_LARGE\n : LARGE_TEXT_LARGE,\n valign: 'middle',\n halign: 'center',\n },\n 4: {\n cellWidth:\n options.FontSize === 'default'\n ? DEFAULT_TEXT_LARGE\n : LARGE_TEXT_LARGE,\n valign: 'middle',\n halign: 'center',\n },\n 5: {\n cellWidth: 25,\n valign: 'middle',\n halign: 'right',\n },\n 6: {\n cellWidth: 15,\n valign: 'middle',\n halign: 'right',\n },\n },\n });\n });\n }\n }\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const last = (doc as any).autoTable.previous;\n\n const summaryData: (string | number)[][] = [\n [\n `${translate('labels.project-total')}`,\n '',\n '',\n '',\n '',\n numberToAbsStringOrEmpty(projectSumSelfCost, 2),\n numberToAbsStringOrEmpty(projectSumhours, 2),\n ],\n ];\n\n autoTable(doc, {\n startY: last.finalY + 10,\n body: summaryData,\n theme: 'plain',\n styles: {\n fontSize:\n options.FontSize === 'default' ? DEFAULT_TEXT_SMALL : LARGE_TEXT_SMALL,\n fontStyle: 'bold',\n },\n columnStyles: {\n 0: {\n cellWidth: 25,\n valign: 'middle',\n },\n 1: {\n cellWidth: 'auto',\n valign: 'middle',\n },\n 2: {\n cellWidth: 'auto',\n valign: 'middle',\n },\n 3: {\n cellWidth:\n options.FontSize === 'default'\n ? DEFAULT_TEXT_LARGE\n : LARGE_TEXT_LARGE,\n valign: 'middle',\n halign: 'center',\n },\n 4: {\n cellWidth:\n options.FontSize === 'default'\n ? DEFAULT_TEXT_LARGE\n : LARGE_TEXT_LARGE,\n valign: 'middle',\n halign: 'center',\n },\n 5: {\n cellWidth: 25,\n valign: 'middle',\n halign: 'right',\n },\n 6: {\n cellWidth: 15,\n valign: 'middle',\n halign: 'right',\n },\n },\n });\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const pages = (doc.internal as any).getNumberOfPages();\n const pageWidth = doc.internal.pageSize.width; //Optional\n const pageHeight = doc.internal.pageSize.height; //Optional\n doc.setFontSize(\n options.FontSize === 'default' ? DEFAULT_TEXT_MEDIUM : LARGE_TEXT_MEDIUM\n ); //Optional\n\n for (let j = 1; j < pages + 1; j++) {\n const horizontalPos = pageWidth / 2;\n const verticalPos = pageHeight - 10;\n doc.setPage(j);\n doc.text(\n `${j} ${translate('common.by')} ${pages}`,\n horizontalPos,\n verticalPos,\n {\n align: 'center',\n }\n );\n\n const currentDate = new Date();\n const createdAt = `${currentDate.toLocaleString(defaultLocaleString)}`;\n\n doc.text(createdAt, 10, verticalPos, {\n align: 'left',\n });\n }\n\n await doc.save(pdfName);\n};\n\nexport const generateProjectMilestoneReportEXCEL = async (\n type: ReportType,\n options: ReportOptions\n) => {\n const { getCalculation, buildProjectCalculation } = useCalculation();\n const { checkAndbuildSheetName } = useReport();\n\n if (options.Calculations.length === 0) return;\n\n const wb = XLSX.utils.book_new();\n const xlsxName = createReportName(type, ReportFileType.XLSX, true);\n\n for (const calc of options.Calculations) {\n let projectSumSelfCost = 0;\n let projectSumhours = 0;\n if (calc.Id) {\n const calculation = await getCalculation(calc.Id);\n\n if (calculation) {\n const projectCalc = await buildProjectCalculation(calculation);\n if (!projectCalc) continue;\n\n const sheetName = checkAndbuildSheetName(\n projectCalc.Name,\n wb.SheetNames\n );\n\n wb.Props = {\n Title: `${translate('reports.project-milestone-report')}`,\n CreatedDate: new Date(),\n };\n\n wb.SheetNames.push(sheetName);\n\n const milestones = getMileStoneData(projectCalc, false);\n const withoutMilestone = milestones.get(NO_MILESTONE);\n const mileStonedata: (string | number)[][] = [];\n\n mileStonedata.push([sheetName]);\n mileStonedata.push(['']);\n\n await createHeaderXlsx(mileStonedata);\n await createProjectInfoXlsx(mileStonedata);\n\n if (milestones) {\n if (withoutMilestone) {\n const mileStonedata: (string | number)[][] = [];\n\n mileStonedata.push(['']);\n mileStonedata.push([`${translate(`labels.${NO_MILESTONE}`)}`]);\n mileStonedata.push(['']);\n mileStonedata.push([\n `${translate('labels.milestone')}`,\n `${translate('labels.building-element')}`,\n `${translate('labels.building-item')}`,\n `${translate('labels.unit')}`,\n `${translate('labels.amount')}`,\n `${translate('labels.sum-selfcost-mat-sub')}`,\n `${translate('labels.hours')}`,\n ]);\n\n withoutMilestone.forEach(item => {\n const row = [\n item.MileStone ?? '',\n item.BuildingElement?.Name ?? '',\n `${item.ItemName}` ?? '',\n item.Unit ?? '',\n numberToAbsStringOrEmpty(item.Amount, 2),\n numberToAbsStringOrEmpty(\n item.SumSelfCostMaterialsSubContractors,\n 2\n ),\n numberToAbsStringOrEmpty(item.SumHours, 2),\n ];\n\n mileStonedata.push(row);\n });\n\n projectSumSelfCost += withoutMilestone.reduce((prev, cur) => {\n return prev + (cur.SumSelfCostMaterialsSubContractors ?? 0);\n }, 0);\n projectSumhours += withoutMilestone.reduce((prev, cur) => {\n return prev + (cur.SumHours ?? 0);\n }, 0);\n\n const lastRow = [\n '',\n '',\n '',\n '',\n '',\n numberToAbsStringOrEmpty(\n withoutMilestone.reduce((prev, cur) => {\n return prev + (cur.SumSelfCostMaterialsSubContractors ?? 0);\n }, 0),\n 2\n ),\n numberToAbsStringOrEmpty(\n withoutMilestone.reduce((prev, cur) => {\n return prev + (cur.SumHours ?? 0);\n }, 0),\n 2\n ),\n ];\n\n mileStonedata.push(lastRow);\n milestones.delete(NO_MILESTONE);\n }\n\n milestones.forEach((value, key) => {\n mileStonedata.push(['']);\n mileStonedata.push([\n `${translate('labels.milestone')}`,\n `${translate('labels.building-element')}`,\n `${translate('labels.building-item')}`,\n `${translate('labels.unit')}`,\n `${translate('labels.amount')}`,\n `${translate('labels.sum-selfcost-mat-sub')}`,\n `${translate('labels.hours')}`,\n ]);\n mileStonedata.push(['']);\n value.forEach(item => {\n const row = [\n item.MileStone ?? '',\n item.BuildingElement?.Name ?? '',\n `${item.ItemName}` ?? '',\n item.Unit ?? '',\n numberToAbsStringOrEmpty(item.Amount, 2),\n numberToAbsStringOrEmpty(\n item.SumSelfCostMaterialsSubContractors,\n 2\n ),\n numberToAbsStringOrEmpty(item.SumHours, 2),\n ];\n\n mileStonedata.push(row);\n });\n\n projectSumSelfCost += value.reduce((prev, cur) => {\n return prev + (cur.SumSelfCostMaterialsSubContractors ?? 0);\n }, 0);\n projectSumhours += value.reduce((prev, cur) => {\n return prev + (cur.SumHours ?? 0);\n }, 0);\n\n const lastRow = [\n key,\n '',\n '',\n '',\n '',\n numberToAbsStringOrEmpty(\n value.reduce((prev, cur) => {\n return prev + (cur.SumSelfCostMaterialsSubContractors ?? 0);\n }, 0),\n 2\n ),\n numberToAbsStringOrEmpty(\n value.reduce((prev, cur) => {\n return prev + (cur.SumHours ?? 0);\n }, 0),\n 2\n ),\n ];\n\n mileStonedata.push(lastRow);\n });\n mileStonedata.push(['']);\n mileStonedata.push([\n `${translate('labels.total')}`,\n '',\n '',\n '',\n '',\n numberToAbsStringOrEmpty(projectSumSelfCost, 2),\n numberToAbsStringOrEmpty(projectSumhours, 2),\n ]);\n\n const ws = XLSX.utils.aoa_to_sheet(mileStonedata);\n wb.Sheets[sheetName] = ws;\n }\n }\n }\n }\n const wbout = XLSX.write(wb, { bookType: 'xlsx', type: 'binary' });\n downloadExcel(xlsxName, wbout);\n};\n\nexport const generateProjectMilestoneReport = async (\n type: ReportType,\n options: ReportOptions\n) => {\n switch (options.FileType) {\n case ReportFileType.PDF:\n await generateProjectMilestoneReportPDF(type, options);\n break;\n case ReportFileType.XLSX:\n await generateProjectMilestoneReportEXCEL(type, options);\n break;\n default:\n break;\n }\n};\n","import { createReportName, downloadExcel } from '@/helpers/reports';\nimport { defaultLocaleString, translate } from '@/localization';\nimport jsPDF from 'jspdf';\nimport autoTable from 'jspdf-autotable';\nimport { ReportFileType, ReportType } from '@/models/report//enums';\nimport { createHeader, createHeaderXlsx } from '@/models/report/report-header';\nimport {\n createProjectInfo,\n createProjectInfoXlsx,\n} from '@/models/report/report-project-info';\nimport { useCalculation } from '@/modules/calculation';\nimport { ReportOptions } from '@/models/report/interfaces';\nimport XLSX from 'xlsx';\nimport {\n getNameByProfessionCode,\n numberToAbsStringOrEmpty,\n} from '@/helpers/common';\nimport {\n DEFAULT_TEXT_LARGE,\n DEFAULT_TEXT_MEDIUM,\n DEFAULT_TEXT_XSMALL,\n LARGE_TEXT_LARGE,\n LARGE_TEXT_MEDIUM,\n LARGE_TEXT_XSMALL,\n} from '@/constants/styles';\nimport { useReport } from '@/modules/report';\n\nexport const generateProjectAttachmentPriceReportPDF = async (\n type: ReportType,\n options: ReportOptions\n) => {\n const { getCalculation, buildProjectCalculation } = useCalculation();\n\n if (options.Calculations.length === 0) return;\n\n const doc = new jsPDF('p', 'mm', [210, 297]);\n const pdfName = createReportName(type, ReportFileType.PDF, true);\n\n await createHeader(doc, options);\n await createProjectInfo(doc, false, options, true);\n\n const reportName = `${translate('reports.project-attachment-price-report')}`;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const first = (doc as any).autoTable.previous;\n doc.text(reportName, 14, first.finalY + 9);\n\n const totalData: (string | number)[][] = [];\n\n const MVA = 0.25;\n let projectSumExclMva = 0;\n let projectSumInclMva = 0;\n let projectMvaOnly = 0;\n\n let calculationCount = 0;\n for (const calc of options.Calculations) {\n if (calc.Id) {\n const calculation = await getCalculation(calc.Id);\n\n if (calculation) {\n const projectCalc = await buildProjectCalculation(calculation);\n if (!projectCalc || projectCalc.BuildingElements.length === 0) continue;\n calculationCount++;\n const buildingElementBreakPoints: Array = [];\n\n const head = [\n [\n translate('labels.zip'),\n translate('labels.description'),\n translate('labels.comments'),\n translate('labels.unit'),\n translate('labels.amount'),\n translate('labels.sum'),\n ],\n ];\n\n const calcName = `${projectCalc.Name} - ${getNameByProfessionCode(\n projectCalc.Profession.Code\n )}`;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const first = (doc as any).autoTable.previous;\n\n autoTable(doc, {\n startY: calculationCount === 1 ? first.finalY + 14 : first.finalY + 6,\n head: [[calcName]],\n theme: 'plain',\n styles: {\n fontSize:\n options.FontSize === 'default'\n ? DEFAULT_TEXT_LARGE\n : LARGE_TEXT_LARGE,\n halign: 'left',\n },\n });\n\n const offerData: (string | number)[][] = [];\n\n let elements = projectCalc.BuildingElements.filter(\n ele => ele.IsAmountSet\n );\n\n if (elements) {\n let postnr = 1;\n elements = elements.sort((a, b) =>\n (a.SortOrder ?? -1) > (b.SortOrder ?? -1)\n ? 1\n : (b.SortOrder ?? -1) > (a.SortOrder ?? -1)\n ? -1\n : 0\n );\n\n elements.forEach(ele => {\n const row = [\n '',\n ele.Name ?? '',\n options.IncludeComments ? ele.Comments ?? '' : '',\n ele.Unit?.value ?? '',\n options.IncludeAmounts\n ? ele.Amount?.toLocaleString(defaultLocaleString, {\n maximumFractionDigits: 2,\n }) ?? ''\n : '',\n options.IncludeElementSums\n ? numberToAbsStringOrEmpty(ele.SumTotal.value, 2)\n : '',\n ];\n\n buildingElementBreakPoints.push(offerData.length);\n offerData.push(row);\n\n let filteredItems = ele.BuildingItems.filter(\n i => i.UnitPrice.value && i.UnitPrice.value > 0\n );\n\n filteredItems = filteredItems.sort((a, b) =>\n (a.BuildingElement?.SortOrder ?? -1) >\n (b.BuildingElement?.SortOrder ?? -1)\n ? 1\n : (b.BuildingElement?.SortOrder ?? -1) >\n (a.BuildingElement?.SortOrder ?? -1)\n ? -1\n : 0\n );\n\n if (options.IncludeBuildingItems) {\n filteredItems.forEach(item => {\n const row = [\n postnr++,\n `${item.Name ?? ''} ${\n item.PriceListItemName && options.ShowProductName\n ? `(${item.PriceListItemName})`\n : ''\n }`,\n options.IncludeComments ? item.Comments ?? '' : '',\n item.Unit ?? '',\n options.IncludeAmounts\n ? item.AmountCalculated.value?.toLocaleString(\n defaultLocaleString,\n {\n maximumFractionDigits: 2,\n }\n ) ?? ''\n : '',\n options.IncludeItemSums\n ? numberToAbsStringOrEmpty(\n item.SumTotalWithAdditions.value,\n 2\n )\n : '',\n ];\n\n offerData.push(row);\n });\n }\n });\n\n const MVA = 0.25;\n let sumExclMva = 0;\n let sumInclMva = 0;\n let MvaOnly = 0;\n\n elements.forEach(ele => {\n sumExclMva += ele.SumTotal.value ?? 0;\n });\n\n MvaOnly = sumExclMva * MVA;\n sumInclMva = sumExclMva + MvaOnly;\n\n projectSumExclMva = projectSumExclMva + sumExclMva;\n\n const fillRow = ['', '', '', '', ''];\n const sumExclMvaRow = [\n '',\n '',\n '',\n '',\n `${translate('labels.sum-exclude-mva')}`,\n numberToAbsStringOrEmpty(sumExclMva, 2),\n ];\n const mvaRow = [\n '',\n '',\n '',\n '',\n `${translate('labels.sum-mva-only')}`,\n numberToAbsStringOrEmpty(MvaOnly, 2),\n ];\n const sumInclMvaRow = [\n '',\n '',\n '',\n '',\n `${translate('labels.sum-include-mva')}`,\n numberToAbsStringOrEmpty(sumInclMva, 2),\n ];\n\n offerData.push(fillRow);\n offerData.push(sumExclMvaRow);\n offerData.push(mvaRow);\n offerData.push(sumInclMvaRow);\n\n const calcTotalRow = [\n calcName,\n '',\n '',\n '',\n '',\n numberToAbsStringOrEmpty(sumExclMva, 2),\n ];\n\n totalData.push(calcTotalRow);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const elePos = (doc as any).autoTable.previous;\n\n autoTable(doc, {\n startY: elePos.finalY + 2,\n head: head,\n body: offerData,\n showHead: 'firstPage',\n headStyles: { fillColor: '#263238' },\n styles: {\n fontSize:\n options.FontSize === 'default'\n ? DEFAULT_TEXT_XSMALL\n : LARGE_TEXT_XSMALL,\n },\n didParseCell(data) {\n if (\n buildingElementBreakPoints.includes(data.row.index) &&\n data.section === 'body'\n ) {\n data.cell.styles.fontStyle = 'bold';\n data.cell.styles.fillColor = options.IncludeBuildingItems\n ? '#d6d8da'\n : 'white';\n } else if (\n (data.section === 'body' &&\n data.row.index === offerData.length - 1) ||\n data.row.index === offerData.length - 2 ||\n data.row.index === offerData.length - 3\n ) {\n data.row.cells[0].styles.fillColor = 'white';\n data.row.cells[1].styles.fillColor = 'white';\n data.row.cells[2].styles.fillColor = 'white';\n data.row.cells[3].styles.fillColor = 'white';\n\n data.row.cells[4].styles.fontStyle = 'bold';\n data.row.cells[4].styles.cellPadding = 0.7;\n data.row.cells[4].styles.fillColor = '#f7f7f7';\n\n data.row.cells[5].styles.fontStyle = 'bold';\n data.row.cells[5].styles.cellPadding = 0.7;\n data.row.cells[5].styles.fillColor = '#f7f7f7';\n } else if (data.section === 'body') {\n data.cell.styles.fillColor = 'white';\n }\n },\n columnStyles: {\n 0: {\n valign: 'middle',\n },\n 1: {\n valign: 'middle',\n },\n 2: {\n valign: 'middle',\n },\n 3: {\n valign: 'middle',\n },\n 4: {\n valign: 'middle',\n halign: 'right',\n cellWidth: 20,\n },\n 5: {\n valign: 'middle',\n halign: 'right',\n cellWidth: 20,\n },\n },\n });\n }\n }\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const totalPos = (doc as any).autoTable.previous;\n\n autoTable(doc, {\n startY: calculationCount === 1 ? totalPos.finalY + 14 : totalPos.finalY + 6,\n head: [['Total']],\n theme: 'plain',\n styles: {\n fontSize:\n options.FontSize === 'default' ? DEFAULT_TEXT_LARGE : LARGE_TEXT_LARGE,\n halign: 'left',\n },\n });\n\n projectMvaOnly = projectSumExclMva * MVA;\n projectSumInclMva = projectSumExclMva + projectMvaOnly;\n\n const fillRow = ['', '', '', '', ''];\n const sumExclMvaRow = [\n '',\n '',\n '',\n '',\n `${translate('labels.sum-exclude-mva')}`,\n numberToAbsStringOrEmpty(projectSumExclMva, 2),\n ];\n const mvaRow = [\n '',\n '',\n '',\n '',\n `${translate('labels.sum-mva-only')}`,\n numberToAbsStringOrEmpty(projectMvaOnly, 2),\n ];\n const sumInclMvaRow = [\n '',\n '',\n '',\n '',\n `${translate('labels.sum-include-mva')}`,\n numberToAbsStringOrEmpty(projectSumInclMva, 2),\n ];\n\n totalData.push(fillRow);\n totalData.push(sumExclMvaRow);\n totalData.push(mvaRow);\n totalData.push(sumInclMvaRow);\n\n const totalHead = [\n [translate('labels.projects'), '', '', '', '', translate('labels.sum')],\n ];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const totalTablePos = (doc as any).autoTable.previous;\n\n autoTable(doc, {\n startY: totalTablePos.finalY + 2,\n head: totalHead,\n body: totalData,\n showHead: 'firstPage',\n headStyles: { fillColor: '#263238' },\n styles: {\n fontSize:\n options.FontSize === 'default'\n ? DEFAULT_TEXT_XSMALL\n : LARGE_TEXT_XSMALL,\n },\n didParseCell(data) {\n if (\n (data.section === 'body' && data.row.index === totalData.length - 1) ||\n data.row.index === totalData.length - 2 ||\n data.row.index === totalData.length - 3\n ) {\n data.row.cells[0].styles.fillColor = 'white';\n data.row.cells[1].styles.fillColor = 'white';\n data.row.cells[2].styles.fillColor = 'white';\n data.row.cells[3].styles.fillColor = 'white';\n\n data.row.cells[4].styles.fontStyle = 'bold';\n data.row.cells[4].styles.cellPadding = 0.7;\n data.row.cells[4].styles.fillColor = '#f7f7f7';\n\n data.row.cells[5].styles.fontStyle = 'bold';\n data.row.cells[5].styles.cellPadding = 0.7;\n data.row.cells[5].styles.fillColor = '#f7f7f7';\n } else if (data.section === 'body') {\n data.cell.styles.fillColor = 'white';\n }\n },\n columnStyles: {\n 0: {\n valign: 'middle',\n },\n 1: {\n valign: 'middle',\n },\n 2: {\n valign: 'middle',\n },\n 3: {\n valign: 'middle',\n },\n 4: {\n valign: 'middle',\n halign: 'right',\n cellWidth: 20,\n },\n 5: {\n valign: 'middle',\n halign: 'right',\n cellWidth: 20,\n },\n },\n });\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const pages = (doc.internal as any).getNumberOfPages();\n const pageWidth = doc.internal.pageSize.width; //Optional\n const pageHeight = doc.internal.pageSize.height; //Optional\n doc.setFontSize(\n options.FontSize === 'default' ? DEFAULT_TEXT_MEDIUM : LARGE_TEXT_MEDIUM\n ); //Optional\n\n for (let j = 1; j < pages + 1; j++) {\n const horizontalPos = pageWidth / 2;\n const verticalPos = pageHeight - 10;\n doc.setPage(j);\n doc.text(\n `${j} ${translate('common.by')} ${pages}`,\n horizontalPos,\n verticalPos,\n {\n align: 'center',\n }\n );\n\n const currentDate = new Date();\n const createdAt = `${currentDate.toLocaleString(defaultLocaleString)}`;\n\n doc.text(createdAt, 10, verticalPos, {\n align: 'left',\n });\n }\n\n await doc.save(pdfName);\n};\n\nexport const generateProjectAttachmentPriceReportEXCEL = async (\n type: ReportType,\n options: ReportOptions\n) => {\n const { getCalculation, buildProjectCalculation } = useCalculation();\n const { checkAndbuildSheetName } = useReport();\n\n if (options.Calculations.length === 0) return;\n\n const wb = XLSX.utils.book_new();\n const xlsxName = createReportName(type, ReportFileType.XLSX, true);\n\n const totalData: (string | number)[][] = [];\n\n const MVA = 0.25;\n let projectSumExclMva = 0;\n let projectSumInclMva = 0;\n let projectMvaOnly = 0;\n\n const sheetName = 'Total';\n\n wb.Props = {\n Title: `${translate('reports.project-attachment-price-report')}`,\n CreatedDate: new Date(),\n };\n\n wb.SheetNames.push(sheetName);\n\n totalData.push([sheetName]);\n totalData.push(['']);\n\n await createHeaderXlsx(totalData);\n await createProjectInfoXlsx(totalData, true);\n\n totalData.push([\n `${translate('labels.projects')}`,\n '',\n '',\n '',\n '',\n `${translate('labels.sum')}`,\n ]);\n\n for (const calc of options.Calculations) {\n if (calc.Id) {\n const calculation = await getCalculation(calc.Id);\n\n if (calculation) {\n const projectCalc = await buildProjectCalculation(calculation);\n if (!projectCalc) continue;\n\n const sheetName = checkAndbuildSheetName(\n projectCalc.Name,\n wb.SheetNames\n );\n\n wb.Props = {\n Title: `${translate('reports.project-attachment-price-report')}`,\n CreatedDate: new Date(),\n };\n\n wb.SheetNames.push(sheetName);\n\n const offerData: (string | number)[][] = [];\n\n offerData.push([sheetName]);\n offerData.push(['']);\n\n await createHeaderXlsx(offerData);\n await createProjectInfoXlsx(offerData, true);\n\n let elements = projectCalc.BuildingElements.filter(\n ele => ele.IsAmountSet\n );\n\n if (elements) {\n offerData.push([\n `${translate('labels.zip')}`,\n `${translate('labels.description')}`,\n `${translate('labels.comments')}`,\n `${translate('labels.unit')}`,\n `${translate('labels.amount')}`,\n `${translate('labels.sum')}`,\n ]);\n let postnr = 1;\n elements = elements.sort((a, b) =>\n (a.SortOrder ?? -1) > (b.SortOrder ?? -1)\n ? 1\n : (b.SortOrder ?? -1) > (a.SortOrder ?? -1)\n ? -1\n : 0\n );\n\n elements.forEach(ele => {\n const row = [\n '',\n ele.Name ?? '',\n options.IncludeComments ? ele.Comments ?? '' : '',\n ele.Unit?.value ?? '',\n options.IncludeAmounts\n ? ele.Amount?.toLocaleString(defaultLocaleString, {\n maximumFractionDigits: 2,\n }) ?? ''\n : '',\n options.IncludeElementSums\n ? numberToAbsStringOrEmpty(ele.SumTotal.value, 2)\n : '',\n ];\n\n offerData.push(row);\n\n let filteredItems = ele.BuildingItems.filter(\n i => i.UnitPrice.value && i.UnitPrice.value > 0\n );\n\n filteredItems = filteredItems.sort((a, b) =>\n (a.BuildingElement?.SortOrder ?? -1) >\n (b.BuildingElement?.SortOrder ?? -1)\n ? 1\n : (b.BuildingElement?.SortOrder ?? -1) >\n (a.BuildingElement?.SortOrder ?? -1)\n ? -1\n : 0\n );\n\n if (options.IncludeBuildingItems) {\n filteredItems.forEach(item => {\n const row = [\n postnr++,\n `${item.Name ?? ''} ${\n item.PriceListItemName && options.ShowProductName\n ? `(${item.PriceListItemName})`\n : ''\n }`,\n options.IncludeComments ? item.Comments ?? '' : '',\n item.Unit ?? '',\n options.IncludeAmounts\n ? item.AmountCalculated.value?.toLocaleString(\n defaultLocaleString,\n {\n maximumFractionDigits: 2,\n }\n ) ?? ''\n : '',\n options.IncludeItemSums\n ? numberToAbsStringOrEmpty(\n item.SumTotalWithAdditions.value,\n 2\n )\n : '',\n ];\n\n offerData.push(row);\n });\n }\n });\n\n const MVA = 0.25;\n let sumExclMva = 0;\n let sumInclMva = 0;\n let MvaOnly = 0;\n\n elements.forEach(ele => {\n sumExclMva += ele.SumTotal.value ?? 0;\n });\n\n MvaOnly = sumExclMva * MVA;\n sumInclMva = sumExclMva + MvaOnly;\n\n totalData.push([\n projectCalc.Name,\n '',\n '',\n '',\n '',\n numberToAbsStringOrEmpty(sumExclMva, 2),\n ]);\n\n projectSumExclMva = projectSumExclMva + sumExclMva;\n\n const fillRow = ['', '', '', '', ''];\n const sumExclMvaRow = [\n '',\n '',\n '',\n '',\n `${translate('labels.sum-exclude-mva')}`,\n numberToAbsStringOrEmpty(sumExclMva, 2),\n ];\n const mvaRow = [\n '',\n '',\n '',\n '',\n `${translate('labels.sum-mva-only')}`,\n numberToAbsStringOrEmpty(MvaOnly, 2),\n ];\n const sumInclMvaRow = [\n '',\n '',\n '',\n '',\n `${translate('labels.sum-include-mva')}`,\n numberToAbsStringOrEmpty(sumInclMva, 2),\n ];\n\n offerData.push(fillRow);\n offerData.push(sumExclMvaRow);\n offerData.push(mvaRow);\n offerData.push(sumInclMvaRow);\n\n const ws = XLSX.utils.aoa_to_sheet(offerData);\n wb.Sheets[sheetName] = ws;\n }\n }\n }\n }\n\n projectMvaOnly = projectSumExclMva * MVA;\n projectSumInclMva = projectSumExclMva + projectMvaOnly;\n\n const fillRow = ['', '', '', '', ''];\n const sumExclMvaRow = [\n '',\n '',\n '',\n '',\n `${translate('labels.sum-exclude-mva')}`,\n numberToAbsStringOrEmpty(projectSumExclMva, 2),\n ];\n const mvaRow = [\n '',\n '',\n '',\n '',\n `${translate('labels.sum-mva-only')}`,\n numberToAbsStringOrEmpty(projectMvaOnly, 2),\n ];\n const sumInclMvaRow = [\n '',\n '',\n '',\n '',\n `${translate('labels.sum-include-mva')}`,\n numberToAbsStringOrEmpty(projectSumInclMva, 2),\n ];\n\n totalData.push(fillRow);\n totalData.push(sumExclMvaRow);\n totalData.push(mvaRow);\n totalData.push(sumInclMvaRow);\n\n const ws = XLSX.utils.aoa_to_sheet(totalData);\n wb.Sheets[sheetName] = ws;\n\n const wbout = XLSX.write(wb, { bookType: 'xlsx', type: 'binary' });\n downloadExcel(xlsxName, wbout);\n};\n\nexport const generateProjectAttachmentPriceReport = async (\n type: ReportType,\n options: ReportOptions\n) => {\n switch (options.FileType) {\n case ReportFileType.PDF:\n await generateProjectAttachmentPriceReportPDF(type, options);\n break;\n case ReportFileType.XLSX:\n await generateProjectAttachmentPriceReportEXCEL(type, options);\n break;\n default:\n break;\n }\n};\n","import { createReportName, downloadExcel } from '@/helpers/reports';\nimport { defaultLocaleString, translate } from '@/localization';\nimport jsPDF from 'jspdf';\nimport autoTable from 'jspdf-autotable';\nimport { ReportFileType, ReportType } from '@/models/report//enums';\nimport { createHeader, createHeaderXlsx } from '@/models/report/report-header';\nimport {\n createProjectInfo,\n createProjectInfoXlsx,\n} from '@/models/report/report-project-info';\nimport { useCalculation } from '@/modules/calculation';\nimport { ReportOptions } from '@/models/report/interfaces';\nimport XLSX from 'xlsx';\nimport {\n getNameByProfessionCode,\n numberToAbsStringOrEmpty,\n} from '@/helpers/common';\nimport {\n DEFAULT_TEXT_LARGE,\n DEFAULT_TEXT_MEDIUM,\n DEFAULT_TEXT_XMEDIUM,\n DEFAULT_TEXT_XSMALL,\n LARGE_TEXT_LARGE,\n LARGE_TEXT_MEDIUM,\n LARGE_TEXT_XMEDIUM,\n LARGE_TEXT_XSMALL,\n} from '@/constants/styles';\nimport { useReport } from '@/modules/report';\n\nexport const generateProjectBuildingElementsReportPDF = async (\n type: ReportType,\n options: ReportOptions\n) => {\n const { getCalculation, buildProjectCalculation } = useCalculation();\n\n if (options.Calculations.length === 0) return;\n\n const doc = new jsPDF('p', 'mm', [210, 297]);\n const pdfName = createReportName(type, ReportFileType.PDF, true);\n\n await createHeader(doc, options);\n await createProjectInfo(doc, false, options, true);\n\n const reportName = `${translate('reports.project-building-element-report')}`;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const first = (doc as any).autoTable.previous;\n doc.text(reportName, 14, first.finalY + 9);\n\n const totalData: (string | number)[][] = [];\n\n const MVA = 0.25;\n let projectSumExclMva = 0;\n let projectSumInclMva = 0;\n let projectMvaOnly = 0;\n\n let calculationCount = 0;\n for (const calc of options.Calculations) {\n if (calc.Id) {\n const calculation = await getCalculation(calc.Id);\n\n if (calculation) {\n const projectCalc = await buildProjectCalculation(calculation);\n if (!projectCalc || projectCalc.BuildingElements.length === 0) continue;\n calculationCount++;\n\n const head = [\n [\n translate('labels.zip'),\n translate('labels.production-line'),\n translate('labels.description'),\n translate('labels.unit'),\n translate('labels.amount'),\n translate('labels.unit-price'),\n translate('labels.sum'),\n ],\n ];\n\n const calcName = `${projectCalc.Name} - ${getNameByProfessionCode(\n projectCalc.Profession.Code\n )}`;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const first = (doc as any).autoTable.previous;\n\n autoTable(doc, {\n startY: calculationCount === 1 ? first.finalY + 14 : first.finalY + 6,\n head: [[calcName]],\n theme: 'plain',\n styles: {\n fontSize:\n options.FontSize === 'default'\n ? DEFAULT_TEXT_LARGE\n : LARGE_TEXT_LARGE,\n halign: 'left',\n },\n });\n\n const bEdata: (string | number)[][] = [];\n const buildingElementBreakPoints: Array = [];\n\n const elements = projectCalc.BuildingElements;\n let postnr = 1;\n\n if (!elements) return;\n\n elements.forEach(ele => {\n buildingElementBreakPoints.push(bEdata.length);\n const row = [\n !options.IncludeBuildingItems ? postnr++ : '',\n ele.ProductionLine ?? '',\n ele.Name ?? '',\n ele.Unit?.value ?? '',\n numberToAbsStringOrEmpty(ele.Amount, 2),\n numberToAbsStringOrEmpty(ele.UnitPrice?.value, 2),\n numberToAbsStringOrEmpty(ele.SumTotal.value, 2),\n ];\n bEdata.push(row);\n\n if (options.IncludeBuildingItems) {\n ele.BuildingItems.forEach(item => {\n const row = [\n postnr++,\n '',\n item.Name ?? '',\n item.Unit ?? '',\n numberToAbsStringOrEmpty(item.AmountCalculated.value, 2),\n numberToAbsStringOrEmpty(item.UnitPriceWithAdditions?.value, 2),\n numberToAbsStringOrEmpty(item.SumTotalWithAdditions.value, 2),\n ];\n bEdata.push(row);\n });\n }\n });\n\n const MVA = 0.25;\n let sumExclMva = 0;\n let sumInclMva = 0;\n let MvaOnly = 0;\n\n elements.forEach(ele => {\n sumExclMva += ele.SumTotal.value ?? 0;\n });\n\n MvaOnly = sumExclMva * MVA;\n sumInclMva = sumExclMva + MvaOnly;\n\n const sumExclMvaRow = [\n '',\n '',\n '',\n '',\n '',\n `${translate('labels.sum-exclude-mva')}`,\n numberToAbsStringOrEmpty(sumExclMva, 2),\n ];\n const mvaRow = [\n '',\n '',\n '',\n '',\n '',\n `${translate('labels.sum-mva-only')}`,\n numberToAbsStringOrEmpty(MvaOnly, 2),\n ];\n const sumInclMvaRow = [\n '',\n '',\n '',\n '',\n '',\n `${translate('labels.sum-include-mva')}`,\n numberToAbsStringOrEmpty(sumInclMva, 2),\n ];\n\n bEdata.push(['']);\n bEdata.push(sumExclMvaRow);\n bEdata.push(mvaRow);\n bEdata.push(sumInclMvaRow);\n\n projectSumExclMva = projectSumExclMva + sumExclMva;\n\n const calcTotalRow = [\n calcName,\n '',\n '',\n '',\n '',\n '',\n numberToAbsStringOrEmpty(sumExclMva, 2),\n ];\n\n totalData.push(calcTotalRow);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const second = (doc as any).autoTable.previous;\n autoTable(doc, {\n startY: second.finalY,\n head: [\n [\n options.IncludeBuildingItems\n ? `${translate('reports.building-elements-include-bi-report')}`\n : `${translate('reports.building-elements-report')}`,\n ],\n ],\n theme: 'plain',\n styles: {\n fontSize:\n options.FontSize === 'default'\n ? DEFAULT_TEXT_XMEDIUM\n : LARGE_TEXT_XMEDIUM,\n fontStyle: 'italic',\n halign: 'left',\n },\n });\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const third = (doc as any).autoTable.previous;\n\n autoTable(doc, {\n startY: third.finalY + 2,\n head: head,\n body: bEdata,\n showHead: 'firstPage',\n headStyles: { fillColor: '#263238' },\n styles: {\n fontSize:\n options.FontSize === 'default'\n ? DEFAULT_TEXT_XSMALL\n : LARGE_TEXT_XSMALL,\n },\n didParseCell(data) {\n if (\n buildingElementBreakPoints.includes(data.row.index) &&\n data.section === 'body' &&\n options.IncludeBuildingItems\n ) {\n data.cell.styles.fontStyle = 'bold';\n data.cell.styles.fillColor = '#d6d8da';\n } else if (\n (data.section === 'body' &&\n data.row.index === bEdata.length - 1) ||\n data.row.index === bEdata.length - 2 ||\n data.row.index === bEdata.length - 3\n ) {\n data.row.cells[0].styles.fillColor = 'white';\n data.row.cells[1].styles.fillColor = 'white';\n data.row.cells[2].styles.fillColor = 'white';\n data.row.cells[3].styles.fillColor = 'white';\n data.row.cells[4].styles.fillColor = 'white';\n\n data.row.cells[5].styles.fontStyle = 'bold';\n data.row.cells[5].styles.cellPadding = 0.7;\n data.row.cells[5].styles.fillColor = '#f7f7f7';\n\n data.row.cells[6].styles.fontStyle = 'bold';\n data.row.cells[6].styles.cellPadding = 0.7;\n data.row.cells[6].styles.fillColor = '#f7f7f7';\n } else if (\n data.section === 'body' &&\n options.IncludeBuildingItems\n ) {\n data.cell.styles.fillColor = 'white';\n }\n },\n columnStyles: {\n 0: {\n valign: 'middle',\n },\n 1: {\n valign: 'middle',\n },\n 2: {\n valign: 'middle',\n },\n 3: {\n valign: 'middle',\n },\n 4: {\n valign: 'middle',\n },\n 5: {\n valign: 'middle',\n halign: 'right',\n cellWidth: 20,\n },\n 6: {\n valign: 'middle',\n halign: 'right',\n cellWidth: 20,\n },\n },\n });\n }\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const totalPos = (doc as any).autoTable.previous;\n\n autoTable(doc, {\n startY: calculationCount === 1 ? totalPos.finalY + 14 : totalPos.finalY + 6,\n head: [['Total']],\n theme: 'plain',\n styles: {\n fontSize:\n options.FontSize === 'default' ? DEFAULT_TEXT_LARGE : LARGE_TEXT_LARGE,\n halign: 'left',\n },\n });\n\n projectMvaOnly = projectSumExclMva * MVA;\n projectSumInclMva = projectSumExclMva + projectMvaOnly;\n\n const fillRow = ['', '', '', '', ''];\n const sumExclMvaRow = [\n '',\n '',\n '',\n '',\n '',\n `${translate('labels.sum-exclude-mva')}`,\n numberToAbsStringOrEmpty(projectSumExclMva, 2),\n ];\n const mvaRow = [\n '',\n '',\n '',\n '',\n '',\n `${translate('labels.sum-mva-only')}`,\n numberToAbsStringOrEmpty(projectMvaOnly, 2),\n ];\n const sumInclMvaRow = [\n '',\n '',\n '',\n '',\n '',\n `${translate('labels.sum-include-mva')}`,\n numberToAbsStringOrEmpty(projectSumInclMva, 2),\n ];\n\n totalData.push(fillRow);\n totalData.push(sumExclMvaRow);\n totalData.push(mvaRow);\n totalData.push(sumInclMvaRow);\n\n const totalHead = [\n [translate('labels.projects'), '', '', '', '', '', translate('labels.sum')],\n ];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const totalTablePos = (doc as any).autoTable.previous;\n\n autoTable(doc, {\n startY: totalTablePos.finalY + 2,\n head: totalHead,\n body: totalData,\n showHead: 'firstPage',\n headStyles: { fillColor: '#263238' },\n styles: {\n fontSize:\n options.FontSize === 'default'\n ? DEFAULT_TEXT_XSMALL\n : LARGE_TEXT_XSMALL,\n },\n didParseCell(data) {\n if (\n (data.section === 'body' && data.row.index === totalData.length - 1) ||\n data.row.index === totalData.length - 2 ||\n data.row.index === totalData.length - 3\n ) {\n data.row.cells[0].styles.fillColor = 'white';\n data.row.cells[1].styles.fillColor = 'white';\n data.row.cells[2].styles.fillColor = 'white';\n data.row.cells[3].styles.fillColor = 'white';\n data.row.cells[4].styles.fillColor = 'white';\n\n data.row.cells[5].styles.fontStyle = 'bold';\n data.row.cells[5].styles.cellPadding = 0.7;\n data.row.cells[5].styles.fillColor = '#f7f7f7';\n\n data.row.cells[6].styles.fontStyle = 'bold';\n data.row.cells[6].styles.cellPadding = 0.7;\n data.row.cells[6].styles.fillColor = '#f7f7f7';\n } else if (data.section === 'body') {\n data.cell.styles.fillColor = 'white';\n }\n },\n columnStyles: {\n 0: {\n valign: 'middle',\n },\n 1: {\n valign: 'middle',\n },\n 2: {\n valign: 'middle',\n },\n 3: {\n valign: 'middle',\n },\n 4: {\n valign: 'middle',\n },\n 5: {\n valign: 'middle',\n halign: 'right',\n cellWidth: 20,\n },\n 6: {\n valign: 'middle',\n halign: 'right',\n cellWidth: 20,\n },\n },\n });\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const pages = (doc.internal as any).getNumberOfPages();\n const pageWidth = doc.internal.pageSize.width; //Optional\n const pageHeight = doc.internal.pageSize.height; //Optional\n doc.setFontSize(\n options.FontSize === 'default' ? DEFAULT_TEXT_MEDIUM : LARGE_TEXT_MEDIUM\n ); //Optional\n\n for (let j = 1; j < pages + 1; j++) {\n const horizontalPos = pageWidth / 2;\n const verticalPos = pageHeight - 10;\n doc.setPage(j);\n doc.text(\n `${j} ${translate('common.by')} ${pages}`,\n horizontalPos,\n verticalPos,\n {\n align: 'center',\n }\n );\n\n const currentDate = new Date();\n const createdAt = `${currentDate.toLocaleString(defaultLocaleString)}`;\n\n doc.text(createdAt, 10, verticalPos, {\n align: 'left',\n });\n }\n\n await doc.save(pdfName);\n};\n\nexport const generateProjectBuildingElementsReportEXCEL = async (\n type: ReportType,\n options: ReportOptions\n) => {\n const { getCalculation, buildProjectCalculation } = useCalculation();\n const { checkAndbuildSheetName } = useReport();\n\n if (options.Calculations.length === 0) return;\n\n const wb = XLSX.utils.book_new();\n const xlsxName = createReportName(type, ReportFileType.XLSX, true);\n\n for (const calc of options.Calculations) {\n if (calc.Id) {\n const calculation = await getCalculation(calc.Id);\n\n if (calculation) {\n const projectCalc = await buildProjectCalculation(calculation);\n if (!projectCalc) continue;\n\n const sheetName = checkAndbuildSheetName(\n projectCalc.Name,\n wb.SheetNames\n );\n\n wb.Props = {\n Title: `${translate('reports.project-building-element-report')}`,\n CreatedDate: new Date(),\n };\n\n wb.SheetNames.push(sheetName);\n\n const bEdata: (string | number)[][] = [];\n\n bEdata.push([sheetName]);\n bEdata.push(['']);\n\n await createHeaderXlsx(bEdata);\n await createProjectInfoXlsx(bEdata);\n\n let elements = projectCalc.BuildingElements.filter(\n ele => ele.IsAmountSet\n );\n\n if (elements) {\n bEdata.push([\n `${translate('labels.zip')}`,\n `${translate('labels.production-line')}`,\n `${translate('labels.description')}`,\n `${translate('labels.unit')}`,\n `${translate('labels.amount')}`,\n `${translate('labels.unit-price')}`,\n `${translate('labels.sum')}`,\n ]);\n let postnr = 1;\n elements = elements.sort((a, b) =>\n (a.SortOrder ?? -1) > (b.SortOrder ?? -1)\n ? 1\n : (b.SortOrder ?? -1) > (a.SortOrder ?? -1)\n ? -1\n : 0\n );\n\n elements.forEach(ele => {\n const row = [\n !options.IncludeBuildingItems ? postnr++ : '',\n ele.ProductionLine ?? '',\n ele.Name ?? '',\n ele.Unit?.value ?? '',\n numberToAbsStringOrEmpty(ele.Amount, 2),\n numberToAbsStringOrEmpty(ele.UnitPrice?.value, 2),\n numberToAbsStringOrEmpty(ele.SumTotal.value, 2),\n ];\n bEdata.push(row);\n\n if (options.IncludeBuildingItems) {\n ele.BuildingItems.forEach(item => {\n const row = [\n postnr++,\n '',\n item.Name ?? '',\n item.Unit ?? '',\n numberToAbsStringOrEmpty(item.AmountCalculated.value, 2),\n numberToAbsStringOrEmpty(\n item.UnitPriceWithAdditions.value,\n 2\n ),\n numberToAbsStringOrEmpty(item.SumTotalWithAdditions.value, 2),\n ];\n bEdata.push(row);\n });\n }\n });\n\n const MVA = 0.25;\n let sumExclMva = 0;\n let sumInclMva = 0;\n let MvaOnly = 0;\n\n elements.forEach(ele => {\n sumExclMva += ele.SumTotal.value ?? 0;\n });\n\n MvaOnly = sumExclMva * MVA;\n sumInclMva = sumExclMva + MvaOnly;\n\n const sumExclMvaRow = [\n '',\n '',\n '',\n '',\n '',\n `${translate('labels.sum-exclude-mva')}`,\n numberToAbsStringOrEmpty(sumExclMva, 2),\n ];\n const mvaRow = [\n '',\n '',\n '',\n '',\n '',\n `${translate('labels.sum-mva-only')}`,\n numberToAbsStringOrEmpty(MvaOnly, 2),\n ];\n const sumInclMvaRow = [\n '',\n '',\n '',\n '',\n '',\n `${translate('labels.sum-include-mva')}`,\n numberToAbsStringOrEmpty(sumInclMva, 2),\n ];\n\n bEdata.push(['']);\n bEdata.push(sumExclMvaRow);\n bEdata.push(mvaRow);\n bEdata.push(sumInclMvaRow);\n\n const ws = XLSX.utils.aoa_to_sheet(bEdata);\n wb.Sheets[sheetName] = ws;\n }\n }\n }\n }\n const wbout = XLSX.write(wb, { bookType: 'xlsx', type: 'binary' });\n downloadExcel(xlsxName, wbout);\n};\n\nexport const generateProjectBuildingElementsReport = async (\n type: ReportType,\n options: ReportOptions\n) => {\n switch (options.FileType) {\n case ReportFileType.PDF:\n await generateProjectBuildingElementsReportPDF(type, options);\n break;\n case ReportFileType.XLSX:\n await generateProjectBuildingElementsReportEXCEL(type, options);\n break;\n default:\n break;\n }\n};\n","import { createReportName, downloadExcel } from '@/helpers/reports';\nimport { defaultLocaleString, translate } from '@/localization';\nimport jsPDF from 'jspdf';\nimport autoTable from 'jspdf-autotable';\nimport { ReportFileType, ReportType } from '@/models/report//enums';\nimport { createHeader, createHeaderXlsx } from '@/models/report/report-header';\nimport {\n createProjectInfo,\n createProjectInfoXlsx,\n} from '@/models/report/report-project-info';\nimport { useCalculation } from '@/modules/calculation';\nimport { ReportOptions } from '@/models/report/interfaces';\nimport XLSX from 'xlsx';\nimport {\n getNameByProfessionCode,\n numberToAbsStringOrEmpty,\n} from '@/helpers/common';\nimport { useProject } from '@/modules/project';\nimport {\n DEFAULT_TEXT_LARGE,\n DEFAULT_TEXT_MEDIUM,\n DEFAULT_TEXT_MINI,\n LARGE_TEXT_LARGE,\n LARGE_TEXT_MEDIUM,\n LARGE_TEXT_MINI,\n} from '@/constants/styles';\nimport { useReport } from '@/modules/report';\n\nexport const generateProjectMainSumsReportPDF = async (\n type: ReportType,\n options: ReportOptions\n) => {\n const { getCalculation, buildProjectCalculation } = useCalculation();\n const { activeProjectOverview } = useProject();\n\n if (options.Calculations.length === 0) return;\n\n const doc = new jsPDF('p', 'mm', [210, 297]);\n const pdfName = createReportName(type, ReportFileType.PDF, true);\n\n await createHeader(doc, options);\n await createProjectInfo(doc, false, options, true);\n\n const reportName = `${translate('reports.project-main-sums-report')}`;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const first = (doc as any).autoTable.previous;\n doc.text(reportName, 14, first.finalY + 9);\n\n const projectSummaryData: (string | number)[][] = [];\n let projectSumTime = 0;\n let projectSumSelfCostSalaryAndExpenses = 0;\n let projectSumSelfCostMaterialsSubContractors = 0;\n let projectFactor4 = 0;\n let projectSumSelfCost = 0;\n let projectSumProfit = 0;\n let projectSumTotal = 0;\n\n let calculationCount = 0;\n for (const calc of options.Calculations) {\n if (calc.Id) {\n const calculation = await getCalculation(calc.Id);\n\n if (calculation) {\n const projectCalc = await buildProjectCalculation(calculation);\n if (!projectCalc || projectCalc.BuildingElements.length === 0) continue;\n calculationCount++;\n\n const head = [\n [\n translate('labels.description'),\n translate('labels.amount'),\n translate('labels.unit'),\n translate('labels.time-per-unit'),\n translate('labels.hours'),\n translate('labels.sum-selfcost-salary-and-expenses'),\n translate('labels.sum-selfcost-mat-and-sub'),\n translate('labels.factor4'),\n translate('labels.selfcost'),\n translate('labels.profit'),\n translate('labels.total'),\n ],\n ];\n\n const calcName = `${projectCalc.Name} - ${getNameByProfessionCode(\n projectCalc.Profession.Code\n )}`;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const first = (doc as any).autoTable.previous;\n\n autoTable(doc, {\n startY: calculationCount === 1 ? first.finalY + 14 : first.finalY + 6,\n head: [[calcName]],\n theme: 'plain',\n styles: {\n fontSize:\n options.FontSize === 'default'\n ? DEFAULT_TEXT_LARGE\n : LARGE_TEXT_LARGE,\n halign: 'left',\n },\n });\n\n const bEdata: (string | number)[][] = [];\n const buildingElementBreakPoints: Array = [];\n\n const elements = projectCalc.BuildingElements;\n\n if (!elements) return;\n\n elements.forEach(ele => {\n buildingElementBreakPoints.push(bEdata.length);\n const row = [\n ele.Name ?? '',\n numberToAbsStringOrEmpty(ele.Amount, 2),\n ele.Unit?.value ?? '',\n numberToAbsStringOrEmpty(ele.TimePrUnit.value, 2),\n numberToAbsStringOrEmpty(ele.SumTime.value, 2),\n numberToAbsStringOrEmpty(ele.SumSelfCostSalaryAndExpenses.value, 2),\n numberToAbsStringOrEmpty(\n ele.SumSelfCostMaterialsSubContractors.value,\n 2\n ),\n numberToAbsStringOrEmpty(ele.Factor4.value, 2),\n numberToAbsStringOrEmpty(ele.SumSelfCost.value, 2),\n numberToAbsStringOrEmpty(ele.SumProfit.value, 2),\n numberToAbsStringOrEmpty(ele.SumTotal.value, 2),\n ];\n bEdata.push(row);\n\n if (options.IncludeBuildingItems) {\n ele.BuildingItems.forEach(item => {\n const row = [\n item.Name ?? '',\n numberToAbsStringOrEmpty(item.Amount, 2),\n item.Unit ?? '',\n numberToAbsStringOrEmpty(item.TimePrUnit.value, 2),\n numberToAbsStringOrEmpty(item.SumTime.value, 2),\n numberToAbsStringOrEmpty(\n item.SumSelfCostSalaryAndExpenses.value,\n 2\n ),\n numberToAbsStringOrEmpty(\n item.SumSelfCostMaterialsSubContractors.value,\n 2\n ),\n numberToAbsStringOrEmpty(item.Factor4.value, 2),\n numberToAbsStringOrEmpty(item.SumSelfCost.value, 2),\n numberToAbsStringOrEmpty(item.SumProfit.value, 2),\n numberToAbsStringOrEmpty(item.SumTotalWithAdditions.value, 2),\n ];\n bEdata.push(row);\n });\n }\n });\n\n projectSumTime += elements.reduce((prev, cur) => {\n return prev + (cur.SumTime.value ?? 0);\n }, 0);\n projectSumSelfCostSalaryAndExpenses += elements.reduce((prev, cur) => {\n return prev + (cur.SumSelfCostSalaryAndExpenses.value ?? 0);\n }, 0);\n projectSumSelfCostMaterialsSubContractors += elements.reduce(\n (prev, cur) => {\n return prev + (cur.SumSelfCostMaterialsSubContractors.value ?? 0);\n },\n 0\n );\n projectFactor4 += elements.reduce((prev, cur) => {\n return prev + (cur.Factor4.value ?? 0);\n }, 0);\n projectSumSelfCost += elements.reduce((prev, cur) => {\n return prev + (cur.SumSelfCost.value ?? 0);\n }, 0);\n projectSumProfit += elements.reduce((prev, cur) => {\n return prev + (cur.SumProfit.value ?? 0);\n }, 0);\n projectSumTotal += elements.reduce((prev, cur) => {\n return prev + (cur.SumTotal.value ?? 0);\n }, 0);\n\n const lastRow = [\n projectCalc.Name,\n '',\n '',\n '',\n numberToAbsStringOrEmpty(\n elements.reduce((prev, cur) => {\n return prev + (cur.SumTime.value ?? 0);\n }, 0),\n 2\n ),\n numberToAbsStringOrEmpty(\n elements.reduce((prev, cur) => {\n return prev + (cur.SumSelfCostSalaryAndExpenses.value ?? 0);\n }, 0),\n 2\n ),\n numberToAbsStringOrEmpty(\n elements.reduce((prev, cur) => {\n return prev + (cur.SumSelfCostMaterialsSubContractors.value ?? 0);\n }, 0),\n 2\n ),\n numberToAbsStringOrEmpty(\n elements.reduce((prev, cur) => {\n return prev + (cur.Factor4.value ?? 0);\n }, 0),\n 2\n ),\n numberToAbsStringOrEmpty(\n elements.reduce((prev, cur) => {\n return prev + (cur.SumSelfCost.value ?? 0);\n }, 0),\n 2\n ),\n numberToAbsStringOrEmpty(\n elements.reduce((prev, cur) => {\n return prev + (cur.SumProfit.value ?? 0);\n }, 0),\n 2\n ),\n numberToAbsStringOrEmpty(\n elements.reduce((prev, cur) => {\n return prev + (cur.SumTotal.value ?? 0);\n }, 0),\n 2\n ),\n ];\n\n bEdata.push(lastRow);\n projectSummaryData.push(lastRow);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const second = (doc as any).autoTable.previous;\n\n autoTable(doc, {\n startY: second.finalY + 3,\n head: head,\n body: bEdata,\n showHead: 'firstPage',\n headStyles: {\n fillColor: '#263238',\n fontSize:\n options.FontSize === 'default'\n ? DEFAULT_TEXT_MINI\n : LARGE_TEXT_MINI,\n valign: 'middle',\n overflow: 'linebreak',\n },\n styles: {\n fontSize:\n options.FontSize === 'default'\n ? DEFAULT_TEXT_MINI\n : LARGE_TEXT_MINI,\n },\n didParseCell(data) {\n if (\n buildingElementBreakPoints.includes(data.row.index) &&\n data.section === 'body' &&\n options.IncludeBuildingItems\n ) {\n data.cell.styles.fontStyle = 'bold';\n data.cell.styles.fillColor = '#d6d8da';\n } else if (\n data.section === 'body' &&\n data.row.index === bEdata.length - 1\n ) {\n data.cell.styles.fillColor = 'white';\n data.cell.styles.fontStyle = 'bold';\n } else if (\n data.section === 'body' &&\n options.IncludeBuildingItems\n ) {\n data.cell.styles.fillColor = 'white';\n }\n },\n columnStyles: {\n 0: {\n valign: 'middle',\n cellWidth: 30,\n },\n 1: {\n valign: 'middle',\n },\n 2: {\n valign: 'middle',\n },\n 3: {\n valign: 'middle',\n halign: 'right',\n },\n 4: {\n valign: 'middle',\n halign: 'right',\n },\n 5: {\n valign: 'middle',\n halign: 'right',\n cellWidth: 15,\n },\n 6: {\n valign: 'middle',\n halign: 'right',\n cellWidth: 15,\n },\n 7: {\n valign: 'middle',\n halign: 'right',\n cellWidth: 15,\n },\n 8: {\n valign: 'middle',\n halign: 'right',\n },\n 9: {\n valign: 'middle',\n halign: 'right',\n },\n 10: {\n valign: 'middle',\n halign: 'right',\n },\n },\n });\n }\n }\n }\n\n if (activeProjectOverview.value) {\n const head = [\n [\n translate('labels.description'),\n translate('labels.amount'),\n translate('labels.unit'),\n translate('labels.time-per-unit'),\n translate('labels.hours'),\n translate('labels.sum-selfcost-salary-and-expenses'),\n translate('labels.sum-selfcost-mat-and-sub'),\n translate('labels.factor4'),\n translate('labels.selfcost'),\n translate('labels.profit'),\n translate('labels.total'),\n ],\n ];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const first = (doc as any).autoTable.previous;\n\n autoTable(doc, {\n startY: first.finalY + 6,\n head: [[`Total (${activeProjectOverview.value.Name})`]],\n theme: 'plain',\n styles: {\n fontSize:\n options.FontSize === 'default'\n ? DEFAULT_TEXT_LARGE\n : LARGE_TEXT_LARGE,\n halign: 'left',\n },\n });\n\n const lastRow = [\n '',\n '',\n '',\n '',\n numberToAbsStringOrEmpty(projectSumTime, 2),\n numberToAbsStringOrEmpty(projectSumSelfCostSalaryAndExpenses, 2),\n numberToAbsStringOrEmpty(projectSumSelfCostMaterialsSubContractors, 2),\n numberToAbsStringOrEmpty(projectFactor4, 2),\n numberToAbsStringOrEmpty(projectSumSelfCost, 2),\n numberToAbsStringOrEmpty(projectSumProfit, 2),\n numberToAbsStringOrEmpty(projectSumTotal, 2),\n ];\n\n projectSummaryData.push(lastRow);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const second = (doc as any).autoTable.previous;\n\n autoTable(doc, {\n startY: second.finalY + 3,\n head: head,\n body: projectSummaryData,\n showHead: 'firstPage',\n headStyles: {\n fillColor: '#263238',\n fontSize:\n options.FontSize === 'default' ? DEFAULT_TEXT_MINI : LARGE_TEXT_MINI,\n valign: 'middle',\n overflow: 'linebreak',\n },\n didParseCell(data) {\n if (\n data.section === 'body' &&\n data.row.index === projectSummaryData.length - 1\n ) {\n data.cell.styles.fillColor = 'white';\n data.cell.styles.fontStyle = 'bold';\n }\n },\n styles: {\n fontSize:\n options.FontSize === 'default' ? DEFAULT_TEXT_MINI : LARGE_TEXT_MINI,\n },\n columnStyles: {\n 0: {\n valign: 'middle',\n cellWidth: 30,\n },\n 1: {\n valign: 'middle',\n },\n 2: {\n valign: 'middle',\n },\n 3: {\n valign: 'middle',\n halign: 'right',\n },\n 4: {\n valign: 'middle',\n halign: 'right',\n },\n 5: {\n valign: 'middle',\n halign: 'right',\n cellWidth: 15,\n },\n 6: {\n valign: 'middle',\n halign: 'right',\n cellWidth: 15,\n },\n 7: {\n valign: 'middle',\n halign: 'right',\n cellWidth: 15,\n },\n 8: {\n valign: 'middle',\n halign: 'right',\n },\n 9: {\n valign: 'middle',\n halign: 'right',\n },\n 10: {\n valign: 'middle',\n halign: 'right',\n },\n },\n });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const pages = (doc.internal as any).getNumberOfPages();\n const pageWidth = doc.internal.pageSize.width; //Optional\n const pageHeight = doc.internal.pageSize.height; //Optional\n doc.setFontSize(\n options.FontSize === 'default' ? DEFAULT_TEXT_MEDIUM : LARGE_TEXT_MEDIUM\n ); //Optional\n\n for (let j = 1; j < pages + 1; j++) {\n const horizontalPos = pageWidth / 2;\n const verticalPos = pageHeight - 10;\n doc.setPage(j);\n doc.text(\n `${j} ${translate('common.by')} ${pages}`,\n horizontalPos,\n verticalPos,\n {\n align: 'center',\n }\n );\n\n const currentDate = new Date();\n const createdAt = `${currentDate.toLocaleString(defaultLocaleString)}`;\n\n doc.text(createdAt, 10, verticalPos, {\n align: 'left',\n });\n }\n\n await doc.save(pdfName);\n};\n\nexport const generateProjectMainSumsReportEXCEL = async (\n type: ReportType,\n options: ReportOptions\n) => {\n const { getCalculation, buildProjectCalculation } = useCalculation();\n const { activeProjectOverview } = useProject();\n const { checkAndbuildSheetName } = useReport();\n\n if (options.Calculations.length === 0) return;\n\n const wb = XLSX.utils.book_new();\n const xlsxName = createReportName(type, ReportFileType.XLSX, true);\n\n const projectSummaryData: (string | number)[][] = [];\n let projectSumTime = 0;\n let projectSumSelfCostSalaryAndExpenses = 0;\n let projectSumSelfCostMaterialsSubContractors = 0;\n let projectFactor4 = 0;\n let projectSumSelfCost = 0;\n let projectSumProfit = 0;\n let projectSumTotal = 0;\n\n projectSummaryData.push([activeProjectOverview.value?.Name ?? '']);\n projectSummaryData.push(['']);\n\n await createHeaderXlsx(projectSummaryData);\n await createProjectInfoXlsx(projectSummaryData);\n\n projectSummaryData.push([\n `${translate('labels.description')}`,\n `${translate('labels.amount')}`,\n `${translate('labels.unit')}`,\n `${translate('labels.time-per-unit')}`,\n `${translate('labels.hours')}`,\n `${translate('labels.sum-selfcost-salary-and-expenses')}`,\n `${translate('labels.sum-selfcost-mat-and-sub')}`,\n `${translate('labels.factor4')}`,\n `${translate('labels.selfcost')}`,\n `${translate('labels.profit')}`,\n `${translate('labels.total')}`,\n ]);\n\n for (const calc of options.Calculations) {\n if (calc.Id) {\n const calculation = await getCalculation(calc.Id);\n\n if (calculation) {\n const projectCalc = await buildProjectCalculation(calculation);\n if (!projectCalc) continue;\n\n const sheetName = checkAndbuildSheetName(\n projectCalc.Name,\n wb.SheetNames\n );\n\n wb.Props = {\n Title: `${translate('reports.reports.project-main-sums-report')}`,\n CreatedDate: new Date(),\n };\n\n wb.SheetNames.push(sheetName);\n\n const bEdata: (string | number)[][] = [];\n\n bEdata.push([sheetName]);\n bEdata.push(['']);\n\n await createHeaderXlsx(bEdata);\n await createProjectInfoXlsx(bEdata);\n\n const elements = projectCalc.BuildingElements;\n\n if (!elements) return;\n\n bEdata.push([\n `${translate('labels.description')}`,\n `${translate('labels.amount')}`,\n `${translate('labels.unit')}`,\n `${translate('labels.time-per-unit')}`,\n `${translate('labels.hours')}`,\n `${translate('labels.sum-selfcost-salary-and-expenses')}`,\n `${translate('labels.sum-selfcost-mat-and-sub')}`,\n `${translate('labels.factor4')}`,\n `${translate('labels.selfcost')}`,\n `${translate('labels.profit')}`,\n `${translate('labels.total')}`,\n ]);\n\n elements.forEach(ele => {\n const row = [\n ele.Name ?? '',\n numberToAbsStringOrEmpty(ele.Amount, 2),\n ele.Unit?.value ?? '',\n numberToAbsStringOrEmpty(ele.TimePrUnit.value, 2),\n numberToAbsStringOrEmpty(ele.SumTime.value, 2),\n numberToAbsStringOrEmpty(ele.SumSelfCostSalaryAndExpenses.value, 2),\n numberToAbsStringOrEmpty(\n ele.SumSelfCostMaterialsSubContractors.value,\n 2\n ),\n numberToAbsStringOrEmpty(ele.Factor4.value, 2),\n numberToAbsStringOrEmpty(ele.SumSelfCost.value, 2),\n numberToAbsStringOrEmpty(ele.SumProfit.value, 2),\n numberToAbsStringOrEmpty(ele.SumTotal.value, 2),\n ];\n bEdata.push(row);\n\n if (options.IncludeBuildingItems) {\n ele.BuildingItems.forEach(item => {\n const row = [\n item.Name ?? '',\n numberToAbsStringOrEmpty(item.Amount, 2),\n item.Unit ?? '',\n numberToAbsStringOrEmpty(item.TimePrUnit.value, 2),\n numberToAbsStringOrEmpty(item.SumTime.value, 2),\n numberToAbsStringOrEmpty(\n item.SumSelfCostSalaryAndExpenses.value,\n 2\n ),\n numberToAbsStringOrEmpty(\n item.SumSelfCostMaterialsSubContractors.value,\n 2\n ),\n numberToAbsStringOrEmpty(item.Factor4.value, 2),\n numberToAbsStringOrEmpty(item.SumSelfCost.value, 2),\n numberToAbsStringOrEmpty(item.SumProfit.value, 2),\n numberToAbsStringOrEmpty(item.SumTotalWithAdditions.value, 2),\n ];\n bEdata.push(row);\n });\n }\n });\n\n projectSumTime += elements.reduce((prev, cur) => {\n return prev + (cur.SumTime.value ?? 0);\n }, 0);\n projectSumSelfCostSalaryAndExpenses += elements.reduce((prev, cur) => {\n return prev + (cur.SumSelfCostSalaryAndExpenses.value ?? 0);\n }, 0);\n projectSumSelfCostMaterialsSubContractors += elements.reduce(\n (prev, cur) => {\n return prev + (cur.SumSelfCostMaterialsSubContractors.value ?? 0);\n },\n 0\n );\n projectFactor4 += elements.reduce((prev, cur) => {\n return prev + (cur.Factor4.value ?? 0);\n }, 0);\n projectSumSelfCost += elements.reduce((prev, cur) => {\n return prev + (cur.SumSelfCost.value ?? 0);\n }, 0);\n projectSumProfit += elements.reduce((prev, cur) => {\n return prev + (cur.SumProfit.value ?? 0);\n }, 0);\n projectSumTotal += elements.reduce((prev, cur) => {\n return prev + (cur.SumTotal.value ?? 0);\n }, 0);\n\n const lastRow = [\n projectCalc.Name,\n '',\n '',\n '',\n numberToAbsStringOrEmpty(\n elements.reduce((prev, cur) => {\n return prev + (cur.SumTime.value ?? 0);\n }, 0),\n 2\n ),\n numberToAbsStringOrEmpty(\n elements.reduce((prev, cur) => {\n return prev + (cur.SumSelfCostSalaryAndExpenses.value ?? 0);\n }, 0),\n 2\n ),\n numberToAbsStringOrEmpty(\n elements.reduce((prev, cur) => {\n return prev + (cur.SumSelfCostMaterialsSubContractors.value ?? 0);\n }, 0),\n 2\n ),\n numberToAbsStringOrEmpty(\n elements.reduce((prev, cur) => {\n return prev + (cur.Factor4.value ?? 0);\n }, 0),\n 2\n ),\n numberToAbsStringOrEmpty(\n elements.reduce((prev, cur) => {\n return prev + (cur.SumSelfCost.value ?? 0);\n }, 0),\n 2\n ),\n numberToAbsStringOrEmpty(\n elements.reduce((prev, cur) => {\n return prev + (cur.SumProfit.value ?? 0);\n }, 0),\n 2\n ),\n numberToAbsStringOrEmpty(\n elements.reduce((prev, cur) => {\n return prev + (cur.SumTotal.value ?? 0);\n }, 0),\n 2\n ),\n ];\n\n bEdata.push(lastRow);\n projectSummaryData.push(lastRow);\n\n const ws = XLSX.utils.aoa_to_sheet(bEdata);\n wb.Sheets[sheetName] = ws;\n }\n }\n }\n\n if (activeProjectOverview.value) {\n const lastRow = [\n '',\n '',\n '',\n '',\n numberToAbsStringOrEmpty(projectSumTime, 2),\n numberToAbsStringOrEmpty(projectSumSelfCostSalaryAndExpenses, 2),\n numberToAbsStringOrEmpty(projectSumSelfCostMaterialsSubContractors, 2),\n numberToAbsStringOrEmpty(projectFactor4, 2),\n numberToAbsStringOrEmpty(projectSumSelfCost, 2),\n numberToAbsStringOrEmpty(projectSumProfit, 2),\n numberToAbsStringOrEmpty(projectSumTotal, 2),\n ];\n\n projectSummaryData.push(lastRow);\n\n const projectName = checkAndbuildSheetName(\n activeProjectOverview.value.Name,\n wb.SheetNames\n );\n wb.SheetNames.push(projectName);\n\n const ws = XLSX.utils.aoa_to_sheet(projectSummaryData);\n wb.Sheets[projectName] = ws;\n }\n const wbout = XLSX.write(wb, { bookType: 'xlsx', type: 'binary' });\n downloadExcel(xlsxName, wbout);\n};\n\nexport const generateProjectMainSumsReport = async (\n type: ReportType,\n options: ReportOptions\n) => {\n switch (options.FileType) {\n case ReportFileType.PDF:\n await generateProjectMainSumsReportPDF(type, options);\n break;\n case ReportFileType.XLSX:\n await generateProjectMainSumsReportEXCEL(type, options);\n break;\n default:\n break;\n }\n};\n","import { areUnitsEqual, unitDescriptionConverter } from '@/helpers/common';\nimport { BuildingElementCalculation } from '@/models/building-element/interfaces';\nimport {\n EPDPropertyGUIDS,\n Environment,\n Epd,\n NobbItem,\n} from '@/models/nobb/interfaces';\n\nexport const useEnvironment = () => {\n const tryGetEpdReferenceUnit = (epd: Array): string | undefined => {\n return epd.find(epd => epd.propertyGuid === EPDPropertyGUIDS.ReferenceUnit)\n ?.value;\n };\n\n const tryGetEpdA1A3GWPIOBCUnit = (epd: Array): string | undefined => {\n return epd.find(epd => epd.propertyGuid === EPDPropertyGUIDS.A1A3_GWP_IOBC)\n ?.unit;\n };\n\n const tryGetEpdA1A3GWPIOBCNumber = (epd: Array): number | undefined => {\n const a1A3 = epd.find(\n epd => epd.propertyGuid === EPDPropertyGUIDS.A1A3_GWP_IOBC\n )?.value;\n if (a1A3) {\n return Number(a1A3);\n }\n };\n\n const tryGetEpdA1A3Number = (epd: Array): number | undefined => {\n const a1A3 = epd.find(epd => epd.propertyGuid === EPDPropertyGUIDS.A1A3_GWP)\n ?.value;\n if (a1A3) {\n return Number(a1A3);\n }\n };\n\n const tryGetEpdA1A3Unit = (epd: Array): string | undefined => {\n return epd.find(epd => epd.propertyGuid === EPDPropertyGUIDS.A1A3_GWP)\n ?.unit;\n };\n\n const tryGetUnformatedEpdValidationDate = (epd: Array) => {\n return epd.find(epd => epd.propertyGuid === EPDPropertyGUIDS.ValidUntil)\n ?.value;\n };\n\n const getNobbItemFromNobbNumber = (\n nobbItems: Array,\n nobbNumber?: Nullable\n ) => {\n if (nobbNumber && nobbItems) {\n return nobbItems.find(item => item.nobbNumber === nobbNumber);\n }\n };\n\n const getBuildingElementSumGWP = (\n element: BuildingElementCalculation,\n nobbItems: Array\n ): number => {\n let sumGWP = 0;\n element.BuildingItems.forEach(buildingItem => {\n const item = getNobbItemFromNobbNumber(\n nobbItems,\n buildingItem.NOBBNumber\n );\n if (item && item.properties.epd.length > 0) {\n const a1A3 = tryGetEpdA1A3GWPIOBCNumber(item.properties.epd);\n if (a1A3) {\n sumGWP += Number(a1A3);\n }\n }\n });\n return sumGWP;\n };\n\n const getBuildingElementCalculatedSumGWP = (\n element: BuildingElementCalculation,\n nobbItems: Array\n ): number => {\n let sumCalculatedGWP = 0;\n element.BuildingItems.forEach(buildingItem => {\n const item = getNobbItemFromNobbNumber(\n nobbItems,\n buildingItem.NOBBNumber\n );\n if (item && item.properties.epd.length > 0 && buildingItem.UnitForOrder) {\n const priceUnit = unitDescriptionConverter(item.priceUnit);\n\n const buildingItemUnitIsEqualToPriceUnit = areUnitsEqual(\n priceUnit,\n buildingItem.UnitForOrder\n );\n\n const a1A3 = tryGetEpdA1A3GWPIOBCNumber(item.properties.epd);\n if (a1A3 && buildingItemUnitIsEqualToPriceUnit) {\n if (buildingItem.AmountOfMaterials.value) {\n const gwpTimesAmount = a1A3 * buildingItem.AmountOfMaterials.value;\n sumCalculatedGWP += gwpTimesAmount;\n }\n }\n }\n });\n return sumCalculatedGWP;\n };\n\n const tryGetProductCertificates = (certificates: Array) => {\n return certificates.filter(cert => cert.value === 'True');\n };\n\n const extractNobbNosFromBuildingElement = (\n element: BuildingElementCalculation\n ): number[] => {\n const nos: Array = [];\n\n element.BuildingItems.forEach(item => {\n if (item.NOBBNumber) {\n nos.push(item.NOBBNumber);\n }\n });\n\n return nos;\n };\n\n return {\n tryGetEpdReferenceUnit,\n tryGetEpdA1A3Unit,\n tryGetEpdA1A3Number,\n tryGetEpdA1A3GWPIOBCUnit,\n tryGetEpdA1A3GWPIOBCNumber,\n tryGetUnformatedEpdValidationDate,\n getBuildingElementSumGWP,\n getBuildingElementCalculatedSumGWP,\n tryGetProductCertificates,\n extractNobbNosFromBuildingElement,\n };\n};\n","import { createReportName, downloadExcel } from '@/helpers/reports';\nimport { defaultLocaleString, translate } from '@/localization';\nimport jsPDF from 'jspdf';\nimport autoTable from 'jspdf-autotable';\nimport { ReportOptions } from '@/models/report/interfaces';\nimport { createHeader, createHeaderXlsx } from '@/models/report/report-header';\nimport {\n createProjectInfo,\n createProjectInfoXlsx,\n} from '@/models/report/report-project-info';\nimport { useCalculation } from '@/modules/calculation';\nimport { ReportFileType, ReportType } from '@/models/report/enums';\nimport XLSX from 'xlsx';\nimport {\n areUnitsEqual,\n precision,\n unitDescriptionConverter,\n} from '@/helpers/common';\nimport {\n DEFAULT_TEXT_MEDIUM,\n DEFAULT_TEXT_MINI,\n LARGE_TEXT_MEDIUM,\n LARGE_TEXT_MINI,\n} from '@/constants/styles';\nimport { useReport } from '@/modules/report';\nimport { useProductInfo } from '@/modules/product-info';\nimport { useEnvironment } from '@/modules/environment';\nimport { NobbItem } from '../nobb/interfaces';\nimport { BuildingElementCalculation } from '../building-element/interfaces';\n\nexport const generateEnvironmentReportPDF = async (\n type: ReportType,\n options: ReportOptions\n) => {\n const { projectCalculation } = useCalculation();\n const { getNobbItems } = useProductInfo();\n const {\n getBuildingElementSumGWP,\n getBuildingElementCalculatedSumGWP,\n extractNobbNosFromBuildingElement,\n tryGetUnformatedEpdValidationDate,\n tryGetEpdA1A3GWPIOBCUnit,\n tryGetEpdA1A3GWPIOBCNumber,\n } = useEnvironment();\n\n if (!projectCalculation.value) return;\n\n const doc = new jsPDF('p', 'mm', [210, 297]);\n\n const pdfName = createReportName(type, ReportFileType.PDF);\n\n await createHeader(doc, options);\n await createProjectInfo(doc, false, options, false);\n\n const calculationTotalHeader = [\n [translate('environment.sum-from-building-elements')],\n ];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const first = (doc as any).autoTable.previous;\n\n const reportName = `${translate('reports.environment-report')}`;\n doc.text(reportName, 14, first.finalY + 9);\n\n autoTable(doc, {\n startY: first.finalY + 14,\n head: calculationTotalHeader,\n theme: 'plain',\n styles: {\n fontStyle: 'italic',\n },\n });\n\n const head = [\n [\n translate('common.building-element'),\n translate('environment.gwp-iobc'),\n translate('environment.climate-imprint'),\n ],\n ];\n\n const elementEnvironmentSummedData: (string | number)[][] = [];\n\n let totalSumGWP = 0;\n let totalCalculatedSumGWP = 0;\n\n let nobbItems: Array = [];\n\n interface ElementWithNobbItems {\n element: BuildingElementCalculation;\n nobbItems: Array;\n }\n\n const buildingElementsWithNobbItems: Array = [];\n\n const getNobbItemFromNobbNumber = (\n nobbItems: Array,\n nobbNumber?: Nullable\n ) => {\n if (nobbNumber && nobbItems) {\n return nobbItems.find(item => item.nobbNumber === nobbNumber);\n }\n };\n\n for (const element of projectCalculation.value.BuildingElements) {\n let calculatedSumGWP = 0;\n let sumGWP = 0;\n try {\n nobbItems = await getNobbItems(\n extractNobbNosFromBuildingElement(element)\n );\n } finally {\n calculatedSumGWP = getBuildingElementCalculatedSumGWP(element, nobbItems);\n sumGWP = getBuildingElementSumGWP(element, nobbItems);\n }\n\n elementEnvironmentSummedData.push([\n element.Name ?? '',\n sumGWP\n ? `${sumGWP} ${translate('environment.kg-carbondioxide-equivalent')}`\n : '-',\n calculatedSumGWP\n ? `${calculatedSumGWP} ${translate(\n 'environment.kg-carbondioxide-equivalent'\n )}`\n : '-',\n ]);\n\n totalSumGWP += sumGWP;\n totalCalculatedSumGWP += calculatedSumGWP;\n\n buildingElementsWithNobbItems.push({ element, nobbItems });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const second = (doc as any).autoTable.previous;\n\n elementEnvironmentSummedData.push([\n `${translate('labels.sum')}`,\n totalSumGWP\n ? `${totalSumGWP} ${translate('environment.kg-carbondioxide-equivalent')}`\n : '-',\n totalCalculatedSumGWP\n ? `${totalCalculatedSumGWP} ${translate(\n 'environment.kg-carbondioxide-equivalent'\n )}`\n : '-',\n ]);\n\n autoTable(doc, {\n startY: second.finalY + 2,\n head: head,\n body: elementEnvironmentSummedData,\n showHead: 'firstPage',\n headStyles: {\n fillColor: '#263238',\n fontSize:\n options.FontSize === 'default' ? DEFAULT_TEXT_MINI : LARGE_TEXT_MINI,\n valign: 'middle',\n overflow: 'linebreak',\n },\n styles: {\n fontSize:\n options.FontSize === 'default' ? DEFAULT_TEXT_MINI : LARGE_TEXT_MINI,\n },\n didParseCell(data) {\n if (\n data.section === 'body' &&\n data.row.index === elementEnvironmentSummedData.length - 1\n ) {\n data.cell.styles.fillColor = 'white';\n data.cell.styles.fontStyle = 'bold';\n }\n },\n });\n\n if (options.IncludeBuildingElements) {\n for (const elementWithNobbItems of buildingElementsWithNobbItems) {\n let calculatedSumGWP = 0;\n let sumGWP = 0;\n const buildingItemEnvironmentData: (string | number)[][] = [];\n const buildingElementHead = [\n [\n translate('common.part'),\n translate('environment.validation-date'),\n translate('environment.gwp-iobc'),\n translate('environment.reference-unit'),\n translate('labels.amount'),\n translate('headers.amountofmaterials'),\n translate('environment.climate-imprint'),\n ],\n ];\n\n for (const item of elementWithNobbItems.element.BuildingItems) {\n const nobbItem = getNobbItemFromNobbNumber(\n elementWithNobbItems.nobbItems,\n item.NOBBNumber\n );\n\n if (!options.IncludeBuildingItemsWithMissingNOBB && !item.NOBBNumber) {\n continue;\n }\n\n if (\n !options.IncludeBuildingItemsWithMissingEPD &&\n nobbItem?.properties.epd.length === 0\n ) {\n continue;\n }\n\n const name = item.Name ?? '';\n let validationDate: string | undefined = '-';\n let gwp: number | undefined = 0;\n let gwpUnit: string | undefined = '-';\n let priceUnit: string | undefined = '-';\n let gwpCalculated: number | undefined = 0;\n let priceUnitEqualsToBuildingItemUnit = false;\n\n if (nobbItem) {\n validationDate = tryGetUnformatedEpdValidationDate(\n nobbItem.properties.epd\n );\n gwp = tryGetEpdA1A3GWPIOBCNumber(nobbItem.properties.epd);\n gwpUnit = tryGetEpdA1A3GWPIOBCUnit(nobbItem.properties.epd);\n priceUnit = nobbItem.priceUnit;\n if (gwp && item.AmountOfMaterials.value) {\n gwpCalculated = gwp * item.AmountOfMaterials.value;\n }\n }\n\n if (priceUnit && item.UnitForOrder) {\n priceUnitEqualsToBuildingItemUnit = areUnitsEqual(\n unitDescriptionConverter(priceUnit),\n item.UnitForOrder\n );\n }\n\n buildingItemEnvironmentData.push([\n name,\n validationDate ? validationDate : '',\n gwp ? `${gwp} ${gwpUnit ?? ''}` : '-',\n priceUnit ? unitDescriptionConverter(priceUnit) : '-',\n item.AmountCalculated.value\n ? `${precision(item.AmountCalculated.value, 2)} ${item.Unit}`\n : '-',\n item.AmountOfMaterials.value\n ? `${precision(item.AmountOfMaterials.value, 2)} ${\n item.UnitForOrder\n }`\n : '-',\n priceUnitEqualsToBuildingItemUnit && gwpCalculated\n ? `${gwpCalculated} ${gwpUnit}`\n : '-',\n ]);\n }\n\n calculatedSumGWP = getBuildingElementCalculatedSumGWP(\n elementWithNobbItems.element,\n elementWithNobbItems.nobbItems\n );\n sumGWP = getBuildingElementSumGWP(\n elementWithNobbItems.element,\n elementWithNobbItems.nobbItems\n );\n const lastRow = [\n `${translate('labels.sum')}`,\n '',\n sumGWP\n ? `${sumGWP} ${translate('environment.kg-carbondioxide-equivalent')}`\n : '-',\n '',\n '',\n '',\n calculatedSumGWP\n ? `${calculatedSumGWP} ${translate(\n 'environment.kg-carbondioxide-equivalent'\n )}`\n : '-',\n ];\n\n buildingItemEnvironmentData.push(lastRow);\n\n const buildingElementHeader = [[elementWithNobbItems.element.Name]];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const first = (doc as any).autoTable.previous;\n\n autoTable(doc, {\n startY: first.finalY + 10,\n head: buildingElementHeader,\n theme: 'plain',\n styles: {\n fontStyle: 'italic',\n },\n });\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const second = (doc as any).autoTable.previous;\n\n autoTable(doc, {\n startY: second.finalY + 2,\n head: buildingElementHead,\n body: buildingItemEnvironmentData,\n showHead: 'firstPage',\n headStyles: {\n fillColor: '#656d72',\n fontSize:\n options.FontSize === 'default'\n ? DEFAULT_TEXT_MINI\n : LARGE_TEXT_MINI,\n valign: 'middle',\n overflow: 'linebreak',\n },\n styles: {\n fontSize:\n options.FontSize === 'default'\n ? DEFAULT_TEXT_MINI\n : LARGE_TEXT_MINI,\n },\n didParseCell(data) {\n if (\n data.section === 'body' &&\n data.row.index === buildingItemEnvironmentData.length - 1\n ) {\n data.cell.styles.fillColor = 'white';\n data.cell.styles.fontStyle = 'bold';\n }\n },\n });\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const pages = (doc.internal as any).getNumberOfPages();\n const pageWidth = doc.internal.pageSize.width; //Optional\n const pageHeight = doc.internal.pageSize.height; //Optional\n doc.setFontSize(\n options.FontSize === 'default' ? DEFAULT_TEXT_MEDIUM : LARGE_TEXT_MEDIUM\n ); //Optional\n\n for (let j = 1; j < pages + 1; j++) {\n const horizontalPos = pageWidth / 2;\n const verticalPos = pageHeight - 10;\n doc.setPage(j);\n doc.text(\n `${j} ${translate('common.by')} ${pages}`,\n horizontalPos,\n verticalPos,\n {\n align: 'center',\n }\n );\n\n const currentDate = new Date();\n const createdAt = `${currentDate.toLocaleString(defaultLocaleString)}`;\n\n doc.text(createdAt, 10, verticalPos, {\n align: 'left',\n });\n }\n\n await doc.save(pdfName);\n};\n\nexport const generateEnvironmentReportEXCEL = async (\n type: ReportType,\n options: ReportOptions\n) => {\n const { projectCalculation } = useCalculation();\n const { checkAndbuildSheetName } = useReport();\n const { getNobbItems } = useProductInfo();\n const {\n getBuildingElementSumGWP,\n getBuildingElementCalculatedSumGWP,\n extractNobbNosFromBuildingElement,\n tryGetEpdA1A3GWPIOBCNumber,\n tryGetUnformatedEpdValidationDate,\n } = useEnvironment();\n\n if (!projectCalculation.value) return;\n\n const wb = XLSX.utils.book_new();\n\n const xlsxName = createReportName(type, ReportFileType.XLSX);\n\n const sheetName = checkAndbuildSheetName(\n projectCalculation.value.Name,\n wb.SheetNames\n );\n\n wb.Props = {\n Title: `${translate('reports.environment-report')}`,\n CreatedDate: new Date(),\n };\n\n wb.SheetNames.push(sheetName);\n\n const elementEnvironmentSummedData: (string | number)[][] = [];\n\n await createHeaderXlsx(elementEnvironmentSummedData);\n await createProjectInfoXlsx(elementEnvironmentSummedData);\n\n elementEnvironmentSummedData.push([sheetName]);\n elementEnvironmentSummedData.push(['']);\n\n const head = [\n `${translate('common.building-element')}`,\n `${translate('environment.gwp-iobc')}`,\n `${translate('environment.climate-imprint')}`,\n `${translate('environment.gwp-iobc-unit')}`,\n ];\n\n elementEnvironmentSummedData.push(head);\n\n let totalSumGWP = 0;\n let totalCalculatedSumGWP = 0;\n\n let nobbItems: Array = [];\n\n interface ElementWithNobbItems {\n element: BuildingElementCalculation;\n nobbItems: Array;\n }\n\n const buildingElementsWithNobbItems: Array = [];\n\n const getNobbItemFromNobbNumber = (\n nobbItems: Array,\n nobbNumber?: Nullable\n ) => {\n if (nobbNumber && nobbItems) {\n return nobbItems.find(item => item.nobbNumber === nobbNumber);\n }\n };\n\n for (const element of projectCalculation.value.BuildingElements) {\n let calculatedSumGWP = 0;\n let sumGWP = 0;\n try {\n nobbItems = await getNobbItems(\n extractNobbNosFromBuildingElement(element)\n );\n } finally {\n calculatedSumGWP = getBuildingElementCalculatedSumGWP(element, nobbItems);\n sumGWP = getBuildingElementSumGWP(element, nobbItems);\n }\n\n elementEnvironmentSummedData.push([\n element.Name ?? '',\n sumGWP ? precision(sumGWP, 10) : '-',\n calculatedSumGWP ? precision(calculatedSumGWP, 10) : '-',\n `${translate('environment.kg-carbondioxide-equivalent')}`,\n ]);\n\n totalSumGWP += sumGWP;\n totalCalculatedSumGWP += calculatedSumGWP;\n\n buildingElementsWithNobbItems.push({ element, nobbItems });\n }\n\n elementEnvironmentSummedData.push([\n `${translate('labels.sum')}`,\n totalSumGWP ? precision(totalSumGWP, 10) : '-',\n totalCalculatedSumGWP ? precision(totalCalculatedSumGWP, 10) : '-',\n `${translate('environment.kg-carbondioxide-equivalent')}`,\n ]);\n\n if (options.IncludeBuildingElements) {\n for (const elementWithNobbItems of buildingElementsWithNobbItems) {\n let calculatedSumGWP = 0;\n let sumGWP = 0;\n\n elementEnvironmentSummedData.push(['']);\n elementEnvironmentSummedData.push([\n elementWithNobbItems.element.Name ?? '',\n ]);\n elementEnvironmentSummedData.push(['']);\n\n const buildingElementHead = [\n `${translate('common.part')}`,\n `${translate('environment.validation-date')}`,\n `${translate('environment.gwp-iobc')}`,\n `${translate('environment.reference-unit')}`,\n `${translate('labels.amount')}`,\n `${translate('labels.unit')}`,\n `${translate('headers.amountofmaterials')}`,\n `${translate('labels.unit-for-order')}`,\n `${translate('environment.climate-imprint')}`,\n `${translate('environment.gwp-iobc-unit')}`,\n ];\n\n elementEnvironmentSummedData.push(buildingElementHead);\n\n for (const item of elementWithNobbItems.element.BuildingItems) {\n const nobbItem = getNobbItemFromNobbNumber(\n elementWithNobbItems.nobbItems,\n item.NOBBNumber\n );\n\n if (!options.IncludeBuildingItemsWithMissingNOBB && !item.NOBBNumber) {\n continue;\n }\n\n if (\n !options.IncludeBuildingItemsWithMissingEPD &&\n nobbItem?.properties.epd.length === 0\n ) {\n continue;\n }\n\n const name = item.Name ?? '';\n let validationDate: string | undefined = '-';\n let gwp: number | undefined = 0;\n let priceUnit: string | undefined = '-';\n let gwpCalculated: number | undefined = 0;\n let priceUnitEqualsToBuildingItemUnit = false;\n\n if (nobbItem) {\n validationDate = tryGetUnformatedEpdValidationDate(\n nobbItem.properties.epd\n );\n gwp = tryGetEpdA1A3GWPIOBCNumber(nobbItem.properties.epd);\n priceUnit = nobbItem.priceUnit;\n if (gwp && item.AmountOfMaterials.value) {\n gwpCalculated = gwp * item.AmountOfMaterials.value;\n }\n }\n\n if (priceUnit && item.UnitForOrder) {\n priceUnitEqualsToBuildingItemUnit = areUnitsEqual(\n unitDescriptionConverter(priceUnit),\n item.UnitForOrder\n );\n }\n\n elementEnvironmentSummedData.push([\n name,\n validationDate ? validationDate : '',\n gwp ? precision(gwp, 10) : '-',\n priceUnit ? unitDescriptionConverter(priceUnit) : '-',\n item.AmountCalculated.value\n ? precision(item.AmountCalculated.value, 2)\n : '-',\n item.Unit ?? '-',\n item.AmountOfMaterials.value\n ? precision(item.AmountOfMaterials.value, 2)\n : '-',\n item.UnitForOrder ?? '-',\n priceUnitEqualsToBuildingItemUnit && gwpCalculated\n ? precision(gwpCalculated, 10)\n : '-',\n `${translate('environment.kg-carbondioxide-equivalent')}`,\n ]);\n }\n\n calculatedSumGWP = getBuildingElementCalculatedSumGWP(\n elementWithNobbItems.element,\n elementWithNobbItems.nobbItems\n );\n sumGWP = getBuildingElementSumGWP(\n elementWithNobbItems.element,\n elementWithNobbItems.nobbItems\n );\n const lastRow = [\n `${translate('labels.sum')}`,\n '',\n sumGWP ? precision(sumGWP, 10) : '-',\n '',\n '',\n '',\n '',\n '',\n calculatedSumGWP ? precision(calculatedSumGWP, 10) : '-',\n `${translate('environment.kg-carbondioxide-equivalent')}`,\n ];\n\n elementEnvironmentSummedData.push(lastRow);\n }\n }\n\n const ws = XLSX.utils.aoa_to_sheet(elementEnvironmentSummedData);\n wb.Sheets[sheetName] = ws;\n\n // set column width\n ws['!cols'] = [\n { wch: 44 }, // \"Bygningsdel\" takes the most space\n { wch: 30 },\n { wch: 30 },\n { wch: 30 },\n { wch: 30 },\n { wch: 20 },\n { wch: 30 },\n { wch: 20 },\n { wch: 30 },\n { wch: 30 },\n ];\n\n const wbout = XLSX.write(wb, { bookType: 'xlsx', type: 'binary' });\n\n downloadExcel(xlsxName, wbout);\n};\n\nexport const generateEnvironmentReport = async (\n type: ReportType,\n options: ReportOptions\n) => {\n switch (options.FileType) {\n case ReportFileType.PDF:\n await generateEnvironmentReportPDF(type, options);\n break;\n case ReportFileType.XLSX:\n await generateEnvironmentReportEXCEL(type, options);\n break;\n default:\n break;\n }\n};\n","import { reactive, toRefs } from '@vue/composition-api';\nimport { CustomError } from '@/models/common/interfaces';\nimport { ReportType } from '@/models/report/enums';\nimport { generateMaterialOrderReport } from '@/models/report/report-material-order';\nimport { generateMilestoneReport } from '@/models/report/report-milestone';\nimport { generateMaterialListPrecutReport } from '@/models/report/report-material-list-precut';\nimport { generateAttachmentPriceOfferReport } from '@/models/report/report-attachment-price-offer';\nimport { ReportOptions } from '@/models/report/interfaces';\nimport { generateBuildingElementReport } from '@/models/report/report-building-elements';\nimport { generateMainSumsReport } from '@/models/report/report-main-sums';\nimport { generatePriceRequestReport } from '@/models/report/report-price-request';\nimport { generateCalculationViewReport } from '@/models/report/view-report-calculation';\nimport { generateDeliveryViewReport } from '@/models/report/view-report-delivery';\nimport { generateTimeViewReport } from '@/models/report/view-report-time';\nimport { generateMaterialViewReport } from '@/models/report/view-report-materials';\nimport { generateEconomyViewReport } from '@/models/report/view-report-economy';\nimport { generateProjectMilestoneReport } from '@/models/report/project-report-milestone';\nimport { generateProjectAttachmentPriceReport } from '@/models/report/project-report-attachment-price';\nimport { generateProjectBuildingElementsReport } from '@/models/report/project-report-building-elements';\nimport { generateProjectMainSumsReport } from '@/models/report/project-report-main-sums';\nimport { generateEnvironmentReport } from '@/models/report/report-environment';\n\ninterface State {\n error?: CustomError;\n}\n\nconst state = reactive({\n error: undefined,\n});\n\nexport const useReport = () => {\n const checkAndbuildSheetName = (name: string, names: string[]): string => {\n let uniqueName = name.replace(/[&#,+/()$~%.'\":*?<>{}]/g, '').slice(0, 31);\n let count = 1;\n\n while (names.includes(uniqueName)) {\n uniqueName = `${name.slice(0, 27)} (${count++})`; // Truncate to 27 characters and append count\n }\n\n return uniqueName;\n };\n\n const generateReport = async (\n type: ReportType,\n options: ReportOptions,\n isProject?: boolean\n ) => {\n if (isProject && options.Calculations) {\n options.Calculations = options.Calculations.sort((a, b) => {\n return parseInt(a.ProfessionCode) - parseInt(b.ProfessionCode);\n });\n }\n\n try {\n switch (type) {\n case ReportType.MaterialOrder:\n await generateMaterialOrderReport(type, options);\n break;\n case ReportType.MileStone:\n await generateMilestoneReport(type, options);\n break;\n case ReportType.MaterialListPrecut:\n await generateMaterialListPrecutReport(type, options);\n break;\n case ReportType.AttachmentPriceOffer:\n await generateAttachmentPriceOfferReport(type, options);\n break;\n case ReportType.BuildingElements:\n await generateBuildingElementReport(type, options);\n break;\n case ReportType.MainSums:\n await generateMainSumsReport(type, options);\n break;\n case ReportType.PriceRequest:\n await generatePriceRequestReport(type, options);\n break;\n case ReportType.CalculationView:\n await generateCalculationViewReport(type, options);\n break;\n case ReportType.DeliveryView:\n await generateDeliveryViewReport(type, options);\n break;\n case ReportType.TimeView:\n await generateTimeViewReport(type, options);\n break;\n case ReportType.MaterialsView:\n await generateMaterialViewReport(type, options);\n break;\n case ReportType.EconomyView:\n await generateEconomyViewReport(type, options);\n break;\n case ReportType.ProjectMileStone:\n await generateProjectMilestoneReport(type, options);\n break;\n case ReportType.ProjectAttachmentPriceOffer:\n await generateProjectAttachmentPriceReport(type, options);\n break;\n case ReportType.ProjectBuildingElements:\n await generateProjectBuildingElementsReport(type, options);\n break;\n case ReportType.ProjectMainSums:\n await generateProjectMainSumsReport(type, options);\n break;\n case ReportType.Environment:\n await generateEnvironmentReport(type, options);\n break;\n default:\n break;\n }\n } catch (err) {\n console.log(err);\n }\n };\n\n return {\n generateReport,\n checkAndbuildSheetName,\n ...toRefs(state),\n };\n};\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { ref, defineComponent, computed, watch } from '@vue/composition-api';\nimport Report from '@/components/reports/report/index.vue';\nimport { useReport } from '@/modules/report';\nimport { useCalculation } from '@/modules/calculation';\nimport { ReportFileType, ReportType } from '@/models/report/enums';\nimport { ReportOptions } from '@/models/report/interfaces';\nimport { getBuildingMaterials } from '@/helpers/reports';\nimport { useProject } from '@/modules/project';\nimport { translate } from '@/localization';\n\nexport default defineComponent({\n props: {\n isProject: {\n type: Boolean,\n required: true,\n },\n },\n components: {\n Report,\n },\n setup({ isProject }) {\n const { generateReport } = useReport();\n const { updating, projectCalculation } = useCalculation();\n const { activeProjectOverview } = useProject();\n const dialog = ref(false);\n const selectedItem = ref();\n const loading = ref();\n const options = ref({\n DeliveryOrders: [],\n Calculations: [],\n FileType: ReportFileType.PDF,\n IncludeComments: true,\n IncludeAmounts: true,\n IncludeItemSums: false,\n IncludeElementSums: false,\n IncludePrecut: true,\n IncludeWithoutDeliveryOrder: true,\n IncludeBuildingItems: true,\n IncludeBuildingElements: true,\n IncludeBuildingItemsWithMissingEPD: true,\n IncludeBuildingItemsWithMissingNOBB: true,\n ShowProductName: true,\n FontSize: 'default',\n });\n\n const availableDeliveryOrders = ref>([]);\n\n const includeCommentsEnabled = computed(() => {\n if (selectedItem.value == null) return false;\n const enabledWhen: Array = [\n ReportType.MaterialOrder,\n ReportType.AttachmentPriceOffer,\n ReportType.PriceRequest,\n ReportType.ProjectAttachmentPriceOffer,\n ];\n return enabledWhen.includes(selectedItem.value);\n });\n\n const includeAmountsEnabled = computed(() => {\n if (selectedItem.value == null) return false;\n const enabledWhen: Array = [\n ReportType.AttachmentPriceOffer,\n ReportType.ProjectAttachmentPriceOffer,\n ];\n return enabledWhen.includes(selectedItem.value);\n });\n\n const includeBuildingElementSumsEnabled = computed(() => {\n if (selectedItem.value == null) return false;\n const enabledWhen: Array = [\n ReportType.AttachmentPriceOffer,\n ReportType.ProjectAttachmentPriceOffer,\n ];\n return enabledWhen.includes(selectedItem.value);\n });\n\n const includeBuildingItemSumsEnabled = computed(() => {\n if (selectedItem.value == null) return false;\n const enabledWhen: Array = [\n ReportType.AttachmentPriceOffer,\n ReportType.ProjectAttachmentPriceOffer,\n ];\n return enabledWhen.includes(selectedItem.value);\n });\n\n const includePrecutEnabled = computed(() => {\n if (selectedItem.value == null) return false;\n const enabledWhen: Array = [ReportType.MaterialOrder];\n return enabledWhen.includes(selectedItem.value);\n });\n\n const showProductNameEnabled = computed(() => {\n if (selectedItem.value == null) return false;\n const enabledWhen: Array = [\n ReportType.AttachmentPriceOffer,\n ReportType.ProjectAttachmentPriceOffer,\n ];\n return enabledWhen.includes(selectedItem.value);\n });\n\n const includeBuildingItemsEnabled = computed(() => {\n if (selectedItem.value == null) return false;\n const enabledWhen: Array = [\n ReportType.BuildingElements,\n ReportType.MainSums,\n ReportType.TimeView,\n ReportType.EconomyView,\n ReportType.DeliveryView,\n ReportType.MaterialsView,\n ReportType.CalculationView,\n ReportType.ProjectBuildingElements,\n ReportType.ProjectMainSums,\n ReportType.AttachmentPriceOffer,\n ReportType.ProjectAttachmentPriceOffer,\n ];\n return enabledWhen.includes(selectedItem.value);\n });\n\n const includeBuildingElementsEnabled = computed(() => {\n if (selectedItem.value == null) return false;\n const enabledWhen: Array = [ReportType.Environment];\n return enabledWhen.includes(selectedItem.value);\n });\n\n const includeBuildingItemsWithMissingNOBBEnabled = computed(() => {\n if (selectedItem.value == null) return false;\n const enabledWhen: Array = [ReportType.Environment];\n return enabledWhen.includes(selectedItem.value);\n });\n\n const includeBuildingItemsWithMissingEPDEnabled = computed(() => {\n if (selectedItem.value == null) return false;\n const enabledWhen: Array = [ReportType.Environment];\n return enabledWhen.includes(selectedItem.value);\n });\n\n const deliveryOrdersEnabled = computed(() => {\n if (selectedItem.value == null) return false;\n const enabledWhen: Array = [\n ReportType.MaterialOrder,\n ReportType.PriceRequest,\n ];\n return enabledWhen.includes(selectedItem.value);\n });\n\n const calculationsEnabled = computed(() => {\n if (!isProject || selectedItem.value == null) return false;\n const enabledWhen: Array = [\n ReportType.ProjectMileStone,\n ReportType.ProjectAttachmentPriceOffer,\n ReportType.ProjectBuildingElements,\n ReportType.ProjectMainSums,\n ];\n return enabledWhen.includes(selectedItem.value);\n });\n\n const includeWithoutDeliveryOrder = computed(() => {\n if (selectedItem.value == null) return false;\n const enabledWhen: Array = [\n ReportType.MaterialOrder,\n ReportType.PriceRequest,\n ];\n return enabledWhen.includes(selectedItem.value);\n });\n\n const valid = computed(() => {\n let ok = true;\n\n if (selectedItem.value === undefined) ok = false;\n if (isProject && options.value.Calculations.length === 0) ok = false;\n\n return ok;\n });\n\n const filterChange = (rt: ReportType) => {\n availableDeliveryOrders.value = [];\n options.value = {\n DeliveryOrders: [],\n Calculations: [],\n FileType: ReportFileType.PDF,\n IncludeComments: true,\n IncludeAmounts: true,\n IncludeItemSums: false,\n IncludeElementSums: false,\n IncludePrecut: true,\n IncludeWithoutDeliveryOrder: true,\n IncludeBuildingItems: true,\n IncludeBuildingElements: true,\n IncludeBuildingItemsWithMissingEPD: true,\n IncludeBuildingItemsWithMissingNOBB: true,\n ShowProductName: true,\n FontSize: 'default',\n };\n switch (rt) {\n case ReportType.MaterialOrder:\n case ReportType.PriceRequest:\n if (projectCalculation.value) {\n const matItems = getBuildingMaterials(\n projectCalculation.value,\n false\n );\n const orders = matItems\n .map(item => item.DeliveryOrder)\n .filter((value, index, self) => self.indexOf(value) === index)\n .filter(o => o !== null);\n\n if (orders) {\n orders.forEach(o => {\n if (o !== null) availableDeliveryOrders.value.push(o);\n });\n\n options.value.DeliveryOrders = availableDeliveryOrders.value;\n }\n }\n break;\n case ReportType.ProjectMileStone:\n case ReportType.ProjectAttachmentPriceOffer:\n case ReportType.ProjectBuildingElements:\n case ReportType.ProjectMainSums:\n if (activeProjectOverview.value) {\n options.value.Calculations = activeProjectOverview.value.Children;\n }\n break;\n case ReportType.Environment:\n if (!options.value.IncludeBuildingElements) {\n options.value.IncludeBuildingItemsWithMissingEPD = false;\n options.value.IncludeBuildingItemsWithMissingNOBB = false;\n }\n break;\n default:\n break;\n }\n };\n\n const submit = async () => {\n loading.value = true;\n if (selectedItem.value !== undefined) {\n await generateReport(selectedItem.value, options.value, isProject);\n }\n loading.value = false;\n };\n\n watch(\n [options],\n () => {\n if (!options.value.IncludeBuildingElements) {\n options.value.IncludeBuildingItemsWithMissingEPD = false;\n options.value.IncludeBuildingItemsWithMissingNOBB = false;\n }\n },\n { deep: true }\n );\n\n return {\n submit,\n filterChange,\n dialog,\n selectedItem,\n options,\n ReportFileType,\n loading,\n updating,\n ReportType,\n valid,\n availableDeliveryOrders,\n includeCommentsEnabled,\n includeAmountsEnabled,\n includeBuildingElementSumsEnabled,\n includeBuildingElementsEnabled,\n includeBuildingItemSumsEnabled,\n includeWithoutDeliveryOrder,\n includeBuildingItemsEnabled,\n includeBuildingItemsWithMissingNOBBEnabled,\n includeBuildingItemsWithMissingEPDEnabled,\n showProductNameEnabled,\n deliveryOrdersEnabled,\n includePrecutEnabled,\n calculationsEnabled,\n activeProjectOverview,\n items: [\n { name: translate('common.default'), value: 'default' },\n { name: translate('common.large'), value: 'large' },\n ],\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=7a05ee0c&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=7a05ee0c&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7a05ee0c\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VBtnToggle } from 'vuetify/lib/components/VBtnToggle';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VCombobox } from 'vuetify/lib/components/VCombobox';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItemGroup } from 'vuetify/lib/components/VList';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VBtnToggle,VCard,VCardActions,VCardText,VCardTitle,VCheckbox,VCol,VCombobox,VDialog,VDivider,VIcon,VList,VListItemGroup,VRow,VSelect,VSpacer,VSubheader,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"max-width\":\"600\",\"retain-focus\":false},on:{\"click:outside\":_vm.close},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"ma-2\",attrs:{\"small\":\"\",\"fab\":!_vm.$vuetify.breakpoint.xlOnly}},'v-btn',attrs,false),on),[_vm._v(\" \"+_vm._s(!_vm.$vuetify.breakpoint.xlOnly ? '' : _vm.$t('buttons.convert-to-template'))+\" \"),_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g({attrs:{\"right\":_vm.$vuetify.breakpoint.xlOnly}},on),[_vm._v(\" mdi-plus-box-multiple \")])]}}],null,true)},[_c('span',[_vm._v(_vm._s(_vm.$t('buttons.convert-to-template')))])])],1)]}}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',{attrs:{\"flat\":\"\",\"tile\":\"\"}},[_c('dialog-title',{attrs:{\"headerText\":_vm.$t('buttons.convert-to-template')},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":_vm.close}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)]},proxy:true}])}),_c('v-card-text',[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-subheader',{staticClass:\"field-name\"},[_vm._v(\" \"+_vm._s(_vm.$t('labels.name'))+\"*\")])],1),_c('v-col',{attrs:{\"cols\":\"8\"}},[_c('v-text-field',{attrs:{\"autofocus\":\"\",\"placeholder\":_vm.$t('labels.name'),\"rules\":_vm.nameRules,\"required\":\"\"},model:{value:(_vm.templateName),callback:function ($$v) {_vm.templateName=$$v},expression:\"templateName\"}})],1)],1)],1),_c('v-card-actions',[_c('v-toolbar',{attrs:{\"flat\":\"\"}},[_c('v-spacer'),_c('v-btn',{staticClass:\"add-element ma-2\",attrs:{\"color\":\"secondary\",\"disabled\":!_vm.valid},on:{\"click\":_vm.submit}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.convert'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-check\")])],1),_c('v-btn',{staticClass:\"ma-2\",on:{\"click\":_vm.close}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.cancel'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-close\")])],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport {\n ref,\n defineComponent,\n PropType,\n onMounted,\n computed,\n} from '@vue/composition-api';\nimport { BuildingElementCalculation } from '@/models/building-element/interfaces';\nimport DialogTitle from '@/components/common/dialog-title/index.vue';\nimport { useCalculation } from '@/modules/calculation';\nimport { translate } from '@/localization';\n\nexport default defineComponent({\n components: {\n DialogTitle,\n },\n props: {\n element: {\n type: Object as PropType,\n },\n isMenuitem: {\n type: Boolean,\n },\n },\n setup() {\n const {\n projectCalculation,\n convertCalculationToTemplate,\n } = useCalculation();\n const dialog = ref(false);\n const templateName = ref();\n\n const close = () => {\n dialog.value = false;\n if (projectCalculation.value) {\n templateName.value = projectCalculation.value.Name;\n }\n };\n\n const submit = async () => {\n if (templateName.value) {\n await convertCalculationToTemplate(templateName.value);\n close();\n }\n };\n\n const valid = computed(() => {\n return (\n templateName.value !== undefined &&\n templateName.value !== null &&\n templateName.value !== ''\n );\n });\n\n onMounted(() => {\n if (projectCalculation.value) {\n templateName.value = projectCalculation.value.Name;\n }\n });\n\n return {\n close,\n submit,\n dialog,\n projectCalculation,\n templateName,\n valid,\n nameRules: [(v: string) => !!v || `${translate('validation.required')}`],\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=689e4ada&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=689e4ada&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"689e4ada\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VDialog,VIcon,VRow,VSpacer,VSubheader,VTextField,VToolbar,VTooltip})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\nimport ContentBar from '@/components/common/content-bar/index.vue';\nimport Calculalation from '@/components/calculation/index.vue';\nimport NewElement from '@/components/calculation/new-building-element/index.vue';\nimport DeleteProject from '@/components/projects/delete-project/index.vue';\nimport LockCalculation from '@/components/projects/lock-project/index.vue';\nimport ExportProject from '@/components/projects/export-project/index.vue';\nimport Reports from '@/components/reports/index.vue';\nimport { useCalculation } from '@/modules/calculation';\nimport ConvertToTemplate from '@/components/calculation/convert-to-template/index.vue';\nimport {\n PROJECT_OVERVIEW_PATH,\n PROJECT_CALCULATION_PRICE_UPDATE_PATH,\n} from '@/constants/routes';\n\nexport default defineComponent({\n components: {\n ContentBar,\n Calculalation,\n NewElement,\n DeleteProject,\n LockCalculation,\n ExportProject,\n Reports,\n ConvertToTemplate,\n },\n setup() {\n const {\n activeCalculation,\n projectCalculation,\n activateLibrary,\n } = useCalculation();\n return {\n activeCalculation,\n projectCalculation,\n activateLibrary,\n PROJECT_OVERVIEW_PATH,\n PROJECT_CALCULATION_PRICE_UPDATE_PATH,\n };\n },\n});\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Calculation.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Calculation.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Calculation.vue?vue&type=template&id=e1b01c88&scoped=true&\"\nimport script from \"./Calculation.vue?vue&type=script&lang=ts&\"\nexport * from \"./Calculation.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Calculation.vue?vue&type=style&index=0&id=e1b01c88&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e1b01c88\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VContainer,VIcon,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('content-bar',{attrs:{\"title\":_vm.$t('titles.calculation-overview'),\"breadcrumb\":_vm.activeCalculation && _vm.activeCalculation.Name},scopedSlots:_vm._u([{key:\"content-right\",fn:function(){return [_c('reports',{attrs:{\"isProject\":false}}),(_vm.activeCalculation)?_c('export-project',{attrs:{\"project\":_vm.activeCalculation,\"isCalculation\":true}}):_vm._e(),(_vm.activeCalculation)?_c('lock-calculation',{attrs:{\"calculation\":_vm.activeCalculation}}):_vm._e(),(_vm.activeCalculation)?_c('delete-project',{attrs:{\"project\":_vm.activeCalculation,\"isCalculation\":true}}):_vm._e()]},proxy:true}])}),(_vm.projectCalculation)?_c('v-container',{staticClass:\"grey lighten-5\",attrs:{\"fluid\":\"\"}},[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"8\"}},[_c('calculation-factors')],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"4\"}},[_c('calculation-contacts')],1)],1)],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.loading)?_c('div',[_c('content-bar',{attrs:{\"small\":true,\"title\":_vm.$t('titles.calculation-factors')},scopedSlots:_vm._u([{key:\"content-left\",fn:function(){return [_c('info-tooltip',{attrs:{\"information\":_vm.$t('info.calculation-factors')}})]},proxy:true},{key:\"content-right\",fn:function(){return [(_vm.activeCalculation.CalculationLockedTime)?_c('v-chip',{staticClass:\"locked\",attrs:{\"color\":\"orange\",\"outlined\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.$t('common.locked'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\" mdi-lock \")])],1):_vm._e(),(_vm.projectCalculation.Profession)?_c('profession',{attrs:{\"code\":_vm.projectCalculation.Profession.Code}}):_vm._e()]},proxy:true}],null,false,1637329844)}),(_vm.projectCalculation)?_c('v-card',{attrs:{\"tile\":\"\",\"loading\":_vm.loading || _vm.updating,\"disabled\":_vm.activeCalculation.CalculationLockedTime != null}},[_c('v-card',{staticClass:\"factorItems\",attrs:{\"flat\":\"\"}},[_c('calculation-factor-items'),_c('factor-summary',{attrs:{\"factors\":_vm.projectCalculation.Factors,\"IsCalculation\":true}})],1)],1):_vm._e()],1):_c('div',[_c('content-bar',{attrs:{\"small\":true,\"title\":_vm.$t('titles.calculation-factors')}}),_c('v-card',[_c('loader',{attrs:{\"margins\":true}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-simple-table',{staticClass:\"factor-table\",scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('thead',[_c('tr',{staticClass:\"factor-headers\"},[_c('th',{staticClass:\"text-left\"},[_vm._v(\" \"+_vm._s(_vm.$t('labels.id'))+\" \")]),_c('th',{staticClass:\"text-left name-value\"},[_vm._v(\" \"+_vm._s(_vm.$t('labels.name'))+\" \")]),_c('th',{staticClass:\"text-left\"},[_vm._v(\" \"+_vm._s(_vm.$t('labels.factor'))+\" \")]),_c('th',{staticClass:\"text-left\"},[_vm._v(\" \"+_vm._s(_vm.$t('labels.value'))+\" \")]),_c('th',{staticClass:\"text-left\"},[_vm._v(\" \"+_vm._s(_vm.$t('labels.unit'))+\" \")]),_c('th',{staticClass:\"text-left\"})])]),_c('tbody',_vm._l((_vm.projectCalculation.Factors),function(factor){return _c('tr',{key:factor.Id},[_c('td',[_vm._v(_vm._s(factor.FactorNumber))]),_c('td',{staticClass:\"name-value\"},[_vm._v(\" \"+_vm._s(_vm.getFactorNameFromId(factor.FactorNumber))+\" \")]),(factor.Unit === 'kr')?_c('td',{staticClass:\"factorValue\"},[_vm._v(\" \"+_vm._s('')+\" \")]):_c('td',{staticClass:\"factorValue\"},[_vm._v(\" \"+_vm._s(_vm.calculateFactor(factor.FactorItems))+\" \")]),_c('td',[_vm._v(_vm._s(_vm.calculateValue(factor.FactorItems)))]),_c('td',[_vm._v(_vm._s(factor.Unit))]),_c('td',[_c('calc-factor-edit-modal',{attrs:{\"items\":factor.FactorItems,\"unit\":factor.Unit,\"id\":factor.Id,\"name\":_vm.getFactorNameFromId(factor.FactorNumber)}})],1)])}),0)]},proxy:true}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"width\":\"1000\"},on:{\"click:outside\":_vm.close},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"small\":\"\",\"outlined\":\"\"}},'v-btn',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.$t('buttons.edit'))+\" \")])]}}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',{attrs:{\"tile\":\"\",\"flat\":\"\"}},[_c('dialog-title',{attrs:{\"headerText\":_vm.$t('titles.calculation-factors'),\"secondaryText\":_vm.name},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-spacer'),_c('add-modal',{attrs:{\"unit\":_vm.unit,\"items\":_vm._factorItems,\"name\":_vm.name},on:{\"added\":_vm.added}}),_c('v-btn',{staticClass:\"ma-2\",attrs:{\"icon\":\"\",\"small\":\"\"},on:{\"click\":_vm.close}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1)]},proxy:true}])}),_c('v-card-text',[_c('v-data-table',{attrs:{\"headers\":_vm.headers,\"items\":_vm._factorItems,\"loading-text\":_vm.$t('info.loading'),\"no-data-text\":_vm.$t('info.no-data'),\"no-results-text\":_vm.$t('info.no-result'),\"hide-default-footer\":\"\"},scopedSlots:_vm._u([{key:\"item.Name\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-text-field',{staticClass:\"font-bold\",attrs:{\"hide-details\":\"\",\"outlined\":\"\",\"label\":_vm.$t('labels.name'),\"dense\":\"\"},on:{\"focus\":function($event){return $event.target.select()},\"input\":function($event){_vm.change = true}},model:{value:(item.Name),callback:function ($$v) {_vm.$set(item, \"Name\", $$v)},expression:\"item.Name\"}})]}},{key:\"item.Value\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-text-field',{staticClass:\"font-bold\",attrs:{\"hide-details\":\"\",\"outlined\":\"\",\"label\":_vm.$t('labels.value'),\"dense\":\"\",\"type\":\"number\"},on:{\"focus\":function($event){return $event.target.select()},\"input\":function($event){_vm.change = true}},model:{value:(item.Value),callback:function ($$v) {_vm.$set(item, \"Value\", _vm._n($$v))},expression:\"item.Value\"}})]}},{key:\"item.actions\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-btn',{attrs:{\"small\":\"\",\"dark\":\"\",\"outlined\":\"\",\"color\":\"#c10909b0\"},on:{\"click\":function($event){_vm.deleteEvent(_vm._factorItems.indexOf(item))}}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.remove'))+\" \"),_c('v-icon',{attrs:{\"small\":\"\",\"right\":\"\"}},[_vm._v(\" mdi-close \")])],1)]}},{key:\"item.unit\",fn:function(ref){return [_vm._v(\" \"+_vm._s(_vm.unit)+\" \")]}}],null,true)}),_c('v-row',{staticClass:\"summary\"},[(_vm.unit === '%')?_c('v-col',{staticClass:\"factor-highlight\"},[_vm._v(\" \"+_vm._s(_vm.$t('labels.factor'))+\": \"),_c('span',{staticClass:\"factor\"},[_vm._v(_vm._s(_vm.calculateFactor(_vm._factorItems)))])]):_vm._e(),_c('v-col',{staticClass:\"factor-highlight\"},[_vm._v(\" \"+_vm._s(_vm.$t('labels.sum'))+\": \"),_c('span',{staticClass:\"sum\"},[_vm._v(_vm._s(_vm.calculateValue(_vm._factorItems))+\" \"+_vm._s(_vm.unit))])])],1)],1),_c('v-card-actions',{staticClass:\"factor-actions\"},[_c('info-tooltip',{attrs:{\"information\":_vm.$t('info.factors-edit', { name: _vm.name })}}),_c('v-spacer'),_c('v-form',{attrs:{\"id\":\"factor-form\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.submit.apply(null, arguments)}}},[_c('v-btn',{attrs:{\"color\":\"secondary\",\"type\":\"submit\",\"loading\":_vm.loading,\"disabled\":!(_vm.add || _vm.del || _vm.change)}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.save'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-check\")])],1),_c('v-btn',{staticClass:\"close-action\",on:{\"click\":_vm.close}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.close'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-close\")])],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('confirm',{attrs:{\"customTitle\":true},scopedSlots:_vm._u([{key:\"activator-element\",fn:function(){return [_c('v-btn',{staticClass:\"ma-2\",attrs:{\"color\":\"secondary\",\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.$t('titles.add-factor'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-plus\")])],1)]},proxy:true},{key:\"custom-title\",fn:function(){return [_c('dialog-title',{attrs:{\"headerText\":_vm.$t('titles.add-factor'),\"secondaryText\":_vm.name},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":_vm.close}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)]},proxy:true}])})]},proxy:true},{key:\"text\",fn:function(){return [_c('v-row',{attrs:{\"justify\":\"center\",\"dense\":\"\"}},[_c('v-text-field',{attrs:{\"dense\":\"\",\"label\":_vm.$t('labels.description'),\"required\":\"\",\"autofocus\":\"\",\"outlined\":\"\",\"clearable\":\"\"},model:{value:(_vm.payload.Name),callback:function ($$v) {_vm.$set(_vm.payload, \"Name\", $$v)},expression:\"payload.Name\"}}),_c('v-text-field',{attrs:{\"dense\":\"\",\"label\":_vm.$t('labels.value'),\"type\":\"number\",\"required\":\"\",\"outlined\":\"\",\"clearable\":\"\",\"suffix\":_vm.unit},model:{value:(_vm.payload.Value),callback:function ($$v) {_vm.$set(_vm.payload, \"Value\", _vm._n($$v))},expression:\"payload.Value\"}})],1)]},proxy:true},{key:\"accept\",fn:function(){return [_c('v-btn',{attrs:{\"disabled\":!_vm.valid,\"color\":\"secondary\"},on:{\"click\":_vm.submit}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.add'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-check\")])],1)]},proxy:true}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport {\n reactive,\n PropType,\n defineComponent,\n computed,\n ref,\n} from '@vue/composition-api';\nimport { cleanSource } from '@/helpers/common';\nimport Confirm from '@/components/common/confirm/index.vue';\nimport DialogTitle from '@/components/common/dialog-title/index.vue';\nimport { ProjectFactorItem } from '@/models/calculation/interfaces';\n\nconst payload = reactive({\n Name: '',\n Value: 0,\n});\n\nconst valid = computed(() => {\n return payload.Name !== '' && payload.Value && payload.Value > 0;\n});\n\nexport default defineComponent({\n components: {\n Confirm,\n DialogTitle,\n },\n props: {\n unit: {\n type: String,\n },\n items: {\n type: Array as PropType>,\n required: true,\n },\n name: {\n type: String,\n },\n },\n setup({ items }, { emit }) {\n const dialog = ref(false);\n const close = () => {\n dialog.value = false;\n };\n const add = (item: ProjectFactorItem) => {\n const newItem: ProjectFactorItem = cleanSource(item);\n items.push(newItem);\n payload.Name = '';\n payload.Value = 0;\n emit('added', true);\n };\n\n const submit = () => {\n add(payload);\n close();\n };\n\n return {\n payload,\n valid,\n dialog,\n submit,\n close,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=3faa83fe&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=3faa83fe&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3faa83fe\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VIcon,VRow,VTextField})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { calculateFactor, calculateValue } from '@/helpers/factor';\nimport AddModal from '@/components/factors/calculation-factors/add-modal/index.vue';\nimport { ref, PropType, defineComponent } from '@vue/composition-api';\nimport { cleanSource } from '@/helpers/common';\nimport { useFactors } from '@/modules/factors';\nimport DialogTitle from '@/components/common/dialog-title/index.vue';\nimport { ProjectFactor } from '@/models/calculation/interfaces';\nimport InfoTooltip from '@/components/common/tooltip-helper/index.vue';\nimport { translate } from '@/localization';\n\nexport default defineComponent({\n components: {\n AddModal,\n DialogTitle,\n InfoTooltip,\n },\n props: {\n items: {\n type: Array as PropType>,\n required: true,\n },\n unit: {\n type: String,\n required: true,\n },\n id: {\n type: String,\n required: true,\n },\n name: {\n type: String,\n required: true,\n },\n },\n setup({ items, id }): Record {\n const { updateCalculationFactors } = useFactors();\n\n const _factorItems = ref(cleanSource(items));\n const dialog = ref(false);\n const loading = ref(false);\n const add = ref(false);\n const del = ref(false);\n const change = ref(false);\n\n const close = () => {\n dialog.value = false;\n add.value = false;\n del.value = false;\n change.value = false;\n _factorItems.value = cleanSource(items);\n };\n\n const submit = async () => {\n loading.value = true;\n const success = await updateCalculationFactors(id, _factorItems.value);\n\n if (success) {\n add.value = false;\n del.value = false;\n change.value = false;\n dialog.value = false;\n }\n loading.value = false;\n };\n\n const deleteEvent = (index: number) => {\n _factorItems.value.splice(index, 1);\n del.value = true;\n };\n\n const added = () => {\n add.value = true;\n };\n\n return {\n close,\n calculateFactor,\n calculateValue,\n deleteEvent,\n added,\n submit,\n headers: [\n {\n text: `${translate('labels.description')}`,\n align: 'start',\n sortable: false,\n value: 'Name',\n width: '50%',\n },\n { text: `${translate('labels.value')}`, value: 'Value', width: '15%' },\n { text: `${translate('headers.amount')}`, value: 'unit' },\n { text: '', value: 'actions', sortable: false },\n ],\n dialog,\n add,\n del,\n change,\n loading,\n _factorItems,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=78ed42ac&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=78ed42ac&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"78ed42ac\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VDataTable,VDialog,VForm,VIcon,VRow,VSpacer,VTextField})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport CalcFactorEditModal from '@/components/factors/calculation-factors/edit-modal/index.vue';\nimport { calculateFactor, calculateValue } from '@/helpers/factor';\nimport { useCalculation } from '@/modules/calculation';\nimport { useFactors } from '@/modules/factors';\nimport { defineComponent } from '@vue/composition-api';\n\nexport default defineComponent({\n components: {\n CalcFactorEditModal,\n },\n setup() {\n const { getFactorNameFromId } = useFactors();\n const { projectCalculation } = useCalculation();\n\n return {\n calculateFactor,\n getFactorNameFromId,\n calculateValue,\n projectCalculation,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=1ba2b3d0&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=1ba2b3d0&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1ba2b3d0\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\ninstallComponents(component, {VSimpleTable})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport FactorSummary from '@/components/factors/factor-summary/index.vue';\nimport CalculationFactorItems from '@/components/factors/calculation-factors/calculation-factor/index.vue';\nimport { defineComponent, onMounted } from '@vue/composition-api';\nimport { useProject } from '@/modules/project';\nimport { useCalculation } from '@/modules/calculation';\nimport Profession from '@/components/profession/index.vue';\nimport InfoTooltip from '@/components/common/tooltip-helper/index.vue';\nimport ContentBar from '@/components/common/content-bar/index.vue';\nimport Loader from '@/components/loader/index.vue';\n\nexport default defineComponent({\n components: {\n CalculationFactorItems,\n FactorSummary,\n Profession,\n InfoTooltip,\n ContentBar,\n Loader,\n },\n setup() {\n const { getProfessions } = useProject();\n const {\n projectCalculation,\n loading,\n activeCalculation,\n updating,\n } = useCalculation();\n\n onMounted(async () => {\n await getProfessions();\n });\n\n return {\n activeCalculation,\n projectCalculation,\n loading,\n updating,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=6933789c&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=6933789c&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6933789c\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VCard,VChip,VIcon})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{staticClass:\"contacts-card\",attrs:{\"tile\":\"\"}},[_c('v-toolbar',{staticClass:\"contacts-toolbar\",attrs:{\"flat\":\"\"}},[_c('v-toolbar-title',[_vm._v(_vm._s(_vm.$t('titles.calculation-contacts')))]),_c('v-spacer'),(_vm.calculationContacts)?_c('edit-calculation-contacts'):_vm._e()],1),(_vm.calculationContacts)?_c('v-container',{attrs:{\"fluid\":\"\"}},[(_vm.calculationContacts)?_c('v-row',{attrs:{\"dense\":\"\",\"justify\":\"start\"}},_vm._l((_vm.calculationContacts),function(contact){return _c('v-col',{key:contact.id,attrs:{\"cols\":\"12\"}},[_c('contact-card',{attrs:{\"contact\":contact}})],1)}),1):_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('br'),_c('br'),_c('v-subheader',[_vm._v(\" \"+_vm._s(_vm.$t('common.no-contacts')))])],1)],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"width\":\"700\"},on:{\"click:outside\":_vm.close},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"ma-2 white--text\",attrs:{\"small\":\"\",\"color\":\"secondary\"}},'v-btn',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.$t('buttons.edit-contact-list'))+\" \"),_c('v-icon',{attrs:{\"small\":\"\",\"right\":\"\"}},[_vm._v(\"mdi-account-edit\")])],1)]}}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',{attrs:{\"flat\":\"\",\"tile\":\"\",\"disabled\":_vm.loading,\"loading\":_vm.loading}},[_c('dialog-title',{attrs:{\"headerText\":_vm.$t('buttons.edit-contact-list'),\"secondaryText\":_vm.$t('titles.contacts')},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":_vm.close}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)]},proxy:true}])}),_c('v-card-text',[_c('perfect-scrollbar',{attrs:{\"options\":{\n suppressScrollX: true,\n }}},[_c('v-container',{staticClass:\"list-container\"},[_c('v-row',{attrs:{\"dense\":\"\"}},_vm._l((_vm.contacts),function(contact){return _c('v-col',{key:contact.id,attrs:{\"cols\":\"12\"}},[_c('contact-card',{attrs:{\"contact\":contact}},[_c('template',{slot:\"actions\"},[(\n !_vm.existsAsPrimary(contact, _vm.calculationContacts) &&\n _vm.existsAsCalculationContact(\n contact,\n _vm.calculationContacts\n )\n )?_c('v-btn',{staticClass:\"ma-2\",attrs:{\"small\":\"\"},on:{\"click\":function($event){return _vm.handleSetAsPrimary(contact)}}},[_vm._v(_vm._s(_vm.$t('buttons.set-as-primary-contact')))]):_vm._e(),(\n !_vm.existsAsCalculationContact(\n contact,\n _vm.calculationContacts\n )\n )?_c('v-btn',{staticClass:\"ma-2\",attrs:{\"min-width\":\"100\",\"small\":\"\",\"color\":\"secondary\"},on:{\"click\":function($event){return _vm.handleAddContact(contact)}}},[_vm._v(_vm._s(_vm.$t('buttons.add')))]):_c('v-btn',{staticClass:\"ma-2\",attrs:{\"min-width\":\"100\",\"small\":\"\",\"color\":\"error\"},on:{\"click\":function($event){return _vm.handleRemoveContact(contact)}}},[_vm._v(_vm._s(_vm.$t('buttons.remove')))])],1)],2)],1)}),1)],1)],1)],1),_c('v-card-actions',{staticClass:\"actions\"},[_c('v-spacer'),_c('v-btn',{on:{\"click\":_vm.close}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.close'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-close\")])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Contact, ProjectContact } from '@/models/contacts/interfaces';\nimport { defineComponent, onMounted, ref } from '@vue/composition-api';\nimport ContactCard from '@/components/contacts/contact/index.vue';\nimport { useContacts } from '@/modules/contacts';\nimport Confirm from '@/components/common/confirm/index.vue';\nimport DialogTitle from '@/components/common/dialog-title/index.vue';\nimport { useCalculation } from '@/modules/calculation';\n\nexport default defineComponent({\n components: {\n ContactCard,\n Confirm,\n DialogTitle,\n },\n setup() {\n const {\n getContacts,\n addContactToCalculation,\n removeContactFromCalculation,\n setAsPrimaryContact,\n existsAsCalculationContact,\n existsAsPrimary,\n } = useContacts();\n const { getCalculationContacts, projectCalculation } = useCalculation();\n\n const calculationContacts = ref>();\n const dialog = ref(false);\n const loading = ref(true);\n const contacts = ref | undefined>(undefined);\n\n onMounted(async () => {\n if (projectCalculation.value?.Id) {\n contacts.value = await getContacts();\n calculationContacts.value = await getCalculationContacts(\n projectCalculation.value.Id\n );\n }\n\n loading.value = false;\n });\n\n const close = () => {\n dialog.value = false;\n };\n\n const handleSetAsPrimary = async (contact: Contact) => {\n if (!contact.Id) return;\n loading.value = true;\n await setAsPrimaryContact(contact.Id);\n if (projectCalculation.value?.Id) {\n calculationContacts.value = await getCalculationContacts(\n projectCalculation.value.Id,\n true\n );\n }\n loading.value = false;\n };\n\n const handleAddContact = async (contact: Contact) => {\n loading.value = true;\n await addContactToCalculation(contact);\n if (projectCalculation.value?.Id) {\n calculationContacts.value = await getCalculationContacts(\n projectCalculation.value.Id,\n true\n );\n }\n loading.value = false;\n };\n\n const handleRemoveContact = async (contact: Contact) => {\n loading.value = true;\n await removeContactFromCalculation(contact);\n if (projectCalculation.value?.Id) {\n calculationContacts.value = await getCalculationContacts(\n projectCalculation.value.Id,\n true\n );\n }\n loading.value = false;\n };\n\n return {\n dialog,\n loading,\n contacts,\n calculationContacts,\n close,\n existsAsCalculationContact,\n existsAsPrimary,\n handleSetAsPrimary,\n handleAddContact,\n handleRemoveContact,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=60f59243&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=60f59243&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"60f59243\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VContainer,VDialog,VIcon,VRow,VSpacer})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, ref } from '@vue/composition-api';\nimport ContactCard from '@/components/contacts/contact/index.vue';\nimport EditCalculationContacts from '@/components/contacts/calculation-contacts/edit-modal/index.vue';\nimport { useCalculation } from '@/modules/calculation';\n\nexport default defineComponent({\n components: {\n ContactCard,\n EditCalculationContacts,\n },\n setup() {\n const { calculationContacts } = useCalculation();\n\n const dialog = ref(false);\n\n return {\n dialog,\n calculationContacts,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=5d3d07ae&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=5d3d07ae&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5d3d07ae\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\nimport { VToolbarTitle } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VCard,VCol,VContainer,VRow,VSpacer,VSubheader,VToolbar,VToolbarTitle})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\nimport ContentBar from '@/components/common/content-bar/index.vue';\nimport DeleteProject from '@/components/projects/delete-project/index.vue';\nimport LockCalculation from '@/components/projects/lock-project/index.vue';\nimport ExportProject from '@/components/projects/export-project/index.vue';\nimport { useCalculation } from '@/modules/calculation';\nimport CalculationFactors from '@/components/factors/calculation-factors/index.vue';\nimport CalculationContacts from '@/components/contacts/calculation-contacts/index.vue';\nimport Reports from '@/components/reports/index.vue';\n\nexport default defineComponent({\n components: {\n ContentBar,\n DeleteProject,\n LockCalculation,\n CalculationFactors,\n CalculationContacts,\n ExportProject,\n Reports,\n },\n setup() {\n const { projectCalculation, activeCalculation } = useCalculation();\n return {\n projectCalculation,\n activeCalculation,\n };\n },\n});\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CalculationOverview.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CalculationOverview.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CalculationOverview.vue?vue&type=template&id=583152ec&\"\nimport script from \"./CalculationOverview.vue?vue&type=script&lang=ts&\"\nexport * from \"./CalculationOverview.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCol,VContainer,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('content-bar',{attrs:{\"title\":_vm.$t('titles.project-overview'),\"breadcrumb\":_vm.activeProjectOverview && _vm.activeProjectOverview.Name},scopedSlots:_vm._u([{key:\"content-right\",fn:function(){return [(\n _vm.activeProjectOverview &&\n _vm.activeProjectOverview.Children &&\n _vm.activeProjectOverview.Children.length > 0 &&\n !_vm.loading\n )?_c('new-calculation',{attrs:{\"show\":_vm.props.createNewCalculation,\"name\":_vm.props.calculationName,\"parent\":_vm.activeProjectOverview}}):_vm._e(),(\n _vm.activeProjectOverview &&\n _vm.activeProjectOverview.Children &&\n _vm.activeProjectOverview.Children.length > 0\n )?_c('reports',{attrs:{\"isProject\":true}}):_vm._e(),(\n _vm.activeProjectOverview &&\n _vm.activeProjectOverview.Children &&\n _vm.activeProjectOverview.Children.length > 0 &&\n !_vm.loading\n )?_c('import-calculation',{attrs:{\"basic\":true,\"parent\":_vm.activeProjectOverview}}):_vm._e(),(\n _vm.activeProjectOverview &&\n _vm.activeProjectOverview.Children &&\n _vm.activeProjectOverview.Children.length > 0\n )?_c('export-project',{attrs:{\"project\":_vm.activeProjectOverview}}):_vm._e(),(_vm.activeProjectOverview)?_c('delete-project',{attrs:{\"project\":_vm.activeProjectOverview}}):_vm._e()]},proxy:true}])}),(_vm.activeProjectOverview)?_c('v-container',{staticClass:\"grey lighten-5\",attrs:{\"fluid\":\"\"}},[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"8\"}},[(\n _vm.activeProjectOverview &&\n _vm.activeProjectOverview.Children &&\n _vm.activeProjectOverview.Children.length > 0\n )?_c('calculations',{attrs:{\"parent\":_vm.activeProjectOverview,\"calculations\":_vm.activeProjectOverview.Children\n ? _vm.activeProjectOverview.Children\n : [],\"showHeaders\":true,\"small\":true}}):_c('kalk-helper',{attrs:{\"small\":true,\"title\":_vm.$t('titles.add-first-calculation')}},[_c('template',{slot:\"message\"},[_vm._v(\" \"+_vm._s(_vm.$t('info.start-project1'))+\" \"),_c('a',{staticClass:\"documentation\",attrs:{\"href\":_vm.documentationUrl,\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm.$t('info.start-project2')))]),_vm._v(\" \"+_vm._s(_vm.$t('info.start-project3'))+\" \")]),_c('template',{slot:\"actions\"},[_c('new-calculation',{attrs:{\"parent\":_vm.activeProjectOverview}}),_vm._v(\" / \"),_c('import-calculation',{attrs:{\"basic\":true,\"parent\":_vm.activeProjectOverview}})],1)],2)],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"4\"}},[_c('project-details')],1)],1)],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.loading)?_c('div',[_c('content-bar',{attrs:{\"small\":true,\"title\":_vm.$t('titles.details')},scopedSlots:_vm._u([{key:\"content-right\",fn:function(){return [_c('edit-details',{on:{\"updated\":_vm.updateInfo}})]},proxy:true}],null,false,3281565560)}),_c('v-card',{attrs:{\"tile\":\"\"}},[(_vm.activeProjectDetails)?_c('v-list',{staticClass:\"project-info\",attrs:{\"dense\":\"\"}},[_c('v-list-item',[_c('v-list-item-icon',[_c('v-icon',{attrs:{\"color\":\"#9e9e9e\"}},[_vm._v(\" mdi-home-circle \")])],1),_c('v-list-item-content',[_c('v-row',[_c('v-col',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.activeProjectDetails.Name))]),_c('v-list-item-subtitle',[_vm._v(_vm._s(_vm.$t('labels.name')))])],1),_c('v-col',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.activeProjectDetails.ProjectNumber))]),_c('v-list-item-subtitle',[_vm._v(_vm._s(_vm.$t('labels.number')))])],1)],1)],1)],1),(_vm.activeProjectDetails.Owner)?_c('v-list-item',[_c('v-list-item-icon'),_c('v-list-item-content',[_c('v-row',[_c('v-col',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.activeProjectDetails.Owner))]),_c('v-list-item-subtitle',[_vm._v(_vm._s(_vm.$t('labels.owner')))])],1)],1)],1)],1):_vm._e(),_c('v-divider',{attrs:{\"inset\":\"\"}}),_c('v-list-item',[_c('v-list-item-icon',[_c('v-icon',{attrs:{\"color\":\"#9e9e9e\"}},[_vm._v(\" mdi-home-map-marker \")])],1),_c('v-list-item-content',[_c('v-row',[(_vm.address)?_c('v-col',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.address))]),_c('v-list-item-subtitle',[_vm._v(_vm._s(_vm.$t('labels.address')))])],1):_vm._e()],1)],1)],1),_c('v-list-item',[_c('v-list-item-icon'),_c('v-list-item-content',[_c('v-row',[_c('v-col',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.activeProjectDetails.UsageNumber))]),_c('v-list-item-subtitle',[_vm._v(_vm._s(_vm.$t('labels.usage-number')))])],1),_c('v-col',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.activeProjectDetails.HousingNumber))]),_c('v-list-item-subtitle',[_vm._v(_vm._s(_vm.$t('labels.housing-number')))])],1),_c('v-col',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.activeProjectDetails.SectionNumber))]),_c('v-list-item-subtitle',[_vm._v(_vm._s(_vm.$t('labels.section-number')))])],1)],1)],1)],1),_c('v-divider',{attrs:{\"inset\":\"\"}}),_c('v-list-item-content',[(_vm.activeProjectDetails.Description)?_c('v-list-item',[_c('v-list-item-subtitle',{staticClass:\"text-right\"},[_vm._v(\" \"+_vm._s(_vm.$t('labels.description'))+\" \")]),_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.activeProjectDetails.Description))])],1):_vm._e(),(_vm.activeProjectDetails.AdditionalInformation)?_c('v-list-item',[_c('v-list-item-subtitle',[_vm._v(\" \"+_vm._s(((_vm.$t('labels.order')) + \" \" + (_vm.$t('common.information'))))+\" \")]),_c('v-list-item-title',{staticStyle:{\"white-space\":\"normal\"}},[_vm._v(\" \"+_vm._s(_vm.activeProjectDetails.AdditionalInformation))])],1):_vm._e(),(_vm.activeProjectDetails.PriceInfo)?_c('v-list-item',[_c('v-list-item-subtitle',[_vm._v(\" \"+_vm._s(((_vm.$t('labels.price')) + \" \" + (_vm.$t('common.information'))))+\" \")]),_c('v-list-item-title',{staticStyle:{\"white-space\":\"normal\"}},[_vm._v(_vm._s(_vm.activeProjectDetails.PriceInfo))])],1):_vm._e()],1)],1):_vm._e()],1)],1):_c('div',[_c('content-bar',{attrs:{\"small\":true,\"title\":_vm.$t('titles.details')}}),_c('v-card',[_c('loader',{attrs:{\"margins\":true}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"max-width\":\"800\"},on:{\"click:outside\":_vm.close},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"ma-2 white--text\",attrs:{\"small\":\"\",\"color\":\"secondary\",\"outlined\":\"\"}},'v-btn',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.$t('titles.edit'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\",\"small\":\"\"}},[_vm._v(\"mdi-pencil\")])],1)]}}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',{staticClass:\"pa-2\",attrs:{\"flat\":\"\",\"tile\":\"\",\"disabled\":_vm.loading}},[_c('dialog-title',{attrs:{\"headerText\":_vm.$t('titles.details')},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":_vm.close}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)]},proxy:true}])}),_c('v-form',{attrs:{\"id\":\"details-form\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.submit.apply(null, arguments)}},model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-card-text',{staticClass:\"edit-content\"},[_c('v-subheader',{staticClass:\"field-name\"},[_vm._v(\" \"+_vm._s(_vm.$t('titles.project-information'))+\" \")]),_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"9\"}},[_c('v-text-field',{attrs:{\"outlined\":\"\",\"dense\":\"\",\"autofocus\":\"\",\"rules\":[_vm.rules.required],\"placeholder\":_vm.$t('labels.name'),\"label\":_vm.$t('labels.name'),\"clearable\":\"\"},model:{value:(_vm.payload.Name),callback:function ($$v) {_vm.$set(_vm.payload, \"Name\", $$v)},expression:\"payload.Name\"}})],1),_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('v-text-field',{attrs:{\"outlined\":\"\",\"dense\":\"\",\"rules\":[_vm.rules.required],\"clearable\":\"\",\"placeholder\":_vm.$t('labels.number'),\"label\":_vm.$t('labels.number')},model:{value:(_vm.payload.ProjectNumber),callback:function ($$v) {_vm.$set(_vm.payload, \"ProjectNumber\", $$v)},expression:\"payload.ProjectNumber\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-text-field',{attrs:{\"outlined\":\"\",\"dense\":\"\",\"clearable\":\"\",\"placeholder\":_vm.$t('labels.address'),\"label\":_vm.$t('labels.address')},model:{value:(_vm.payload.AddressLine1),callback:function ($$v) {_vm.$set(_vm.payload, \"AddressLine1\", $$v)},expression:\"payload.AddressLine1\"}})],1),_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('v-text-field',{attrs:{\"outlined\":\"\",\"dense\":\"\",\"clearable\":\"\",\"placeholder\":_vm.$t('labels.zip'),\"label\":_vm.$t('labels.zip')},model:{value:(_vm.payload.PostNumber),callback:function ($$v) {_vm.$set(_vm.payload, \"PostNumber\", $$v)},expression:\"payload.PostNumber\"}})],1),_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('v-text-field',{attrs:{\"outlined\":\"\",\"dense\":\"\",\"clearable\":\"\",\"placeholder\":_vm.$t('labels.post-office'),\"label\":_vm.$t('labels.post-office')},model:{value:(_vm.payload.PostOffice),callback:function ($$v) {_vm.$set(_vm.payload, \"PostOffice\", $$v)},expression:\"payload.PostOffice\"}})],1),_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('v-text-field',{attrs:{\"outlined\":\"\",\"clearable\":\"\",\"dense\":\"\",\"placeholder\":_vm.$t('labels.street-number'),\"label\":_vm.$t('labels.street-number')},model:{value:(_vm.payload.StreetNumber),callback:function ($$v) {_vm.$set(_vm.payload, \"StreetNumber\", $$v)},expression:\"payload.StreetNumber\"}})],1),_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('v-text-field',{attrs:{\"outlined\":\"\",\"clearable\":\"\",\"dense\":\"\",\"placeholder\":_vm.$t('labels.usage-number'),\"label\":_vm.$t('labels.usage-number')},model:{value:(_vm.payload.UsageNumber),callback:function ($$v) {_vm.$set(_vm.payload, \"UsageNumber\", $$v)},expression:\"payload.UsageNumber\"}})],1),_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('v-text-field',{attrs:{\"outlined\":\"\",\"clearable\":\"\",\"dense\":\"\",\"placeholder\":_vm.$t('labels.housing-number'),\"label\":_vm.$t('labels.housing-number')},model:{value:(_vm.payload.HousingNumber),callback:function ($$v) {_vm.$set(_vm.payload, \"HousingNumber\", $$v)},expression:\"payload.HousingNumber\"}})],1),_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('v-text-field',{attrs:{\"outlined\":\"\",\"dense\":\"\",\"clearable\":\"\",\"placeholder\":_vm.$t('labels.section-number'),\"label\":_vm.$t('labels.section-number')},model:{value:(_vm.payload.SectionNumber),callback:function ($$v) {_vm.$set(_vm.payload, \"SectionNumber\", $$v)},expression:\"payload.SectionNumber\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-text-field',{attrs:{\"outlined\":\"\",\"dense\":\"\",\"clearable\":\"\",\"placeholder\":_vm.$t('labels.order-information'),\"label\":_vm.$t('labels.order-information')},model:{value:(_vm.payload.AdditionalInformation),callback:function ($$v) {_vm.$set(_vm.payload, \"AdditionalInformation\", $$v)},expression:\"payload.AdditionalInformation\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-text-field',{attrs:{\"outlined\":\"\",\"dense\":\"\",\"clearable\":\"\",\"placeholder\":_vm.$t('labels.price-information'),\"label\":_vm.$t('labels.price-information')},model:{value:(_vm.payload.PriceInfo),callback:function ($$v) {_vm.$set(_vm.payload, \"PriceInfo\", $$v)},expression:\"payload.PriceInfo\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-checkbox',{attrs:{\"dense\":\"\",\"label\":_vm.$t('labels.shared-project')},model:{value:(_vm.payload.Shared),callback:function ($$v) {_vm.$set(_vm.payload, \"Shared\", $$v)},expression:\"payload.Shared\"}})],1)],1)],1)],1),_c('v-card-actions',{staticClass:\"edit-actions\"},[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"secondary\",\"type\":\"submit\",\"loading\":_vm.loading,\"disabled\":!_vm.valid}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.update'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-check\")])],1),_c('v-btn',{on:{\"click\":_vm.close}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.close'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-close\")])],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { ref, defineComponent, onMounted } from '@vue/composition-api';\nimport { cleanSource } from '@/helpers/common';\nimport DialogTitle from '@/components/common/dialog-title/index.vue';\nimport { ProjectDetails } from '@/models/projects/interfaces';\nimport { useProject } from '@/modules/project';\nimport { translate } from '@/localization';\n\nconst valid = ref(false);\n\nexport default defineComponent({\n components: {\n DialogTitle,\n },\n setup(props, { emit }) {\n const {\n saveDetails,\n activeProjectOverview,\n getActiveProjectDetails,\n } = useProject();\n const dialog = ref(false);\n const loading = ref(false);\n const payload = ref({ Shared: true });\n\n const initDetails = async () => {\n if (activeProjectOverview?.value?.Id) {\n const details = await getActiveProjectDetails(\n activeProjectOverview.value.Id\n );\n if (details) payload.value = cleanSource(details);\n }\n };\n\n onMounted(async () => {\n await initDetails();\n });\n\n const close = async () => {\n await initDetails();\n dialog.value = false;\n };\n\n const submit = async () => {\n loading.value = true;\n if (payload.value.Id) {\n await saveDetails(payload.value.Id, payload.value);\n await close();\n emit('updated', true);\n }\n loading.value = false;\n };\n\n return {\n submit,\n close,\n loading,\n valid,\n payload,\n dialog,\n rules: {\n required: (v: string) => !!v || `${translate('validation.required')}`,\n min: (v: string) =>\n (v && v.length >= 8) ||\n `${translate('validation.minimum-characters', [8])}`,\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=358bd74f&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=358bd74f&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"358bd74f\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCheckbox,VCol,VContainer,VDialog,VForm,VIcon,VRow,VSpacer,VSubheader,VTextField})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { computed, ref } from '@vue/composition-api';\nimport EditDetails from '@/components/projects/details-edit-modal/index.vue';\nimport ContentBar from '@/components/common/content-bar/index.vue';\nimport { defineComponent } from '@vue/composition-api';\nimport { useProject } from '@/modules/project';\nimport Loader from '@/components/loader/index.vue';\n\nexport default defineComponent({\n components: {\n EditDetails,\n ContentBar,\n Loader,\n },\n setup() {\n const {\n activeProjectOverview,\n activeProjectDetails,\n getActiveProjectDetails,\n } = useProject();\n\n const loading = ref(false);\n\n const updateInfo = async () => {\n loading.value = true;\n if (activeProjectOverview?.value?.Id)\n await getActiveProjectDetails(activeProjectOverview.value.Id);\n loading.value = false;\n };\n\n const address = computed(() => {\n let text = '';\n\n if (!activeProjectDetails?.value) return text;\n if (activeProjectDetails.value.AddressLine1)\n text += activeProjectDetails.value.AddressLine1;\n if (\n activeProjectDetails.value.PostOffice ||\n activeProjectDetails.value.PostNumber\n ) {\n text += ', ';\n if (\n activeProjectDetails.value.PostOffice &&\n !activeProjectDetails.value.PostNumber\n ) {\n text += activeProjectDetails.value.PostOffice;\n } else if (\n activeProjectDetails.value.PostNumber &&\n !activeProjectDetails.value.PostOffice\n ) {\n text += activeProjectDetails.value.PostNumber;\n } else if (\n activeProjectDetails.value.PostNumber &&\n activeProjectDetails.value.PostOffice\n ) {\n text += `${activeProjectDetails.value.PostNumber} - ${activeProjectDetails.value.PostOffice}`;\n }\n }\n\n return text;\n });\n\n return {\n activeProjectDetails,\n address,\n loading,\n updateInfo,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=d4f7d4a8&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=d4f7d4a8&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d4f7d4a8\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemSubtitle } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCard,VCol,VDivider,VIcon,VList,VListItem,VListItemContent,VListItemIcon,VListItemSubtitle,VListItemTitle,VRow})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\nimport ContentBar from '@/components/common/content-bar/index.vue';\nimport DeleteProject from '@/components/projects/delete-project/index.vue';\nimport NewCalculation from '@/components/projects/new-calculation/index.vue';\nimport ExportProject from '@/components/projects/export-project/index.vue';\nimport { useProject } from '@/modules/project';\nimport Calculations from '@/components/projects/calculations/index.vue';\nimport ImportCalculation from '@/components/projects/import-calculation/index.vue';\nimport Reports from '@/components/reports/index.vue';\nimport ProjectDetails from '@/components/projects/details/index.vue';\nimport Contacts from '@/components/contacts/index.vue';\nimport KalkHelper from '@/components/common/kalk-helper/index.vue';\nimport { useLoader } from '@/modules/loader';\n\nexport default defineComponent({\n components: {\n ContentBar,\n DeleteProject,\n NewCalculation,\n Calculations,\n ExportProject,\n ImportCalculation,\n Reports,\n ProjectDetails,\n Contacts,\n KalkHelper,\n },\n props: {\n projectNumber: {\n type: String,\n required: false,\n },\n createNewCalculation: {\n type: Boolean,\n default: false,\n },\n calculationName: {\n type: String,\n required: false,\n },\n },\n setup(props) {\n const { activeProjectOverview, setActiveProjectByNumber } = useProject();\n const { loading } = useLoader();\n\n if (\n props.projectNumber !== undefined &&\n props.projectNumber !== activeProjectOverview.value?.ProjectNumber\n ) {\n setActiveProjectByNumber(props.projectNumber.toLowerCase());\n }\n\n return {\n props,\n activeProjectOverview,\n loading,\n documentationUrl: process.env.VUE_APP_DOCUMENTATION_URL,\n };\n },\n});\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProjectOverview.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProjectOverview.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ProjectOverview.vue?vue&type=template&id=b3ac3454&\"\nimport script from \"./ProjectOverview.vue?vue&type=script&lang=ts&\"\nexport * from \"./ProjectOverview.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCol,VContainer,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.buildingElement)?_c('div',[_c('library-drawer',{attrs:{\"elementId\":_vm.buildingElement.Id}}),_c('content-bar',{class:_vm.activateLibrary ? 'wrapper' : 'wrapper-wide',attrs:{\"title\":_vm.$t('titles.building-element'),\"breadcrumb\":_vm.buildingElement && _vm.buildingElement.Name},scopedSlots:_vm._u([{key:\"content-right\",fn:function(){return [_c('v-spacer'),_c('new-item',{attrs:{\"element\":_vm.buildingElement,\"primary\":true}}),(\n _vm.buildingElement.BuildingItems &&\n _vm.buildingElement.BuildingItems.length > 0\n )?_c('v-btn',{staticClass:\"ma-2 white--text\",attrs:{\"small\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){return _vm.initPriceUpdate(_vm.buildingElement)}}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.price-update'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\",\"small\":\"\"}},[_vm._v(\"mdi-update\")])],1):_vm._e(),_c('documentation',{attrs:{\"element\":_vm.buildingElement,\"primary\":true}}),_c('add-to-library',{attrs:{\"element\":_vm.buildingElement,\"primary\":true}}),_c('delete-element',{attrs:{\"element\":_vm.buildingElement,\"primary\":true,\"routeToCalculation\":true}}),_c('v-btn',{staticClass:\"ma-2\",attrs:{\"to\":_vm.PROJECT_CALCULATION_PATH,\"small\":\"\",\"icon\":\"\"}},[_c('v-icon',[_vm._v(\" mdi-close \")])],1)]},proxy:true}],null,false,4263917131)}),_c('v-container',{staticClass:\"grey lighten-5\",class:_vm.activateLibrary ? 'wrapper' : 'wrapper-wide',attrs:{\"fluid\":\"\"}},[_c('v-card-title',{staticClass:\"calc-card-title\"},[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-subheader',{staticClass:\"field-name\"},[_vm._v(\" \"+_vm._s(_vm.$t('titles.views'))+\" \")]),_c('v-btn-toggle',{attrs:{\"mandatory\":\"\",\"tile\":\"\",\"color\":\"secondary\",\"group\":\"\",\"dense\":\"\"}},[_c('v-btn',{on:{\"click\":function($event){_vm.columnView = _vm.CalculationColumnView.Calculation}}},[_vm._v(\" \"+_vm._s(_vm.$t('calculation.category1'))+\" \")]),_c('v-btn',{on:{\"click\":function($event){_vm.columnView = _vm.CalculationColumnView.HourlyConsumption}}},[_vm._v(\" \"+_vm._s(_vm.$t('calculation.category2'))+\" \")]),_c('v-btn',{on:{\"click\":function($event){_vm.columnView = _vm.CalculationColumnView.Materials}}},[_vm._v(\" \"+_vm._s(_vm.$t('calculation.category4'))+\" \")]),_c('v-btn',{on:{\"click\":function($event){_vm.columnView = _vm.CalculationColumnView.Delivery}}},[_vm._v(\" \"+_vm._s(_vm.$t('calculation.category6'))+\" \")]),_c('v-btn',{on:{\"click\":function($event){_vm.columnView = _vm.CalculationColumnView.Economy}}},[_vm._v(\" \"+_vm._s(_vm.$t('calculation.category3'))+\" \")])],1)],1),(\n _vm.buildingElement.ElementWarnings &&\n _vm.buildingElement.ElementWarnings.length > 0\n )?_c('v-alert',{staticClass:\"ele-warning\",attrs:{\"dense\":\"\",\"type\":\"warning\",\"tile\":\"\",\"color\":\"orange\",\"outlined\":\"\"}},_vm._l((_vm.buildingElement.ElementWarnings),function(warning,index){return _c('span',{key:index},[_vm._v(\" \"+_vm._s(_vm.$t(warning)))])}),0):_vm._e()],1),_c('v-row',{attrs:{\"dense\":\"\",\"align\":\"center\"}},[_vm._l((_vm.buildingElement.AdditionItems),function(additionItem){return _c('addition-item',{key:additionItem.Id,attrs:{\"additionItem\":additionItem,\"isSurface\":additionItem.Name !== 'Åpninger',\"expanded\":true}})}),_c('v-row',{staticClass:\"element-props\",attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-text-field',{staticClass:\"name-field head\",attrs:{\"hide-details\":\"\",\"label\":_vm.$t('labels.name'),\"outlined\":\"\",\"dense\":\"\"},on:{\"change\":function($event){return _vm.registerElementBatchOperation(_vm.buildingElement, _vm.BatchType.Save)},\"focus\":function($event){return $event.target.select()}},nativeOn:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.buildingElement.Name),callback:function ($$v) {_vm.$set(_vm.buildingElement, \"Name\", $$v)},expression:\"buildingElement.Name\"}})],1),(_vm.productionLineEnabled)?_c('v-col',{attrs:{\"cols\":\"2\"}},[_c('v-text-field',{staticClass:\"productionline-field head\",attrs:{\"hide-details\":\"\",\"outlined\":\"\",\"label\":_vm.$t('headers.productionline'),\"dense\":\"\"},on:{\"change\":function($event){return _vm.registerElementBatchOperation(_vm.buildingElement, _vm.BatchType.Save)},\"focus\":function($event){return $event.target.select()}},nativeOn:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.buildingElement.ProductionLine),callback:function ($$v) {_vm.$set(_vm.buildingElement, \"ProductionLine\", $$v)},expression:\"buildingElement.ProductionLine\"}})],1):_vm._e(),(_vm.amountEnabled)?_c('v-col',{attrs:{\"cols\":\"1\"}},[_c('v-text-field',{staticClass:\"font-bold emphasized-primary amount-field head\",attrs:{\"value\":_vm.buildingElement.Amount,\"hide-details\":\"\",\"outlined\":\"\",\"label\":_vm.$t('labels.amount'),\"dense\":\"\",\"type\":\"number\"},on:{\"input\":function($event){_vm.buildingElement.Amount = $event !== '' ? Number($event) : null},\"change\":function($event){return _vm.registerElementSaveChangesWithChildren(\n _vm.buildingElement,\n _vm.BatchType.Save\n )},\"focus\":function($event){return $event.target.select()}},nativeOn:{\"click\":function($event){$event.stopPropagation();}}})],1):_vm._e(),(_vm.buildingElement.Factor1Calculated.value && _vm.factor1Enabled)?_c('v-col',{attrs:{\"cols\":\"1\"}},[_c('v-text-field',{staticClass:\"emphasized-primary factor1-field head\",attrs:{\"value\":_vm.buildingElement.Factor1Calculated.value,\"hide-details\":\"\",\"outlined\":\"\",\"dense\":\"\",\"label\":_vm.$t('headers.factor1'),\"type\":\"number\"},on:{\"input\":function($event){_vm.buildingElement.Factor1Calculated.value =\n $event !== '' ? Number($event) : null},\"change\":function($event){return _vm.registerElementSaveChangesWithChildren(_vm.buildingElement)},\"focus\":function($event){return $event.target.select()}},nativeOn:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.buildingElement.Factor1Calculated.value),callback:function ($$v) {_vm.$set(_vm.buildingElement.Factor1Calculated, \"value\", _vm._n($$v))},expression:\"buildingElement.Factor1Calculated.value\"}})],1):_vm._e(),_c('v-col',{attrs:{\"cols\":\"1\"}},[_c('v-select',{staticClass:\"unit-field head\",attrs:{\"hide-details\":\"\",\"dense\":\"\",\"outlined\":\"\",\"items\":_vm.NS3420Units,\"label\":_vm.$t('labels.unit')},nativeOn:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.buildingElement.Unit.value),callback:function ($$v) {_vm.$set(_vm.buildingElement.Unit, \"value\", $$v)},expression:\"buildingElement.Unit.value\"}})],1),_c('v-col',{attrs:{\"cols\":_vm.commentWide ? 4 : 3}},[_c('v-text-field',{staticClass:\"name-field head\",attrs:{\"hide-details\":\"\",\"color\":\"secondary\",\"label\":_vm.$t('labels.comment'),\"outlined\":\"\",\"dense\":\"\"},on:{\"change\":function($event){return _vm.registerElementBatchOperation(_vm.buildingElement, _vm.BatchType.Save)},\"focus\":function($event){return $event.target.select()}},nativeOn:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.buildingElement.Comments),callback:function ($$v) {_vm.$set(_vm.buildingElement, \"Comments\", $$v)},expression:\"buildingElement.Comments\"}})],1)],1)],2),(\n _vm.buildingElement.BuildingItems &&\n _vm.buildingElement.BuildingItems.length > 0\n )?_c('v-subheader',{staticClass:\"field-name items-subheader\"},[_vm._v(\" \"+_vm._s(_vm.$t('titles.building-items'))+\" \")]):_vm._e(),(\n _vm.buildingElement.BuildingItems &&\n _vm.buildingElement.BuildingItems.length > 0\n )?_c('building-item',{attrs:{\"items\":_vm.buildingElement.BuildingItems,\"headers\":_vm.columns,\"calcElement\":_vm.buildingElement,\"smallVariant\":_vm.smallVariant,\"elevated\":true}}):_vm._e()],1),(_vm.updateProducts)?_c('price-update',{attrs:{\"active\":_vm.updateProducts,\"element\":_vm.buildingElement},on:{\"cancelUpdate\":_vm.cancelPriceUpdate}}):_vm._e(),_c('element-footer',{attrs:{\"element\":_vm.buildingElement}})],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-footer',{staticClass:\"footer-status\",attrs:{\"padless\":\"\",\"tile\":\"\",\"fixed\":\"\",\"app\":\"\"}},[(_vm.projectCalculation)?_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('v-list-item',{staticClass:\"hierarky-status\",attrs:{\"three-line\":\"\",\"dense\":\"\"}},[_c('v-list-item-content',[_c('v-list-item-title',[_c('span',{staticClass:\"prop-name\"},[_vm._v(_vm._s(_vm.$t('common.project'))+\":\")]),(_vm.activeProjectOverview.Name)?_c('span',[_vm._v(_vm._s(_vm.activeProjectOverview.Name))]):_vm._e()]),_c('v-list-item-subtitle',[_c('span',{staticClass:\"prop-name\"},[_vm._v(_vm._s(_vm.$t('common.calculation'))+\":\")]),(_vm.projectCalculation.Name)?_c('span',[_vm._v(_vm._s(_vm.projectCalculation.Name))]):_vm._e()]),_c('v-list-item-subtitle',[_c('span',{staticClass:\"prop-name\"},[_vm._v(_vm._s(_vm.$t('common.building-element'))+\":\")]),_c('span',[_vm._v(_vm._s(_vm.element.Name))])])],1)],1)],1),_c('v-col',{attrs:{\"cols\":\"5\"}},[_c('v-row',[_c('v-col',[_c('v-list-item',{staticClass:\"calculation-prop\",attrs:{\"two-line\":\"\"}},[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.element.BuildingItems ? _vm.element.BuildingItems.length : '0')+\" \")]),_c('v-list-item-subtitle',[_vm._v(_vm._s(_vm.$t('titles.building-items')))])],1)],1)],1),_c('v-col',[_c('v-list-item',{staticClass:\"calculation-prop\",attrs:{\"two-line\":\"\"}},[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.elementSumHours(_vm.element) ? _vm.elementSumHours(_vm.element).toLocaleString(_vm.$i18n.locale, { maximumFractionDigits: 0, }) : '0')+\" \")]),_c('v-list-item-subtitle',[_vm._v(_vm._s(_vm.$t('layout.sidebar-hours')))])],1)],1)],1),_c('v-col',[_c('v-list-item',{staticClass:\"calculation-prop\",attrs:{\"two-line\":\"\"}},[_c('v-list-item-content',[_c('v-list-item-title',{staticClass:\"emphasized-orange\"},[_vm._v(\" \"+_vm._s(_vm.elementSumSelfCostMaterialsSubContractors(_vm.element) ? _vm.elementSumSelfCostMaterialsSubContractors( _vm.element ).toLocaleString(_vm.$i18n.locale, { maximumFractionDigits: 0, }) : '0')+\" \")]),_c('v-list-item-subtitle',[_vm._v(_vm._s(_vm.$t('labels.material-cost')))])],1)],1)],1),_c('v-col',[_c('v-list-item',{staticClass:\"calculation-prop\",attrs:{\"two-line\":\"\"}},[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.elementSumMargin(_vm.element) ? _vm.elementSumMargin(_vm.element).toLocaleString(_vm.$i18n.locale, { maximumFractionDigits: 0, }) : '0')+\" \")]),_c('v-list-item-subtitle',[_vm._v(_vm._s(_vm.$t('layout.sidebar-gross-margin')))])],1)],1)],1),_c('v-col',[_c('v-list-item',{staticClass:\"calculation-prop\",attrs:{\"two-line\":\"\"}},[_c('v-list-item-content',[_c('v-list-item-title',{staticClass:\"emphasized-green\"},[_vm._v(\" \"+_vm._s(_vm.elementSumProfit(_vm.element) ? _vm.elementSumProfit(_vm.element).toLocaleString(_vm.$i18n.locale, { maximumFractionDigits: 0, }) : '0')+\" \")]),_c('v-list-item-subtitle',[_vm._v(_vm._s(_vm.$t('layout.sidebar-profit-margin')))])],1)],1)],1),_c('v-col',[_c('v-list-item',{staticClass:\"calculation-prop\",attrs:{\"two-line\":\"\"}},[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.elementSumTotal(_vm.element) ? _vm.elementSumTotal(_vm.element).toLocaleString(_vm.$i18n.locale, { maximumFractionDigits: 0, }) : '0')+\" \")]),_c('v-list-item-subtitle',[_vm._v(_vm._s(_vm.$t('layout.sidebar-total')))])],1)],1)],1)],1)],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-toolbar',{staticClass:\"calculation-actions\",attrs:{\"flat\":\"\",\"color\":\"#f5f5f5\"}},[_c('v-spacer'),_c('calculation-status'),_c('v-btn',{attrs:{\"dark\":\"\",\"to\":_vm.PROJECT_CALCULATION_PATH,\"color\":\"orange\"}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" mdi-arrow-left \")]),_vm._v(\" \"+_vm._s(_vm.$t('buttons.go-back-calculation'))+\" \")],1)],1)],1)],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, PropType } from '@vue/composition-api';\nimport Loader from '@/components/loader/index.vue';\nimport ElementPropItem from '@/components/calculation/building-elements/element-prop-item/index.vue';\nimport { PROJECT_CALCULATION_PATH } from '@/constants/routes';\nimport { BuildingElementCalculation } from '@/models/building-element/interfaces';\nimport { useCalculation } from '@/modules/calculation';\nimport CalculationStatus from '@/components/project-footer-status/calculation-status/index.vue';\nimport {\n elementSumHours,\n elementSumMargin,\n elementSumProfit,\n elementSumSelfCostMaterialsSubContractors,\n elementSumTotal,\n} from '@/helpers/building-element';\nimport { useProject } from '@/modules/project';\n\nexport default defineComponent({\n props: {\n element: {\n type: Object as PropType,\n },\n },\n components: {\n Loader,\n ElementPropItem,\n CalculationStatus,\n },\n setup() {\n const { projectCalculation } = useCalculation();\n const { activeProjectOverview } = useProject();\n return {\n elementSumHours,\n elementSumSelfCostMaterialsSubContractors,\n elementSumProfit,\n elementSumTotal,\n elementSumMargin,\n PROJECT_CALCULATION_PATH,\n projectCalculation,\n activeProjectOverview,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=4f64cac4&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=4f64cac4&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4f64cac4\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VFooter } from 'vuetify/lib/components/VFooter';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemSubtitle } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VBtn,VCol,VFooter,VIcon,VListItem,VListItemContent,VListItemSubtitle,VListItemTitle,VRow,VSpacer,VToolbar})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-select',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.calculations && _vm.activeCalculation),expression:\"calculations && activeCalculation\"}],staticClass:\"calculation-select\",attrs:{\"hide-details\":\"\",\"dense\":\"\",\"outlined\":\"\",\"items\":_vm.calculations,\"label\":_vm.activeCalculation.Name,\"value\":_vm.activeCalculation.Id,\"prepend-icon\":\"mdi-calculator\"},on:{\"input\":_vm.handleChange},scopedSlots:_vm._u([(_vm.activeCalculation)?{key:\"item\",fn:function(ref){\nvar item = ref.item;\nreturn [(item.Id !== _vm.activeCalculation.Id)?_c('div',[_c('v-icon',{staticClass:\"calc-icon\"},[_vm._v(_vm._s(_vm.getIconByProfessionCode( item.Profession && item.Profession.Code ? item.Profession.Code : item.ProfessionCode )))]),_vm._v(\" \"+_vm._s(item.Name)+\" \")],1):_vm._e()]}}:null],null,true)})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { getIconByProfessionCode } from '@/helpers/common';\nimport { translate } from '@/localization';\nimport { ProjectOverview } from '@/models/projects/interfaces';\nimport { useCalculation } from '@/modules/calculation';\nimport { useLoader } from '@/modules/loader';\nimport { useProject } from '@/modules/project';\nimport { useSnackbar } from '@/modules/snackbar';\nimport { computed, defineComponent } from '@vue/composition-api';\n\nexport default defineComponent({\n setup() {\n const { activeProjectOverview } = useProject();\n const { activeCalculation, setActiveCalculation } = useCalculation();\n const { startLoader, stopLoader } = useLoader();\n const { snack } = useSnackbar();\n\n const calculations = computed(() => {\n if (\n activeProjectOverview?.value?.Children &&\n activeCalculation?.value?.Id != null\n ) {\n const calcId = activeCalculation.value.Id;\n const calcs: Array = activeProjectOverview.value.Children.filter(\n calc => calc.Id !== calcId\n );\n return calcs ?? [];\n }\n });\n\n const handleChange = async (item: ProjectOverview) => {\n if (item.Id !== activeCalculation?.value?.Id) {\n await startLoader(`${translate('loader.calculation-changing')}`);\n await setActiveCalculation(item);\n await stopLoader();\n\n snack(`${translate('calculation.calculation-changed')}`, true);\n }\n };\n return {\n calculations,\n activeCalculation,\n getIconByProfessionCode,\n handleChange,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=470ee468&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=470ee468&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"470ee468\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\ninstallComponents(component, {VIcon,VSelect})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport {\n defineComponent,\n ref,\n ComputedRef,\n computed,\n} from '@vue/composition-api';\nimport ContentBar from '@/components/common/content-bar/index.vue';\nimport router from '@/router/index';\nimport {\n BuildingElementCalculation,\n ItemStatus,\n} from '@/models/building-element/interfaces';\nimport { useCalculation } from '@/modules/calculation';\nimport ElementFooter from '@/components/element-footer-status/index.vue';\nimport BuildingItem from '@/components/calculation/building-item/index.vue';\nimport ElementSwitcher from '@/components/calculation/building-elements/element-switcher/index.vue';\nimport AdditionItem from '@/components/calculation/addition-item/index.vue';\nimport NewItem from '@/components/calculation/new-building-item/index.vue';\nimport EditElement from '@/components/calculation/edit-element/index.vue';\nimport DeleteElement from '@/components/calculation/delete-element/index.vue';\nimport AddToLibrary from '@/components/calculation/building-elements/add-to-library/index.vue';\nimport Documentation from '@/components/documentation/index.vue';\nimport ElementWarnings from '@/components/calculation/building-elements/calc-element/element-warnings/index.vue';\nimport LibraryDrawer from '@/components/library/drawer/index.vue';\nimport { DataTableHeader } from '@/models/common/interfaces';\nimport { BatchType, CalculationColumnView } from '@/constants/enum';\nimport {\n BUILDING_ELEMENT_HEADERS_CALCULATION,\n BUILDING_ELEMENT_HEADERS_DELIVERY,\n BUILDING_ELEMENT_HEADERS_ECONOMY,\n BUILDING_ELEMENT_HEADERS_HOURLY_CONSUMPTION,\n BUILDING_ELEMENT_HEADERS_MATERIALS,\n} from '@/constants/table-headers';\nimport { PROJECT_CALCULATION_PATH } from '@/constants/routes';\nimport { useBatch } from '@/modules/batch';\nimport { translate } from '@/localization';\nimport PriceUpdate from '@/components/calculation/building-elements/calc-element/price-update/index.vue';\n\nexport default defineComponent({\n components: {\n ContentBar,\n ElementFooter,\n BuildingItem,\n ElementSwitcher,\n AdditionItem,\n NewItem,\n EditElement,\n DeleteElement,\n AddToLibrary,\n Documentation,\n ElementWarnings,\n LibraryDrawer,\n PriceUpdate,\n },\n setup() {\n const {\n projectCalculation,\n NS3420Units,\n activateLibrary,\n } = useCalculation();\n const {\n registerElementSaveChangesWithChildren,\n registerElementBatchOperation,\n } = useBatch();\n const columnView = ref(0);\n const smallVariant = ref(false);\n const updateProducts = ref(false);\n\n const columns = computed(() => {\n let headers: Array = [];\n switch (columnView.value) {\n case CalculationColumnView.Calculation:\n headers = BUILDING_ELEMENT_HEADERS_CALCULATION;\n break;\n case CalculationColumnView.HourlyConsumption:\n headers = BUILDING_ELEMENT_HEADERS_HOURLY_CONSUMPTION;\n break;\n case CalculationColumnView.Economy:\n headers = BUILDING_ELEMENT_HEADERS_ECONOMY;\n break;\n case CalculationColumnView.Materials:\n headers = BUILDING_ELEMENT_HEADERS_MATERIALS;\n break;\n case CalculationColumnView.Delivery:\n headers = BUILDING_ELEMENT_HEADERS_DELIVERY;\n break;\n }\n return headers;\n });\n\n const buildingElement: ComputedRef<\n BuildingElementCalculation | undefined\n > = computed(() => {\n return projectCalculation?.value?.BuildingElements.find(\n ele => ele.Id === router?.currentRoute?.query.elementId\n );\n });\n\n const amountEnabled = computed(() => {\n const enabledWhen: Array = [\n CalculationColumnView.Calculation,\n CalculationColumnView.HourlyConsumption,\n CalculationColumnView.Materials,\n CalculationColumnView.Economy,\n ];\n return enabledWhen.includes(columnView.value);\n });\n\n const commentWide = computed(() => {\n const enabledWhen: Array = [\n CalculationColumnView.Calculation,\n CalculationColumnView.Materials,\n CalculationColumnView.Economy,\n ];\n return enabledWhen.includes(columnView.value);\n });\n\n const milestoneEnabled = computed(() => {\n const enabledWhen: Array = [\n CalculationColumnView.Delivery,\n ];\n return enabledWhen.includes(columnView.value);\n });\n\n const factor1Enabled = computed(() => {\n const enabledWhen: Array = [\n CalculationColumnView.HourlyConsumption,\n ];\n return enabledWhen.includes(columnView.value);\n });\n\n const productionLineEnabled = computed(() => {\n const enabledWhen: Array = [\n CalculationColumnView.Delivery,\n ];\n return enabledWhen.includes(columnView.value);\n });\n\n const FDVEnabled = computed(() => {\n const enabledWhen: Array = [\n CalculationColumnView.Materials,\n CalculationColumnView.Delivery,\n ];\n return enabledWhen.includes(columnView.value);\n });\n\n const deliveryOrderEnabled = computed(() => {\n const enabledWhen: Array = [\n CalculationColumnView.Calculation,\n CalculationColumnView.Materials,\n CalculationColumnView.Delivery,\n ];\n return enabledWhen.includes(columnView.value);\n });\n const cancelPriceUpdate = () => {\n updateProducts.value = false;\n };\n\n const initPriceUpdate = async (element: BuildingElementCalculation) => {\n if (element.BuildingItems) {\n element.BuildingItems.forEach(item => {\n if (!item.NOBBNumber) {\n item.Status = {\n StatusColor: 'primary',\n StatusText: `${translate('info.no-nobbno')}`,\n StatusType: ItemStatus.MissingNobb,\n };\n }\n });\n }\n\n updateProducts.value = true;\n };\n\n return {\n registerElementSaveChangesWithChildren,\n registerElementBatchOperation,\n initPriceUpdate,\n cancelPriceUpdate,\n columns,\n updateProducts,\n columnView,\n smallVariant,\n CalculationColumnView,\n PROJECT_CALCULATION_PATH,\n amountEnabled,\n milestoneEnabled,\n factor1Enabled,\n productionLineEnabled,\n FDVEnabled,\n deliveryOrderEnabled,\n commentWide,\n BatchType,\n NS3420Units,\n buildingElement,\n activateLibrary,\n };\n },\n});\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BuildingElement.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BuildingElement.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BuildingElement.vue?vue&type=template&id=5c339035&scoped=true&\"\nimport script from \"./BuildingElement.vue?vue&type=script&lang=ts&\"\nexport * from \"./BuildingElement.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BuildingElement.vue?vue&type=style&index=0&id=5c339035&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5c339035\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VBtnToggle } from 'vuetify/lib/components/VBtnToggle';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VAlert,VBtn,VBtnToggle,VCardTitle,VCol,VContainer,VIcon,VRow,VSelect,VSpacer,VSubheader,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('content-bar',{attrs:{\"title\":_vm.$t('titles.environment'),\"breadcrumb\":_vm.activeCalculation && _vm.activeCalculation.Name},scopedSlots:_vm._u([{key:\"content-left\",fn:function(){return [_c('v-tooltip',{attrs:{\"bottom\":\"\",\"max-width\":\"400\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('a',{attrs:{\"href\":\"https://proresbrukerdok.refined.site/space/PB/108462088/Miljø+-+klimagassregnskap\",\"target\":\"_blank\"}},[_c('v-icon',_vm._g(_vm._b({attrs:{\"large\":\"\",\"color\":\"success\"}},'v-icon',attrs,false),on),[_vm._v(\" mdi-help-circle-outline \")])],1)]}}])},[_c('span',[_vm._v(_vm._s(_vm.$t('common.go-to-docs')))])])]},proxy:true},{key:\"content-right\",fn:function(){return [_c('GenerateReport')]},proxy:true}])}),(_vm.projectCalculation && _vm.projectCalculation.BuildingElements)?_c('div',[_c('CalculationEnvironmentalImpact',{attrs:{\"calculation\":_vm.projectCalculation}}),_vm._l((_vm.projectCalculation.BuildingElements),function(element,i){return _c('BuildingElementEnvironment',{key:i,attrs:{\"building-element\":element}})})],2):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.loading)?_c('div',[_c('v-card',{staticClass:\"ma-2\"},[_c('loader',{attrs:{\"margins\":\"\",\"text\":_vm.$t('environment.info.loading-environment-data', {\n name: _vm.props.buildingElement.Name,\n })}})],1)],1):_c('div',[_c('v-card',{staticClass:\"building-element-environment-card ma-2\",attrs:{\"tile\":\"\",\"elevation\":\"1\"}},[_c('v-card-title',[_vm._v(\" \"+_vm._s(_vm.props.buildingElement.Name)+\" \")]),_c('v-card-text',[_c('div',{staticClass:\"header-with-alerts\"},[_c('v-subheader',[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" mdi-toolbox \")]),_vm._v(\" \"+_vm._s(_vm.$t('titles.building-items'))+\" (\"+_vm._s(_vm.buildingElement.BuildingItems.length)+\")\")],1)],1),(_vm.buildingElement.BuildingItems)?_c('v-simple-table',{attrs:{\"dense\":\"\"}},[_c('thead',[_c('tr',[_c('th',[_vm._v(\" \"+_vm._s(_vm.$t('common.part'))+\" \")]),_c('th',[_vm._v(_vm._s(_vm.$t('environment.certificates')))]),_c('th',[_c('div',{staticClass:\"header-grid\"},[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t('environment.validation-date'))+\" \")]),_c('div',[_c('v-tooltip',{attrs:{\"bottom\":\"\",\"max-width\":\"400\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({attrs:{\"small\":\"\",\"right\":\"\",\"color\":\"info\"}},'v-icon',attrs,false),on),[_vm._v(\"mdi-alert-circle-outline\")])]}}],null,false,2300533796)},[_c('span',[_vm._v(_vm._s(_vm.$t('environment.info.validation-date')))])])],1)])]),_c('th',[_c('div',{staticClass:\"header-grid\"},[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t('environment.gwp-iobc'))+\" \")]),_c('div',[_c('v-tooltip',{attrs:{\"bottom\":\"\",\"max-width\":\"400\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({attrs:{\"small\":\"\",\"right\":\"\",\"color\":\"info\"}},'v-icon',attrs,false),on),[_vm._v(\"mdi-alert-circle-outline\")])]}}],null,false,2300533796)},[_c('span',[_vm._v(_vm._s(_vm.$t('environment.info.gwp-iobc')))])])],1)])]),_c('th',[_c('div',{staticClass:\"header-grid\"},[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t('environment.reference-unit'))+\" \")]),_c('div',[_c('v-tooltip',{attrs:{\"bottom\":\"\",\"max-width\":\"400\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({attrs:{\"small\":\"\",\"right\":\"\",\"color\":\"info\"}},'v-icon',attrs,false),on),[_vm._v(\"mdi-alert-circle-outline\")])]}}],null,false,2300533796)},[_c('span',[_vm._v(_vm._s(_vm.$t('environment.info.reference-unit')))])])],1)])]),_c('th',[_c('div',{staticClass:\"header-grid\"},[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t('labels.amount'))+\" \")]),_c('div',[_c('v-tooltip',{attrs:{\"bottom\":\"\",\"max-width\":\"400\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({attrs:{\"small\":\"\",\"right\":\"\",\"color\":\"info\"}},'v-icon',attrs,false),on),[_vm._v(\"mdi-alert-circle-outline\")])]}}],null,false,2300533796)},[_c('span',[_vm._v(_vm._s(_vm.$t('environment.info.amount')))])])],1)])]),_c('th',[_c('div',{staticClass:\"header-grid\"},[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t('headers.amountofmaterials'))+\" \")]),_c('div',[_c('v-tooltip',{attrs:{\"bottom\":\"\",\"max-width\":\"400\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({attrs:{\"small\":\"\",\"right\":\"\",\"color\":\"info\"}},'v-icon',attrs,false),on),[_vm._v(\"mdi-alert-circle-outline\")])]}}],null,false,2300533796)},[_c('span',[_vm._v(_vm._s(_vm.$t('environment.info.amountofmaterials')))])])],1)])]),_c('th',[_c('div',{staticClass:\"header-grid\"},[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t('environment.climate-imprint'))+\" \")]),_c('div',[_c('v-tooltip',{attrs:{\"bottom\":\"\",\"max-width\":\"400\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({attrs:{\"small\":\"\",\"right\":\"\",\"color\":\"info\"}},'v-icon',attrs,false),on),[_vm._v(\"mdi-alert-circle-outline\")])]}}],null,false,2300533796)},[_c('span',[_vm._v(_vm._s(_vm.$t('environment.info.climate-imprint')))])])],1)])]),_c('th')])]),_c('tbody',[_vm._l((_vm.buildingElement.BuildingItems),function(buildingItem,i){return [_c('BuildingItemEnvironmentRow',{key:i,attrs:{\"building-item\":buildingItem,\"nobb-item\":_vm.getNobbItemFromNobbNumber(buildingItem.NOBBNumber)}})]}),_c('tr',{staticClass:\"sum-row\"},[_c('td',[_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(_vm._s(_vm.$t('labels.sum')))])]),_c('td'),_c('td'),_c('td',[(_vm.computedSumGWP)?_c('div',{staticClass:\"font-weight-bold\"},[_vm._v(\" \"+_vm._s(((_vm.computedSumGWP.toLocaleString(_vm.$i18n.locale, { maximumFractionDigits: 10, })) + \" \" + (_vm.$t('environment.kg-carbondioxide-equivalent'))))+\" \")]):_c('div',[_vm._v(\"-\")])]),_c('td'),_c('td'),_c('td'),_c('td',[(_vm.computedCalculatedSumGWP)?_c('div',{staticClass:\"font-weight-bold\"},[_vm._v(\" \"+_vm._s(((_vm.computedCalculatedSumGWP.toLocaleString(_vm.$i18n.locale, { maximumFractionDigits: 10, })) + \" \" + (_vm.$t('environment.kg-carbondioxide-equivalent'))))+\" \")]):_c('div',[_vm._v(\"-\")])]),_c('td')])],2)]):_vm._e()],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (\n _vm.props.nobbItem &&\n _vm.props.buildingItem.NOBBNumber &&\n _vm.props.buildingItem.NOBBNumber === _vm.props.nobbItem.nobbNumber\n )?_c('tr',[_c('td',[_c('div',[_c('div',[_c('span',[_vm._v(_vm._s(_vm.props.buildingItem.Name))])]),_c('div',[_c('span',{staticClass:\"font-weight-medium\"},[_vm._v(\" \"+_vm._s(_vm.props.nobbItem.primaryText)+\" \")])])])]),_c('td',[_c('NobbItemCertificates',{attrs:{\"environment-certificates\":_vm.props.nobbItem.properties.environment}})],1),_c('td',[_c('ValidationDate',{attrs:{\"epd\":_vm.props.nobbItem.properties.epd}})],1),_c('td',[_c('EnvironmentImpact',{attrs:{\"epd\":_vm.props.nobbItem.properties.epd}})],1),_c('td',[_c('PriceUnit',{attrs:{\"nobb-item\":_vm.props.nobbItem,\"building-item-unit\":_vm.props.buildingItem.UnitForOrder}})],1),_c('td',[(_vm.props.buildingItem.AmountCalculated.value)?_c('div',[_vm._v(\" \"+_vm._s(_vm.props.buildingItem.AmountCalculated.value.toLocaleString( _vm.$i18n.locale, { maximumFractionDigits: 2, } ))+\" \"),(_vm.props.buildingItem.Unit)?_c('span',[_vm._v(\" \"+_vm._s(_vm.props.buildingItem.Unit)+\" \")]):_vm._e()]):_vm._e()]),_c('td',[(_vm.props.buildingItem.AmountOfMaterials.value)?_c('div',[_vm._v(\" \"+_vm._s(_vm.props.buildingItem.AmountOfMaterials.value.toLocaleString( _vm.$i18n.locale, { maximumFractionDigits: 2, } ))+\" \"),(_vm.props.buildingItem.UnitForOrder)?_c('span',[_vm._v(\" \"+_vm._s(_vm.props.buildingItem.UnitForOrder)+\" \")]):_vm._e()]):_vm._e()]),_c('td',[_c('CalculatedEnvironmentImpact',{attrs:{\"epd\":_vm.props.nobbItem.properties.epd,\"building-item-amount-calculated\":_vm.props.buildingItem.AmountOfMaterials.value,\"price-unit\":_vm.props.nobbItem.priceUnit,\"building-item-unit\":_vm.props.buildingItem.UnitForOrder}})],1),_c('td',[_c('v-menu',{staticClass:\"action-menu\",attrs:{\"left\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var menu = ref.on;\n var attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"action-menu\",attrs:{\"icon\":\"\",\"color\":\"primary\"}},'v-btn',attrs,false),Object.assign({}, menu)),[_c('v-icon',[_vm._v(\"mdi-dots-vertical\")])],1)]}}],null,false,2366626882)},[_c('v-list',{attrs:{\"dense\":\"\"}},[_c('v-list-item-group',{attrs:{\"color\":\"primary\"}},[(_vm.props.buildingItem.NOBBNumber)?_c('nobb-info',{attrs:{\"nobbNr\":_vm.props.buildingItem.NOBBNumber}}):_vm._e(),(_vm.props.nobbItem && _vm.props.nobbItem.properties.epd.length > 0)?_c('NobbItemEPDDialog',{attrs:{\"nobb-item\":_vm.props.nobbItem}}):_vm._e()],1)],1)],1)],1)]):_c('tr',{staticClass:\"unimportant\"},[_c('td',[_c('div',[_c('div',[_c('v-tooltip',{attrs:{\"bottom\":\"\",\"max-width\":\"400\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({attrs:{\"left\":\"\",\"color\":\"warning\"}},'v-icon',attrs,false),on),[_vm._v(\"mdi-alert-circle-outline\")])]}}])},[_c('span',[_vm._v(_vm._s(_vm.$t('info.no-nobbno')))])]),_vm._v(\" \"+_vm._s(_vm.props.buildingItem.Name)+\" \")],1)])]),_c('td'),_c('td'),_c('td'),_c('td'),_c('td'),_c('td'),_c('td'),_c('td')])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.calculatedCertificates.length === 0)?_c('div',[_vm._v(\" - \")]):(_vm.calculatedCertificates.length > 2)?_c('div',[_c('v-tooltip',{attrs:{\"bottom\":\"\",\"max-width\":\"400\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-chip',_vm._g(_vm._b({staticClass:\"mr-1\",attrs:{\"small\":\"\",\"outlined\":\"\"}},'v-chip',attrs,false),on),[_c('v-icon',{attrs:{\"left\":\"\",\"small\":\"\",\"color\":\"info\"}},[_vm._v(\"mdi-certificate\")]),_c('span',{staticClass:\"overflow-ellipsis\"},[_vm._v(_vm._s(_vm.calculatedCertificates[0].propertyName))])],1)]}}])},[_c('span',[_vm._v(_vm._s(_vm.calculatedCertificates[0].propertyDescription))])]),_c('v-tooltip',{attrs:{\"bottom\":\"\",\"max-width\":\"400\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-chip',_vm._g(_vm._b({staticClass:\"mr-1\",attrs:{\"small\":\"\",\"outlined\":\"\"}},'v-chip',attrs,false),on),[_c('v-icon',{attrs:{\"left\":\"\",\"small\":\"\",\"color\":\"info\"}},[_vm._v(\"mdi-certificate\")]),_c('span',{staticClass:\"overflow-ellipsis\"},[_vm._v(_vm._s(_vm.calculatedCertificates[1].propertyName))])],1)]}}])},[_c('span',[_vm._v(_vm._s(_vm.calculatedCertificates[1].propertyDescription))])]),_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar attrs = ref.attrs;\nvar on = ref.on;\nreturn [_c('v-chip',_vm._g(_vm._b({staticClass:\"mr-1\",attrs:{\"small\":\"\",\"outlined\":\"\"}},'v-chip',attrs,false),on),[_c('v-icon',{attrs:{\"left\":\"\",\"small\":\"\",\"color\":\"primary\"}},[_vm._v(\"mdi-plus\")]),_c('span',{staticClass:\"certificate-length\"},[_vm._v(_vm._s(_vm.calculatedCertificates.length - 2))])],1)]}}])},[_c('v-list',{attrs:{\"dense\":\"\"}},[_vm._l((_vm.calculatedCertificates),function(certificate,i){return [(i > 1)?_c('v-list-item',{key:i},[_c('v-tooltip',{attrs:{\"bottom\":\"\",\"max-width\":\"400\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-chip',_vm._g(_vm._b({attrs:{\"small\":\"\",\"outlined\":\"\"}},'v-chip',attrs,false),on),[_c('v-icon',{attrs:{\"left\":\"\",\"small\":\"\",\"color\":\"info\"}},[_vm._v(\"mdi-certificate\")]),_c('span',{staticClass:\"overflow-ellipsis\"},[_vm._v(\" \"+_vm._s(certificate.propertyName))])],1)]}}],null,true)},[_c('span',[_vm._v(_vm._s(certificate.propertyDescription))])])],1):_vm._e()]})],2)],1)],1):_c('div',_vm._l((_vm.calculatedCertificates),function(certificate){return _c('v-tooltip',{key:certificate.propertyGuid,attrs:{\"bottom\":\"\",\"max-width\":\"400\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-chip',_vm._g(_vm._b({staticClass:\"mr-1\",attrs:{\"small\":\"\",\"outlined\":\"\"}},'v-chip',attrs,false),on),[_c('v-icon',{attrs:{\"left\":\"\",\"small\":\"\",\"color\":\"info\"}},[_vm._v(\"mdi-certificate\")]),_vm._v(\" \"+_vm._s(certificate.propertyName)+\" \")],1)]}}],null,true)},[_c('span',[_vm._v(_vm._s(certificate.propertyDescription))])])}),1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { PropType, computed, defineComponent } from '@vue/composition-api';\nimport Loader from '@/components/loader/index.vue';\nimport { Environment } from '@/models/nobb/interfaces';\nimport { useEnvironment } from '@/modules/environment';\n\nexport default defineComponent({\n components: {\n Loader,\n },\n props: {\n environmentCertificates: {\n type: Array as PropType>,\n required: true,\n },\n },\n setup(props) {\n const { tryGetProductCertificates } = useEnvironment();\n const calculatedCertificates = computed(() =>\n tryGetProductCertificates(props.environmentCertificates)\n );\n return {\n props,\n calculatedCertificates,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NobbItemCertificates.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NobbItemCertificates.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NobbItemCertificates.vue?vue&type=template&id=23d5bcbc&scoped=true&\"\nimport script from \"./NobbItemCertificates.vue?vue&type=script&lang=ts&\"\nexport * from \"./NobbItemCertificates.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./NobbItemCertificates.vue?vue&type=style&index=0&id=23d5bcbc&lang=scss&scoped=true&\"\nimport style1 from \"./NobbItemCertificates.vue?vue&type=style&index=1&id=23d5bcbc&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"23d5bcbc\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VChip,VIcon,VList,VListItem,VMenu,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.props.epd.length > 0)?_c('div',[_vm._v(\" \"+_vm._s(_vm.moment(_vm.validationDate) .lang((\"\" + (_vm.$i18n.locale === 'no' ? 'nb' : _vm.$i18n.locale))) .format('Do MMMM YYYY'))+\" \"),(_vm.isValid)?_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"secondary\"}},[_vm._v(\"mdi-check\")]):_vm._e()],1):_c('div',[_vm._v(\"-\")])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\nimport { PropType, computed, defineComponent } from '@vue/composition-api';\nimport { Epd } from '@/models/nobb/interfaces';\nimport moment from 'moment';\nimport { useEnvironment } from '@/modules/environment';\n\nexport default defineComponent({\n props: {\n epd: {\n type: Array as PropType>,\n required: true,\n },\n },\n setup(props) {\n const { tryGetUnformatedEpdValidationDate } = useEnvironment();\n const validationDate = computed(() =>\n tryGetUnformatedEpdValidationDate(props.epd)\n );\n\n const isValid = !moment(validationDate.value).isBefore();\n return {\n props,\n validationDate,\n isValid,\n moment,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ValidationDate.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ValidationDate.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ValidationDate.vue?vue&type=template&id=324d0b40&\"\nimport script from \"./ValidationDate.vue?vue&type=script&lang=ts&\"\nexport * from \"./ValidationDate.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VIcon})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.numberA1A3)?_c('div',[_c('span',{staticClass:\"pr-1\"},[_vm._v(\" \"+_vm._s(_vm.numberA1A3.toLocaleString(_vm.$i18n.locale, { maximumFractionDigits: 10, }))+\" \")]),_c('span',[_vm._v(_vm._s(_vm.unit))])]):_c('div',[_vm._v(\" - \")])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { PropType, computed, defineComponent } from '@vue/composition-api';\nimport Loader from '@/components/loader/index.vue';\nimport { Epd } from '@/models/nobb/interfaces';\nimport { useEnvironment } from '@/modules/environment';\n\nexport default defineComponent({\n components: {\n Loader,\n },\n props: {\n epd: {\n type: Array as PropType>,\n required: true,\n },\n },\n setup(props) {\n const {\n tryGetEpdA1A3GWPIOBCNumber,\n tryGetEpdA1A3GWPIOBCUnit,\n } = useEnvironment();\n\n const numberA1A3 = computed(() => tryGetEpdA1A3GWPIOBCNumber(props.epd));\n const unit = computed(() => tryGetEpdA1A3GWPIOBCUnit(props.epd));\n return {\n props,\n numberA1A3,\n unit,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EnvironmentImpact.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EnvironmentImpact.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EnvironmentImpact.vue?vue&type=template&id=037c8709&\"\nimport script from \"./EnvironmentImpact.vue?vue&type=script&lang=ts&\"\nexport * from \"./EnvironmentImpact.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (\n _vm.buildingItemUnitIsEqualToPriceUnit &&\n _vm.props.priceUnit &&\n _vm.props.buildingItemUnit\n )?_c('div',[_c('span',{staticClass:\"pr-1\"},[_vm._v(\" \"+_vm._s(_vm.calculatedByAmount !== undefined ? _vm.calculatedByAmount.toLocaleString(_vm.$i18n.locale, { maximumFractionDigits: 10, }) : '-')+\" \")]),_c('span',[_vm._v(_vm._s(_vm.unit))])]):(_vm.props.priceUnit && _vm.props.buildingItemUnit)?_c('div',[_c('v-tooltip',{attrs:{\"bottom\":\"\",\"max-width\":\"400\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({attrs:{\"left\":\"\"}},'v-icon',attrs,false),on),[_vm._v(\"mdi-alert-circle-outline\")])]}}])},[_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('environment.reference-vs-building-item-unit', { reference: _vm.unitDescriptionConverter(_vm.props.priceUnit), used: _vm.props.buildingItemUnit, })))])])],1):_c('div',[_vm._v(\"-\")])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { PropType, computed, defineComponent } from '@vue/composition-api';\nimport { Epd } from '@/models/nobb/interfaces';\nimport { useEnvironment } from '@/modules/environment';\nimport { areUnitsEqual, unitDescriptionConverter } from '@/helpers/common';\n\nexport default defineComponent({\n props: {\n epd: {\n type: Array as PropType>,\n required: true,\n },\n buildingItemAmountCalculated: {\n type: Number,\n },\n buildingItemUnit: {\n type: String,\n },\n priceUnit: {\n type: String,\n },\n },\n setup(props) {\n const {\n tryGetEpdA1A3GWPIOBCUnit,\n tryGetEpdA1A3GWPIOBCNumber,\n } = useEnvironment();\n\n const numberA1A3IOBC = computed(() =>\n tryGetEpdA1A3GWPIOBCNumber(props.epd)\n );\n const unit = computed(() => tryGetEpdA1A3GWPIOBCUnit(props.epd));\n\n const calculatedByAmount = computed(() => {\n if (numberA1A3IOBC.value && props.buildingItemAmountCalculated) {\n return numberA1A3IOBC.value * props.buildingItemAmountCalculated;\n }\n });\n\n const buildingItemUnitIsEqualToPriceUnit = computed(() => {\n if (props.priceUnit && props.buildingItemUnit) {\n return areUnitsEqual(\n unitDescriptionConverter(props.priceUnit),\n props.buildingItemUnit\n );\n }\n });\n return {\n props,\n calculatedByAmount,\n buildingItemUnitIsEqualToPriceUnit,\n unitDescriptionConverter,\n unit,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CalculatedEnvironmentImpact.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CalculatedEnvironmentImpact.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CalculatedEnvironmentImpact.vue?vue&type=template&id=214d1cc2&\"\nimport script from \"./CalculatedEnvironmentImpact.vue?vue&type=script&lang=ts&\"\nexport * from \"./CalculatedEnvironmentImpact.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VIcon,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.nobbItem.priceUnit)?_c('div',{staticClass:\"comparison-grid\"},[_c('div',[_vm._v(\" \"+_vm._s(_vm.unitDescriptionConverter(_vm.nobbItem.priceUnit))+\" \")])]):_c('div',[_vm._v(\"-\")])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\nimport { PropType, defineComponent } from '@vue/composition-api';\nimport { NobbItem } from '@/models/nobb/interfaces';\nimport { unitDescriptionConverter } from '@/helpers/common';\n\nexport default defineComponent({\n props: {\n nobbItem: {\n type: Object as PropType,\n required: true,\n },\n },\n setup() {\n return {\n unitDescriptionConverter,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PriceUnit.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PriceUnit.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PriceUnit.vue?vue&type=template&id=e5bc34d6&scoped=true&\"\nimport script from \"./PriceUnit.vue?vue&type=script&lang=ts&\"\nexport * from \"./PriceUnit.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PriceUnit.vue?vue&type=style&index=0&id=e5bc34d6&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e5bc34d6\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"max-width\":_vm.nobbItem ? 900 : 500,\"retain-focus\":false},on:{\"click:outside\":_vm.close},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-list-item',_vm._g(_vm._b({},'v-list-item',attrs,false),on),[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"titles.epd-info\")))]),_c('v-list-item-icon',[_c('v-icon',{attrs:{\"right\":\"\",\"color\":\"primary\"}},[_vm._v(\"mdi-leaf\")])],1)],1)]}}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',{attrs:{\"flat\":\"\",\"tile\":\"\"}},[_c('v-card-title',[_vm._v(\" \"+_vm._s(_vm.$t(\"titles.epd-info\"))+\" \"),_c('v-spacer'),_c('v-icon',{attrs:{\"right\":\"\",\"color\":\"primary\"}},[_vm._v(\"mdi-leaf\")]),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":_vm.close}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1),_c('perfect-scrollbar',{attrs:{\"options\":{\n suppressScrollX: true,\n }}},[(_vm.props.nobbItem)?_c('v-card-text',{staticClass:\"pa-2\"},[_c('h3',{staticClass:\"pl-4\"},[_vm._v(_vm._s(_vm.props.nobbItem.primaryText))]),_c('v-simple-table',{attrs:{\"dense\":\"\"}},[_c('thead',[_c('tr',[_c('th',[_vm._v(_vm._s(_vm.$t('common.name')))]),_c('th')])]),_c('tbody',[_vm._l((_vm.props.nobbItem.properties.epd),function(epd,i){return [_c('tr',{key:i},[_c('td',[_vm._v(\" \"+_vm._s(epd.propertyName)+\" \")]),_c('td',[_vm._v(\" \"+_vm._s(_vm.valueWithUnit(epd))+\" \")])])]})],2)])],1):_vm._e()],1),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{on:{\"click\":_vm.close}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.close'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-close\")])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Epd, NobbItem } from '@/models/nobb/interfaces';\nimport { ref, defineComponent, PropType } from '@vue/composition-api';\nimport { translate } from '@/localization';\n\nexport default defineComponent({\n props: {\n nobbItem: {\n type: Object as PropType,\n },\n },\n setup(props) {\n const dialog = ref(false);\n const close = () => {\n dialog.value = false;\n };\n\n const valueWithUnit = (epd: Epd) => {\n switch (epd.unit) {\n case 'tekst':\n return epd.value;\n case 'kg CO2 eq.':\n return `${epd.value} ${translate(\n 'environment.kg-carbondioxide-equivalent'\n )}`;\n case 'år':\n return `${epd.value} ${translate('common.year')}`;\n case 'Ja/Nei':\n return epd.value === 'True'\n ? translate('common.yes')\n : translate('common.no');\n default:\n return `${epd.value} ${epd.unit}`;\n }\n };\n\n return {\n props,\n dialog,\n valueWithUnit,\n close,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NobbItemEPDDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NobbItemEPDDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NobbItemEPDDialog.vue?vue&type=template&id=eb334eb4&\"\nimport script from \"./NobbItemEPDDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./NobbItemEPDDialog.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VDialog,VIcon,VListItem,VListItemIcon,VListItemTitle,VSimpleTable,VSpacer})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { PropType, defineComponent } from '@vue/composition-api';\nimport { BuildingItemCalculation } from '@/models/building-element/interfaces';\nimport { NobbItem } from '@/models/nobb/interfaces';\nimport NobbItemCertificates from '@/components/environment/NobbItemCertificates.vue';\nimport ValidationDate from '@/components/environment/ValidationDate.vue';\nimport EnvironmentImpact from '@/components/environment/EnvironmentImpact.vue';\nimport CalculatedEnvironmentImpact from '@/components/environment/CalculatedEnvironmentImpact.vue';\nimport PriceUnit from '@/components/environment/PriceUnit.vue';\nimport NobbInfo from '@/components/nobb-info/index.vue';\nimport NobbItemEPDDialog from './NobbItemEPDDialog.vue';\n\nexport default defineComponent({\n components: {\n NobbItemCertificates,\n ValidationDate,\n EnvironmentImpact,\n PriceUnit,\n CalculatedEnvironmentImpact,\n NobbInfo,\n NobbItemEPDDialog,\n },\n props: {\n buildingItem: {\n type: Object as PropType,\n required: true,\n },\n nobbItem: {\n type: Object as PropType,\n },\n },\n setup(props) {\n return {\n props,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BuildingItemEnvironmentRow.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BuildingItemEnvironmentRow.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BuildingItemEnvironmentRow.vue?vue&type=template&id=9d179350&scoped=true&\"\nimport script from \"./BuildingItemEnvironmentRow.vue?vue&type=script&lang=ts&\"\nexport * from \"./BuildingItemEnvironmentRow.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BuildingItemEnvironmentRow.vue?vue&type=style&index=0&id=9d179350&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9d179350\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItemGroup } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VIcon,VList,VListItemGroup,VMenu,VTooltip})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport {\n PropType,\n computed,\n defineComponent,\n onMounted,\n ref,\n} from '@vue/composition-api';\nimport Loader from '@/components/loader/index.vue';\nimport { BuildingElementCalculation } from '@/models/building-element/interfaces';\nimport { NobbItem } from '@/models/nobb/interfaces';\nimport { useProductInfo } from '@/modules/product-info';\nimport { useCalculation } from '@/modules/calculation';\nimport BuildingItemEnvironmentRow from '@/components/environment/BuildingItemEnvironmentRow.vue';\nimport { useEnvironment } from '@/modules/environment';\n\nexport default defineComponent({\n components: {\n Loader,\n BuildingItemEnvironmentRow,\n },\n props: {\n buildingElement: {\n type: Object as PropType,\n required: true,\n },\n },\n setup(props) {\n const nobbItems = ref>([]);\n const loading = ref(false);\n\n const { projectCalculation } = useCalculation();\n const { getNobbItems } = useProductInfo();\n const {\n getBuildingElementSumGWP,\n getBuildingElementCalculatedSumGWP,\n extractNobbNosFromBuildingElement,\n } = useEnvironment();\n\n const getNobbItemFromNobbNumber = (nobbNumber?: Nullable) => {\n if (nobbNumber && nobbItems) {\n return nobbItems.value.find(item => item.nobbNumber === nobbNumber);\n }\n };\n\n const computedSumGWP = computed(() =>\n getBuildingElementSumGWP(props.buildingElement, nobbItems.value)\n );\n\n const computedCalculatedSumGWP = computed(() =>\n getBuildingElementCalculatedSumGWP(props.buildingElement, nobbItems.value)\n );\n\n const computedItemsMissingNobb = computed(() => {\n return props.buildingElement.BuildingItems.some(\n item => item.NOBBNumber === null || item.NOBBNumber === undefined\n );\n });\n\n const computedItemsMissingEPD = computed(() => {\n return nobbItems.value.some(item => item.properties.epd.length === 0);\n });\n\n onMounted(async () => {\n try {\n loading.value = true;\n nobbItems.value = await getNobbItems(\n extractNobbNosFromBuildingElement(props.buildingElement)\n );\n } finally {\n loading.value = false;\n }\n });\n\n return {\n getNobbItemFromNobbNumber,\n nobbItems,\n projectCalculation,\n props,\n loading,\n computedSumGWP,\n computedCalculatedSumGWP,\n computedItemsMissingNobb,\n computedItemsMissingEPD,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BuildingElementEnvironment.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BuildingElementEnvironment.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BuildingElementEnvironment.vue?vue&type=template&id=04ca90be&scoped=true&\"\nimport script from \"./BuildingElementEnvironment.vue?vue&type=script&lang=ts&\"\nexport * from \"./BuildingElementEnvironment.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BuildingElementEnvironment.vue?vue&type=style&index=0&id=04ca90be&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"04ca90be\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VCard,VCardText,VCardTitle,VIcon,VSimpleTable,VSubheader,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-card',{staticClass:\"building-element-environment-card ma-2 pa-2\",attrs:{\"tile\":\"\",\"elevation\":\"1\"}},[_c('v-card-title',[_vm._v(\" \"+_vm._s(_vm.props.calculation.Name)+\" \")]),_c('v-subheader',[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" mdi-home-outline \")]),_vm._v(_vm._s(_vm.$t('labels.building-elements'))+\" (\"+_vm._s(_vm.props.calculation.BuildingElements.length)+\")\")],1),(_vm.props.calculation.BuildingElements)?_c('v-simple-table',{attrs:{\"dense\":\"\"}},[_c('thead',[_c('tr',[_c('th',[_vm._v(\" \"+_vm._s(_vm.$t('common.building-element'))+\" \")]),_c('th',[_c('div',{staticClass:\"header-grid\"},[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t('environment.gwp-iobc'))+\" \")]),_c('div',[_c('v-tooltip',{attrs:{\"bottom\":\"\",\"max-width\":\"400\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({attrs:{\"small\":\"\",\"right\":\"\",\"color\":\"info\"}},'v-icon',attrs,false),on),[_vm._v(\"mdi-alert-circle-outline\")])]}}],null,false,2300533796)},[_c('span',[_vm._v(_vm._s(_vm.$t('environment.info.gwp-iobc')))])])],1)])]),_c('th',[_c('div',{staticClass:\"header-grid\"},[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t('environment.climate-imprint'))+\" \")]),_c('div',[_c('v-tooltip',{attrs:{\"bottom\":\"\",\"max-width\":\"400\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({attrs:{\"small\":\"\",\"right\":\"\",\"color\":\"info\"}},'v-icon',attrs,false),on),[_vm._v(\"mdi-alert-circle-outline\")])]}}],null,false,2300533796)},[_c('span',[_vm._v(_vm._s(_vm.$t('environment.info.climate-imprint')))])])],1)])])])]),_c('tbody',[_vm._l((_vm.props.calculation.BuildingElements),function(element,i){return [_c('BuildingElementSumRow',{key:i,attrs:{\"building-element\":element},on:{\"sum\":function (sum) { return (_vm.calculationSumTotal = _vm.calculationSumTotal + sum); },\"sum-calculated\":function (calc) { return (_vm.calculationCalculatedSumTotal =\n _vm.calculationCalculatedSumTotal + calc); }}})]}),_c('tr',{staticClass:\"sum-row\"},[_c('td',[_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(_vm._s(_vm.$t('labels.sum')))])]),_c('td',{staticClass:\"font-weight-bold\"},[(_vm.calculationSumTotal)?_c('div',[_vm._v(\" \"+_vm._s(((_vm.calculationSumTotal.toLocaleString(_vm.$i18n.locale, { maximumFractionDigits: 10, })) + \" \" + (_vm.$t('environment.kg-carbondioxide-equivalent'))))+\" \")]):_c('div',[_vm._v(\" - \")])]),_c('td',{staticClass:\"font-weight-bold\"},[(_vm.calculationCalculatedSumTotal)?_c('div',[_vm._v(\" \"+_vm._s(((_vm.calculationCalculatedSumTotal.toLocaleString( _vm.$i18n.locale, { maximumFractionDigits: 10, } )) + \" \" + (_vm.$t('environment.kg-carbondioxide-equivalent'))))+\" \")]):_c('div',[_vm._v(\" - \")])])])],2)]):_vm._e()],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',[_c('td',[_vm._v(_vm._s(_vm.props.buildingElement.Name))]),_c('td',{staticClass:\"text-left\"},[(_vm.loading)?_c('loader',{attrs:{\"small\":\"\"}}):(_vm.sumGWP)?_c('div',[_vm._v(\" \"+_vm._s(((_vm.sumGWP.toLocaleString(_vm.$i18n.locale, { maximumFractionDigits: 10, })) + \" \" + (_vm.$t('environment.kg-carbondioxide-equivalent'))))+\" \")]):_c('div',[_vm._v(\"-\")])],1),_c('td',[(_vm.loading)?_c('loader',{attrs:{\"small\":\"\"}}):(_vm.calculatedSumGWP)?_c('div',[_vm._v(\" \"+_vm._s(((_vm.calculatedSumGWP.toLocaleString(_vm.$i18n.locale, { maximumFractionDigits: 10, })) + \" \" + (_vm.$t('environment.kg-carbondioxide-equivalent'))))+\" \")]):_c('div',[_vm._v(\"-\")])],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport {\n PropType,\n defineComponent,\n onMounted,\n ref,\n} from '@vue/composition-api';\nimport { useEnvironment } from '@/modules/environment';\nimport { BuildingElementCalculation } from '@/models/building-element/interfaces';\nimport { NobbItem } from '@/models/nobb/interfaces';\nimport { useProductInfo } from '@/modules/product-info';\nimport Loader from '@/components/loader/index.vue';\n\nexport default defineComponent({\n components: {\n Loader,\n },\n props: {\n buildingElement: {\n type: Object as PropType,\n required: true,\n },\n },\n setup(props, { emit }) {\n const nobbItems = ref>([]);\n const loading = ref(false);\n const calculatedSumGWP = ref(0);\n const sumGWP = ref(0);\n\n const { getNobbItems } = useProductInfo();\n const {\n getBuildingElementSumGWP,\n getBuildingElementCalculatedSumGWP,\n extractNobbNosFromBuildingElement,\n } = useEnvironment();\n\n onMounted(async () => {\n try {\n loading.value = true;\n nobbItems.value = await getNobbItems(\n extractNobbNosFromBuildingElement(props.buildingElement)\n );\n } finally {\n loading.value = false;\n calculatedSumGWP.value = getBuildingElementCalculatedSumGWP(\n props.buildingElement,\n nobbItems.value\n );\n sumGWP.value = getBuildingElementSumGWP(\n props.buildingElement,\n nobbItems.value\n );\n\n emit('sum-calculated', calculatedSumGWP.value);\n emit('sum', sumGWP.value);\n }\n });\n return {\n props,\n loading,\n calculatedSumGWP,\n sumGWP,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BuildingElementSumRow.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BuildingElementSumRow.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BuildingElementSumRow.vue?vue&type=template&id=2cb55a1c&\"\nimport script from \"./BuildingElementSumRow.vue?vue&type=script&lang=ts&\"\nexport * from \"./BuildingElementSumRow.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { PropType, defineComponent, ref } from '@vue/composition-api';\nimport BuildingItemEnvironmentRow from '@/components/environment/BuildingItemEnvironmentRow.vue';\nimport { ProjectCalculation } from '@/models/calculation/interfaces';\nimport BuildingElementSumRow from '@/components/environment/BuildingElementSumRow.vue';\n\nexport default defineComponent({\n components: {\n BuildingItemEnvironmentRow,\n BuildingElementSumRow,\n },\n props: {\n calculation: {\n type: Object as PropType,\n required: true,\n },\n },\n setup(props) {\n const calculationSumTotal = ref(0);\n const calculationCalculatedSumTotal = ref(0);\n\n return {\n props,\n calculationSumTotal,\n calculationCalculatedSumTotal,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CalculationEnvironmentalImpact.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CalculationEnvironmentalImpact.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CalculationEnvironmentalImpact.vue?vue&type=template&id=91ab2064&scoped=true&\"\nimport script from \"./CalculationEnvironmentalImpact.vue?vue&type=script&lang=ts&\"\nexport * from \"./CalculationEnvironmentalImpact.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CalculationEnvironmentalImpact.vue?vue&type=style&index=0&id=91ab2064&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"91ab2064\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VCard,VCardTitle,VIcon,VSimpleTable,VSubheader,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"max-width\":\"900\",\"retain-focus\":false},on:{\"click:outside\":function($event){_vm.dialog = false}},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"ma-2\",attrs:{\"small\":\"\",\"dark\":\"\",\"color\":\"secondary\"}},'v-btn',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.$t('reports.environment-report'))+\" \"),_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g({attrs:{\"right\":_vm.$vuetify.breakpoint.xlOnly,\"small\":\"\"}},on),[_vm._v(\" mdi-file-chart \")])]}}],null,true)},[_c('span',[_vm._v(\"Tooltip\")])])],1)]}}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',{attrs:{\"flat\":\"\",\"tile\":\"\"}},[_c('v-card-title',{staticClass:\"report-title\"},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.calculation-reports'))+\" \"),_c('v-spacer'),_c('v-icon',{attrs:{\"large\":\"\",\"color\":\"primary\"}},[_vm._v(\"mdi-file-chart\")]),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.dialog = false}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1),_c('v-divider'),_c('v-card-text',{staticClass:\"report-message\"},[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"md\":\"6\",\"cols\":\"12\"}},[_c('v-list',{attrs:{\"shaped\":\"\",\"dense\":\"\"}},[_c('v-subheader',[_vm._v(_vm._s(_vm.$t('buttons.calculation-reports')))]),_c('v-list-item-group',{attrs:{\"color\":\"secondary\"},model:{value:(_vm.selectedItem),callback:function ($$v) {_vm.selectedItem=$$v},expression:\"selectedItem\"}},[_c('report',{attrs:{\"id\":_vm.ReportType.Environment,\"icon\":'mdi-information',\"text\":_vm.$t('reports.environment-report'),\"information\":_vm.$t('info.environment-report')}})],1)],1)],1),_c('v-col',{attrs:{\"md\":\"6\",\"cols\":\"12\"}},[_c('v-subheader',{staticClass:\"report-settings\"},[_vm._v(_vm._s(_vm.$t('titles.report-settings')))]),_c('v-row',{attrs:{\"dense\":\"\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"3\",\"align-self\":\"center\"}},[_vm._v(_vm._s(_vm.$t('labels.type')))]),_c('v-col',{attrs:{\"cols\":\"9\"}},[_c('v-btn-toggle',{staticClass:\"project-groups\",attrs:{\"mandatory\":\"\",\"tile\":\"\",\"color\":\"secondary\",\"group\":\"\",\"dense\":\"\"},model:{value:(_vm.options.FileType),callback:function ($$v) {_vm.$set(_vm.options, \"FileType\", $$v)},expression:\"options.FileType\"}},[_c('v-btn',{attrs:{\"value\":_vm.ReportFileType.PDF}},[_vm._v(\" PDF \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-file-pdf-box\")])],1),_c('v-btn',{attrs:{\"value\":_vm.ReportFileType.XLSX}},[_vm._v(\" EXCEL \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-microsoft-excel\")])],1)],1)],1),(_vm.options.FileType === _vm.ReportFileType.PDF)?_c('v-col',{attrs:{\"cols\":\"3\",\"align-self\":\"center\"}},[_vm._v(_vm._s(_vm.$t('common.fontsize')))]):_vm._e(),(_vm.options.FileType === _vm.ReportFileType.PDF)?_c('v-col',{attrs:{\"cols\":\"9\"}},[_c('v-select',{attrs:{\"items\":_vm.items,\"item-text\":\"name\",\"item-value\":\"value\",\"menu-props\":{ offsetY: true },\"dense\":\"\",\"outlined\":\"\",\"hide-details\":\"\",\"label\":(\"\" + (_vm.$t('common.fontsize')))},model:{value:(_vm.options.FontSize),callback:function ($$v) {_vm.$set(_vm.options, \"FontSize\", $$v)},expression:\"options.FontSize\"}})],1):_vm._e(),(_vm.includeBuildingElementsEnabled)?_c('v-col',{attrs:{\"cols\":\"3\"}}):_vm._e(),(_vm.includeBuildingElementsEnabled)?_c('v-col',{attrs:{\"cols\":\"9\"}},[_c('v-checkbox',{attrs:{\"dense\":\"\",\"hide-details\":\"\",\"label\":(\"\" + (_vm.$t('labels.include-building-elements')))},model:{value:(_vm.options.IncludeBuildingElements),callback:function ($$v) {_vm.$set(_vm.options, \"IncludeBuildingElements\", $$v)},expression:\"options.IncludeBuildingElements\"}})],1):_vm._e(),(_vm.includeBuildingItemsWithMissingNOBBEnabled)?_c('v-col',{attrs:{\"cols\":\"3\"}}):_vm._e(),(_vm.includeBuildingItemsWithMissingNOBBEnabled)?_c('v-col',{attrs:{\"cols\":\"9\"}},[_c('v-checkbox',{attrs:{\"dense\":\"\",\"disabled\":!_vm.options.IncludeBuildingElements,\"hide-details\":\"\",\"label\":(\"\" + (_vm.$t('labels.include-missing-nobbs')))},model:{value:(_vm.options.IncludeBuildingItemsWithMissingNOBB),callback:function ($$v) {_vm.$set(_vm.options, \"IncludeBuildingItemsWithMissingNOBB\", $$v)},expression:\"options.IncludeBuildingItemsWithMissingNOBB\"}})],1):_vm._e(),(_vm.includeBuildingItemsWithMissingEPDEnabled)?_c('v-col',{attrs:{\"cols\":\"3\"}}):_vm._e(),(_vm.includeBuildingItemsWithMissingEPDEnabled)?_c('v-col',{attrs:{\"cols\":\"9\"}},[_c('v-checkbox',{attrs:{\"dense\":\"\",\"disabled\":!_vm.options.IncludeBuildingElements,\"hide-details\":\"\",\"label\":(\"\" + (_vm.$t('labels.include-missing-epd')))},model:{value:(_vm.options.IncludeBuildingItemsWithMissingEPD),callback:function ($$v) {_vm.$set(_vm.options, \"IncludeBuildingItemsWithMissingEPD\", $$v)},expression:\"options.IncludeBuildingItemsWithMissingEPD\"}})],1):_vm._e()],1)],1)],1)],1),_c('v-card-actions',{staticClass:\"report-actions\"},[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"secondary\",\"disabled\":!_vm.valid,\"loading\":_vm.loading},on:{\"click\":_vm.submit}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.generate'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-cogs\")])],1),_c('v-btn',{on:{\"click\":function($event){_vm.dialog = false}}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.close'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-close\")])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { ref, defineComponent, computed } from '@vue/composition-api';\nimport Report from '@/components/reports/report/index.vue';\nimport { useReport } from '@/modules/report';\nimport { useCalculation } from '@/modules/calculation';\nimport { ReportFileType, ReportType } from '@/models/report/enums';\nimport { ReportOptions } from '@/models/report/interfaces';\nimport { useProject } from '@/modules/project';\nimport { translate } from '@/localization';\n\nexport default defineComponent({\n components: {\n Report,\n },\n setup() {\n const { generateReport } = useReport();\n const { updating } = useCalculation();\n const { activeProjectOverview } = useProject();\n const dialog = ref(false);\n const selectedItem = ref(ReportType.Environment);\n const loading = ref();\n const options = ref({\n DeliveryOrders: [],\n Calculations: [],\n FileType: ReportFileType.PDF,\n IncludeComments: true,\n IncludeAmounts: true,\n IncludeItemSums: false,\n IncludeElementSums: false,\n IncludePrecut: true,\n IncludeWithoutDeliveryOrder: true,\n IncludeBuildingItems: true,\n IncludeBuildingElements: true,\n IncludeBuildingItemsWithMissingEPD: true,\n IncludeBuildingItemsWithMissingNOBB: true,\n ShowProductName: true,\n FontSize: 'default',\n });\n\n const includeBuildingElementsEnabled = computed(() => {\n if (selectedItem.value == null) return false;\n const enabledWhen: Array = [ReportType.Environment];\n return enabledWhen.includes(selectedItem.value);\n });\n\n const includeBuildingItemsWithMissingNOBBEnabled = computed(() => {\n if (selectedItem.value == null) return false;\n const enabledWhen: Array = [ReportType.Environment];\n return enabledWhen.includes(selectedItem.value);\n });\n\n const includeBuildingItemsWithMissingEPDEnabled = computed(() => {\n if (selectedItem.value == null) return false;\n const enabledWhen: Array = [ReportType.Environment];\n return enabledWhen.includes(selectedItem.value);\n });\n\n const valid = computed(() => {\n return selectedItem.value !== undefined;\n });\n\n const submit = async () => {\n loading.value = true;\n if (selectedItem.value !== undefined) {\n await generateReport(selectedItem.value, options.value, false);\n }\n loading.value = false;\n };\n\n return {\n submit,\n dialog,\n selectedItem,\n options,\n ReportFileType,\n loading,\n updating,\n ReportType,\n valid,\n includeBuildingElementsEnabled,\n includeBuildingItemsWithMissingNOBBEnabled,\n includeBuildingItemsWithMissingEPDEnabled,\n activeProjectOverview,\n items: [\n { name: translate('common.default'), value: 'default' },\n { name: translate('common.large'), value: 'large' },\n ],\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GenerateReport.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GenerateReport.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GenerateReport.vue?vue&type=template&id=47057509&scoped=true&\"\nimport script from \"./GenerateReport.vue?vue&type=script&lang=ts&\"\nexport * from \"./GenerateReport.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./GenerateReport.vue?vue&type=style&index=0&id=47057509&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"47057509\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VBtnToggle } from 'vuetify/lib/components/VBtnToggle';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItemGroup } from 'vuetify/lib/components/VList';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VBtnToggle,VCard,VCardActions,VCardText,VCardTitle,VCheckbox,VCol,VDialog,VDivider,VIcon,VList,VListItemGroup,VRow,VSelect,VSpacer,VSubheader,VTooltip})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\nimport { useCalculation } from '@/modules/calculation';\nimport ContentBar from '@/components/common/content-bar/index.vue';\nimport BuildingElementEnvironment from '@/components/environment/BuildingElementEnvironment.vue';\nimport Reports from '@/components/reports/index.vue';\nimport CalculationEnvironmentalImpact from '@/components/environment/CalculationEnvironmentalImpact.vue';\nimport GenerateReport from '@/components/environment/GenerateReport.vue';\n\nexport default defineComponent({\n name: 'Environment',\n components: {\n ContentBar,\n BuildingElementEnvironment,\n Reports,\n CalculationEnvironmentalImpact,\n GenerateReport,\n },\n setup() {\n const { projectCalculation, activeCalculation } = useCalculation();\n\n return {\n projectCalculation,\n activeCalculation,\n };\n },\n});\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Environment.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Environment.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Environment.vue?vue&type=template&id=32bad15f&\"\nimport script from \"./Environment.vue?vue&type=script&lang=ts&\"\nexport * from \"./Environment.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VIcon,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"page-layout\"},[_c('replace-products',{attrs:{\"itemCalcs\":_vm.sameProduct},on:{\"closeEvent\":_vm.closeEvent,\"replaceAll\":_vm.replaceAll}}),_c('content-bar',{attrs:{\"title\":_vm.$t('titles.price-update'),\"breadcrumb\":_vm.projectCalculation && _vm.projectCalculation.Name},scopedSlots:_vm._u([{key:\"content-right\",fn:function(){return [_c('v-select',{staticClass:\"pricelists\",attrs:{\"dense\":\"\",\"outlined\":\"\",\"label\":_vm.$t('labels.choose-pricelist'),\"item-text\":\"Name\",\"items\":_vm.pricelists,\"return-object\":\"\",\"hide-details\":\"\",\"disabled\":_vm.loading},model:{value:(_vm.chosenPriceList),callback:function ($$v) {_vm.chosenPriceList=$$v},expression:\"chosenPriceList\"}}),_c('div',[_c('v-btn',{staticClass:\"mx-2\",attrs:{\"color\":\"primary\",\"disabled\":!_vm.chosenPriceList,\"loading\":_vm.fetchingPrices,\"small\":\"\"},on:{\"click\":_vm.fetchPrices}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.get-prices'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-bullseye-arrow\")])],1),_c('v-btn',{attrs:{\"color\":\"error\",\"disabled\":!_vm.pricesFetched,\"small\":\"\"},on:{\"click\":_vm.resetPriceMatches}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.reset'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-refresh\")])],1)],1)]},proxy:true}])}),_c('v-container',{staticClass:\"grey lighten-5 pa-0\",attrs:{\"fluid\":\"\"}},[(\n _vm.projectCalculation !== undefined &&\n _vm.projectCalculation.BuildingElements\n )?_c('v-simple-table',{staticClass:\"no-background-color overflow-y\",class:{ 'footer-margin': _vm.pricesFetched },attrs:{\"fixed-header\":\"\",\"height\":\"calc(100vh - 48px - 136px)\"}},[_c('thead',[_c('tr',[_c('th'),_c('th',[_vm._v(_vm._s(_vm.$t('headers.status')))]),_c('th',[_vm._v(_vm._s(_vm.$t('headers.product')))]),_c('th',[_vm._v(_vm._s(_vm.$t('headers.existing-price')))]),_c('th',[_vm._v(_vm._s(_vm.$t('headers.discount')))]),_c('th',[_vm._v(_vm._s(_vm.$t('headers.baseprice')))]),_c('th',[_vm._v(_vm._s(_vm.$t('headers.price-diff')))]),_c('th',[_vm._v(_vm._s(_vm.$t('headers.new-price')))]),_c('th',[_vm._v(_vm._s(_vm.$t('headers.amountprunit')))]),_c('th',[_vm._v(_vm._s(_vm.$t('headers.unitfororder')))]),_c('th',[_vm._v(_vm._s(_vm.$t('headers.new-unit')))]),_c('th',[_vm._v(_vm._s(_vm.$t('headers.pricelistname')))]),_c('th',[_vm._v(_vm._s(_vm.$t('headers.nobbnumber')))]),_c('th')])]),_vm._l((_vm.projectCalculation.BuildingElements),function(buildingElement){return [_c('tbody',{key:buildingElement.Id,staticClass:\"grey lighten-3\"},[_c('tr',{staticClass:\"remove-height\"},[_c('td',[_c('div',{staticClass:\"element-name-grid\"},[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t('labels.building-element'))+\" \")]),_c('div',{staticClass:\"pr-1\"},[_vm._v(\":\")]),_c('div',{staticClass:\"font-weight-bold\"},[_vm._v(\" \"+_vm._s(buildingElement.Name)+\" \")])])]),_c('td'),_c('td'),_c('td'),_c('td'),_c('td'),_c('td'),_c('td'),_c('td'),_c('td'),_c('td'),_c('td'),_c('td'),_c('td')])]),_vm._l((buildingElement.BuildingItems),function(buildingItem){return [_c('BuildingItemRow',{key:buildingItem.Id,attrs:{\"building-item\":buildingItem,\"is-enabled\":_vm.isEnabled(buildingItem),\"is-selected\":_vm.isSelected(buildingItem),\"actions-available\":_vm.pricesFetched},on:{\"toggle-select\":_vm.toggleSingle,\"update-product\":_vm.findItems,\"time-updated\":_vm.timeUpdated,\"amount-change\":function (item) { return _vm.amountChange(item); }}})]})]})],2):_vm._e()],1),_c('v-footer',{attrs:{\"fixed\":\"\",\"transition\":\"slide-y-transition\"}},[_c('div',{staticClass:\"status-grid\"},[(_vm.selected)?_c('div',{staticClass:\"selected-grid\"},[_c('div',{staticClass:\"pr-2\"},[_vm._v(_vm._s(_vm.$t('common.selected'))+\":\")]),_c('div',{staticClass:\"font-weight-medium\"},[_vm._v(_vm._s(_vm.selected.length))]),_c('div',{staticClass:\"px-1\"},[_vm._v(\"/\")]),_c('div',[_vm._v(_vm._s(_vm.computedTotalItemsCount))])]):_vm._e(),(_vm.computedValidPricesMatchesCount > 0)?_c('v-divider',{attrs:{\"vertical\":\"\"}}):_vm._e(),(_vm.computedValidPricesMatchesCount > 0)?_c('div',{staticClass:\"status-property-grid\"},[_c('v-icon',{attrs:{\"color\":\"secondary\"}},[_vm._v(\"mdi-circle-medium\")]),_c('div',{staticClass:\"pr-2 font-italic\"},[_vm._v(_vm._s(_vm.$t('info.match-price-diff'))+\":\")]),_c('div',{staticClass:\"font-weight-medium\"},[_vm._v(\" \"+_vm._s(_vm.computedValidPricesMatchesCount)+\" \")])],1):_vm._e(),(_vm.computedTotalHitWithUnitDiffBuildingItem > 0)?_c('v-divider',{attrs:{\"vertical\":\"\"}}):_vm._e(),(_vm.computedTotalHitWithUnitDiffBuildingItem > 0)?_c('div',{staticClass:\"status-property-grid\"},[_c('v-icon',{attrs:{\"color\":\"info\"}},[_vm._v(\"mdi-circle-medium\")]),_c('div',{staticClass:\"pr-2 font-italic\"},[_vm._v(_vm._s(_vm.$t('info.match-unit-diff'))+\":\")]),_c('div',{staticClass:\"font-weight-medium\"},[_vm._v(\" \"+_vm._s(_vm.computedTotalHitWithUnitDiffBuildingItem)+\" \")])],1):_vm._e(),(_vm.computedTotalNoHitBuildingItem > 0)?_c('v-divider',{attrs:{\"vertical\":\"\"}}):_vm._e(),(_vm.computedTotalNoHitBuildingItem > 0)?_c('div',{staticClass:\"status-property-grid\"},[_c('v-icon',{attrs:{\"color\":\"primary\"}},[_vm._v(\"mdi-circle-medium\")]),_c('div',{staticClass:\"pr-2 font-italic\"},[_vm._v(_vm._s(_vm.$t('info.match-no-hit'))+\":\")]),_c('div',{staticClass:\"font-weight-medium\"},[_vm._v(\" \"+_vm._s(_vm.computedTotalNoHitBuildingItem)+\" \")])],1):_vm._e(),(_vm.computedTotalNoNobbOnBuildingItem > 0 && _vm.selected)?_c('v-divider',{attrs:{\"vertical\":\"\"}}):_vm._e(),(_vm.computedTotalNoNobbOnBuildingItem > 0)?_c('div',{staticClass:\"status-property-grid\"},[_c('v-icon',{attrs:{\"color\":\"dark-grey\"}},[_vm._v(\"mdi-circle-medium\")]),_c('div',{staticClass:\"pr-2 font-italic\"},[_vm._v(_vm._s(_vm.$t('info.no-nobbno'))+\":\")]),_c('div',{staticClass:\"font-weight-medium\"},[_vm._v(\" \"+_vm._s(_vm.computedTotalNoNobbOnBuildingItem)+\" \")])],1):_vm._e()],1),_c('v-spacer'),(_vm.$vuetify.breakpoint.smAndUp)?_c('CalculationStatus'):_vm._e(),_c('v-btn',{staticClass:\"my-2\",attrs:{\"color\":\"secondary\",\"elevation\":\"0\",\"small\":\"\",\"disabled\":!_vm.valid || _vm.updating,\"loading\":_vm.updatingPrices},on:{\"click\":_vm.priceUpdate}},[_vm._v(_vm._s(_vm.$t('buttons.run-price-update'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-play\")])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tbody',{class:{\n 'no-nobb':\n _vm.buildingItem.Status !== null &&\n _vm.buildingItem.Status.StatusType === _vm.ItemStatus.MissingNobb,\n }},[_c('tr',{staticClass:\"remove-height white-background\"},[_c('td',[_c('div',{staticClass:\"product-with-check\"},[_c('v-simple-checkbox',{attrs:{\"value\":_vm.isSelected,\"ripple\":false,\"disabled\":!_vm.isEnabled},on:{\"click\":function($event){_vm.isEnabled && _vm.emit('toggle-select', _vm.buildingItem)}}}),_c('div',[_c('div',{staticClass:\"font-weight-medium\"},[_vm._v(\" \"+_vm._s(_vm.buildingItem.Name)+\" \")]),_c('div',[_vm._v(_vm._s(_vm.buildingItem.PriceListItemName))])])],1)]),_c('td',[_c('BuildingItemStatus',{attrs:{\"buildingItemCalc\":_vm.buildingItem}})],1),_c('td',[(\n _vm.buildingItem.PriceMatch &&\n _vm.buildingItem.PriceMatch.BuildingItemPriceListItemName\n )?_c('div',{staticClass:\"emphasize\"},[_vm._v(\" \"+_vm._s(_vm.buildingItem.PriceMatch.BuildingItemPriceListItemName)+\" \")]):_vm._e()]),_c('td',[_vm._v(\" \"+_vm._s(_vm.buildingItem.Price ? _vm.buildingItem.Price.toLocaleString(_vm.$i18n.locale, { maximumFractionDigits: 2, }) : '')+\" \")]),_c('td',[(\n _vm.buildingItem.PriceMatch &&\n _vm.buildingItem.PriceMatch.DiscountPercentage\n )?_c('div',[_vm._v(\" \"+_vm._s(_vm.buildingItem.PriceMatch.DiscountPercentage)+\" \")]):_vm._e()]),_c('td',[(_vm.buildingItem.PriceMatch && _vm.buildingItem.PriceMatch.BasePrice)?_c('div',[_vm._v(\" \"+_vm._s(_vm.buildingItem.PriceMatch.BasePrice)+\" \")]):_vm._e()]),_c('td',[_c('div',{staticClass:\"pricediff-grid\"},[(\n _vm.buildingItem.PriceMatch !== null &&\n (_vm.buildingItem.PriceMatch.PriceDifference.value <\n _vm.negativeThreshold ||\n _vm.buildingItem.PriceMatch.PriceDifference.value >\n _vm.positiveThreshold)\n )?_c('div',[_vm._v(\" \"+_vm._s(_vm.buildingItem.PriceMatch.PriceDifference.value.toLocaleString( _vm.$i18n.locale, { maximumFractionDigits: 2, } ))+\" \")]):(_vm.buildingItem.PriceMatch !== null)?_c('div',[_vm._v(\"0\")]):_vm._e(),(\n _vm.buildingItem.PriceMatch !== null &&\n _vm.buildingItem.PriceMatch.PriceDifference.value <\n _vm.negativeThreshold\n )?_c('v-icon',{attrs:{\"color\":\"secondary\"}},[_vm._v(\"mdi-trending-down\")]):(\n _vm.buildingItem.PriceMatch !== null &&\n _vm.buildingItem.PriceMatch.PriceDifference.value >\n _vm.positiveThreshold\n )?_c('v-icon',{attrs:{\"color\":\"error\"}},[_vm._v(\"mdi-trending-up\")]):_vm._e()],1)]),_c('td',[_c('div',{staticClass:\"emphasize\"},[_vm._v(\" \"+_vm._s(_vm.buildingItem.PriceMatch && _vm.buildingItem.PriceMatch.PriceListPrice ? _vm.buildingItem.PriceMatch.PriceListPrice.toLocaleString( _vm.$i18n.locale, { maximumFractionDigits: 2, } ) : '')+\" \")])]),_c('td',[(_vm.actionsAvailable)?_c('v-text-field',{staticClass:\"amountprunit\",attrs:{\"hide-details\":\"\",\"outlined\":\"\",\"dense\":\"\",\"type\":\"number\"},on:{\"change\":function($event){return _vm.emit('amount-change', _vm.buildingItem)},\"focus\":function($event){return $event.target.select()}},model:{value:(_vm.buildingItem.AmountPrUnit),callback:function ($$v) {_vm.$set(_vm.buildingItem, \"AmountPrUnit\", _vm._n($$v))},expression:\"buildingItem.AmountPrUnit\"}}):_c('div',[_vm._v(\" \"+_vm._s(_vm.buildingItem.AmountPrUnit ? _vm.buildingItem.AmountPrUnit.toLocaleString(_vm.$i18n.locale, { maximumFractionDigits: 2, }) : '')+\" \")])],1),_c('td',[_vm._v(_vm._s(_vm.buildingItem.UnitForOrder))]),_c('td',[(\n _vm.buildingItem.PriceMatch && _vm.buildingItem.PriceMatch.PriceListUnit\n )?_c('div',{class:_vm.buildingItem.PriceMatch.HasDifferentUnit.value\n ? 'emphasize-red'\n : 'emphasize'},[_vm._v(\" \"+_vm._s(_vm.buildingItem.PriceMatch.PriceListUnit)+\" \")]):_vm._e()]),_c('td',[_vm._v(_vm._s(_vm.buildingItem.PriceListName))]),_c('td',[_vm._v(_vm._s(_vm.buildingItem.NOBBNumber))]),_c('td',[_c('div',{staticClass:\"action-grid\"},[(_vm.actionsAvailable)?_c('get-product',{attrs:{\"itemCalc\":_vm.buildingItem,\"iconButton\":true},on:{\"product\":function (product) { return _vm.emit('update-product', product); }}}):_vm._e(),(_vm.actionsAvailable && !_vm.buildingItem.Precut)?_c('edit-time-estimate',{attrs:{\"item\":_vm.buildingItem,\"iconButton\":true},on:{\"updated\":function($event){return _vm.emit('time-updated', _vm.buildingItem)}}}):_vm._e(),(\n _vm.actionsAvailable &&\n _vm.buildingItem.IsTimeEstimateAdded.value === true &&\n !_vm.buildingItem.Precut\n )?_c('remove-time-estimate',{attrs:{\"item\":_vm.buildingItem,\"iconButton\":true},on:{\"updated\":function($event){return _vm.emit('time-updated', _vm.buildingItem)}}}):_vm._e(),(_vm.buildingItem.NOBBNumber)?_c('nobb-info',{attrs:{\"nobbNr\":_vm.buildingItem.NOBBNumber,\"iconButton\":true}}):_vm._e()],1)])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, PropType } from '@vue/composition-api';\nimport {\n BuildingItemCalculation,\n ItemStatus,\n} from '@/models/building-element/interfaces';\nimport BuildingItemStatus from '@/components/calculation/building-item/building-item-status/index.vue';\nimport EditTimeEstimate from '@/components/calculation/building-item/edit-time-estimate/index.vue';\nimport RemoveTimeEstimate from '@/components/calculation/building-item/remove-time-estimate/index.vue';\nimport GetProduct from '@/components/calculation/get-product/index.vue';\nimport NobbInfo from '@/components/nobb-info/index.vue';\n\nexport default defineComponent({\n components: {\n BuildingItemStatus,\n EditTimeEstimate,\n RemoveTimeEstimate,\n GetProduct,\n NobbInfo,\n },\n props: {\n buildingItem: {\n type: Object as PropType,\n required: true,\n },\n isEnabled: {\n type: Boolean,\n },\n isSelected: {\n type: Boolean,\n },\n actionsAvailable: {\n type: Boolean,\n },\n },\n setup(props, { emit }) {\n const positiveThreshold = 0.01;\n const negativeThreshold = -0.01;\n return { ItemStatus, emit, positiveThreshold, negativeThreshold };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BuildingItemRow.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BuildingItemRow.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BuildingItemRow.vue?vue&type=template&id=7f10986e&scoped=true&\"\nimport script from \"./BuildingItemRow.vue?vue&type=script&lang=ts&\"\nexport * from \"./BuildingItemRow.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BuildingItemRow.vue?vue&type=style&index=0&id=7f10986e&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7f10986e\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSimpleCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VIcon,VSimpleCheckbox,VTextField})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport {\n computed,\n defineComponent,\n onMounted,\n onUnmounted,\n ref,\n} from '@vue/composition-api';\nimport ContentBar from '@/components/common/content-bar/index.vue';\nimport { useCalculation } from '@/modules/calculation';\nimport { areUnitsEqual, unitDescriptionConverter } from '@/helpers/common';\nimport BuildingItemRow from '@/components/price-update/BuildingItemRow.vue';\nimport { usePriceBook } from '@/modules/pricebook';\nimport { useBuildingItem } from '@/modules/building-item';\nimport { useBatch } from '@/modules/batch';\nimport {\n PriceListTreeNode,\n PriceMatch,\n SearchablePriceListItem,\n} from '@/models/pricebook/interfaces';\nimport {\n BuildingElementCalculation,\n BuildingItemCalculation,\n ItemStatus,\n} from '@/models/building-element/interfaces';\nimport { BatchType } from '@/constants/enum';\nimport { ItemWithProduct } from '@/models/common/interfaces';\nimport { calculatedPrice } from '@/helpers/pricebook';\nimport EditTimeEstimate from '@/components/calculation/building-item/edit-time-estimate/index.vue';\nimport RemoveTimeEstimate from '@/components/calculation/building-item/remove-time-estimate/index.vue';\nimport GetProduct from '@/components/calculation/get-product/index.vue';\nimport NobbInfo from '@/components/nobb-info/index.vue';\nimport { translate } from '@/localization';\nimport CalculationStatus from '@/components/project-footer-status/calculation-status/index.vue';\nimport ReplaceProducts from '@/components/calculation/building-item/replace-products/index.vue';\n\nexport default defineComponent({\n components: {\n ContentBar,\n BuildingItemRow,\n EditTimeEstimate,\n RemoveTimeEstimate,\n GetProduct,\n NobbInfo,\n CalculationStatus,\n ReplaceProducts,\n },\n setup() {\n const {\n projectCalculation,\n updating,\n getItemsWithSimilarProduct,\n } = useCalculation();\n const {\n getPriceLists,\n updatePricesFromNOBBNumbers,\n pricelists,\n } = usePriceBook();\n const { updateBuildingItemPrices } = useBuildingItem();\n const {\n registerItemSaveChangesWithAdditionAndParent,\n registerBuildingItemBatchOperation,\n registerBuildingItemsBatchOperation,\n } = useBatch();\n\n const loading = ref(false);\n const fetchingPrices = ref(false);\n const updatingPrices = ref(false);\n const chosenPriceList = ref();\n const pricesFetched = ref(false);\n const selected = ref>();\n const searchablePriceListItems = ref>();\n const sameProduct = ref>();\n const product = ref();\n\n onMounted(async () => {\n loading.value = true;\n await getPriceLists();\n loading.value = false;\n selected.value = [];\n\n if (\n projectCalculation === undefined ||\n projectCalculation.value === undefined\n ) {\n throw Error('Unexpected undefined calculation');\n }\n projectCalculation.value.BuildingElements.forEach(element => {\n element.BuildingItems.forEach(item => {\n if (!item.NOBBNumber) {\n item.Status = {\n StatusColor: 'dark-grey',\n StatusText: `${translate('info.no-nobbno')}`,\n StatusType: ItemStatus.MissingNobb,\n };\n }\n });\n });\n });\n\n const closeEvent = () => {\n sameProduct.value = [];\n product.value = undefined;\n };\n\n const findItems = async (iwp: ItemWithProduct) => {\n if (!iwp.Item?.Id) return;\n\n if (iwp.Item.NOBBNumber) {\n sameProduct.value = getItemsWithSimilarProduct(\n iwp.Item.NOBBNumber,\n iwp.Item.Id\n );\n }\n\n product.value = iwp.PriceListItem;\n iwp.Item.NOBBNumber = product.value.NobbNumber;\n iwp.Item.Price = calculatedPrice(product.value);\n iwp.Item.UnitForOrder = product.value.Unit;\n iwp.Item.PriceListItemName = product.value.Name;\n iwp.Item.PriceListName = product.value.PriceListName;\n iwp.Item.IsModifiedRecently = true;\n\n registerBuildingItemBatchOperation(iwp.Item, BatchType.Save);\n };\n\n const replaceAll = async () => {\n if (sameProduct.value && product.value) {\n for (const item of sameProduct.value) {\n item.NOBBNumber = product.value.NobbNumber;\n item.Price = calculatedPrice(product.value);\n item.UnitForOrder = product.value.Unit;\n item.PriceListItemName = product.value.Name;\n item.PriceListName = product.value.PriceListName;\n item.IsModifiedRecently = true;\n }\n registerBuildingItemsBatchOperation(sameProduct.value, BatchType.Save);\n closeEvent();\n }\n };\n\n const computedValidPricesMatchesCount = computed(() => {\n let count = 0;\n if (projectCalculation.value?.BuildingElements) {\n projectCalculation.value.BuildingElements.forEach(element => {\n count += element.BuildingItems.filter(\n item => item.Status?.StatusType === ItemStatus.MatchWithPriceDiff\n ).length;\n });\n }\n return count;\n });\n\n const computedTotalItemsCount = computed(() => {\n let count = 0;\n if (projectCalculation.value?.BuildingElements) {\n projectCalculation.value.BuildingElements.forEach(element => {\n count += element.BuildingItems.length;\n });\n }\n return count;\n });\n\n const computedTotalNoNobbOnBuildingItem = computed(() => {\n let count = 0;\n if (projectCalculation.value?.BuildingElements) {\n projectCalculation.value.BuildingElements.forEach(element => {\n count += element.BuildingItems.filter(\n item => item.NOBBNumber === null || item.NOBBNumber === undefined\n ).length;\n });\n }\n return count;\n });\n\n const computedTotalHitWithUnitDiffBuildingItem = computed(() => {\n let count = 0;\n if (projectCalculation.value?.BuildingElements) {\n projectCalculation.value.BuildingElements.forEach(element => {\n count += element.BuildingItems.filter(\n item => item.Status?.StatusType === ItemStatus.MatchWithUnitDiff\n ).length;\n });\n }\n return count;\n });\n\n const computedTotalNoHitBuildingItem = computed(() => {\n let count = 0;\n if (projectCalculation.value?.BuildingElements) {\n projectCalculation.value.BuildingElements.forEach(element => {\n count += element.BuildingItems.filter(\n item =>\n item.Status?.StatusType === ItemStatus.MatchNoDiff &&\n item.NOBBNumber\n ).length;\n });\n }\n return count;\n });\n\n const clearPriceMatches = () => {\n if (projectCalculation.value?.BuildingElements) {\n projectCalculation.value.BuildingElements.forEach(element => {\n element.BuildingItems.forEach(item => {\n item.PriceMatch = null;\n item.Status = null;\n });\n });\n\n projectCalculation.value.BuildingElements.forEach(element => {\n element.BuildingItems.forEach(item => {\n if (!item.NOBBNumber) {\n item.Status = {\n StatusColor: 'dark-grey',\n StatusText: `${translate('info.no-nobbno')}`,\n StatusType: ItemStatus.MissingNobb,\n };\n }\n });\n });\n }\n };\n\n const reset = () => {\n pricesFetched.value = false;\n selected.value = [];\n searchablePriceListItems.value = undefined;\n\n clearPriceMatches();\n };\n\n const resetPriceMatches = () => {\n reset();\n chosenPriceList.value = undefined;\n };\n\n const toggleSingle = (item: BuildingItemCalculation) => {\n if (!selected.value) selected.value = [];\n\n const index = selected.value.findIndex(i => i.Id === item.Id);\n if (index >= 0) {\n selected.value.splice(index, 1);\n } else {\n selected.value.push(item);\n }\n };\n const isSelected = (item: BuildingItemCalculation) => {\n if (!selected.value) return;\n\n return selected.value.findIndex(i => i.Id === item.Id) >= 0;\n };\n\n const updatePriceMatchStatus = (\n elements: Array\n ) => {\n elements.forEach(element => {\n element.BuildingItems.forEach(item => {\n if (item.PriceMatch) {\n if (item.PriceMatch.HasDifferentUnit.value) {\n item.Status = {\n StatusColor: 'info',\n StatusText: `${translate('info.match-unit-diff')}`,\n StatusType: ItemStatus.MatchWithUnitDiff,\n };\n } else if (item.PriceMatch.HasPrice.value) {\n item.Status = {\n StatusColor: 'secondary',\n StatusText: `${translate('info.match-price-diff')}`,\n StatusType: ItemStatus.MatchWithPriceDiff,\n };\n }\n } else if (item.NOBBNumber) {\n item.Status = {\n StatusColor: 'primary',\n StatusText: `${translate('info.match-no-hit')}`,\n StatusType: ItemStatus.MatchNoDiff,\n };\n }\n });\n });\n };\n\n const setPriceMatches = (\n elements: Array,\n priceListItems: Array,\n withoutChecking?: boolean\n ) => {\n elements.forEach(element => {\n element.BuildingItems.forEach(item => {\n const priceListItem = priceListItems.find(\n pItem => item.NOBBNumber && item.NOBBNumber === pItem.NobbNumber\n );\n\n if (priceListItem) {\n const priceMatch: PriceMatch = {\n BuildingElementId: item.BuildingElementId ?? null,\n BuildingElementName: item.BuildingElement?.Name ?? null,\n BuildingItemId: item.Id,\n Name: item.Name,\n NobbNumber: item.NOBBNumber ?? null,\n Price: item.Price ?? null,\n BuildingItemPriceListItemName: item.PriceListItemName,\n BuildingItemPriceListName: item.PriceListName ?? null,\n UnitForOrder: item.UnitForOrder,\n PriceDifference: computed(() => {\n let diff = 0;\n if (priceMatch.Price && priceMatch.PriceListPrice) {\n diff = priceMatch.PriceListPrice - priceMatch.Price;\n }\n return diff;\n }),\n HasDifferentUnit: computed(() => {\n let diffUnit = false;\n\n if (priceMatch.UnitForOrder && priceMatch.PriceListUnit) {\n diffUnit = !areUnitsEqual(\n priceMatch.UnitForOrder,\n unitDescriptionConverter(priceMatch.PriceListUnit)\n );\n }\n return diffUnit;\n }),\n HasPrice: computed(() => {\n let priceFound = false;\n\n if (\n priceMatch.PriceListPrice != null &&\n priceMatch.PriceListPrice !== 0\n ) {\n priceFound = true;\n }\n return priceFound;\n }),\n ShouldAutoSelect: computed(() => {\n return (\n priceMatch.HasPrice.value &&\n !priceMatch.HasDifferentUnit.value\n );\n }),\n PriceListItemName: priceListItem.Name,\n PriceListUnit: priceListItem.Unit,\n DiscountPercentage: priceListItem.DiscountPercentage ?? null,\n BasePrice: priceListItem.BasePrice ?? null,\n PriceListPrice: 0,\n };\n\n if (priceListItem.BasePrice) {\n let discountPercentage = 0;\n\n if (priceListItem.DiscountPercentage) {\n discountPercentage = priceListItem.DiscountPercentage;\n }\n\n priceMatch.PriceListPrice =\n (priceListItem.BasePrice * (100 - discountPercentage)) / 100;\n }\n\n item.PriceMatch = priceMatch;\n if (priceMatch.ShouldAutoSelect.value && !withoutChecking) {\n toggleSingle(item);\n }\n }\n });\n });\n\n updatePriceMatchStatus(elements);\n };\n\n const fetchPrices = async () => {\n if (!chosenPriceList.value?.Id) return;\n\n const nobbs: Array = [];\n\n reset();\n\n projectCalculation.value?.BuildingElements.forEach(element => {\n element.BuildingItems.forEach(bi => {\n if (bi.NOBBNumber) {\n nobbs.push(bi.NOBBNumber);\n }\n });\n });\n\n fetchingPrices.value = true;\n\n try {\n searchablePriceListItems.value = await updatePricesFromNOBBNumbers(\n chosenPriceList.value.Id,\n nobbs\n );\n pricesFetched.value = true;\n } catch (e) {\n console.log(e);\n } finally {\n fetchingPrices.value = false;\n }\n\n if (\n searchablePriceListItems.value &&\n projectCalculation.value !== undefined\n ) {\n setPriceMatches(\n projectCalculation.value.BuildingElements,\n searchablePriceListItems.value\n );\n }\n };\n\n const amountChange = (item: BuildingItemCalculation) => {\n if (\n searchablePriceListItems.value &&\n projectCalculation.value?.BuildingElements\n ) {\n registerItemSaveChangesWithAdditionAndParent(item);\n setPriceMatches(\n projectCalculation.value.BuildingElements,\n searchablePriceListItems.value,\n true\n );\n }\n };\n\n const valid = computed(() => {\n let canUpdate = true;\n\n if (!pricesFetched.value) {\n canUpdate = false;\n }\n\n if (!selected.value || selected.value.length === 0) {\n canUpdate = false;\n }\n\n return canUpdate;\n });\n\n const priceUpdate = async () => {\n if (!valid || !selected.value || !chosenPriceList.value?.Name) return;\n\n updatingPrices.value = true;\n await updateBuildingItemPrices(\n selected.value,\n chosenPriceList.value.Name\n );\n updatingPrices.value = false;\n resetPriceMatches();\n };\n\n const isEnabled = (item: BuildingItemCalculation) => {\n let enable = true;\n\n if (!pricesFetched.value || !item.NOBBNumber) {\n enable = false;\n }\n\n if (\n (item.Status && item.Status.StatusType === ItemStatus.MatchNoDiff) ||\n (item.Status && item.Status.StatusType === ItemStatus.MissingNobb)\n ) {\n enable = false;\n }\n\n return enable;\n };\n\n const updateProduct = (iwp: ItemWithProduct) => {\n if (\n searchablePriceListItems.value &&\n iwp.Item &&\n iwp.PriceListItem &&\n projectCalculation.value\n ) {\n iwp.Item.NOBBNumber = iwp.PriceListItem.NobbNumber;\n iwp.Item.Price = calculatedPrice(iwp.PriceListItem);\n iwp.Item.UnitForOrder = iwp.PriceListItem.Unit;\n iwp.Item.PriceListItemName = iwp.PriceListItem.Name;\n iwp.Item.PriceListName = iwp.PriceListItem.PriceListName;\n iwp.Item.IsModifiedRecently = true;\n registerBuildingItemBatchOperation(iwp.Item, BatchType.Save);\n\n setPriceMatches(\n projectCalculation.value.BuildingElements,\n searchablePriceListItems.value,\n true\n );\n }\n };\n\n const timeUpdated = (item: BuildingItemCalculation) => {\n if (searchablePriceListItems.value && projectCalculation.value) {\n registerBuildingItemBatchOperation(item, BatchType.Save);\n setPriceMatches(\n projectCalculation.value.BuildingElements,\n searchablePriceListItems.value,\n true\n );\n }\n };\n\n onUnmounted(() => {\n reset();\n });\n\n return {\n priceUpdate,\n fetchPrices,\n toggleSingle,\n isSelected,\n close,\n isEnabled,\n amountChange,\n updateProduct,\n timeUpdated,\n reset,\n resetPriceMatches,\n findItems,\n replaceAll,\n closeEvent,\n sameProduct,\n projectCalculation,\n pricelists,\n chosenPriceList,\n loading,\n valid,\n updating,\n fetchingPrices,\n pricesFetched,\n updatingPrices,\n selected,\n computedValidPricesMatchesCount,\n computedTotalItemsCount,\n computedTotalNoNobbOnBuildingItem,\n computedTotalHitWithUnitDiffBuildingItem,\n computedTotalNoHitBuildingItem,\n };\n },\n});\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PriceUpdate.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PriceUpdate.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PriceUpdate.vue?vue&type=template&id=abfe4392&scoped=true&\"\nimport script from \"./PriceUpdate.vue?vue&type=script&lang=ts&\"\nexport * from \"./PriceUpdate.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PriceUpdate.vue?vue&type=style&index=0&id=abfe4392&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"abfe4392\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VFooter } from 'vuetify/lib/components/VFooter';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VContainer,VDivider,VFooter,VIcon,VSelect,VSimpleTable,VSpacer})\n","import {\n DEFAULT_LAYOUT,\n LOADING_LAYOUT,\n PROTECTED_LAYOUT,\n} from '@/constants/common';\nimport {\n HOME_PATH,\n LOGIN_PATH,\n LOGOUT_PATH,\n PROJECT_ADMIN_PATH,\n PROJECT_CALCULATION_PATH,\n PROJECT_ORGANIZATION_PATH,\n PROJECT_START_PATH,\n PROJECT_PRICEBOOK_PATH,\n PROJECT_OVERVIEW_PATH,\n PROJECT_LIBRARY_PATH,\n PROJECT_CALCULATION_OVERVIEW_PATH,\n PROJECT_CALCULATION_BUILDING_ELEMENT_PATH,\n PUBLIC_PATHS,\n VERSIONS_PATH,\n PROJECT_CALCULATION_ENVIRONMENT,\n PROJECT_CALCULATION_PRICE_UPDATE_PATH,\n} from '@/constants/routes';\nimport { useAuth } from '@/modules/auth';\nimport Vue from 'vue';\nimport VueRouter, { Route } from 'vue-router';\nimport { useProject } from '@/modules/project';\nimport { useCalculation } from '@/modules/calculation';\nimport { useGlobal } from '@/modules/global';\nimport Home from '@/views/Home.vue';\nimport Versions from '@/views/Versions.vue';\nimport Login from '@/views/Login.vue';\nimport Logout from '@/views/Logout.vue';\nimport Start from '@/views/Start.vue';\nimport Pricebook from '@/views/Pricebook.vue';\nimport Organization from '@/views/Organization.vue';\nimport Admin from '@/views/Admin.vue';\nimport Library from '@/views/Library.vue';\nimport Calculation from '@/views/Calculation.vue';\nimport CalculationOverview from '@/views/CalculationOverview.vue';\nimport ProjectOverview from '@/views/ProjectOverview.vue';\nimport BuildingElement from '@/views/BuildingElement.vue';\nimport Environment from '@/views/Environment.vue';\nimport PriceUpdate from '@/views/PriceUpdate.vue';\n\nVue.use(VueRouter);\n\nconst routes = [\n {\n path: HOME_PATH,\n name: 'Home',\n component: Home,\n meta: {\n layout: DEFAULT_LAYOUT,\n },\n },\n {\n path: VERSIONS_PATH,\n name: 'Versions',\n component: Versions,\n meta: {\n layout: DEFAULT_LAYOUT,\n },\n },\n {\n path: LOGIN_PATH,\n name: 'Login',\n component: Login,\n meta: {\n layout: DEFAULT_LAYOUT,\n },\n },\n {\n path: LOGOUT_PATH,\n name: 'Logout',\n component: Logout,\n meta: {\n requiresAuth: true,\n layout: LOADING_LAYOUT,\n },\n },\n {\n path: PROJECT_START_PATH,\n name: 'Start',\n component: Start,\n meta: {\n requiresAuth: true,\n requireLicense: true,\n layout: PROTECTED_LAYOUT,\n },\n },\n {\n path: PROJECT_PRICEBOOK_PATH,\n name: 'Pricebook',\n component: Pricebook,\n meta: {\n requiresAuth: true,\n requireLicense: true,\n layout: PROTECTED_LAYOUT,\n },\n },\n {\n path: PROJECT_ORGANIZATION_PATH,\n name: 'Organization',\n component: Organization,\n meta: {\n requiresAuth: true,\n requireLicense: true,\n requiresAdmin: true,\n layout: PROTECTED_LAYOUT,\n },\n },\n {\n path: PROJECT_ADMIN_PATH,\n name: 'Admin',\n component: Admin,\n meta: {\n requiresAuth: true,\n requireLicense: true,\n requiresAdmin: true,\n requiresFullVersion: true,\n layout: PROTECTED_LAYOUT,\n },\n },\n {\n path: PROJECT_LIBRARY_PATH,\n name: 'Library',\n component: Library,\n meta: {\n requiresAuth: true,\n requireLicense: true,\n layout: PROTECTED_LAYOUT,\n },\n },\n {\n path: PROJECT_CALCULATION_PATH,\n name: 'Calculation',\n component: Calculation,\n meta: {\n requiresAuth: true,\n requireLicense: true,\n requiresActiveProject: true,\n requiresActiveCalculation: true,\n layout: PROTECTED_LAYOUT,\n },\n },\n {\n path: PROJECT_CALCULATION_OVERVIEW_PATH,\n name: 'Calculation Overview',\n component: CalculationOverview,\n meta: {\n requiresAuth: true,\n requireLicense: true,\n requiresActiveProject: true,\n requiresActiveCalculation: true,\n layout: PROTECTED_LAYOUT,\n },\n },\n {\n path: PROJECT_OVERVIEW_PATH + '/:projectNumber/add/:calculationName?',\n component: ProjectOverview,\n meta: {\n requiresAuth: true,\n requireLicense: true,\n requiresActiveProjectOrNumberInProp: true,\n layout: PROTECTED_LAYOUT,\n },\n props: (route: Route) => ({\n createNewCalculation: true,\n calculationName: route.params.calculationName,\n projectNumber: route.params.projectNumber,\n }),\n },\n {\n path: PROJECT_OVERVIEW_PATH + '/:projectNumber?',\n name: 'Project Overview',\n component: ProjectOverview,\n meta: {\n requiresAuth: true,\n requireLicense: true,\n requiresActiveProjectOrNumberInProp: true,\n layout: PROTECTED_LAYOUT,\n },\n props: true,\n },\n {\n path: PROJECT_CALCULATION_BUILDING_ELEMENT_PATH,\n name: 'Building Element',\n component: BuildingElement,\n meta: {\n requiresAuth: true,\n requireLicense: true,\n requiresActiveProject: true,\n requiresActiveCalculation: true,\n layout: PROTECTED_LAYOUT,\n },\n },\n {\n path: PROJECT_CALCULATION_ENVIRONMENT,\n name: 'Environment',\n component: Environment,\n meta: {\n requiresAuth: true,\n requireLicense: true,\n requiresActiveProject: true,\n requiresActiveCalculation: true,\n layout: PROTECTED_LAYOUT,\n },\n },\n {\n path: PROJECT_CALCULATION_PRICE_UPDATE_PATH,\n name: 'PriceUpdate',\n component: PriceUpdate,\n meta: {\n requiresAuth: true,\n requireLicense: true,\n requiresActiveProject: true,\n requiresActiveCalculation: true,\n layout: PROTECTED_LAYOUT,\n },\n },\n {\n path: '/*',\n redirect: '/',\n },\n];\n\nconst router = new VueRouter({\n mode: 'history',\n base: process.env.BASE_URL,\n routes,\n});\n\nrouter.beforeEach(async (to, from, next) => {\n const { checkAuthAndLicense, user, license } = useAuth();\n const { activeProjectOverview } = useProject();\n const { activeCalculation, buildCalculationDeps } = useCalculation();\n const { initLanguage } = useGlobal();\n\n initLanguage();\n\n const authAndLicenseOK = await checkAuthAndLicense();\n\n if (authAndLicenseOK) {\n if (!PUBLIC_PATHS.includes(to.path)) {\n await buildCalculationDeps();\n }\n }\n\n const authedRequirement = user?.value ? true : false;\n const licenseRequirement = authedRequirement\n ? license?.value\n ? license.value.LicenseOk\n ? true\n : false\n : false\n : false;\n const activeProjectRequirement = activeProjectOverview?.value ? true : false;\n const activeCalculationRequirement = activeCalculation?.value ? true : false;\n const adminRequirement = user?.value?.IsAdmin ? true : false;\n const fullVersionRequirement = license?.value\n ? license.value.Trial\n ? false\n : true\n : false;\n\n const redirectPath = (): string => {\n if (to.meta?.requiresAuth === true && !authedRequirement) {\n console.log('requires auth, redirect to login');\n return LOGIN_PATH;\n }\n if (to.meta?.requireLicense === true && !licenseRequirement) {\n console.log('requires auth and license, redirect to login');\n return LOGIN_PATH;\n }\n if (to.meta?.requiresAdmin === true && !adminRequirement) {\n console.log('requires admin, redirect to project start');\n return PROJECT_START_PATH;\n }\n if (to.meta?.requiresActiveProject === true && !activeProjectRequirement) {\n console.log('requires active project, redirect to project start');\n return PROJECT_START_PATH;\n }\n if (to.meta?.requiresFullVersion === true && !fullVersionRequirement) {\n console.log('requires full version, redirect to project start');\n return PROJECT_START_PATH;\n }\n if (\n to.meta?.requiresActiveProjectOrNumberInProp === true &&\n !activeProjectRequirement &&\n to.params.projectNumber === undefined\n ) {\n console.log(\n 'requires active project or projectNumber in props, redirect to project start'\n );\n return PROJECT_START_PATH;\n }\n if (\n to.meta?.requiresActiveCalculation === true &&\n !activeCalculationRequirement\n ) {\n console.log('requiresActiveCalculation, redirect to project start');\n return PROJECT_START_PATH;\n }\n return '';\n };\n\n if (authAndLicenseOK) {\n if (redirectPath() !== '') {\n next({ path: redirectPath() });\n } else {\n next();\n }\n } else {\n console.log('Auth and license check negative, route to login');\n next({ path: LOGIN_PATH });\n }\n});\n\nexport default router;\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=67c34bf4&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=2523b904&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=153e77a6&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/byggtjeneste_unselect.3f27c8bb.svg\";","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=63d363d4&lang=scss&scoped=true&\"","import { CustomError, CustomErrorMessage } from '@/models/common/interfaces';\nimport { ProjectOverview, ProjectTotals } from '@/models/projects/interfaces';\nimport {\n computed,\n ComputedRef,\n reactive,\n ref,\n toRefs,\n} from '@vue/composition-api';\nimport { useApi } from './api';\nimport { useErrorModal } from './error';\nimport { useSnackbar } from './snackbar';\nimport { useProject } from './project';\nimport { ProjectContact } from '@/models/contacts/interfaces';\nimport {\n Calculation,\n CalculationBatch,\n ProjectCalculation,\n ProjectConcurrencyToken,\n ProjectFactorItem,\n} from '@/models/calculation/interfaces';\nimport { isStorageSupported, isSuccess } from '@/helpers/common';\nimport { useLibrary } from './library';\nimport { useGlobal } from './global';\nimport { LS_ACTIVE_CALC_KEY, LS_ACTIVE_PROJECT_KEY } from '@/constants/common';\nimport { useLoader } from './loader';\nimport {\n mapCalculationProperties,\n setComputedProperties,\n sumAmountControl,\n sumHours,\n sumMaterialsUE,\n sumProfit,\n sumSalaryCostAdjusted,\n sumSelfCost,\n sumSelfCostMaterialsSubContractors,\n sumTotal,\n} from '@/helpers/calculation';\nimport { useBuildingElement } from './building-element';\nimport {\n calculateWarnings,\n sortBuildingElementsCalculation,\n} from '@/helpers/building-element';\nimport { translate } from '@/localization';\nimport moment from 'moment';\nimport { BatchType, CalculationState } from '@/constants/enum';\nimport { useBatch } from './batch';\nimport { BuildingTypeTemplate } from '@/models/library/interfaces';\nimport { v4 as uuidv4 } from 'uuid';\nimport router from '@/router/index';\nimport {\n PROJECT_CALCULATION_OVERVIEW_PATH,\n PROJECT_CALCULATION_PATH,\n PROJECT_OVERVIEW_PATH,\n} from '@/constants/routes';\nimport { PriceList, PriceListTreeNode } from '@/models/pricebook/interfaces';\nimport { BuildingItemCalculation } from '@/models/building-element/interfaces';\n\ninterface State {\n building: boolean;\n activeCalculation?: ProjectOverview;\n calculation?: Calculation;\n calculationContacts?: Array;\n loading: boolean;\n updating: boolean;\n activateLibrary: Nullable;\n error?: CustomError;\n currentState: CalculationState;\n state: ComputedRef;\n activePriceList: PriceList | undefined;\n computedPriceList: ComputedRef;\n saveQueue: Array;\n}\n\nconst projectCalculation = ref();\n\nconst state = reactive({\n building: false,\n loading: false,\n updating: false,\n error: undefined,\n activateLibrary: null,\n activeCalculation: undefined,\n calculationContacts: undefined,\n calculation: undefined,\n currentState: CalculationState.Idle,\n state: computed({\n get(): CalculationState {\n return state.currentState;\n },\n set(val): void {\n state.currentState = val;\n },\n }),\n computedPriceList: computed({\n get(): PriceList | undefined {\n return state.activePriceList;\n },\n set(val): void {\n state.activePriceList = val;\n },\n }),\n activePriceList: undefined,\n saveQueue: [],\n});\n\nexport const useCalculation = () => {\n const { errorModal } = useErrorModal();\n const { snack } = useSnackbar();\n\n const NS3420Units = ['m', 'm2', 'm3', 'stk', 'kg', 'tonn', 'RS', 'm2*', ''];\n\n const getCalculationFactorValue = (\n factorNr: number,\n projectCalculation: ProjectCalculation\n ): Nullable => {\n let value: Nullable = null;\n if (projectCalculation.Factors) {\n const factor = projectCalculation.Factors.find(\n f => f.FactorNumber === factorNr\n );\n if (factor?.Unit && factor.Unit === '%' && factor.Value != null) {\n value = 1 + factor.Value / 100;\n } else if (factor?.Unit && factor.Unit === 'kr' && factor?.Value) {\n value = factor.Value;\n }\n }\n return value;\n };\n\n const getCalculationFactorSum = (factorNr: number): Nullable => {\n let sum: Nullable = null;\n\n if (projectCalculation?.value?.Factors) {\n const factor = projectCalculation.value.Factors.find(\n f => f.FactorNumber === factorNr\n );\n\n if (factor?.Value) {\n sum = factor.Value;\n }\n }\n\n return sum;\n };\n\n const buildProjectCalculation = async (\n calc: Calculation\n ): Promise => {\n const { initElements } = useBuildingElement();\n const projCalc = mapCalculationProperties(calc);\n\n projCalc.BuildingElements = await initElements(\n calc.BuildingElements,\n projCalc\n );\n\n setComputedProperties(projCalc);\n\n sortBuildingElementsCalculation(projCalc.BuildingElements);\n\n return projCalc;\n };\n\n const getCalculation = async (\n projectId: string\n ): Promise => {\n const { get } = useApi(`/project/${projectId}/calculation`);\n let calculation: Calculation | undefined = undefined;\n\n try {\n const response = await get();\n if (isSuccess(response.status)) {\n calculation = response.data;\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n return calculation;\n };\n\n const getCalculationContacts = async (\n calculationId: string,\n force?: boolean\n ): Promise | undefined> => {\n if (state.calculationContacts && !force) return state.calculationContacts;\n\n const { get } = useApi(`/project/${calculationId}/contacts`);\n\n try {\n const response = await get();\n if (isSuccess(response.status)) {\n state.calculationContacts = response.data;\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n return state.calculationContacts;\n };\n\n const initActiveCalculation = async (projectId: string): Promise => {\n const { initCalculationLibrary } = useLibrary();\n const { getSettings } = useGlobal();\n\n if (!state.activeCalculation) return;\n\n if (isStorageSupported()) {\n localStorage.setItem(LS_ACTIVE_CALC_KEY, projectId);\n }\n\n //build usersettings\n await getSettings();\n\n // build calculation data\n state.calculation = await getCalculation(projectId);\n await getCalculationContacts(projectId, true);\n\n if (state.calculation) {\n projectCalculation.value = await buildProjectCalculation(\n state.calculation\n );\n }\n\n // build library data\n await initCalculationLibrary();\n\n // Set warnings\n if (projectCalculation.value) calculateWarnings(projectCalculation.value);\n };\n\n const destructActiveCalculation = async (routeToOverview?: boolean) => {\n const { destructCurrentLibrary } = useLibrary();\n\n state.activeCalculation = undefined;\n state.calculation = undefined;\n state.calculationContacts = undefined;\n state.error = undefined;\n state.currentState = CalculationState.Idle;\n state.activePriceList = undefined;\n state.saveQueue = [];\n projectCalculation.value = undefined;\n\n destructCurrentLibrary();\n\n if (isStorageSupported()) {\n localStorage.removeItem(LS_ACTIVE_CALC_KEY);\n }\n\n if (routeToOverview) {\n await router.push(PROJECT_OVERVIEW_PATH);\n }\n };\n\n const setActiveCalculation = async (\n project: ProjectOverview\n ): Promise => {\n if (project && project.Id) {\n state.activeCalculation = project;\n await initActiveCalculation(project.Id);\n }\n };\n\n const recalculateActiveCalculationTotals = () => {\n if (projectCalculation.value) {\n projectCalculation.value.Hours = sumHours(projectCalculation.value);\n projectCalculation.value.Total = sumTotal(projectCalculation.value);\n projectCalculation.value.SelfCost = sumSelfCost(projectCalculation.value);\n projectCalculation.value.Profit = sumProfit(projectCalculation.value);\n projectCalculation.value.MaterialsUE = sumMaterialsUE(\n projectCalculation.value\n );\n projectCalculation.value.SelfCostMaterialsSubContractors = sumSelfCostMaterialsSubContractors(\n projectCalculation.value\n );\n projectCalculation.value.AmountControl = sumAmountControl(\n projectCalculation.value\n );\n projectCalculation.value.SalaryCostAdjusted = sumSalaryCostAdjusted(\n projectCalculation.value\n );\n }\n };\n\n const recalculateTotals = (\n projectCalc: ProjectCalculation\n ): ProjectTotals => {\n projectCalc.Hours = projectCalc.SumHours?.value ?? 0;\n projectCalc.Total = projectCalc.SumTotal?.value ?? 0;\n projectCalc.SelfCost = projectCalc.SumSelfCost?.value ?? 0;\n projectCalc.Profit = projectCalc.SumProfit?.value ?? 0;\n projectCalc.MaterialsUE = projectCalc.SumMaterialsUE?.value ?? 0;\n projectCalc.SelfCostMaterialsSubContractors =\n projectCalc.SumSelfCostMaterialsSubContractors?.value ?? 0;\n projectCalc.AmountControl = projectCalc.SumAmountControl?.value ?? 0;\n projectCalc.SalaryCostAdjusted =\n projectCalc.SumSalaryCostAdjusted?.value ?? 0;\n\n return {\n AmountControl: projectCalc.AmountControl ?? undefined,\n Hours: projectCalc.Hours ?? undefined,\n MaterialsSubContractors: projectCalc.MaterialsSubContractors ?? undefined,\n MaterialsUE: projectCalc.MaterialsUE ?? undefined,\n Profit: projectCalc.Profit ?? undefined,\n SelfCost: projectCalc.SelfCost ?? undefined,\n SelfCostMaterialsSubContractors:\n projectCalc.SelfCostMaterialsSubContractors ?? undefined,\n Total: projectCalc.Total ?? undefined,\n };\n };\n\n const getTotals = (): ProjectTotals | undefined => {\n if (!projectCalculation.value) return;\n\n return {\n AmountControl: projectCalculation.value.AmountControl ?? undefined,\n Hours: projectCalculation.value.Hours ?? undefined,\n MaterialsSubContractors:\n projectCalculation.value.MaterialsSubContractors ?? undefined,\n MaterialsUE: projectCalculation.value.MaterialsUE ?? undefined,\n Profit: projectCalculation.value.Profit ?? undefined,\n SelfCost: projectCalculation.value.SelfCost ?? undefined,\n SelfCostMaterialsSubContractors:\n projectCalculation.value.SelfCostMaterialsSubContractors ?? undefined,\n Total: projectCalculation.value.Total ?? undefined,\n };\n };\n\n const updateActiveCalculationWithBatch = async (\n batch: CalculationBatch\n ): Promise => {\n let success = false;\n if (\n !projectCalculation.value ||\n !projectCalculation.value.Id ||\n !projectCalculation.value.ConcurrencyToken?.Token\n )\n return success;\n\n const { post } = useApi(\n `/project/${\n projectCalculation.value.Id\n }/calculation?concurrencyToken=${encodeURIComponent(\n projectCalculation.value.ConcurrencyToken.Token\n )}`\n );\n state.updating = true;\n recalculateActiveCalculationTotals();\n\n const totals = getTotals();\n\n if (totals) {\n batch.ProjectTotals = totals;\n } else return success;\n\n const { updateActiveProjectTotal } = useProject();\n updateActiveProjectTotal(totals);\n\n try {\n const response = await post(batch);\n if (isSuccess(response.status)) {\n const concurrencyToken: ProjectConcurrencyToken = response.data;\n projectCalculation.value.ConcurrencyToken = concurrencyToken;\n success = true;\n state.state = CalculationState.Updated;\n }\n } catch (e) {\n state.error = e.response;\n state.saveQueue = [];\n if (\n state.error &&\n state.error.data.LastModified &&\n state.error.data.LastModifiedBy\n ) {\n const customError: CustomErrorMessage = {\n message: `${translate('errors.message-409', [\n moment(state.error.data.LastModified).format('Do MMMM YYYY'),\n state.error.data.LastModifiedBy,\n ])}`,\n title: `${translate('errors.title-409')}`,\n };\n errorModal(state.error, customError, true);\n state.state = CalculationState.Problem;\n } else {\n errorModal(state.error);\n state.state = CalculationState.Problem;\n }\n }\n\n state.updating = false;\n return success;\n };\n\n const saveCalculation = async (batch: CalculationBatch) => {\n if (\n projectCalculation.value?.Id &&\n projectCalculation.value?.ConcurrencyToken?.Token\n ) {\n state.saveQueue.push(batch);\n if (!state.updating) {\n const currentBatch = state.saveQueue.shift();\n if (currentBatch) {\n const success = await updateActiveCalculationWithBatch(currentBatch);\n calculateWarnings(projectCalculation.value);\n if (success && state.saveQueue.length > 0) {\n const nextBatch = state.saveQueue.shift();\n if (nextBatch) {\n saveCalculation(nextBatch);\n }\n }\n }\n }\n }\n };\n\n const getPrimaryContact = async (\n calc: ProjectCalculation\n ): Promise => {\n if (calc.Id) {\n const contacts = await getCalculationContacts(calc.Id);\n\n if (contacts) {\n const primaryContact = contacts.find(\n contact => contact.IsPrimaryContact\n );\n return primaryContact;\n }\n }\n return undefined;\n };\n\n const getCalculationByProfession = async (\n professionCode: string\n ): Promise> => {\n const { projects, getProjects } = useProject();\n let calculationsByProf: Array = [];\n await getProjects();\n\n if (projects?.value) {\n projects.value.forEach(proj => {\n calculationsByProf = calculationsByProf.concat(\n proj.Children.filter(calc => calc.ProfessionCode === professionCode)\n );\n });\n }\n\n calculationsByProf = calculationsByProf.sort((a, b) =>\n ('' + a.ProjectNumber ?? '').localeCompare(b.ProjectNumber ?? '' + '')\n );\n\n return calculationsByProf;\n };\n\n const lockCalculation = async (projectId: string): Promise => {\n const { put } = useApi(`/project/${projectId}/calculation/lock`);\n const {\n getProjects,\n setActiveProjectFromProjectList,\n activeProjectOverview,\n } = useProject();\n const { isOnRoute } = useGlobal();\n state.loading = true;\n let success = false;\n\n try {\n const response = await put();\n if (isSuccess(response.status) && activeProjectOverview.value?.Id) {\n success = true;\n const projects = await getProjects(true);\n setActiveProjectFromProjectList(activeProjectOverview.value.Id);\n if (\n state.activeCalculation &&\n state.activeCalculation.Id === projectId\n ) {\n const parent = projects?.find(proj =>\n proj.Children.some(calc => calc.Id === projectId)\n );\n const calculation = parent?.Children.find(\n calc => calc.Id === projectId\n );\n\n if (calculation) {\n setActiveCalculation(calculation);\n }\n }\n snack('snack.calc-locked', true);\n\n if (isOnRoute(PROJECT_CALCULATION_PATH)) {\n await router.push(PROJECT_CALCULATION_OVERVIEW_PATH);\n }\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n state.loading = false;\n return success;\n };\n\n const unlockCalculation = async (projectId: string): Promise => {\n const { deleteReq } = useApi(`/project/${projectId}/calculation/lock`);\n const {\n getProjects,\n setActiveProjectFromProjectList,\n activeProjectOverview,\n } = useProject();\n state.loading = true;\n let success = false;\n\n try {\n const response = await deleteReq();\n if (isSuccess(response.status) && activeProjectOverview.value?.Id) {\n success = true;\n const projects = await getProjects(true);\n setActiveProjectFromProjectList(activeProjectOverview.value.Id);\n if (\n state.activeCalculation &&\n state.activeCalculation.Id === projectId\n ) {\n const parent = projects?.find(proj =>\n proj.Children.some(calc => calc.Id === projectId)\n );\n const calc = parent?.Children.find(calc => calc.Id === projectId);\n if (calc) {\n setActiveCalculation(calc);\n }\n }\n snack('snack.calc-unlocked', true);\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n state.loading = false;\n return success;\n };\n\n const buildCalculationDeps = async (): Promise => {\n const {\n setActiveProject,\n getProjectOverviewById,\n activeProjectOverview,\n getActiveProjectDetails,\n getProjects,\n } = useProject();\n const { startLoader, stopLoader } = useLoader();\n\n let _activeCalculation: ProjectOverview | undefined = undefined;\n\n if (isStorageSupported()) {\n const projectId: string | null = localStorage.getItem(\n LS_ACTIVE_PROJECT_KEY\n );\n const calcId: string | null = localStorage.getItem(LS_ACTIVE_CALC_KEY);\n\n /* if there are no values, continue as usual. Also if either active calculation or active project exist, it is not a hard refresh, continue as usual. */\n if (!projectId && !calcId) return;\n if (state.activeCalculation || activeProjectOverview?.value) return;\n\n startLoader(`${translate('loader.loading-project')}`);\n // init previously set active project\n if (projectId) {\n await getProjects();\n await setActiveProject(projectId, false);\n await getActiveProjectDetails(projectId);\n }\n\n // init previously set active calculation\n if (calcId) {\n _activeCalculation = await getProjectOverviewById(calcId);\n if (_activeCalculation) {\n await setActiveCalculation(_activeCalculation);\n }\n }\n stopLoader();\n }\n };\n\n const convertCalculationToTemplate = async (\n templateName: string\n ): Promise => {\n if (!projectCalculation.value?.Profession?.Id) return;\n\n const {\n createBuildingTypeTemplate,\n createBuildingElementTemplate,\n createBuildingElementTemplateFromBEC,\n initCalculationLibrary,\n setActiveTemplate,\n buildingTemplatesByProfession,\n } = useLibrary();\n const { startLoader, stopLoader, updateStatusText } = useLoader();\n\n const newTemplate: BuildingTypeTemplate = {\n Id: uuidv4(),\n GlobalKey: uuidv4(),\n Name: templateName,\n Created: new Date().toLocaleString(),\n LastModified: new Date().toLocaleString(),\n Profession: projectCalculation.value.Profession,\n ProfessionCode: projectCalculation.value.Profession.Code,\n ProfessionId: projectCalculation.value.Profession.Id,\n BuildingElementTemplates: [],\n Description: '',\n ImportTime: null,\n OrganizationId: null,\n };\n\n startLoader(`${translate('loader.creating-template', [templateName])}`);\n const success = await createBuildingTypeTemplate(newTemplate);\n\n if (\n success &&\n projectCalculation?.value?.BuildingElements &&\n newTemplate.Id\n ) {\n for (const element of projectCalculation.value.BuildingElements) {\n if (element.BuildingItems.length > 0) {\n updateStatusText(\n `${translate('loader.create-element-template', [\n element.Name ?? '',\n ])}`\n );\n const template = createBuildingElementTemplateFromBEC(\n element,\n newTemplate.Id\n );\n const success = await createBuildingElementTemplate(\n template,\n newTemplate.Id\n );\n if (!success) return;\n }\n }\n }\n\n stopLoader();\n initCalculationLibrary();\n\n const recentlyAddedTemplate = buildingTemplatesByProfession.value?.find(\n template => template.Id === newTemplate.Id\n );\n\n if (recentlyAddedTemplate) {\n setActiveTemplate(recentlyAddedTemplate);\n state.activateLibrary = true;\n }\n };\n\n const setPriceListForActiveCalculation = async (\n list: PriceListTreeNode\n ): Promise => {\n const { registerBuildingItemBatchOperation } = useBatch();\n if (projectCalculation.value?.BuildingElements) {\n projectCalculation.value.BuildingElements.forEach(ele => {\n ele.BuildingItems.forEach(item => {\n if (item.NOBBNumber) {\n item.PriceListName = list.Name;\n registerBuildingItemBatchOperation(item, BatchType.Save);\n }\n });\n });\n }\n };\n\n const getItemsWithSimilarProduct = (\n nobbNo: number,\n id: string\n ): Array => {\n let itemsContainingProduct: Array = [];\n\n if (projectCalculation.value?.BuildingElements) {\n projectCalculation.value.BuildingElements.forEach(ele => {\n const sameProduct = ele.BuildingItems.filter(\n i => i.NOBBNumber != null && i.NOBBNumber === nobbNo && i.Id !== id\n );\n\n itemsContainingProduct = itemsContainingProduct.concat(sameProduct);\n });\n }\n\n return itemsContainingProduct;\n };\n\n const getCalculationPriceListFromElements = async () => {\n let activeList: Nullable | undefined = '';\n if (projectCalculation.value?.BuildingElements) {\n const elementsWithPriceList = projectCalculation.value.BuildingElements.filter(\n ele => ele.BuildingItems.some(item => item.PriceListName)\n );\n\n if (\n elementsWithPriceList.length !==\n projectCalculation.value.BuildingElements.length\n )\n return activeList;\n\n const elementWithPriceList = elementsWithPriceList.find(ele =>\n ele.BuildingItems.some(item => item.PriceListName)\n );\n\n if (elementWithPriceList) {\n activeList = elementWithPriceList?.BuildingItems.find(\n bi => bi.PriceListName\n )?.PriceListName;\n\n if (activeList) {\n elementsWithPriceList.forEach(ele => {\n if (\n ele.BuildingItems.some(item => item.PriceListName !== activeList)\n )\n return '';\n });\n }\n }\n\n return activeList;\n }\n };\n\n const reloadCalculation = async () => {\n if (state.calculation) {\n projectCalculation.value = await buildProjectCalculation(\n state.calculation\n );\n }\n };\n\n const updateProjectCalculationFactors = async (\n id: string,\n newFactors: Array\n ) => {\n if (id && projectCalculation.value && projectCalculation.value.Factors) {\n const projectFactor = projectCalculation.value.Factors.find(\n pf => pf.Id === id\n );\n if (\n projectFactor &&\n projectFactor.ProjectId === projectCalculation.value.Id\n ) {\n projectFactor.FactorItems = newFactors;\n await reloadCalculation();\n }\n }\n };\n\n return {\n ...toRefs(state),\n setActiveCalculation,\n lockCalculation,\n unlockCalculation,\n getCalculationContacts,\n getCalculationByProfession,\n buildCalculationDeps,\n getCalculationFactorValue,\n getCalculationFactorSum,\n recalculateActiveCalculationTotals,\n saveCalculation,\n initActiveCalculation,\n convertCalculationToTemplate,\n setPriceListForActiveCalculation,\n getCalculationPriceListFromElements,\n destructActiveCalculation,\n getCalculation,\n buildProjectCalculation,\n reloadCalculation,\n getItemsWithSimilarProduct,\n recalculateTotals,\n getPrimaryContact,\n updateProjectCalculationFactors,\n updateActiveCalculationWithBatch,\n NS3420Units,\n projectCalculation,\n };\n};\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=b8224632&lang=scss&scoped=true&\"","import { UNITS } from '@/constants/common';\nimport { defaultLocaleString, translate } from '@/localization';\nimport { Company } from '@/models/company/interfaces';\nimport { ProjectOverview } from '@/models/projects/interfaces';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nexport const cleanSource = (source: Record) => {\n return JSON.parse(JSON.stringify(source));\n};\n\nexport const isStorageSupported = (): boolean => {\n const test = 'test';\n try {\n localStorage.setItem(test, test);\n localStorage.removeItem(test);\n return true;\n } catch (e) {\n return false;\n }\n};\n\nexport const boolToYesNoLocaleKey = (yesno: boolean) => {\n if (yesno) {\n return 'common.yes';\n } else {\n return 'common.no';\n }\n};\n\nexport const numberWithCommas = (number: string): string => {\n return number.replace(/\\B(? {\n switch (code) {\n case '05':\n return 'mdi-filter';\n case '09':\n return 'mdi-pickaxe';\n case '03':\n return 'mdi-tools';\n case '12':\n return 'mdi-hand-saw';\n case '01':\n return 'mdi-dump-truck';\n case '21':\n return 'mdi-format-paint';\n case '99':\n return 'mdi-account-group';\n default:\n return 'mdi-test';\n }\n};\n\nexport const getNameByProfessionCode = (code: string) => {\n switch (code) {\n case '05':\n return `${translate('factors.name-concrete-work')}`;\n case '09':\n return `${translate('factors.name-masonry')}`;\n case '03':\n return `${translate('factors.name-groundwork')}`;\n case '12':\n return `${translate('factors.name-carpentry')}`;\n case '01':\n return `${translate('factors.name-rigs')}`;\n case '21':\n return `${translate('factors.name-painter-work')}`;\n case '99':\n return `${translate('factors.name-subcontractors')}`;\n default:\n return `${translate('factors.name-unknown')}`;\n }\n};\n\nexport const convertUnit = (unit: string) => {\n switch (unit) {\n case 'm³':\n return 'm3';\n case 'M3':\n return 'm3';\n case 'm²':\n return 'm2';\n case 'M2':\n return 'm2';\n case 'KG':\n return 'kg';\n case 'Kg':\n return 'kg';\n default:\n return unit;\n }\n};\n\nexport const areUnitsEqual = (unit1: string, unit2: string) => {\n const unit = unit1.replace('.', '').trimEnd();\n const priceListUnit = unit2.replace('.', '').trimEnd();\n\n const synonyms: string[][] = [\n ['m', 'lm'],\n ['esk', 'pak', 'pk'],\n ['rull', 'rul', 'rl'],\n ];\n\n synonyms.forEach(group => {\n if (group.includes(unit) && group.includes(priceListUnit)) return true;\n });\n\n return unit.toUpperCase() === priceListUnit.toUpperCase();\n};\n\nexport const convertFloat = (value: string | undefined): number | undefined => {\n if (value) {\n return parseFloat(value.replace(/,/g, '.'));\n } else {\n return undefined;\n }\n};\n\nexport const isSuccess = (status: number): boolean => {\n return status >= 200 && status <= 299;\n};\n\nexport const roundToTwoDecimals = (num: string | number | undefined) => {\n let value = 0;\n\n if (!num) {\n return 0.0;\n }\n\n if (typeof num === 'string') {\n try {\n value = parseInt(num);\n } catch (e) {\n console.log(`number ${num} parse failed.`);\n }\n } else {\n value = num;\n }\n\n return Math.round((value + Number.EPSILON) * 100) / 100;\n};\n\nexport const createAddressString = (company: Company | undefined): string => {\n let text = '';\n\n if (!company) return text;\n if (company.AddressLine1) text += company.AddressLine1;\n if (company.PostOffice || company.PostNumber) {\n text += ', ';\n if (company.PostOffice && !company.PostNumber) {\n text += company.PostOffice;\n } else if (company.PostNumber && !company.PostOffice) {\n text += company.PostNumber;\n } else if (company.PostNumber && company.PostOffice) {\n text += `${company.PostNumber} -${company.PostOffice}`;\n }\n }\n\n return text;\n};\n\nexport const roundToOneDecimal = (num: string | number | undefined): number => {\n let value = 0;\n\n if (!num) {\n return 0.0;\n }\n\n if (typeof num === 'string') {\n try {\n value = parseInt(num);\n } catch (e) {\n console.log(`number ${num} parse failed.`);\n }\n } else {\n value = num;\n }\n\n return Math.round((value + Number.EPSILON) * 100) / 100;\n};\n\nexport const roundTotal = (calculations: Array): number => {\n let val = 0;\n calculations.forEach(calc => {\n val += calc.Total;\n });\n\n return roundToTwoDecimals(val);\n};\n\nexport const download = (path: string, filename: string) => {\n // Create a new link\n if ('download' in document.createElement('a')) {\n const anchor = document.createElement('a');\n anchor.href = path;\n anchor.download = filename;\n\n // Append to the DOM\n document.body.appendChild(anchor);\n\n // Trigger `click` event\n anchor.click();\n\n // Remove element from DOM\n document.body.removeChild(anchor);\n }\n};\n\nexport const getGuidFromPath = (path: string): string => {\n return path.replace('https://cdn.byggtjeneste.no/nobb/', '');\n};\n\nexport const unitDescriptionConverter = (unit: string): string => {\n let converted = UNITS.get(unit.toLocaleUpperCase());\n\n if (!converted) {\n converted = unit.toLocaleLowerCase();\n }\n\n return converted;\n};\n\nexport const scrollToBottom = () => {\n window.scrollTo(0, document.body.scrollHeight);\n};\n\nexport const numberToAbsStringOrEmpty = (\n num: number | undefined | null,\n decimal: number\n): string => {\n return num != null && num >= 0\n ? num.toLocaleString(defaultLocaleString, {\n maximumFractionDigits: decimal,\n })\n : num != null && num < 0\n ? `-${Math.abs(num).toLocaleString(defaultLocaleString, {\n maximumFractionDigits: decimal,\n })}`\n : '';\n};\n\nexport const precision = (value: number, precision: number): number => {\n const pow = Math.pow(10, precision);\n\n return Math.round(value * pow) / pow;\n};\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=358bd74f&lang=scss&scoped=true&\"","import { reactive, toRefs } from '@vue/composition-api';\nimport router from '@/router/index';\nimport {\n CustomError,\n Feedback,\n UserApplicationSettings,\n} from '@/models/common/interfaces';\nimport { useApi } from './api';\nimport { isStorageSupported, isSuccess } from '@/helpers/common';\nimport { useSnackbar } from './snackbar';\nimport { useErrorModal } from './error';\nimport { Ns3451 } from '@/models/standards/ns3451/interfaces';\nimport { ACTIVE_LOCALE, USER_READ_PATCH_NOTES } from '@/constants/common';\nimport { Language, LOCALES } from '@/localization/locales';\nimport { defaultLocale, i18n } from '@/localization/index';\nimport moment from 'moment';\nimport { PROJECT_CALCULATION_BUILDING_ELEMENT_PATH } from '@/constants/routes';\n\ninterface State {\n userSettings?: UserApplicationSettings;\n Ns3451?: Array;\n error?: CustomError;\n Ns3451Children?: Array;\n feedback: boolean;\n currentLocale?: Language;\n userReadPatchNotes: boolean;\n}\n\nconst state = reactive({\n userSettings: undefined,\n Ns3451: undefined,\n error: undefined,\n Ns3451Children: undefined,\n feedback: false,\n currentLocale: undefined,\n userReadPatchNotes: true,\n});\n\nexport const useGlobal = () => {\n const { snack } = useSnackbar();\n const { errorModal } = useErrorModal();\n\n const isOnRoute = (route: string) => {\n return router.currentRoute.path === route;\n };\n\n const isIsolatingElement = () => {\n return router.currentRoute.path.includes(\n PROJECT_CALCULATION_BUILDING_ELEMENT_PATH\n );\n };\n\n const appVersion = () => {\n let version = '';\n\n if (process.env.VUE_APP_VERSION) {\n version = process.env.VUE_APP_VERSION;\n } else {\n version = 'x.x.xx';\n }\n return version;\n };\n\n const requestFeedback = () => {\n state.feedback = true;\n };\n\n const initLanguage = () => {\n if (state.currentLocale?.value) {\n return;\n }\n\n LOCALES.forEach(lang => {\n if (lang.value === defaultLocale) {\n state.currentLocale = lang;\n }\n });\n\n if (isStorageSupported()) {\n const chosen = localStorage.getItem(ACTIVE_LOCALE);\n if (chosen) {\n LOCALES.forEach(lang => {\n if (lang.value === chosen) {\n state.currentLocale = lang;\n }\n });\n }\n }\n\n if (state.currentLocale?.value) {\n i18n.locale = state.currentLocale.value;\n }\n };\n\n const setLanguage = (lang: Language) => {\n if (isStorageSupported()) {\n localStorage.setItem(ACTIVE_LOCALE, lang.value);\n }\n moment.locale(lang.value);\n state.currentLocale = undefined;\n initLanguage();\n };\n\n const setUserReadPatchNotes = (truth: boolean) => {\n if (isStorageSupported()) {\n localStorage.setItem(USER_READ_PATCH_NOTES, truth.toString());\n }\n state.userReadPatchNotes = truth;\n };\n\n const saveSettings = async (): Promise => {\n let success = false;\n\n const { put } = useApi('/usersettings/base');\n\n if (!state.userSettings) return false;\n\n try {\n const response = await put(state.userSettings);\n if (isSuccess(response.status)) {\n success = true;\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n\n return success;\n };\n\n const feedbackTime = () => {\n let feedback = false;\n if (state.userSettings?.Feedback) {\n if (!state.userSettings?.Feedback.DontAskUser) {\n if (!state.userSettings?.Feedback.HasProvidedFeedBack) {\n if (\n new Date(state.userSettings?.Feedback.NextTimeToAsk) < new Date()\n ) {\n feedback = true;\n }\n }\n }\n }\n return feedback;\n };\n\n const addFeedback = async (feedBack: Feedback): Promise => {\n const { post } = useApi('/feedback');\n let success = false;\n\n try {\n const response = await post(feedBack);\n if (isSuccess(response.status)) {\n success = true;\n\n const today = new Date();\n const reminder = new Date();\n reminder.setDate(today.getDate() + 30);\n\n if (state.userSettings) {\n state.userSettings.Feedback = {\n DontAskUser: state.userSettings?.Feedback?.DontAskUser ?? false,\n HasProvidedFeedBack: true,\n NextTimeToAsk: reminder.toDateString(),\n _nextTimeToAsk: reminder.toDateString(),\n };\n }\n\n await saveSettings();\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n } finally {\n state.feedback = false;\n }\n\n return success;\n };\n\n const postponeFeedback = async (): Promise => {\n const today = new Date();\n const reminder = new Date();\n reminder.setDate(today.getDate() + 14);\n\n if (state.userSettings) {\n state.userSettings.Feedback = {\n DontAskUser: state.userSettings?.Feedback?.DontAskUser ?? false,\n HasProvidedFeedBack: false,\n NextTimeToAsk: reminder.toDateString(),\n _nextTimeToAsk: reminder.toDateString(),\n };\n }\n\n await saveSettings();\n state.feedback = false;\n };\n\n const stopFeedbackReminders = async (): Promise => {\n if (state.userSettings) {\n state.userSettings.Feedback = {\n DontAskUser: true,\n HasProvidedFeedBack: false,\n NextTimeToAsk: '',\n _nextTimeToAsk: new Date().toDateString(),\n };\n }\n\n await saveSettings();\n };\n\n const initUserSettings = async (): Promise => {\n const defaultSettings: UserApplicationSettings = {\n ColumnSettings: [],\n ZoomPercentage: 1,\n CustomView1Columns: [],\n CustomView2Columns: [],\n LastUsedTemplates: [],\n };\n\n state.userSettings = defaultSettings;\n await postponeFeedback();\n };\n\n const getSettings = async (\n force?: boolean\n ): Promise => {\n if (state.userSettings && !force) {\n return state.userSettings;\n }\n\n const { get } = useApi('/usersettings/base');\n\n try {\n const response = await get();\n if (isSuccess(response.status)) {\n if (response.data != null) {\n state.userSettings = response.data;\n } else {\n await initUserSettings();\n }\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n\n return state.userSettings;\n };\n\n const getStandards = async (\n force?: boolean\n ): Promise | undefined> => {\n if (state.Ns3451 && !force) {\n return state.Ns3451;\n }\n\n const { get } = useApi('/standard');\n\n try {\n const response = await get();\n if (isSuccess(response.status)) {\n state.Ns3451 = response.data;\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n\n return state.Ns3451;\n };\n\n const getStandardChildren = async (\n force?: boolean\n ): Promise | undefined> => {\n if (state.Ns3451Children && !force) {\n return state.Ns3451Children;\n }\n\n const { get } = useApi('/standard/children');\n\n try {\n const response = await get();\n if (isSuccess(response.status)) {\n state.Ns3451Children = response.data;\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n\n return state.Ns3451Children;\n };\n\n return {\n ...toRefs(state),\n getSettings,\n saveSettings,\n addFeedback,\n getStandards,\n getStandardChildren,\n stopFeedbackReminders,\n postponeFeedback,\n feedbackTime,\n requestFeedback,\n initLanguage,\n setLanguage,\n isOnRoute,\n isIsolatingElement,\n setUserReadPatchNotes,\n appVersion,\n };\n};\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=1&id=4da00d3b&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Start.vue?vue&type=style&index=0&id=9da8d7de&lang=scss&scoped=true&\"","import Vue from 'vue';\nimport VueCompositionApi from '@vue/composition-api';\n\nVue.use(VueCompositionApi);\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-app',[_c('AppLayout',[_c('v-main',[_c('v-scroll-x-transition',[_c('router-view')],1)],1)],1),_c('v-snackbar',{attrs:{\"bottom\":\"\",\"right\":\"\",\"value\":_vm.updateExists,\"timeout\":-1,\"color\":\"primary\",\"cl\":\"\"},scopedSlots:_vm._u([{key:\"action\",fn:function(ref){\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._b({attrs:{\"color\":\"white\",\"icon\":\"\"},on:{\"click\":function($event){_vm.updateExists = false}}},'v-btn',attrs,false),[_c('v-icon',[_vm._v(\"mdi-close\")])],1)]}}])},[_c('v-icon',[_vm._v(\"mdi-update\")]),_c('span',{staticClass:\"update-message\"},[_vm._v(_vm._s(_vm.$t('info.update-ready')))]),_c('v-btn',{attrs:{\"dark\":\"\",\"color\":\"secondary\"},on:{\"click\":_vm.refreshApp}},[_vm._v(\" \"+_vm._s(_vm.$t('buttons.update'))+\" \")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, onMounted, ref } from '@vue/composition-api';\nimport { useGlobal } from './modules/global';\n\nexport default defineComponent({\n setup() {\n const { setUserReadPatchNotes } = useGlobal();\n const registration = ref();\n const updateExists = ref(false);\n const refreshing = ref(false);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const updateAvailable = (e: any) => {\n if (e.detail) {\n registration.value = e.detail;\n updateExists.value = true;\n } else {\n console.warn('No worker data found!');\n }\n };\n\n const refreshApp = () => {\n updateExists.value = false;\n\n if (!registration.value || !registration.value.waiting) return;\n setUserReadPatchNotes(false);\n registration.value.waiting.postMessage({ type: 'SKIP_WAITING' });\n };\n\n onMounted(() => {\n document.addEventListener('swupdatefound', updateAvailable, {\n once: true,\n });\n navigator.serviceWorker.addEventListener('controllerchange', () => {\n if (refreshing.value) return;\n refreshing.value = true;\n window.location.reload();\n });\n });\n\n return {\n refreshApp,\n updateExists,\n registration,\n refreshing,\n };\n },\n});\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--15-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??ref--15-3!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--15-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??ref--15-3!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=278e9862&\"\nimport script from \"./App.vue?vue&type=script&lang=ts&\"\nexport * from \"./App.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VMain } from 'vuetify/lib/components/VMain';\nimport { VScrollXTransition } from 'vuetify/lib/components/transitions';\nimport { VSnackbar } from 'vuetify/lib/components/VSnackbar';\ninstallComponents(component, {VApp,VBtn,VIcon,VMain,VScrollXTransition,VSnackbar})\n","/* eslint-disable no-console */\n\nimport { register } from 'register-service-worker';\n\nif (process.env.NODE_ENV === 'production') {\n register(`${process.env.BASE_URL}service-worker.js`, {\n ready() {\n console.log(\n `[sw:prokalk] App is being served from cache by a service worker at ${process.env.BASE_URL}.`\n );\n },\n registered(registration) {\n console.log('[sw:prokalk] Service worker has been registered.');\n // Routinely check for app updates by testing for a new service worker.\n setInterval(() => {\n registration.update();\n }, 1000 * 60 * 60); // hourly checks\n },\n cached() {\n console.log('[sw:prokalk] Content has been cached for offline use.');\n },\n updatefound() {\n console.log('[sw:prokalk] New content is downloading.');\n },\n updated(registration) {\n console.log('[sw:prokalk] New content is available; please refresh.');\n document.dispatchEvent(\n new CustomEvent('swupdatefound', { detail: registration })\n );\n },\n offline() {\n console.log(\n '[sw:prokalk] No internet connection found. App is running in offline mode.'\n );\n },\n error(error) {\n console.error(\n '[sw:prokalk] Error during service worker registration:',\n error\n );\n },\n });\n}\n","import { primaryColor, secondaryColor } from '@/constants/styles';\nimport Vue from 'vue';\nimport Vuetify from 'vuetify/lib/framework';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n theme: {\n themes: {\n light: {\n primary: primaryColor,\n secondary: secondaryColor,\n accent: '#8c9eff',\n error: '#b71c1c',\n },\n dark: {\n primary: primaryColor,\n secondary: secondaryColor,\n },\n },\n },\n});\n","import './util/installCompositionApi.ts';\nimport Vue from 'vue';\nimport App from './App.vue';\nimport './registerServiceWorker';\nimport router from './router';\nimport vuetify from './plugins/vuetify';\nimport AppLayout from '@/layout/applayout/index.vue';\nimport PerfectScrollbar from 'vue2-perfect-scrollbar';\nimport 'vue2-perfect-scrollbar/dist/vue2-perfect-scrollbar.css';\nimport { i18n } from '@/localization/index';\nimport CountryFlag from 'vue-country-flag';\n\nVue.use(PerfectScrollbar);\nVue.component('AppLayout', AppLayout);\nVue.component('country-flag', CountryFlag);\n\nVue.config.productionTip = false;\n\nnew Vue({\n router,\n vuetify,\n render: h => h(App),\n i18n,\n}).$mount('#app');\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NobbItemCertificates.vue?vue&type=style&index=1&id=23d5bcbc&scoped=true&lang=css&\"","import {\n BuildingElement,\n BuildingElementCalculation,\n} from '@/models/building-element/interfaces';\nimport { CustomError } from '@/models/common/interfaces';\nimport { ProjectOverview } from '@/models/projects/interfaces';\nimport { computed, reactive, toRefs } from '@vue/composition-api';\nimport { useApi } from './api';\nimport { isSuccess } from '@/helpers/common';\nimport { useErrorModal } from './error';\nimport { useSnackbar } from './snackbar';\nimport {\n buildElementCalculations,\n createAdditionElements,\n mapBuildingElementCalcProperties,\n updateBuildingItemSortOrder,\n} from '@/helpers/building-element';\nimport { useCalculation } from './calculation';\nimport { Ns3451 } from '@/models/standards/ns3451/interfaces';\nimport { v4 as uuidv4 } from 'uuid';\nimport { addAdditionsToElement } from '@/helpers/building-element';\nimport { BatchType } from '@/constants/enum';\nimport { useBatch } from './batch';\nimport { BuildingElementTemplate } from '@/models/library/interfaces';\nimport { sortBuildingItemTemplates } from '@/helpers/library';\nimport { useBuildingItem } from './building-item';\nimport { buildItemCalculations } from '@/helpers/building-item';\nimport { buildAdditionItemCalculations } from '@/helpers/addition-item';\n\ninterface State {\n error?: CustomError;\n}\n\nconst state = reactive({\n error: undefined,\n});\n\nexport const useBuildingElement = () => {\n const { errorModal } = useErrorModal();\n const { snack } = useSnackbar();\n\n const addBuildingElementToCalculation = (element: BuildingElement) => {\n const { projectCalculation } = useCalculation();\n const newCalcElement = mapBuildingElementCalcProperties(element);\n\n if (!projectCalculation.value) return;\n\n newCalcElement.Project = projectCalculation.value;\n newCalcElement.ProjectId = projectCalculation.value.Id;\n newCalcElement.IsRecentlyAdded = true;\n\n if (element.Items) {\n newCalcElement.BuildingItems = buildItemCalculations(\n element.Items,\n newCalcElement\n );\n }\n\n if (element.AdditionItems && newCalcElement.Unit?.value === 'm2') {\n newCalcElement.AdditionItems = buildAdditionItemCalculations(\n element.AdditionItems,\n newCalcElement\n );\n }\n\n if (projectCalculation.value?.BuildingElements) {\n projectCalculation.value.BuildingElements.push(newCalcElement);\n }\n };\n\n const deleteElementFromCalculation = async (\n element: BuildingElementCalculation\n ): Promise => {\n const { projectCalculation } = useCalculation();\n const { registerElementBatchOperation } = useBatch();\n if (projectCalculation.value?.BuildingElements) {\n projectCalculation.value.BuildingElements.forEach(ele => {\n if (\n ele.Id === element.Id &&\n projectCalculation.value?.BuildingElements\n ) {\n const index = projectCalculation.value.BuildingElements.indexOf(ele);\n projectCalculation.value.BuildingElements.splice(index, 1);\n registerElementBatchOperation(element, BatchType.Delete);\n snack('snack.element-deleted', true);\n }\n });\n }\n };\n\n const getElements = async (\n projectId: string\n ): Promise | undefined> => {\n const { get } = useApi(`/project/${projectId}/buildingelement`);\n\n let elements: Array | undefined = undefined;\n\n try {\n const response = await get();\n if (isSuccess(response.status)) {\n elements = response.data;\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n\n return elements;\n };\n\n const initElements = async (\n elements: Array,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n project: any\n ): Promise> => {\n return buildElementCalculations(elements, project);\n };\n\n const getElementsFromCalculations = async (\n calculations: Array\n ): Promise | undefined> => {\n const { projectCalculation } = useCalculation();\n let elements: Array = [];\n if (projectCalculation?.value) {\n for (const calc of calculations) {\n if (calc.Id) {\n const _elements = await getElements(calc.Id);\n if (_elements && projectCalculation?.value) {\n const _elementsCalc = await initElements(\n _elements,\n projectCalculation.value\n );\n if (_elementsCalc) {\n elements = elements.concat(_elementsCalc);\n }\n }\n }\n }\n }\n\n return elements;\n };\n\n const addFirstelement = computed(() => {\n const { projectCalculation } = useCalculation();\n return (\n projectCalculation?.value &&\n projectCalculation.value.BuildingElements &&\n projectCalculation.value.BuildingElements.length === 0\n );\n });\n\n const createElementFromNS3451 = async (\n ns3451: Ns3451\n ): Promise => {\n const { projectCalculation } = useCalculation();\n\n if (!projectCalculation?.value) return;\n\n const newElement: BuildingElement = {\n Id: uuidv4(),\n NS3450: projectCalculation?.value?.Profession?.Code ?? null,\n Transport: 0,\n Name: ns3451.Name,\n NS3451: ns3451.Number.toString(),\n Amount: null,\n Unit: 'm2',\n Items: [],\n AdditionItems: [],\n ProductionLine: null,\n SortOrder: 0,\n Comments: null,\n ProjectId: null,\n };\n\n const additions = createAdditionElements(newElement);\n newElement.AdditionItems = additions;\n\n return newElement;\n };\n\n const createElementCalcFromNS3451 = async (\n ns3451: Ns3451\n ): Promise => {\n const { projectCalculation } = useCalculation();\n const {\n registerElementBatchOperation,\n registerAdditionItemBatchOperation,\n } = useBatch();\n\n if (!projectCalculation?.value) return;\n\n const newElement: BuildingElement = {\n Id: uuidv4(),\n NS3450: projectCalculation?.value?.Profession?.Code ?? null,\n Transport: 0,\n Name: ns3451.Name,\n NS3451: ns3451.Number.toString(),\n Amount: null,\n Unit: 'm2',\n Items: [],\n AdditionItems: [],\n ProductionLine: null,\n SortOrder: 0,\n Comments: null,\n ProjectId: null,\n };\n\n const newCalcElement = mapBuildingElementCalcProperties(newElement);\n newCalcElement.Project = projectCalculation.value;\n newCalcElement.ProjectId = projectCalculation.value.Id;\n newCalcElement.NS3450 = projectCalculation.value.Profession?.Code ?? null;\n newCalcElement.IsRecentlyAdded = true;\n\n addAdditionsToElement(newCalcElement);\n\n newCalcElement.AdditionItems.forEach(aic =>\n registerAdditionItemBatchOperation(aic, BatchType.Insert)\n );\n await registerElementBatchOperation(newCalcElement, BatchType.Insert);\n\n return newCalcElement;\n };\n\n const createFromBuildingElementTemplate = async (\n template: BuildingElementTemplate\n ): Promise => {\n const { projectCalculation } = useCalculation();\n const { registerElementInsertChangesWithChildren } = useBatch();\n const { createBICFromBuildingItemTemplate } = useBuildingItem();\n\n if (!projectCalculation.value) return;\n\n if (!projectCalculation.value.BuildingElements) {\n projectCalculation.value.BuildingElements = [];\n }\n\n const ele: BuildingElement = {\n Name: template.Name,\n NS3451: template.NS3451,\n Unit: template.Unit,\n Comments: template.Comments,\n Transport: null,\n AdditionItems: [],\n Items: [],\n ProjectId: null,\n SortOrder: 0,\n ProductionLine: template.ProductionLine,\n NS3450: template.NS3450,\n Id: uuidv4(),\n Amount: null,\n };\n\n const eleCalc = mapBuildingElementCalcProperties(ele);\n eleCalc.Project = projectCalculation.value;\n eleCalc.ProjectId = projectCalculation.value.Id;\n eleCalc.NS3450 = projectCalculation.value.Profession?.Code ?? null;\n\n const sortedList = sortBuildingItemTemplates(\n template.BuildingItemTemplates\n );\n\n sortedList.forEach(temp => {\n if (eleCalc.Id) {\n const item = createBICFromBuildingItemTemplate(\n temp,\n eleCalc,\n eleCalc.Id\n );\n eleCalc.BuildingItems.push(item);\n }\n });\n\n updateBuildingItemSortOrder(eleCalc.BuildingItems);\n\n projectCalculation.value.BuildingElements.push(eleCalc);\n\n if (eleCalc.Unit?.value === 'm2') {\n addAdditionsToElement(eleCalc);\n }\n\n registerElementInsertChangesWithChildren(eleCalc);\n\n snack('snack.added-to-calculation', true);\n\n return eleCalc;\n };\n\n return {\n ...toRefs(state),\n getElementsFromCalculations,\n createElementCalcFromNS3451,\n createElementFromNS3451,\n initElements,\n getElements,\n deleteElementFromCalculation,\n createFromBuildingElementTemplate,\n addBuildingElementToCalculation,\n addFirstelement,\n };\n};\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=3adf366a&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Organization.vue?vue&type=style&index=0&id=e273d29c&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-app-bar',{attrs:{\"app\":\"\",\"color\":\"primary\"}},[_c('v-spacer'),_c('v-btn',{staticClass:\"ma-2\",attrs:{\"outlined\":\"\",\"color\":\"white\",\"loading\":\"\"}})],1),_c('v-overlay',{staticClass:\"overlay\"},[_c('v-progress-circular',{staticClass:\"loader\",attrs:{\"color\":\"white\",\"indeterminate\":\"\",\"size\":\"64\"}},[_c('v-main',[_vm._t(\"default\")],2)],1),_c('div',{staticClass:\"status-text\"},[_vm._v(_vm._s(_vm.statusText))])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { useLoader } from '@/modules/loader';\nimport { defineComponent } from '@vue/composition-api';\n\nexport default defineComponent({\n setup() {\n const { statusText } = useLoader();\n return {\n statusText,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=3f244d94&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=3f244d94&lang=scss&scoped=true&\"\nimport style1 from \"./index.vue?vue&type=style&index=1&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3f244d94\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAppBar } from 'vuetify/lib/components/VAppBar';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VMain } from 'vuetify/lib/components/VMain';\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VAppBar,VBtn,VMain,VOverlay,VProgressCircular,VSpacer})\n","import { AUTH_KEY } from '@/constants/common';\nimport { AuthState, Login, User } from '@/models/auth/interfaces';\nimport { reactive, toRefs } from '@vue/composition-api';\nimport { useApi } from './api';\nimport Vue from 'vue';\nimport VueCookies from 'vue-cookies';\nimport { useLicense } from './license';\nimport { isSuccess } from '@/helpers/common';\nimport { useLoader } from './loader';\nimport { translate } from '@/localization';\nimport { useProject } from './project';\nimport { usePriceBook } from './pricebook';\n\nVue.use(VueCookies);\n\nconst state = reactive({\n authenticating: false,\n user: undefined,\n error: undefined,\n license: undefined,\n loading: false,\n});\n\nexport const useAuth = () => {\n const token: string = Vue.$cookies.get(AUTH_KEY);\n\n const getUserInfo = async (): Promise => {\n const { get } = useApi('/account/GetUserInfo');\n\n try {\n const response = await get();\n if (isSuccess(response.status)) {\n state.user = response.data;\n }\n } catch (e) {\n state.error = e.response;\n Vue.$cookies.remove(AUTH_KEY);\n }\n\n return state.user;\n };\n\n const buildAuth = async (): Promise => {\n const { checkUserLicense, error } = useLicense();\n const { startLoader, stopLoader } = useLoader();\n startLoader(`${translate('loader.authenticating')}`);\n\n const user = await getUserInfo();\n const license = await checkUserLicense();\n\n if (user && license) {\n state.license = license;\n state.user = user;\n }\n\n if (error?.value) {\n Vue.$cookies.remove(AUTH_KEY);\n }\n\n stopLoader();\n };\n\n const checkAuthAndLicense = async (): Promise => {\n if (token && (state.user === undefined || state.license === undefined))\n await buildAuth();\n return true;\n };\n\n const updateAuthAndLicense = async (): Promise => {\n await buildAuth();\n };\n\n const setToken = (payload: Login, remember: boolean): void => {\n if (remember) {\n Vue.$cookies.set(AUTH_KEY, payload.access_token, payload['.expires']);\n }\n state.error = undefined;\n };\n\n const login = async (\n params: URLSearchParams,\n rememberMe: boolean\n ): Promise => {\n const { postUrlencoded } = useApi('/account/login');\n state.loading = true;\n\n try {\n const response = await postUrlencoded(params);\n if (isSuccess(response.status)) {\n setToken(response.data, rememberMe);\n }\n } catch (e) {\n state.error = e.response;\n }\n\n state.loading = false;\n };\n\n const logout = async (): Promise => {\n const { destructActiveProject } = useProject();\n const { destructPriceLists } = usePriceBook();\n Vue.$cookies.remove(AUTH_KEY);\n destructActiveProject();\n destructPriceLists();\n return Promise.resolve((state.user = undefined));\n };\n\n const resetPassword = async (username: string): Promise => {\n const { post } = useApi(`/account/forgotpassword?email=${username}`);\n let success = false;\n\n try {\n const response = await post();\n if (isSuccess(response.status)) {\n success = true;\n }\n } catch (e) {\n state.error = e.response;\n }\n\n return success;\n };\n\n return {\n updateAuthAndLicense,\n checkAuthAndLicense,\n setToken,\n logout,\n login,\n resetPassword,\n ...toRefs(state),\n };\n};\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=689e4ada&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/byggtjeneste.8588776e.svg\";","export const blobToString = async (blob: Blob) => {\n const fileReader = new FileReader();\n return new Promise((resolve, reject) => {\n fileReader.onloadend = ev => {\n if (ev?.target?.result) {\n resolve(ev.target.result);\n } else {\n reject;\n }\n };\n fileReader.onerror = reject;\n fileReader.readAsText(blob);\n });\n};\n\nexport const createCategoryFileName = (\n categoryId: string,\n categoryName: string\n) => {\n const asteriskCharThatDoesNotChangeInUrlEncodeButIsIllegalAsFileNameOnDisk =\n '*';\n categoryName = categoryName.replace(\n asteriskCharThatDoesNotChangeInUrlEncodeButIsIllegalAsFileNameOnDisk,\n ' '\n );\n return `category@${categoryId}@${encodeURIComponent(categoryName)}.json.gz`;\n};\n\nexport const getPriceListBlobNamePrefix = (priceListId: string) => {\n return `pricelist@${priceListId}/`;\n};\n\nexport const getCategoryNameFromUri = (uri: string) => {\n const indexOf = uri.lastIndexOf('@') + 1;\n let categoryName = uri.substr(\n indexOf,\n uri.length - indexOf - '.json.gz'.length\n );\n\n categoryName = categoryName.replace(/\\+/g, '%20');\n categoryName = decodeURIComponent(categoryName);\n return categoryName;\n};\n\nexport const getCategoryIdFromBlobUri = (uri: string) => {\n const indexOf = uri.indexOf('category@');\n const categoryIdAsString = uri.substr(indexOf + 'category@'.length, 36);\n return categoryIdAsString;\n};\n","import { reactive, toRefs } from '@vue/composition-api';\nimport { CustomError } from '@/models/common/interfaces';\nimport { BlobServiceClient, ContainerClient } from '@azure/storage-blob';\nimport { BlobPriceListsSignedUris } from '@/models/pricebook/interfaces';\nimport { isSuccess } from '@/helpers/common';\nimport { useApi } from './api';\nimport { useErrorModal } from './error';\nimport { useSnackbar } from './snackbar';\n\ninterface State {\n error?: CustomError;\n signedURIs: BlobPriceListsSignedUris | undefined;\n}\n\nconst state = reactive({\n error: undefined,\n signedURIs: undefined,\n});\n\nexport const useAzure = () => {\n const { errorModal } = useErrorModal();\n const { snack } = useSnackbar();\n\n const getSignedUris = async (\n force?: boolean\n ): Promise => {\n const { get } = useApi('/blobpricelists/signeduris');\n\n if (state.signedURIs && !force) {\n return state.signedURIs;\n }\n\n try {\n const response = await get();\n if (isSuccess(response.status)) {\n state.signedURIs = response.data;\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n\n return state.signedURIs;\n };\n\n const getCompanyContainer = async (): Promise<\n ContainerClient | undefined\n > => {\n let container: ContainerClient | undefined = undefined;\n\n if (!state.signedURIs) {\n await getSignedUris();\n }\n\n if (state.signedURIs?.CompanyContainerSignedUri) {\n try {\n const companyBlobServiceClient = new BlobServiceClient(\n state.signedURIs.CompanyContainerSignedUri\n );\n container = companyBlobServiceClient.getContainerClient('');\n } catch (e) {\n console.log(e);\n container = undefined;\n }\n }\n\n return container;\n };\n\n const getSharedContainer = async (): Promise => {\n let container: ContainerClient | undefined = undefined;\n\n if (!state.signedURIs) {\n await getSignedUris();\n }\n\n if (state.signedURIs?.SharedContainerSignedUri) {\n try {\n const sharedBlobServiceClient = new BlobServiceClient(\n state.signedURIs.SharedContainerSignedUri\n );\n container = sharedBlobServiceClient.getContainerClient('');\n } catch (e) {\n console.log(e);\n container = undefined;\n }\n }\n\n return container;\n };\n\n return {\n getCompanyContainer,\n getSharedContainer,\n ...toRefs(state),\n };\n};\n","import { BLOB_PRICELIST_NAME } from '@/constants/common';\nimport {\n blobToString,\n createCategoryFileName,\n getCategoryIdFromBlobUri,\n getCategoryNameFromUri,\n getPriceListBlobNamePrefix,\n} from '@/helpers/azure';\nimport { CustomError } from '@/models/common/interfaces';\nimport {\n BlobPriceList,\n BlobPriceListCategoryOverview,\n CategoryChanged,\n CategoryDeleted,\n Facet,\n PriceList,\n PriceListCreated,\n PriceListDeleted,\n PriceListFilterResult,\n PriceListItem,\n PriceListItemDeleted,\n PriceListSearchResult,\n PriceListTreeNode,\n PriceListVM,\n SearchablePriceListItem,\n SearchFilter,\n VareKategori,\n} from '@/models/pricebook/interfaces';\nimport {\n BlobItem,\n BlockBlobClient,\n ContainerClient,\n ContainerListBlobFlatSegmentResponse,\n ContainerListBlobsOptions,\n} from '@azure/storage-blob';\nimport { reactive, toRefs } from '@vue/composition-api';\nimport { useAzure } from './azure';\nimport * as pako from 'pako';\nimport { translate } from '@/localization';\nimport { useSnackbar } from './snackbar';\nimport { isSuccess, unitDescriptionConverter } from '@/helpers/common';\nimport { useApi } from './api';\nimport { useErrorModal } from './error';\nimport { v4 as uuidv4 } from 'uuid';\n\ninterface State {\n error?: CustomError;\n activePriceListItems?: Array;\n pricelists: Array | undefined;\n priceListTitle?: string;\n activePricelist?: PriceListTreeNode | undefined;\n activePricelistCategory?: BlobPriceListCategoryOverview | undefined;\n companyPricelistCategories: Array | undefined;\n companyBlobPriceLists: Array | undefined;\n sharedBlobPriceLists: Array | undefined;\n loading: boolean;\n uploadingPriceList: boolean;\n loadingPricelists: boolean;\n statusText: string;\n priceListName: string;\n}\n\nconst state = reactive({\n error: undefined,\n activePriceListItems: undefined,\n priceListTitle: undefined,\n activePricelist: undefined,\n activePricelistCategory: undefined,\n loading: false,\n companyBlobPriceLists: undefined,\n sharedBlobPriceLists: undefined,\n pricelists: undefined,\n uploadingPriceList: false,\n loadingPricelists: false,\n statusText: '',\n priceListName: '',\n companyPricelistCategories: undefined,\n});\n\nexport const usePriceBook = () => {\n const { snack } = useSnackbar();\n const { errorModal } = useErrorModal();\n\n const setActivePricelist = (list: PriceListTreeNode) => {\n state.activePricelist = list;\n state.priceListTitle = `${list.Name ?? '?'}`;\n };\n\n const destructPriceLists = () => {\n state.error = undefined;\n state.activePriceListItems = undefined;\n state.priceListTitle = undefined;\n state.activePricelist = undefined;\n state.activePricelistCategory = undefined;\n state.loading = false;\n state.companyBlobPriceLists = undefined;\n state.sharedBlobPriceLists = undefined;\n state.pricelists = undefined;\n state.uploadingPriceList = false;\n state.loadingPricelists = false;\n state.statusText = '';\n state.priceListName = '';\n state.companyPricelistCategories = undefined;\n };\n\n const setActivePricelistCategory = (\n category: BlobPriceListCategoryOverview\n ) => {\n state.activePricelistCategory = category;\n state.priceListTitle = `${state.activePricelist?.Name ??\n '?'} - ${category.Name ?? '?'} (${state.activePriceListItems?.length ??\n ''})`;\n };\n\n const updatePricesFromNOBBNumbers = async (\n priceListId: string,\n nobbNumbersInCalculation: Array\n ): Promise> => {\n let spli: Array = [];\n\n interface SearchPayload {\n PriceListId: string;\n NobbNumbersInCalculation: Array;\n }\n\n const payload: SearchPayload = {\n NobbNumbersInCalculation: nobbNumbersInCalculation,\n PriceListId: priceListId,\n };\n\n const { post } = useApi('/azuresearch/');\n\n try {\n const response = await post(payload);\n if (isSuccess(response.status)) {\n spli = response.data as Array;\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n\n return spli;\n };\n\n const searchProductsInPricelists = async (\n searchFilter: SearchFilter\n ): Promise => {\n let result: PriceListSearchResult = {\n CategoryFacets: [],\n FoundPriceLists: [],\n PriceListFacets: [],\n TotalResultCount: 0,\n };\n\n const { post } = useApi('/azuresearch/search');\n\n try {\n const response = await post(searchFilter);\n if (isSuccess(response.status)) {\n result = response.data as PriceListSearchResult;\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n\n return result;\n };\n\n const getPriceListFacets = async (\n searchFilter: SearchFilter\n ): Promise> => {\n let facets: Array = [];\n\n const { post } = useApi('/azuresearch/pricelistfacets');\n\n try {\n const response = await post(searchFilter);\n if (isSuccess(response.status)) {\n facets = response.data as Array;\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n\n return facets;\n };\n\n const getCategoryFacets = async (\n searchFilter: SearchFilter\n ): Promise> => {\n let facets: Array = [];\n\n const { post } = useApi('/azuresearch/categoryfacets');\n\n try {\n const response = await post(searchFilter);\n if (isSuccess(response.status)) {\n facets = response.data as Array;\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n\n return facets;\n };\n\n const searchProductsInPricelistsWithFilter = async (\n searchFilter: SearchFilter\n ): Promise => {\n let result: PriceListFilterResult = {\n FoundPriceLists: [],\n TotalResultCount: 0,\n };\n\n const { post } = useApi('/azuresearch/filters');\n\n try {\n const response = await post(searchFilter);\n if (isSuccess(response.status)) {\n result = response.data as PriceListFilterResult;\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n\n return result;\n };\n\n const destroyDownloaded = (full?: boolean) => {\n if (full) {\n state.activePricelist = undefined;\n }\n state.priceListTitle = undefined;\n state.activePriceListItems = undefined;\n state.activePricelistCategory = undefined;\n };\n\n const notifyPriceListDeleted = async (\n priceListId: string\n ): Promise => {\n const { post } = useApi('/blobpricelists/events/pricelistdeleted');\n\n let success = false;\n\n const payload: PriceListDeleted = {\n PriceListId: priceListId,\n };\n\n try {\n const response = await post(payload);\n if (isSuccess(response.status)) {\n success = true;\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n success = false;\n } else {\n snack('snack.sorry', false);\n success = false;\n }\n }\n\n return success;\n };\n\n const notifyCategoryDeleted = async (\n priceListId: string,\n categoryBlobName: string,\n categoryId: string,\n categoryName: string\n ): Promise => {\n const { post } = useApi('/blobpricelists/events/categorydeleted');\n\n let success = false;\n\n const payload: CategoryDeleted = {\n PriceListId: priceListId,\n CategoryBlobName: categoryBlobName,\n CategoryId: categoryId,\n CategoryName: categoryName,\n };\n\n try {\n const response = await post(payload);\n if (isSuccess(response.status)) {\n success = true;\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n success = false;\n } else {\n snack('snack.sorry', false);\n success = false;\n }\n }\n\n return success;\n };\n\n const notifyPriceListItemDeleted = async (\n priceListItemId: string\n ): Promise => {\n const { post } = useApi('/blobpricelists/events/pricelistitemdeleted');\n\n let success = false;\n\n const payload: PriceListItemDeleted = {\n PriceListItemId: priceListItemId,\n };\n\n try {\n const response = await post(payload);\n if (isSuccess(response.status)) {\n success = true;\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n success = false;\n } else {\n snack('snack.sorry', false);\n success = false;\n }\n }\n\n return success;\n };\n\n const notifyCategoryChanged = async (\n priceListId: string,\n categoryBlobName: string,\n categoryId: string,\n categoryName: string\n ): Promise => {\n const { post } = useApi('/blobpricelists/events/categorychanged');\n\n let success = false;\n\n const payload: CategoryChanged = {\n PriceListId: priceListId,\n CategoryBlobName: categoryBlobName,\n CategoryId: categoryId,\n CategoryName: categoryName,\n };\n\n try {\n const response = await post(payload);\n if (isSuccess(response.status)) {\n success = true;\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n success = false;\n } else {\n snack('snack.sorry', false);\n success = false;\n }\n }\n\n return success;\n };\n\n const notifyPriceListCreated = async (\n priceListId: string\n ): Promise => {\n const { post } = useApi('/blobpricelists/events/pricelistcreated');\n\n let success = false;\n\n const payload: PriceListCreated = {\n PriceListId: priceListId,\n };\n\n try {\n const response = await post(payload);\n if (isSuccess(response.status)) {\n success = true;\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n success = false;\n } else {\n snack('snack.sorry', false);\n success = false;\n }\n }\n\n return success;\n };\n\n const getSharedPricelists = async (): Promise> => {\n const { getSharedContainer } = useAzure();\n let blobPriceLists: Array = [];\n const priceLists: Array = [];\n\n const container = await getSharedContainer();\n\n if (!container) return priceLists;\n\n try {\n const blobClient = container.getBlobClient(BLOB_PRICELIST_NAME);\n\n const downloadBlockBlobResponse = await blobClient.download();\n const blobBody = await downloadBlockBlobResponse.blobBody;\n\n if (blobBody) {\n const downloaded = await blobToString(blobBody);\n blobPriceLists = JSON.parse(downloaded as string);\n }\n\n blobPriceLists.forEach(bpl => {\n const pricelist: PriceListTreeNode = {\n CompanyPriceList: bpl.CompanyPriceList,\n Id: bpl.Id,\n IsSubscription: bpl.IsSubscription,\n Name: bpl.Name,\n PriceFileId: bpl.PriceFileId,\n categories: [],\n };\n\n priceLists.push(pricelist);\n });\n } catch (e) {\n console.log(e);\n }\n\n return priceLists;\n };\n\n const getCompanyPricelists = async (): Promise> => {\n const { getCompanyContainer } = useAzure();\n let blobPriceLists: Array = [];\n const priceLists: Array = [];\n\n const container = await getCompanyContainer();\n\n if (!container) return priceLists;\n\n try {\n const blobClient = container.getBlobClient(BLOB_PRICELIST_NAME);\n\n const downloadBlockBlobResponse = await blobClient.download();\n const blobBody = await downloadBlockBlobResponse.blobBody;\n\n if (blobBody) {\n const downloaded = await blobToString(blobBody);\n blobPriceLists = JSON.parse(downloaded as string);\n }\n\n blobPriceLists.forEach(bpl => {\n const pricelist: PriceListTreeNode = {\n CompanyPriceList: bpl.CompanyPriceList,\n Id: bpl.Id,\n IsSubscription: bpl.IsSubscription,\n Name: bpl.Name,\n PriceFileId: bpl.PriceFileId,\n categories: [],\n };\n\n priceLists.push(pricelist);\n });\n } catch (e) {\n console.log(e);\n snack('snack.sorry', false);\n }\n\n return priceLists;\n };\n\n const getSubscribedPricelists = async (): Promise> => {\n const allPriceLists = await getCompanyPricelists();\n\n const subscribedLists = allPriceLists.filter(pl => pl.IsSubscription);\n\n return subscribedLists;\n };\n\n const getPriceLists = async (\n force?: boolean\n ): Promise> => {\n if (state.pricelists && !force) {\n return state.pricelists;\n }\n\n state.loadingPricelists = true;\n state.pricelists = [];\n\n const companyLists = await getCompanyPricelists();\n const sharedLists = await getSharedPricelists();\n\n companyLists.forEach(cl => {\n if (cl.IsSubscription) {\n const found = sharedLists.find(spl => spl.Id === cl.Id);\n if (!found) {\n cl.Name += ` (${translate('info.pricelist-unavailable')})`;\n }\n }\n });\n\n state.pricelists = companyLists;\n state.loadingPricelists = false;\n\n return state.pricelists;\n };\n\n const getPriceListCategoriesOverview = async (\n priceList: PriceListTreeNode\n ): Promise> => {\n const { getCompanyContainer, getSharedContainer } = useAzure();\n const categoryOverviews: Array = [];\n const blobs: Array = [];\n let marker: string | undefined = undefined;\n let priceListBlobNamePrefix = '';\n let container: ContainerClient | undefined = undefined;\n\n if (priceList.IsSubscription) {\n container = await getSharedContainer();\n } else {\n container = await getCompanyContainer();\n }\n\n if (!container || !priceList.Id) return categoryOverviews;\n\n priceListBlobNamePrefix = getPriceListBlobNamePrefix(priceList.Id);\n // Get the category prefix based on the ID of the pricelist selected\n const options: ContainerListBlobsOptions = {\n prefix: priceListBlobNamePrefix,\n };\n\n do {\n const iter: AsyncIterableIterator = await container\n .listBlobsFlat(options)\n .byPage({ continuationToken: marker });\n\n const resp = (await iter.next()).value;\n\n for (const blob of resp.segment.blobItems) {\n blobs.push(blob);\n }\n\n marker = resp.continuationToken;\n } while (marker);\n\n blobs.forEach(blob => {\n const id = getCategoryIdFromBlobUri(blob.name);\n const name = getCategoryNameFromUri(blob.name);\n\n if (priceList.Id) {\n const priceListCategory: BlobPriceListCategoryOverview = {\n BlobName: blob.name,\n Id: id,\n Name: name,\n ListBlobItem: blob,\n PriceListId: priceList.Id,\n SizeInBytes: blob.properties.contentLength,\n };\n\n categoryOverviews.push(priceListCategory);\n }\n });\n\n return categoryOverviews.sort((a, b) => {\n if (a.Name && b.Name && a.Name < b.Name) {\n return -1;\n }\n if (a.Name && b.Name && a.Name > b.Name) {\n return 1;\n }\n return 0;\n });\n };\n\n const downloadCategory = async (category: BlobPriceListCategoryOverview) => {\n const { getCompanyContainer, getSharedContainer } = useAzure();\n const { activePricelist } = usePriceBook();\n\n let blockBlobClient: BlockBlobClient | undefined = undefined;\n let container: ContainerClient | undefined = undefined;\n\n if (\n !activePricelist?.value ||\n category.PriceListId !== activePricelist.value.Id\n )\n return;\n\n if (activePricelist.value.IsSubscription) {\n container = await getSharedContainer();\n } else {\n container = await getCompanyContainer();\n }\n\n if (!container) return;\n\n blockBlobClient = container.getBlockBlobClient(category.BlobName);\n\n if (!blockBlobClient) return;\n\n state.loading = true;\n\n const downloadBlockBlobResponse = await blockBlobClient.download();\n const blobBody = await downloadBlockBlobResponse.blobBody;\n\n if (blobBody) {\n const orig = pako.ungzip(new Uint8Array(await blobBody.arrayBuffer()), {\n to: 'string',\n });\n state.activePriceListItems = JSON.parse(orig);\n }\n\n state.loading = false;\n };\n\n const savePriceListItemsToCategoryBlockBlob = async (del: boolean) => {\n const { getCompanyContainer } = useAzure();\n const container = await getCompanyContainer();\n\n if (\n !state.activePricelistCategory ||\n !container ||\n !state.activePriceListItems\n )\n return;\n\n const blobBlockClient = container.getBlockBlobClient(\n state.activePricelistCategory.BlobName\n );\n\n const stringifiedItemList = JSON.stringify(state.activePriceListItems);\n const newOrig = pako.gzip(stringifiedItemList, {\n to: 'string',\n });\n\n try {\n const uploadBlobResponse = await blobBlockClient.upload(\n newOrig,\n newOrig.length\n );\n\n if (uploadBlobResponse) {\n del\n ? snack('snack.pricelist-item-deleted', true)\n : snack('snack.pricelist-item-updated', true);\n }\n } catch (err) {\n console.log(err);\n snack('snack.sorry', false);\n }\n };\n\n const deletePriceListItemInternal = (priceListItemId: string) => {\n if (state.activePriceListItems && state.activePriceListItems.length > 0) {\n const index = state.activePriceListItems.findIndex(\n i => i.Id === priceListItemId\n );\n if (index >= 0) {\n state.activePriceListItems.splice(index, 1);\n }\n }\n };\n\n const insertPriceListItem = async (\n category: BlobPriceListCategoryOverview,\n item: PriceListItem\n ) => {\n const { getCompanyContainer } = useAzure();\n const container = await getCompanyContainer();\n\n if (!container) return;\n\n try {\n const blobBlockClient = container.getBlockBlobClient(category.BlobName);\n const downloadBlockBlobResponse = await blobBlockClient.download();\n const blobBody = await downloadBlockBlobResponse.blobBody;\n\n if (blobBody) {\n const orig = pako.ungzip(new Uint8Array(await blobBody.arrayBuffer()), {\n to: 'string',\n });\n const items: Array = JSON.parse(orig);\n items.push(item);\n const stringifiedItemList = JSON.stringify(items);\n const newOrig = pako.gzip(stringifiedItemList, {\n to: 'string',\n });\n\n const uploadBlobResponse = await blobBlockClient.upload(\n newOrig,\n newOrig.length\n );\n\n if (uploadBlobResponse && category.Name) {\n await notifyCategoryChanged(\n category.PriceListId,\n category.BlobName,\n category.Id,\n category.Name\n );\n }\n\n if (\n state.activePricelistCategory?.BlobName &&\n state.activePriceListItems &&\n state.activePricelistCategory.BlobName === category.BlobName &&\n state.activePricelist?.Id === category.PriceListId\n ) {\n state.activePriceListItems.push(item);\n }\n }\n } catch (e) {\n console.log(e);\n }\n };\n\n const updatePriceListItem = async (priceListItem: PriceListItem) => {\n if (\n !state.activePricelistCategory?.Name ||\n !state.activePricelist?.Id ||\n !state.activePriceListItems\n )\n return;\n\n deletePriceListItemInternal(priceListItem.Id);\n state.activePriceListItems.push(priceListItem);\n await savePriceListItemsToCategoryBlockBlob(false);\n\n await notifyCategoryChanged(\n state.activePricelist.Id,\n state.activePricelistCategory.BlobName,\n state.activePricelistCategory.Id,\n state.activePricelistCategory.Name\n );\n };\n\n const deletePriceListItem = async (priceListItem: PriceListItem) => {\n if (\n !state.activePricelistCategory?.Name ||\n !state.activePricelist?.Id ||\n !state.activePriceListItems\n )\n return;\n\n deletePriceListItemInternal(priceListItem.Id);\n await savePriceListItemsToCategoryBlockBlob(true);\n\n await notifyCategoryChanged(\n state.activePricelist.Id,\n state.activePricelistCategory.BlobName,\n state.activePricelistCategory.Id,\n state.activePricelistCategory.Name\n );\n };\n\n const deletePricelist = async (\n pricelistId: string,\n isSubscription: boolean\n ) => {\n const { getCompanyContainer } = useAzure();\n const container = await getCompanyContainer();\n let blobPriceLists: Array = [];\n\n if (!container || !pricelistId) return;\n\n try {\n const blockBlobClient = container.getBlockBlobClient(BLOB_PRICELIST_NAME);\n\n const downloadBlockBlobResponse = await blockBlobClient.download();\n const blobBody = await downloadBlockBlobResponse.blobBody;\n\n if (blobBody) {\n const downloaded = await blobToString(blobBody);\n blobPriceLists = JSON.parse(downloaded as string);\n\n if (blobPriceLists) {\n blobPriceLists = blobPriceLists.filter(\n blob => blob.Id !== pricelistId\n );\n }\n\n const payload = JSON.stringify(blobPriceLists);\n\n const uploadBlobResponse = await blockBlobClient.upload(\n payload,\n payload.length,\n {}\n );\n\n const notified = !isSubscription\n ? await notifyPriceListDeleted(pricelistId)\n : true;\n\n if (notified && uploadBlobResponse) {\n snack('snack.pricelist-deleted', true);\n await getPriceLists(true);\n }\n }\n } catch (e) {\n console.log(e);\n snack('snack.sorry', false);\n }\n };\n\n const deleteCategoryFromPriceList = async (\n category: BlobPriceListCategoryOverview\n ) => {\n const { getCompanyContainer } = useAzure();\n const container = await getCompanyContainer();\n\n if (!container || !category.BlobName) return;\n const categoryBlobBlockClient = container.getBlockBlobClient(\n category.BlobName\n );\n\n try {\n const trashcanCategoryBlobBlockClient = container.getBlockBlobClient(\n `trashcan-${category.BlobName}`\n );\n\n const downloadBlockBlobResponse = await categoryBlobBlockClient.download();\n const blobBody = await downloadBlockBlobResponse.blobBody;\n\n //COPY-BLOB\n\n if (blobBody) {\n const orig = pako.ungzip(new Uint8Array(await blobBody.arrayBuffer()), {\n to: 'string',\n });\n const newOrig = pako.gzip(orig, {\n to: 'string',\n });\n const uploadBlobResponse = await trashcanCategoryBlobBlockClient.upload(\n newOrig,\n newOrig.length\n );\n\n if (uploadBlobResponse) {\n const deleteResponse = await categoryBlobBlockClient.delete();\n if (deleteResponse && category.Name) {\n await notifyCategoryDeleted(\n category.PriceListId,\n trashcanCategoryBlobBlockClient.name,\n category.Id,\n category.Name\n );\n snack('snack.category-deleted', true);\n }\n }\n }\n } catch (e) {\n console.log(e);\n }\n };\n\n const getCompanyPricelistCategories = async (\n force?: boolean\n ): Promise => {\n if (state.companyPricelistCategories && !force) return;\n\n const companyPriceLists = await getCompanyPricelists();\n const companyList = companyPriceLists.find(\n cl => cl.CompanyPriceList === true\n );\n if (companyList) {\n state.companyPricelistCategories = await getPriceListCategoriesOverview(\n companyList\n );\n }\n };\n\n const addNewCategoryToPriceList = async (\n priceListId: string,\n category: VareKategori,\n notify: boolean\n ) => {\n const { getCompanyContainer } = useAzure();\n const container = await getCompanyContainer();\n\n if (!container || !category.Text) return;\n\n const categoryId = uuidv4();\n const categoryFileName = createCategoryFileName(categoryId, category.Text);\n\n const priceListPrefix = getPriceListBlobNamePrefix(priceListId);\n\n const newCategoryBlobName = `${priceListPrefix}${categoryFileName}`;\n\n const categoryBlobBlockClient = container.getBlockBlobClient(\n newCategoryBlobName\n );\n\n const items: Array = [];\n category.Varer.forEach(v => {\n const priceListItem: PriceListItem = {\n Id: uuidv4(),\n Name: v.ItemText,\n ItemNumber: v.ItemNumber,\n NOBBNumber: v.ItemNumberNOBB,\n DiscountPercentage: v.Discount,\n BasePrice: v.BasePrice,\n Description: v.ItemText2,\n Unit: unitDescriptionConverter(v.UnitDesc ?? ''),\n PackageUnitDesc: unitDescriptionConverter(v.PackageUnitDesc ?? ''),\n ItemsInPackage: v.ItemsInPackage,\n Price: null,\n };\n\n items.push(priceListItem);\n });\n\n const stringifiedItemList = JSON.stringify(items);\n const newOrig = pako.gzip(stringifiedItemList, {\n to: 'string',\n });\n\n const uploadBlobResponse = await categoryBlobBlockClient.upload(\n newOrig,\n newOrig.length\n );\n\n if (uploadBlobResponse && notify) {\n snack('snack.category-created', true);\n if (state.companyPricelistCategories) {\n await getCompanyPricelistCategories(true);\n }\n }\n };\n\n const canUploadList = (lists: Array): boolean => {\n let yesNo = true;\n if (lists) {\n const notSubscribed = lists.filter(pl => !pl.IsSubscription);\n if (notSubscribed && notSubscribed.length >= 5) {\n yesNo = false;\n snack('snack.too-many-lists', false);\n state.uploadingPriceList = false;\n state.statusText = '';\n state.priceListName = '';\n }\n }\n return yesNo;\n };\n\n const uploadPriceList = async (priceList: PriceListVM) => {\n const { getCompanyContainer } = useAzure();\n const container = await getCompanyContainer();\n\n let blobPriceLists: Array = [];\n\n if (!container) return;\n\n state.uploadingPriceList = true;\n state.priceListName = priceList.Name;\n const priceListId = uuidv4();\n\n try {\n const blockBlobClient = container.getBlockBlobClient(BLOB_PRICELIST_NAME);\n state.statusText = `${translate('loader.validating')}`;\n const downloadBlockBlobResponse = await blockBlobClient.download();\n const blobBody = await downloadBlockBlobResponse.blobBody;\n\n if (blobBody) {\n const downloaded = await blobToString(blobBody);\n blobPriceLists = JSON.parse(downloaded as string);\n\n if (blobPriceLists && canUploadList(blobPriceLists)) {\n state.statusText = `${translate('loader.starting-upload')}`;\n const newPriceList: BlobPriceList = {\n CompanyPriceList: false,\n Id: priceListId,\n IsSubscription: false,\n Name: priceList.Name,\n PriceFileId: null,\n };\n\n blobPriceLists.push(newPriceList);\n\n const payload = JSON.stringify(blobPriceLists);\n\n const uploadBlobResponse = await blockBlobClient.upload(\n payload,\n payload.length,\n {}\n );\n\n if (uploadBlobResponse) {\n for (const category of priceList.Categories) {\n state.statusText = `${translate('loader.creating-category', [\n category.Text,\n ])}`;\n\n if (!category.Text) continue;\n await addNewCategoryToPriceList(priceListId, category, false);\n }\n }\n\n await notifyPriceListCreated(priceListId);\n state.uploadingPriceList = false;\n state.statusText = '';\n state.priceListName = '';\n state.activePricelistCategory = undefined;\n state.activePricelist = undefined;\n state.activePriceListItems = undefined;\n await getPriceLists(true);\n }\n }\n } catch (e) {\n console.log(e);\n state.statusText = `${translate('loader.undo')}`;\n await deletePricelist(priceListId, false);\n snack('snack.sorry', false);\n }\n };\n\n const convertPriceListNodeTreeToPriceListArray = (\n plNodes: Array\n ): Array => {\n const pricelists: Array = [];\n plNodes.forEach(pln => {\n const pl: PriceList = {\n CompanyPriceList: pln.CompanyPriceList,\n Id: pln.Id,\n IsSubscription: pln.IsSubscription,\n Name: pln.Name,\n PriceFileId: pln.PriceFileId,\n };\n\n pricelists.push(pl);\n });\n return pricelists;\n };\n\n const getDownloadableFiles = async (): Promise> => {\n const downloadableFiles: Array = [];\n\n const sharedFiles = await getSharedPricelists();\n const companyFiles = await getCompanyPricelists();\n\n if (!sharedFiles || !companyFiles) return downloadableFiles;\n\n const allFiles = convertPriceListNodeTreeToPriceListArray(sharedFiles);\n const subscribedPriceLists = convertPriceListNodeTreeToPriceListArray(\n companyFiles\n );\n\n allFiles.forEach(file => {\n const found = subscribedPriceLists.find(\n subscribedFile => subscribedFile.Id === file.Id\n );\n if (!found) {\n downloadableFiles.push(file);\n }\n });\n\n return downloadableFiles;\n };\n\n const subscribeToPriceList = async (\n priceList: PriceList\n ): Promise => {\n const { getCompanyContainer } = useAzure();\n const companyContainer = await getCompanyContainer();\n let blobPriceLists: Array = [];\n\n let success = false;\n\n if (!companyContainer || !priceList.Id) return success;\n\n try {\n const blockBlobClient = companyContainer.getBlockBlobClient(\n BLOB_PRICELIST_NAME\n );\n\n const downloadBlockBlobResponse = await blockBlobClient.download();\n const blobBody = await downloadBlockBlobResponse.blobBody;\n\n if (blobBody) {\n const downloaded = await blobToString(blobBody);\n blobPriceLists = JSON.parse(downloaded as string);\n\n if (blobPriceLists) {\n const newSubscriptionPriceList: PriceList = {\n CompanyPriceList: priceList.CompanyPriceList,\n Id: priceList.Id,\n IsSubscription: true,\n Name: priceList.Name,\n PriceFileId: priceList.PriceFileId,\n };\n\n blobPriceLists.push(newSubscriptionPriceList);\n }\n\n const payload = JSON.stringify(blobPriceLists);\n\n const uploadBlobResponse = await blockBlobClient.upload(\n payload,\n payload.length,\n {}\n );\n\n if (uploadBlobResponse) {\n snack('snack.pricelist-added', true);\n await getPriceLists(true);\n success = true;\n }\n }\n } catch (e) {\n console.log(e);\n snack('snack.sorry', false);\n success = false;\n }\n return success;\n };\n\n return {\n getPriceLists,\n getCompanyPricelists,\n getSharedPricelists,\n getPriceListCategoriesOverview,\n getSubscribedPricelists,\n downloadCategory,\n destroyDownloaded,\n setActivePricelist,\n setActivePricelistCategory,\n deletePricelist,\n deleteCategoryFromPriceList,\n deletePriceListItem,\n insertPriceListItem,\n notifyPriceListDeleted,\n notifyCategoryDeleted,\n notifyPriceListItemDeleted,\n notifyCategoryChanged,\n notifyPriceListCreated,\n updatePriceListItem,\n uploadPriceList,\n addNewCategoryToPriceList,\n getDownloadableFiles,\n subscribeToPriceList,\n getCompanyPricelistCategories,\n updatePricesFromNOBBNumbers,\n searchProductsInPricelists,\n searchProductsInPricelistsWithFilter,\n getCategoryFacets,\n getPriceListFacets,\n destructPriceLists,\n ...toRefs(state),\n };\n};\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BuildingItemEnvironmentRow.vue?vue&type=style&index=0&id=9d179350&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=f65cd386&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=4e0570ca&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=6b9f913e&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=93187f92&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=2f8c26d0&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=2b36c7c7&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=62639cae&lang=scss&scoped=true&\"","export const primaryColor = '#263238';\nexport const secondaryColor = '#58a333';\nexport const secondaryVariantDarkColor = '#58a333';\nexport const secondaryVariantLightColor = '#58a333';\nexport const errorRed = '#d50000';\n\nexport const DEFAULT_TEXT_MINI = 5;\nexport const DEFAULT_TEXT_XSMALL = 6;\nexport const DEFAULT_TEXT_SMALL = 7;\nexport const DEFAULT_TEXT_XMEDIUM = 11;\nexport const DEFAULT_TEXT_MEDIUM = 10;\nexport const DEFAULT_TEXT_LARGE = 12;\n\nexport const LARGE_TEXT_MINI = 7;\nexport const LARGE_TEXT_XSMALL = 8;\nexport const LARGE_TEXT_SMALL = 9;\nexport const LARGE_TEXT_XMEDIUM = 13;\nexport const LARGE_TEXT_MEDIUM = 12;\nexport const LARGE_TEXT_LARGE = 14;\n","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=1ba2b3d0&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GenerateReport.vue?vue&type=style&index=0&id=47057509&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=1cfc9f32&lang=scss&scoped=true&\"","import { BatchType } from '@/constants/enum';\nimport {\n createNewDefaultBIC,\n createNewDefaultFromElement,\n instanceOfBuildingItemCalculation,\n} from '@/helpers/building-item';\nimport {\n BuildingElementCalculation,\n BuildingItem,\n BuildingItemCalculation,\n} from '@/models/building-element/interfaces';\nimport { CustomError } from '@/models/common/interfaces';\nimport { BuildingItemTemplate } from '@/models/library/interfaces';\nimport { TimeEstimate } from '@/models/time-estimate/interface';\nimport { reactive, toRefs } from '@vue/composition-api';\nimport { useBatch } from './batch';\nimport { useSnackbar } from './snackbar';\nimport { v4 as uuidv4 } from 'uuid';\nimport { PriceListItem } from '@/models/pricebook/interfaces';\nimport { calculatedPrice } from '@/helpers/pricebook';\n\ninterface State {\n error?: CustomError;\n}\n\nconst state = reactive({\n error: undefined,\n});\n\nexport const useBuildingItem = () => {\n const { snack } = useSnackbar();\n\n const addItemToElement = async (\n item: BuildingItemCalculation,\n element: BuildingElementCalculation\n ): Promise => {\n const { registerBuildingItemBatchOperation } = useBatch();\n\n if (element.BuildingItems) {\n registerBuildingItemBatchOperation(item, BatchType.Insert);\n element.BuildingItems.push(item);\n item.IsRecentlyAdded = true;\n return true;\n } else {\n return false;\n }\n };\n\n const deleteItemFromCalculation = (bi: BuildingItemCalculation) => {\n const { registerBuildingItemBatchOperation } = useBatch();\n if (bi.BuildingElement?.BuildingItems) {\n bi.BuildingElement.BuildingItems.forEach(bit => {\n if (bit.Id === bi.Id && bi.BuildingElement?.BuildingItems) {\n const index = bi.BuildingElement.BuildingItems.indexOf(bit);\n registerBuildingItemBatchOperation(bi, BatchType.Delete);\n bi.BuildingElement.BuildingItems.splice(index, 1);\n return;\n }\n });\n }\n };\n\n const createNewItem = (\n element: BuildingElementCalculation,\n elementId: string\n ) => {\n const newCalcitem = createNewDefaultBIC(element, elementId);\n newCalcitem.IsRecentlyAdded = true;\n addItemToElement(newCalcitem, element);\n element.IsExpanded = true;\n };\n\n const updateBuildingItemPrices = (\n items: Array,\n priceListName: string\n ) => {\n const { registerBuildingItemsBatchOperation } = useBatch();\n items.forEach(i => {\n if (i.PriceMatch) {\n i.NOBBNumber = i.PriceMatch.NobbNumber;\n i.Price = i.PriceMatch.PriceListPrice;\n i.UnitForOrder = i.PriceMatch.UnitForOrder;\n i.PriceListItemName = i.PriceMatch.PriceListItemName;\n i.PriceListName = priceListName;\n }\n });\n registerBuildingItemsBatchOperation(items, BatchType.Save);\n };\n\n const upsertProduct = async (\n item: BuildingItem | BuildingItemCalculation,\n pItem: PriceListItem,\n priceList: string\n ) => {\n const { registerItemSaveChangesWithAdditionAndParent } = useBatch();\n\n item.NOBBNumber = pItem.NOBBNumber;\n item.Price = calculatedPrice(pItem);\n item.UnitForOrder = pItem.Unit;\n item.PriceListItemName = pItem.Name;\n item.PriceListName = priceList;\n\n if (instanceOfBuildingItemCalculation(item)) {\n item.IsModifiedRecently = true;\n await registerItemSaveChangesWithAdditionAndParent(item);\n }\n\n snack('snack.product-updated', true);\n };\n\n const upsertTimeEstimate = async (\n estimate: TimeEstimate,\n item: BuildingItem | BuildingItemCalculation,\n overwriteName: boolean\n ) => {\n const { registerItemSaveChangesWithAdditionAndParent } = useBatch();\n\n if (overwriteName) {\n item.Name = estimate.Name;\n }\n item.NS3420 = estimate.NS3420;\n item.BaseTime = estimate.BaseTime;\n item.TransportationAddition = estimate.TransportAddition;\n item.Unit = estimate.Unit;\n item.TimeEstimateName = estimate.Name;\n\n if (item.Unit.toLocaleLowerCase() === 'm2') {\n item.SurfaceAddition = estimate.SurfaceAddition;\n item.OpeningAddition = estimate.OpeningAddition;\n }\n\n if (instanceOfBuildingItemCalculation(item)) {\n item.IsModifiedRecently = true;\n await registerItemSaveChangesWithAdditionAndParent(item);\n }\n\n snack('snack.estimate-updated', true);\n };\n\n const createBICFromTimeBook = async (\n estimate: TimeEstimate,\n element: BuildingElementCalculation,\n elementId: string\n ) => {\n const newCalcitem = createNewDefaultBIC(element, elementId);\n await upsertTimeEstimate(estimate, newCalcitem, true);\n newCalcitem.IsRecentlyAdded = true;\n addItemToElement(newCalcitem, element);\n };\n\n const createFromTimeBook = (\n estimate: TimeEstimate,\n element: BuildingElementCalculation\n ): BuildingItem => {\n const item: BuildingItem = {\n Id: uuidv4(),\n AmountPrUnit: 1,\n BaseTime: estimate.BaseTime,\n OpeningAddition: 0,\n SurfaceAddition: 0,\n TransportationAddition: 0,\n Precut: false,\n Price: 0,\n Name: estimate.Name,\n NS3420: estimate.NS3420,\n Unit: estimate.Unit,\n TimeEstimateName: estimate.Name,\n Transport: estimate.TransportAddition,\n BuildingElementId: element.Id,\n };\n return item;\n };\n\n const createFromPriceBook = (\n plItem: PriceListItem,\n element: BuildingElementCalculation,\n priceListName: string\n ): BuildingItem | undefined => {\n if (element.Id) {\n const item: BuildingItem = createNewDefaultFromElement(element.Id);\n\n item.PriceListName = priceListName;\n item.PriceListItemName = plItem.Name;\n item.NOBBNumber = plItem.NOBBNumber;\n item.Unit = plItem.Unit;\n item.UnitForOrder = plItem.Unit;\n item.Price = calculatedPrice(plItem);\n item.BuildingElementId = element.Id;\n item.Name = plItem.Name;\n item.Comments = plItem.Description;\n\n return item;\n }\n };\n\n const createFromBuildingItemTemplate = (\n template: BuildingItemTemplate,\n elementId: string\n ): BuildingItem => {\n const item: BuildingItem = {\n Id: uuidv4(),\n Name: template.Name,\n BuildingElementId: elementId,\n PriceListItemName: template.PriceListItemName,\n PriceListName: template.PriceListName,\n DeliveryOrder: template.DeliveryOrder,\n Amount: template.Amount,\n AmountAdjustment: template.AmountAdjustment,\n AmountPrUnit: template.AmountPrUnit,\n BaseTime: template.BaseTime,\n Comments: template.Comments,\n SurfaceAddition: template.SurfaceAddition,\n OpeningAddition: template.OpeningAddition,\n IsFDVExportSelected: template.IsFDVExportSelected,\n MileStone: template.MileStone,\n NS3420: template.NS3420,\n Unit: template.Unit,\n UnitForOrder: template.UnitForOrder,\n Price: template.Price,\n Transport: template.Transport,\n TransportationAddition: template.TransportationAddition,\n SortOrder: template.SortOrder,\n Precut: template.Precut,\n TimeEstimateName: template.TimeEstimateName,\n };\n\n if (template.AccountNumber != null) {\n const accountNumber = Number.parseFloat(template.AccountNumber);\n item.AccountNumber = accountNumber;\n }\n\n if (template.NOBBNumber != null) {\n const nobbNr = Number.parseInt(template.NOBBNumber);\n item.NOBBNumber = Number.isNaN(nobbNr) ? null : nobbNr;\n }\n\n return item;\n };\n\n const createBICFromBuildingItemTemplate = (\n template: BuildingItemTemplate,\n element: BuildingElementCalculation,\n elementId: string\n ): BuildingItemCalculation => {\n const newCalcitem = createNewDefaultBIC(element, elementId);\n\n newCalcitem.IsRecentlyAdded = true;\n newCalcitem.BuildingElement = element;\n newCalcitem.BuildingElementId = element.Id;\n\n newCalcitem.Name = template.Name;\n newCalcitem.PriceListName = template.PriceListName;\n newCalcitem.PriceListItemName = template.PriceListItemName;\n newCalcitem.TimeEstimateName = template.TimeEstimateName;\n newCalcitem.DeliveryOrder = template.DeliveryOrder;\n\n if (template.AccountNumber != null) {\n const accountNumber = Number.parseFloat(template.AccountNumber);\n newCalcitem.AccountNumber = accountNumber;\n }\n\n if (template.NOBBNumber != null) {\n const nobbNr = Number.parseInt(template.NOBBNumber);\n newCalcitem.NOBBNumber = Number.isNaN(nobbNr) ? null : nobbNr;\n }\n\n newCalcitem.NS3420 = template.NS3420;\n newCalcitem.Unit = template.Unit;\n newCalcitem.UnitForOrder = template.UnitForOrder;\n newCalcitem.Amount = template.Amount;\n newCalcitem.AmountAdjustment = template.AmountAdjustment;\n newCalcitem.AmountPrUnit = template.AmountPrUnit;\n newCalcitem.Price = template.Price;\n newCalcitem.BaseTime = template.BaseTime;\n newCalcitem.OpeningAddition = template.OpeningAddition;\n newCalcitem.SurfaceAddition = template.SurfaceAddition;\n newCalcitem.TransportationAddition = template.TransportationAddition;\n newCalcitem.IsFDVExportSelected = template.IsFDVExportSelected ?? false;\n newCalcitem.MileStone = template.MileStone;\n newCalcitem.Comments = template.Comments;\n newCalcitem.Transport = template.Transport;\n newCalcitem.Precut = template.Precut;\n newCalcitem.SortOrder = template.SortOrder;\n newCalcitem.IsRecentlyAdded = true;\n\n return newCalcitem;\n };\n\n return {\n createFromPriceBook,\n createNewItem,\n upsertTimeEstimate,\n createFromTimeBook,\n createBICFromTimeBook,\n deleteItemFromCalculation,\n createBICFromBuildingItemTemplate,\n createFromBuildingItemTemplate,\n upsertProduct,\n updateBuildingItemPrices,\n ...toRefs(state),\n };\n};\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=7a05ee0c&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=c8f12dc8&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=523034a0&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=6250d9ea&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=1d47d9f9&lang=scss&scoped=true&\"","import {\n CheckUserLicenseResult,\n License,\n LicensePrice,\n LicenseTermination,\n} from '@/models/admin/interfaces';\nimport { User } from '@/models/auth/interfaces';\nimport { reactive, toRefs } from '@vue/composition-api';\nimport { useApi } from './api';\nimport { useSnackbar } from './snackbar';\nimport moment from 'moment';\nimport { cleanSource, isSuccess } from '@/helpers/common';\nimport { CustomError, UsernameModel } from '@/models/common/interfaces';\nimport { useUsers } from './users';\nimport { useErrorModal } from './error';\nimport { useAuth } from './auth';\nimport { translate } from '@/localization/index';\n\ninterface AdminState {\n licenses?: Array;\n licensePrice?: LicensePrice;\n loading: boolean;\n error?: CustomError;\n availableUsers: Array;\n calculatingChoices: boolean;\n canChoose: boolean;\n}\n\nconst state = reactive({\n error: undefined,\n licensePrice: undefined,\n licenses: undefined,\n loading: false,\n availableUsers: [],\n calculatingChoices: false,\n canChoose: false,\n});\n\nexport const useLicense = () => {\n const { errorModal } = useErrorModal();\n const { snack } = useSnackbar();\n\n const checkUserLicense = async (): Promise<\n CheckUserLicenseResult | undefined\n > => {\n const { get } = useApi('/licensing/checkuserlicense');\n let check: CheckUserLicenseResult | undefined = undefined;\n try {\n const response = await get();\n if (isSuccess(response.status)) {\n check = response.data;\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n return check;\n };\n\n const upgradeLicense = async (user: UsernameModel): Promise => {\n const { post } = useApi('/licensing/management/upgradefromtriallicense');\n const { updateAuthAndLicense } = useAuth();\n let success = false;\n\n if (!user.UserName) return false;\n\n try {\n const response = await post(user);\n if (isSuccess(response.status)) {\n snack('snack.license-updated', true);\n success = true;\n await updateAuthAndLicense();\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n\n return success;\n };\n\n const shouldListLicense = (license: License): boolean => {\n //If license has an expire date, make sure it's before the current date and that it is not a trial license.\n if (license.ExpiryDate) {\n return !moment(license.ExpiryDate).isBefore() && !license.Trial;\n } else {\n return !license.Trial;\n }\n };\n\n const getLicenses = async (\n force?: boolean\n ): Promise | undefined> => {\n const { get } = useApi('/licensing/licenses');\n\n if (state.licenses && !force) {\n return state.licenses;\n }\n state.loading = true;\n\n try {\n const response = await get();\n if (isSuccess(response.status)) {\n state.licenses = response.data;\n\n if (state.licenses) {\n state.licenses = state.licenses.filter(l => shouldListLicense(l));\n }\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n\n state.loading = false;\n return state.licenses;\n };\n\n const canAssignToExistingUser = async (): Promise => {\n const { getUsers } = useUsers();\n state.calculatingChoices = true;\n const users = await getUsers();\n const licenses = await getLicenses();\n\n state.availableUsers = [];\n users?.forEach(user => {\n if (!licenses?.some(l => l.GrantedToUsername === user.Email)) {\n state.availableUsers.push(user.Email);\n }\n });\n state.calculatingChoices = false;\n state.canChoose = state.availableUsers.length > 0;\n };\n\n const purchaseLicense = async (newUser: UsernameModel): Promise => {\n const { post } = useApi('/licensing/management/purchaselicenseforuser');\n const { updateAuthAndLicense, user } = useAuth();\n let success = false;\n\n if (!newUser) return false;\n\n try {\n const response = await post(newUser);\n if (isSuccess(response.status)) {\n snack('snack.license-created', true);\n success = true;\n if (user?.value?.Email === newUser.UserName)\n await updateAuthAndLicense();\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n\n return success;\n };\n\n const unassignLicense = async (user: User): Promise => {\n await getLicenses();\n\n state.licenses?.forEach((license, i) => {\n if (license.GrantedToUsername === user.Email && state.licenses) {\n const updatedLicense = cleanSource(license);\n updatedLicense.GrantedToUsername = '';\n state.licenses.splice(i, 1);\n state.licenses.unshift(updatedLicense);\n return true;\n }\n });\n\n return false;\n };\n\n const deleteLicense = async (\n license: License\n ): Promise => {\n const { deleteReq } = useApi(`/licensing/management/license/${license.Id}`);\n\n if (!license.Id) return undefined;\n\n state.loading = true;\n\n try {\n const response = await deleteReq();\n if (isSuccess(response.status)) {\n const termination: LicenseTermination = {\n ExpiryDate: response.data.ExpiryDate,\n };\n state.licenses?.forEach((l, i) => {\n if (l.Id === license.Id && state.licenses) {\n license.ExpiryDate = response.data.ExpiryDate;\n state.licenses.splice(i, 1);\n state.licenses.unshift(license);\n snack(\n `${translate('snack.license-expires')} ${moment(\n license.ExpiryDate\n ).format('Do MMMM YYYY')}`,\n true\n );\n }\n });\n state.loading = false;\n return termination;\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n\n state.loading = false;\n return undefined;\n };\n\n const canAssignLicense = (license: License): boolean => {\n let canAssign = false;\n\n if (!license.GrantedToUsername) {\n if (license.ExpiryDate) {\n return moment(new Date()).isBefore(license.ExpiryDate);\n } else {\n canAssign = true;\n }\n }\n\n return canAssign;\n };\n\n const canDeleteLicense = (license: License): boolean => {\n let canDelete = false;\n\n if (!license.ExpiryDate) {\n canDelete = true;\n }\n\n return canDelete;\n };\n\n const showLicenseActions = (license: License): boolean => {\n return canAssignLicense(license) || canDeleteLicense(license);\n };\n\n const grantLicenseToUser = async (\n licenseId: string,\n userName: UsernameModel\n ): Promise => {\n const { put } = useApi(`/licensing/management/license/${licenseId}/grant`);\n let success = false;\n\n if (!licenseId) return false;\n\n state.loading = true;\n\n try {\n const response = await put(userName);\n if (isSuccess(response.status)) {\n snack(\n `${translate('snack.license-granted-to')} ${userName.UserName}.`,\n true\n );\n state.licenses?.forEach((l, i) => {\n if (l.Id === licenseId && state.licenses) {\n l.GrantedToUsername = userName.UserName;\n state.licenses.splice(i, 1);\n state.licenses.unshift(l);\n }\n });\n success = true;\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n\n state.loading = false;\n return success;\n };\n\n const getLicensePrice = async (): Promise => {\n const { get } = useApi('/licensing/management/pricing');\n if (state.licensePrice) {\n return state.licensePrice;\n }\n\n state.loading = true;\n\n try {\n const response = await get();\n if (isSuccess(response.status)) {\n state.licensePrice = response.data;\n }\n } catch (e) {\n state.error = e.response;\n if (state.error) {\n errorModal(state.error);\n } else {\n snack('snack.sorry', false);\n }\n }\n\n state.loading = false;\n return state.licensePrice;\n };\n\n return {\n ...toRefs(state),\n getLicenses,\n getLicensePrice,\n unassignLicense,\n deleteLicense,\n canAssignLicense,\n canDeleteLicense,\n showLicenseActions,\n purchaseLicense,\n grantLicenseToUser,\n checkUserLicense,\n upgradeLicense,\n canAssignToExistingUser,\n };\n};\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=2a23c87c&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=e15c3cd4&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=1&id=f5bca310&lang=scss&scoped=true&\"","var map = {\n\t\"./applayout-default/index.vue\": [\n\t\t\"6e49\",\n\t\t\"chunk-5ee99ba1\",\n\t\t\"chunk-174ffbe4\"\n\t],\n\t\"./applayout-loading/index.vue\": [\n\t\t\"d4e1\"\n\t],\n\t\"./applayout-protected/index.vue\": [\n\t\t\"c82b\",\n\t\t\"chunk-5ee99ba1\",\n\t\t\"chunk-7bf55367\"\n\t],\n\t\"./applayout/index.vue\": [\n\t\t\"1793\"\n\t],\n\t\"./components/cookie-consent/index.vue\": [\n\t\t\"51be\",\n\t\t\"chunk-5ee99ba1\"\n\t],\n\t\"./components/error-modal/index.vue\": [\n\t\t\"903a\",\n\t\t\"chunk-86242364\"\n\t],\n\t\"./components/feedback-modal/index.vue\": [\n\t\t\"9fc8\",\n\t\t\"chunk-489064dc\"\n\t],\n\t\"./components/language/index.vue\": [\n\t\t\"dddf\",\n\t\t\"chunk-6e999b7a\"\n\t],\n\t\"./components/nav-default/index.vue\": [\n\t\t\"8f5c\",\n\t\t\"chunk-61dae022\"\n\t],\n\t\"./components/nav-project/index.vue\": [\n\t\t\"eb8d5\",\n\t\t\"chunk-00a7214f\"\n\t],\n\t\"./components/sidebar/index.vue\": [\n\t\t\"d501\",\n\t\t\"chunk-03fc461c\"\n\t],\n\t\"./components/snackbar/index.vue\": [\n\t\t\"e5fd\",\n\t\t\"chunk-0c04eb95\"\n\t],\n\t\"./components/upgrade-license/index.vue\": [\n\t\t\"5090\",\n\t\t\"chunk-219e24ea\"\n\t],\n\t\"./components/welcome-modal/index.vue\": [\n\t\t\"f8e3\",\n\t\t\"chunk-73aa5a16\"\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = \"fb0a\";\nmodule.exports = webpackAsyncContext;","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=0fa57af1&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/start_project.ffb9eff8.png\";"],"sourceRoot":""}