{"version":3,"file":"app-6358b4b9.94c63272f628905f.bundle.js","mappings":"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","sources":["webpack://client-app/./src/app/components/filter/handler/filter-handler.scss","webpack://client-app/./src/app/components/filter/handler/filter-handler.html","webpack://client-app/./src/app/components/filter/handler/filter-handler.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, `.filters-list{display:flex;flex-wrap:wrap}.filter{display:inline-flex;align-items:center;justify-content:space-between;position:relative;user-select:none;white-space:nowrap}.filters-list .filter{display:flex;justify-content:stretch;background:#fff;border-radius:4px;margin-bottom:calc(15px/2);margin-right:calc(15px/2);padding:calc(15px/2) .75rem calc(15px/2) .75rem}.filters-list .filter .filter-comparison,.filters-list .filter .filter-value,.filters-list .filter .filter-sorting{margin-right:calc(15px/4);margin-left:calc(15px/4)}.filters-list .filter .filter-value-container{display:inline-flex;align-items:center;border-radius:2px;background:#efefef;padding:1px 4px;margin-left:calc(15px/2)}.filters-list .filter .btn-group{justify-content:space-between;display:flex;padding:0 8px}.input-container{border-bottom:1px solid rgba(0,0,0,.175);padding:calc(15px/2)}.input-container input,.input-container select{background:#efefef;border:none;padding:calc(15px/4) calc(15px/2);width:100%}.input-container input:focus,.input-container select:focus{outline:none}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/app/components/filter/handler/filter-handler.scss\",\"webpack://./src/resources/styling-admin.scss\",\"webpack://./src/resources/customized-styles/variables.scss\"],\"names\":[],\"mappings\":\"AAGA,cACC,YAAA,CACA,cAAA,CAGD,QACC,mBAAA,CACA,kBAAA,CACA,6BAAA,CACA,iBAAA,CACA,gBAAA,CACA,kBAAA,CAEA,sBACC,YAAA,CACA,uBAAA,CACA,eCJY,CDKZ,iBAAA,CACA,0BAAA,CACA,yBAAA,CACA,+CAAA,CAEA,mHACC,yBAAA,CACA,wBAAA,CAGD,8CACC,mBAAA,CACA,kBAAA,CACA,iBAAA,CACA,kBE7BU,CF8BV,eAAA,CACA,wBAAA,CAGD,iCACC,6BAAA,CACA,YAAA,CACA,aAAA,CAKH,iBACC,wCAAA,CACA,oBAAA,CAEA,+CACC,kBE/CW,CFgDX,WAAA,CACA,iCAAA,CACA,UAAA,CAEA,2DACC,YAAA\",\"sourcesContent\":[\"@import \\\"src/resources/customized-styles/variables\\\";\\r\\n@import \\\"src/resources/styling-admin\\\";\\r\\n\\r\\n.filters-list {\\r\\n\\tdisplay: flex;\\r\\n\\tflex-wrap: wrap;\\r\\n}\\r\\n\\r\\n.filter {\\r\\n\\tdisplay: inline-flex;\\r\\n\\talign-items: center;\\r\\n\\tjustify-content: space-between;\\r\\n\\tposition: relative;\\r\\n\\tuser-select: none;\\r\\n\\twhite-space: nowrap;\\r\\n\\r\\n\\t.filters-list & {\\r\\n\\t\\tdisplay: flex;\\r\\n\\t\\tjustify-content: stretch;\\r\\n\\t\\tbackground: $white;\\r\\n\\t\\tborder-radius: 4px;\\r\\n\\t\\tmargin-bottom: calc(#{$gutter} / 2);\\r\\n\\t\\tmargin-right: calc(#{$gutter} / 2);\\r\\n\\t\\tpadding: calc(#{$gutter} / 2) 0.75rem calc(#{$gutter} / 2) 0.75rem;\\r\\n\\t\\t\\r\\n\\t\\t.filter-comparison, .filter-value, .filter-sorting {\\r\\n\\t\\t\\tmargin-right: calc(#{$gutter} / 4);\\r\\n\\t\\t\\tmargin-left: calc(#{$gutter} / 4);\\r\\n\\t\\t}\\r\\n\\t\\t\\r\\n\\t\\t.filter-value-container {\\r\\n\\t\\t\\tdisplay: inline-flex;\\r\\n\\t\\t\\talign-items: center;\\r\\n\\t\\t\\tborder-radius: 2px;\\r\\n\\t\\t\\tbackground: $grey-light;\\r\\n\\t\\t\\tpadding: 1px 4px;\\r\\n\\t\\t\\tmargin-left: calc(#{$gutter} / 2);\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t.btn-group {\\r\\n\\t\\t\\tjustify-content: space-between;\\r\\n\\t\\t\\tdisplay: flex;\\r\\n\\t\\t\\tpadding: 0 8px;\\r\\n\\t\\t}\\r\\n\\t}\\r\\n}\\r\\n\\r\\n.input-container {\\r\\n\\tborder-bottom: 1px solid $border-color;\\r\\n\\tpadding: calc(#{$gutter} / 2);\\r\\n\\r\\n\\tinput, select {\\r\\n\\t\\tbackground: $grey-light;\\r\\n\\t\\tborder: none;\\r\\n\\t\\tpadding: calc(#{$gutter} / 4) calc(#{$gutter} / 2);\\r\\n\\t\\twidth: 100%;\\r\\n\\r\\n\\t\\t&:focus {\\r\\n\\t\\t\\toutline: none;\\r\\n\\t\\t}\\r\\n\\t}\\r\\n}\\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;\",\"$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\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","module.exports = \"\\r\\n\";","import { bindable } from \"aurelia-framework\";\r\nimport { FilterOption, ObjectFilter } from \"app/models/object-filter\";\r\nimport { ObjectValues } from \"app/models/object-values\";\r\n \r\nexport class FilterHandler {\r\n @bindable model: ObjectFilter | undefined;\r\n private sortingOptions: FilterOption[] = [];\r\n private sortingIndex: number = -1;\r\n\tpublic comparisonOptions: FilterOption[] = [];\r\n\tpublic displayState: { icon: string, title: string } | undefined;\r\n\tpublic showFilterValueInput: boolean = false;\r\n\t\r\n\r\n attached() {\r\n if (this.model?.isLocked) {\r\n if (this.model.selectedComparisonOption && this.model.selectedSortingOption) {\r\n this.comparisonOptions = [this.model.selectedComparisonOption];\r\n this.sortingOptions = [this.model.selectedSortingOption];\r\n }\r\n } else {\r\n if (this.model?.targetType == ObjectValues.targetTypes.instance){\r\n this.comparisonOptions = [\r\n ObjectValues.comparisonMethods.hasRelation\r\n ];\r\n this.sortingOptions = [\r\n ObjectValues.sortingMethods.none\r\n ];\r\n } else {\r\n switch (this.model?.type) {\r\n case ObjectValues.dataTypes.Double:\r\n case ObjectValues.dataTypes.Integer:\r\n this.comparisonOptions = [\r\n ObjectValues.comparisonMethods.hasRelation,\r\n ObjectValues.comparisonMethods.equalToOrLessThan,\r\n ObjectValues.comparisonMethods.equalTo,\r\n ObjectValues.comparisonMethods.equalToOrGreaterThan\r\n ];\r\n break;\r\n case ObjectValues.dataTypes.String:\r\n this.comparisonOptions = [\r\n ObjectValues.comparisonMethods.hasRelation,\r\n ObjectValues.comparisonMethods.contains,\r\n ObjectValues.comparisonMethods.equalTo\r\n ];\r\n break;\r\n }\r\n this.sortingOptions = [\r\n ObjectValues.sortingMethods.none,\r\n ObjectValues.sortingMethods.ascending,\r\n ObjectValues.sortingMethods.descending\r\n ];\r\n }\r\n\t\t}\r\n\t\t\r\n\r\n\t\tthis.setIndexOfSelectedSortingOption();\r\n\t\tthis.setDisplayState();\r\n let selectedComparisonOption: any = !this.model?.selectedComparisonOption;\r\n\t\tthis.showFilterValueInput = Boolean(this.model?.selectedComparisonOption) && !selectedComparisonOption[\"excludeComparison\"];\r\n\t}\r\n\r\n\t//fix is not consistent\r\n\tsetIndexOfSelectedSortingOption() {\r\n if (this.model?.selectedSortingOption) {\r\n let anyIndex = this.sortingOptions.indexOf(this.model.selectedSortingOption);\r\n if (anyIndex == -1) {\r\n //Lappeløsning to fix the lack of sorting icon\r\n anyIndex = 0;\r\n }\r\n this.sortingIndex = anyIndex;\r\n //ensures that it still gets loaded with the icon. \r\n this.model.selectedSortingOption = this.sortingOptions[this.sortingIndex];\r\n }\r\n\t}\r\n\r\n public toggleSort() {\r\n if (this.model?.selectedSortingOption) {\r\n this.sortingIndex++;\r\n if(this.sortingIndex === this.sortingOptions.length)\r\n this.sortingIndex = 0;\r\n this.model.selectedSortingOption = this.sortingOptions[this.sortingIndex];\r\n }\r\n\t}\r\n\t\r\n\tpublic toggleDisplay() {\r\n if (this.model) {\r\n this.model.hide = !this.model?.hide;\r\n }\r\n\r\n\t\tthis.setDisplayState();\r\n\t}\r\n\r\n\tpublic toggleComparison(comparison: FilterOption) {\r\n if (this.model) {\r\n this.model.selectedComparisonOption = this.model?.selectedComparisonOption === comparison ? undefined : comparison;\r\n \r\n if(this.model?.selectedComparisonOption === ObjectValues.comparisonMethods.hasRelation && Boolean(this.model.value)){\r\n delete this.model.value;\r\n }\r\n let selectedComparisonOption: any = this.model?.selectedComparisonOption;\r\n this.showFilterValueInput = this.model?.selectedComparisonOption != undefined && selectedComparisonOption[\"excludeComparison\"] == undefined;\r\n }\r\n\t}\r\n\r\n\tprivate setDisplayState() {\r\n\t\tif (this.model?.hide) {\r\n\t\t\tthis.displayState = { icon: \"far fa-eye-slash\", title: \"Hide\" }\r\n\t\t} else {\r\n\t\t\tthis.displayState = { icon: \"far fa-eye\", title: \"Show\" }\r\n\t\t}\r\n\t}\r\n}\r\n"],"names":["___CSS_LOADER_EXPORT___","push","module","id","exports","FilterHandler","sortingOptions","sortingIndex","comparisonOptions","showFilterValueInput","attached","this","model","isLocked","selectedComparisonOption","selectedSortingOption","targetType","targetTypes","instance","comparisonMethods","hasRelation","sortingMethods","none","type","dataTypes","Double","Integer","equalToOrLessThan","equalTo","equalToOrGreaterThan","String","contains","ascending","descending","setIndexOfSelectedSortingOption","setDisplayState","Boolean","anyIndex","indexOf","toggleSort","length","toggleDisplay","hide","toggleComparison","comparison","undefined","value","displayState","icon","title","bindable"],"sourceRoot":""}