{"version":3,"file":"app-b35ff78c.de07950a2daccde9.bundle.js","mappings":"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","sources":["webpack://client-app/./src/app/components/filter/grouping/grouping-selector.scss","webpack://client-app/./src/app/components/filter/grouping/grouping-selector.html","webpack://client-app/./src/app/components/filter/grouping/grouping-selector.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, `.grouping-selector{display:grid;grid-template-columns:minmax(200px, 300px) 1fr;height:calc(100vh - 50px - 50px - 60px);overflow:hidden;width:calc(100vw - 60px)}@media screen and (orientation: portrait){[data-device-type=mobile] .grouping-selector,[data-device-type=tablet] .grouping-selector{display:flex;flex-direction:column}}.grouping-selector-header{background:#f0f3f4}.grouping-selector-header .actions-bar{display:grid;grid-auto-flow:column;gap:calc(15px/2)}.grouping-selector-header .dropdown-menu--saved-filters__inner{max-height:600px;overflow:auto}.grouping-selector-header .dropdown-menu--saved-filters .dropdown-item{display:grid;grid-template-columns:auto 2.5em;align-items:center;gap:15px;padding:calc(15px/2) calc(15px/2) calc(15px/2) 0;min-height:3.75em}.grouping-selector-header .dropdown-menu--saved-filters .load-filter{cursor:pointer;display:flex;align-items:center;gap:calc(15px/2);height:100%;padding-left:15px}.grouping-selector__left{display:grid;grid-template-rows:3.5em 1fr;border-right:1px solid rgba(0,0,0,.175);position:relative;width:100%;overflow:auto}.grouping-selector__left .filters-search{background:#fff;border:none;border-bottom:1px solid rgba(0,0,0,.175);padding:12px 15px;width:100%;outline:none}.grouping-selector__left .list-available--filters,.grouping-selector__left .list-available--categories{padding:calc(15px/2) 0;position:relative;overflow:auto}.grouping-selector__left .list-available--filters .filter,.grouping-selector__left .list-available--filters .filter-row,.grouping-selector__left .list-available--filters .category,.grouping-selector__left .list-available--categories .filter,.grouping-selector__left .list-available--categories .filter-row,.grouping-selector__left .list-available--categories .category{cursor:pointer;display:flex;justify-content:space-between;align-items:center;margin:0;padding:calc(15px/2) 15px;transition:background-color 200ms ease-in-out}.grouping-selector__left .filter-name{display:grid;grid-template-columns:20px 1fr;align-items:center;gap:calc(15px/3)}.grouping-selector__left .filter-name[data-is-used=true]{font-weight:600}.grouping-selector__right{overflow:auto}.grouping-selector__right .title{display:flex;align-items:center;font-weight:600;border-bottom:1px solid rgba(0,0,0,.175);height:3.25em;margin-bottom:.75em}.grouping-selector__right .inner{display:grid;grid-template-rows:max-content;height:calc(100vh - 160px);overflow-y:auto;padding:0 15px}.grouping-selector__right .list-selected-grouping .filter{display:grid;grid-auto-flow:column;gap:calc(15px/2)}.grouping-selector__right .list-selected-grouping .filter-row{display:flex;align-items:center;height:40px;position:relative;margin-left:38px;width:calc(100% - 38px)}.grouping-selector__right .list-selected-grouping .filter-row .filter-name{margin-right:calc(15px/3)}.grouping-selector__right .list-selected-grouping .filter-row>.btn{position:absolute;left:-38px}.grouping-selector__right .invalid-parameters .list .item{display:flex;align-items:center;height:40px;position:relative}.grouping-selector__right .invalid-parameters .list .item .name{color:#ff5b57;height:inherit;line-height:3em}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/app/components/filter/grouping/grouping-selector.scss\",\"webpack://./src/resources/customized-styles/variables.scss\",\"webpack://./src/resources/styling-admin.scss\"],\"names\":[],\"mappings\":\"AAGA,mBACC,YAAA,CACA,8CAAA,CACA,uCAAA,CACA,eAAA,CACA,wBAAA,CAGC,0CADD,0FAEE,YAAA,CACA,qBAAA,CAAA,CAIF,0BACC,kBCZa,CDcb,uCACC,YAAA,CACA,qBAAA,CACA,gBAAA,CAIA,+DACC,gBAAA,CACA,aAAA,CAGD,uEACC,YAAA,CACA,gCAAA,CACA,kBAAA,CACA,QC1BK,CD2BL,gDAAA,CACA,iBAAA,CAGD,qEACC,cAAA,CACA,YAAA,CACA,kBAAA,CACA,gBAAA,CACA,WAAA,CACA,iBCrCK,CD2CT,yBACC,YAAA,CACA,4BAAA,CACA,uCAAA,CACA,iBAAA,CACA,UAAA,CACA,aAAA,CAEA,yCACC,eAAA,CACA,WAAA,CACA,wCAAA,CACA,iBAAA,CACA,UAAA,CACA,YAAA,CAGD,uGAEC,sBAAA,CACA,iBAAA,CACA,aAAA,CAEA,iXAGC,cAAA,CACA,YAAA,CACA,6BAAA,CACA,kBAAA,CACA,QAAA,CACA,yBAAA,CACA,6CAAA,CAIF,sCACC,YAAA,CACA,8BAAA,CACA,kBAAA,CACA,gBAAA,CAEA,yDACC,eAAA,CAKH,0BACC,aAAA,CAEA,iCACC,YAAA,CACA,kBAAA,CACA,eAAA,CACA,wCAAA,CACA,aAAA,CACA,mBAAA,CAGD,iCACC,YAAA,CACA,8BAAA,CACA,0BAAA,CACA,eAAA,CACA,cAAA,CAKA,0DACC,YAAA,CACA,qBAAA,CACA,gBAAA,CAGD,8DACC,YAAA,CACA,kBAAA,CACA,WAAA,CACA,iBAAA,CACA,gBAAA,CACA,uBAAA,CAEA,2EACC,yBAAA,CAGD,mEACC,iBAAA,CACA,UAAA,CAQD,0DACC,YAAA,CACA,kBAAA,CACA,WAAA,CACA,iBAAA,CAEA,gEACC,aElJS,CFmJT,cAAA,CACA,eAAA\",\"sourcesContent\":[\"@import \\\"src/resources/customized-styles/variables\\\";\\r\\n@import \\\"src/resources/styling-admin\\\";\\r\\n\\r\\n.grouping-selector {\\r\\n\\tdisplay: grid;\\r\\n\\tgrid-template-columns: minmax(200px,300px) 1fr;\\r\\n\\theight: calc(100vh - #{$modal-header-height} - #{$modal-footer-height} - 60px);\\r\\n\\toverflow: hidden;\\r\\n\\twidth: calc(100vw - 60px);\\r\\n\\r\\n\\t[data-device-type=mobile] &, [data-device-type=tablet] & {\\t\\r\\n\\t\\t@media screen and (orientation: portrait) {\\r\\n\\t\\t\\tdisplay: flex;\\r\\n\\t\\t\\tflex-direction: column;\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\t\\r\\n\\t&-header {\\r\\n\\t\\tbackground: $grey-lighter;\\r\\n\\r\\n\\t\\t.actions-bar {\\r\\n\\t\\t\\tdisplay: grid;\\r\\n\\t\\t\\tgrid-auto-flow: column;\\r\\n\\t\\t\\tgap: calc(#{$gutter} / 2);\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t.dropdown-menu--saved-filters {\\r\\n\\t\\t\\t&__inner {\\r\\n\\t\\t\\t\\tmax-height: 600px;\\r\\n\\t\\t\\t\\toverflow: auto;\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t.dropdown-item {\\r\\n\\t\\t\\t\\tdisplay: grid;\\r\\n\\t\\t\\t\\tgrid-template-columns: auto 2.5em;\\r\\n\\t\\t\\t\\talign-items: center;\\r\\n\\t\\t\\t\\tgap: $gutter;\\r\\n\\t\\t\\t\\tpadding: calc(#{$gutter} / 2) calc(#{$gutter} / 2) calc(#{$gutter} / 2) 0;\\r\\n\\t\\t\\t\\tmin-height: 3.75em;\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t.load-filter {\\r\\n\\t\\t\\t\\tcursor: pointer;\\r\\n\\t\\t\\t\\tdisplay: flex;\\r\\n\\t\\t\\t\\talign-items: center;\\r\\n\\t\\t\\t\\tgap: calc(#{$gutter} / 2);\\r\\n\\t\\t\\t\\theight: 100%;\\r\\n\\t\\t\\t\\tpadding-left: $gutter;\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\t}\\r\\n}\\r\\n\\r\\n.grouping-selector__left {\\r\\n\\tdisplay: grid;\\r\\n\\tgrid-template-rows: 3.5em 1fr;\\r\\n\\tborder-right: 1px solid $border-color;\\r\\n\\tposition: relative;\\r\\n\\twidth: 100%;\\r\\n\\toverflow: auto;\\r\\n\\r\\n\\t.filters-search {\\r\\n\\t\\tbackground: white;\\r\\n\\t\\tborder: none;\\r\\n\\t\\tborder-bottom: 1px solid $border-color;\\r\\n\\t\\tpadding: 12px $gutter;\\r\\n\\t\\twidth: 100%;\\r\\n\\t\\toutline: none;\\r\\n\\t}\\r\\n\\t\\r\\n\\t.list-available--filters,\\r\\n\\t.list-available--categories {\\r\\n\\t\\tpadding: calc(#{$gutter} / 2) 0;\\r\\n\\t\\tposition: relative;\\r\\n\\t\\toverflow: auto;\\r\\n\\t\\r\\n\\t\\t.filter,\\r\\n\\t\\t.filter-row,\\r\\n\\t\\t.category {\\r\\n\\t\\t\\tcursor: pointer;\\r\\n\\t\\t\\tdisplay: flex;\\r\\n\\t\\t\\tjustify-content: space-between;\\r\\n\\t\\t\\talign-items: center;\\r\\n\\t\\t\\tmargin: 0;\\r\\n\\t\\t\\tpadding: calc(#{$gutter} / 2) $gutter;\\r\\n\\t\\t\\ttransition: background-color 200ms ease-in-out;\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\t.filter-name {\\r\\n\\t\\tdisplay: grid;\\r\\n\\t\\tgrid-template-columns: 20px 1fr;\\r\\n\\t\\talign-items: center;\\r\\n\\t\\tgap: calc(#{$gutter} / 3);\\r\\n\\r\\n\\t\\t&[data-is-used=true] {\\r\\n\\t\\t\\tfont-weight: 600;\\r\\n\\t\\t}\\r\\n\\t}\\r\\n}\\r\\n\\r\\n.grouping-selector__right {\\r\\n\\toverflow: auto;\\r\\n\\r\\n\\t.title {\\r\\n\\t\\tdisplay: flex;\\r\\n\\t\\talign-items: center;\\r\\n\\t\\tfont-weight: 600;\\r\\n\\t\\tborder-bottom: 1px solid $border-color;\\r\\n\\t\\theight: 3.25em;\\r\\n\\t\\tmargin-bottom: 0.75em;\\r\\n\\t}\\r\\n\\r\\n\\t.inner {\\r\\n\\t\\tdisplay: grid;\\r\\n\\t\\tgrid-template-rows: max-content;\\r\\n\\t\\theight: calc(100vh - 160px);\\r\\n\\t\\toverflow-y: auto;\\r\\n\\t\\tpadding: 0 $gutter;\\r\\n\\t}\\r\\n\\t\\r\\n\\t.list-selected-grouping {\\r\\n\\r\\n\\t\\t.filter {\\r\\n\\t\\t\\tdisplay: grid;\\r\\n\\t\\t\\tgrid-auto-flow: column;\\r\\n\\t\\t\\tgap: calc(#{$gutter} / 2);\\r\\n\\t\\t}\\r\\n\\t\\t\\r\\n\\t\\t.filter-row {\\r\\n\\t\\t\\tdisplay: flex;\\r\\n\\t\\t\\talign-items: center;\\r\\n\\t\\t\\theight: 40px;\\r\\n\\t\\t\\tposition: relative;\\r\\n\\t\\t\\tmargin-left: 38px;\\r\\n\\t\\t\\twidth: calc(100% - 38px);\\r\\n\\r\\n\\t\\t\\t.filter-name {\\r\\n\\t\\t\\t\\tmargin-right: calc(#{$gutter} / 3);\\r\\n\\t\\t\\t}\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t> .btn {\\r\\n\\t\\t\\t\\tposition: absolute;\\r\\n\\t\\t\\t\\tleft: -38px;\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\t.invalid-parameters {\\r\\n\\r\\n\\t\\t.list {\\r\\n\\t\\t\\t.item {\\r\\n\\t\\t\\t\\tdisplay: flex;\\r\\n\\t\\t\\t\\talign-items: center;\\r\\n\\t\\t\\t\\theight: 40px;\\r\\n\\t\\t\\t\\tposition: relative;\\r\\n\\r\\n\\t\\t\\t\\t.name {\\r\\n\\t\\t\\t\\t\\tcolor: $red;\\r\\n\\t\\t\\t\\t\\theight: inherit;\\r\\n\\t\\t\\t\\t\\tline-height: 3em;\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\t}\\r\\n}\\r\\n\\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@import 'functions.scss';\\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;\\r\\n\",\"$black: #000000 !default;\\r\\n$blue: #348fe2 !default;\\r\\n$cyan: #49b6d6 !default;\\r\\n$dark: #2d353c !default;\\r\\n$dark-darker: #1a2229 !default;\\r\\n$green: #32a932 !default;\\r\\n$indigo: #8753de !default;\\r\\n$lime: #90ca4b !default;\\r\\n$light: #f2f3f4 !default;\\r\\n$orange: #f59c1a !default;\\r\\n$purple: #727cb6 !default;\\r\\n$pink: #fb5597 !default;\\r\\n$red: #ff5b57 !default;\\r\\n$silver: #b6c2c9 !default;\\r\\n$teal: #00acac !default;\\r\\n$white: #FFFFFF !default;\\r\\n$yellow: #ffd900 !default;\\r\\n$inverse: $dark !default;\\r\\n$link-color: $blue !default;\\r\\n$btn-eg-theme-color: #517770 !default;\\r\\n$btn-ajour-theme-color:\\trgb(29, 30, 90) !default; \\t\\r\\n$colors: (\\r\\n\\t'black': $black,\\r\\n\\t'cyan': $cyan,\\r\\n\\t'dark': $dark,\\r\\n\\t'dark-darker': $dark-darker,\\r\\n\\t'green': $green,\\r\\n\\t'indigo': $indigo,\\r\\n\\t'lime': $lime,\\r\\n\\t'light': $light,\\r\\n\\t'orange': $orange,\\r\\n\\t'purple': $purple,\\r\\n\\t'pink': $pink,\\r\\n\\t'red': $red,\\r\\n\\t'silver': $silver,\\r\\n\\t'teal': $teal,\\r\\n\\t'white': $white,\\r\\n\\t'yellow': $yellow,\\r\\n\\t'muted': darken($silver, 30%),\\r\\n\\t'aqua': $cyan,\\r\\n\\t'btn-eg-theme-color': $btn-eg-theme-color,\\r\\n\\t'btn-ajour-theme-color': $btn-ajour-theme-color,\\r\\n\\r\\n);\\r\\n\\r\\n$border-radius: 4px !default;\\r\\n$border-radius-lg: 6px !default;\\r\\n$border-radius-sm: 3px !default;\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","module.exports = \"\\r\\n\";","import { AppContextService } from 'app/services/app-context-service';\r\nimport { SaveNewGrouping } from '../prompts/save-new-grouping/save-new-grouping';\r\nimport { FilterGroupDto } from 'app/models/filter-dto';\r\nimport { I18N } from 'aurelia-i18n';\r\nimport { ApiClient } from 'app/services/api-client';\r\nimport { ModalService } from 'app/services/modal-service';\r\nimport { autoinject, observable } from 'aurelia-framework';\r\nimport { ObjectListColumnManager } from \"app/services/object-list/object-list-column-manager\";\r\nimport { UIValueFilter, ValueFilter } from \"app/models/object-filter\";\r\nimport { DialogCloseResult, DialogController } from \"aurelia-dialog\";\r\nimport { DnDService } from \"app/services/d-n-d-service\";\r\nimport { SettingNames } from 'app/models/setting-dto';\r\nimport { IdNamePair } from 'app/models/idNamePair';\r\n\r\n@autoinject\r\nexport class FilterGroupingSelector {\r\n\tpublic filters: ObjectListColumnManager | undefined;\r\n\r\n\t//public available: ObjectFilter[] = [];\r\n\t//public available: ValueFilter[] = [];\r\n\tpublic available: UIValueFilter[] = [] = [];\r\n\t\r\n\t//public selected: ObjectFilter[];\r\n\t//public selected: ValueFilter[];\r\n\tpublic selected: UIValueFilter[] = [];\r\n\t\r\n\tpublic searchFilter: string = \"\";\r\n\r\n\t//public dragFilter: ObjectFilter; // This is a hack used to change the dragged html at the time it is copied to the mouse\r\n\tpublic dragFilter: UIValueFilter | undefined; // This is a hack used to change the dragged html at the time it is copied to the mouse\r\n\r\n\tpublic saveFilterNameInput: string = \"\";\r\n\tpublic saveFilterProjectId: string = \"\";\r\n\tpublic saveFilterAvailability: number = -1;\r\n\tpublic savedFilterGroups: FilterGroupDto[] = [];\r\n\tpublic invalidParameters: string[] = [];\r\n\r\n\t@observable public selectedGroupingName: string = \"Load\";\r\n\t@observable public selectedGrouping: FilterGroupDto | undefined;\r\n\t@observable public filterGroupSelected: boolean = false;\r\n\t\r\n\tconstructor(protected dialog: DialogController, private dndService: DnDService, private modal: ModalService, private apiClient: ApiClient, private i18n: I18N, private appContext: AppContextService) {\r\n\r\n\t}\r\n\r\n\tasync activate(model: any): Promise {\r\n\t\tthis.filters = model;\r\n\t\tif (this.filters?.grouped) {\r\n\t\t\tthis.selected = [...this.filters.grouped];\r\n\t\t\tawait this.setFilterList();\r\n\t\t\tawait this.getFilterGroups();\r\n\t\t\t\r\n\t\t\tawait this.getFilterGroups().then(() => {\r\n\t\t\t\tif(this.appContext.getSelectedGrouping() === null){\r\n\t\t\t\t\tthis.apiClient.system.get(`Setting/GetSetting/${this.appContext.projectId}/${SettingNames.lastAppliedGroupings}`).jsonResult().then(result => {\r\n\t\t\t\t\t\tif (result) {\r\n\t\t\t\t\t\t\tlet filterGrouping: FilterGroupDto | undefined = this.savedFilterGroups.find(x => x.id === result.target);\r\n\t\t\t\t\t\t\tif (filterGrouping) {\r\n\t\t\t\t\t\t\t\tthis.loadSavedFilterGroup(filterGrouping);\r\n\t\t\t\t\t\t\t\tthis.appContext.setDefaultGrouping(filterGrouping);\r\n\t\t\t\t\t\t\t\tthis.appContext.setSelectedGrouping(filterGrouping);\r\n\t\t\t\t\t\t\t\tthis.selectedGroupingName = this.appContext.getSelectedGrouping()?.name ? this.appContext.getSelectedGrouping()!.name : \"\";\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}else{\r\n\t\t\t\t\t// this.selectedGroupingName = this.appContext.getSelectedGrouping().name;\r\n\t\t\t\t}\t\t\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\t\r\n\tattached(): void {\r\n\t\t//let draggedItem: ObjectFilter;\r\n\t\tlet draggedItem: UIValueFilter | undefined;\r\n\r\n\t\tthis.dndService.attachListInteraction(\"selected-groupings-list\", {\r\n\t\t\tanimation: 150,\r\n\t\t\tforceFallback: true,\r\n\t\t\tgroup: \"grouping-selector\",\r\n\t\t\thandle: \".drag-handle\",\r\n\t\t\tdraggable: \".draggable-item\",\r\n\t\t\tdragClass: \"draggable-item--dragged\",\r\n\t\t\tchosenClass: \"draggable-item--chosen\",\r\n\t\t\tghostClass: \"draggable-item--ghost\",\r\n\t\t\tonChoose: (event: any) => {\r\n\t\t\t\tdraggedItem = this.selected[event.oldDraggableIndex];\r\n\t\t\t\tthis.dragFilter = draggedItem;\r\n\t\t\t},\r\n\t\t\tonUnchoose: (event: any) => this.dragFilter = undefined,\r\n\t\t\tonClone: (event: any) => this.dragFilter = undefined,\r\n\t\t\tonMove: (event: any) => this.dragFilter = event.to.id == \"available-groupings-list\" ? draggedItem : undefined,\r\n\t\t\tonEnd: (event: any) => {\r\n\t\t\t\tif (event.to.id == \"available-groupings-list\") {\r\n\t\t\t\t\tlet item:UIValueFilter = this.selected[event.oldDraggableIndex];\r\n\t\t\t\t\tthis.selected.splice(event.oldDraggableIndex, 1); // remove from old index in old list\r\n\t\t\t\t\tthis.available.splice(event.newDraggableIndex, 0, item); // add to new index in new list\r\n\t\t\t\t} else {\r\n\t\t\t\t\tlet item: UIValueFilter = this.selected[event.oldDraggableIndex];\r\n\t\t\t\t\tthis.selected.splice(event.oldDraggableIndex, 1); // remove from old index\r\n\t\t\t\t\tthis.selected.splice(event.newDraggableIndex, 0, item); // add to new index\r\n\t\t\t\t}\r\n\t\t\t\tthis.dragFilter = undefined;\r\n\t\t\t\tdraggedItem = undefined;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tdetached(): void {\r\n\t\tthis.dndService.detachListInteraction(\"selected-groupings-list\");\r\n\t}\r\n\r\n\tselect(filter: UIValueFilter) {\r\n\t\tlet index = this.available.indexOf(filter);\r\n\t\tif (index >= 0) {\r\n\t\t\tthis.available.splice(index, 1);\r\n\t\t\tthis.selected.push(filter);\r\n\t\t}\r\n\t}\r\n\r\n\tunSelect(filter: UIValueFilter): void {\r\n\t\tlet index: number = this.selected.indexOf(filter);\r\n\t\tif (index >= 0) {\r\n\t\t\tthis.selected.splice(index, 1);\r\n\t\t\tthis.available.push(filter);\r\n\t\t}\r\n\t}\r\n\r\n\tprivate async setFilterList(): Promise {\r\n\t\tthis.searchFilter = \"\";\r\n\r\n\t\tlet cat: IdNamePair | undefined = this.filters?.getFilterCategoryContext();\r\n\t\tif (cat != undefined) {\r\n\t\t\tlet valueFilters: ValueFilter[] | undefined = await this.filters?.getAvailableGroupingFilters(cat.id);\r\n\t\t\tif (valueFilters) {\r\n\t\t\t\tthis.available = ObjectListColumnManager.valueFilter2UIFilter(valueFilters);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tpublic ok(): void {\r\n\t\tthis.saveChangesCheck();\r\n\t}\r\n\r\n\tprivate saveChangesCheck(): void {\r\n\t\tif (this.selectedGrouping != undefined && this.filterGroupSelected != undefined) {\r\n\t\t\tif (this.selectedGrouping.parameters.length != this.selected.length) {\r\n\t\t\t\tthis.saveChangesPrompt(this.selectedGrouping);\r\n\t\t\t} else {\r\n\t\t\t\tlet oldParams: string[] = this.selectedGrouping.parameters;\r\n\t\t\t\tlet newParams: string[] = [];\r\n\t\t\t\tlet isSame: boolean = true;\r\n\t\t\t\t\r\n\t\t\t\toldParams.sort(this.compareNames);\r\n\t\t\t\t\r\n\t\t\t\tthis.selected.forEach((param: UIValueFilter) => {\r\n\t\t\t\t\tnewParams.push(param.name);\r\n\t\t\t\t})\r\n\t\t\t\tnewParams.sort(this.compareNames);\r\n\r\n\t\t\t\tfor(let i = 0; i < this.selected.length; i++){\r\n\t\t\t\t\tif(oldParams[i] !== newParams[i]){\r\n\t\t\t\t\t\tisSame = false;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (isSame) {\r\n\t\t\t\t\tthis.filters?.applyGrouping(this.selected);\r\n\t\t\t\t\tthis.dialog.ok();\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.saveChangesPrompt(this.selectedGrouping);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.filters?.applyGrouping(this.selected);\r\n\t\t\tthis.dialog.ok();\r\n\t\t}\r\n\t}\r\n\r\n\tpublic cancel(): void {\r\n\t\tthis.dialog.cancel();\r\n\t}\r\n\r\n\tpublic duplicateFilterGroup(): void {\r\n\t\tthis.modal.OpenModal(SaveNewGrouping).whenClosed((x: DialogCloseResult) => {\r\n\t\t\tif(!x.wasCancelled){\r\n\t\t\t\tthis.doSaveNewFilterGroup({\r\n\t\t\t\t\tname: x.output.name,\r\n\t\t\t\t\tprojectId: x.output.projectId,\r\n\t\t\t\t\tavailability: x.output.availability,\r\n\t\t\t\t\tparameters: this.selectedGrouping?.parameters ? this.selectedGrouping?.parameters : [] \r\n\t\t\t\t}).then((result: FilterGroupDto[]) => {\r\n\t\t\t\t\tif(x.output.setAsDefault){\r\n\t\t\t\t\t\tthis.apiClient.system.postJson(`Setting/AddUserSetting/${this.appContext.projectId}/${SettingNames.lastAppliedGroupings}`, result).noResponse();\r\n\t\t\t\t\t}\r\n\t\t\t\t}).finally(() => {\r\n\t\t\t\t\tthis.getFilterGroups();\r\n\t\t\t\t})\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\t\r\n\tpublic newFilterGroup(): void {\r\n\t\tthis.modal.OpenModal(SaveNewGrouping).whenClosed((x: DialogCloseResult) => {\r\n\t\t\tif (!x.wasCancelled) {\r\n\t\t\t\tlet parametersToSave:string[] = [\"Type\"];\r\n\r\n\t\t\t\tif (x.output.keepSelectedFilters) {\r\n\t\t\t\t\tthis.filters?.selected.forEach((objectFilter: UIValueFilter) => {//in-FilterGroupingSelector.newFilterGroup().\r\n\t\t\t\t\t\tparametersToSave.push(objectFilter.name);\t\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.doSaveNewFilterGroup({\r\n\t\t\t\t\tname: x.output.name,\r\n\t\t\t\t\tprojectId: x.output.projectId,\r\n\t\t\t\t\tavailability: x.output.availability,\r\n\t\t\t\t\tparameters: parametersToSave\r\n\t\t\t\t}).then((result: FilterGroupDto[]) => {\r\n\t\t\t\t\tif (x.output.setAsDefault) {\r\n\t\t\t\t\t\tthis.apiClient.system.postJson(`Setting/AddUserSetting/${this.appContext.projectId}/${SettingNames.lastAppliedGroupings}`, result).noResponse();\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tprivate async doSaveNewFilterGroup(filterGroupObject: FilterGroupDto): Promise {\r\n\t\treturn await this.apiClient.project(this.appContext.projectId).postJson(\"Filter/CreateFilterGroup\", filterGroupObject)\r\n\t\t\t.handleError(this.i18n.tr('Error_Title_Generic'), this.i18n.tr('Error_Message_Generic'))\r\n\t\t\t.jsonResult()\r\n\t\t\t.finally(() => {\r\n\t\t\t\tthis.loadSavedFilterGroup(filterGroupObject);\r\n\t\t\t});\r\n\t}\r\n\r\n\tpublic async saveFilterGroup(): Promise{\r\n\t\tif (this.selectedGrouping) {\r\n\t\t\tlet filterGrouping: FilterGroupDto = this.adaptParameters(this.selectedGrouping);\r\n\t\t\t\r\n\t\t\tawait this.apiClient.project(this.appContext.projectId).postJson(\"Filter/UpdateFilterGroup\", filterGrouping)\r\n\t\t\t.handleError(this.i18n.tr('Error_Title_Generic'), this.i18n.tr('Error_Message_Generic'))\r\n\t\t\t.jsonResult()\r\n\t\t\t.finally(() => {\r\n\t\t\t\tthis.loadSavedFilterGroup(filterGrouping);\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tprivate saveChangesPrompt(filterGroup: FilterGroupDto): void {\r\n\t\tthis.modal.OpenConfirm(\r\n\t\t\tthis.i18n.tr('Save Changes'),\r\n\t\t\tthis.i18n.tr('Do you want to save your recent changes to filter group \"') + filterGroup.name + '\"?'\r\n\t\t).whenClosed((x: DialogCloseResult) => {\r\n\t\t\tif(!x.wasCancelled){\r\n\t\t\t\tthis.saveFilterGroup();\r\n\t\t\t\tthis.filters?.applyGrouping(this.selected);\r\n\t\t\t\tthis.dialog.ok();\r\n\t\t\t}else{\r\n\t\t\t\tthis.dialog.cancel();\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\tprivate async getFilterGroups(): Promise {\r\n\t\tthis.savedFilterGroups = [];\r\n\t\tthis.savedFilterGroups = await this.apiClient.project(this.appContext.projectId).get(\"Filter/GetFilterGroups\")\r\n\t\t\t.handleError(this.i18n.tr('Error_Title_Generic'), this.i18n.tr('Error_Message_Generic'))\r\n\t\t\t.jsonResult();\r\n\t}\r\n\r\n\tpublic loadSavedFilterGroup(filterGroup: FilterGroupDto): void {\r\n\t\tthis.available = [...this.available, ...this.selected];\r\n\t\tthis.selected = [];\r\n\t\tfilterGroup.parameters.forEach((parameter: string) => {\r\n\t\t\tthis.available.forEach((filter: UIValueFilter) => {\r\n\t\t\t\tif (Boolean(filter.name === parameter)) {\r\n\t\t\t\t\tthis.select(filter);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tif (!this.selected.map((x: UIValueFilter) => x.name).includes(parameter)) {\r\n\t\t\t\tthis.invalidParameters.push(parameter);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.setSelectedFilterGroup(filterGroup);\r\n\t}\r\n\r\n\tprivate async setSelectedFilterGroup(filterGroup: FilterGroupDto): Promise {\r\n\t\tthis.getFilterGroups().then(() => {\r\n\t\t\tthis.appContext.setSelectedGrouping(this.savedFilterGroups.find((x: FilterGroupDto) => x.name == filterGroup.name));\r\n\t\t\tthis.selectedGrouping = this.appContext.getSelectedGrouping();\r\n\t\t\tthis.selectedGroupingName = this.selectedGrouping?.name ? this.selectedGrouping!.name : \"\";\r\n\t\t\tthis.filterGroupSelected = true;\r\n\t\t})\r\n\t}\r\n\r\n\tprivate adaptParameters(filterGroup: FilterGroupDto): FilterGroupDto {\r\n\t\tlet parameterList: string[] = [];\r\n\r\n\t\tfor(let i = 0; i < this.selected.length; i++){\r\n\t\t\tlet iter: UIValueFilter = this.selected[i];\r\n\t\t\t\r\n\t\t\tlet parameters: string = iter.name\r\n\r\n\t\t\tparameterList.push(parameters);\r\n\t\t\t\r\n\t\t}\r\n\r\n\t\t// parameterList.sort(this.compareNames);\r\n\r\n\t\tlet filterGroupObject: FilterGroupDto = {\r\n\t\t\tid: filterGroup.id,\r\n\t\t\tname: filterGroup.name,\r\n\t\t\tprojectId: filterGroup.projectId,\r\n\t\t\tavailability: filterGroup.availability,\r\n\t\t\tparameters: parameterList\r\n\t\t}\r\n\r\n\t\treturn filterGroupObject;\r\n\t}\r\n\r\n\tprivate compareNames(a: string, b: string): number {\r\n\t\tif(a < b){\r\n\t\t\treturn -1;\r\n\t\t}else if (a > b){\r\n\t\t\treturn 1;\r\n\t\t}else{\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t}\r\n\r\n\tprivate deleteFilterGroup(filterGroup: FilterGroupDto): void {\r\n\t\tthis.modal.OpenConfirm(\r\n\t\t\tthis.i18n.tr('Delete'),\r\n\t\t\tthis.i18n.tr('Are you sure you want to delete the filter group \"') + filterGroup.name + '\"?'\r\n\t\t).whenClosed((x: DialogCloseResult) => {\r\n\t\t\tif (!x.wasCancelled) {\r\n\t\t\t\tthis.apiClient.project(this.appContext.projectId).postJson('Filter/DeleteFilterGroup', filterGroup.id)\r\n\t\t\t\t\t.handleError(this.i18n.tr('Error_Title_Generic'), this.i18n.tr('Error_Message_Generic'))\r\n\t\t\t\t\t.jsonResult()\r\n\t\t\t\t\t.finally(() => {\r\n\t\t\t\t\t\tthis.getFilterGroups();\r\n\t\t\t\t\t});\r\n\t\t\t}\r\n\t\t}).finally(() => {\r\n\t\t\tif(filterGroup === this.selectedGrouping || filterGroup === this.appContext.getSelectedGrouping()){\r\n\t\t\t\tif (this.appContext.getDefaultGrouping() === null) {\r\n\t\t\t\t\tthis.selectedGrouping = undefined;\r\n\t\t\t\t\tthis.selectedGroupingName = \"Load\";\r\n\t\t\t\t\tthis.selected = [];\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (this.appContext) {\r\n\t\t\t\t\t\tlet defaultGrouping: FilterGroupDto | null = this.appContext.getDefaultGrouping();\r\n\t\t\t\t\t\tif (defaultGrouping) {\r\n\t\t\t\t\t\t\tthis.loadSavedFilterGroup(defaultGrouping);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\tpublic removeInvalidParameter(parameter: string): void {\r\n\t\tthis.invalidParameters.splice(this.invalidParameters.indexOf(parameter), 1);\r\n\t}\r\n}\r\n"],"names":["___CSS_LOADER_EXPORT___","push","module","id","exports","FilterGroupingSelector","constructor","dialog","dndService","modal","apiClient","i18n","appContext","available","selected","searchFilter","saveFilterNameInput","saveFilterProjectId","saveFilterAvailability","savedFilterGroups","invalidParameters","selectedGroupingName","filterGroupSelected","activate","model","this","filters","grouped","setFilterList","getFilterGroups","then","getSelectedGrouping","system","get","projectId","lastAppliedGroupings","jsonResult","result","filterGrouping","find","x","target","loadSavedFilterGroup","setDefaultGrouping","setSelectedGrouping","name","attached","draggedItem","attachListInteraction","animation","forceFallback","group","handle","draggable","dragClass","chosenClass","ghostClass","onChoose","event","oldDraggableIndex","dragFilter","onUnchoose","undefined","onClone","onMove","to","onEnd","item","splice","newDraggableIndex","detached","detachListInteraction","select","filter","index","indexOf","unSelect","cat","getFilterCategoryContext","valueFilters","getAvailableGroupingFilters","valueFilter2UIFilter","ok","saveChangesCheck","selectedGrouping","parameters","length","saveChangesPrompt","oldParams","newParams","isSame","sort","compareNames","forEach","param","i","applyGrouping","cancel","duplicateFilterGroup","OpenModal","whenClosed","wasCancelled","doSaveNewFilterGroup","output","availability","setAsDefault","postJson","noResponse","finally","newFilterGroup","parametersToSave","keepSelectedFilters","objectFilter","filterGroupObject","project","handleError","tr","saveFilterGroup","adaptParameters","filterGroup","OpenConfirm","parameter","Boolean","map","includes","setSelectedFilterGroup","parameterList","a","b","deleteFilterGroup","getDefaultGrouping","defaultGrouping","removeInvalidParameter","observable","autoinject","DialogController","I18N"],"sourceRoot":""}