{"version":3,"file":"app-a4db9be2.5f3dd1d1349ef1f9.bundle.js","mappings":"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","sources":["webpack://client-app/./src/app/components/object/object-grid/cell/cell-editor.scss","webpack://client-app/./src/app/components/object/object-grid/cell/edit-as-classification.scss","webpack://client-app/./src/app/components/object/object-grid/cell/cell-editor.html","webpack://client-app/./src/app/components/object/object-grid/cell/edit-as-classification.html","webpack://client-app/./src/app/components/object/object-grid/cell/edit-as-multiline.html","webpack://client-app/./src/app/components/object/object-grid/cell/edit-as-value-list.html","webpack://client-app/./src/app/components/object/object-grid/cell/cell-editor.ts","webpack://client-app/./src/app/components/object/object-grid/cell/edit-as-classification.ts","webpack://client-app/./src/app/components/object/object-grid/cell/edit-as-multiline.ts","webpack://client-app/./src/app/components/object/object-grid/cell/edit-as-value-list.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, `.cell-editor-list{display:flex;flex-direction:column;height:200px;margin-top:15px;overflow:auto}.cell-editor-list .value{cursor:pointer;padding:calc(15px/2) calc(15px/1.5);min-height:2.5em}.cell-editor-list .value.selected{background:#00b3c9;color:#fff}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/app/components/object/object-grid/cell/cell-editor.scss\",\"webpack://./src/resources/customized-styles/variables.scss\"],\"names\":[],\"mappings\":\"AAGC,kBACC,YAAA,CACA,qBAAA,CACA,YAAA,CACA,eCGO,CDFP,aAAA,CAEA,yBACC,cAAA,CACA,mCAAA,CACA,gBAAA,CACA,kCACC,kBCdK,CDeL,UAAA\",\"sourcesContent\":[\"@import \\\"src/resources/customized-styles/variables\\\";\\r\\n\\r\\n.cell-editor {\\r\\n\\t&-list {\\r\\n\\t\\tdisplay: flex;\\r\\n\\t\\tflex-direction: column;\\r\\n\\t\\theight: 200px;\\r\\n\\t\\tmargin-top: $gutter;\\r\\n\\t\\toverflow: auto;\\r\\n\\r\\n\\t\\t.value {\\r\\n\\t\\t\\tcursor: pointer;\\r\\n\\t\\t\\tpadding: calc(#{$gutter} / 2) calc(#{$gutter} / 1.5);\\r\\n\\t\\t\\tmin-height: 2.5em;\\r\\n\\t\\t\\t&.selected {\\r\\n\\t\\t\\t\\tbackground: $accent;\\r\\n\\t\\t\\t\\tcolor: white;\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\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@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","// 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\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTJDBGvsAAAAmUlEQVQ4T6WTuw2AMBBDXbEDo7AQQ9AgISRYgRUYhIqK3wjsQHWEE5wOiJDCFa+xbEtxEhDRDVRjg7yNHPhC/DrMQr0QqqlD1scOCEEFXDKuKIbEASa4gEvmDeWUOn4WSNF7F/HrMAu+goPHLuLXYRZ84Qu1i/h1mAVfUHPuIn4dZsEX0pgKTEcwjfj7Gk0PyfSUTZ8p6DsTdnMcPQl3gNV4AAAAAElFTkSuQmCC\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTMyIDc5LjE1OTI4NCwgMjAxNi8wNC8xOS0xMzoxMzo0MCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6M0I4RDFEMDE5MDc4MTFFNjhBRkU4RjUxMTMwMTFBNDciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6M0I4RDFEMDI5MDc4MTFFNjhBRkU4RjUxMTMwMTFBNDciPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDozQjhEMUNGRjkwNzgxMUU2OEFGRThGNTExMzAxMUE0NyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDozQjhEMUQwMDkwNzgxMUU2OEFGRThGNTExMzAxMUE0NyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PtWsFOoAAACvSURBVHjaYvz//z8DJYBx6BvAwthxZSYDI3MaWbr//53FxPDjei7D/3/HSdcM1APUywRk/mL4/CMYaNpzEmx+DtYD1MsEFXrO8Ps/0JD/vwhrBqoBqQXpAQImJKnjDH//5xI0AKIG7mUmNOlZoIDBF2hgNcjRyFC/Cl0ZGwOH1gEGRiZLzEC75gAOMyTAhMUezEBFCjR0xUw4HIsIVLRAw0hIeIILOVCPD968ABBgAN4Tav6F/rCJAAAAAElFTkSuQmCC\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.errormsg{color:red;font-weight:bold;background:#ff0}.classification-container{overflow-y:hidden;overflow:auto;height:400px}ul{list-style-type:none;margin:0}tree-node ul:first-child{padding-left:0}.fa.fa-plus{width:16px;height:16px;background-repeat:no-repeat;background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___});display:inline-block}.fa.fa-minus{width:16px;height:16px;background-repeat:no-repeat;background-image:url(${___CSS_LOADER_URL_REPLACEMENT_1___});display:inline-block}.StartOfTreeNode>tree-node>.StartOfTreeNode{padding-left:20px}.mainBack{background:#f7f7f7}.selected{background-color:#00b3c9}.left{float:left}.right{float:right}.clear{clear:both}.WorkQueueDropContent{color:#343434}.EachMiniQueueWithOutCollapse{padding:10px 10px}.eachMinQueueCheckSection{margin-right:10px}.leftGaptoRightElement{margin-left:10px}.lightFontForMInQueue{color:#a8a8a8}.DateOfMinQueue{font-weight:bold;color:#0e7ec6}.search-box{margin-bottom:10px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/app/components/object/object-grid/cell/edit-as-classification.scss\"],\"names\":[],\"mappings\":\"AAEA,UACC,SAAA,CACA,gBAAA,CACA,eAAA,CAGD,0BACC,iBAAA,CACA,aAAA,CACA,YAAA,CAGD,GACC,oBAAA,CACA,QAAA,CAED,yBACC,cAAA,CAGD,YACC,UAAA,CACA,WAAA,CACA,2BAAA,CACA,wDAAA,CAEA,oBAAA,CAGD,aACC,UAAA,CACA,WAAA,CACA,2BAAA,CACA,wDAAA,CACA,oBAAA,CAGD,4CACC,iBAAA,CAED,UACC,kBAAA,CAGD,UACC,wBAAA,CAGD,MAAA,UAAA,CACA,OAAA,WAAA,CACA,OAAA,UAAA,CACA,sBACC,aAAA,CAED,8BACC,iBAAA,CAED,0BACC,iBAAA,CAED,uBACC,gBAAA,CAED,sBACC,aAAA,CAED,gBACC,gBAAA,CACA,aAAA,CAGD,YACC,kBAAA\",\"sourcesContent\":[\"@import \\\"src/resources/customized-styles/variables\\\";\\r\\n\\r\\n.errormsg {\\r\\n\\tcolor: red;\\r\\n\\tfont-weight: bold;\\r\\n\\tbackground: yellow;\\r\\n}\\r\\n\\r\\n.classification-container{\\r\\n\\toverflow-y: hidden;\\r\\n\\toverflow: auto;\\r\\n\\theight: 400px;\\r\\n}\\r\\n\\r\\nul{\\r\\n\\tlist-style-type:none;\\r\\n\\tmargin:0;\\r\\n}\\r\\ntree-node ul:first-child{\\r\\n\\tpadding-left:0;\\r\\n}\\r\\n\\r\\n.fa.fa-plus{\\r\\n\\twidth: 16px;\\r\\n\\theight: 16px;\\r\\n\\tbackground-repeat: no-repeat;\\r\\n\\tbackground-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTJDBGvsAAAAmUlEQVQ4T6WTuw2AMBBDXbEDo7AQQ9AgISRYgRUYhIqK3wjsQHWEE5wOiJDCFa+xbEtxEhDRDVRjg7yNHPhC/DrMQr0QqqlD1scOCEEFXDKuKIbEASa4gEvmDeWUOn4WSNF7F/HrMAu+goPHLuLXYRZ84Qu1i/h1mAVfUHPuIn4dZsEX0pgKTEcwjfj7Gk0PyfSUTZ8p6DsTdnMcPQl3gNV4AAAAAElFTkSuQmCC);\\r\\n\\r\\n\\tdisplay:inline-block;\\r\\n}\\r\\n\\r\\n.fa.fa-minus{\\r\\n\\twidth: 16px;\\r\\n\\theight: 16px;\\r\\n\\tbackground-repeat: no-repeat;\\r\\n\\tbackground-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTMyIDc5LjE1OTI4NCwgMjAxNi8wNC8xOS0xMzoxMzo0MCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6M0I4RDFEMDE5MDc4MTFFNjhBRkU4RjUxMTMwMTFBNDciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6M0I4RDFEMDI5MDc4MTFFNjhBRkU4RjUxMTMwMTFBNDciPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDozQjhEMUNGRjkwNzgxMUU2OEFGRThGNTExMzAxMUE0NyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDozQjhEMUQwMDkwNzgxMUU2OEFGRThGNTExMzAxMUE0NyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PtWsFOoAAACvSURBVHjaYvz//z8DJYBx6BvAwthxZSYDI3MaWbr//53FxPDjei7D/3/HSdcM1APUywRk/mL4/CMYaNpzEmx+DtYD1MsEFXrO8Ps/0JD/vwhrBqoBqQXpAQImJKnjDH//5xI0AKIG7mUmNOlZoIDBF2hgNcjRyFC/Cl0ZGwOH1gEGRiZLzEC75gAOMyTAhMUezEBFCjR0xUw4HIsIVLRAw0hIeIILOVCPD968ABBgAN4Tav6F/rCJAAAAAElFTkSuQmCC);\\r\\n\\tdisplay:inline-block;\\r\\n}\\r\\n\\r\\n.StartOfTreeNode > tree-node > .StartOfTreeNode{\\r\\n\\tpadding-left:20px;\\r\\n}\\r\\n.mainBack{\\r\\n\\tbackground:#F7F7F7;\\r\\n}\\r\\n\\r\\n.selected{\\r\\n\\tbackground-color: #00b3c9;\\r\\n}\\r\\n\\r\\n.left{float:left;}\\r\\n.right{float:right;}\\r\\n.clear{clear:both;}\\r\\n.WorkQueueDropContent{\\r\\n\\tcolor:#343434;\\r\\n}\\r\\n.EachMiniQueueWithOutCollapse{\\r\\n\\tpadding:10px 10px;\\r\\n}\\r\\n.eachMinQueueCheckSection{\\r\\n\\tmargin-right:10px;\\r\\n}\\r\\n.leftGaptoRightElement{\\r\\n\\tmargin-left:10px;\\r\\n}\\r\\n.lightFontForMInQueue{\\r\\n\\tcolor:#A8A8A8;\\r\\n}\\r\\n.DateOfMinQueue{\\r\\n\\tfont-weight:bold;\\r\\n\\tcolor:#0E7EC6;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n\\tmargin-bottom: 10px;\\r\\n}\\r\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","module.exports = \"\\r\\n \\r\\n \\r\\n\\t\\r\\n\\t\\r\\n \\r\\n\\t\\r\\n \\r\\n\\t\\t\\r\\n\\t\\t\\tChoose a value\\r\\n\\t\\t\\tEdit text\\r\\n\\t\\t\\r\\n \\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n \\r\\n\\r\\n \\r\\n\\t\\t\\tOK\\r\\n Cancel\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n\";","module.exports = \"\\r\\n\\t\\r\\n\\t\\r\\n\\r\\n\\r\\n\\t\\r\\n\\t\\t(Classification: ${classificationName})\\r\\n\\t\\r\\n\\r\\n\\t\\r\\n\\r\\n\\t${errorMessage}\\r\\n\\r\\n\\t\\r\\n\\t\\t\\r\\n\\t\\r\\n\\t\\r\\n\\r\\n\";","module.exports = \"\\r\\n\\t\\r\\n\\t\\t\\r\\n\\t\\r\\n\\r\\n\";","module.exports = \"\\r\\n\\r\\n\\t\\r\\n\\t\\tChoose a value from the list below to insert in the field. If the desired value is not in the list, you can type a new value in the search field and select that value.\\r\\n\\t\\t 0\\\" class=\\\"text-danger\\\">${errorMessage}\\r\\n\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t${value.value !== \\\"\\\" ? value.value : value.altText}\\r\\n\\t\\t\\t\\t ${value.isCustom && value.value !== '' ? '(New value)': ''}\\r\\n\\t\\t\\t\\r\\n\\t\\t\\r\\n\\t\\r\\n\\r\\n\";","import { ObjectRow, ObjectCell } from 'app/services/object-list/object-list-row';\r\nimport { ObjectListManager } from 'app/services/object-list/object-list-manager';\r\nimport {autoinject} from 'aurelia-framework';\r\nimport { DialogCloseResult, DialogController } from \"aurelia-dialog\";\r\nimport {EditAsValueList} from \"./edit-as-value-list\";\r\nimport {EditAsClassification} from \"./edit-as-classification\";\r\nimport { EditAsMultiline } from './edit-as-multiline';\r\nimport {ValueListItemDto} from \"app/models/value-list-dtos\";\r\nimport {ValueListService} from \"app/services/value-list/value-list-service\";\r\nimport Color from \"color\";\r\nimport {ColorLegendService} from \"app/services/color-legend/color-legend-service\";\r\nimport {EventAggregator} from \"aurelia-event-aggregator\";\r\n\r\n@autoinject\r\nexport class CellEditor {\r\n public objects: ObjectListManager | undefined;\r\n public row: ObjectRow | undefined;\r\n public cell: ObjectCell | undefined;\r\n\tpublic valueListViewModel: EditAsValueList | undefined;\r\n\tpublic classificationViewModel: EditAsClassification | undefined;\r\n\tpublic multilineViewModel: EditAsMultiline | undefined;\r\n\tprivate editType:string = \"\";\r\n\tprivate editTypes:EditCellTypes;\r\n\t\r\n \r\n constructor(private dialog: DialogController, private events: EventAggregator, private valueListService: ValueListService, private colorLegendService: ColorLegendService) {\r\n\t\tconsole.log('cell-editor.ctor');\r\n\t\tthis.editTypes = new EditCellTypes(); \r\n\t\t//dialog.settings.keyboard = true; //false;\r\n }\r\n\r\n async activate(model: any) {\r\n\t\tconsole.log('cell-editor.activate');\r\n \t\r\n this.objects = model.objects;\r\n this.row = model.row;\r\n this.cell = model.cell;\r\n\r\n\t\tlet parameterDefinitionDto = this.objects?.columns.columnParameterDefinitionMetadata.find(x => x.id == this.cell?.definitionId);\r\n\r\n\t\tif (Boolean(parameterDefinitionDto) && parameterDefinitionDto?.valueList_Id != \"00000000-0000-0000-0000-000000000000\") {\r\n\t\t\tthis.editType = this.editTypes.valueList;\r\n\t\t}\r\n\t\telse if (Boolean(parameterDefinitionDto) && parameterDefinitionDto?.isClassificationKey){\r\n\t\t\tthis.editType = this.editTypes.classification;\r\n\t\t}\r\n\t\telse if (this.cell?.isMultiline) {\r\n\t\t\t// for multi-line, we must 'keep' ENTER/RETURN:\r\n\t\t this.dialog.settings.keyboard = true; //(required for MultiLine edit)\r\n\t\t\tthis.editType = this.editTypes.multiline;\r\n\t\t}\r\n\t\tconsole.log('editType:', this.editType);\r\n }\r\n\t\r\n\t// no, cell-editor.html just goes straight for dialog.cancel.\r\n\t//public async cancel() {\r\n\t//\tconsole.log('cell-editor.cancel');\r\n // await this.dialog.cancel();\r\n //}\r\n\r\n\tpublic async on_ok():Promise {\t\t\r\n\t\tconsole.log('cell-editor.on_ok');\r\n\t\tif (this.row && this.cell) {\r\n\t\t\tif (this.editType === this.editTypes.classification) {\r\n\t\t\t\tif (!this.classificationViewModel?.validateInput()) { return false; }\r\n\t\t\t\tawait this.objects?.source.saveClassificationCell(this.row, this.objects.selectedItems, this.cell);\r\n\t\t\t\tawait this.maybeRecreateBreakdown();\r\n\t\t\t} else {\r\n\t\t\t\tif (this.editType === this.editTypes.valueList) {\r\n\t\t\t\t\tif (!this.valueListViewModel?.validateInput()) { return false; }\r\n\t\t\t\t\tawait this.handleValueList();\r\n\t\t\t\t}\r\n\t\t\t\tawait this.objects?.source.saveCell(this.row, this.objects.selectedItems, this.cell);\r\n\t\t\t}\r\n\t\t}\r\n\t\t// await this.dialog.ok();\r\n\t\treturn true; // if we made it this far without exceptions, I assume we are OK?\r\n\t}\r\n\r\n\tasync canDeactivate(r: DialogCloseResult):Promise {\r\n\t\tconsole.log('\\ncelleditor.canDeactivate');\r\n\t\tif (r.wasCancelled) { \r\n\t\t\tconsole.log('escaping out of the dialog is your right.');\r\n\t\t\treturn true; \r\n\t\t} \r\n\t\treturn await this.on_ok();\r\n\t}\r\n\r\n\r\n\tasync maybeRecreateBreakdown() {\r\n\t\tconsole.log('cell-editor.maybeRecreateBreakdown');\r\n\t\tlet refreshBreakdownOnClassifChange:boolean = false;\r\n\t\tif (refreshBreakdownOnClassifChange) {\r\n\t\t\tawait this.objects?.apply_ActiveFilters('cell-editor.ok'); \r\n\t\t} // JG: Dette giver en alt for langsom og traels reload-alt-refresh.\r\n\r\n\t\t/* JG: Som jeg forstår det, er meningen med apply_ActiveFilters ifbm.\r\n\t\tændring af classif, at classif ofte indgår i breakdown,\r\n\t\tog at vi derfor ønsker at genudfolde breakdown ved ændringer,\r\n\t\tså ting bliver gen-implaceret \"på deres rette nye plads\".\r\n\t\tMen det er super-irriterende under faktisk arbejde med classif,\r\n\t\tså vi slår det fra.\r\n\t\t*/\r\n\t}\r\n\r\n\r\n\tprivate async handleValueList() {\r\n\t\tconsole.log('cell-editor.handleValueList');\r\n\t\tlet viewModel: EditAsValueList | undefined = this.valueListViewModel;\r\n\r\n\t\tif (viewModel && viewModel.hasValueList() && viewModel?.selectedEditorValue?.isCustom) {\r\n\t\t\tlet valueListItem: ValueListItemDto = {\r\n\t\t\t\tvalue: viewModel.selectedEditorValue.value,\r\n\t\t\t\tid: '00000000-0000-0000-0000-000000000000',\r\n\t\t\t\tvalueListId: viewModel?.parameterDefinitionDto?.valueList_Id ? viewModel?.parameterDefinitionDto?.valueList_Id : '00000000-0000-0000-0000-000000000000',\r\n\t\t\t\tsortOrder: 0,\r\n\t\t\t\tisDefault: false,\r\n\t\t\t\tcolorUI: null // Means that it should be generated on the back end\r\n\t\t\t}\r\n\t\t\tlet valueListItemFromServer: ValueListItemDto = await this.valueListService.addNewListItemOnProject(valueListItem, '');\r\n\t\t\tif (valueListItemFromServer.colorUI) {\r\n\t\t\t\tthis.colorLegendService.updateColorMap(viewModel.selectedEditorValue.value, new Color(valueListItemFromServer.colorUI));\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\nclass EditCellTypes {\r\n\treadonly valueList = \"valueList\";\r\n\treadonly classification = \"classification\";\r\n\treadonly multiline = \"multiline\";\r\n}\r\n","import {autoinject, bindable, observable, computedFrom} from \"aurelia-framework\";\r\n\r\nimport {ApiClient} from \"app/services/api-client\";\r\nimport {ObjectCell, ObjectRow} from \"app/services/object-list/object-list-row\";\r\nimport {ObjectListManager} from \"app/services/object-list/object-list-manager\";\r\nimport {AppContextService} from \"app/services/app-context-service\";\r\nimport {EventAggregator, Subscription} from \"aurelia-event-aggregator\";\r\nimport {ClassificationModel, INodeModel, NodeModel} from \"./tree-node\";\r\nimport {ParameterDefinitionDto} from \"app/models/parameter-definition-dto\";\r\n\r\n@autoinject\r\nexport class EditAsClassification {\r\n\t// (JG: Dette er en drop-in model for CellEditor.) \r\n\tprivate searchHits: Set = new Set();\r\n\r\n\t@bindable public objects: ObjectListManager | undefined;\r\n\t@bindable public row: ObjectRow | undefined;\r\n\t@bindable public cell: ObjectCell | undefined;\r\n\t@observable public searchText: string; // assigned in ctor instead.\r\n\tpublic classification:ClassificationModel | undefined;\r\n\tprivate subscriptions: Subscription[] = [];\r\n\tpublic nodes:NodeModel[] = [];\r\n\tpublic inputSelected:boolean = false;\r\n\tpublic errorMessage:string = \"\";\r\n\tpublic classificationId:string = '?'; // does @observable change how it behaves?\r\n\r\n\t\r\n\tconstructor(private api: ApiClient, private app: AppContextService, private eventAggregator:EventAggregator) { \r\n\t\tconsole.log('ctor', this.searchHits); //again.\r\n\t\tthis.searchText = ''; // only assign once EditAsClassification is 'pretty-much-constructed'.\r\n\t}\r\n\r\n\tasync attached() {\t\t\t\t\r\n\t\tconsole.log('attached begin'); // (has sometimes been slow, that is why we log.)\r\n\t\tlet parameterDefinitionDto:ParameterDefinitionDto | undefined\r\n\t\t = this.objects?.columns.columnParameterDefinitionMetadata.find(x => x.id == this.cell?.definitionId);\r\n\t\tif (parameterDefinitionDto) {\r\n\t\t\tawait this.getClassificationNodesForParam(parameterDefinitionDto);\r\n\t\t}\r\n\t\t\t\r\n\t\tthis.subscriptions = [\r\n\t\t\tthis.eventAggregator.subscribe(\"treenode-node-selected\", (selectedNode: INodeModel) => {\r\n\t\t\t\tthis.select(selectedNode);\r\n\t\t\t})\r\n\t\t];\r\n\t\tconsole.log('attached complete');\r\n\t}\r\n\r\n\tasync getClassificationNodesForParam(parameterDefinitionDto:ParameterDefinitionDto) {//UB:attached.\r\n\t\tconsole.log('GCN-getClassifictionNodes'); //again.\r\n\t\tthis.classificationId = parameterDefinitionDto.classificationId;\r\n\r\n\t\tlet path = `Classification/GetClassificationNodes/${this.classificationId}`;\r\n\t\t//console.log('GCN-before ', path);\r\n\t\tlet projectId: string |undefined = this.app.getSelectedProject()?.id;\r\n\t\tif (projectId != undefined) {\r\n\t\t\tlet result = await this.api.projectWToken(projectId).get(path).jsonResult();\r\n\t\t\t//console.log('GCN-after ', path);\r\n\t\t\t\r\n\t\t\t// JG: result ought to be typed as, probably, 'ClassificationModel', but no one ever clarified that part :-/\r\n\t\t\tthis.classification = ClassificationModel.BuildFromServer(result);\r\n\t\t\tthis.sortNodes();\r\n\t\t\t\r\n\t\t\tthis.nodes = this.classification.nodes;//in-getClassifictionNodes.\r\n\t\t}\r\n\t}\r\n\r\n\tprivate sortNodes() {\r\n\t\tif (this.classification == null) return;\r\n\t\t\r\n\t\tthis.classification.nodes.sort((a, b) => \r\n\t\t\tthis.compareByOrderThenCode(a, b))\r\n\t}\r\n\r\n\tprivate compareByOrderThenCode(a: NodeModel, b: NodeModel) {\r\n\t\tif (a.orderNumber == b.orderNumber) return a.code.localeCompare(b.code);\r\n\t\treturn a.orderNumber - b.orderNumber;\r\n\t}\r\n\r\n\t@computedFrom('classification')\r\n\tget classificationName():string {\r\n\t\tconsole.log('get_classificationName'); //again.\r\n\r\n\t\tif (this.classification) {\r\n\t\t\tif (this.classification.name) { \r\n\t\t\t\treturn this.classification.name;\r\n\t\t\t} else {\r\n\t\t\t return `(classification ${this.classificationId} has empty name?)`;\r\n\t\t }\r\n\t\t}\r\n\t\tif (this.classificationId == '?') { return '-'; } // (Don't display an error while we are still loading.)\r\n\t\treturn `(classification with ID ${this.classificationId} not found?)`;\r\n\t}\r\n\r\n\tdetached() {\r\n\t\tconsole.log('detached'); // again.\r\n\t\tthis.subscriptions.forEach(subscription => ( subscription.dispose() ));\r\n\t}\r\n\r\n\tpublic select(value: INodeModel) {\r\n\t\tconsole.log('select:', value); // again.\r\n\r\n\t\tif (this.cell) {\r\n\t\t\tconsole.log('select', value.code);\r\n\t\t\tthis.cell.newValue = value.id;\r\n\t\t\tthis.inputSelected = true;\r\n\t\t\tthis.errorMessage = \"\";\r\n\t\t}\r\n\t}\r\n\r\n\tpublic validateInput():boolean {\r\n\t\tconsole.log('validateInput');\r\n\t\tlet inputOK = this.inputSelected;\r\n\t\tif (!inputOK) { this.errorMessage = \"Please select a classification node\"; }\r\n\t\treturn inputOK;\r\n\t}\r\n\r\n\r\n\r\n\t////////// SearchTextChanged cascade //////////////////////////////\r\n\tpublic searchTextChanged(newValue: string) {\r\n\t\tconsole.log('STC-searchTextChanged', newValue); // again.\t\t\r\n\t\tif (this.nodes.length == 0) {\r\n\t\t\tconsole.log('(ignoring early searchChange)');\r\n\t\t\treturn;\r\n\t\t}\t\r\n\t\tthis.filterSearchResults(newValue);\r\n\t}\r\n\r\n\tprivate filterSearchResults(searchTerm: string) : void {\r\n\t\tconsole.log('STC-filterSearchResults'); // again\r\n\t\t// (beware if this.searchHits appears to be missing)\r\n\t\tthis.searchHits.clear();\r\n\t\t\r\n\t\tconst searchLowerCase = searchTerm.toLowerCase();\r\n\t\tthis.nodes.forEach((node: INodeModel) => this.includedOrHasIncludedChildren(node, searchLowerCase));\r\n\t\t\r\n\t\tconsole.log('\\nSTC-#matches:', this.searchHits.size);\r\n\t\tthis.selectIfSingle(searchLowerCase);\r\n\t}\r\n\r\n\tselectIfSingle(search:string) {\r\n\t\tconsole.log('selectIfSingle'); // again.\r\n\r\n\t\tlet singleMatch:INodeModel;\r\n\t\t\r\n\t\tif (this.searchHits.size == 1) { \r\n\t\t\tsingleMatch = Array.from(this.searchHits.values())[0];\r\n\t\t\t//console.log('m:', singleMatch);\r\n\t\t} else {\r\n\t\t\tlet all = [...this.searchHits.values()];\r\n\t\t\t//console.log('all:', all, search);\r\n\t\t\tlet matches = all.filter(n=>n.code_lower == search);\r\n\t\t\tif (matches.length != 1) {\r\n\t\t\t\t//console.log('#matches:', matches.length);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tsingleMatch = matches[0];\r\n\t\t}\r\n\r\n\t\tthis.nodes.forEach( n => n.deselectNodeRec() ); // deselect all nodes.\t\t\r\n\t\tlet it = this.searchHits.values();\r\n\t\tlet single0 = it.next(); // JG: how is this supposed to be used?\r\n\t\tlet single = single0.value;\r\n\t\tconsole.log('as only 1 match, we select this node:', single.code);\r\n\t\tsingle.selectNode();\r\n\t\tthis.select(single);\r\n\t}\r\n\r\n\tprivate includedOrHasIncludedChildren(node: INodeModel, searchTerm: string) : boolean {\r\n\t\tconsole.log('STC-includedOrHasIncludedChildren'); // again.\r\n\r\n\t\t// JG: We should pre-compute all these lowercases to make them faster to compare?\r\n\t\tconst matchesName = node.name.toLowerCase().includes(searchTerm);\r\n\t\tconst matchesCode = node.code.toLowerCase() === searchTerm;\r\n\r\n\t\tif (matchesCode) {\r\n\t\t\tnode.expandNode();\r\n\t\t\tnode.children.forEach(child => {\r\n\t\t\t\tchild.include = true;\r\n\t\t\t\tchild.expandNode();\r\n\t\t\t\tchild.children.forEach(grandChild => grandChild.include = true)\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tnode.children.forEach((child: INodeModel) => this.includedOrHasIncludedChildren(child, searchTerm));\r\n\t\t}\r\n\r\n\t\tlet matchesSearchTerm: boolean = matchesName || matchesCode;\r\n\t\t\r\n\t\tif (matchesSearchTerm) {\r\n\t\t\tthis.searchHits.add(node); // in-includedOrHasIncludedChildren.\r\n\t\t}\r\n\t\tconst includeChildren = node.children.some(child => child.include);\r\n\t\tif (includeChildren) {\r\n\t\t\tnode?.expandNode();\r\n\t\t}\r\n\t\tconst include = matchesSearchTerm || includeChildren;\r\n\t\tnode.include = include; // in search\r\n\t\treturn include;\r\n\t}\r\n\t////////// END: SearchTextChanged cascade //////////////////////////////\r\n\r\n\t\r\n}\r\n","import { autoinject, bindable } from 'aurelia-framework';\r\nimport { ObjectListManager } from 'app/services/object-list/object-list-manager';\r\nimport { ObjectRow, ObjectRowCell } from 'app/services/object-list/object-list-row';\r\n\r\n@autoinject\r\nexport class EditAsMultiline {\r\n\t@bindable public objects: ObjectListManager | undefined;\r\n\t@bindable public row: ObjectRow | undefined;\r\n\t@bindable public cell: ObjectRowCell | undefined;\r\n\r\n\tconstructor() {\r\n\t}\r\n}\r\n","import {autoinject, bindable} from \"aurelia-framework\";\r\n\r\nimport {ObjectRow, ObjectRowCell, ObjectCell} from \"../../../../services/object-list/object-list-row\";\r\nimport {ApiClient} from \"../../../../services/api-client\";\r\nimport {AppContextService} from \"../../../../services/app-context-service\";\r\nimport {ValueListService} from \"../../../../services/value-list/value-list-service\";\r\nimport {EventAggregator, Subscription} from \"aurelia-event-aggregator\";\r\nimport {ObjectListManager} from \"../../../../services/object-list/object-list-manager\";\r\nimport {ParameterDefinitionDto} from \"../../../../models/parameter-definition-dto\";\r\n\r\n@autoinject\r\nexport class EditAsValueList {\r\n\t@bindable public objects: ObjectListManager | undefined;\r\n\t@bindable public row: ObjectRow | undefined;\r\n\t@bindable public cell: ObjectCell | undefined;\r\n\tpublic values: CellEditorValue[] = [];\r\n\tpublic parameterDefinitionDto: ParameterDefinitionDto | undefined;\r\n\tpublic customInput: CellEditorValue = {value: \"\", isCustom: true, altText: \"custom input (no input)\"}; //Value på denne er et problem.\r\n\tpublic searchInput: string = \"\";\r\n\tpublic viewContext: string = \"cellEditingValueList\";\r\n\tpublic errorMessage: string = \"\";\r\n\tpublic inputSelected: boolean = false;\r\n\t@bindable public selectedEditorValue: CellEditorValue | undefined;\r\n\tprivate subscription: Subscription | null = null;\r\n\r\n\tconstructor(private api: ApiClient, private app: AppContextService, private valueListService: ValueListService, private eventAggregator: EventAggregator) {\r\n\t}\r\n\r\n\tasync attached() {\r\n\t\tthis.subscription = this.eventAggregator.subscribe(this.viewContext + \":SearchTermChanged\", (searchTerm: string) => {\r\n\t\t\tthis.searchInput = searchTerm;\r\n\t\t\tlet match = this.values.find(x => x.value.toLowerCase() == searchTerm.toLowerCase());\r\n\t\t\tif (!match)\r\n\t\t\t\tthis.customInput.value = searchTerm;\r\n\t\t\telse\r\n\t\t\t\tthis.customInput.value = \"\";\r\n\t\t});\r\n\t\tthis.parameterDefinitionDto = this.objects?.columns.columnParameterDefinitionMetadata.find(x => x.id == this.cell?.definitionId);\r\n\t\tif (this.hasValueList() && this.parameterDefinitionDto) {\r\n\t\t\tthis.valueListService.getValueListItemsOnProject(this.parameterDefinitionDto?.valueList_Id).then(items => {\r\n\t\t\t\tthis.values = items.map(x => {\r\n\t\t\t\t\treturn {value: x.value, isCustom: false, altText: \"\"}\r\n\t\t\t\t});\r\n\t\t\t\tthis.values.sort(function (a, b) {\r\n\t\t\t\t\tlet nameA = a.value.toUpperCase();\r\n\t\t\t\t\tlet nameB = b.value.toUpperCase();\r\n\r\n\t\t\t\t\tif (nameA < nameB) {\r\n\t\t\t\t\t\treturn -1;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (nameA > nameB) {\r\n\t\t\t\t\t\treturn 1;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn 0;\r\n\t\t\t\t});\r\n\t\t\t\tif (!this.parameterDefinitionDto?.valueListEnforced)\r\n\t\t\t\t\tthis.values.splice(0, 0, this.customInput) // A crazy way to prepend an item...\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tdetached() {\r\n\t\tthis.subscription?.dispose();\r\n\t}\r\n\r\n\tpublic validateInput(): boolean {\r\n\t\tif (!this.inputSelected) {\r\n\t\t\tthis.errorMessage = \"Please select an item\";\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\treturn true;\r\n\t}\r\n\r\n\tpublic async select(editorValue: CellEditorValue) {\r\n\t\tconsole.log(\"values, \" , this.values);\r\n\t\tconsole.log(\"Selected editorValue, \" ,this.selectedEditorValue);\r\n\t\tconsole.log(\"editorValue, \" , editorValue);\r\n\t\tconsole.log(\"Selected cell \" , this.cell);\r\n\t\tconsole.log(\"EQUALS before\" , this.selectedEditorValue == editorValue)\r\n\t\tif (this.cell) {\r\n\t\t\tthis.cell.newValue = editorValue.value;\r\n\t\t\tthis.inputSelected = true;\r\n\t\t\tthis.errorMessage = \"\";\r\n\t\t\tthis.selectedEditorValue = editorValue;\r\n\t\t}\r\n\t\tconsole.log(\"EQUALS after\" , this.selectedEditorValue?.value == editorValue.value)\r\n\t}\r\n\r\n\thasValueList() {\r\n\t\treturn Boolean(this.parameterDefinitionDto) && this.parameterDefinitionDto?.valueList_Id != \"00000000-0000-0000-0000-000000000000\";\r\n\t}\r\n}\r\n\t\r\nexport interface CellEditorValue{\r\n\tisCustom:boolean,\t// Is new value list item to be added\r\n\tvalue:string,\r\n\taltText:string\r\n}\r\n"],"names":["___CSS_LOADER_EXPORT___","push","module","id","___CSS_LOADER_URL_IMPORT_0___","URL","___CSS_LOADER_URL_IMPORT_1___","___CSS_LOADER_URL_REPLACEMENT_0___","___CSS_LOADER_URL_REPLACEMENT_1___","exports","CellEditor","constructor","dialog","events","valueListService","colorLegendService","editType","console","log","this","editTypes","EditCellTypes","activate","model","objects","row","cell","parameterDefinitionDto","columns","columnParameterDefinitionMetadata","find","x","definitionId","Boolean","valueList_Id","valueList","isClassificationKey","classification","isMultiline","settings","keyboard","multiline","on_ok","classificationViewModel","validateInput","source","saveClassificationCell","selectedItems","maybeRecreateBreakdown","valueListViewModel","handleValueList","saveCell","canDeactivate","r","wasCancelled","viewModel","hasValueList","selectedEditorValue","isCustom","valueListItem","value","valueListId","sortOrder","isDefault","colorUI","valueListItemFromServer","addNewListItemOnProject","updateColorMap","autoinject","DialogController","EventAggregator","EditAsClassification","api","app","eventAggregator","searchHits","Set","subscriptions","nodes","inputSelected","errorMessage","classificationId","searchText","attached","getClassificationNodesForParam","subscribe","selectedNode","select","path","projectId","getSelectedProject","undefined","result","projectWToken","get","jsonResult","ClassificationModel","BuildFromServer","sortNodes","sort","a","b","compareByOrderThenCode","orderNumber","code","localeCompare","classificationName","name","detached","forEach","subscription","dispose","newValue","inputOK","searchTextChanged","length","filterSearchResults","searchTerm","clear","searchLowerCase","toLowerCase","node","includedOrHasIncludedChildren","size","selectIfSingle","search","singleMatch","Array","from","values","matches","filter","n","code_lower","deselectNodeRec","single","next","selectNode","matchesName","includes","matchesCode","expandNode","children","child","include","grandChild","matchesSearchTerm","add","includeChildren","some","bindable","observable","computedFrom","EditAsMultiline","EditAsValueList","customInput","altText","searchInput","viewContext","match","getValueListItemsOnProject","then","items","map","nameA","toUpperCase","nameB","valueListEnforced","splice","editorValue"],"sourceRoot":""}
Choose a value from the list below to insert in the field. If the desired value is not in the list, you can type a new value in the search field and select that value.
0\\\" class=\\\"text-danger\\\">${errorMessage}