{"version":3,"file":"app-a4db9be2.f771613fea4980b6.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,uCAAA,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\\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","// 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","async","model","objects","row","cell","parameterDefinitionDto","columns","columnParameterDefinitionMetadata","find","x","definitionId","Boolean","valueList_Id","valueList","isClassificationKey","classification","isMultiline","settings","keyboard","multiline","classificationViewModel","validateInput","source","saveClassificationCell","selectedItems","maybeRecreateBreakdown","valueListViewModel","handleValueList","saveCell","r","wasCancelled","on_ok","viewModel","hasValueList","selectedEditorValue","isCustom","valueListItem","value","valueListId","sortOrder","isDefault","colorUI","valueListItemFromServer","addNewListItemOnProject","updateColorMap","autoinject","DialogController","EditAsClassification","api","app","eventAggregator","searchHits","Set","subscriptions","nodes","inputSelected","errorMessage","classificationId","searchText","getClassificationNodesForParam","subscribe","selectedNode","select","path","projectId","getSelectedProject","undefined","result","projectWToken","get","jsonResult","ClassificationModel","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}