{"version":3,"file":"app-1729e5d9.f5f1664a1007cfe7.bundle.js","mappings":"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","sources":["webpack://client-app/./src/app/components/quantity-filter-sources/quantity-filter-sources.scss","webpack://client-app/./src/app/components/rte/rich-text-editor.scss","webpack://client-app/./src/app/components/quantity-filter-sources/quantity-filter-sources.html","webpack://client-app/./src/app/components/rte/rich-text-editor.html","webpack://client-app/./src/app/components/quantity-filter-sources/quantity-filter-sources.ts","webpack://client-app/./src/app/components/rte/rich-text-editor.ts"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".selected-items-body .item span{display:inline-block;zwidth:25ch;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-left:2ch}.dialog-container-sources{height:90vh;width:90vw;overflow:hidden}.dialog-container-sources .dialog-header{width:100%;border-bottom:solid 1px #d3d3d3}.dialog-container-sources .dialog-header h4{padding:10px;vertical-align:middle;margin-bottom:0}.dialog-container-sources .modal-body{display:flex;flex-direction:row;margin-top:5px}.dialog-container-sources .modal-body .left-column{display:flex;flex-direction:column;padding-top:5px;padding-left:15px;padding-right:15px;padding-bottom:2px;width:40%;overflow:hidden}.dialog-container-sources .modal-body .left-column .left-header{margin-left:5px;height:auto;margin-bottom:3px}.dialog-container-sources .modal-body .left-column .selected-items-body{flex-grow:1;flex-basis:0;overflow:auto;margin-top:5px;padding-left:5px}.dialog-container-sources .modal-body .left-column .selected-items-body .right-aligned-item{float:right;margin-right:10px}.dialog-container-sources .modal-body .left-column .selected-items-body .right-aligned-item{background-color:#d3d3d3;cursor:pointer}.dialog-container-sources .modal-body .right-column{display:flex;flex-direction:column;padding-left:10px;padding-right:10px;padding-bottom:2px;border-left:solid 1px #d3d3d3;width:60%;overflow:hidden}.dialog-container-sources .modal-body .right-column .right-header{margin-top:5px}.dialog-container-sources .modal-body .right-column .search-result{flex-grow:1;flex-basis:0;overflow:auto}.dialog-container-sources .modal-body .right-column .search-result .type-item{padding:5px}.dialog-container-sources .modal-body .right-column .search-result .right-aligned-item{float:right;margin-right:10px}.dialog-container-sources .modal-body .right-column .search-result .expanded{transform:rotate(180deg)}.dialog-container-sources .modal-body .right-column .item{width:100%;padding:5px}.dialog-container-sources .modal-body .right-column .item .add-all-btn{background-color:#a9a9a9;transition:background-color .2s;border-radius:5px;padding:2px;border:1px solid #d3d3d3;color:#fff;transform:translateY(-2.5px)}.dialog-container-sources .modal-body .right-column .item .add-all-btn:hover{background-color:#646464;transition:background-color .2s;cursor:pointer;color:#fff}.dialog-container-sources .modal-body .right-column .item:hover,.dialog-container-sources .modal-body .right-column .type-item:hover{background-color:#d3d3d3;cursor:pointer}.dialog-container-sources .modal-body .right-column .type-list-holder .type-item{width:100%;margin-bottom:0;padding:5px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/app/components/quantity-filter-sources/quantity-filter-sources.scss\"],\"names\":[],\"mappings\":\"AAAA,gCACC,oBAAA,CACA,WAAA,CACA,kBAAA,CACA,eAAA,CACA,sBAAA,CACA,eAAA,CAGD,0BACI,WAAA,CACA,UAAA,CAEA,eAAA,CACA,yCACI,UAAA,CACA,+BAAA,CACA,4CACI,YAAA,CACA,qBAAA,CACA,eAAA,CAGR,sCACI,YAAA,CACA,kBAAA,CACA,cAAA,CAEA,mDACL,YAAA,CACA,qBAAA,CAES,eAAA,CACA,iBAAA,CACA,kBAAA,CACA,kBAAA,CAGA,SAAA,CAEA,eAAA,CACA,gEACI,eAAA,CACA,WAAA,CACA,iBAAA,CAEJ,wEACR,WAAA,CACA,YAAA,CAGY,aAAA,CACA,cAAA,CACA,gBAAA,CACA,4FACI,WAAA,CACA,iBAAA,CAEJ,4FACI,wBAAA,CACA,cAAA,CAIZ,oDACL,YAAA,CACA,qBAAA,CAES,iBAAA,CACA,kBAAA,CACA,kBAAA,CACA,6BAAA,CACA,SAAA,CACA,eAAA,CACA,kEACI,cAAA,CAEJ,mEACR,WAAA,CACA,YAAA,CAGY,aAAA,CACA,8EACI,WAAA,CAEJ,uFACI,WAAA,CACA,iBAAA,CAEJ,6EACI,wBAAA,CAGR,0DACI,UAAA,CACA,WAAA,CACA,uEACI,wBAAA,CACA,+BAAA,CACA,iBAAA,CACA,WAAA,CACA,wBAAA,CACA,UAAA,CACA,4BAAA,CAEJ,6EACI,wBAAA,CACA,+BAAA,CACA,cAAA,CACA,UAAA,CAIR,qIACI,wBAAA,CACA,cAAA,CAGA,iFACI,UAAA,CACA,eAAA,CACA,WAAA\",\"sourcesContent\":[\".selected-items-body .item span { \\r\\n\\tdisplay: inline-block;\\r\\n\\tzwidth: 25ch; /* We do _not_ want to artificially show less text that can possibly fit. */\\r\\n\\twhite-space: nowrap; \\r\\n\\toverflow: hidden;\\r\\n\\ttext-overflow: ellipsis;\\r\\n\\tmargin-left: 2ch;\\r\\n}\\r\\n\\r\\n.dialog-container-sources {\\r\\n height: 90vh; //600px;\\r\\n width: 90vw; //550px;\\r\\n\\r\\n overflow: hidden;\\r\\n .dialog-header {\\r\\n width: 100%;\\r\\n border-bottom: solid 1px lightgrey;\\r\\n h4 {\\r\\n padding: 10px;\\r\\n vertical-align: middle;\\r\\n margin-bottom: 0;\\r\\n }\\r\\n }\\r\\n .modal-body {\\r\\n display: flex;\\r\\n flex-direction: row;\\r\\n margin-top: 5px;\\r\\n\\r\\n .left-column {\\r\\n\\t\\t\\tdisplay: flex; // this column must be flex, to properly control the selected-items-body (which must not dictate height.)\\r\\n\\t\\t\\tflex-direction: column;\\r\\n\\r\\n padding-top: 5px;\\r\\n padding-left: 15px;\\r\\n padding-right: 15px;\\r\\n padding-bottom: 2px;\\r\\n\\r\\n\\t\\t\\t// JG: If we are flex, should we use plain width?\\r\\n width: 40%;\\r\\n\\r\\n overflow: hidden;\\r\\n .left-header {\\r\\n margin-left: 5px;\\r\\n height: auto;\\r\\n margin-bottom: 3px;\\r\\n }\\r\\n .selected-items-body {\\r\\n\\t\\t\\t\\tflex-grow: 1; // if there is space to get, give it to me.\\r\\n\\t\\t\\t\\tflex-basis: 0; // my size(height) doesn't matter.\\r\\n //max-height: 465px; // we don't need that.\\r\\n\\r\\n overflow: auto;\\r\\n margin-top: 5px;\\r\\n padding-left: 5px;\\r\\n .right-aligned-item {\\r\\n float:right;\\r\\n margin-right: 10px;\\r\\n }\\r\\n .right-aligned-item {\\r\\n background-color: lightgray;\\r\\n cursor: pointer;\\r\\n }\\r\\n }\\r\\n }\\r\\n .right-column {\\r\\n\\t\\t\\tdisplay: flex; // again, right column must be a flexbox, so we can control search-result list's height.\\r\\n\\t\\t\\tflex-direction: column;\\r\\n\\r\\n padding-left: 10px;\\r\\n padding-right:10px;\\r\\n padding-bottom: 2px;\\r\\n border-left: solid 1px lightgray;\\r\\n width: 60%;\\r\\n overflow: hidden;\\r\\n .right-header {\\r\\n margin-top: 5px;\\r\\n }\\r\\n .search-result {\\r\\n\\t\\t\\t\\tflex-grow: 1;\\r\\n\\t\\t\\t\\tflex-basis: 0; // IE don't force your content height on others.\\r\\n //max-height: 390px; // we don't really care for that.\\r\\n\\r\\n overflow: auto;\\r\\n .type-item {\\r\\n padding: 5px;\\r\\n }\\r\\n .right-aligned-item {\\r\\n float:right;\\r\\n margin-right: 10px;\\r\\n }\\r\\n .expanded {\\r\\n transform: rotate(180deg);\\r\\n }\\r\\n }\\r\\n .item {\\r\\n width: 100%;\\r\\n padding: 5px;\\r\\n .add-all-btn {\\r\\n background-color: darkgrey;\\r\\n transition: background-color 0.2s;\\r\\n border-radius: 5px;\\r\\n padding: 2px;\\r\\n border: 1px solid lightgrey;\\r\\n color: white;\\r\\n transform: translateY(-2.5px);\\r\\n }\\r\\n .add-all-btn:hover {\\r\\n background-color: rgb(100, 100, 100);\\r\\n transition: background-color 0.2s;\\r\\n cursor: pointer;\\r\\n color: white;\\r\\n \\r\\n }\\r\\n }\\r\\n .item:hover, .type-item:hover {\\r\\n background-color: lightgrey;\\r\\n cursor: pointer;\\r\\n }\\r\\n .type-list-holder {\\r\\n .type-item {\\r\\n width: 100%;\\r\\n margin-bottom: 0;\\r\\n padding:5px;\\r\\n }\\r\\n }\\r\\n }\\r\\n } \\r\\n}\\r\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root{--ck-border-radius: 4px;--ck-color-base-border: rgba(0, 0, 0, 0.175)}.ck-content{min-height:300px;padding:0 .75rem !important}.ck.ck-editor__editable:not(.ck-editor__nested-editable).ck-focused{border-color:#00b3c9}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/app/components/rte/rich-text-editor.scss\",\"webpack://./src/resources/customized-styles/variables.scss\"],\"names\":[],\"mappings\":\"AAEA,MACC,uBAAA,CACA,4CAAA,CAIA,YACC,gBAAA,CACA,2BAAA,CAGD,oEACC,oBCbO\",\"sourcesContent\":[\"@import \\\"src/resources/customized-styles/variables\\\";\\r\\n\\r\\n:root {\\r\\n\\t--ck-border-radius: 4px;\\r\\n\\t--ck-color-base-border: rgba(0, 0, 0, 0.175);\\r\\n}\\r\\n\\r\\n.ck {\\r\\n\\t&-content {\\r\\n\\t\\tmin-height: 300px;\\r\\n\\t\\tpadding: 0 .75rem !important;\\r\\n\\t}\\r\\n\\t\\r\\n\\t&.ck-editor__editable:not(.ck-editor__nested-editable).ck-focused {\\r\\n\\t\\tborder-color: $accent;\\r\\n\\t}\\r\\n}\\r\\n\",\"$text-color: #333;\\r\\n$accent: #00B3C9;\\r\\n$accent-15pct: #D9F4F7;\\r\\n$bs-default: #f1f3f4;\\r\\n$grey: #dddddd;\\r\\n$grey-light: #efefef;\\r\\n$grey-lighter: #F0F3F4;\\r\\n$grey-darker: #A5A3A3;\\r\\n$white-hsl-97: hsla(0deg, 0%, 97%, 1);\\r\\n\\r\\n$gutter: 15px;\\r\\n\\r\\n$box-shadow: 0 0 0.25rem rgba(0, 0, 0, 0.175);\\r\\n$box-shadow-right: 0.05rem 0 0.25rem rgba(0, 0, 0, 0.175);\\r\\n$box-shadow-left: -0.05rem 0 0.25rem rgba(0, 0, 0, 0.175);\\r\\n$box-shadow-color: rgba(0, 0, 0, 0.175);\\r\\n\\r\\n$border-color: rgba(0, 0, 0, 0.175);\\r\\n\\r\\n\\r\\n// Showroom header\\r\\n$showroom-header-height: 350px;\\r\\n$showroom-header-height-small: 150px;\\r\\n$showroom-header-height-mobile: 200px;\\r\\n\\r\\n// Navigation\\r\\n$nav-width: 275px;\\r\\n$nav-width-collapsed: 50px;\\r\\n$nav-height-mobile: 50px;\\r\\n\\r\\n// Top bar\\r\\n$top-bar-height: 4em;\\r\\n\\r\\n// CSS grid table\\r\\n$css-grid-header-height: calc(4em + 1px);\\r\\n\\r\\n// Object Presentation\\r\\n$object-presentation-left-content-width: 250px;\\r\\n$object-presentation-left-content-width-lg: 350px;\\r\\n$object-presentation-img-height: 250px;\\r\\n\\r\\n\\r\\n// Card deck\\r\\n$card-height: 250px;\\r\\n\\r\\n\\r\\n// Select\\r\\n$select-min-width: 200px;\\r\\n\\r\\n\\r\\n// Modal\\r\\n$modal-header-height: 50px;\\r\\n$modal-footer-height: 50px;\\r\\n\\r\\n// Object Properties\\r\\n$object-properties-width: 480px;\\r\\n$object-properties-width--detailed: 560px;\\r\\n$object-properties-width-mobile: 100vw;\\r\\n$object-properties-width-mobile--detailed: 100vw;\\r\\n$object-properties-width-tablet: 480px;\\r\\n$object-properties-width-tablet--detailed: 560px;\\r\\n\\r\\n// Notification Center\\r\\n$notification-center-width: 500px;\\r\\n\\r\\n// 7.0 z-index Setting\\r\\n\\r\\n$btn-scroll-to-top-zindex: 1020 !default;\\r\\n$content-zindex: 1020 !default;\\r\\n$float-submenu-zindex: 1020 !default;\\r\\n$footer-zindex: 1020 !default;\\r\\n$header-zindex: 1020 !default;\\r\\n$header-fixed-zindex: 1040 !default;\\r\\n$sidebar-zindex: 1010 !default;\\r\\n$top-menu-zindex: 1015 !default;\\r\\n$theme-panel-zindex: 1020 !default;\\r\\n$page-loader-zindex : 9999 !default;\\r\\n$page-title-zindex: 1020 !default;\\r\\n$pace-loader-zindex: 1030 !default;\\r\\n$panel-expand-zindex: 1080 !default;\\r\\n\\r\\n// 2.0 RTL Setting\\r\\n\\r\\n$enable-rtl: false !default;\\r\\n\\r\\n// 6.0 App Component Setting\\r\\n\\r\\n$boxed-layout-width: rem(1280px) !default;\\r\\n$content-padding-x: rem(30px) !default;\\r\\n$content-padding-y: rem(20px) !default;\\r\\n$content-padding-x-sm: rem(20px) !default;\\r\\n$content-padding-y-sm: rem(20px) !default;\\r\\n$header-height: rem(50px) !default;\\r\\n$header-height-sm: rem(50px) !default;\\r\\n$sidebar-width: rem(220px) !default;\\r\\n$sidebar-minified-width: rem(60px) !default;\\r\\n$sidebar-wide-width: rem(250px) !default;\\r\\n$top-menu-height: rem(40px) !default;\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","module.exports = \"\\r\\n\";","module.exports = \"\\r\\n\";","import { CategoryWithTypesDto } from 'app/models/category-dto';\r\nimport { QuantityFilterDto } from 'app/project/quantity-views/quantity-filters';\r\nimport { ModalService } from 'app/services/modal-service';\r\nimport { QuantitySourcesService } from 'app/services/quantity-sources-service';\r\nimport { DialogCloseResult, DialogController } from 'aurelia-dialog';\r\nimport { autoinject } from 'aurelia-framework';\r\n\r\n@autoinject\r\nexport class QuantityFilterSources {\r\n private quantityFilter: QuantityFilterDto | undefined\r\n private listFromStart: string[] = [];\r\n private types: TypeDto[] = [];\r\n private typesLoading: boolean = false;\r\n private currentTypePageNumber: number = 0;\r\n\r\n private categories: CategoryWithTypesDto[] = [];\r\n private categoriesLoading: boolean = false;\r\n private currentCategoryPageNumber: number = 0;\r\n \r\n private families: FamilyWithTypesDto[] = [];\r\n private familiesLoading: boolean = false;\r\n private currentFamiliePageNumber: number = 0;\r\n\r\n private readonly pageSize: number = 50; //There is 50 items loaded per time.\r\n \r\n private userInput: string = \"\";\r\n private selectedTypes: TypeDto[] = [];\r\n private addAllClicked: boolean = false;\r\n\r\n private typeSelected: boolean = true;\r\n private categorySelected: boolean = false;\r\n private familySelected: boolean = false;\r\n\r\n public keybuttonHandling: ((this: Window, ev: KeyboardEvent) => any) | undefined;\r\n\r\n\r\n constructor(protected dialog: DialogController, public quantitySourcesService: QuantitySourcesService, public modal: ModalService) {}\r\n \r\n async activate(quantityFilter: QuantityFilterDto): Promise {\r\n this.quantityFilter = quantityFilter;\r\n let result = await this.quantitySourcesService.getSelectedTypes(quantityFilter.id);\r\n this.selectedTypes = result;\r\n this.listFromStart.push(...this.selectedTypes.map(type => type.id));\r\n // this.selectedTypes.forEach(type => {\r\n // this.listFromStart.push(new TypeDto(type.id, type.name, type.family, type.combined));\r\n // });\r\n this.dialog.settings.keyboard = ['Escape'];\r\n this.keybuttonHandling = async (event) => {\r\n\t\t\tif (event.key == \"Enter\") {\r\n await this.searchForType();\r\n\t\t\t}\r\n };\r\n\t\twindow.addEventListener('keyup', this.keybuttonHandling, false);\r\n }\r\n unbind() {\r\n if (this.keybuttonHandling) {\r\n window.removeEventListener('keyup', this.keybuttonHandling, false);\r\n }\r\n }\r\n\r\n async searchForType(): Promise {\r\n if (this.userInput.length > 0) {\r\n this.types = await this.quantitySourcesService.getTypes(this.userInput, 0);\r\n this.categories = await this.quantitySourcesService.getProjectCategories(this.userInput, 0);\r\n this.families = await this.quantitySourcesService.getProjectFamilies(this.userInput, 0);\r\n }\r\n }\r\n \r\n selectOption(name: string) {\r\n this.typeSelected = name === \"type\";\r\n this.categorySelected = name === \"category\";\r\n this.familySelected = name === \"family\";\r\n return true;\r\n }\r\n\r\n async getMoreTypes(scrollContext: any): Promise {\r\n if (!scrollContext.isAtBottom) { //built in virtual-repeat.for used for only getting more items if bottom is reached.\r\n return;\r\n }\r\n let newPageIndex: number = Math.round(this.types.length / this.pageSize);\r\n if (!this.typesLoading && this.currentTypePageNumber != newPageIndex) {\r\n this.typesLoading = true;\r\n this.currentTypePageNumber = newPageIndex;\r\n this.types.push(...await this.quantitySourcesService.getTypes(this.userInput, this.currentTypePageNumber));\r\n this.typesLoading = false;\r\n }\r\n }\r\n\r\n async getMoreCategories(scrollContext: any): Promise {\r\n if (!scrollContext.isAtBottom) { //built in virtual-repeat.for used for only getting more items if bottom is reached.\r\n return;\r\n }\r\n let newPageIndex: number = Math.round(this.categories.length / this.pageSize);\r\n if (!this.categoriesLoading && this.currentCategoryPageNumber != newPageIndex) {\r\n this.categoriesLoading = true;\r\n this.currentCategoryPageNumber = newPageIndex;\r\n this.categories.push(...await this.quantitySourcesService.getProjectCategories(this.userInput, this.currentCategoryPageNumber));\r\n this.categoriesLoading = false;\r\n }\r\n }\r\n\r\n async getMoreFamilies(scrollContext: any): Promise {\r\n if (!scrollContext.isAtBottom) { //built in virtual-repeat.for used for only getting more items if bottom is reached.\r\n return;\r\n }\r\n let newPageIndex: number = Math.round(this.families.length / this.pageSize);\r\n if (!this.familiesLoading && this.currentFamiliePageNumber != newPageIndex) {\r\n this.familiesLoading = true;\r\n this.currentFamiliePageNumber = newPageIndex;\r\n this.families.push(...await this.quantitySourcesService.getProjectFamilies(this.userInput, this.currentFamiliePageNumber));\r\n this.familiesLoading = false;\r\n } \r\n }\r\n\r\n async addTypeItem(item: TypeDto): Promise {\r\n if (!this.isItemInList(item)) {\r\n this.selectedTypes.push(item);\r\n }\r\n }\r\n \r\n async addCategoryItem(item: CategoryWithTypesDto): Promise {\r\n let result: TypeDto[] = await this.quantitySourcesService.getTypeByBuiltInCategory(item.builtInCategory);\r\n this.addItemsToList(result);\r\n }\r\n\r\n async showTypesByCategory(category: CategoryWithTypesDto): Promise {\r\n if (this.addAllClicked) {\r\n this.addAllClicked = false;\r\n return;\r\n } \r\n if (category.isExpanded == true) {\r\n category.isExpanded = false;\r\n return;\r\n }\r\n category.isExpanded = true;\r\n if (!category.types) {\r\n category.types = await this.quantitySourcesService.getTypeByBuiltInCategory(category.builtInCategory);\r\n }\r\n console.log(category);\r\n }\r\n\r\n async showTypesByFamily(family: FamilyWithTypesDto): Promise {\r\n if (this.addAllClicked) {\r\n this.addAllClicked = false;\r\n return;\r\n } \r\n if (family.isExpanded == true) {\r\n family.isExpanded = false;\r\n return;\r\n }\r\n family.isExpanded = true;\r\n if (!family.types) {\r\n family.types = await this.quantitySourcesService.getTypeIdByFamilyId(family.id);\r\n }\r\n console.log(family);\r\n }\r\n\r\n async addFamilyItem(item: FamilyWithTypesDto): Promise {\r\n let result: TypeDto[] = await this.quantitySourcesService.getTypeIdByFamilyId(item.id);\r\n this.addItemsToList(result);\r\n }\r\n \r\n addItemsToList(result: TypeDto[]): void {\r\n if (result.length > 0) {\r\n result.forEach((element: TypeDto) => {\r\n if (!this.isItemInList(element)) {\r\n this.selectedTypes.push(element) \r\n }\r\n });\r\n }\r\n }\r\n\r\n async addAllCategoryTypes(category: CategoryWithTypesDto): Promise {\r\n this.addAllClicked = true;\r\n if (!category.types) {\r\n category.types = await this.quantitySourcesService.getTypeByBuiltInCategory(category.builtInCategory);\r\n }\r\n this.addItemsToList(category.types);\r\n }\r\n async addAllFamilyTypes(family: FamilyWithTypesDto): Promise {\r\n this.addAllClicked = true;\r\n if (!family.types) {\r\n family.types = await this.quantitySourcesService.getTypeIdByFamilyId(family.id);\r\n }\r\n this.addItemsToList(family.types);\r\n }\r\n\r\n removeItem(type: TypeDto): void {\r\n this.selectedTypes = this.selectedTypes.filter((element: TypeDto) => {return element != type});\r\n }\r\n\r\n isItemInList(element: TypeDto): boolean {\r\n let isFound = false;\r\n this.selectedTypes.forEach((item: TypeDto) => {\r\n if (element.id == item.id) {\r\n isFound = true;\r\n return;\r\n }\r\n });\r\n return isFound;\r\n }\r\n async canDeactivate(r: DialogCloseResult):Promise {\r\n if (r.wasCancelled) {\r\n return await this.close();\r\n }\r\n return true;\r\n }\r\n\r\n async close(): Promise {\r\n if (this.checkIfSame()) {\r\n return true;\r\n }\r\n let shouldSave: boolean = await this.modal.OpenConfirm(\"Changes not saved\", \"Do you want to save the changes before closing?\").whenClosed((x: DialogCloseResult) => {\r\n return x.wasCancelled == false;\r\n });\r\n if (shouldSave) {\r\n this.save();\r\n }\r\n return true;\r\n }\r\n\r\n checkIfSame(): boolean {\r\n let self = this;\r\n let isSameLength = (this.listFromStart.length == this.selectedTypes.length)\r\n let isSameTypes = (this.selectedTypes.every(function(type) {\r\n return self.listFromStart.includes(type.id); \r\n }));\r\n return isSameLength && isSameTypes;\r\n }\r\n\r\n async save(): Promise {\r\n if (this.quantityFilter) {\r\n let newlySelectedIds = this.selectedTypes.map((type: TypeDto) => type.id);\r\n let itemsToRemove: string[] = [];\r\n this.listFromStart.forEach((typeId: string) => {\r\n if (!newlySelectedIds.includes(typeId)) {\r\n itemsToRemove.push(typeId);\r\n }\r\n }); \r\n let itemsToAdd: string[] = [];\r\n newlySelectedIds.forEach(typeId => {\r\n if (!this.listFromStart.includes(typeId)) {\r\n itemsToAdd.push(typeId);\r\n }\r\n });\r\n await this.quantitySourcesService.updateSources(this.quantityFilter.id,itemsToAdd,itemsToRemove);\r\n this.dialog.ok(); //Ok can also take an output. This might come in handy.\r\n }\r\n }\r\n}\r\n\r\nexport class TypeDto {\r\n constructor(public id:string, public name:string, public created: string, public hasNoInstances: boolean, public updatedHasNoInstances: string | null, public family:string, public combined:string) {}\r\n //id: string;\r\n //name: string;\r\n\t//family: string;\r\n\t//combined: string;\r\n\r\n\t//this.id = id;\r\n\t//this.name = name; \r\n}\r\nexport class TypeDtoWithSelect extends TypeDto {\r\n selected: boolean = false;\r\n}\r\n\r\nexport class TypeDtoWCategory extends TypeDto {\r\n category: number = -1;\r\n categoryName: string = \"\";\r\n selected: boolean = false;\r\n}\r\n\r\nexport class TypeDtoWBuiltInCategory extends TypeDto {\r\n builtInCategory: string = \"\";\r\n}\r\n\r\n\r\nexport interface FamilyWithTypesDto {\r\n id: string;\r\n name: string;\r\n builtInCategory: number;\r\n isExpanded: boolean;\r\n types: TypeDto[];\r\n}\r\n","import * as ClassicEditor from './ckeditor/ckeditor.js';\r\nimport { bindable, bindingMode, autoinject } from 'aurelia-framework';\r\nimport { GuidGenerator } from 'resources/utilities/GuidGenerator';\r\n\r\n@autoinject\r\nexport class RichTextEditor {\r\n\t@bindable({ defaultBindingMode: bindingMode.twoWay }) value: string = '';\r\n\teditor = null;\r\n\teditorId: string = '';\r\n\r\n\tconstructor(private guidGenerator: GuidGenerator) {\r\n\t\tthis.editorId = `rte-${guidGenerator.createGuid()}`;\r\n\t}\r\n\r\n\tattached() {\r\n\t\tthis.clearEditor();\r\n\r\n\t\tClassicEditor\r\n\t\t\t.create(document.querySelector(`#${this.editorId}`), {\r\n\t\t\t\ttoolbar: [ 'bold', 'italic', 'underline', 'link' ]\r\n\t\t\t})\r\n\t\t\t.then((editor: any) => {\r\n\t\t\t\tthis.editor = editor;\r\n\t\t\t\t(this.editor)?.setData(this.value);\r\n\t\t\r\n\t\t\t\t(this.editor)?.model.document.on('change', () => {\r\n\t\t\t\t\tthis.value = (this.editor)?.getData();\r\n\t\t\t\t});\r\n\t\t\t})\r\n\t\t\t.catch((err: any) => {\r\n\t\t\t\tconsole.error(err.stack);\r\n\t\t\t});\r\n\t}\r\n\r\n\tdetached() {\r\n\t\tthis.clearEditor();\r\n\t}\r\n\r\n\tclearEditor() {\r\n\t\tif (this.editor) {\r\n\t\t\t(this.editor).destroy();\r\n\t\t\tthis.editor = null;\r\n\t\t}\r\n\t}\r\n}\r\n"],"names":["___CSS_LOADER_EXPORT___","push","module","id","exports","QuantityFilterSources","constructor","dialog","quantitySourcesService","modal","listFromStart","types","typesLoading","currentTypePageNumber","categories","categoriesLoading","currentCategoryPageNumber","families","familiesLoading","currentFamiliePageNumber","pageSize","userInput","selectedTypes","addAllClicked","typeSelected","categorySelected","familySelected","async","quantityFilter","this","result","getSelectedTypes","map","type","settings","keyboard","keybuttonHandling","event","key","searchForType","window","addEventListener","unbind","removeEventListener","length","getTypes","getProjectCategories","getProjectFamilies","selectOption","name","scrollContext","isAtBottom","newPageIndex","Math","round","item","isItemInList","getTypeByBuiltInCategory","builtInCategory","addItemsToList","category","isExpanded","console","log","family","getTypeIdByFamilyId","forEach","element","removeItem","filter","isFound","r","wasCancelled","close","checkIfSame","OpenConfirm","whenClosed","x","save","self","isSameLength","isSameTypes","every","includes","newlySelectedIds","itemsToRemove","typeId","itemsToAdd","updateSources","ok","autoinject","DialogController","TypeDto","created","hasNoInstances","updatedHasNoInstances","combined","TypeDtoWithSelect","selected","TypeDtoWCategory","categoryName","TypeDtoWBuiltInCategory","RichTextEditor","guidGenerator","value","editor","editorId","createGuid","attached","clearEditor","document","querySelector","toolbar","then","setData","model","on","getData","catch","err","error","stack","detached","destroy","bindable","defaultBindingMode","bindingMode"],"sourceRoot":""}