smart-webcomponents-react 14.7.1 → 15.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (208) hide show
  1. package/package.json +1 -1
  2. package/source/modules/smart.3dchart.js +3 -3
  3. package/source/modules/smart.accordion.js +2 -2
  4. package/source/modules/smart.array.js +3 -3
  5. package/source/modules/smart.barcode.js +2 -2
  6. package/source/modules/smart.breadcrumb.js +2 -2
  7. package/source/modules/smart.button.js +2 -2
  8. package/source/modules/smart.buttongroup.js +2 -2
  9. package/source/modules/smart.calendar.js +2 -2
  10. package/source/modules/smart.card.js +2 -2
  11. package/source/modules/smart.cardview.js +4 -4
  12. package/source/modules/smart.carousel.js +2 -2
  13. package/source/modules/smart.chart.js +3 -3
  14. package/source/modules/smart.checkbox.js +2 -2
  15. package/source/modules/smart.checkinput.js +2 -2
  16. package/source/modules/smart.chip.js +2 -2
  17. package/source/modules/smart.colorinput.js +2 -2
  18. package/source/modules/smart.colorpanel.js +3 -3
  19. package/source/modules/smart.colorpicker.js +3 -3
  20. package/source/modules/smart.combobox.js +3 -3
  21. package/source/modules/smart.common.js +3 -3
  22. package/source/modules/smart.countryinput.js +2 -2
  23. package/source/modules/smart.dateinput.js +2 -2
  24. package/source/modules/smart.daterangeinput.js +3 -3
  25. package/source/modules/smart.datetimepicker.js +3 -3
  26. package/source/modules/smart.dockinglayout.js +2 -2
  27. package/source/modules/smart.dropdownbutton.js +2 -2
  28. package/source/modules/smart.dropdownlist.js +3 -3
  29. package/source/modules/smart.editor.js +2 -2
  30. package/source/modules/smart.element.js +2 -2
  31. package/source/modules/smart.fileupload.js +3 -3
  32. package/source/modules/smart.form.js +2 -2
  33. package/source/modules/smart.formulaparser.js +2 -2
  34. package/source/modules/smart.ganttchart.js +4 -4
  35. package/source/modules/smart.gauge.js +2 -2
  36. package/source/modules/smart.grid.js +6 -6
  37. package/source/modules/smart.gridpanel.js +4 -4
  38. package/source/modules/smart.input.js +2 -2
  39. package/source/modules/smart.kanban.js +5 -5
  40. package/source/modules/smart.layout.js +2 -2
  41. package/source/modules/smart.led.js +2 -2
  42. package/source/modules/smart.listbox.js +2 -2
  43. package/source/modules/smart.listmenu.js +2 -2
  44. package/source/modules/smart.map.js +2 -2
  45. package/source/modules/smart.maskedtextbox.js +2 -2
  46. package/source/modules/smart.menu.js +2 -2
  47. package/source/modules/smart.multicomboinput.js +2 -2
  48. package/source/modules/smart.multiinput.js +2 -2
  49. package/source/modules/smart.multilinetextbox.js +3 -3
  50. package/source/modules/smart.multisplitbutton.js +3 -3
  51. package/source/modules/smart.numberinput.js +2 -2
  52. package/source/modules/smart.numerictextbox.js +3 -3
  53. package/source/modules/smart.pager.js +2 -2
  54. package/source/modules/smart.passwordinput.js +2 -2
  55. package/source/modules/smart.passwordtextbox.js +2 -2
  56. package/source/modules/smart.path.js +2 -2
  57. package/source/modules/smart.phoneinput.js +2 -2
  58. package/source/modules/smart.pivottable.js +5 -5
  59. package/source/modules/smart.progressbar.js +2 -2
  60. package/source/modules/smart.qrcode.js +2 -2
  61. package/source/modules/smart.querybuilder.js +3 -3
  62. package/source/modules/smart.radiobutton.js +2 -2
  63. package/source/modules/smart.rating.js +2 -2
  64. package/source/modules/smart.router.js +3 -3
  65. package/source/modules/smart.scheduler.js +4 -4
  66. package/source/modules/smart.scrollbar.js +2 -2
  67. package/source/modules/smart.slider.js +2 -2
  68. package/source/modules/smart.sortable.js +2 -2
  69. package/source/modules/smart.splitter.js +2 -2
  70. package/source/modules/smart.switchbutton.js +2 -2
  71. package/source/modules/smart.table.js +4 -4
  72. package/source/modules/smart.tabs.js +2 -2
  73. package/source/modules/smart.tank.js +2 -2
  74. package/source/modules/smart.textarea.js +2 -2
  75. package/source/modules/smart.textbox.js +3 -3
  76. package/source/modules/smart.timeinput.js +2 -2
  77. package/source/modules/smart.timepicker.js +2 -2
  78. package/source/modules/smart.toast.js +2 -2
  79. package/source/modules/smart.tooltip.js +2 -2
  80. package/source/modules/smart.tree.js +3 -3
  81. package/source/modules/smart.validator.js +2 -2
  82. package/source/modules/smart.window.js +3 -3
  83. package/source/smart.3dchart.js +1 -1
  84. package/source/smart.accordion.js +1 -1
  85. package/source/smart.ajax.js +1 -1
  86. package/source/smart.array.js +1 -1
  87. package/source/smart.barcode.js +1 -1
  88. package/source/smart.bootstrap.js +1 -1
  89. package/source/smart.breadcrumb.js +1 -1
  90. package/source/smart.button.js +1 -1
  91. package/source/smart.buttongroup.js +1 -1
  92. package/source/smart.calendar.js +1 -1
  93. package/source/smart.card.js +1 -1
  94. package/source/smart.cardview.js +1 -1
  95. package/source/smart.carousel.js +1 -1
  96. package/source/smart.chart.annotations.js +1 -1
  97. package/source/smart.chart.api.js +1 -1
  98. package/source/smart.chart.core.js +1 -1
  99. package/source/smart.chart.js +1 -1
  100. package/source/smart.chart.rangeselector.js +1 -1
  101. package/source/smart.chart.waterfall.js +1 -1
  102. package/source/smart.checkbox.js +1 -1
  103. package/source/smart.checkinput.js +1 -1
  104. package/source/smart.chip.js +1 -1
  105. package/source/smart.colorinput.js +1 -1
  106. package/source/smart.colorpanel.js +1 -1
  107. package/source/smart.colorpicker.js +1 -1
  108. package/source/smart.combobox.js +1 -1
  109. package/source/smart.complex.js +1 -1
  110. package/source/smart.core.js +1 -1
  111. package/source/smart.countryinput.js +1 -1
  112. package/source/smart.data.js +2 -2
  113. package/source/smart.date.js +1 -1
  114. package/source/smart.dateformatpanel.js +1 -1
  115. package/source/smart.dateinput.js +1 -1
  116. package/source/smart.daterangeinput.js +1 -1
  117. package/source/smart.datetimepicker.js +1 -1
  118. package/source/smart.dockinglayout.js +1 -1
  119. package/source/smart.draw.js +1 -1
  120. package/source/smart.dropdownbutton.js +1 -1
  121. package/source/smart.dropdownlist.js +2 -2
  122. package/source/smart.editor.js +1 -1
  123. package/source/smart.element.js +1 -1
  124. package/source/smart.elements.js +6 -6
  125. package/source/smart.export.js +1 -1
  126. package/source/smart.fileupload.js +1 -1
  127. package/source/smart.filter.js +1 -1
  128. package/source/smart.filterbuilder.js +1 -1
  129. package/source/smart.filterpanel.js +1 -1
  130. package/source/smart.form.js +1 -1
  131. package/source/smart.format.js +1 -1
  132. package/source/smart.formulaparser.js +1 -1
  133. package/source/smart.ganttchart.js +1 -1
  134. package/source/smart.gauge.js +1 -1
  135. package/source/smart.grid.cell.js +1 -1
  136. package/source/smart.grid.chart.js +1 -1
  137. package/source/smart.grid.column.js +1 -1
  138. package/source/smart.grid.core.js +2 -2
  139. package/source/smart.grid.dialog.js +1 -1
  140. package/source/smart.grid.edit.js +1 -1
  141. package/source/smart.grid.export.js +1 -1
  142. package/source/smart.grid.filter.js +1 -1
  143. package/source/smart.grid.group.js +1 -1
  144. package/source/smart.grid.js +1 -1
  145. package/source/smart.grid.menu.js +1 -1
  146. package/source/smart.grid.pager.js +1 -1
  147. package/source/smart.grid.reorder.js +1 -1
  148. package/source/smart.grid.resize.js +1 -1
  149. package/source/smart.grid.row.js +1 -1
  150. package/source/smart.grid.select.js +1 -1
  151. package/source/smart.grid.sort.js +1 -1
  152. package/source/smart.grid.toolbar.js +1 -1
  153. package/source/smart.grid.tree.js +1 -1
  154. package/source/smart.grid.view.js +1 -1
  155. package/source/smart.gridpanel.js +1 -1
  156. package/source/smart.input.js +1 -1
  157. package/source/smart.kanban.js +2 -2
  158. package/source/smart.layout.js +1 -1
  159. package/source/smart.led.js +1 -1
  160. package/source/smart.listbox.js +1 -1
  161. package/source/smart.listmenu.js +1 -1
  162. package/source/smart.map.js +1 -1
  163. package/source/smart.maskedtextbox.js +1 -1
  164. package/source/smart.math.js +1 -1
  165. package/source/smart.menu.js +1 -1
  166. package/source/smart.multicomboinput.js +1 -1
  167. package/source/smart.multiinput.js +1 -1
  168. package/source/smart.multilinetextbox.js +1 -1
  169. package/source/smart.multisplitbutton.js +1 -1
  170. package/source/smart.numberformatpanel.js +1 -1
  171. package/source/smart.numberinput.js +1 -1
  172. package/source/smart.numeric.js +1 -1
  173. package/source/smart.numerictextbox.js +1 -1
  174. package/source/smart.pager.js +1 -1
  175. package/source/smart.passwordinput.js +1 -1
  176. package/source/smart.passwordtextbox.js +1 -1
  177. package/source/smart.path.js +1 -1
  178. package/source/smart.phoneinput.js +1 -1
  179. package/source/smart.pivottable.js +1 -1
  180. package/source/smart.powerbutton.js +1 -1
  181. package/source/smart.progressbar.js +1 -1
  182. package/source/smart.qrcode.js +1 -1
  183. package/source/smart.radiobutton.js +1 -1
  184. package/source/smart.rating.js +1 -1
  185. package/source/smart.router.js +1 -1
  186. package/source/smart.scheduler.js +1 -1
  187. package/source/smart.scrollbar.js +1 -1
  188. package/source/smart.slider.js +1 -1
  189. package/source/smart.sortable.js +1 -1
  190. package/source/smart.splitter.js +1 -1
  191. package/source/smart.switchbutton.js +1 -1
  192. package/source/smart.table.js +1 -1
  193. package/source/smart.tabs.js +1 -1
  194. package/source/smart.tank.js +1 -1
  195. package/source/smart.textarea.js +1 -1
  196. package/source/smart.textbox.js +1 -1
  197. package/source/smart.tickintervalhandler.js +1 -1
  198. package/source/smart.timeinput.js +1 -1
  199. package/source/smart.timepicker.js +1 -1
  200. package/source/smart.toast.js +1 -1
  201. package/source/smart.tooltip.js +1 -1
  202. package/source/smart.tree.js +2 -2
  203. package/source/smart.validationpanel.js +1 -1
  204. package/source/smart.validator.js +1 -1
  205. package/source/smart.window.js +1 -1
  206. package/source/styles/components/smart.3dchart.css +1 -5
  207. package/threedchart/threedchart.esm.js +1 -1
  208. package/threedchart/threedchart.umd.js +1 -1
@@ -52,7 +52,7 @@ Smart("smart-scroll-bar",class extends Smart.BaseElement{static get properties()
52
52
  /***/ 5482:
53
53
  /***/ (() => {
54
54
 
55
- Smart("smart-tree-item",class extends Smart.MenuItem{static get properties(){return{selected:{value:!1,type:"boolean"}}}ready(){const e=this;Object.defineProperty(e,"hasStyleObserver",{get:function(){return!1}}),super.ready(),e.setAttribute("role","treeitem"),e.setAttribute("aria-label",e.label)}propertyChangedHandler(e,t,r){const n=this,l=n.menu;if(super.propertyChangedHandler(e,t,r),"level"===e)return void(n.level=t);if("disabled"===e||"separator"===e||!l)return;const a=l.context;switch(l.context=l,e){case"label":{const e=l.sorted&&l.autoSort;n.firstElementChild.firstElementChild.firstElementChild.innerHTML=r,e&&(l._unsortItems(l.$.mainContainer),l._applyGrouping(l.$.mainContainer)),l._state.filter&&l._applyFilter(l._state.filter),n.setAttribute("aria-label",r);break}case"selected":n.selected=t,r?l.select(n):l.unselect(n);break;case"shortcut":{let e=n.firstElementChild.children[1];e||(e=document.createElement("div"),e.className="smart-tree-item-shortcut",n.firstElementChild.appendChild(e)),e.innerHTML=r;break}case"value":l.sort&&l.sorted&&l.autoSort&&l._refreshSorting()}l.context=a}_setId(){}}),Smart("smart-tree-items-group",class extends Smart.MenuItemsGroup{static get properties(){return{selected:{value:!1,type:"boolean"}}}ready(){const e=this;Object.defineProperty(e,"hasStyleObserver",{get:function(){return!1}}),super.ready(),e.setAttribute("role","treeitem"),e.removeAttribute("aria-haspopup"),e.setAttribute("aria-label",e.label)}propertyChangedHandler(e,t,r){const n=this,l=n.menu;if(super.propertyChangedHandler(e,t,r),"level"===e)return void(n.level=t);if("disabled"===e||"separator"===e||!l)return;const a=l.context;switch(l.context=l,e){case"expanded":n.expanded=t,r?l.expandItem(n):l.collapseItem(n);break;case"label":{const e=l.sorted&&l.autoSort;n.firstElementChild.firstElementChild.firstElementChild.innerHTML=r,e&&(l._unsortItems(l.$.mainContainer),l._applyGrouping(l.$.mainContainer)),l._state.filter&&l._applyFilter(l._state.filter),n.setAttribute("aria-label",r);break}case"selected":n.selected=t,r?l.select(n):l.unselect(n);break;case"value":l.sort&&l.sorted&&l.autoSort&&l._refreshSorting()}l.context=a}_setId(){}}),Smart("smart-tree",class extends Smart.Menu{static get properties(){return{allowDrag:{value:!1,type:"boolean"},allowDrop:{value:!1,type:"boolean"},autoHideToggleElement:{value:!1,type:"boolean"},autoLoadState:{value:!1,type:"boolean"},autoSaveState:{value:!1,type:"boolean"},autoSort:{value:!0,type:"boolean"},displayLoadingIndicator:{value:!1,type:"boolean"},dragFeedbackFormatFunction:{value:null,type:"function?"},dragOffset:{value:[10,10],type:"array"},editable:{value:!1,type:"boolean"},expandMode:{value:"multiple",allowedValues:["multiple","single"],type:"string"},filterable:{value:!1,type:"boolean"},filterOnEnter:{value:!1,type:"boolean"},filterInputPlaceholder:{value:"",type:"string"},filterMember:{value:"label",type:"string"},filterMode:{value:"containsIgnoreCase",allowedValues:["contains","containsIgnoreCase","doesNotContain","doesNotContainIgnoreCase","equals","equalsIgnoreCase","startsWith","startsWithIgnoreCase","endsWith","endsWithIgnoreCase"],type:"string"},hasThreeStates:{value:!1,type:"boolean"},loadingIndicatorPlaceholder:{value:"Loading...",type:"string"},loadingIndicatorPosition:{value:"center",allowedValues:["bottom","center","top"],type:"string"},messages:{value:{en:{noId:"smart-tree: Saving and loading the element's state are not available if the element has no id."}},type:"object",extend:!0},scrollMode:{value:"scrollbar",allowedValues:["scrollbar","scrollButtons"],type:"string"},selectedIndexes:{value:[],type:"array"},selectionDisplayMode:{value:"row",allowedValues:["row","label"],type:"string"},selectionMode:{value:"one",allowedValues:["none","oneOrManyExtended","zeroOrMany","oneOrMany","zeroOrOne","zeroAndOne","one","checkBox","radioButton"],type:"string"},selectionTarget:{value:"all",allowedValues:["all","leaf"],type:"string"},showLines:{value:!1,type:"boolean"},showRootLines:{value:!1,type:"boolean"},sort:{value:null,type:"function?",reflectToAttribute:!1},sortDirection:{value:"asc",allowedValues:["asc","desc"],type:"string"},sorted:{value:!1,type:"boolean"},toggleElementPosition:{value:"near",allowedValues:["near","far"],type:"string"},toggleMode:{value:"dblclick",allowedValues:["click","dblclick","arrow"],type:"string"}}}static get listeners(){return{blur:"_blurHandler",focus:"_focusHandler",keydown:"_keydownHandler",mouseenter:"_mouseenterHandler",mouseleave:"_mouseleaveHandler",resize:"_checkOverflow",styleChanged:"_styleChangedHandler",transitionend:"_overriddenMenuHandler","container.click":"_overriddenMenuHandler","container.mouseout":"_overriddenMenuHandler","container.mouseover":"_overriddenMenuHandler","container.pointerover":"_pointeroverHandler","editInput.blur":"_editInputBlurHandler","filterInput.keydown":"_filterInputKeydownHandler","filterInput.keyup":"_filterInputKeyupHandler","mainContainer.click":"_overriddenMenuHandler","mainContainer.mouseleave":"_overriddenMenuHandler","mainContainer.mouseout":"_overriddenMenuHandler","mainContainer.mouseover":"_overriddenMenuHandler","mainContainer.swipeleft":"_mainContainerSwipeHandler","mainContainer.swiperight":"_mainContainerSwipeHandler","scrollButtonFar.click":"_scrollButtonFarClickHandler","scrollButtonNear.click":"_scrollButtonNearClickHandler","scrollViewer.down":"_scrollViewerDownHandler","scrollViewer.kineticScroll":"_scrollViewerWheelHandler","scrollViewer.touchmove":"_scrollViewerTouchmoveHandler","mainContainer.wheel":"_scrollViewerWheelHandler","document.move":"_moveHandler","document.selectstart":"_selectstartHandler","document.up":"_documentUpHandler"}}static get requires(){return{"Smart.ScrollBar":"smart.scrollbar.js"}}static get styleUrls(){return["smart.scrollbar.css","smart.scrollviewer.css","smart.tree.css"]}template(){return'<div id="container" role="presentation">\n <div class="smart-tree-filter-input-container" role="presentation"><input id="filterInput" class="smart-filter-input" disabled="[[disabled]]" placeholder="[[filterInputPlaceholder]]" type="text" role="searchbox" aria-label="[[filterInputPlaceholder]]" /></div>\n <smart-repeat-button id="scrollButtonNear" class="smart-tree-scroll-button smart-spin-button smart-scroll-button-near smart-hidden" animation="[[animation]]" unfocusable aria-label="Scroll up">\n <div id="arrowNear" class="smart-arrow smart-arrow-up"></div>\n </smart-repeat-button>\n <smart-scroll-viewer id="scrollViewer" animation="[[animation]]" horizontal-scroll-bar-visibility="hidden" right-to-left="[[rightToLeft]]">\n <div id="mainContainer" inner-h-t-m-l=\'[[innerHTML]]\' class="smart-tree-main-container" role="presentation">\n <content></content>\n </div>\n <input type="text" id="editInput" class="smart-tree-edit-input smart-hidden" />\n </smart-scroll-viewer>\n <smart-repeat-button id="scrollButtonFar" class="smart-tree-scroll-button smart-spin-button smart-scroll-button-far smart-hidden" animation="[[animation]]" unfocusable aria-label="Scroll down">\n <div id="arrowFar" class="smart-arrow smart-arrow-down"></div>\n </smart-repeat-button>\n <div id="loadingIndicatorContainer" class="smart-loader-container smart-hidden" role="presentation">\n <span id="loadingIndicator" class="smart-loader" role="img" aria-label="[[loadingIndicatorPlaceholder]]"></span>\n <span id="loadingIndicatorPlaceHolder" class="smart-loader-label smart-hidden">[[loadingIndicatorPlaceholder]]</span>\n </div>\n </div>'}detached(){const e=this,t=e._dragDetails;if(super.detached(),!t)return;const r=Smart.Tree.hoveredTree,n=Smart.Tree.hoveredItem;delete e._dragDetails,delete Smart.Tree.treeItemDragged,delete Smart.Tree.hoveredTree,delete Smart.Tree.hoveredItem,e.$.scrollViewer._scrollView.disableSwipeScroll=!1,t.FeedbackShown&&(n.classList.remove("drop-target","top","bottom"),document.body.classList.remove("smart-dragging"),t.Feedback.remove(),r&&clearInterval(r._dragInterval))}addAfter(e,t){void 0!==(t=this.getItem(t))&&this.addTo(e,t.parentItem,t,!0)}addBefore(e,t){void 0!==(t=this.getItem(t))&&this.addTo(e,t.parentItem,t)}addTo(e,t){const r=this;if(!(e instanceof Smart.TreeItem||e instanceof Smart.TreeItemsGroup))if("string"==typeof e){const t=document.createElement("smart-tree-item");t.label=e,e=t}else{if(!e||!e.label)return;{const t=document.createElement("smart-tree-item");t.label=e.label,e=t}}let n,l;if(e.isDirty=!1,void 0===t)n=1,l=t=r.$.mainContainer;else{if((t=r.getItem(t))instanceof Smart.TreeItemsGroup==0){const n=document.createElement("smart-tree-items-group");return n.innerHTML=t.innerHTML,n.appendChild(e),r.addBefore(n,t),void t.remove()}n=t.level+1,l=t.itemContainer}r._createItemHTMLStructure(e,n,t,l.childElementCount,0);const a=r.sorted&&r.autoSort,o=r._state.filter,s=r.selectedIndexes.slice(0);a&&r._unsortItems(r.$.mainContainer),e instanceof Smart.TreeItemsGroup&&(Array.from(e.querySelectorAll("smart-tree-item, smart-tree-items-group")).forEach((e=>e.isDirty=!1)),r._processHTML(e,n+1,!1));let i=arguments[2];i&&arguments[3]&&(i=i.nextElementSibling),i?(l.insertBefore(e,i),r._menuItems={},r._refreshItemPaths(r.$.mainContainer,!0,void 0,r.sorted&&!r.autoSort)):l.appendChild(e),a&&r._applyGrouping(r.$.mainContainer),o&&r._applyFilter(o),r._checkOverflow(),r._expandItemsByDefault(),r.selectedIndexes=[],r._applySelection(!0,s)}getSelectedValues(){const e=this,t=[];for(let r=0;r<e.selectedIndexes.length;r++){const n=e._menuItems[e.selectedIndexes[r]];n.hasAttribute("value")?t.push(n.getAttribute("value")):n.hasAttribute("label")&&t.push(n.getAttribute("label"))}return t}unselectValues(e){const t=this;e&&Object.keys(t._menuItems).forEach((r=>{const n=t._menuItems[r];let l=null;n.hasAttribute("value")?l=n.getAttribute("value"):n.hasAttribute("label")&&(l=n.getAttribute("label")),"string"==typeof e?e===l&&t.unselect(r):e.indexOf(l)>=0&&t.unselect(r)}))}setSelectedValues(e){const t=this;e&&Object.keys(t._menuItems).forEach((r=>{const n=t._menuItems[r];let l=null;n.hasAttribute("value")?l=n.getAttribute("value"):n.hasAttribute("label")&&(l=n.getAttribute("label")),"string"==typeof e?e===l&&t._canItemBeSelected(n)&&t._handleSelection(n,{type:"programmatic"}):e.indexOf(l)>=0&&t._canItemBeSelected(n)&&t._handleSelection(n,{type:"programmatic"})}))}clearSelection(){const e=this,t=e.selectedIndexes.slice(0);e.selectedIndexes=[],e._applySelection(!1,t)}collapseAll(e){const t=this,r=t.animation,n=!1===e&&t.hasAnimation;n&&(t.animation="none"),t._collapseAll(!0),n&&(t.animation=r)}ensureVisible(e){const t=this;if(void 0===(e=t.getItem(e))||e.hidden)return;let r=!1;e.level>1&&!t._isBranchExpanded(e)&&(super.expandItem(e.parentItem,void 0,!0),r=t.hasAnimation,r&&(t._ensureVisibleOnTransitionend=e)),r||t._ensureVisible(e)}expandAll(e){const t=this,r=t.animation,n=!1===e&&t.hasAnimation;let l=1,a=(t.enableShadowDOM?t.shadowRoot:t).querySelectorAll('smart-tree-items-group[level="1"]');for(n&&(t.animation="none");a.length>0;){for(let e=0;e<a.length;e++){const r=a[e];r.expanded||t._menuItemsGroupSelectionHandler(r,{target:r,type:"expand"})}l++,a=(t.enableShadowDOM?t.shadowRoot:t).querySelectorAll('smart-tree-items-group[level="'+l+'"]')}n&&(t.animation=r)}expandItem(e,t){const r=this;if(void 0===(e=r.getItem(e))||e instanceof Smart.TreeItemsGroup==0||e&&e.container&&r._isContainerOpened(e.container.level,e.container))return;void 0!==Smart.Menu.processTimer&&r._lazyInitItems();const n=!1===t&&r.hasAnimation,l=r.animation;n&&(r.animation="none"),r._discardKeyboardHover(),r._menuItemsGroupSelectionHandler(e,{target:e,type:"expand"},arguments[2]),n&&(r.animation=l)}filter(e){const t=this;t.filterable&&(t._applyFilter(e),t.$.filterInput.value=e)}getState(){return JSON.parse(JSON.stringify(this._state))}insert(e,t){const r=this;let n;if(e instanceof Smart.TreeItem||e instanceof Smart.TreeItemsGroup){if(r.contains(e))return;e.isDirty=!1,n=e}else{if("object"!=typeof e||e.constructor!==Object)return;n=function e(t){const n=t[r.itemsMember],l="smart-tree-items-group"===t.tagName||Array.isArray(n)?"smart-tree-items-group":"smart-tree-item",a=document.createElement(l);if(a.isDirty=!1,t.disabled&&(a.disabled=!0),t[r.displayMember]&&(a.label=t[r.displayMember]),t.selected&&(a.selected=!0),t.separator&&(a.separator=!0),t[r.valueMember]&&(a.value=t[r.valueMember]),"smart-tree-items-group"===l){if(t.expanded&&(a.expanded=!0),n)for(let t=0;t<n.length;t++)a.appendChild(e(n[t]))}else t.shortcut&&(a.shortcut=t.shortcut);return a}(e)}if(void 0===t)return void r.addTo(n);if("number"==typeof t)t=t.toString();else if(t instanceof Smart.TreeItem||t instanceof Smart.TreeItemsGroup){if(!r.contains(t))return;t=t.path}else if("string"!=typeof t)return;const l=t.split(".");let a,o;1===l.length?(o=r._menuItems[l[0]],o?r.addBefore(n,o):r.addTo(n)):(o=r._menuItems[t],a=r._menuItems[l.slice(0,l.length-1).join(".")],o?r.addBefore(n,o):a&&a instanceof Smart.TreeItemsGroup&&r.addTo(n,a))}loadState(e){const t=this,r=t.selectedIndexes.slice(0),n=[];if(!e){if(!t.id)return void t.warn(t.localize("noId"));if(!(e=window.localStorage.getItem("smartTree"+t.id)))return}"string"==typeof e&&(e=JSON.parse(e)),e.filter&&!t.filterable&&(e.filter="");let l=e.filter!==t._state.filter;e.sorted!==t.sorted?(t.sorted=e.sorted,t._updateState("sorted",t.sorted),e.sorted?t._applyGrouping(t.$.mainContainer):t._unsortItems(t.$.mainContainer),(e.filter||l)&&(t._applyFilter(e.filter),t.$.filterInput.value=e.filter)):l&&(t._applyFilter(e.filter),t.$.filterInput.value=e.filter),t._menuItemsGroupsToExpand=[];for(let r=0;r<e.expanded.length;r++){const n=t.getItem(e.expanded[r]);n&&t._menuItemsGroupsToExpand.push(n)}t._expandItemsByDefault(!0);for(let r=0;r<e.selected.length;r++){const l=t.getItem(e.selected[r]);l&&n.push(l.path)}t.selectedIndexes=n,t._applySelection(!1,r)}moveDown(e){const t=this,r=(e=t.getItem(e)).nextElementSibling;void 0!==e&&r&&!t.sorted&&(t._moveTreeItem(e,r,2,[t]),t.filterable&&t._state.filter&&t._applyFilter(t._state.filter))}moveUp(e){const t=this,r=(e=t.getItem(e)).previousElementSibling;void 0!==e&&r&&!t.sorted&&(t._moveTreeItem(e,r,0,[t]),t.filterable&&t._state.filter&&t._applyFilter(t._state.filter))}refresh(){this._checkOverflow()}removeItem(e){const t=this;if(void 0===(e=t.getItem(e)))return;if(e instanceof Smart.TreeItemsGroup){const r=e.container;t._isContainerOpened(r.level,r)&&t._closeSubContainersTreeMode(r.level,r)}const r=t.sorted&&t.autoSort;r&&t._unsortItems(t.$.mainContainer);const n=e.closest("smart-tree-items-group");e.parentElement.removeChild(e),t._menuItems={},t._refreshItemPaths(t.$.mainContainer,!0,void 0,t.sorted&&!t.autoSort),r&&t._applyGrouping(t.$.mainContainer);const l=t._state.filter,a=t.selectedIndexes.slice(0);if(l&&t._applyFilter(l),t._checkOverflow(),t.selectedIndexes=[],t._applySelection(!0,a),delete t._treeAnimationInProgress,!n.querySelector("smart-tree-item")){const e=document.createElement("smart-tree-item");return e.innerHTML=n.innerHTML,t.addBefore(e,n),void n.remove()}}saveState(){const e=this;return e.id?window.localStorage.setItem("smartTree"+e.id,JSON.stringify(e._state)):e.warn(e.localize("noId")),JSON.parse(JSON.stringify(e._state))}select(e){const t=this;void 0!==(e=t.getItem(e))&&!e.selected&&t._canItemBeSelected(e)&&t._handleSelection(e,{type:"programmatic"})}unselect(e){void 0!==(e=this.getItem(e))&&e.selected&&!e.templateApplied&&this._handleSelection(e,{type:"programmatic"})}updateItem(e,t){if(void 0===(e=this.getItem(e))||void 0===t)return;const r=e instanceof Smart.TreeItem;for(let n in t)if(Object.prototype.hasOwnProperty.call(t,n)){if(r){if(-1===["disabled","label","level","selected","separator","shortcut","value"].indexOf(n))continue}else if(-1===["disabled","expanded","label","level","selected","separator","value"].indexOf(n))continue;e[n]=t[n]}}propertyChangedHandler(e,t,r){const n=this;switch(super.propertyChangedHandler(e,t,r),e){case"allowDrag":case"allowDrop":case"autoLoadState":case"autoSort":case"editable":case"filterInputPlaceholder":case"loadingIndicatorPlaceholder":case"selectionDisplayMode":case"showLines":case"showRootLines":case"toggleElementPosition":case"toggleMode":break;case"autoHideToggleElement":r?n.$mainContainer.addClass("hidden-arrows"):n.$mainContainer.removeClass("hidden-arrows");break;case"autoSaveState":if(!r)return;if(!n.id)return n.warn(n.localize("noId")),void(n.autoSaveState=!1);window.localStorage.setItem("smartTree"+n.id,JSON.stringify(n._state));break;case"dataSource":{const e=n.selectedIndexes.slice(0);n.selectedIndexes=[],n._menuItems={},n._processDataSource(),n._checkOverflow(),n._expandItemsByDefault(),n._applySelection(!0,e);const t=n._state.filter;t&&n._applyFilter(t);break}case"disabled":n._setFocusable(),n.$.scrollButtonNear.disabled=r,n.$.scrollButtonFar.disabled=r,r||n._updateScrollButtonVisibility();break;case"displayLoadingIndicator":r?(n._discardKeyboardHover(!0),n.$loadingIndicatorContainer.removeClass("smart-hidden")):n.$loadingIndicatorContainer.addClass("smart-hidden");break;case"expandMode":if("single"===r){const e=n._state.expanded.map((e=>Object.values(n._menuItems).find((t=>t.id===e)))),t={};for(let r=0;r<e.length;r++){const l=e[r],a=l.parentItem;if(t[a])continue;t[a]=!0;const o=e.filter((e=>e!==l&&e.parentItem===a));o.length>0&&o.forEach((e=>n.collapseItem(e)))}}break;case"filterable":!1===r&&(n._applyFilter(""),n.$.filterInput.value=""),n._checkOverflow();break;case"filterMode":n.filterable&&n._state.filter&&n._applyFilter(n._state.filter);break;case"hasThreeStates":if("checkBox"!==n.selectionMode)return;if(r)n._applySelection(!1);else{const e=(n.enableShadowDOM?n.shadowRoot:n).querySelectorAll("[indeterminate]");for(let t=0;t<e.length;t++)e[t].removeAttribute("indeterminate")}break;case"innerHTML":n.$.mainContainer.innerHTML=r,n._lazyInitItems();break;case"loadingIndicatorPosition":"center"===r?n.$loadingIndicatorPlaceHolder.addClass("smart-hidden"):n.$loadingIndicatorPlaceHolder.removeClass("smart-hidden");break;case"overflow":if("scrollbar"===n.scrollMode)return"hidden"===r?n.$.scrollViewer.$.verticalScrollBar.setAttribute("aria-hidden",!0):n.$.scrollViewer.$.verticalScrollBar.removeAttribute("aria-hidden"),void(n.$.scrollViewer.verticalScrollBarVisibility="scroll"===r?"visible":"auto");n.$.scrollViewer.scrollTop=0,"hidden"===r?(n.$scrollViewer.removeClass("scroll-buttons-shown"),n.$scrollButtonNear.addClass("smart-hidden"),n.$scrollButtonFar.addClass("smart-hidden")):(n.$.scrollButtonNear.disabled=n.disabled,n.$.scrollButtonFar.disabled=n.disabled,"auto"===r?(n.$scrollButtonNear.addClass("smart-hidden"),n.$scrollButtonFar.addClass("smart-hidden"),n._checkOverflow()):(n.$scrollViewer.addClass("scroll-buttons-shown"),n.$scrollViewer.removeClass("one-button-shown"),n.$scrollButtonNear.removeClass("smart-hidden"),n.$scrollButtonFar.removeClass("smart-hidden"),n._updateScrollButtonVisibility())),n.$.scrollViewer.refresh();break;case"rightToLeft":{let e,t;r?(e="paddingLeft",t="paddingRight"):(e="paddingRight",t="paddingLeft");for(let r in n._menuItems)if(Object.prototype.hasOwnProperty.call(n._menuItems,r)){const l=n._menuItems[r],a=l.firstElementChild;a.style[e]="",n._setIndentation(a,l.level,t)}break}case"scrollMode":if("hidden"===n.overflow)return;if(n.$.scrollViewer.scrollTop=0,"scrollButtons"===r)return"scroll"===n.overflow&&(n.$scrollViewer.addClass("scroll-buttons-shown"),n.$scrollButtonNear.removeClass("smart-hidden"),n.$scrollButtonFar.removeClass("smart-hidden")),n.$.scrollViewer.$.verticalScrollBar.setAttribute("aria-hidden",!0),n.$.scrollViewer.verticalScrollBarVisibility="auto",void n._checkOverflow();n.$.scrollViewer.$.verticalScrollBar.removeAttribute("aria-hidden"),n.$scrollViewer.removeClass("scroll-buttons-shown"),n.$scrollViewer.removeClass("one-button-shown"),n.$scrollButtonNear.addClass("smart-hidden"),n.$scrollButtonFar.addClass("smart-hidden"),"auto"===n.overflow?n.$.scrollViewer.verticalScrollBarVisibility="auto":n.$.scrollViewer.verticalScrollBarVisibility="visible";break;case"selectedIndexes":n._applySelection(!1,t);break;case"selectionMode":if(n.setAttribute("aria-multiselectable",-1!==["oneOrManyExtended","zeroOrMany","oneOrMany","checkBox","radioButton"].indexOf(r)),void 0===n._menuItems[0])return;if("one"===t&&"none"!==r&&"checkBox"!==r&&"radioButton"!==r||-1!==t.indexOf("oneOrMany")&&-1!==r.indexOf("oneOrMany")||"none"===t&&(-1!==r.indexOf("zero")||"checkBox"===r)||"zeroOrMany"===r&&"checkBox"!==t||"radioButton"===t&&-1!==r.indexOf("Many")||!n.hasThreeStates&&("checkBox"===r||"checkBox"===t&&"zeroOrMany"===r))return n._lastSelectedItem="one"===r||"oneOrManyExtended"===r?n._menuItems[n.selectedIndexes[n.selectedIndexes.length-1]]:void 0,void n._applyAriaSelected();if(n.hasThreeStates&&"checkBox"===t){const e=(n.enableShadowDOM?n.shadowRoot:n).querySelectorAll("[indeterminate]");for(let t=0;t<e.length;t++)e[t].removeAttribute("indeterminate")}n._applySelection(!1);break;case"sort":if(!n.sorted)return;n._refreshSorting();break;case"sortDirection":n.sorted&&!n.sort&&(n._unsortItems(n.$.mainContainer),n._applyGrouping(n.$.mainContainer));break;case"sorted":{if(!r&&!n.autoSort)return n._refreshItemPathsAndSelection(),void n._updateState("sorted",!1);r?n._applyGrouping(n.$.mainContainer):n._unsortItems(n.$.mainContainer);const e=n._state.filter;e&&n._applyFilter(e),n._updateState("sorted",r),n._checkOverflow();break}case"unfocusable":n._setFocusable()}}_addDragFeedback(){const e=this,t=document.createElement("div");return t.className="smart-tree-item-feedback",t.setAttribute("parent-tree-id",e.id),e.theme&&t.setAttribute("theme",e.theme),e.dragFeedbackFormatFunction?t.innerHTML=e.dragFeedbackFormatFunction(e._dragDetails.Items):1===e._dragDetails.Items.length?t.innerHTML=e._dragDetails.Item.label:(t.classList.add("multiple"),t.innerHTML="&#xf0c5;"),document.body.appendChild(t),t}_applyFilter(e){const t=this;function r(e,t){e?(t.hidden&&t.$.removeClass("smart-hidden"),t.hidden=!1):(t.hidden||t.$.addClass("smart-hidden"),t.hidden=!0)}if(""===e&&!t.hasAttribute("filter-applied"))return;const n=Array.from(t.$.mainContainer.getElementsByClassName("last-filtered-child"));for(let e=0;e<n.length;e++)n[e].$.removeClass("last-filtered-child");!function n(l,a){let o,s=!1,i=0;a=Array.from(a);for(let l=0;l<a.length;l++){const d=a[l];d instanceof Smart.TreeItem?r(t._findItem(d,e),d):n(d,d.itemContainer.children),d.hidden||(i++,o=d),s=s||!d.hidden}if(l!==t.$.mainContainer){const n=t._findItem(l,e);r(s||n,l),s&&null===n?l.$.addClass("filtered-child"):l.$.removeClass("filtered-child"),!s&&a.length>0?(l.hiddenChildren=!0,l.$.addClass("hidden-children"),t.collapseItem(l,void 0,!1)):(l.hiddenChildren=!1,l.$.removeClass("hidden-children"))}""!==e&&i>0&&o.$.addClass("last-filtered-child")}(t.$.mainContainer,t.$.mainContainer.children),""!==e?t.setAttribute("filter-applied",""):t.removeAttribute("filter-applied"),t._updateState("filter",e),t._checkOverflow()}_applyHierarchicalSelection(e,t){const r=this,n=e!==r.$.mainContainer,l=n?e.itemContainer.children:e.children;let a=0,o=0;for(let s=0;s<l.length;s++){const i=l[s];e.selected&&i.set("selected",!0),i instanceof Smart.TreeItemsGroup?r._applyHierarchicalSelection(i,t):i.selected&&t.push(i.path),n&&(i.selected?a++:i.hasAttribute("indeterminate")&&o++)}n&&(r._setThreeStateCheckbox(e,a,o),e.selected&&t.push(e.path))}_applyRadioButtonSelection(e,t,r){const n=this,l=e!==n.$.mainContainer?e.itemContainer.children:e.children,a=[];let o;for(let e=0;e<l.length;e++){const o=l[e];o instanceof Smart.TreeItemsGroup&&n._applyRadioButtonSelection(o,t,r),o.set("selected",!1),-1!==t.indexOf(o.path)&&a.push(o)}o=0===a.length?l[0]:a[a.length-1],o.set("selected",!0),r.push(o.path)}_applySelection(e,t){const r=this;let n=r.selectedIndexes.slice(0);function l(e){const t=Object.values(r._menuItems).filter((t=>t.level===e));if(0!==t.length){for(let e=0;e<t.length;e++)if(r._canItemBeSelected(t[e]))return t[e].path;return l(e+1)}}if(void 0===t&&(t=n.slice(0)),void 0===r._menuItems[0])return r.selectedIndexes=[],r._lastSelectedItem=void 0,void(r.isRendered&&JSON.stringify(t)!==JSON.stringify([])&&r.$.fireEvent("change",{selectedIndexes:r.selectedIndexes,oldSelectedIndexes:t}));const a=r.selectionMode,o=Array.from((r.shadowRoot||r).querySelectorAll("smart-tree-item[selected], smart-tree-items-group[selected]"));for(let e=n.length-1;e>=0;e--){const t=r._menuItems[n[e]];void 0!==t&&r._canItemBeSelected(t)||n.splice(e,1)}if(e)for(let e=0;e<o.length;e++)r._canItemBeSelected(o[e])?-1===n.indexOf(o[e].path)&&n.push(o[e].path):o[e].set("selected",!1);else{for(let e=0;e<o.length;e++)o[e].set("selected",!1);o.length=0}switch(r._sortPathCollection(n),a){case"none":n.length=0;for(let e=0;e<o.length;e++)o[e].set("selected",!1);break;case"one":case"zeroAndOne":case"zeroOrOne":"one"===a&&0===n.length&&n.push(l(1));for(let e=0;e<n.length;e++){const t=r._menuItems[n[e]];if(e===n.length-1){t.set("selected",!0),n=[n[e]];break}-1!==o.indexOf(t)&&t.set("selected",!1)}break;case"oneOrMany":case"oneOrManyExtended":0===n.length&&n.push(l(1));for(let e=0;e<n.length;e++)r._menuItems[n[e]].set("selected",!0);break;case"zeroOrMany":case"checkBox":for(let e=0;e<n.length;e++)r._menuItems[n[e]].set("selected",!0);if("checkBox"===a&&r.hasThreeStates){const e=[];r._applyHierarchicalSelection(r.$.mainContainer,e),r._sortPathCollection(e),n=e}break;case"radioButton":{const e=[];r._applyRadioButtonSelection(r.$.mainContainer,n,e),r._sortPathCollection(e),n=e;break}}r.selectedIndexes=n,r._updateState("selected"),r._lastSelectedItem="one"===a||"oneOrManyExtended"===a?r._menuItems[n[n.length-1]]:void 0,r.isRendered&&!1!==arguments[2]&&JSON.stringify(t)!==JSON.stringify(n)&&r.$.fireEvent("change",{selectedIndexes:r.selectedIndexes,oldSelectedIndexes:t}),r._applyAriaSelected()}_applyAriaSelected(){const e=this,t=e.selectionMode;for(let r in e._menuItems){const n=e._menuItems[r];n.selected?n.setAttribute("aria-selected",!0):e._canItemBeSelected(n)&&-1!==["oneOrManyExtended","zeroOrMany","oneOrMany","checkBox","radioButton"].indexOf(t)?n.setAttribute("aria-selected",!1):n.removeAttribute("aria-selected")}}_autoLoadState(e){const t=this,r=[];for(let e=0;e<t._menuItemsGroupsToExpand.length;e++)t._menuItemsGroupsToExpand[e].set("expanded",!1);t._menuItemsGroupsToExpand=[];for(let r=0;r<e.expanded.length;r++){const n=t.getItem(e.expanded[r]);n&&t._menuItemsGroupsToExpand.push(n)}t.filterable&&e.filter&&(t._applyFilter(e.filter),t.$.filterInput.value=e.filter);for(let n=0;n<e.selected.length;n++){const l=t.getItem(e.selected[n]);l&&r.push(l.path)}t.selectedIndexes=r}_blurHandler(){this._discardKeyboardHover(!0)}_canItemBeHovered(e){const t=e.level;return!1===e.disabled&&!0!==e.templateApplied&&!0!==e.hidden&&(1===t||t>1&&this._isContainerOpened(t,e.parentElement.container)&&e.getBoundingClientRect().height>0)}_canItemBeSelected(e,t){return!(!0!==t&&"leaf"===this.selectionTarget&&e instanceof Smart.TreeItemsGroup)&&!1===e.disabled&&!0!==e.templateApplied}_checkOverflow(){const e=this,t=e.$.scrollViewer,r=e.overflow;if("scrollbar"===e.scrollMode||"hidden"===r)return void t.refresh();const n=t.scrollTop;"auto"===r&&(t.$.removeClass("scroll-buttons-shown"),t.$.removeClass("one-button-shown"),e.$scrollButtonNear.addClass("smart-hidden"),e.$scrollButtonFar.addClass("smart-hidden"));const l=Math.round(t.$.scrollViewerContentContainer.offsetHeight)>Math.round(t.$.scrollViewerContainer.offsetHeight),a=Math.round(t.scrollTop)>0,o=Math.round(t.$.scrollViewerContainer.offsetHeight+t.scrollTop)<Math.round(t.$.scrollViewerContentContainer.offsetHeight);l?"auto"===r?(t.$.addClass("scroll-buttons-shown"),a&&e.$scrollButtonNear.removeClass("smart-hidden"),o&&e.$scrollButtonFar.removeClass("smart-hidden"),!1===(a&&o)&&t.$.addClass("one-button-shown"),e.disabled||(e.$.scrollButtonNear.disabled=!1,e.$.scrollButtonFar.disabled=!1),t.scrollTop=n):(e.$scrollButtonNear.removeClass("smart-hidden"),e.$scrollButtonFar.removeClass("smart-hidden"),e.disabled?(e.$.scrollButtonNear.disabled=!0,e.$.scrollButtonFar.disabled=!0):(e.$.scrollButtonNear.disabled=!a,e.$.scrollButtonFar.disabled=!o)):"scroll"===r&&(e.$.scrollButtonNear.disabled=!0,e.$.scrollButtonFar.disabled=!0),t.refresh()}_createElement(){const e=this,t=window.getComputedStyle(e.$.scrollViewer);if(e.setAttribute("role","tree"),e.setAttribute("aria-multiselectable",-1!==["oneOrManyExtended","zeroOrMany","oneOrMany","checkBox","radioButton"].indexOf(e.selectionMode)),e.setAttribute("aria-orientation","vertical"),e.$.scrollViewer.onVerticalChange=e._verticalScrollbarHandler,e.isRendered||Object.defineProperty(e,"dataSource",{get:function(){return e.context===e?e.properties.dataSource.value:e._getDataSource()},set(t){e.updateProperty(e,e._properties.dataSource,t)}}),e.id||!e.autoLoadState&&!e.autoSaveState||(e.warn(e.localize("noId")),e.autoLoadState=!1,e.autoSaveState=!1),e.mode="tree",e._element="tree",e._isMobile=Smart.Utilities.Core.isMobile,e._edgeMacFF=!1,e._autoScrollCoefficient=Smart.Utilities.Core.Browser.Firefox?4:Smart.Utilities.Core.Browser.Edge?8:2,e._scrollViewerPadding=parseFloat(t.paddingTop)+parseFloat(t.paddingBottom)||0,e._state={expanded:[],filter:"",selected:[]},e._dblclickObject={numberOfClicks:0},e.autoHideToggleElement&&e.$mainContainer.addClass("hidden-arrows"),e.disabled&&(e.$.scrollButtonNear.disabled=!0,e.$.scrollButtonFar.disabled=!0),"scrollbar"===e.scrollMode&&"scroll"===e.overflow&&(e.$.scrollViewer.verticalScrollBarVisibility="visible"),null===e.dataSource&&e.$.mainContainer.firstElementChild instanceof HTMLUListElement&&e._processUList(),e.isRendered)return e._menuItems={},void(null===e.dataSource?e._processHTML(e.$.mainContainer,1):e._processDataSource());const r=(e.shadowRoot||e).querySelectorAll("smart-tree-item, smart-tree-items-group"),n=function(){let t;e.autoLoadState&&(t=window.localStorage.getItem("smartTree"+e.id),t&&(t=JSON.parse(t),e.sorted=t.sorted)),e._setFocusable(),e._menuItems={},null===e.dataSource?e._processHTML(e.$.mainContainer,1):e._processDataSource(),"scrollButtons"!==e.scrollMode&&"hidden"!==e.overflow||e.$.scrollViewer.$.verticalScrollBar.setAttribute("aria-hidden",!0),"scrollButtons"===e.scrollMode&&"scroll"===e.overflow&&(e.$scrollViewer.addClass("scroll-buttons-shown"),e.$scrollButtonNear.removeClass("smart-hidden"),e.$scrollButtonFar.removeClass("smart-hidden"),e._updateScrollButtonVisibility()),e._checkOverflow(),t&&e._autoLoadState(t),e._expandItemsByDefault(),e._applySelection(!0),e._updateState("sorted",e.sorted),e.displayLoadingIndicator&&e.$loadingIndicatorContainer.removeClass("smart-hidden"),"center"!==e.loadingIndicatorPosition&&e.$loadingIndicatorPlaceHolder.removeClass("smart-hidden"),e.__onCompleted&&(e._onCompleted=e.__onCompleted,e.__onCompleted=null,e._onCompleted())};0===r.length||e.enableShadowDOM||e.isInShadowDOM?n():(e._onCompleted&&(e.__onCompleted=e._onCompleted,e._onCompleted=null),e._ensureItemsReady(r,n))}appendChild(e){const t=this;if(!t.isCompleted){const e=Array.prototype.slice.call(arguments,2);return HTMLElement.prototype.appendChild.apply(t,e.concat(Array.prototype.slice.call(arguments)))}t.$.mainContainer&&t.$.mainContainer.appendChild(e)}_dblclickHandler(e,t,r){"dblclick"!==this.toggleMode||e instanceof Smart.TreeItem||t||this._menuItemsGroupSelectionHandler(e,r)}_discardKeyboardHover(e,t){const r=this;!t&&r._hoveredViaKeyboard&&(!e&&r._hoveredViaKeyboard instanceof Smart.MenuItemsGroup&&r._isContainerOpened(r._hoveredViaKeyboard.level+1,r._hoveredViaKeyboard.container)||(r._hoveredViaKeyboard.removeAttribute("focus"),r._hoveredViaKeyboard=void 0))}_documentUpHandler(e){if("pointercancel"===e.originalEvent.type)return;const t=this,r=t._downTimeoutInfo,n=t._dragDetails;!r||n&&n.FeedbackShown||(clearTimeout(r.timeout),t.$.scrollViewer.scrollTop!==r.scrollTop&&t.getBoundingClientRect().top===r.top||t._continueSelection(r.target,r.event)),delete t._downTimeoutInfo;const l=t._downItem,a=t.isInShadowDOM?e.originalEvent.composedPath()[0]:e.originalEvent.target;if(delete t._downItem,t._editedItem&&!t._editInputDown&&(!t._isMobile&&a!==t.$.editInput||t._isMobile&&t.getRootNode().elementFromPoint(e.clientX,e.clientY)!==t.$.editInput))return void t._endEditing();if(delete t._editInputDown,l){const r=a.closest("smart-tree-item")||a.closest("smart-tree-items-group");!r||!r.selected||r!==l||t._dragDetails&&t._dragDetails.FeedbackShown||r instanceof Smart.TreeItemsGroup&&(a.closest(".smart-tree-items-group-arrow")||a===r.container||a===r.container.firstElementChild)||t._handleSelection(r,e)}if(!n)return;const o=Smart.Tree.hoveredTree,s=Smart.Tree.hoveredItem;if(delete t._dragDetails,delete Smart.Tree.treeItemDragged,delete Smart.Tree.hoveredTree,delete Smart.Tree.hoveredItem,t.$.scrollViewer._scrollView.disableSwipeScroll=!1,!n.FeedbackShown)return;const i=o||t.getRootNode().elementFromPoint(e.clientX,e.clientY);let d;document.body.classList.remove("smart-dragging"),document.body.removeChild(n.Feedback),o&&clearInterval(o._dragInterval);const c=n.Item,m=n.Items,u=n.ValidItems;if(!i)return;if(!s||c.contains(s))return void t.$.fireEvent("dragEnd",{item:c,items:m,target:i,data:n,previousContainer:t,container:o||i,originalEvent:e});if(!o||!o.allowDrop||o.disabled)return;const p=[o];let h;if(s.classList.remove("drop-target"),s.classList.contains("top")?(s.classList.remove("top"),h="top",d=0):s.classList.contains("bottom")?(s.classList.remove("bottom"),h="bottom",d=2):(h="inside",d=1),n.DropDetails={item:s,position:h},o!==t)p.push(t);else if(n.ValidateOnDrop)for(let e=0;e<u.length;e++)if(u[e].contains(s))return;if(!t.$.fireEvent("dragEnd",{item:c,items:m,target:s,data:n,previousContainer:t,container:o,originalEvent:e}).defaultPrevented){o.sorted&&o.autoSort&&o._unsortItems(o.$.mainContainer);for(let e=0;e<u.length;e++)t._moveTreeItem(u[e],s,d,p);o.sorted&&o.autoSort&&o._applyGrouping(o.$.mainContainer),o!==t&&o._state.filter&&o._applyFilter(o._state.filter)}}_editInputBlurHandler(){this._endEditing()}_endEditing(e){const t=this,r=t._editedItem;if(!r)return;if(delete t._editedItem,t.$editInput.addClass("smart-hidden"),t.focus(),e)return;const n=t.$.editInput.value,l=t.sorted&&t.autoSort,a=t._state.filter;n!==r.label&&(r.set("label",n),r.setAttribute("aria-label",n),r.firstElementChild.firstElementChild.firstElementChild.innerHTML=n,l&&(t._unsortItems(t.$.mainContainer),t._applyGrouping(t.$.mainContainer)),a&&t._applyFilter(a))}_ensureVisible(e){const t=this;t._ensureVisibleTreeMode(e,e.getBoundingClientRect(),t.$.scrollViewer,t.$.scrollViewer.getBoundingClientRect(),t._scrollViewerPadding),t._ensureVisibleCallback&&t._ensureVisibleCallback(e)}_pointeroverHandler(e){const t=(this.isInShadowDOM?e.composedPath()[0]:e.target).closest(".smart-tree-item-label-element>span");if(!t)return;const r=this.$.container.querySelector(".tooltip");r&&(r.classList.remove("tooltip"),r.removeAttribute("title")),t.scrollWidth>t.offsetWidth&&(t.classList.add("tooltip"),t.title=t.innerText)}_filterInputKeyupHandler(e){const t=this;if(t._filterTimer&&clearTimeout(t._filterTimer),t.filterOnEnter){if("Enter"!==e.key)return;{const e=t.context;t.context=t,t._applyFilter(t.$.filterInput.value,t._view),t._checkOverflow(),t.context=e}}t._filterTimer=setTimeout((function(){const e=t.context;t.context=t,t._applyFilter(t.$.filterInput.value,t._view),t._checkOverflow(),t.context=e}),300)}_filterInputKeydownHandler(e){if("PageDown"!==e.key)return void("PageUp"===e.key&&(e.preventDefault(),e.stopPropagation()));const t=this;let r;if(e.preventDefault(),e.stopPropagation(),t.selectedIndexes.length>0){const e=t.selectedIndexes.slice(0);r=t._lastSelectedItem||t._menuItems[t.selectedIndexes[t.selectedIndexes.length-1]],"checkBox"!==t.selectionMode&&"radioButton"!==t.selectionMode&&(t.selectedIndexes=[r.path],t._applySelection(!1,e)),t.focus()}else r=t._getFirstEnabledChild(t.$.mainContainer),t.focus(),r&&t._hoverViaKeyboard(r);t._ensureVisible(r)}_focusHandler(){const e=this;e.selectedIndexes.length>0&&!e._hoveredViaKeyboard&&(e._lastSelectedItem?e._hoverViaKeyboard(e._lastSelectedItem,!1,void 0,!1):e._hoverViaKeyboard(e._menuItems[e.selectedIndexes[e.selectedIndexes.length-1]],!1,void 0,!1))}_getDataSource(){const e=[];return function e(t,r){for(let n=0;n<t.length;n++){const l=t[n],a={label:l.label};l.disabled&&(a.disabled=!0),l.selected&&(a.selected=!0),l.separator&&(a.separator=!0),null!==l.value&&(a.value=l.value),l instanceof Smart.TreeItem?l.shortcut&&(a.shortcut=l.shortcut):(l.expanded&&(a.expanded=!0),a.items=[],e(l.itemContainer.children,a.items)),r.push(a)}}(this.$.mainContainer.children,e),e}_handleHierarchicalSelection(e,t){const r=this;let n=e;for(e.selected?(e.set("selected",!1),e.setAttribute("aria-selected",!1)):(e.set("selected",!0),e.setAttribute("aria-selected",!0),e.removeAttribute("indeterminate"));n.parentItem;){const e=n.parentItem,t=e.itemContainer.children;let l=0,a=0;for(let e=0;e<t.length;e++)t[e].selected?l++:t[e].hasAttribute("indeterminate")&&a++;r._setThreeStateCheckbox(e,l,a),n=e}e instanceof Smart.TreeItemsGroup&&function e(t,r){const n=t.itemContainer.children;for(let t=0;t<n.length;t++){const l=n[t];l.set("selected",r),l.setAttribute("aria-selected",r),l.removeAttribute("indeterminate"),l instanceof Smart.TreeItemsGroup&&e(l,r)}}(e,e.selected),t.length=0;const l=Array.from((r.enableShadowDOM?r.shadowRoot:r).querySelectorAll("[selected]"));for(let e=0;e<l.length;e++)t.push(l[e].path);r._sortPathCollection(t)}_handleSelection(e,t){const r=this,n=r.selectionMode;if("none"===n||"programmatic"!==t.type&&!r._canItemBeSelected(e))return;const l=e.selected;if(l&&"down"===t.type)return;const a=r.selectedIndexes.slice(0);let o=a.slice(0);switch(n){case"one":case"zeroAndOne":if(l)return;r._menuItems[o[0]]&&(r._menuItems[o[0]].set("selected",!1),r._menuItems[o[0]].removeAttribute("aria-selected")),r.selectedIndexes=[e.path],e.set("selected",!0),e.setAttribute("aria-selected",!0),r._lastSelectedItem=e;break;case"zeroOrOne":l?(r.selectedIndexes=[],e.set("selected",!1),e.removeAttribute("aria-selected")):(void 0!==o[0]&&(r._menuItems[o[0]].set("selected",!1),r._menuItems[o[0]].removeAttribute("aria-selected")),r.selectedIndexes=[e.path],e.set("selected",!0),e.setAttribute("aria-selected",!0));break;case"oneOrMany":case"zeroOrMany":if(l){if(1===o.length&&"zeroOrMany"!==n)return;o.splice(o.indexOf(e.path),1),e.set("selected",!1),e.setAttribute("aria-selected",!1)}else o.push(e.path),r._sortPathCollection(o),e.set("selected",!0),e.setAttribute("aria-selected",!0);r.selectedIndexes=o;break;case"oneOrManyExtended":{const n=t.ctrlKey||t.metaKey,l=t.shiftKey;if(!n&&!l||l&&e===r._lastSelectedItem){for(let e=0;e<o.length;e++)r._menuItems[o[e]].set("selected",!1),r._menuItems[o[e]].setAttribute("aria-selected",!1);o=[e.path],e.set("selected",!0),e.setAttribute("aria-selected",!0),r._lastSelectedItem=e}else if(n)e.selected&&o.length>1?(o.splice(o.indexOf(e.path),1),e.set("selected",!1),e.setAttribute("aria-selected",!1)):e.selected||(o.push(e.path),r._sortPathCollection(o),e.set("selected",!0),e.setAttribute("aria-selected",!0),r._lastSelectedItem=e);else if(l){for(let e=0;e<o.length;e++)r._menuItems[o[e]].set("selected",!1),r._menuItems[o[e]].setAttribute("aria-selected",!1);o=r._selectItemRange(r._lastSelectedItem,e)}r.selectedIndexes=o;break}case"checkBox":r.hasThreeStates?r._handleHierarchicalSelection(e,o):l?(o.splice(o.indexOf(e.path),1),e.set("selected",!1),e.setAttribute("aria-selected",!1)):(o.push(e.path),r._sortPathCollection(o),e.set("selected",!0),e.setAttribute("aria-selected",!0)),r.selectedIndexes=o;break;case"radioButton":{if(e.selected)return;let t;for(let r=0;r<e.parentElement.children.length;r++){const n=e.parentElement.children[r];if(n.selected){t=n;break}}const n=o.indexOf(t.path);t.set("selected",!1),e.setAttribute("aria-selected",!1),e.set("selected",!0),e.setAttribute("aria-selected",!0),o.splice(n,1),o.push(e.path),r._sortPathCollection(o),r.selectedIndexes=o;break}}if(r._discardKeyboardHover(!0),r._hoverViaKeyboard(e,!1,void 0,!r._treeAnimationInProgress),r._updateState("selected"),JSON.stringify(a)!==JSON.stringify(r.selectedIndexes)){if(r.ownerElement&&!r.ownerElement.isRendered)return;r.$.fireEvent("change",{item:e,selectedIndexes:r.selectedIndexes,oldSelectedIndexes:a})}}_hoverViaKeyboard(e,t,r,n){if(!e)return;const l=this;e.setAttribute("focus",""),l._hoveredViaKeyboard=e,!1!==n&&l._ensureVisible(e),t&&l._handleSelection(e,r),l._hoverViaKeyboardCallback&&l._hoverViaKeyboardCallback(e)}_keydownHandler(e){const t=this,r=e.key;if(t._editedItem)return void("Enter"===r?t._endEditing():"Escape"===r&&t._endEditing(!0));if(t.getRootNode().activeElement!==t||-1===["ArrowDown","ArrowLeft","ArrowRight","ArrowUp","End","Enter","F2","Home","PageDown","PageUp"," "].indexOf(r)||t.disabled||t.displayLoadingIndicator)return;"Enter"!==r&&e.preventDefault();const n=Array.from(t.$.mainContainer.querySelectorAll("smart-tree-item, smart-tree-items-group")),l="one"===t.selectionMode||"oneOrManyExtended"===t.selectionMode&&!e.ctrlKey&&!e.metaKey,a=t.$.mainContainer.querySelector("[focus]");function o(r){for(let o=r;o<n.length;o++){const r=n[o];if(t._canItemBeHovered(r)){if(a){if(a===r)break;a.removeAttribute("focus")}t._hoverViaKeyboard(r,l,e);break}}}function s(r){for(let o=r;o>=0;o--){const r=n[o];if(t._canItemBeHovered(r)){if(a){if(a===r)break;a.removeAttribute("focus")}t._hoverViaKeyboard(r,l,e);break}}}function i(){a.level>1&&t._canItemBeSelected(a.parentItem)&&(a.removeAttribute("focus"),t._hoverViaKeyboard(a.parentItem,l,e))}let d;switch(r){case"ArrowDown":d=a?n.indexOf(a)+1:0,o(d);break;case"ArrowLeft":if(!a)return;if(a instanceof Smart.TreeItem)i();else{if(t._isContainerOpened(a.level+1,a.container))return void t._closeSubContainersTreeMode(a.level+1,a.container,!0,!0);i()}break;case"ArrowRight":if(!a||a instanceof Smart.TreeItem)return;if(t._isContainerOpened(a.level+1,a.container)){const r=t._getFirstEnabledChild(a.itemContainer);r&&(a.removeAttribute("focus"),t._hoverViaKeyboard(r,l,e))}else t._menuItemsGroupSelectionHandler(a,{target:a,type:"keydown"});break;case"ArrowUp":d=a?n.indexOf(a)-1:n.length-1,s(d);break;case"End":s(n.length-1);break;case"Enter":a&&a instanceof Smart.TreeItemsGroup&&t._menuItemsGroupSelectionHandler(a,{target:a,type:"keydown"});break;case"F2":t.editable&&t._startEditing(a);break;case"Home":o(0);break;case"PageDown":t._pageDownHandler(n,a,l,e);break;case"PageUp":t._pageUpHandler(n,a,l,e);break;case" ":a&&t._handleSelection(a,e)}}_mainContainerSwipeHandler(e){Smart.Tree.treeItemDragged&&e.stopPropagation()}_menuItemsGroupSelectionHandler(e,t,r){const n=this,l=n.toggleMode,a=!!t.originalEvent&&t.originalEvent.target.classList.contains("smart-tree-items-group-arrow"),o=e.container;if(n._waitAnimation&&n._treeAnimationInProgress)return;if("down"!==t.type||a||"dblclick"===l&&1!==n._dblclickObject.numberOfClicks||n._handleSelection(e,t),"down"===t.type&&!a&&("dblclick"===l&&2!==n._dblclickObject.numberOfClicks||"click"===l&&n._dblclickObject.numberOfClicks>1||"arrow"===l)||e.hiddenChildren)return;const s=o.level;let i=n.hasAnimation;if("keydown"===t.type&&n._discardKeyboardHover(),n._treeAnimationInProgress&&(o.removeEventListener("transitionend",n._transitionendHandlerExpand),o.removeEventListener("transitionend",n._transitionendHandlerCollapse)),n._isContainerOpened(s,o))n._closeSubContainersTreeMode(s,o,!0,!1!==r);else{if(n.$.fireEvent("expanding",{item:e,label:e.label,path:e.path,value:e.value,children:e.itemContainer.children}).defaultPrevented)return;if(n._handleSingleExpandMode(e),i&&("expand"!==t.type&&(n._ensureVisibleOnTransitionend=e),n._expandSection(o)),o.$.removeClass("smart-visibility-hidden"),"keydown"===t.type&&(e.setAttribute("focus",""),n._hoveredViaKeyboard=e),e.$.addClass("smart-tree-items-group-opened"),e.$.addClass("smart-tree-items-group-expanded"),n._addOpenedContainer(s,o),void 0===t.type&&n._hoverViaKeyboard(n._getFirstEnabledChild(e.itemContainer)),!1!==r){const t={item:e,label:e.label,path:e.path,value:e.value,children:e.itemContainer.children};n.toggleCallback?(t.type="expand",n.toggleCallback(t)):n.$.fireEvent("expand",t)}}i||(n._checkOverflow(),"expand"!==t.type&&n._ensureVisible(e))}_handleSingleExpandMode(e){const t=this;if("single"!==t.expandMode)return;const r=e.parentItem,n=t._state.expanded.map((e=>Object.values(t._menuItems).find((t=>t.id===e)))).filter((e=>e.parentItem===r));n.length>0&&n.forEach((e=>t.collapseItem(e)))}_mouseenterHandler(){const e=this;e.autoHideToggleElement&&e.$mainContainer.removeClass("hidden-arrows"),Smart.Tree.treeItemDragged&&e.allowDrop&&!e.disabled&&(Smart.Tree.hoveredTree=e)}_mouseleaveHandler(){const e=this;if(e.autoHideToggleElement&&e.$mainContainer.addClass("hidden-arrows"),Smart.Tree.treeItemDragged){Smart.Tree.hoveredTree&&(clearInterval(Smart.Tree.hoveredTree._dragInterval),delete Smart.Tree.hoveredTree);const e=Smart.Tree.hoveredItem;e&&(e.classList.remove("drop-target"),e.classList.remove("top"),e.classList.remove("bottom"),delete Smart.Tree.hoveredItem)}}_moveHandler(e){const t=this,r=t._dragDetails;if(!r)return;if(!r.FeedbackShown){if(!(Math.abs(r.StartPosition.left-e.pageX)>5||Math.abs(r.StartPosition.top-e.pageY)>5))return;if(t.$.fireEvent("dragStart",{item:r.Item,items:r.Items,data:r,container:t,previousContainer:t,originalEvent:r.OriginalEvent}).defaultPrevented)return delete t._dragDetails,delete Smart.Tree.treeItemDragged,delete Smart.Tree.hoveredTree,delete Smart.Tree.hoveredItem,void(t.$.scrollViewer._scrollView.disableSwipeScroll=!1);document.body.classList.add("smart-dragging"),r.Feedback=t._addDragFeedback(),r.FeedbackShown=!0}const n=t.dragOffset;let l,a,o;if(t.$.fireEvent("dragging",{item:r.Item,items:r.Items,data:r,originalEvent:e}),r.Feedback.style.left=e.pageX+n[0]+"px",r.Feedback.style.top=e.pageY+n[1]+"px",t._isMobile){const r=Smart.Tree.hoveredItem;r&&(r.classList.remove("drop-target"),r.classList.remove("top"),r.classList.remove("bottom"),delete Smart.Tree.hoveredItem);const n=t.getRootNode().elementFromPoint(e.clientX,e.clientY);Smart.Tree.hoveredTree&&(clearInterval(Smart.Tree.hoveredTree._dragInterval),delete Smart.Tree.hoveredTree),n&&(l=n.closest("smart-tree"),l&&l.allowDrop&&(Smart.Tree.hoveredTree=l,a=n.closest("smart-tree-item")||n.closest("smart-tree-items-group"),a?o=a:a=n))}if(l=Smart.Tree.hoveredTree,!l)return;const s=l.filterable?l.$.filterInput.offsetHeight+10:0;if(clearInterval(l._dragInterval),l._dragInterval=setInterval((function(){const r=l.getBoundingClientRect();l.$.scrollViewer.scrollHeight>0&&r.left<=e.clientX&&r.left+r.width>=e.clientX?e.clientY>=r.top+s&&e.clientY<=r.top+20+s?(l.$.scrollViewer.scrollTop-=t._autoScrollCoefficient,"scrollButtons"===l.scrollMode&&l._updateScrollButtonVisibility()):e.clientY>=r.top+r.height-20&&e.clientY<=r.top+r.height?(l.$.scrollViewer.scrollTop+=t._autoScrollCoefficient,"scrollButtons"===l.scrollMode&&l._updateScrollButtonVisibility()):clearInterval(l._dragInterval):clearInterval(l._dragInterval)}),1),t._isMobile||(a=e.originalEvent.target,a&&a.enableShadowDOM&&(a=e.originalEvent.composedPath()[0]),a&&a.closest&&(o=a.closest("smart-tree-item")||a.closest("smart-tree-items-group"))),o){if(Smart.Tree.hoveredItem&&o!==Smart.Tree.hoveredItem&&(Smart.Tree.hoveredItem.classList.remove("drop-target"),Smart.Tree.hoveredItem.classList.remove("top"),Smart.Tree.hoveredItem.classList.remove("bottom")),Smart.Tree.hoveredItem=o,r.Item.contains(o))return;const t=o.getBoundingClientRect();o instanceof Smart.TreeItem?e.clientY-t.top<=t.height/2?(o.classList.remove("bottom"),o.classList.add("top")):(o.classList.remove("top"),o.classList.add("bottom")):e.clientY-t.top<=10?(o.classList.remove("bottom"),o.classList.add("top")):!o.expanded&&t.bottom-e.clientY<=10?(o.classList.remove("top"),o.classList.add("bottom")):(o.classList.remove("top"),o.classList.remove("bottom")),o.classList.add("drop-target")}else if(Smart.Tree.hoveredItem&&(Smart.Tree.hoveredItem.classList.remove("drop-target"),Smart.Tree.hoveredItem.classList.remove("top"),Smart.Tree.hoveredItem.classList.remove("bottom")),a===l.$.scrollViewer.$.scrollViewerContainer)if(l._menuItems[0]){let e=l.$.mainContainer.lastElementChild,t=l.$.mainContainer.childElementCount-1;for(;e.hidden&&(t--,e=l.$.mainContainer.children[t],e););if(e){if(r.Item===e)return;Smart.Tree.hoveredItem=e,Smart.Tree.hoveredItem.classList.add("bottom")}else Smart.Tree.hoveredItem=l.$.container;Smart.Tree.hoveredItem.classList.add("drop-target")}else Smart.Tree.hoveredItem=l.$.container,Smart.Tree.hoveredItem.classList.add("drop-target");else delete Smart.Tree.hoveredItem}_moveSubItems(e,t,r){const n=this;for(let l=0;l<e.length;l++){const a=e[l];a.menu=t,a.set("level",a.parentItem.level+1),a.firstElementChild.style.paddingLeft="",a.firstElementChild.style.paddingRight="",n._setIndentation(a.firstElementChild,a.level,r),a.hidden=!1,a.$.removeClass("smart-hidden"),a.$.removeClass("filtered-child"),a.$.removeClass("last-filtered-child"),a instanceof Smart.TreeItemsGroup&&(a.$.removeClass("hidden-children"),a.container.level=a.level+1,n._moveSubItems(a.itemContainer.children,t,r),t!==n&&a.expanded&&(t._menuItemsGroupsToExpand.push(a),n._updateState("expanded",a.id,!1)))}}_moveTreeItem(e,t,r,n){const l=this,a=e.level;if(0===r){if(t.previousElementSibling===e)return;t.parentElement.insertBefore(e,t),e.set("level",t.level),e.parentItem=t.parentItem}else if(2===r){if(t.nextElementSibling===e)return;t.parentElement.insertBefore(e,t.nextElementSibling||null),e.set("level",t.level),e.parentItem=t.parentItem}else if(t===n[0].$.container)n[0].$.mainContainer.appendChild(e),e.set("level",1),e.parentItem=void 0;else{if(t.itemContainer.lastElementChild===e)return;t.itemContainer.appendChild(e),e.set("level",t.level+1),e.parentItem=t}const o=n[0].rightToLeft?"paddingRight":"paddingLeft";if(e.menu=n[0],e.parentItem=e.parentElement.menuItemsGroup,e.firstElementChild.style.paddingLeft="",e.firstElementChild.style.paddingRight="",l._setIndentation(e.firstElementChild,e.level,o),e.hidden=!1,e.$.removeClass("smart-hidden"),e.$.removeClass("filtered-child"),e.$.removeClass("last-filtered-child"),e instanceof Smart.TreeItemsGroup&&(e.$.removeClass("hidden-children"),e.container.level=e.level+1,l._moveSubItems(e.itemContainer.children,n[0],o),e.expanded)){const t=l._openedContainers[a+1].indexOf(e.container);-1!==t&&l._openedContainers[a+1].splice(t,1),n[0]._menuItemsGroupsToExpand.push(e),2===n.length&&l._updateState("expanded",e.id,!1)}for(let e=0;e<n.length;e++){const t=n[e],r=t.context,l=t.selectedIndexes.slice(0);t.context=t,t._menuItems={},t._refreshItemPaths(t.$.mainContainer,!0,void 0,t.sorted&&!t.autoSort),t.selectedIndexes=[],t._applySelection(!0,l,!1),t._checkOverflow(),t.context=r}n[0]._expandItemsByDefault()}_overriddenMenuHandler(){}_pageDownHandler(e,t,r,n){const l=this,a=l.$.scrollViewer;function o(){for(let t=e.length-1;t>=0;t--){const r=e[t];if(l._canItemBeHovered(r)&&l._getOffsetTop(r)+r.firstElementChild.offsetHeight<=a.scrollTop+a.$.container.offsetHeight)return r}}if(!t)return;let s=o();s&&(t!==s?(t.removeAttribute("focus"),l._hoverViaKeyboard(s,r,n)):a.scrollTop+a.$.container.offsetHeight!==a.$.scrollViewerContentContainer.offsetHeight&&(l.$.scrollViewer.scrollTop+=a.$.container.offsetHeight,"scrollButtons"===l.scrollMode&&l._updateScrollButtonVisibility(),s=o(),t.removeAttribute("focus"),l._hoverViaKeyboard(s,r,n)))}_pageUpHandler(e,t,r,n){const l=this,a=l.$.scrollViewer;function o(){for(let t=0;t<e.length;t++){const r=e[t];if(l._canItemBeHovered(r)&&l._getOffsetTop(r)>=a.scrollTop)return r}}if(!t)return;let s=o();s&&(t!==s?(t.removeAttribute("focus"),l._hoverViaKeyboard(s,r,n)):0!==a.scrollTop?(l.$.scrollViewer.scrollTop-=a.$.container.offsetHeight,"scrollButtons"===l.scrollMode&&l._updateScrollButtonVisibility(),s=o(),t.removeAttribute("focus"),l._hoverViaKeyboard(s,r,n)):l.filterable&&l.$.filterInput.focus())}_refreshItemPathsAndSelection(){const e=this,t=e.selectedIndexes.slice(0);e._menuItems={},e._refreshItemPaths(e.$.mainContainer,!0),e.selectedIndexes=[],e._applySelection(!0,t)}_refreshSorting(){const e=this;e._unsortItems(e.$.mainContainer),e._applyGrouping(e.$.mainContainer);const t=e._state.filter;t&&e._applyFilter(t),e._checkOverflow()}_scroll(e){const t=this;t.$.scrollViewer.scrollTop=t.$.scrollViewer.scrollTop+10*e,t._updateScrollButtonVisibility(),t.focus()}_scrollButtonFarClickHandler(){this.$.scrollButtonFar.disabled||this._scroll(1)}_scrollButtonNearClickHandler(){this.$.scrollButtonNear.disabled||this._scroll(-1)}_scrollViewerDownHandler(e){const t=this;if(e.target!==t.$.scrollViewer||t.disabled||t.displayLoadingIndicator||!t._isMobile&&1!==e.which)return;const r=e.originalEvent.target;if(r!==t.$.editInput)if(t._isMobile){const n=t.$.scrollViewer.scrollTop,l=t.getBoundingClientRect().top,a=setTimeout((function(){if(!t._dragDetails&&t.$.scrollViewer.scrollTop===n&&t.getBoundingClientRect().top===l){const n=t.context;t.context=t,t._continueSelection(r,e),t.context=n}}),250);t._downTimeoutInfo={target:r,event:e,scrollTop:n,top:l,timeout:a}}else t._continueSelection(r,e);else t._editInputDown=!0}_continueSelection(e,t){const r=this,n=e.closest("smart-tree-item")||e.closest("smart-tree-items-group");if(!(n&&n.parentElement&&r._canItemBeSelected(n,!0)))return;const l=e.closest(".smart-tree-items-group-arrow");let a;if(n instanceof Smart.TreeItem)a="_handleSelection";else{if(e===n.container||e===n.container.firstElementChild)return;a="_menuItemsGroupSelectionHandler"}if(clearTimeout(r._dblclickTimeout),n!==r._dblclickObject.target&&(r._dblclickObject.numberOfClicks=0),r._dblclickObject.target=n,r._dblclickObject.numberOfClicks++,r._dblclickTimeout=setTimeout((function(){r._dblclickObject.numberOfClicks=0}),300),2===r._dblclickObject.numberOfClicks){if(r.editable)return void r._startEditing(n);r._dblclickHandler(n,l,t),r._dblclickObject.numberOfClicks=0}n.selected&&(r._downItem=n),r[a](n,t),r._discardKeyboardHover(!0),r._hoverViaKeyboard(n,!1,void 0,!1),l||r._startDragging(n,t)}_scrollViewerTouchmoveHandler(e){this._dragDetails&&e.cancelable&&(e.preventDefault(),e.stopPropagation())}_scrollViewerWheelHandler(){const e=this;"scrollButtons"===e.scrollMode&&"hidden"!==e.overflow&&e._updateScrollButtonVisibility()}_selectItemRange(e,t){const r=this,n=Array.from(r.$.mainContainer.querySelectorAll("smart-tree-item, smart-tree-items-group")),l=n.indexOf(e),a=n.indexOf(t),o=[];for(let e=Math.min(l,a);e<=Math.max(l,a);e++){const t=n[e];r._canItemBeHovered(t)&&(o.push(t.path),t.set("selected",!0))}return o}_selectstartHandler(e){this._dragDetails&&e.preventDefault()}_setFocusable(){super._setFocusable();const e=this;e.disabled||e.unfocusable?e.$.filterInput.tabIndex=-1:e.$.filterInput.removeAttribute("tabindex")}_setIndentation(e,t,r){const n=this;let l=n._paddingSize;void 0===l&&(l=parseFloat(getComputedStyle(n).getPropertyValue("--smart-tree-indent")),isNaN(l)?l=20:l+=4,n._paddingSize=l),e.style[r]=t*l-l/2+"px"}_setThreeStateCheckbox(e,t,r){t===e.itemContainer.childElementCount&&t>0?(e.removeAttribute("indeterminate"),e.set("selected",!0),e.setAttribute("aria-selected",!0)):0===t&&0===r?(e.removeAttribute("indeterminate"),e.set("selected",!1),e.setAttribute("aria-selected",!1)):(e.setAttribute("indeterminate",""),e.set("selected",!1),e.setAttribute("aria-selected",!1))}_sortItems(e){const t=this;if(!t.sorted)return;let r;e instanceof Smart.TreeItemsGroup?r=e.container.firstElementChild:e===t.$.mainContainer&&(r=e);let n=Array.from(r.children);if(t.sort){const r=t.sort(n,e);Array.isArray(r)&&(n=r)}else"asc"===t.sortDirection?n.sort((function(e,t){return e.label.localeCompare(t.label)})):n.sort((function(e,t){return t.label.localeCompare(e.label)}));for(let e=n.length-1;e>=0;e--)r.insertBefore(n[e],r.firstElementChild)}_sortPathCollection(e){e.sort((function(e,t){const r=e.split("."),n=t.split("."),l=Math.max(r.length,n.length);for(let e=0;e<l;e++){const t=parseFloat(r[e]),l=parseFloat(n[e]);if(isNaN(t))return-1;if(isNaN(l))return 1;if(t<l)return-1;if(t>l)return 1}}))}_startDragging(e,t){const r=this,n=r.selectionMode;if(!r.allowDrag||r._editedItem||"none"===n)return;const l=[],a=[];let o;if(-1!==["one","zeroAndOne","zeroOrOne","checkBox","radioButton"].indexOf(n))o=!1,l.push(e),a.push(e);else{o=!0;for(let e=0;e<r.selectedIndexes.length;e++)l.push(r._menuItems[r.selectedIndexes[e]]),a.push(l[e]);for(let e=0;e<l.length;e++){const t=l[e];if(-1!==a.indexOf(t))for(let e=a.length-1;e>=0;e--){const r=a[e];if(r===t)break;t.contains(r)&&a.splice(e,1)}}}r._dragDetails={StartPosition:{left:t.pageX,top:t.pageY},Items:l,ValidItems:a,Item:e,FeedbackShown:!1,ValidateOnDrop:o,OriginalEvent:t,StartTime:new Date,Dragging:!0},Smart.Tree.treeItemDragged=!0,r.$.scrollViewer._scrollView.disableSwipeScroll=!0,r.allowDrop&&(Smart.Tree.hoveredTree=r,Smart.Tree.hoveredItem=e)}_startEditing(e){const t=this,r=t.$.editInput;let n,l;if(!t._canItemBeSelected(e,!0))return;const a=e.firstElementChild,o=a.firstElementChild;t.rightToLeft?(n=function(){return a.offsetWidth-o.offsetLeft-o.offsetWidth},l="paddingRight"):(n=function(){return o.offsetLeft+parseFloat(window.getComputedStyle(a).borderLeftWidth)},l="paddingLeft"),e instanceof Smart.TreeItemsGroup?(r.style[l]=n()+(t.showLines?parseFloat(window.getComputedStyle(o.firstElementChild).paddingLeft):0)-1+"px",r.style.height=a.offsetHeight+"px"):(r.style[l]=e.offsetWidth+parseInt(a.style[l],10)-a.offsetWidth+parseFloat(window.getComputedStyle(o.firstElementChild).paddingLeft)-2+"px",r.style.height=e.offsetHeight+"px"),r.style.top=t._getOffsetTop(e)+"px",t.$editInput.removeClass("smart-hidden"),r.value=e.label,t._editedItem=e,r.setAttribute("aria-label","Edit item "+e.label),setTimeout((function(){r.focus()}),0)}_styleChangedHandler(e){e.detail.styleProperties&&e.detail.styleProperties["font-size"]&&this._checkOverflow()}_updateScrollButtonVisibility(){const e=this,t=e.overflow;if("scrollbar"===e.scrollMode||"hidden"===t)return;let r=!0,n=!0;if(0===Math.round(e.$.scrollViewer.scrollTop)&&(r=!1),Math.round(e.$.scrollViewer.$.scrollViewerContainer.offsetHeight+e.$.scrollViewer.scrollTop)>=Math.round(e.$.scrollViewer.$.scrollViewerContentContainer.offsetHeight)&&(n=!1),"auto"===t){if(r&&n)return e.$scrollButtonNear.removeClass("smart-hidden"),e.$scrollButtonFar.removeClass("smart-hidden"),e.$scrollViewer.removeClass("one-button-shown"),void e.$.scrollViewer.refresh();r?e.$scrollButtonNear.removeClass("smart-hidden"):e.$scrollButtonNear.addClass("smart-hidden"),n?e.$scrollButtonFar.removeClass("smart-hidden"):e.$scrollButtonFar.addClass("smart-hidden"),e.$scrollViewer.addClass("one-button-shown"),e.$.scrollViewer.refresh()}else"scroll"!==t||e.disabled||(e.$.scrollButtonNear.disabled=!r,e.$.scrollButtonFar.disabled=!n)}_updateState(e,t,r){const n=this;switch(e){case"expanded":{const e=n._state.expanded.indexOf(t);if(r&&-1===e)n._state.expanded.push(t);else{if(r||-1===e)return;n._state.expanded.splice(e,1)}break}case"filter":n._state.filter=void 0!==t?t:n.$.filterInput.value;break;case"selected":n._state.selected=[];for(let e=0;e<n.selectedIndexes.length;e++){const t=n._menuItems[n.selectedIndexes[e]];n._state.selected.push(t.id)}break;case"sorted":n._state.sorted=t}n.autoSaveState&&window.localStorage.setItem("smartTree"+n.id,JSON.stringify(n._state))}_verticalScrollbarHandler(){const e=this,t=e.$.verticalScrollBar,r=t.value;e.disabled||(t.max!==r?t.min!==r?(delete e._topReached,delete e._bottomReached):e._topReached||(e.$.fireEvent("scrollTopReached"),delete e._bottomReached,e._topReached=!0):e._bottomReached||(e.$.fireEvent("scrollBottomReached"),delete e._topReached,e._bottomReached=!0))}});
55
+ Smart("smart-tree-item",class extends Smart.MenuItem{static get properties(){return{selected:{value:!1,type:"boolean"}}}ready(){const e=this;Object.defineProperty(e,"hasStyleObserver",{get:function(){return!1}}),super.ready(),e.setAttribute("role","treeitem"),e.setAttribute("aria-label",e.label)}propertyChangedHandler(e,t,r){const n=this,l=n.menu;if(super.propertyChangedHandler(e,t,r),"level"===e)return void(n.level=t);if("disabled"===e||"separator"===e||!l)return;const a=l.context;switch(l.context=l,e){case"label":{const e=l.sorted&&l.autoSort;n.firstElementChild.firstElementChild.firstElementChild.innerHTML=r,e&&(l._unsortItems(l.$.mainContainer),l._applyGrouping(l.$.mainContainer)),l._state.filter&&l._applyFilter(l._state.filter),n.setAttribute("aria-label",r);break}case"selected":n.selected=t,r?l.select(n):l.unselect(n);break;case"shortcut":{let e=n.firstElementChild.children[1];e||(e=document.createElement("div"),e.className="smart-tree-item-shortcut",n.firstElementChild.appendChild(e)),e.innerHTML=r;break}case"value":l.sort&&l.sorted&&l.autoSort&&l._refreshSorting()}l.context=a}_setId(){}}),Smart("smart-tree-items-group",class extends Smart.MenuItemsGroup{static get properties(){return{selected:{value:!1,type:"boolean"}}}ready(){const e=this;Object.defineProperty(e,"hasStyleObserver",{get:function(){return!1}}),super.ready(),e.setAttribute("role","treeitem"),e.removeAttribute("aria-haspopup"),e.setAttribute("aria-label",e.label)}propertyChangedHandler(e,t,r){const n=this,l=n.menu;if(super.propertyChangedHandler(e,t,r),"level"===e)return void(n.level=t);if("disabled"===e||"separator"===e||!l)return;const a=l.context;switch(l.context=l,e){case"expanded":n.expanded=t,r?l.expandItem(n):l.collapseItem(n);break;case"label":{const e=l.sorted&&l.autoSort;n.firstElementChild.firstElementChild.firstElementChild.innerHTML=r,e&&(l._unsortItems(l.$.mainContainer),l._applyGrouping(l.$.mainContainer)),l._state.filter&&l._applyFilter(l._state.filter),n.setAttribute("aria-label",r);break}case"selected":n.selected=t,r?l.select(n):l.unselect(n);break;case"value":l.sort&&l.sorted&&l.autoSort&&l._refreshSorting()}l.context=a}_setId(){}}),Smart("smart-tree",class extends Smart.Menu{static get properties(){return{allowDrag:{value:!1,type:"boolean"},allowDrop:{value:!1,type:"boolean"},autoHideToggleElement:{value:!1,type:"boolean"},autoLoadState:{value:!1,type:"boolean"},autoSaveState:{value:!1,type:"boolean"},autoSort:{value:!0,type:"boolean"},displayLoadingIndicator:{value:!1,type:"boolean"},dragFeedbackFormatFunction:{value:null,type:"function?"},dragOffset:{value:[10,10],type:"array"},editable:{value:!1,type:"boolean"},expandMode:{value:"multiple",allowedValues:["multiple","single"],type:"string"},filterable:{value:!1,type:"boolean"},filterOnEnter:{value:!1,type:"boolean"},filterInputPlaceholder:{value:"",type:"string"},filterMember:{value:"label",type:"string"},filterMode:{value:"containsIgnoreCase",allowedValues:["contains","containsIgnoreCase","doesNotContain","doesNotContainIgnoreCase","equals","equalsIgnoreCase","startsWith","startsWithIgnoreCase","endsWith","endsWithIgnoreCase"],type:"string"},hasThreeStates:{value:!1,type:"boolean"},loadingIndicatorPlaceholder:{value:"Loading...",type:"string"},loadingIndicatorPosition:{value:"center",allowedValues:["bottom","center","top"],type:"string"},messages:{value:{en:{noId:"smart-tree: Saving and loading the element's state are not available if the element has no id."}},type:"object",extend:!0},scrollMode:{value:"scrollbar",allowedValues:["scrollbar","scrollButtons"],type:"string"},selectedIndexes:{value:[],type:"array"},selectionDisplayMode:{value:"row",allowedValues:["row","label"],type:"string"},selectionMode:{value:"one",allowedValues:["none","oneOrManyExtended","zeroOrMany","oneOrMany","zeroOrOne","zeroAndOne","one","checkBox","radioButton"],type:"string"},selectionTarget:{value:"all",allowedValues:["all","leaf"],type:"string"},showLines:{value:!1,type:"boolean"},showRootLines:{value:!1,type:"boolean"},sort:{value:null,type:"function?",reflectToAttribute:!1},sortDirection:{value:"asc",allowedValues:["asc","desc"],type:"string"},sorted:{value:!1,type:"boolean"},toggleElementPosition:{value:"near",allowedValues:["near","far"],type:"string"},toggleMode:{value:"dblclick",allowedValues:["click","dblclick","arrow"],type:"string"}}}static get listeners(){return{blur:"_blurHandler",focus:"_focusHandler",keydown:"_keydownHandler",mouseenter:"_mouseenterHandler",mouseleave:"_mouseleaveHandler",resize:"_checkOverflow",styleChanged:"_styleChangedHandler",transitionend:"_overriddenMenuHandler","container.click":"_overriddenMenuHandler","container.mouseout":"_overriddenMenuHandler","container.mouseover":"_overriddenMenuHandler","container.pointerover":"_pointeroverHandler","editInput.blur":"_editInputBlurHandler","filterInput.keydown":"_filterInputKeydownHandler","filterInput.keyup":"_filterInputKeyupHandler","mainContainer.click":"_overriddenMenuHandler","mainContainer.mouseleave":"_overriddenMenuHandler","mainContainer.mouseout":"_overriddenMenuHandler","mainContainer.mouseover":"_overriddenMenuHandler","mainContainer.swipeleft":"_mainContainerSwipeHandler","mainContainer.swiperight":"_mainContainerSwipeHandler","scrollButtonFar.click":"_scrollButtonFarClickHandler","scrollButtonNear.click":"_scrollButtonNearClickHandler","scrollViewer.down":"_scrollViewerDownHandler","scrollViewer.kineticScroll":"_scrollViewerWheelHandler","scrollViewer.touchmove":"_scrollViewerTouchmoveHandler","mainContainer.wheel":"_scrollViewerWheelHandler","document.move":"_moveHandler","document.selectstart":"_selectstartHandler","document.up":"_documentUpHandler"}}static get requires(){return{"Smart.ScrollBar":"smart.scrollbar.js"}}static get styleUrls(){return["smart.scrollbar.css","smart.scrollviewer.css","smart.tree.css"]}template(){return'<div id="container" role="presentation">\n <div class="smart-tree-filter-input-container" role="presentation"><input id="filterInput" class="smart-filter-input" disabled="[[disabled]]" placeholder="[[filterInputPlaceholder]]" type="text" role="searchbox" aria-label="[[filterInputPlaceholder]]" /></div>\n <smart-repeat-button id="scrollButtonNear" class="smart-tree-scroll-button smart-spin-button smart-scroll-button-near smart-hidden" animation="[[animation]]" unfocusable aria-label="Scroll up">\n <div id="arrowNear" class="smart-arrow smart-arrow-up"></div>\n </smart-repeat-button>\n <smart-scroll-viewer id="scrollViewer" animation="[[animation]]" horizontal-scroll-bar-visibility="hidden" right-to-left="[[rightToLeft]]">\n <div id="mainContainer" inner-h-t-m-l=\'[[innerHTML]]\' class="smart-tree-main-container" role="presentation">\n <content></content>\n </div>\n <input type="text" id="editInput" class="smart-tree-edit-input smart-hidden" />\n </smart-scroll-viewer>\n <smart-repeat-button id="scrollButtonFar" class="smart-tree-scroll-button smart-spin-button smart-scroll-button-far smart-hidden" animation="[[animation]]" unfocusable aria-label="Scroll down">\n <div id="arrowFar" class="smart-arrow smart-arrow-down"></div>\n </smart-repeat-button>\n <div id="loadingIndicatorContainer" class="smart-loader-container smart-hidden" role="presentation">\n <span id="loadingIndicator" class="smart-loader" role="img" aria-label="[[loadingIndicatorPlaceholder]]"></span>\n <span id="loadingIndicatorPlaceHolder" class="smart-loader-label smart-hidden">[[loadingIndicatorPlaceholder]]</span>\n </div>\n </div>'}detached(){const e=this,t=e._dragDetails;if(super.detached(),!t)return;const r=Smart.Tree.hoveredTree,n=Smart.Tree.hoveredItem;delete e._dragDetails,delete Smart.Tree.treeItemDragged,delete Smart.Tree.hoveredTree,delete Smart.Tree.hoveredItem,e.$.scrollViewer._scrollView.disableSwipeScroll=!1,t.FeedbackShown&&(n.classList.remove("drop-target","top","bottom"),document.body.classList.remove("smart-dragging"),t.Feedback.remove(),r&&clearInterval(r._dragInterval))}addAfter(e,t){void 0!==(t=this.getItem(t))&&this.addTo(e,t.parentItem,t,!0)}addBefore(e,t){void 0!==(t=this.getItem(t))&&this.addTo(e,t.parentItem,t)}addTo(e,t){const r=this;if(!(e instanceof Smart.TreeItem||e instanceof Smart.TreeItemsGroup))if("string"==typeof e){const t=document.createElement("smart-tree-item");t.label=e,e=t}else{if(!e||!e.label)return;{const t=document.createElement("smart-tree-item");t.label=e.label,e=t}}let n,l;if(e.isDirty=!1,void 0===t)n=1,l=t=r.$.mainContainer;else{if((t=r.getItem(t))instanceof Smart.TreeItemsGroup==0){const n=document.createElement("smart-tree-items-group");return n.innerHTML=t.innerHTML,n.appendChild(e),r.addBefore(n,t),void t.remove()}n=t.level+1,l=t.itemContainer}r._createItemHTMLStructure(e,n,t,l.childElementCount,0);const a=r.sorted&&r.autoSort,o=r._state.filter,s=r.selectedIndexes.slice(0);a&&r._unsortItems(r.$.mainContainer),e instanceof Smart.TreeItemsGroup&&(Array.from(e.querySelectorAll("smart-tree-item, smart-tree-items-group")).forEach((e=>e.isDirty=!1)),r._processHTML(e,n+1,!1));let i=arguments[2];i&&arguments[3]&&(i=i.nextElementSibling),i?(l.insertBefore(e,i),r._menuItems={},r._refreshItemPaths(r.$.mainContainer,!0,void 0,r.sorted&&!r.autoSort)):l.appendChild(e),a&&r._applyGrouping(r.$.mainContainer),o&&r._applyFilter(o),r._checkOverflow(),r._expandItemsByDefault(),r.selectedIndexes=[],r._applySelection(!0,s)}getSelectedValues(){const e=this,t=[];for(let r=0;r<e.selectedIndexes.length;r++){const n=e._menuItems[e.selectedIndexes[r]];n.hasAttribute("value")?t.push(n.getAttribute("value")):n.hasAttribute("label")&&t.push(n.getAttribute("label"))}return t}unselectValues(e){const t=this;e&&Object.keys(t._menuItems).forEach((r=>{const n=t._menuItems[r];let l=null;n.hasAttribute("value")?l=n.getAttribute("value"):n.hasAttribute("label")&&(l=n.getAttribute("label")),"string"==typeof e?e===l&&t.unselect(r):e.indexOf(l)>=0&&t.unselect(r)}))}setSelectedValues(e){const t=this;e&&Object.keys(t._menuItems).forEach((r=>{const n=t._menuItems[r];let l=null;n.hasAttribute("value")?l=n.getAttribute("value"):n.hasAttribute("label")&&(l=n.getAttribute("label")),"string"==typeof e?e===l&&t._canItemBeSelected(n)&&t._handleSelection(n,{type:"programmatic"}):e.indexOf(l)>=0&&t._canItemBeSelected(n)&&t._handleSelection(n,{type:"programmatic"})}))}clearSelection(){const e=this,t=e.selectedIndexes.slice(0);e.selectedIndexes=[],e._applySelection(!1,t)}collapseAll(e){const t=this,r=t.animation,n=!1===e&&t.hasAnimation;n&&(t.animation="none"),t._collapseAll(!0),n&&(t.animation=r)}ensureVisible(e){const t=this;if(void 0===(e=t.getItem(e))||e.hidden)return;let r=!1;e.level>1&&!t._isBranchExpanded(e)&&(super.expandItem(e.parentItem,void 0,!0),r=t.hasAnimation,r&&(t._ensureVisibleOnTransitionend=e)),r||t._ensureVisible(e)}expandAll(e){const t=this,r=t.animation,n=!1===e&&t.hasAnimation;let l=1,a=(t.enableShadowDOM?t.shadowRoot:t).querySelectorAll('smart-tree-items-group[level="1"]');for(n&&(t.animation="none");a.length>0;){for(let e=0;e<a.length;e++){const r=a[e];r.expanded||t._menuItemsGroupSelectionHandler(r,{target:r,type:"expand"})}l++,a=(t.enableShadowDOM?t.shadowRoot:t).querySelectorAll('smart-tree-items-group[level="'+l+'"]')}n&&(t.animation=r)}expandItem(e,t){const r=this;if(void 0===(e=r.getItem(e))||e instanceof Smart.TreeItemsGroup==0||e&&e.container&&r._isContainerOpened(e.container.level,e.container))return;void 0!==Smart.Menu.processTimer&&r._lazyInitItems();const n=!1===t&&r.hasAnimation,l=r.animation;n&&(r.animation="none"),r._discardKeyboardHover(),r._menuItemsGroupSelectionHandler(e,{target:e,type:"expand"},arguments[2]),n&&(r.animation=l)}filter(e){const t=this;t.filterable&&(t._applyFilter(e),t.$.filterInput.value=e)}getState(){return JSON.parse(JSON.stringify(this._state))}insert(e,t){const r=this;let n;if(e instanceof Smart.TreeItem||e instanceof Smart.TreeItemsGroup){if(r.contains(e))return;e.isDirty=!1,n=e}else{if("object"!=typeof e||e.constructor!==Object)return;n=function e(t){const n=t[r.itemsMember],l="smart-tree-items-group"===t.tagName||Array.isArray(n)?"smart-tree-items-group":"smart-tree-item",a=document.createElement(l);if(a.isDirty=!1,t.disabled&&(a.disabled=!0),t[r.displayMember]&&(a.label=t[r.displayMember]),t.selected&&(a.selected=!0),t.separator&&(a.separator=!0),t[r.valueMember]&&(a.value=t[r.valueMember]),"smart-tree-items-group"===l){if(t.expanded&&(a.expanded=!0),n)for(let t=0;t<n.length;t++)a.appendChild(e(n[t]))}else t.shortcut&&(a.shortcut=t.shortcut);return a}(e)}if(void 0===t)return void r.addTo(n);if("number"==typeof t)t=t.toString();else if(t instanceof Smart.TreeItem||t instanceof Smart.TreeItemsGroup){if(!r.contains(t))return;t=t.path}else if("string"!=typeof t)return;const l=t.split(".");let a,o;1===l.length?(o=r._menuItems[l[0]],o?r.addBefore(n,o):r.addTo(n)):(o=r._menuItems[t],a=r._menuItems[l.slice(0,l.length-1).join(".")],o?r.addBefore(n,o):a&&a instanceof Smart.TreeItemsGroup&&r.addTo(n,a))}loadState(e){const t=this,r=t.selectedIndexes.slice(0),n=[];if(!e){if(!t.id)return void t.warn(t.localize("noId"));if(!(e=window.localStorage.getItem("smartTree"+t.id)))return}"string"==typeof e&&(e=JSON.parse(e)),e.filter&&!t.filterable&&(e.filter="");let l=e.filter!==t._state.filter;e.sorted!==t.sorted?(t.sorted=e.sorted,t._updateState("sorted",t.sorted),e.sorted?t._applyGrouping(t.$.mainContainer):t._unsortItems(t.$.mainContainer),(e.filter||l)&&(t._applyFilter(e.filter),t.$.filterInput.value=e.filter)):l&&(t._applyFilter(e.filter),t.$.filterInput.value=e.filter),t._menuItemsGroupsToExpand=[];for(let r=0;r<e.expanded.length;r++){const n=t.getItem(e.expanded[r]);n&&t._menuItemsGroupsToExpand.push(n)}t._expandItemsByDefault(!0);for(let r=0;r<e.selected.length;r++){const l=t.getItem(e.selected[r]);l&&n.push(l.path)}t.selectedIndexes=n,t._applySelection(!1,r)}moveDown(e){const t=this,r=(e=t.getItem(e)).nextElementSibling;void 0!==e&&r&&!t.sorted&&(t._moveTreeItem(e,r,2,[t]),t.filterable&&t._state.filter&&t._applyFilter(t._state.filter))}moveUp(e){const t=this,r=(e=t.getItem(e)).previousElementSibling;void 0!==e&&r&&!t.sorted&&(t._moveTreeItem(e,r,0,[t]),t.filterable&&t._state.filter&&t._applyFilter(t._state.filter))}refresh(){this._checkOverflow()}removeItem(e){const t=this;if(void 0===(e=t.getItem(e)))return;if(e instanceof Smart.TreeItemsGroup){const r=e.container;t._isContainerOpened(r.level,r)&&t._closeSubContainersTreeMode(r.level,r)}const r=t.sorted&&t.autoSort;r&&t._unsortItems(t.$.mainContainer);const n=e.closest("smart-tree-items-group");e.parentElement.removeChild(e),t._menuItems={},t._refreshItemPaths(t.$.mainContainer,!0,void 0,t.sorted&&!t.autoSort),r&&t._applyGrouping(t.$.mainContainer);const l=t._state.filter,a=t.selectedIndexes.slice(0);if(l&&t._applyFilter(l),t._checkOverflow(),t.selectedIndexes=[],t._applySelection(!0,a),delete t._treeAnimationInProgress,n&&!n.querySelector("smart-tree-item")){const e=document.createElement("smart-tree-item");return e.innerHTML=n.innerHTML,t.addBefore(e,n),void n.remove()}}saveState(){const e=this;return e.id?window.localStorage.setItem("smartTree"+e.id,JSON.stringify(e._state)):e.warn(e.localize("noId")),JSON.parse(JSON.stringify(e._state))}select(e){const t=this;void 0!==(e=t.getItem(e))&&!e.selected&&t._canItemBeSelected(e)&&t._handleSelection(e,{type:"programmatic"})}unselect(e){void 0!==(e=this.getItem(e))&&e.selected&&!e.templateApplied&&this._handleSelection(e,{type:"programmatic"})}updateItem(e,t){if(void 0===(e=this.getItem(e))||void 0===t)return;const r=e instanceof Smart.TreeItem;for(let n in t)if(Object.prototype.hasOwnProperty.call(t,n)){if(r){if(-1===["disabled","label","level","selected","separator","shortcut","value"].indexOf(n))continue}else if(-1===["disabled","expanded","label","level","selected","separator","value"].indexOf(n))continue;e[n]=t[n]}}propertyChangedHandler(e,t,r){const n=this;switch(super.propertyChangedHandler(e,t,r),e){case"allowDrag":case"allowDrop":case"autoLoadState":case"autoSort":case"editable":case"filterInputPlaceholder":case"loadingIndicatorPlaceholder":case"selectionDisplayMode":case"showLines":case"showRootLines":case"toggleElementPosition":case"toggleMode":break;case"autoHideToggleElement":r?n.$mainContainer.addClass("hidden-arrows"):n.$mainContainer.removeClass("hidden-arrows");break;case"autoSaveState":if(!r)return;if(!n.id)return n.warn(n.localize("noId")),void(n.autoSaveState=!1);window.localStorage.setItem("smartTree"+n.id,JSON.stringify(n._state));break;case"dataSource":{const e=n.selectedIndexes.slice(0);n.selectedIndexes=[],n._menuItems={},n._processDataSource(),n._checkOverflow(),n._expandItemsByDefault(),n._applySelection(!0,e);const t=n._state.filter;t&&n._applyFilter(t);break}case"disabled":n._setFocusable(),n.$.scrollButtonNear.disabled=r,n.$.scrollButtonFar.disabled=r,r||n._updateScrollButtonVisibility();break;case"displayLoadingIndicator":r?(n._discardKeyboardHover(!0),n.$loadingIndicatorContainer.removeClass("smart-hidden")):n.$loadingIndicatorContainer.addClass("smart-hidden");break;case"expandMode":if("single"===r){const e=n._state.expanded.map((e=>Object.values(n._menuItems).find((t=>t.id===e)))),t={};for(let r=0;r<e.length;r++){const l=e[r],a=l.parentItem;if(t[a])continue;t[a]=!0;const o=e.filter((e=>e!==l&&e.parentItem===a));o.length>0&&o.forEach((e=>n.collapseItem(e)))}}break;case"filterable":!1===r&&(n._applyFilter(""),n.$.filterInput.value=""),n._checkOverflow();break;case"filterMode":n.filterable&&n._state.filter&&n._applyFilter(n._state.filter);break;case"hasThreeStates":if("checkBox"!==n.selectionMode)return;if(r)n._applySelection(!1);else{const e=(n.enableShadowDOM?n.shadowRoot:n).querySelectorAll("[indeterminate]");for(let t=0;t<e.length;t++)e[t].removeAttribute("indeterminate")}break;case"innerHTML":n.$.mainContainer.innerHTML=r,n._lazyInitItems();break;case"loadingIndicatorPosition":"center"===r?n.$loadingIndicatorPlaceHolder.addClass("smart-hidden"):n.$loadingIndicatorPlaceHolder.removeClass("smart-hidden");break;case"overflow":if("scrollbar"===n.scrollMode)return"hidden"===r?n.$.scrollViewer.$.verticalScrollBar.setAttribute("aria-hidden",!0):n.$.scrollViewer.$.verticalScrollBar.removeAttribute("aria-hidden"),void(n.$.scrollViewer.verticalScrollBarVisibility="scroll"===r?"visible":"auto");n.$.scrollViewer.scrollTop=0,"hidden"===r?(n.$scrollViewer.removeClass("scroll-buttons-shown"),n.$scrollButtonNear.addClass("smart-hidden"),n.$scrollButtonFar.addClass("smart-hidden")):(n.$.scrollButtonNear.disabled=n.disabled,n.$.scrollButtonFar.disabled=n.disabled,"auto"===r?(n.$scrollButtonNear.addClass("smart-hidden"),n.$scrollButtonFar.addClass("smart-hidden"),n._checkOverflow()):(n.$scrollViewer.addClass("scroll-buttons-shown"),n.$scrollViewer.removeClass("one-button-shown"),n.$scrollButtonNear.removeClass("smart-hidden"),n.$scrollButtonFar.removeClass("smart-hidden"),n._updateScrollButtonVisibility())),n.$.scrollViewer.refresh();break;case"rightToLeft":{let e,t;r?(e="paddingLeft",t="paddingRight"):(e="paddingRight",t="paddingLeft");for(let r in n._menuItems)if(Object.prototype.hasOwnProperty.call(n._menuItems,r)){const l=n._menuItems[r],a=l.firstElementChild;a.style[e]="",n._setIndentation(a,l.level,t)}break}case"scrollMode":if("hidden"===n.overflow)return;if(n.$.scrollViewer.scrollTop=0,"scrollButtons"===r)return"scroll"===n.overflow&&(n.$scrollViewer.addClass("scroll-buttons-shown"),n.$scrollButtonNear.removeClass("smart-hidden"),n.$scrollButtonFar.removeClass("smart-hidden")),n.$.scrollViewer.$.verticalScrollBar.setAttribute("aria-hidden",!0),n.$.scrollViewer.verticalScrollBarVisibility="auto",void n._checkOverflow();n.$.scrollViewer.$.verticalScrollBar.removeAttribute("aria-hidden"),n.$scrollViewer.removeClass("scroll-buttons-shown"),n.$scrollViewer.removeClass("one-button-shown"),n.$scrollButtonNear.addClass("smart-hidden"),n.$scrollButtonFar.addClass("smart-hidden"),"auto"===n.overflow?n.$.scrollViewer.verticalScrollBarVisibility="auto":n.$.scrollViewer.verticalScrollBarVisibility="visible";break;case"selectedIndexes":n._applySelection(!1,t);break;case"selectionMode":if(n.setAttribute("aria-multiselectable",-1!==["oneOrManyExtended","zeroOrMany","oneOrMany","checkBox","radioButton"].indexOf(r)),void 0===n._menuItems[0])return;if("one"===t&&"none"!==r&&"checkBox"!==r&&"radioButton"!==r||-1!==t.indexOf("oneOrMany")&&-1!==r.indexOf("oneOrMany")||"none"===t&&(-1!==r.indexOf("zero")||"checkBox"===r)||"zeroOrMany"===r&&"checkBox"!==t||"radioButton"===t&&-1!==r.indexOf("Many")||!n.hasThreeStates&&("checkBox"===r||"checkBox"===t&&"zeroOrMany"===r))return n._lastSelectedItem="one"===r||"oneOrManyExtended"===r?n._menuItems[n.selectedIndexes[n.selectedIndexes.length-1]]:void 0,void n._applyAriaSelected();if(n.hasThreeStates&&"checkBox"===t){const e=(n.enableShadowDOM?n.shadowRoot:n).querySelectorAll("[indeterminate]");for(let t=0;t<e.length;t++)e[t].removeAttribute("indeterminate")}n._applySelection(!1);break;case"sort":if(!n.sorted)return;n._refreshSorting();break;case"sortDirection":n.sorted&&!n.sort&&(n._unsortItems(n.$.mainContainer),n._applyGrouping(n.$.mainContainer));break;case"sorted":{if(!r&&!n.autoSort)return n._refreshItemPathsAndSelection(),void n._updateState("sorted",!1);r?n._applyGrouping(n.$.mainContainer):n._unsortItems(n.$.mainContainer);const e=n._state.filter;e&&n._applyFilter(e),n._updateState("sorted",r),n._checkOverflow();break}case"unfocusable":n._setFocusable()}}_addDragFeedback(){const e=this,t=document.createElement("div");return t.className="smart-tree-item-feedback",t.setAttribute("parent-tree-id",e.id),e.theme&&t.setAttribute("theme",e.theme),e.dragFeedbackFormatFunction?t.innerHTML=e.dragFeedbackFormatFunction(e._dragDetails.Items):1===e._dragDetails.Items.length?t.innerHTML=e._dragDetails.Item.label:(t.classList.add("multiple"),t.innerHTML="&#xf0c5;"),document.body.appendChild(t),t}_applyFilter(e){const t=this;function r(e,t){e?(t.hidden&&t.$.removeClass("smart-hidden"),t.hidden=!1):(t.hidden||t.$.addClass("smart-hidden"),t.hidden=!0)}if(""===e&&!t.hasAttribute("filter-applied"))return;const n=Array.from(t.$.mainContainer.getElementsByClassName("last-filtered-child"));for(let e=0;e<n.length;e++)n[e].$.removeClass("last-filtered-child");!function n(l,a){let o,s=!1,i=0;a=Array.from(a);for(let l=0;l<a.length;l++){const d=a[l];d instanceof Smart.TreeItem?r(t._findItem(d,e),d):n(d,d.itemContainer.children),d.hidden||(i++,o=d),s=s||!d.hidden}if(l!==t.$.mainContainer){const n=t._findItem(l,e);r(s||n,l),s&&null===n?l.$.addClass("filtered-child"):l.$.removeClass("filtered-child"),!s&&a.length>0?(l.hiddenChildren=!0,l.$.addClass("hidden-children"),t.collapseItem(l,void 0,!1)):(l.hiddenChildren=!1,l.$.removeClass("hidden-children"))}""!==e&&i>0&&o.$.addClass("last-filtered-child")}(t.$.mainContainer,t.$.mainContainer.children),""!==e?t.setAttribute("filter-applied",""):t.removeAttribute("filter-applied"),t._updateState("filter",e),t._checkOverflow()}_applyHierarchicalSelection(e,t){const r=this,n=e!==r.$.mainContainer,l=n?e.itemContainer.children:e.children;let a=0,o=0;for(let s=0;s<l.length;s++){const i=l[s];e.selected&&i.set("selected",!0),i instanceof Smart.TreeItemsGroup?r._applyHierarchicalSelection(i,t):i.selected&&t.push(i.path),n&&(i.selected?a++:i.hasAttribute("indeterminate")&&o++)}n&&(r._setThreeStateCheckbox(e,a,o),e.selected&&t.push(e.path))}_applyRadioButtonSelection(e,t,r){const n=this,l=e!==n.$.mainContainer?e.itemContainer.children:e.children,a=[];let o;for(let e=0;e<l.length;e++){const o=l[e];o instanceof Smart.TreeItemsGroup&&n._applyRadioButtonSelection(o,t,r),o.set("selected",!1),-1!==t.indexOf(o.path)&&a.push(o)}o=0===a.length?l[0]:a[a.length-1],o.set("selected",!0),r.push(o.path)}_applySelection(e,t){const r=this;let n=r.selectedIndexes.slice(0);function l(e){const t=Object.values(r._menuItems).filter((t=>t.level===e));if(0!==t.length){for(let e=0;e<t.length;e++)if(r._canItemBeSelected(t[e]))return t[e].path;return l(e+1)}}if(void 0===t&&(t=n.slice(0)),void 0===r._menuItems[0])return r.selectedIndexes=[],r._lastSelectedItem=void 0,void(r.isRendered&&JSON.stringify(t)!==JSON.stringify([])&&r.$.fireEvent("change",{selectedIndexes:r.selectedIndexes,oldSelectedIndexes:t}));const a=r.selectionMode,o=Array.from((r.shadowRoot||r).querySelectorAll("smart-tree-item[selected], smart-tree-items-group[selected]"));for(let e=n.length-1;e>=0;e--){const t=r._menuItems[n[e]];void 0!==t&&r._canItemBeSelected(t)||n.splice(e,1)}if(e)for(let e=0;e<o.length;e++)r._canItemBeSelected(o[e])?-1===n.indexOf(o[e].path)&&n.push(o[e].path):o[e].set("selected",!1);else{for(let e=0;e<o.length;e++)o[e].set("selected",!1);o.length=0}switch(r._sortPathCollection(n),a){case"none":n.length=0;for(let e=0;e<o.length;e++)o[e].set("selected",!1);break;case"one":case"zeroAndOne":case"zeroOrOne":"one"===a&&0===n.length&&n.push(l(1));for(let e=0;e<n.length;e++){const t=r._menuItems[n[e]];if(e===n.length-1){t.set("selected",!0),n=[n[e]];break}-1!==o.indexOf(t)&&t.set("selected",!1)}break;case"oneOrMany":case"oneOrManyExtended":0===n.length&&n.push(l(1));for(let e=0;e<n.length;e++)r._menuItems[n[e]].set("selected",!0);break;case"zeroOrMany":case"checkBox":for(let e=0;e<n.length;e++)r._menuItems[n[e]].set("selected",!0);if("checkBox"===a&&r.hasThreeStates){const e=[];r._applyHierarchicalSelection(r.$.mainContainer,e),r._sortPathCollection(e),n=e}break;case"radioButton":{const e=[];r._applyRadioButtonSelection(r.$.mainContainer,n,e),r._sortPathCollection(e),n=e;break}}r.selectedIndexes=n,r._updateState("selected"),r._lastSelectedItem="one"===a||"oneOrManyExtended"===a?r._menuItems[n[n.length-1]]:void 0,r.isRendered&&!1!==arguments[2]&&JSON.stringify(t)!==JSON.stringify(n)&&r.$.fireEvent("change",{selectedIndexes:r.selectedIndexes,oldSelectedIndexes:t}),r._applyAriaSelected()}_applyAriaSelected(){const e=this,t=e.selectionMode;for(let r in e._menuItems){const n=e._menuItems[r];n.selected?n.setAttribute("aria-selected",!0):e._canItemBeSelected(n)&&-1!==["oneOrManyExtended","zeroOrMany","oneOrMany","checkBox","radioButton"].indexOf(t)?n.setAttribute("aria-selected",!1):n.removeAttribute("aria-selected")}}_autoLoadState(e){const t=this,r=[];for(let e=0;e<t._menuItemsGroupsToExpand.length;e++)t._menuItemsGroupsToExpand[e].set("expanded",!1);t._menuItemsGroupsToExpand=[];for(let r=0;r<e.expanded.length;r++){const n=t.getItem(e.expanded[r]);n&&t._menuItemsGroupsToExpand.push(n)}t.filterable&&e.filter&&(t._applyFilter(e.filter),t.$.filterInput.value=e.filter);for(let n=0;n<e.selected.length;n++){const l=t.getItem(e.selected[n]);l&&r.push(l.path)}t.selectedIndexes=r}_blurHandler(){this._discardKeyboardHover(!0)}_canItemBeHovered(e){const t=e.level;return!1===e.disabled&&!0!==e.templateApplied&&!0!==e.hidden&&(1===t||t>1&&this._isContainerOpened(t,e.parentElement.container)&&e.getBoundingClientRect().height>0)}_canItemBeSelected(e,t){return!(!0!==t&&"leaf"===this.selectionTarget&&e instanceof Smart.TreeItemsGroup)&&!1===e.disabled&&!0!==e.templateApplied}_checkOverflow(){const e=this,t=e.$.scrollViewer,r=e.overflow;if("scrollbar"===e.scrollMode||"hidden"===r)return void t.refresh();const n=t.scrollTop;"auto"===r&&(t.$.removeClass("scroll-buttons-shown"),t.$.removeClass("one-button-shown"),e.$scrollButtonNear.addClass("smart-hidden"),e.$scrollButtonFar.addClass("smart-hidden"));const l=Math.round(t.$.scrollViewerContentContainer.offsetHeight)>Math.round(t.$.scrollViewerContainer.offsetHeight),a=Math.round(t.scrollTop)>0,o=Math.round(t.$.scrollViewerContainer.offsetHeight+t.scrollTop)<Math.round(t.$.scrollViewerContentContainer.offsetHeight);l?"auto"===r?(t.$.addClass("scroll-buttons-shown"),a&&e.$scrollButtonNear.removeClass("smart-hidden"),o&&e.$scrollButtonFar.removeClass("smart-hidden"),!1===(a&&o)&&t.$.addClass("one-button-shown"),e.disabled||(e.$.scrollButtonNear.disabled=!1,e.$.scrollButtonFar.disabled=!1),t.scrollTop=n):(e.$scrollButtonNear.removeClass("smart-hidden"),e.$scrollButtonFar.removeClass("smart-hidden"),e.disabled?(e.$.scrollButtonNear.disabled=!0,e.$.scrollButtonFar.disabled=!0):(e.$.scrollButtonNear.disabled=!a,e.$.scrollButtonFar.disabled=!o)):"scroll"===r&&(e.$.scrollButtonNear.disabled=!0,e.$.scrollButtonFar.disabled=!0),t.refresh()}_createElement(){const e=this,t=window.getComputedStyle(e.$.scrollViewer);if(e.setAttribute("role","tree"),e.setAttribute("aria-multiselectable",-1!==["oneOrManyExtended","zeroOrMany","oneOrMany","checkBox","radioButton"].indexOf(e.selectionMode)),e.setAttribute("aria-orientation","vertical"),e.$.scrollViewer.onVerticalChange=e._verticalScrollbarHandler,e.isRendered||Object.defineProperty(e,"dataSource",{get:function(){return e.context===e?e.properties.dataSource.value:e._getDataSource()},set(t){e.updateProperty(e,e._properties.dataSource,t)}}),e.id||!e.autoLoadState&&!e.autoSaveState||(e.warn(e.localize("noId")),e.autoLoadState=!1,e.autoSaveState=!1),e.mode="tree",e._element="tree",e._isMobile=Smart.Utilities.Core.isMobile,e._edgeMacFF=!1,e._autoScrollCoefficient=Smart.Utilities.Core.Browser.Firefox?4:Smart.Utilities.Core.Browser.Edge?8:2,e._scrollViewerPadding=parseFloat(t.paddingTop)+parseFloat(t.paddingBottom)||0,e._state={expanded:[],filter:"",selected:[]},e._dblclickObject={numberOfClicks:0},e.autoHideToggleElement&&e.$mainContainer.addClass("hidden-arrows"),e.disabled&&(e.$.scrollButtonNear.disabled=!0,e.$.scrollButtonFar.disabled=!0),"scrollbar"===e.scrollMode&&"scroll"===e.overflow&&(e.$.scrollViewer.verticalScrollBarVisibility="visible"),null===e.dataSource&&e.$.mainContainer.firstElementChild instanceof HTMLUListElement&&e._processUList(),e.isRendered)return e._menuItems={},void(null===e.dataSource?e._processHTML(e.$.mainContainer,1):e._processDataSource());const r=(e.shadowRoot||e).querySelectorAll("smart-tree-item, smart-tree-items-group"),n=function(){let t;e.autoLoadState&&(t=window.localStorage.getItem("smartTree"+e.id),t&&(t=JSON.parse(t),e.sorted=t.sorted)),e._setFocusable(),e._menuItems={},null===e.dataSource?e._processHTML(e.$.mainContainer,1):e._processDataSource(),"scrollButtons"!==e.scrollMode&&"hidden"!==e.overflow||e.$.scrollViewer.$.verticalScrollBar.setAttribute("aria-hidden",!0),"scrollButtons"===e.scrollMode&&"scroll"===e.overflow&&(e.$scrollViewer.addClass("scroll-buttons-shown"),e.$scrollButtonNear.removeClass("smart-hidden"),e.$scrollButtonFar.removeClass("smart-hidden"),e._updateScrollButtonVisibility()),e._checkOverflow(),t&&e._autoLoadState(t),e._expandItemsByDefault(),e._applySelection(!0),e._updateState("sorted",e.sorted),e.displayLoadingIndicator&&e.$loadingIndicatorContainer.removeClass("smart-hidden"),"center"!==e.loadingIndicatorPosition&&e.$loadingIndicatorPlaceHolder.removeClass("smart-hidden"),e.__onCompleted&&(e._onCompleted=e.__onCompleted,e.__onCompleted=null,e._onCompleted())};0===r.length||e.enableShadowDOM||e.isInShadowDOM?n():(e._onCompleted&&(e.__onCompleted=e._onCompleted,e._onCompleted=null),e._ensureItemsReady(r,n))}appendChild(e){const t=this;if(!t.isCompleted){const e=Array.prototype.slice.call(arguments,2);return HTMLElement.prototype.appendChild.apply(t,e.concat(Array.prototype.slice.call(arguments)))}t.$.mainContainer&&t.$.mainContainer.appendChild(e)}_dblclickHandler(e,t,r){"dblclick"!==this.toggleMode||e instanceof Smart.TreeItem||t||this._menuItemsGroupSelectionHandler(e,r)}_discardKeyboardHover(e,t){const r=this;!t&&r._hoveredViaKeyboard&&(!e&&r._hoveredViaKeyboard instanceof Smart.MenuItemsGroup&&r._isContainerOpened(r._hoveredViaKeyboard.level+1,r._hoveredViaKeyboard.container)||(r._hoveredViaKeyboard.removeAttribute("focus"),r._hoveredViaKeyboard=void 0))}_documentUpHandler(e){if("pointercancel"===e.originalEvent.type)return;const t=this,r=t._downTimeoutInfo,n=t._dragDetails;!r||n&&n.FeedbackShown||(clearTimeout(r.timeout),t.$.scrollViewer.scrollTop!==r.scrollTop&&t.getBoundingClientRect().top===r.top||t._continueSelection(r.target,r.event)),delete t._downTimeoutInfo;const l=t._downItem,a=t.isInShadowDOM?e.originalEvent.composedPath()[0]:e.originalEvent.target;if(delete t._downItem,t._editedItem&&!t._editInputDown&&(!t._isMobile&&a!==t.$.editInput||t._isMobile&&t.getRootNode().elementFromPoint(e.clientX,e.clientY)!==t.$.editInput))return void t._endEditing();if(delete t._editInputDown,l){const r=a.closest("smart-tree-item")||a.closest("smart-tree-items-group");!r||!r.selected||r!==l||t._dragDetails&&t._dragDetails.FeedbackShown||r instanceof Smart.TreeItemsGroup&&(a.closest(".smart-tree-items-group-arrow")||a===r.container||a===r.container.firstElementChild)||t._handleSelection(r,e)}if(!n)return;const o=Smart.Tree.hoveredTree,s=Smart.Tree.hoveredItem;if(delete t._dragDetails,delete Smart.Tree.treeItemDragged,delete Smart.Tree.hoveredTree,delete Smart.Tree.hoveredItem,t.$.scrollViewer._scrollView.disableSwipeScroll=!1,!n.FeedbackShown)return;const i=o||t.getRootNode().elementFromPoint(e.clientX,e.clientY);let d;document.body.classList.remove("smart-dragging"),document.body.removeChild(n.Feedback),o&&clearInterval(o._dragInterval);const c=n.Item,m=n.Items,u=n.ValidItems;if(!i)return;if(!s||c.contains(s))return void t.$.fireEvent("dragEnd",{item:c,items:m,target:i,data:n,previousContainer:t,container:o||i,originalEvent:e});if(!o||!o.allowDrop||o.disabled)return;const p=[o];let h;if(s.classList.remove("drop-target"),s.classList.contains("top")?(s.classList.remove("top"),h="top",d=0):s.classList.contains("bottom")?(s.classList.remove("bottom"),h="bottom",d=2):(h="inside",d=1),n.DropDetails={item:s,position:h},o!==t)p.push(t);else if(n.ValidateOnDrop)for(let e=0;e<u.length;e++)if(u[e].contains(s))return;if(!t.$.fireEvent("dragEnd",{item:c,items:m,target:s,data:n,previousContainer:t,container:o,originalEvent:e}).defaultPrevented){o.sorted&&o.autoSort&&o._unsortItems(o.$.mainContainer);for(let e=0;e<u.length;e++)t._moveTreeItem(u[e],s,d,p);o.sorted&&o.autoSort&&o._applyGrouping(o.$.mainContainer),o!==t&&o._state.filter&&o._applyFilter(o._state.filter)}}_editInputBlurHandler(){this._endEditing()}_endEditing(e){const t=this,r=t._editedItem;if(!r)return;if(delete t._editedItem,t.$editInput.addClass("smart-hidden"),t.focus(),e)return;const n=t.$.editInput.value,l=t.sorted&&t.autoSort,a=t._state.filter;n!==r.label&&(r.set("label",n),r.setAttribute("aria-label",n),r.firstElementChild.firstElementChild.firstElementChild.innerHTML=n,l&&(t._unsortItems(t.$.mainContainer),t._applyGrouping(t.$.mainContainer)),a&&t._applyFilter(a))}_ensureVisible(e){const t=this;t._ensureVisibleTreeMode(e,e.getBoundingClientRect(),t.$.scrollViewer,t.$.scrollViewer.getBoundingClientRect(),t._scrollViewerPadding),t._ensureVisibleCallback&&t._ensureVisibleCallback(e)}_pointeroverHandler(e){const t=(this.isInShadowDOM?e.composedPath()[0]:e.target).closest(".smart-tree-item-label-element>span");if(!t)return;const r=this.$.container.querySelector(".tooltip");r&&(r.classList.remove("tooltip"),r.removeAttribute("title")),t.scrollWidth>t.offsetWidth&&(t.classList.add("tooltip"),t.title=t.innerText)}_filterInputKeyupHandler(e){const t=this;if(t._filterTimer&&clearTimeout(t._filterTimer),t.filterOnEnter){if("Enter"!==e.key)return;{const e=t.context;t.context=t,t._applyFilter(t.$.filterInput.value,t._view),t._checkOverflow(),t.context=e}}t._filterTimer=setTimeout((function(){const e=t.context;t.context=t,t._applyFilter(t.$.filterInput.value,t._view),t._checkOverflow(),t.context=e}),300)}_filterInputKeydownHandler(e){if("PageDown"!==e.key)return void("PageUp"===e.key&&(e.preventDefault(),e.stopPropagation()));const t=this;let r;if(e.preventDefault(),e.stopPropagation(),t.selectedIndexes.length>0){const e=t.selectedIndexes.slice(0);r=t._lastSelectedItem||t._menuItems[t.selectedIndexes[t.selectedIndexes.length-1]],"checkBox"!==t.selectionMode&&"radioButton"!==t.selectionMode&&(t.selectedIndexes=[r.path],t._applySelection(!1,e)),t.focus()}else r=t._getFirstEnabledChild(t.$.mainContainer),t.focus(),r&&t._hoverViaKeyboard(r);t._ensureVisible(r)}_focusHandler(){const e=this;e.selectedIndexes.length>0&&!e._hoveredViaKeyboard&&(e._lastSelectedItem?e._hoverViaKeyboard(e._lastSelectedItem,!1,void 0,!1):e._hoverViaKeyboard(e._menuItems[e.selectedIndexes[e.selectedIndexes.length-1]],!1,void 0,!1))}_getDataSource(){const e=[];return function e(t,r){for(let n=0;n<t.length;n++){const l=t[n],a={label:l.label};l.disabled&&(a.disabled=!0),l.selected&&(a.selected=!0),l.separator&&(a.separator=!0),null!==l.value&&(a.value=l.value),l instanceof Smart.TreeItem?l.shortcut&&(a.shortcut=l.shortcut):(l.expanded&&(a.expanded=!0),a.items=[],l.itemContainer&&l.itemContainer.children&&e(l.itemContainer.children,a.items)),r.push(a)}}(this.$.mainContainer.children,e),e}_handleHierarchicalSelection(e,t){const r=this;let n=e;for(e.selected?(e.set("selected",!1),e.setAttribute("aria-selected",!1)):(e.set("selected",!0),e.setAttribute("aria-selected",!0),e.removeAttribute("indeterminate"));n.parentItem;){const e=n.parentItem,t=e.itemContainer.children;let l=0,a=0;for(let e=0;e<t.length;e++)t[e].selected?l++:t[e].hasAttribute("indeterminate")&&a++;r._setThreeStateCheckbox(e,l,a),n=e}e instanceof Smart.TreeItemsGroup&&function e(t,r){const n=t.itemContainer.children;for(let t=0;t<n.length;t++){const l=n[t];l.set("selected",r),l.setAttribute("aria-selected",r),l.removeAttribute("indeterminate"),l instanceof Smart.TreeItemsGroup&&e(l,r)}}(e,e.selected),t.length=0;const l=Array.from((r.enableShadowDOM?r.shadowRoot:r).querySelectorAll("[selected]"));for(let e=0;e<l.length;e++)t.push(l[e].path);r._sortPathCollection(t)}_handleSelection(e,t){const r=this,n=r.selectionMode;if("none"===n||"programmatic"!==t.type&&!r._canItemBeSelected(e))return;const l=e.selected;if(l&&"down"===t.type)return;const a=r.selectedIndexes.slice(0);let o=a.slice(0);switch(n){case"one":case"zeroAndOne":if(l)return;r._menuItems[o[0]]&&(r._menuItems[o[0]].set("selected",!1),r._menuItems[o[0]].removeAttribute("aria-selected")),r.selectedIndexes=[e.path],e.set("selected",!0),e.setAttribute("aria-selected",!0),r._lastSelectedItem=e;break;case"zeroOrOne":l?(r.selectedIndexes=[],e.set("selected",!1),e.removeAttribute("aria-selected")):(void 0!==o[0]&&(r._menuItems[o[0]].set("selected",!1),r._menuItems[o[0]].removeAttribute("aria-selected")),r.selectedIndexes=[e.path],e.set("selected",!0),e.setAttribute("aria-selected",!0));break;case"oneOrMany":case"zeroOrMany":if(l){if(1===o.length&&"zeroOrMany"!==n)return;o.splice(o.indexOf(e.path),1),e.set("selected",!1),e.setAttribute("aria-selected",!1)}else o.push(e.path),r._sortPathCollection(o),e.set("selected",!0),e.setAttribute("aria-selected",!0);r.selectedIndexes=o;break;case"oneOrManyExtended":{const n=t.ctrlKey||t.metaKey,l=t.shiftKey;if(!n&&!l||l&&e===r._lastSelectedItem){for(let e=0;e<o.length;e++)r._menuItems[o[e]].set("selected",!1),r._menuItems[o[e]].setAttribute("aria-selected",!1);o=[e.path],e.set("selected",!0),e.setAttribute("aria-selected",!0),r._lastSelectedItem=e}else if(n)e.selected&&o.length>1?(o.splice(o.indexOf(e.path),1),e.set("selected",!1),e.setAttribute("aria-selected",!1)):e.selected||(o.push(e.path),r._sortPathCollection(o),e.set("selected",!0),e.setAttribute("aria-selected",!0),r._lastSelectedItem=e);else if(l){for(let e=0;e<o.length;e++)r._menuItems[o[e]].set("selected",!1),r._menuItems[o[e]].setAttribute("aria-selected",!1);o=r._selectItemRange(r._lastSelectedItem,e)}r.selectedIndexes=o;break}case"checkBox":r.hasThreeStates?r._handleHierarchicalSelection(e,o):l?(o.splice(o.indexOf(e.path),1),e.set("selected",!1),e.setAttribute("aria-selected",!1)):(o.push(e.path),r._sortPathCollection(o),e.set("selected",!0),e.setAttribute("aria-selected",!0)),r.selectedIndexes=o;break;case"radioButton":{if(e.selected)return;let t;for(let r=0;r<e.parentElement.children.length;r++){const n=e.parentElement.children[r];if(n.selected){t=n;break}}const n=o.indexOf(t.path);t.set("selected",!1),e.setAttribute("aria-selected",!1),e.set("selected",!0),e.setAttribute("aria-selected",!0),o.splice(n,1),o.push(e.path),r._sortPathCollection(o),r.selectedIndexes=o;break}}if(r._discardKeyboardHover(!0),r._hoverViaKeyboard(e,!1,void 0,!r._treeAnimationInProgress),r._updateState("selected"),JSON.stringify(a)!==JSON.stringify(r.selectedIndexes)){if(r.ownerElement&&!r.ownerElement.isRendered)return;r.$.fireEvent("change",{item:e,selectedIndexes:r.selectedIndexes,oldSelectedIndexes:a})}}_hoverViaKeyboard(e,t,r,n){if(!e)return;const l=this;e.setAttribute("focus",""),l._hoveredViaKeyboard=e,!1!==n&&l._ensureVisible(e),t&&l._handleSelection(e,r),l._hoverViaKeyboardCallback&&l._hoverViaKeyboardCallback(e)}_keydownHandler(e){const t=this,r=e.key;if(t._editedItem)return void("Enter"===r?t._endEditing():"Escape"===r&&t._endEditing(!0));if(t.getRootNode().activeElement!==t||-1===["ArrowDown","ArrowLeft","ArrowRight","ArrowUp","End","Enter","F2","Home","PageDown","PageUp"," "].indexOf(r)||t.disabled||t.displayLoadingIndicator)return;"Enter"!==r&&e.preventDefault();const n=Array.from(t.$.mainContainer.querySelectorAll("smart-tree-item, smart-tree-items-group")),l="one"===t.selectionMode||"oneOrManyExtended"===t.selectionMode&&!e.ctrlKey&&!e.metaKey,a=t.$.mainContainer.querySelector("[focus]");function o(r){for(let o=r;o<n.length;o++){const r=n[o];if(t._canItemBeHovered(r)){if(a){if(a===r)break;a.removeAttribute("focus")}t._hoverViaKeyboard(r,l,e);break}}}function s(r){for(let o=r;o>=0;o--){const r=n[o];if(t._canItemBeHovered(r)){if(a){if(a===r)break;a.removeAttribute("focus")}t._hoverViaKeyboard(r,l,e);break}}}function i(){a.level>1&&t._canItemBeSelected(a.parentItem)&&(a.removeAttribute("focus"),t._hoverViaKeyboard(a.parentItem,l,e))}let d;switch(r){case"ArrowDown":d=a?n.indexOf(a)+1:0,o(d);break;case"ArrowLeft":if(!a)return;if(a instanceof Smart.TreeItem)i();else{if(t._isContainerOpened(a.level+1,a.container))return void t._closeSubContainersTreeMode(a.level+1,a.container,!0,!0);i()}break;case"ArrowRight":if(!a||a instanceof Smart.TreeItem)return;if(t._isContainerOpened(a.level+1,a.container)){const r=t._getFirstEnabledChild(a.itemContainer);r&&(a.removeAttribute("focus"),t._hoverViaKeyboard(r,l,e))}else t._menuItemsGroupSelectionHandler(a,{target:a,type:"keydown"});break;case"ArrowUp":d=a?n.indexOf(a)-1:n.length-1,s(d);break;case"End":s(n.length-1);break;case"Enter":a&&a instanceof Smart.TreeItemsGroup&&t._menuItemsGroupSelectionHandler(a,{target:a,type:"keydown"});break;case"F2":t.editable&&t._startEditing(a);break;case"Home":o(0);break;case"PageDown":t._pageDownHandler(n,a,l,e);break;case"PageUp":t._pageUpHandler(n,a,l,e);break;case" ":a&&t._handleSelection(a,e)}}_mainContainerSwipeHandler(e){Smart.Tree.treeItemDragged&&e.stopPropagation()}_menuItemsGroupSelectionHandler(e,t,r){const n=this,l=n.toggleMode,a=!!t.originalEvent&&t.originalEvent.target.classList.contains("smart-tree-items-group-arrow"),o=e.container;if(n._waitAnimation&&n._treeAnimationInProgress)return;if("down"!==t.type||a||"dblclick"===l&&1!==n._dblclickObject.numberOfClicks||n._handleSelection(e,t),"down"===t.type&&!a&&("dblclick"===l&&2!==n._dblclickObject.numberOfClicks||"click"===l&&n._dblclickObject.numberOfClicks>1||"arrow"===l)||e.hiddenChildren)return;const s=o.level;let i=n.hasAnimation;if("keydown"===t.type&&n._discardKeyboardHover(),n._treeAnimationInProgress&&(o.removeEventListener("transitionend",n._transitionendHandlerExpand),o.removeEventListener("transitionend",n._transitionendHandlerCollapse)),n._isContainerOpened(s,o))n._closeSubContainersTreeMode(s,o,!0,!1!==r);else{if(n.$.fireEvent("expanding",{item:e,label:e.label,path:e.path,value:e.value,children:e.itemContainer.children}).defaultPrevented)return;if(n._handleSingleExpandMode(e),i&&("expand"!==t.type&&(n._ensureVisibleOnTransitionend=e),n._expandSection(o)),o.$.removeClass("smart-visibility-hidden"),"keydown"===t.type&&(e.setAttribute("focus",""),n._hoveredViaKeyboard=e),e.$.addClass("smart-tree-items-group-opened"),e.$.addClass("smart-tree-items-group-expanded"),n._addOpenedContainer(s,o),void 0===t.type&&n._hoverViaKeyboard(n._getFirstEnabledChild(e.itemContainer)),!1!==r){const t={item:e,label:e.label,path:e.path,value:e.value,children:e.itemContainer.children};n.toggleCallback?(t.type="expand",n.toggleCallback(t)):n.$.fireEvent("expand",t)}}i||(n._checkOverflow(),"expand"!==t.type&&n._ensureVisible(e))}_handleSingleExpandMode(e){const t=this;if("single"!==t.expandMode)return;const r=e.parentItem,n=t._state.expanded.map((e=>Object.values(t._menuItems).find((t=>t.id===e)))).filter((e=>e.parentItem===r));n.length>0&&n.forEach((e=>t.collapseItem(e)))}_mouseenterHandler(){const e=this;e.autoHideToggleElement&&e.$mainContainer.removeClass("hidden-arrows"),Smart.Tree.treeItemDragged&&e.allowDrop&&!e.disabled&&(Smart.Tree.hoveredTree=e)}_mouseleaveHandler(){const e=this;if(e.autoHideToggleElement&&e.$mainContainer.addClass("hidden-arrows"),Smart.Tree.treeItemDragged){Smart.Tree.hoveredTree&&(clearInterval(Smart.Tree.hoveredTree._dragInterval),delete Smart.Tree.hoveredTree);const e=Smart.Tree.hoveredItem;e&&(e.classList.remove("drop-target"),e.classList.remove("top"),e.classList.remove("bottom"),delete Smart.Tree.hoveredItem)}}_moveHandler(e){const t=this,r=t._dragDetails;if(!r)return;if(!r.FeedbackShown){if(!(Math.abs(r.StartPosition.left-e.pageX)>5||Math.abs(r.StartPosition.top-e.pageY)>5))return;if(t.$.fireEvent("dragStart",{item:r.Item,items:r.Items,data:r,container:t,previousContainer:t,originalEvent:r.OriginalEvent}).defaultPrevented)return delete t._dragDetails,delete Smart.Tree.treeItemDragged,delete Smart.Tree.hoveredTree,delete Smart.Tree.hoveredItem,void(t.$.scrollViewer._scrollView.disableSwipeScroll=!1);document.body.classList.add("smart-dragging"),r.Feedback=t._addDragFeedback(),r.FeedbackShown=!0}const n=t.dragOffset;let l,a,o;if(t.$.fireEvent("dragging",{item:r.Item,items:r.Items,data:r,originalEvent:e}),r.Feedback.style.left=e.pageX+n[0]+"px",r.Feedback.style.top=e.pageY+n[1]+"px",t._isMobile){const r=Smart.Tree.hoveredItem;r&&(r.classList.remove("drop-target"),r.classList.remove("top"),r.classList.remove("bottom"),delete Smart.Tree.hoveredItem);const n=t.getRootNode().elementFromPoint(e.clientX,e.clientY);Smart.Tree.hoveredTree&&(clearInterval(Smart.Tree.hoveredTree._dragInterval),delete Smart.Tree.hoveredTree),n&&(l=n.closest("smart-tree"),l&&l.allowDrop&&(Smart.Tree.hoveredTree=l,a=n.closest("smart-tree-item")||n.closest("smart-tree-items-group"),a?o=a:a=n))}if(l=Smart.Tree.hoveredTree,!l)return;const s=l.filterable?l.$.filterInput.offsetHeight+10:0;if(clearInterval(l._dragInterval),l._dragInterval=setInterval((function(){const r=l.getBoundingClientRect();l.$.scrollViewer.scrollHeight>0&&r.left<=e.clientX&&r.left+r.width>=e.clientX?e.clientY>=r.top+s&&e.clientY<=r.top+20+s?(l.$.scrollViewer.scrollTop-=t._autoScrollCoefficient,"scrollButtons"===l.scrollMode&&l._updateScrollButtonVisibility()):e.clientY>=r.top+r.height-20&&e.clientY<=r.top+r.height?(l.$.scrollViewer.scrollTop+=t._autoScrollCoefficient,"scrollButtons"===l.scrollMode&&l._updateScrollButtonVisibility()):clearInterval(l._dragInterval):clearInterval(l._dragInterval)}),1),t._isMobile||(a=e.originalEvent.target,a&&a.enableShadowDOM&&(a=e.originalEvent.composedPath()[0]),a&&a.closest&&(o=a.closest("smart-tree-item")||a.closest("smart-tree-items-group"))),o){if(Smart.Tree.hoveredItem&&o!==Smart.Tree.hoveredItem&&(Smart.Tree.hoveredItem.classList.remove("drop-target"),Smart.Tree.hoveredItem.classList.remove("top"),Smart.Tree.hoveredItem.classList.remove("bottom")),Smart.Tree.hoveredItem=o,r.Item.contains(o))return;const t=o.getBoundingClientRect();o instanceof Smart.TreeItem?e.clientY-t.top<=t.height/2?(o.classList.remove("bottom"),o.classList.add("top")):(o.classList.remove("top"),o.classList.add("bottom")):e.clientY-t.top<=10?(o.classList.remove("bottom"),o.classList.add("top")):!o.expanded&&t.bottom-e.clientY<=10?(o.classList.remove("top"),o.classList.add("bottom")):(o.classList.remove("top"),o.classList.remove("bottom")),o.classList.add("drop-target")}else if(Smart.Tree.hoveredItem&&(Smart.Tree.hoveredItem.classList.remove("drop-target"),Smart.Tree.hoveredItem.classList.remove("top"),Smart.Tree.hoveredItem.classList.remove("bottom")),a===l.$.scrollViewer.$.scrollViewerContainer)if(l._menuItems[0]){let e=l.$.mainContainer.lastElementChild,t=l.$.mainContainer.childElementCount-1;for(;e.hidden&&(t--,e=l.$.mainContainer.children[t],e););if(e){if(r.Item===e)return;Smart.Tree.hoveredItem=e,Smart.Tree.hoveredItem.classList.add("bottom")}else Smart.Tree.hoveredItem=l.$.container;Smart.Tree.hoveredItem.classList.add("drop-target")}else Smart.Tree.hoveredItem=l.$.container,Smart.Tree.hoveredItem.classList.add("drop-target");else delete Smart.Tree.hoveredItem}_moveSubItems(e,t,r){const n=this;for(let l=0;l<e.length;l++){const a=e[l];a.menu=t,a.set("level",a.parentItem.level+1),a.firstElementChild.style.paddingLeft="",a.firstElementChild.style.paddingRight="",n._setIndentation(a.firstElementChild,a.level,r),a.hidden=!1,a.$.removeClass("smart-hidden"),a.$.removeClass("filtered-child"),a.$.removeClass("last-filtered-child"),a instanceof Smart.TreeItemsGroup&&(a.$.removeClass("hidden-children"),a.container.level=a.level+1,n._moveSubItems(a.itemContainer.children,t,r),t!==n&&a.expanded&&(t._menuItemsGroupsToExpand.push(a),n._updateState("expanded",a.id,!1)))}}_moveTreeItem(e,t,r,n){const l=this,a=e.level;if(0===r){if(t.previousElementSibling===e)return;t.parentElement.insertBefore(e,t),e.set("level",t.level),e.parentItem=t.parentItem}else if(2===r){if(t.nextElementSibling===e)return;t.parentElement.insertBefore(e,t.nextElementSibling||null),e.set("level",t.level),e.parentItem=t.parentItem}else if(t===n[0].$.container)n[0].$.mainContainer.appendChild(e),e.set("level",1),e.parentItem=void 0;else{if(t.itemContainer.lastElementChild===e)return;t.itemContainer.appendChild(e),e.set("level",t.level+1),e.parentItem=t}const o=n[0].rightToLeft?"paddingRight":"paddingLeft";if(e.menu=n[0],e.parentItem=e.parentElement.menuItemsGroup,e.firstElementChild.style.paddingLeft="",e.firstElementChild.style.paddingRight="",l._setIndentation(e.firstElementChild,e.level,o),e.hidden=!1,e.$.removeClass("smart-hidden"),e.$.removeClass("filtered-child"),e.$.removeClass("last-filtered-child"),e instanceof Smart.TreeItemsGroup&&(e.$.removeClass("hidden-children"),e.container.level=e.level+1,l._moveSubItems(e.itemContainer.children,n[0],o),e.expanded)){const t=l._openedContainers[a+1].indexOf(e.container);-1!==t&&l._openedContainers[a+1].splice(t,1),n[0]._menuItemsGroupsToExpand.push(e),2===n.length&&l._updateState("expanded",e.id,!1)}for(let e=0;e<n.length;e++){const t=n[e],r=t.context,l=t.selectedIndexes.slice(0);t.context=t,t._menuItems={},t._refreshItemPaths(t.$.mainContainer,!0,void 0,t.sorted&&!t.autoSort),t.selectedIndexes=[],t._applySelection(!0,l,!1),t._checkOverflow(),t.context=r}n[0]._expandItemsByDefault()}_overriddenMenuHandler(){}_pageDownHandler(e,t,r,n){const l=this,a=l.$.scrollViewer;function o(){for(let t=e.length-1;t>=0;t--){const r=e[t];if(l._canItemBeHovered(r)&&l._getOffsetTop(r)+r.firstElementChild.offsetHeight<=a.scrollTop+a.$.container.offsetHeight)return r}}if(!t)return;let s=o();s&&(t!==s?(t.removeAttribute("focus"),l._hoverViaKeyboard(s,r,n)):a.scrollTop+a.$.container.offsetHeight!==a.$.scrollViewerContentContainer.offsetHeight&&(l.$.scrollViewer.scrollTop+=a.$.container.offsetHeight,"scrollButtons"===l.scrollMode&&l._updateScrollButtonVisibility(),s=o(),t.removeAttribute("focus"),l._hoverViaKeyboard(s,r,n)))}_pageUpHandler(e,t,r,n){const l=this,a=l.$.scrollViewer;function o(){for(let t=0;t<e.length;t++){const r=e[t];if(l._canItemBeHovered(r)&&l._getOffsetTop(r)>=a.scrollTop)return r}}if(!t)return;let s=o();s&&(t!==s?(t.removeAttribute("focus"),l._hoverViaKeyboard(s,r,n)):0!==a.scrollTop?(l.$.scrollViewer.scrollTop-=a.$.container.offsetHeight,"scrollButtons"===l.scrollMode&&l._updateScrollButtonVisibility(),s=o(),t.removeAttribute("focus"),l._hoverViaKeyboard(s,r,n)):l.filterable&&l.$.filterInput.focus())}_refreshItemPathsAndSelection(){const e=this,t=e.selectedIndexes.slice(0);e._menuItems={},e._refreshItemPaths(e.$.mainContainer,!0),e.selectedIndexes=[],e._applySelection(!0,t)}_refreshSorting(){const e=this;e._unsortItems(e.$.mainContainer),e._applyGrouping(e.$.mainContainer);const t=e._state.filter;t&&e._applyFilter(t),e._checkOverflow()}_scroll(e){const t=this;t.$.scrollViewer.scrollTop=t.$.scrollViewer.scrollTop+10*e,t._updateScrollButtonVisibility(),t.focus()}_scrollButtonFarClickHandler(){this.$.scrollButtonFar.disabled||this._scroll(1)}_scrollButtonNearClickHandler(){this.$.scrollButtonNear.disabled||this._scroll(-1)}_scrollViewerDownHandler(e){const t=this;if(e.target!==t.$.scrollViewer||t.disabled||t.displayLoadingIndicator||!t._isMobile&&1!==e.which)return;const r=e.originalEvent.target;if(r!==t.$.editInput)if(t._isMobile){const n=t.$.scrollViewer.scrollTop,l=t.getBoundingClientRect().top,a=setTimeout((function(){if(!t._dragDetails&&t.$.scrollViewer.scrollTop===n&&t.getBoundingClientRect().top===l){const n=t.context;t.context=t,t._continueSelection(r,e),t.context=n}}),250);t._downTimeoutInfo={target:r,event:e,scrollTop:n,top:l,timeout:a}}else t._continueSelection(r,e);else t._editInputDown=!0}_continueSelection(e,t){const r=this,n=e.closest("smart-tree-item")||e.closest("smart-tree-items-group");if(!(n&&n.parentElement&&r._canItemBeSelected(n,!0)))return;const l=e.closest(".smart-tree-items-group-arrow");let a;if(n instanceof Smart.TreeItem)a="_handleSelection";else{if(e===n.container||e===n.container.firstElementChild)return;a="_menuItemsGroupSelectionHandler"}if(clearTimeout(r._dblclickTimeout),n!==r._dblclickObject.target&&(r._dblclickObject.numberOfClicks=0),r._dblclickObject.target=n,r._dblclickObject.numberOfClicks++,r._dblclickTimeout=setTimeout((function(){r._dblclickObject.numberOfClicks=0}),300),2===r._dblclickObject.numberOfClicks){if(r.editable)return void r._startEditing(n);r._dblclickHandler(n,l,t),r._dblclickObject.numberOfClicks=0}n.selected&&(r._downItem=n),r[a](n,t),r._discardKeyboardHover(!0),r._hoverViaKeyboard(n,!1,void 0,!1),l||r._startDragging(n,t)}_scrollViewerTouchmoveHandler(e){this._dragDetails&&e.cancelable&&(e.preventDefault(),e.stopPropagation())}_scrollViewerWheelHandler(){const e=this;"scrollButtons"===e.scrollMode&&"hidden"!==e.overflow&&e._updateScrollButtonVisibility()}_selectItemRange(e,t){const r=this,n=Array.from(r.$.mainContainer.querySelectorAll("smart-tree-item, smart-tree-items-group")),l=n.indexOf(e),a=n.indexOf(t),o=[];for(let e=Math.min(l,a);e<=Math.max(l,a);e++){const t=n[e];r._canItemBeHovered(t)&&(o.push(t.path),t.set("selected",!0))}return o}_selectstartHandler(e){this._dragDetails&&e.preventDefault()}_setFocusable(){super._setFocusable();const e=this;e.disabled||e.unfocusable?e.$.filterInput.tabIndex=-1:e.$.filterInput.removeAttribute("tabindex")}_setIndentation(e,t,r){const n=this;let l=n._paddingSize;void 0===l&&(l=parseFloat(getComputedStyle(n).getPropertyValue("--smart-tree-indent")),isNaN(l)?l=20:l+=4,n._paddingSize=l),e.style[r]=t*l-l/2+"px"}_setThreeStateCheckbox(e,t,r){t===e.itemContainer.childElementCount&&t>0?(e.removeAttribute("indeterminate"),e.set("selected",!0),e.setAttribute("aria-selected",!0)):0===t&&0===r?(e.removeAttribute("indeterminate"),e.set("selected",!1),e.setAttribute("aria-selected",!1)):(e.setAttribute("indeterminate",""),e.set("selected",!1),e.setAttribute("aria-selected",!1))}_sortItems(e){const t=this;if(!t.sorted)return;let r;e instanceof Smart.TreeItemsGroup?r=e.container.firstElementChild:e===t.$.mainContainer&&(r=e);let n=Array.from(r.children);if(t.sort){const r=t.sort(n,e);Array.isArray(r)&&(n=r)}else"asc"===t.sortDirection?n.sort((function(e,t){return e.label.localeCompare(t.label)})):n.sort((function(e,t){return t.label.localeCompare(e.label)}));for(let e=n.length-1;e>=0;e--)r.insertBefore(n[e],r.firstElementChild)}_sortPathCollection(e){e.sort((function(e,t){const r=e.split("."),n=t.split("."),l=Math.max(r.length,n.length);for(let e=0;e<l;e++){const t=parseFloat(r[e]),l=parseFloat(n[e]);if(isNaN(t))return-1;if(isNaN(l))return 1;if(t<l)return-1;if(t>l)return 1}}))}_startDragging(e,t){const r=this,n=r.selectionMode;if(!r.allowDrag||r._editedItem||"none"===n)return;const l=[],a=[];let o;if(-1!==["one","zeroAndOne","zeroOrOne","checkBox","radioButton"].indexOf(n))o=!1,l.push(e),a.push(e);else{o=!0;for(let e=0;e<r.selectedIndexes.length;e++)l.push(r._menuItems[r.selectedIndexes[e]]),a.push(l[e]);for(let e=0;e<l.length;e++){const t=l[e];if(-1!==a.indexOf(t))for(let e=a.length-1;e>=0;e--){const r=a[e];if(r===t)break;t.contains(r)&&a.splice(e,1)}}}r._dragDetails={StartPosition:{left:t.pageX,top:t.pageY},Items:l,ValidItems:a,Item:e,FeedbackShown:!1,ValidateOnDrop:o,OriginalEvent:t,StartTime:new Date,Dragging:!0},Smart.Tree.treeItemDragged=!0,r.$.scrollViewer._scrollView.disableSwipeScroll=!0,r.allowDrop&&(Smart.Tree.hoveredTree=r,Smart.Tree.hoveredItem=e)}_startEditing(e){const t=this,r=t.$.editInput;let n,l;if(!t._canItemBeSelected(e,!0))return;const a=e.firstElementChild,o=a.firstElementChild;t.rightToLeft?(n=function(){return a.offsetWidth-o.offsetLeft-o.offsetWidth},l="paddingRight"):(n=function(){return o.offsetLeft+parseFloat(window.getComputedStyle(a).borderLeftWidth)},l="paddingLeft"),e instanceof Smart.TreeItemsGroup?(r.style[l]=n()+(t.showLines?parseFloat(window.getComputedStyle(o.firstElementChild).paddingLeft):0)-1+"px",r.style.height=a.offsetHeight+"px"):(r.style[l]=e.offsetWidth+parseInt(a.style[l],10)-a.offsetWidth+parseFloat(window.getComputedStyle(o.firstElementChild).paddingLeft)-2+"px",r.style.height=e.offsetHeight+"px"),r.style.top=t._getOffsetTop(e)+"px",t.$editInput.removeClass("smart-hidden"),r.value=e.label,t._editedItem=e,r.setAttribute("aria-label","Edit item "+e.label),setTimeout((function(){r.focus()}),0)}_styleChangedHandler(e){e.detail.styleProperties&&e.detail.styleProperties["font-size"]&&this._checkOverflow()}_updateScrollButtonVisibility(){const e=this,t=e.overflow;if("scrollbar"===e.scrollMode||"hidden"===t)return;let r=!0,n=!0;if(0===Math.round(e.$.scrollViewer.scrollTop)&&(r=!1),Math.round(e.$.scrollViewer.$.scrollViewerContainer.offsetHeight+e.$.scrollViewer.scrollTop)>=Math.round(e.$.scrollViewer.$.scrollViewerContentContainer.offsetHeight)&&(n=!1),"auto"===t){if(r&&n)return e.$scrollButtonNear.removeClass("smart-hidden"),e.$scrollButtonFar.removeClass("smart-hidden"),e.$scrollViewer.removeClass("one-button-shown"),void e.$.scrollViewer.refresh();r?e.$scrollButtonNear.removeClass("smart-hidden"):e.$scrollButtonNear.addClass("smart-hidden"),n?e.$scrollButtonFar.removeClass("smart-hidden"):e.$scrollButtonFar.addClass("smart-hidden"),e.$scrollViewer.addClass("one-button-shown"),e.$.scrollViewer.refresh()}else"scroll"!==t||e.disabled||(e.$.scrollButtonNear.disabled=!r,e.$.scrollButtonFar.disabled=!n)}_updateState(e,t,r){const n=this;switch(e){case"expanded":{const e=n._state.expanded.indexOf(t);if(r&&-1===e)n._state.expanded.push(t);else{if(r||-1===e)return;n._state.expanded.splice(e,1)}break}case"filter":n._state.filter=void 0!==t?t:n.$.filterInput.value;break;case"selected":n._state.selected=[];for(let e=0;e<n.selectedIndexes.length;e++){const t=n._menuItems[n.selectedIndexes[e]];n._state.selected.push(t.id)}break;case"sorted":n._state.sorted=t}n.autoSaveState&&window.localStorage.setItem("smartTree"+n.id,JSON.stringify(n._state))}_verticalScrollbarHandler(){const e=this,t=e.$.verticalScrollBar,r=t.value;e.disabled||(t.max!==r?t.min!==r?(delete e._topReached,delete e._bottomReached):e._topReached||(e.$.fireEvent("scrollTopReached"),delete e._bottomReached,e._topReached=!0):e._bottomReached||(e.$.fireEvent("scrollBottomReached"),delete e._topReached,e._bottomReached=!0))}});
56
56
 
57
57
  /***/ })
58
58
 
@@ -133,8 +133,8 @@ var __webpack_exports__ = {};
133
133
  /* harmony import */ var _smart_tree_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(5482);
134
134
  /* harmony import */ var _smart_tree_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_smart_tree_js__WEBPACK_IMPORTED_MODULE_6__);
135
135
 
136
- /* Smart UI v15.0.0 (2023-01-19)
137
- Copyright (c) 2011-2022 jQWidgets.
136
+ /* Smart UI v15.0.3 (2023-01-26)
137
+ Copyright (c) 2011-2023 jQWidgets.
138
138
  License: https://htmlelements.com/license/ */ //
139
139
 
140
140
 
@@ -97,8 +97,8 @@ var __webpack_exports__ = {};
97
97
  /* harmony import */ var _smart_validator_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(8078);
98
98
  /* harmony import */ var _smart_validator_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_smart_validator_js__WEBPACK_IMPORTED_MODULE_2__);
99
99
 
100
- /* Smart UI v15.0.0 (2023-01-19)
101
- Copyright (c) 2011-2022 jQWidgets.
100
+ /* Smart UI v15.0.3 (2023-01-26)
101
+ Copyright (c) 2011-2023 jQWidgets.
102
102
  License: https://htmlelements.com/license/ */ //
103
103
 
104
104
 
@@ -784,7 +784,7 @@ Smart("smart-combo-box",class extends Smart.DropDownList{static get properties()
784
784
  /***/ 7650:
785
785
  /***/ (() => {
786
786
 
787
- Smart("smart-drop-down-list",class extends Smart.ContentElement{static get properties(){return{autoCloseDelay:{value:100,type:"number"},dataSource:{value:null,type:"any",reflectToAttribute:!1},displayLoadingIndicator:{value:!1,type:"boolean"},displayMember:{value:"",type:"string"},displayMode:{allowedValues:["outlined","filled","underlined"],value:"outlined",type:"string"},dropDownAppendTo:{value:null,type:"any"},dropDownButtonPosition:{allowedValues:["none","left","right","top","bottom"],value:"right",defaultReflectToAttribute:!0,type:"string"},dropDownMinHeight:{value:"",type:"any",validator:"_propertyValidator"},dropDownHeight:{value:"",type:"any",validator:"_propertyValidator"},dropDownMaxHeight:{value:"",type:"any",validator:"_propertyValidator"},dropDownOpenMode:{allowedValues:["none","default","dropDownButton","auto"],value:"default",type:"string"},dropDownOverlay:{value:!1,type:"boolean"},dropDownPlaceholder:{value:"No Items",type:"string"},dropDownPosition:{allowedValues:["auto","top","bottom","overlay-top","overlay-center","overlay-bottom","center-bottom","center-top"],value:"auto",type:"string"},dropDownMinWidth:{value:"",type:"any",validator:"_propertyValidator"},dropDownWidth:{value:"",type:"any",validator:"_propertyValidator"},dropDownMaxWidth:{value:"",type:"any",validator:"_propertyValidator"},filterable:{value:!1,type:"boolean"},filterInputPlaceholder:{value:"",type:"string"},filterCallback:{value:null,type:"function?"},filterMode:{value:"startsWithIgnoreCase",allowedValues:["contains","containsIgnoreCase","doesNotContain","doesNotContainIgnoreCase","equals","equalsIgnoreCase","startsWith","startsWithIgnoreCase","endsWith","endsWithIgnoreCase","custom"],type:"string"},grouped:{value:!1,type:"boolean"},groupMember:{value:"",type:"string"},hint:{value:"",type:"string"},horizontalScrollBarVisibility:{type:"string",value:"auto",allowedValues:["auto","disabled","hidden","visible"]},incrementalSearchDelay:{value:700,type:"number?"},incrementalSearchMode:{value:"startsWithIgnoreCase",allowedValues:["contains","containsIgnoreCase","doesNotContain","doesNotContainIgnoreCase","equals","equalsIgnoreCase","startsWith","startsWithIgnoreCase","endsWith","endsWithIgnoreCase"],type:"string"},itemMeasureMode:{value:"auto",allowedValues:["auto","precise"],type:"string"},inputMember:{value:"label",type:"string"},itemTemplate:{value:null,type:"any"},itemHeight:{value:null,type:"number?"},label:{value:"",type:"string"},loadingIndicatorPlaceholder:{value:"Loading...",type:"string"},loadingIndicatorPosition:{value:"center",allowedValues:["bottom","center","top"],type:"string"},messages:{extend:!0,value:{en:{invalidNode:'{{elementType}}: Invalid parameter "{{node}}" when calling {{method}}.'}},type:"object"},name:{value:"",type:"string"},opened:{value:!1,type:"boolean"},placeholder:{value:"",type:"string"},resizeMode:{value:"none",allowedValues:["none","horizontal","vertical","both"],type:"string"},resizeIndicator:{value:!1,type:"boolean"},selectionDisplayMode:{value:"plain",allowedValues:["plain","placeholder","tokens"],type:"string"},selectionMode:{value:"zeroAndOne",allowedValues:["none","oneOrManyExtended","zeroOrMany","oneOrMany","zeroOrOne","zeroAndOne","one","checkBox","radioButton"],type:"string"},selectedIndexes:{value:[],type:"array"},selectedValues:{value:[],type:"array"},sorted:{value:!1,type:"boolean"},sortDirection:{value:"asc",type:"string"},tokenTemplate:{value:null,type:"any"},type:{value:"list",type:"string",defaultReflectToAttribute:!0,readonly:!0},valueMember:{value:"",type:"string"},virtualized:{value:!1,type:"boolean"},verticalScrollBarVisibility:{type:"string",value:"auto",allowedValues:["auto","disabled","hidden","visible"]}}}static get listeners(){return{"actionButton.down":"_buttonsDownHandler","actionButton.mouseenter":"_buttonsMouseEventsHandler","actionButton.mouseleave":"_buttonsMouseEventsHandler","actionButton.focus":"_buttonsFocusHandler","actionButton.blur":"_buttonsFocusHandler","document.selectstart":"_selectStartHandler","document.dragstart":"_dragStartHandler","document.down":"_documentDownHandler","document.up":"_documentUpHandler","document.move":"_documentMoveHandler","dropDownButton.down":"_buttonsDownHandler","dropDownButton.mouseenter":"_buttonsMouseEventsHandler","dropDownButton.mouseleave":"_buttonsMouseEventsHandler",keydown:"_keyDownHandler",keyup:"_keyUpHandler",focus:"_focusEventHandler",blur:"_blurEventHandler","dropDownButton.focus":"_buttonsFocusHandler","dropDownButton.blur":"_buttonsFocusHandler","dropDownContainer.transitionend":"_dropDownTransitionendHandler","listBox.change":"_listBoxChangeHandler","listBox.itemClick":"_listBoxItemClickHandler","listBox.keydown":"_listBoxKeyDownHandler","listBox.bindingComplete":"_bindingCompleteHandler",mouseenter:"_mouseEnterHandler",mouseleave:"_mouseLeaveHandler",resize:"_resizeHandler","resizeBar.move":"_resizeBarMoveHandler",styleChanged:"_styleChangedHandler",wheel:"_mouseWheelHandler"}}template(){return'<div id="container" role="presentation">\n <span class="smart-label" id="label">[[label]]</span>\n <div id="content" class="smart-content" role="presentation">\n <div class="smart-buttons-container" id="buttonsContainer" role="presentation">\n <span id="actionButton" class ="smart-action-button" role="presentation">[[placeholder]]</span>\n <span id="dropDownButton" class="smart-drop-down-button">\n <span class ="smart-drop-down-button-icon" id="arrow" aria-hidden="true"></span>\n </span>\n </div>\n <div id="dropDownContainer" class="smart-drop-down smart-drop-down-container smart-visibility-hidden" role="presentation">\n <smart-list-box id="listBox" unfocusable\n animation="[[animation]]"\n data-source="[[dataSource]]"\n disabled="[[disabled]]"\n display-loading-indicator="[[displayLoadingIndicator]]"\n display-member="[[displayMember]]"\n filterable="[[filterable]]"\n filter-callback="[[filterCallback]]"\n filter-mode="[[filterMode]]"\n filter-input-placeholder="[[filterInputPlaceholder]]"\n grouped="[[grouped]]"\n group-member="[[groupMember]]"\n item-height="[[itemHeight]]"\n item-measure-mode="[[itemMeasureMode]]"\n item-template="[[itemTemplate]]"\n incremental-search-delay="[[incrementalSearchDelay]]"\n incremental-search-mode="[[incrementalSearchMode]]"\n loading-indicator-placeholder="[[loadingIndicatorPlaceholder]]"\n loading-indicator-position="[[loadingIndicatorPosition]]"\n name="[[name]]"\n placeholder="[[dropDownPlaceholder]]"\n right-to-left="[[rightToLeft]]"\n readonly="[[readonly]]"\n selected-indexes="{{selectedIndexes}}"\n selection-mode="[[selectionMode]]"\n selected-values="{{selectedValues}}"\n sorted="[[sorted]]"\n sort-direction="[[sortDirection]]"\n theme="[[theme]]"\n value-member="[[valueMember]]"\n horizontal-scroll-bar-visibility="[[horizontalScrollBarVisibility]]"\n vertical-scroll-bar-visibility="[[verticalScrollBarVisibility]]"\n virtualized="[[virtualized]]">\n <content></content>\n </smart-list-box>\n <div id="resizeBar" class="smart-drop-down-resize-bar" aria-label="Resize">\n <div></div>\n </div>\n </div>\n </div>\n <span class="smart-hint smart-hidden" id="hint">[[hint]]</span>\n </div>'}static get styleUrls(){return["smart.dropdownlist.css","smart.dropdown.css"]}propertyChangedHandler(e,t,o){super.propertyChangedHandler(e,t,o);const n=this;switch(e){case"animation":n.$.dropDownContainer.setAttribute("animation",n.animation);break;case"disabled":n._setFocusable(),n.close(),n._positionDetection.handleAutoPositioning();break;case"dataSource":case"displayMember":case"inputMember":n.$.actionButton&&(n.$.actionButton.innerHTML=n.placeholder),n._setDropDownSize(),n._positionDetection.checkBrowserBounds("vertically"),n._positionDetection.positionDropDown(),n._positionDetection.checkBrowserBounds("horizontally");break;case"dropDownAppendTo":n._positionDetection.dropDownAppendToChangedHandler();break;case"dropDownOpenMode":n._setFocusable(),n.$dropDownContainer.addClass("smart-visibility-hidden"),n.$.dropDownContainer.setAttribute("drop-down-open-mode",o),n.$.dropDownButton.removeAttribute("selected"),n.removeAttribute("drop-down-button-focus"),n.removeAttribute("action-button-focus"),n.opened=!1,n._ariaButton&&n._ariaButton.setAttribute("aria-expanded",!1),n._setAriaRelations();break;case"dropDownOverlay":o||n._positionDetection.removeOverlay();break;case"dropDownPosition":n._positionDetection.dropDownPositionChangedHandler();break;case"dropDownMinWidth":case"dropDownWidth":case"dropDownMaxWidth":case"dropDownHeight":case"dropDownMinHeight":case"dropDownMaxHeight":n._setDropDownSize();break;case"filterable":n.$.listBox.filterable=o,n._dropDownSize&&"auto"===n._dropDownSize.height&&n._setDropDownSize();break;case"label":if(!n._ariaButton)return;o?n._ariaButton.setAttribute("aria-labelledby",n.$.label.id):"DropDownList"===n.elementName&&n._ariaButton.setAttribute("aria-labelledby",n.$.actionButton.id);break;case"opened":if(n.disabled||n.readonly)return;o?n.open():n.close();break;case"placeholder":n._applySelection();break;case"readonly":n.close();break;case"resizeIndicator":o?n.$.dropDownContainer.setAttribute("resize-indicator",""):n.$.dropDownContainer.removeAttribute("resize-indicator");break;case"resizeMode":n.$.dropDownContainer.setAttribute("resize-mode",n.resizeMode);break;case"selectedValues":case"selectedIndexes":0===o.length?n.$.actionButton.innerHTML=n.placeholder:n._applySelection();break;case"selectionMode":n.$.listBox&&(n.$.listBox[e]=o,"checkBox"!==o&&"radioButton"!==o&&"checkBox"!==t&&"radioButton"!==t||n._setDropDownSize());break;case"selectionDisplayMode":n._applySelection();break;case"tokenTemplate":n._tokenTemplate=n._validateTemplate(n.tokenTemplate),n._applySelection();break;case"unfocusable":n._setFocusable()}}_updateTargetValue(){const e=this;if(e.dataset.target){const t=document.querySelector(e.dataset.target);if(t){const o=e.dataset.property,n=e.value;o&&void 0!==t[o]&&(t[o]=n)}}}appendChild(e){const t=this;if(!t.isCompleted||e instanceof HTMLElement&&e.classList.contains("smart-resize-trigger-container")){const e=Array.prototype.slice.call(arguments,2);return HTMLElement.prototype.appendChild.apply(t,e.concat(Array.prototype.slice.call(arguments)))}e?(t.$.listBox.appendChild(e),t._dropDownSize&&"auto"===t._dropDownSize.height&&t._setDropDownSize()):t.error(t.localize("invalidNode",{elementType:t.nodeName.toLowerCase(),method:"appendChild",node:"node"}))}attached(){const e=this;super.attached(),e.isCompleted&&e.$.dropDownContainer&&(e._positionDetection.dropDownAttached("_setDropDownSize"),e._positionDetection.checkBrowserBounds(),e.selectedIndexes&&e._applySelection())}detached(){const e=this;super.detached(),e.$.dropDownContainer&&(e.close(),e._positionDetection&&e._positionDetection.dropDownDetached())}clearItems(){const e=this;e.$.listBox&&(e.$.listBox.clearItems(),e.$.actionButton.innerHTML=e.placeholder)}clearSelection(){const e=this;e.$.listBox&&(e.$.listBox.clearSelection(),e.$.actionButton.innerHTML=e.placeholder)}close(){const e=this;e.$dropDownContainer.hasClass("smart-visibility-hidden")||e.$.fireEvent("closing").defaultPrevented||(e.$dropDownContainer.addClass("smart-visibility-hidden"),e.$.fireEvent("close"),e.$.dropDownButton&&e.$.dropDownButton.removeAttribute("selected"),e.opened=!1,e._ariaButton&&e._ariaButton.setAttribute("aria-expanded",!1),e._preventDropDownClose=!1,e._positionDetection.removeOverlay(!0),e.$.listBox.removeAttribute("focus"),e._edgeMacFF&&!e.hasAnimation&&e.$.dropDownContainer&&(e.$.dropDownContainer.style.top=e.$.dropDownContainer.style.left="",e.$dropDownContainer.addClass("not-in-view")))}cloneNode(){const e=this;if(!e.$.listBox)return;let t=HTMLElement.prototype.cloneNode.apply(e,Array.prototype.slice.call(arguments,0,1));return t.dataSource=e.dataSource,t}ensureVisible(e){this.$.listBox&&this.$.listBox.ensureVisible(e)}getItem(e){if(this.$.listBox)return this.$.listBox.getItem(e)}get items(){const e=this;return e.$&&e.$.listBox?e.$.listBox.items:[]}get _focusedItem(){const e=this;return e.$&&e.$.listBox?e.$.listBox._focusedItem:null}insert(e,t){const o=this;o.$.listBox&&(o.$.listBox.insert(e,t),o._applySelection(),o._dropDownSize&&"auto"===o._dropDownSize.height&&o._setDropDownSize())}insertBefore(e,t){const o=this;if(!o.isCompleted){const e=Array.prototype.slice.call(arguments,2);return HTMLElement.prototype.insertBefore.apply(o,e.concat(Array.prototype.slice.call(arguments)))}e&&t?o.$.listBox&&(o.$.listBox.insertBefore(e,t),o._dropDownSize&&"auto"===o._dropDownSize.height&&o._setDropDownSize()):o.error(o.localize("invalidNode",{elementType:o.nodeName.toLowerCase(),method:"insertBefore",node:"newNode/referenceNode"}))}toggle(){const e=this;e.opened?e.close():e.open()}open(){const e=this,t=function(){for(let t=0;t<e.items.length;t++)if(!e.items[t].disabled)return e.items[t]};if(!e.disabled&&e.offsetHeight&&e.$dropDownContainer.hasClass("smart-visibility-hidden")){if(e.$dropDownContainer.hasClass("not-in-view")&&e.$dropDownContainer.removeClass("not-in-view"),e.$.dropDownContainer.style.transition=null,e.dropDownAppendTo){const t=e.getBoundingClientRect();if(e.$.container.contains(e.$.dropDownContainer)){let t=0;const o=setInterval((function(){const n=e.getBoundingClientRect();t++,n.top===e._positionTop&&t<10||(e.open(),clearInterval(o),e._positionTop=n.top)}),100);return}t.top!==e._positionTop&&(e._positionTop=t.top)}e.$.fireEvent("opening").defaultPrevented||(e._shadowDOMStylesDelay&&(e._setDropDownSize(),delete e._shadowDOMStylesDelay),e.opened=!0,e._ariaButton&&e._ariaButton.setAttribute("aria-expanded",!0),e.$.listBox.setAttribute("focus",""),e._positionDetection.placeOverlay(),e._positionDetection.checkBrowserBounds("vertically"),e._positionDetection.positionDropDown(),e._positionDetection.checkBrowserBounds("horizontally"),e.$dropDownContainer.removeClass("smart-visibility-hidden"),e.$.fireEvent("open"),e.$.dropDownButton&&("dropDownButton"===e.dropDownOpenMode?e.$.dropDownButton.setAttribute("selected",""):e.$.dropDownButton.removeAttribute("selected")),(e.$.listBox&&!e._focusedItem||e._focusedItem&&!e._focusedItem._focused)&&(e.selectedIndexes.length>0?e._focus(e.items[e.selectedIndexes[0]]):e._focus(t)),e.$.input&&!Smart.Utilities.Core.isMobile&&e.$.input.focus())}}ready(){super.ready()}render(){const e=this;e.rightToLeft&&(e.dropDownButtonPosition="right"===e.dropDownButtonPosition?"left":"right"),e.classList.add("smart-drop-down-box"),e.$.dropDownContainer&&(e._positionDetection=new Smart.Utilities.PositionDetection(e,e.$.dropDownContainer,e.$.container,"close"),e._positionDetection.getDropDownParent(!0),e._positionDetection.setDropDownPosition(),e._calculateDropDownSize(),e.$.dropDownContainer.setAttribute("resize-mode",e.resizeMode),e.$.dropDownContainer.setAttribute("drop-down-open-mode",e.dropDownOpenMode),e.resizeIndicator&&e.$.dropDownContainer.setAttribute("resize-indicator",""),e._positionDetection.handleAutoPositioning()),e.opened&&e.open(),e._positionTop=e.getBoundingClientRect().top,e._edgeMacFF=Smart.Utilities.Core.Browser.Edge||Smart.Utilities.Core.Browser.Firefox&&-1!==navigator.platform.toLowerCase().indexOf("mac"),e._edgeMacFF&&e.hasAnimation&&e.$.dropDownContainer&&e.$dropDownContainer.addClass("not-in-view"),e.$.label&&!e.$.label.id&&(e.$.label.id=e.id+"Label"),e.$.actionButton&&!e.$.actionButton.id&&(e.$.actionButton.id=e.id+"ActionButton"),e.$.hint&&!e.$.hint.id&&(e.$.hint.id=e.id+"Hint"),e._createElement(),super.render()}removeAt(e){const t=this;t.$.listBox&&(t.$.listBox.removeAt(e),t._applySelection(),t._dropDownSize&&"auto"===t._dropDownSize.height&&t._setDropDownSize())}removeChild(e){const t=this;if(!t.isCompleted||e instanceof HTMLElement&&e.classList.contains("smart-resize-trigger-container")){const e=Array.prototype.slice.call(arguments,2);return HTMLElement.prototype.removeChild.apply(t,e.concat(Array.prototype.slice.call(arguments)))}e&&e instanceof Smart.ListItem?(t.$.listBox.removeChild(e),t._dropDownSize&&"auto"===t._dropDownSize.height&&t._setDropDownSize()):t.error(t.localize("invalidNode",{elementType:t.nodeName.toLowerCase(),method:"removeChild",node:"node"}))}get value(){const e=this;return e.isRendered&&e.$.listBox?e.$.listBox.value:null}set value(e){const t=this;return t.isRendered&&t.$.listBox?void(t.$.listBox.value=e):null}select(e){this.$.listBox&&this.$.listBox.select(e)}_setFocusable(){const e=this;if(e.disabled||e.unfocusable)return e.removeAttribute("tabindex"),e.$.actionButton.removeAttribute("tabindex"),void e.$.dropDownButton.removeAttribute("tabindex");let t=e.tabIndex>0?e.tabIndex:0;e.tabIndex=t,"dropDownButton"===e.dropDownOpenMode?(e.removeAttribute("tabindex"),e.$.actionButton.setAttribute("tabindex",t),e.$.dropDownButton.setAttribute("tabindex",t)):(e.$.actionButton.removeAttribute("tabindex"),e.$.dropDownButton.removeAttribute("tabindex"))}static get requires(){return{"Smart.ListBox":"smart.listbox.js"}}unselect(e){this.$.listBox&&this.$.listBox.unselect(e)}update(e,t){const o=this;o.$.listBox&&(o.$.listBox.update(e,t),o._applySelection())}_resizeBarMoveHandler(e){"touchmove"===e.originalEvent.type&&e.originalEvent.preventDefault()}_createToken(){const e=this;let t,o=!1;const n=document.createDocumentFragment(),i=e.selectedIndexes[e.selectedIndexes.length-1];"plain"!==e.selectionDisplayMode||"one"!==e.selectionMode&&"zeroAndOne"!==e.selectionMode&&"zeroOrOne"!==e.selectionMode&&"radioButton"!==e.selectionMode?"tokens"===e.selectionDisplayMode?1===e.selectedIndexes.length&&["oneOrManyExtended","oneOrMany","zeroAndOne","one","radioButton"].indexOf(e.selectionMode)>-1?t="":(t="&#10006",o=!0):t=1===e.selectedIndexes.length?"":",":t="";const r=e.selectedIndexes,a=e.$.listBox._items;for(let s=0;s<r.length;s++){const l=r[s];a[l]&&n.appendChild(e._applyTokenTemplate(a[l][e.inputMember],"tokens"!==e.selectionDisplayMode&&l===i?"":t,o))}return n}_applySelection(){const e=this;if("placeholder"!==e.selectionDisplayMode&&0!==e.selectedIndexes.length){if(e.$.listBox._items&&0!==e.$.listBox._items.length)if("plain"!==e.selectionDisplayMode)e.$.actionButton.innerHTML="",e.$.actionButton.appendChild(e._createToken());else{const t=e.$.listBox.selectedIndexes,o=e.$.listBox._items;let n=[];for(let i=0;i<t.length;i++){const r=t[i];o[r]&&n.push(o[r][e.inputMember])}e.$.actionButton.innerHTML=n.length?`<span class="smart-token">${n.join(", ").trim()}</span>`:""}}else e.$.actionButton.innerHTML=e.placeholder}_applyTokenTemplate(e,t,o){const n=this,i=document.createElement("span"),r=function(){return"<span class='smart-drop-down-list-selection-label' role=\"presentation\">"+e+`</span><span class='smart-drop-down-list-unselect-button' role="button"${o?' aria-label="Unselect"':""}>${t}</span>`};if(i.classList.add("smart-token"),n._tokenTemplate){let e=document.importNode(n._tokenTemplate.content,!0);const t=e.childNodes.length,o=/{{\w+}}/g;let a;for(let n=0;n<t;n++)a=o.exec(e.childNodes[n].innerHTML),a&&(e.childNodes[n].innerHTML=e.childNodes[n].innerHTML.replace(a[0],r())),e.childNodes[n].outerHTML&&(i.innerHTML+=e.childNodes[n].outerHTML)}else"function"==typeof n.tokenTemplate?n.tokenTemplate(i,{label:e,iconSeparator:t}):i.innerHTML=r();return i}_bindingCompleteHandler(){const e=this;e.$.listBox&&requestAnimationFrame((()=>{e._setDropDownSize(),e._positionDetection.checkBrowserBounds()}))}_buttonsDownHandler(e){const t=this;if(!t.disabled){if(t.hasRippleAnimation)if(t.$.buttonsContainer&&"dropDownButton"!==t.dropDownOpenMode){const o=t.$.buttonsContainer;o.firstElementChild.noRipple=!0,Smart.Utilities.Animation.Ripple.animate(o,e.pageX,e.pageY),o.firstElementChild.noRipple=!1}else Smart.Utilities.Animation.Ripple.animate(e.target,e.pageX,e.pageY);t._preventsSelectStart=!0,t.tagName.toLowerCase().indexOf("smart-drop-down-")>-1&&"dropDownButton"===t.dropDownOpenMode&&e.target===t.$.actionButton&&t.$.actionButton.setAttribute("active",""),t.opened&&(t._preventDropDownClose=!0)}}_buttonsMouseEventsHandler(e){const t=this;t.disabled||("mouseenter"===e.type?(t.setAttribute("hover",""),e.target.setAttribute("hover",""),"dropDownButton"===t.dropDownOpenMode&&e.target===t.$.dropDownButton&&t.setAttribute("drop-down-button-hover","")):(t.removeAttribute("hover"),t.removeAttribute("drop-down-button-hover"),e.target.removeAttribute("hover")))}_calculateDropDownSize(){const e=this;e._dropDownSize={};const t=window.getComputedStyle(e.$.dropDownContainer),o=parseFloat(t.getPropertyValue("border-top-width").trim()),n=parseFloat(t.getPropertyValue("border-bottom-width").trim()),i=parseFloat(t.getPropertyValue("margin-top").trim()),r=parseFloat(t.getPropertyValue("margin-bottom").trim()),a=parseFloat(t.getPropertyValue("padding-top").trim()),s=parseFloat(t.getPropertyValue("padding-bottom").trim());Smart.Utilities.Core.CSSVariablesSupport()&&(e._dropDownSize.width=t.getPropertyValue("--smart-drop-down-list-drop-down-width").trim(),e._dropDownSize.height=t.getPropertyValue("--smart-drop-down-list-drop-down-height").trim()),(!e._dropDownSize.width||e._dropDownSize.width.indexOf("initial")>-1)&&(e._dropDownSize.width=e.offsetWidth),e._dropDownSize.height||(e._dropDownSize.height="auto"),e._dropDownSize.minHeight=parseFloat(t.getPropertyValue("min-height").trim()),e._dropDownSize.maxHeight=parseFloat(t.getPropertyValue("max-height").trim()),e._dropDownSize.borderWidth=(isNaN(o)?0:o)+(isNaN(n)?0:n),e._dropDownSize.paddingWidth=(isNaN(a)?0:a)+(isNaN(s)?0:s),e._dropDownSize.marginWidth=(isNaN(i)?0:i)+(isNaN(r)?0:r)}_createElement(){const e=this;e._tokenTemplate=e._validateTemplate(e.tokenTemplate),e._applySelection(),e._setDropDownSize(),e._setFocusable(),e.$.arrow.noRipple=!0,e._shadowDOMStylesDelay=e.shadowRoot,e._setAriaRelations(!0)}_documentDownHandler(e){const t=this;if(t.disabled||t.readonly)return;let o=e.originalEvent.target;if(o===t._overlay&&(t._overlayDown=!0),t.shadowRoot){o=e.originalEvent.composedPath()[0];let n=o.getRootNode().host;for(;n;)n.closest(".smart-drop-down-container")===t.$.dropDownContainer&&(t._isDropDownClicked=!0),n=n.getRootNode().host}else t.isInShadowDOM&&(o=e.originalEvent.composedPath()[0]),t._isDropDownClicked=o.closest(".smart-drop-down-container")===t.$.dropDownContainer;if(t._buttonClicked=o.closest(".smart-action-button")||o.closest(".smart-drop-down-button"),t.$.listBox){let n=o.closest("smart-list-item");t.$.listBox.contains(n)||(n=void 0),t.hasRippleAnimation&&n&&Smart.Utilities.Animation.Ripple.animate(n,e.pageX,e.pageY),(n||o===t.$.listBox.$.filterInput||o.closest(".smart-token"))&&(t._preventDropDownClose=!0)}if(t._isDropDownClicked&&(t._preventDropDownClose=!0),o!==t.$.resizeBar||"none"===t.resizeMode)return;t._resizeDetails||(t._resizeDetails={});const n=t.$.dropDownContainer.getBoundingClientRect();t._resizeDetails.started=!0,t._resizeDetails.x=e.pageX,t._resizeDetails.y=e.pageY,t._resizeDetails.width=t.$.dropDownContainer.offsetWidth,t._resizeDetails.height=t.$.dropDownContainer.offsetHeight,t._resizeDetails.offsetXL=e.clientX-n.left,t._resizeDetails.offsetXR=n.left+t.$.dropDownContainer.offsetWidth-e.clientX,t._resizeDetails.offsetY=n.top+t.$.dropDownContainer.offsetHeight-e.clientY,t._resizeDetails.offsetYtop=e.clientY-n.top,t._preventDropDownClose=!0}_documentMoveHandler(e){const t=this,o=t.shadowRoot||t.isInShadowDOM?e.originalEvent.composedPath()[0]:e.originalEvent.target;if("auto"===t.dropDownOpenMode&&null!==t.dropDownAppendTo&&(t.contains(o)||t.$.dropDownContainer.contains(o)?t._isElementHovered=!0:(t._isElementHovered=!1,t._autoClose())),!t._resizeDetails||t._resizeDetails&&!t._resizeDetails.started)return;t.setAttribute("resizing",""),t._resizeDetails.resizeEventFired||(t.$.fireEvent("resizeStart",{position:{left:e.pageX,top:e.pageY}}),t._resizeDetails.resizeEventFired=!0);const n=document.documentElement,i=t.$.dropDownContainer.getBoundingClientRect(),r=t.getBoundingClientRect(),a=t.$.dropDownContainer.hasAttribute("top")?"top":"bottom";let s;function l(){if(s=e.pageY-t._resizeDetails.y,"bottom"===a)t._resizeDetails.height=Math.min(n.clientHeight-i.top-6,Math.max(0,t._resizeDetails.height+s)),t._resizeDetails.y=Math.max(i.top+n.scrollTop-t._resizeDetails.offsetY,Math.min(n.clientHeight+n.scrollTop-1.5*t._resizeDetails.offsetY,e.pageY));else{if(t._resizeDetails.height=Math.min(t._dropDownSize.maxHeight,Math.max(0,Math.min(r.top,t._resizeDetails.height-s))),s=Math.max(0,i.top+(i.height-Math.max(t._dropDownSize.minHeight,t._resizeDetails.height))),t.dropDownAppendTo){const e=Math.abs(parseFloat(getComputedStyle(t.$.dropDownContainer).getPropertyValue("margin-bottom")))||0;t.$.dropDownContainer.style.top=t.dropDownAppendTo?e+s+"px":""}const o=r.top+n.scrollTop+t._resizeDetails.offsetYtop;t._resizeDetails.y=Math.max(t._resizeDetails.offsetYtop,Math.min(o,Math.max(o-t._dropDownSize.maxHeight,e.pageY)))}t.$.dropDownContainer.style.height=t._resizeDetails.height+"px"}function d(){s=e.pageX-t._resizeDetails.x,t._resizeDetails.width=Math.min(n.clientWidth-i.left-6,Math.max(0,t._resizeDetails.width+s)),t.$.dropDownContainer.style.width=t._resizeDetails.width+"px",t._resizeDetails.x=Math.max(i.left+n.scrollLeft-t._resizeDetails.offsetXR,Math.min(n.clientWidth+n.scrollLeft-1.5*t._resizeDetails.offsetXR,e.pageX))}switch(t.resizeMode){case"vertical":l();break;case"horizontal":d();break;case"both":d(),l()}}_documentUpHandler(e){const t=this;if(t.$.actionButton.removeAttribute("active"),t._resizeDetails&&t._resizeDetails.started)return t._resizeDetails.started=t._resizeDetails.resizeEventFired=!1,t.removeAttribute("resizing"),t._preventDropDownClose=!1,t.focus(),void t.$.fireEvent("resizeEnd",{position:{left:e.pageX,top:e.pageY}});if(t.disabled||t._isDropDownClicked||t.readonly)return void delete t._isDropDownClicked;if(t._overlayDown)return t.close(),void delete t._overlayDown;let o=e.originalEvent.target,n=o.closest?o.closest("smart-drop-down-list"):void 0;if((t.enableShadowDOM||t.isInShadowDOM)&&(o=e.originalEvent.composedPath()[0],n=o.getRootNode().host),t._preventsSelectStart=!1,void 0===o||o===t.$.resizeBar)return;if("tokens"===t.selectionDisplayMode&&o.classList.contains("smart-drop-down-list-selection-label")&&n===t){"none"!==t.dropDownOpenMode&&t.open();let e=t.$.listBox._items.filter((e=>e[t.inputMember].toString()===o.textContent))[0];return t.$.listBox._scrollView.scrollTop=e.offsetTop,void t._focus(e)}if("tokens"===t.selectionDisplayMode&&o.classList.contains("smart-drop-down-list-unselect-button")&&n===t){if(1===t.selectedIndexes.length&&["zeroOrMany","zeroOrOne","checkBox"].indexOf(t.selectionMode)<0)return;return void t.unselect(t.$.listBox._items.filter((e=>e[t.inputMember].toString()===o.previousElementSibling.textContent))[0])}const i=o.closest(".smart-action-button");let r;if(t._buttonClicked&&("dropDownButton"===t.dropDownOpenMode&&i&&t._buttonClicked===t.$.actionButton?t.$.fireEvent("actionButtonClick"):o.closest(".smart-drop-down-button")!==t._buttonClicked&&i!==t._buttonClicked||(r=!0,t.$.fireEvent("dropDownButtonClick"))),t._buttonClicked=void 0,i===t.$.actionButton||o.closest(".smart-drop-down-button")===t.$.dropDownButton)return"dropDownButton"===t.dropDownOpenMode&&i===t.$.actionButton?void t.close():void(t.$dropDownContainer.hasClass("smart-visibility-hidden")&&"none"!==t.dropDownOpenMode&&r&&"pointercancel"!==e.originalEvent.type?t.open():t.close());o=t._getUpEventTarget(o),void 0!==o&&("dropDownContainer"!==o&&"item"!==o||"item"===o&&"checkBox"!==t.selectionMode&&t.selectionMode.indexOf("Many")<0)&&t.close()}_dragStartHandler(e){this._resizeDetails&&this._resizeDetails.started&&e.preventDefault()}_dropDownTransitionendHandler(){const e=this;e._edgeMacFF&&!e.opened&&e.hasAnimation&&(e.$.dropDownContainer.style.top=e.$.dropDownContainer.style.left="",e.$dropDownContainer.addClass("not-in-view"))}_focus(e){this.$.listBox._focus(e)}_blurEventHandler(){const e=this;e.$.dropDownButton&&(e.removeAttribute("focus"),e.$.dropDownButton.removeAttribute("focus")),e.$.actionButton&&(e.removeAttribute("focus"),e.$.actionButton.removeAttribute("focus")),e.nodeName&&"smart-drop-down-list"===e.nodeName.toLowerCase()&&!e._preventDropDownClose&&e.close()}_focusEventHandler(){const e=this;e.$.dropDownButton&&(e.setAttribute("focus",""),e.$.dropDownButton.setAttribute("focus","")),e.$.actionButton&&(e.setAttribute("focus",""),e.$.actionButton.setAttribute("focus","")),e.removeAttribute("drop-down-button-focus"),e.removeAttribute("action-button-focus")}_buttonsFocusHandler(e){const t=this;e.target===t.$.dropDownButton?"focus"===e.type?t.setAttribute("drop-down-button-focus",""):(t.removeAttribute("drop-down-button-focus"),t.nodeName&&"smart-drop-down-list"===t.nodeName.toLowerCase()&&!t._preventDropDownClose&&t.close()):"focus"===e.type?t.setAttribute("action-button-focus",""):t.removeAttribute("action-button-focus")}_getUpEventTarget(e){const t=this;let o=e;for(o=void 0===o.parentElement?o.getRootNode().host:o.parentElement;o;){if(o===t.$.dropDownContainer){o="dropDownContainer";break}o=void 0===o.parentElement?o.getRootNode().host:o.parentElement}return o}_keyDownHandler(e){const t=this,o=t.enableShadowDOM&&t.shadowRoot.activeElement||document.activeElement,n=t.enableShadowDOM?e.composedPath()[0]:e.target;if(!(t.$.listBox&&n===t.$.listBox.$.filterInput||o!==t&&o!==t.$.dropDownButton&&o!==t.$.actionButton))switch(e.key){case"Enter":case" ":e.preventDefault(),n!==t.$.actionButton&&(t._keyPressed=!0,t.opened?(t._focusedItem&&t.select(t._focusedItem),("Enter"===e.key&&["none"].indexOf(t.selectionMode)<0||" "===e.key&&["none","zeroAndOne","one","radioButton"].indexOf(t.selectionMode)>-1)&&t.close()):t.opened||t.readonly||"none"===t.dropDownOpenMode||t.open()),"dropDownButton"===t.dropDownOpenMode&&n.setAttribute("active","");break;case"End":case"Home":case"PageUp":case"PageDown":case"ArrowUp":case"ArrowDown":if(t.readonly)return;if(e.altKey)return t._keyPressed=!1,void(t.$dropDownContainer.hasClass("smart-visibility-hidden")?t.open():t.close());e.preventDefault(),t.$.listBox._handleKeyStrokes(e.key);break;case"Escape":e.preventDefault(),t.close();break;default:if(t.readonly)return;"oneOrManyExtended"===t.selectionMode&&(t.$.listBox._keysPressed[e.key]=!0),t.$.listBox._applyIncrementalSearch(e.key)}}_keyUpHandler(e){const t=this,o=t.enableShadowDOM?e.composedPath()[0]:e.target;t.$.listBox&&o===t.$.listBox.$.filterInput||("Enter"!==e.key&&" "!==e.key||(o.removeAttribute("active"),t.$dropDownContainer.hasClass("smart-visibility-hidden")||(t._keyPressed=!1)),t.$.listBox&&"oneOrManyExtended"===t.selectionMode&&(t.$.listBox._keysPressed[e.key]=!1))}_listBoxChangeHandler(e){const t=this;if(e.target===t.$.listBox){if((t.dropDownAppendTo||t.enableShadowDOM)&&t.$.fireEvent("change",e.detail),"list"===t.autoComplete&&e.detail){const o=t.$.listBox._items[e.detail.index];t._lastSelectedItem=o&&o.selected?o:void 0}t._applySelection(t.selectionMode,e.detail),t._updateTargetValue()}else e.stopPropagation()}_listBoxItemClickHandler(e){const t=this;(t.dropDownAppendTo||t.enableShadowDOM)&&t.$.fireEvent(e.type,e.detail),"checkBox"!==t.selectionMode&&t.selectionMode.indexOf("Many")<0&&t.close(),Smart.Utilities.Core.isMobile||t.focus(),delete t._isDropDownClicked}_listBoxKeyDownHandler(e){const t=this;if("Enter"===e.key)return t.close(),"dropDownButton"===t.dropDownOpenMode?t.$.dropDownButton.focus():t.focus(),void e.stopPropagation();"Escape"!==e.key||t.close()}_mouseEnterHandler(){const e=this;e._isElementHovered=!0,e.tagName.toLowerCase().indexOf("smart-drop-down-")>-1&&"auto"===e.dropDownOpenMode&&!e.disabled&&!e.readonly&&e.open()}_mouseLeaveHandler(){const e=this;e.removeAttribute("hover"),e._isElementHovered=!1,"auto"!==e.dropDownOpenMode||e.disabled||e.readonly||e._autoClose()}_mouseWheelHandler(e){const t=this;t.disabled||t.readonly||t.items&&0===t.items.length||t.$dropDownContainer&&!t.$dropDownContainer.hasClass("smart-visibility-hidden")||t.$.listBox&&(e.preventDefault(),t.$.listBox._handleKeyStrokes(e.deltaY>0?"ArrowDown":"ArrowUp"))}_autoClose(){const e=this;e._autoCloseTimeout=setTimeout(function(){e._isElementHovered||e.close(),clearTimeout(e._autoCloseTimeout)}.bind(e),e.autoCloseDelay)}_propertyValidator(e,t){return"number"!=typeof t&&"string"!=typeof t?e:t}_resizeHandler(){this.refresh()}refresh(){const e=this;"none"===e.resizeMode&&(e._calculateDropDownSize(),e._setDropDownSize())}_selectStartHandler(e){this._preventsSelectStart&&e.preventDefault()}_setAriaRelations(e){const t=this;let o,n;"dropDownButton"!==t.dropDownOpenMode?(o=t.$.dropDownButton,o.setAttribute("aria-hidden",!0),n=t,t.$.actionButton.removeAttribute("role")):(o=t,n=t.$.dropDownButton,n.removeAttribute("aria-hidden"),t.$.actionButton.setAttribute("role","button")),t._ariaButton=n,n.setAttribute("role","button"),n.setAttribute("aria-haspopup","listbox"),n.setAttribute("aria-owns",t.$.listBox.id),n.setAttribute("aria-describedby",t.$.hint.id),t.label?n.setAttribute("aria-labelledby",t.$.label.id):"DropDownList"===t.elementName&&n.setAttribute("aria-labelledby",t.$.actionButton.id),o.setAttribute("role","presentation"),o.removeAttribute("aria-owns"),e?n.setAttribute("aria-expanded",t.opened):(o.removeAttribute("aria-describedby"),o.removeAttribute("aria-expanded"),o.removeAttribute("aria-haspopup"),o.removeAttribute("aria-labelledby"))}_setDropDownSize(){const e=this,t=e.$.listBox;let o;if(e._dropDownSize||e._calculateDropDownSize(),["dropDownMinWidth","dropDownMaxWidth"].forEach((t=>{e.$.dropDownContainer.style[t.replace("dropDown","").replace(/^./,"m")]="initial"===e[t]?e.offsetWidth+"px":e[t]?parseFloat(e[t])+(e[t].toString().endsWith("%")?"%":"px"):null})),["dropDownMinHeight","dropDownMaxHeight"].forEach((t=>{e.$.dropDownContainer.style[t.replace("dropDown","").replace(/^./,"m")]=e[t]?parseFloat(e[t])+(e[t].toString().endsWith("%")?"%":"px"):null})),e.dropDownWidth?"auto"!==e.dropDownWidth?e.$.dropDownContainer.style.width=("initial"===e.dropDownWidth?e.offsetWidth:parseFloat(e.dropDownWidth))+"px":e.$.dropDownContainer.style.width="auto":e.$.dropDownContainer.style.width="auto"===e._dropDownSize.width?"auto":(parseFloat(e._dropDownSize.width)||0)+"px",e.dropDownHeight&&"auto"!==e.dropDownHeight)e.$.dropDownContainer.style.height=parseFloat(e.dropDownHeight)+((e.dropDownHeight+"").indexOf("%")>-1?"%":"px");else if(!e.$.listBox||"auto"!==e._dropDownSize.height&&"auto"!==e.dropDownHeight)e.$.dropDownContainer.style.height=e._dropDownSize.height;else{e.$.dropDownContainer.style.height="";let n=0;if(t.$.itemsContainer&&(n=2*parseInt(window.getComputedStyle(t.$.itemsContainer).getPropertyValue("--smart-list-item-vertical-offset"))),isNaN(n)&&(n=6),o=n,t.items&&t.items.length>0?t.items.map((e=>o+=e.height||e.offsetHeight)):o=t.$.placeholder?t.$.placeholder.offsetHeight:200,e.filterable){const e=t.$.filterInputContainer;o+=e.offsetHeight+e.offsetTop}o=o+e._dropDownSize.paddingWidth+e._dropDownSize.borderWidth,e.$.dropDownContainer.style.height=o+"px"}if(t){if(void 0===o||!t.$)return void t._refreshLayout();const n=t.$.horizontalScrollBar?t.$.horizontalScrollBar.offsetHeight:0,i=Math.max(0,e._dropDownSize.minHeight-(o-n));i&&(e.$.dropDownContainer.style.height=o+i+"px"),!e.opened&&e.virtualized&&t.refresh()}}_styleChangedHandler(e){const t=this;if(t.dropDownAppendTo){const o=e.detail.styleProperties,n=["font-size","font-family","font-style","font-weight"];for(let e=0;e<n.length;e++)o[n[e]]&&(t.$.dropDownContainer.style[n[e]]=o[n[e]].value)}"auto"===t._dropDownSize.height&&t._setDropDownSize()}_validateTemplate(e){const t=this;if(e&&"function"!=typeof e)if("content"in document.createElement("template")){if(e instanceof HTMLTemplateElement||(e=document.getElementById(e)),null!==e&&"content"in e)return e;t.error(t.localize("invalidTemplate",{elementType:t.nodeName.toLowerCase(),property:"tokenTemplate"}))}else t.error(t.localize("htmlTemplateNotSuported",{elementType:t.nodeName.toLowerCase()}))}});
787
+ Smart("smart-drop-down-list",class extends Smart.ContentElement{static get properties(){return{autoCloseDelay:{value:100,type:"number"},dataSource:{value:null,type:"any",reflectToAttribute:!1},displayLoadingIndicator:{value:!1,type:"boolean"},displayMember:{value:"",type:"string"},displayMode:{allowedValues:["outlined","filled","underlined"],value:"outlined",type:"string"},dropDownAppendTo:{value:null,type:"any"},dropDownButtonPosition:{allowedValues:["none","left","right","top","bottom"],value:"right",defaultReflectToAttribute:!0,type:"string"},dropDownMinHeight:{value:"",type:"any",validator:"_propertyValidator"},dropDownHeight:{value:"",type:"any",validator:"_propertyValidator"},dropDownMaxHeight:{value:"",type:"any",validator:"_propertyValidator"},dropDownOpenMode:{allowedValues:["none","default","dropDownButton","auto"],value:"default",type:"string"},dropDownOverlay:{value:!1,type:"boolean"},dropDownPlaceholder:{value:"No Items",type:"string"},dropDownPosition:{allowedValues:["auto","top","bottom","overlay-top","overlay-center","overlay-bottom","center-bottom","center-top"],value:"auto",type:"string"},dropDownMinWidth:{value:"",type:"any",validator:"_propertyValidator"},dropDownWidth:{value:"",type:"any",validator:"_propertyValidator"},dropDownMaxWidth:{value:"",type:"any",validator:"_propertyValidator"},filterable:{value:!1,type:"boolean"},filterInputPlaceholder:{value:"",type:"string"},filterCallback:{value:null,type:"function?"},filterMode:{value:"startsWithIgnoreCase",allowedValues:["contains","containsIgnoreCase","doesNotContain","doesNotContainIgnoreCase","equals","equalsIgnoreCase","startsWith","startsWithIgnoreCase","endsWith","endsWithIgnoreCase","custom"],type:"string"},grouped:{value:!1,type:"boolean"},groupMember:{value:"",type:"string"},hint:{value:"",type:"string"},horizontalScrollBarVisibility:{type:"string",value:"auto",allowedValues:["auto","disabled","hidden","visible"]},incrementalSearchDelay:{value:700,type:"number?"},incrementalSearchMode:{value:"startsWithIgnoreCase",allowedValues:["contains","containsIgnoreCase","doesNotContain","doesNotContainIgnoreCase","equals","equalsIgnoreCase","startsWith","startsWithIgnoreCase","endsWith","endsWithIgnoreCase"],type:"string"},itemMeasureMode:{value:"auto",allowedValues:["auto","precise"],type:"string"},inputMember:{value:"label",type:"string"},itemTemplate:{value:null,type:"any"},itemHeight:{value:null,type:"number?"},label:{value:"",type:"string"},loadingIndicatorPlaceholder:{value:"Loading...",type:"string"},loadingIndicatorPosition:{value:"center",allowedValues:["bottom","center","top"],type:"string"},messages:{extend:!0,value:{en:{invalidNode:'{{elementType}}: Invalid parameter "{{node}}" when calling {{method}}.'}},type:"object"},name:{value:"",type:"string"},opened:{value:!1,type:"boolean"},placeholder:{value:"",type:"string"},resizeMode:{value:"none",allowedValues:["none","horizontal","vertical","both"],type:"string"},resizeIndicator:{value:!1,type:"boolean"},selectionDisplayMode:{value:"plain",allowedValues:["plain","placeholder","tokens"],type:"string"},selectionMode:{value:"zeroAndOne",allowedValues:["none","oneOrManyExtended","zeroOrMany","oneOrMany","zeroOrOne","zeroAndOne","one","checkBox","radioButton"],type:"string"},selectedIndexes:{value:[],type:"array"},selectedValues:{value:[],type:"array"},sorted:{value:!1,type:"boolean"},sortDirection:{value:"asc",type:"string"},tokenTemplate:{value:null,type:"any"},type:{value:"list",type:"string",defaultReflectToAttribute:!0,readonly:!0},valueMember:{value:"",type:"string"},virtualized:{value:!1,type:"boolean"},verticalScrollBarVisibility:{type:"string",value:"auto",allowedValues:["auto","disabled","hidden","visible"]}}}static get listeners(){return{"actionButton.down":"_buttonsDownHandler","actionButton.mouseenter":"_buttonsMouseEventsHandler","actionButton.mouseleave":"_buttonsMouseEventsHandler","actionButton.focus":"_buttonsFocusHandler","actionButton.blur":"_buttonsFocusHandler","document.selectstart":"_selectStartHandler","document.dragstart":"_dragStartHandler","document.down":"_documentDownHandler","document.up":"_documentUpHandler","document.move":"_documentMoveHandler","dropDownButton.down":"_buttonsDownHandler","dropDownButton.mouseenter":"_buttonsMouseEventsHandler","dropDownButton.mouseleave":"_buttonsMouseEventsHandler",keydown:"_keyDownHandler",keyup:"_keyUpHandler",focus:"_focusEventHandler",blur:"_blurEventHandler","dropDownButton.focus":"_buttonsFocusHandler","dropDownButton.blur":"_buttonsFocusHandler","dropDownContainer.transitionend":"_dropDownTransitionendHandler","listBox.change":"_listBoxChangeHandler","listBox.itemClick":"_listBoxItemClickHandler","listBox.keydown":"_listBoxKeyDownHandler","listBox.bindingComplete":"_bindingCompleteHandler",mouseenter:"_mouseEnterHandler",mouseleave:"_mouseLeaveHandler",resize:"_resizeHandler","resizeBar.move":"_resizeBarMoveHandler",styleChanged:"_styleChangedHandler",wheel:"_mouseWheelHandler"}}template(){return'<div id="container" role="presentation">\n <span class="smart-label" id="label">[[label]]</span>\n <div id="content" class="smart-content" role="presentation">\n <div class="smart-buttons-container" id="buttonsContainer" role="presentation">\n <span id="actionButton" class ="smart-action-button" role="presentation">[[placeholder]]</span>\n <span id="dropDownButton" class="smart-drop-down-button">\n <span class ="smart-drop-down-button-icon" id="arrow" aria-hidden="true"></span>\n </span>\n </div>\n <div id="dropDownContainer" class="smart-drop-down smart-drop-down-container smart-visibility-hidden" role="presentation">\n <smart-list-box id="listBox" unfocusable\n animation="[[animation]]"\n data-source="[[dataSource]]"\n disabled="[[disabled]]"\n display-loading-indicator="[[displayLoadingIndicator]]"\n display-member="[[displayMember]]"\n filterable="[[filterable]]"\n filter-callback="[[filterCallback]]"\n filter-mode="[[filterMode]]"\n filter-input-placeholder="[[filterInputPlaceholder]]"\n grouped="[[grouped]]"\n group-member="[[groupMember]]"\n item-height="[[itemHeight]]"\n item-measure-mode="[[itemMeasureMode]]"\n item-template="[[itemTemplate]]"\n incremental-search-delay="[[incrementalSearchDelay]]"\n incremental-search-mode="[[incrementalSearchMode]]"\n loading-indicator-placeholder="[[loadingIndicatorPlaceholder]]"\n loading-indicator-position="[[loadingIndicatorPosition]]"\n name="[[name]]"\n placeholder="[[dropDownPlaceholder]]"\n right-to-left="[[rightToLeft]]"\n readonly="[[readonly]]"\n selected-indexes="{{selectedIndexes}}"\n selection-mode="[[selectionMode]]"\n selected-values="{{selectedValues}}"\n sorted="[[sorted]]"\n sort-direction="[[sortDirection]]"\n theme="[[theme]]"\n value-member="[[valueMember]]"\n horizontal-scroll-bar-visibility="[[horizontalScrollBarVisibility]]"\n vertical-scroll-bar-visibility="[[verticalScrollBarVisibility]]"\n virtualized="[[virtualized]]">\n <content></content>\n </smart-list-box>\n <div id="resizeBar" class="smart-drop-down-resize-bar" aria-label="Resize">\n <div></div>\n </div>\n </div>\n </div>\n <span class="smart-hint smart-hidden" id="hint">[[hint]]</span>\n </div>'}static get styleUrls(){return["smart.dropdownlist.css","smart.dropdown.css"]}propertyChangedHandler(e,t,o){super.propertyChangedHandler(e,t,o);const n=this;switch(e){case"animation":n.$.dropDownContainer.setAttribute("animation",n.animation);break;case"disabled":n._setFocusable(),n.close(),n._positionDetection.handleAutoPositioning();break;case"dataSource":case"displayMember":case"inputMember":n.$.actionButton&&(n.$.actionButton.innerHTML=n.placeholder),n._setDropDownSize(),n._positionDetection.checkBrowserBounds("vertically"),n._positionDetection.positionDropDown(),n._positionDetection.checkBrowserBounds("horizontally");break;case"dropDownAppendTo":n._positionDetection.dropDownAppendToChangedHandler();break;case"dropDownOpenMode":n._setFocusable(),n.$dropDownContainer.addClass("smart-visibility-hidden"),n.$.dropDownContainer.setAttribute("drop-down-open-mode",o),n.$.dropDownButton.removeAttribute("selected"),n.removeAttribute("drop-down-button-focus"),n.removeAttribute("action-button-focus"),n.opened=!1,n._ariaButton&&n._ariaButton.setAttribute("aria-expanded",!1),n._setAriaRelations();break;case"dropDownOverlay":o||n._positionDetection.removeOverlay();break;case"dropDownPosition":n._positionDetection.dropDownPositionChangedHandler();break;case"dropDownMinWidth":case"dropDownWidth":case"dropDownMaxWidth":case"dropDownHeight":case"dropDownMinHeight":case"dropDownMaxHeight":n._setDropDownSize();break;case"filterable":n.$.listBox.filterable=o,n._dropDownSize&&"auto"===n._dropDownSize.height&&n._setDropDownSize();break;case"label":if(!n._ariaButton)return;o?n._ariaButton.setAttribute("aria-labelledby",n.$.label.id):"DropDownList"===n.elementName&&n._ariaButton.setAttribute("aria-labelledby",n.$.actionButton.id);break;case"opened":if(n.disabled||n.readonly)return;o?n.open():n.close();break;case"placeholder":n._applySelection();break;case"readonly":n.close();break;case"resizeIndicator":o?n.$.dropDownContainer.setAttribute("resize-indicator",""):n.$.dropDownContainer.removeAttribute("resize-indicator");break;case"resizeMode":n.$.dropDownContainer.setAttribute("resize-mode",n.resizeMode);break;case"selectedValues":case"selectedIndexes":0===o.length?n.$.actionButton.innerHTML=n.placeholder:n._applySelection();break;case"selectionMode":n.$.listBox&&(n.$.listBox[e]=o,"checkBox"!==o&&"radioButton"!==o&&"checkBox"!==t&&"radioButton"!==t||n._setDropDownSize());break;case"selectionDisplayMode":n._applySelection();break;case"tokenTemplate":n._tokenTemplate=n._validateTemplate(n.tokenTemplate),n._applySelection();break;case"unfocusable":n._setFocusable()}}_updateTargetValue(){const e=this;if(e.dataset.target){const t=document.querySelector(e.dataset.target);if(t){const o=e.dataset.property,n=e.value;o&&void 0!==t[o]&&(t[o]=n)}}}appendChild(e){const t=this;if(!t.isCompleted||e instanceof HTMLElement&&e.classList.contains("smart-resize-trigger-container")){const e=Array.prototype.slice.call(arguments,2);return HTMLElement.prototype.appendChild.apply(t,e.concat(Array.prototype.slice.call(arguments)))}e?(t.$.listBox.appendChild(e),t._dropDownSize&&"auto"===t._dropDownSize.height&&t._setDropDownSize()):t.error(t.localize("invalidNode",{elementType:t.nodeName.toLowerCase(),method:"appendChild",node:"node"}))}attached(){const e=this;super.attached(),e.isCompleted&&e.$.dropDownContainer&&(e._positionDetection.dropDownAttached("_setDropDownSize"),e._positionDetection.checkBrowserBounds(),e.selectedIndexes&&e._applySelection())}detached(){const e=this;super.detached(),e.$.dropDownContainer&&(e.close(),e._positionDetection&&e._positionDetection.dropDownDetached())}clearItems(){const e=this;e.$.listBox&&(e.$.listBox.clearItems(),e.$.actionButton.innerHTML=e.placeholder)}clearSelection(){const e=this;e.$.listBox&&(e.$.listBox.clearSelection(),e.$.actionButton.innerHTML=e.placeholder)}close(){const e=this;e.$dropDownContainer.hasClass("smart-visibility-hidden")||e.$.fireEvent("closing").defaultPrevented||(e.$dropDownContainer.addClass("smart-visibility-hidden"),e.$.fireEvent("close"),e.$.dropDownButton&&e.$.dropDownButton.removeAttribute("selected"),e.opened=!1,e._ariaButton&&e._ariaButton.setAttribute("aria-expanded",!1),e._preventDropDownClose=!1,e._positionDetection.removeOverlay(!0),e.$.listBox.removeAttribute("focus"),e._edgeMacFF&&!e.hasAnimation&&e.$.dropDownContainer&&(e.$.dropDownContainer.style.top=e.$.dropDownContainer.style.left="",e.$dropDownContainer.addClass("not-in-view")))}cloneNode(){const e=this;if(!e.$.listBox)return;let t=HTMLElement.prototype.cloneNode.apply(e,Array.prototype.slice.call(arguments,0,1));return t.dataSource=e.dataSource,t}ensureVisible(e){this.$.listBox&&this.$.listBox.ensureVisible(e)}getItem(e){if(this.$.listBox)return this.$.listBox.getItem(e)}get items(){const e=this;return e.$&&e.$.listBox?e.$.listBox.items:[]}get _focusedItem(){const e=this;return e.$&&e.$.listBox?e.$.listBox._focusedItem:null}insert(e,t){const o=this;o.$.listBox&&(o.$.listBox.insert(e,t),o._applySelection(),o._dropDownSize&&"auto"===o._dropDownSize.height&&o._setDropDownSize())}insertBefore(e,t){const o=this;if(!o.isCompleted){const e=Array.prototype.slice.call(arguments,2);return HTMLElement.prototype.insertBefore.apply(o,e.concat(Array.prototype.slice.call(arguments)))}e&&t?o.$.listBox&&(o.$.listBox.insertBefore(e,t),o._dropDownSize&&"auto"===o._dropDownSize.height&&o._setDropDownSize()):o.error(o.localize("invalidNode",{elementType:o.nodeName.toLowerCase(),method:"insertBefore",node:"newNode/referenceNode"}))}toggle(){const e=this;e.opened?e.close():e.open()}open(){const e=this,t=function(){for(let t=0;t<e.items.length;t++)if(!e.items[t].disabled)return e.items[t]};if(!e.disabled&&e.offsetHeight&&e.$dropDownContainer.hasClass("smart-visibility-hidden")){if(e.$dropDownContainer.hasClass("not-in-view")&&e.$dropDownContainer.removeClass("not-in-view"),e.$.dropDownContainer.style.transition=null,e.dropDownAppendTo){const t=e.getBoundingClientRect();if(e.$.container.contains(e.$.dropDownContainer)){let t=0;const o=setInterval((function(){const n=e.getBoundingClientRect();t++,n.top===e._positionTop&&t<10||(e.open(),clearInterval(o),e._positionTop=n.top)}),100);return}t.top!==e._positionTop&&(e._positionTop=t.top)}e.$.fireEvent("opening").defaultPrevented||(e._shadowDOMStylesDelay&&(e._setDropDownSize(),delete e._shadowDOMStylesDelay),e.opened=!0,e._ariaButton&&e._ariaButton.setAttribute("aria-expanded",!0),e.$.listBox.setAttribute("focus",""),e._positionDetection.placeOverlay(),e._positionDetection.checkBrowserBounds("vertically"),e._positionDetection.positionDropDown(),e._positionDetection.checkBrowserBounds("horizontally"),e.$dropDownContainer.removeClass("smart-visibility-hidden"),e.$.fireEvent("open"),e.$.dropDownButton&&("dropDownButton"===e.dropDownOpenMode?e.$.dropDownButton.setAttribute("selected",""):e.$.dropDownButton.removeAttribute("selected")),(e.$.listBox&&!e._focusedItem||e._focusedItem&&!e._focusedItem._focused)&&(e.selectedIndexes.length>0?e._focus(e.items[e.selectedIndexes[0]]):e._focus(t)),e.$.input&&!Smart.Utilities.Core.isMobile&&e.$.input.focus())}}ready(){super.ready()}render(){const e=this;e.rightToLeft&&(e.dropDownButtonPosition="right"===e.dropDownButtonPosition?"left":"right"),e.classList.add("smart-drop-down-box"),e.$.dropDownContainer&&(e._positionDetection=new Smart.Utilities.PositionDetection(e,e.$.dropDownContainer,e.$.container,"close"),e._positionDetection.getDropDownParent(!0),e._positionDetection.setDropDownPosition(),e._calculateDropDownSize(),e.$.dropDownContainer.setAttribute("resize-mode",e.resizeMode),e.$.dropDownContainer.setAttribute("drop-down-open-mode",e.dropDownOpenMode),e.resizeIndicator&&e.$.dropDownContainer.setAttribute("resize-indicator",""),e._positionDetection.handleAutoPositioning()),e.opened&&e.open(),e._positionTop=e.getBoundingClientRect().top,e._edgeMacFF=Smart.Utilities.Core.Browser.Edge||Smart.Utilities.Core.Browser.Firefox&&-1!==navigator.platform.toLowerCase().indexOf("mac"),e._edgeMacFF&&e.hasAnimation&&e.$.dropDownContainer&&e.$dropDownContainer.addClass("not-in-view"),e.$.label&&!e.$.label.id&&(e.$.label.id=e.id+"Label"),e.$.actionButton&&!e.$.actionButton.id&&(e.$.actionButton.id=e.id+"ActionButton"),e.$.hint&&!e.$.hint.id&&(e.$.hint.id=e.id+"Hint"),e._createElement(),super.render()}removeAt(e){const t=this;t.$.listBox&&(t.$.listBox.removeAt(e),t._applySelection(),t._dropDownSize&&"auto"===t._dropDownSize.height&&t._setDropDownSize())}removeChild(e){const t=this;if(!t.isCompleted||e instanceof HTMLElement&&e.classList.contains("smart-resize-trigger-container")){const e=Array.prototype.slice.call(arguments,2);return HTMLElement.prototype.removeChild.apply(t,e.concat(Array.prototype.slice.call(arguments)))}e&&e instanceof Smart.ListItem?(t.$.listBox.removeChild(e),t._dropDownSize&&"auto"===t._dropDownSize.height&&t._setDropDownSize()):t.error(t.localize("invalidNode",{elementType:t.nodeName.toLowerCase(),method:"removeChild",node:"node"}))}get value(){const e=this;return e.isRendered&&e.$.listBox?e.$.listBox.value:null}set value(e){const t=this;return t.isRendered&&t.$.listBox?void(t.$.listBox.value=e):null}select(e){this.$.listBox&&this.$.listBox.select(e)}_setFocusable(){const e=this;if(e.disabled||e.unfocusable)return e.removeAttribute("tabindex"),e.$.actionButton.removeAttribute("tabindex"),void e.$.dropDownButton.removeAttribute("tabindex");let t=e.tabIndex>0?e.tabIndex:0;e.tabIndex=t,"dropDownButton"===e.dropDownOpenMode?(e.removeAttribute("tabindex"),e.$.actionButton.setAttribute("tabindex",t),e.$.dropDownButton.setAttribute("tabindex",t)):(e.$.actionButton.removeAttribute("tabindex"),e.$.dropDownButton.removeAttribute("tabindex"))}static get requires(){return{"Smart.ListBox":"smart.listbox.js"}}unselect(e){this.$.listBox&&this.$.listBox.unselect(e)}update(e,t){const o=this;o.$.listBox&&(o.$.listBox.update(e,t),o._applySelection())}_resizeBarMoveHandler(e){"touchmove"===e.originalEvent.type&&e.originalEvent.preventDefault()}_createToken(){const e=this;let t,o=!1;const n=document.createDocumentFragment(),i=e.selectedIndexes[e.selectedIndexes.length-1];"plain"!==e.selectionDisplayMode||"one"!==e.selectionMode&&"zeroAndOne"!==e.selectionMode&&"zeroOrOne"!==e.selectionMode&&"radioButton"!==e.selectionMode?"tokens"===e.selectionDisplayMode?1===e.selectedIndexes.length&&["oneOrManyExtended","oneOrMany","zeroAndOne","one","radioButton"].indexOf(e.selectionMode)>-1?t="":(t="&#10006",o=!0):t=1===e.selectedIndexes.length?"":",":t="";const r=e.selectedIndexes,a=e.$.listBox._items;for(let s=0;s<r.length;s++){const l=r[s];a[l]&&n.appendChild(e._applyTokenTemplate(a[l][e.inputMember],"tokens"!==e.selectionDisplayMode&&l===i?"":t,o))}return n}_applySelection(){const e=this;if("placeholder"!==e.selectionDisplayMode&&0!==e.selectedIndexes.length){if(e.$.listBox._items&&0!==e.$.listBox._items.length)if("plain"!==e.selectionDisplayMode)e.$.actionButton.innerHTML="",e.$.actionButton.appendChild(e._createToken());else{const t=e.$.listBox.selectedIndexes,o=e.$.listBox._items;let n=[];for(let i=0;i<t.length;i++){const r=t[i];o[r]&&n.push(o[r][e.inputMember])}e.$.actionButton.innerHTML=n.length?`<span class="smart-token">${n.join(", ").trim()}</span>`:""}}else e.$.actionButton.innerHTML=e.placeholder}_applyTokenTemplate(e,t,o){const n=this,i=document.createElement("span"),r=function(){return"<span class='smart-drop-down-list-selection-label' role=\"presentation\">"+e+`</span><span class='smart-drop-down-list-unselect-button' role="button"${o?' aria-label="Unselect"':""}>${t}</span>`};if(i.classList.add("smart-token"),n._tokenTemplate){let e=document.importNode(n._tokenTemplate.content,!0);const t=e.childNodes.length,o=/{{\w+}}/g;let a;for(let n=0;n<t;n++)a=o.exec(e.childNodes[n].innerHTML),a&&(e.childNodes[n].innerHTML=e.childNodes[n].innerHTML.replace(a[0],r())),e.childNodes[n].outerHTML&&(i.innerHTML+=e.childNodes[n].outerHTML)}else"function"==typeof n.tokenTemplate?n.tokenTemplate(i,{label:e,iconSeparator:t}):i.innerHTML=r();return i}_bindingCompleteHandler(){const e=this;e.$.listBox&&requestAnimationFrame((()=>{e._setDropDownSize(),e._positionDetection.checkBrowserBounds()}))}_buttonsDownHandler(e){const t=this;if(!t.disabled){if(t.hasRippleAnimation)if(t.$.buttonsContainer&&"dropDownButton"!==t.dropDownOpenMode){const o=t.$.buttonsContainer;o.firstElementChild.noRipple=!0,Smart.Utilities.Animation.Ripple.animate(o,e.pageX,e.pageY),o.firstElementChild.noRipple=!1}else Smart.Utilities.Animation.Ripple.animate(e.target,e.pageX,e.pageY);t._preventsSelectStart=!0,t.tagName.toLowerCase().indexOf("smart-drop-down-")>-1&&"dropDownButton"===t.dropDownOpenMode&&e.target===t.$.actionButton&&t.$.actionButton.setAttribute("active",""),t.opened&&(t._preventDropDownClose=!0)}}_buttonsMouseEventsHandler(e){const t=this;t.disabled||("mouseenter"===e.type?(t.setAttribute("hover",""),e.target.setAttribute("hover",""),"dropDownButton"===t.dropDownOpenMode&&e.target===t.$.dropDownButton&&t.setAttribute("drop-down-button-hover","")):(t.removeAttribute("hover"),t.removeAttribute("drop-down-button-hover"),e.target.removeAttribute("hover")))}_calculateDropDownSize(){const e=this;e._dropDownSize={};const t=window.getComputedStyle(e.$.dropDownContainer),o=parseFloat(t.getPropertyValue("border-top-width").trim()),n=parseFloat(t.getPropertyValue("border-bottom-width").trim()),i=parseFloat(t.getPropertyValue("margin-top").trim()),r=parseFloat(t.getPropertyValue("margin-bottom").trim()),a=parseFloat(t.getPropertyValue("padding-top").trim()),s=parseFloat(t.getPropertyValue("padding-bottom").trim());Smart.Utilities.Core.CSSVariablesSupport()&&(e._dropDownSize.width=t.getPropertyValue("--smart-drop-down-list-drop-down-width").trim(),e._dropDownSize.height=t.getPropertyValue("--smart-drop-down-list-drop-down-height").trim()),(!e._dropDownSize.width||e._dropDownSize.width.indexOf("initial")>-1)&&(e._dropDownSize.width=e.offsetWidth),e._dropDownSize.height||(e._dropDownSize.height="auto"),e._dropDownSize.minHeight=parseFloat(t.getPropertyValue("min-height").trim()),e._dropDownSize.maxHeight=parseFloat(t.getPropertyValue("max-height").trim()),e._dropDownSize.borderWidth=(isNaN(o)?0:o)+(isNaN(n)?0:n),e._dropDownSize.paddingWidth=(isNaN(a)?0:a)+(isNaN(s)?0:s),e._dropDownSize.marginWidth=(isNaN(i)?0:i)+(isNaN(r)?0:r)}_createElement(){const e=this;e._tokenTemplate=e._validateTemplate(e.tokenTemplate),e._applySelection(),e._setDropDownSize(),e._setFocusable(),e.$.arrow.noRipple=!0,e._shadowDOMStylesDelay=e.shadowRoot,e._setAriaRelations(!0)}_documentDownHandler(e){const t=this;if(t.disabled||t.readonly)return;let o=e.originalEvent.target;if(o===t._overlay&&(t._overlayDown=!0),t.shadowRoot){o=e.originalEvent.composedPath()[0];let n=o.getRootNode().host;for(;n;)n.closest(".smart-drop-down-container")===t.$.dropDownContainer&&(t._isDropDownClicked=!0),n=n.getRootNode().host}else t.isInShadowDOM&&(o=e.originalEvent.composedPath()[0]),t._isDropDownClicked=o.closest(".smart-drop-down-container")===t.$.dropDownContainer;if(t._buttonClicked=o.closest(".smart-action-button")||o.closest(".smart-drop-down-button"),t.$.listBox){let n=o.closest("smart-list-item");t.$.listBox.contains(n)||(n=void 0),t.hasRippleAnimation&&n&&Smart.Utilities.Animation.Ripple.animate(n,e.pageX,e.pageY),(n||o===t.$.listBox.$.filterInput||o.closest(".smart-token"))&&(t._preventDropDownClose=!0)}if(t._isDropDownClicked&&(t._preventDropDownClose=!0),o!==t.$.resizeBar||"none"===t.resizeMode)return;t._resizeDetails||(t._resizeDetails={});const n=t.$.dropDownContainer.getBoundingClientRect();t._resizeDetails.started=!0,t._resizeDetails.x=e.pageX,t._resizeDetails.y=e.pageY,t._resizeDetails.width=t.$.dropDownContainer.offsetWidth,t._resizeDetails.height=t.$.dropDownContainer.offsetHeight,t._resizeDetails.offsetXL=e.clientX-n.left,t._resizeDetails.offsetXR=n.left+t.$.dropDownContainer.offsetWidth-e.clientX,t._resizeDetails.offsetY=n.top+t.$.dropDownContainer.offsetHeight-e.clientY,t._resizeDetails.offsetYtop=e.clientY-n.top,t._preventDropDownClose=!0}_documentMoveHandler(e){const t=this,o=t.shadowRoot||t.isInShadowDOM?e.originalEvent.composedPath()[0]:e.originalEvent.target;if("auto"===t.dropDownOpenMode&&null!==t.dropDownAppendTo&&(t.contains(o)||t.$.dropDownContainer.contains(o)?t._isElementHovered=!0:(t._isElementHovered=!1,t._autoClose())),!t._resizeDetails||t._resizeDetails&&!t._resizeDetails.started)return;t.setAttribute("resizing",""),t._resizeDetails.resizeEventFired||(t.$.fireEvent("resizeStart",{position:{left:e.pageX,top:e.pageY}}),t._resizeDetails.resizeEventFired=!0);const n=document.documentElement,i=t.$.dropDownContainer.getBoundingClientRect(),r=t.getBoundingClientRect(),a=t.$.dropDownContainer.hasAttribute("top")?"top":"bottom";let s;function l(){if(s=e.pageY-t._resizeDetails.y,"bottom"===a)t._resizeDetails.height=Math.min(n.clientHeight-i.top-6,Math.max(0,t._resizeDetails.height+s)),t._resizeDetails.y=Math.max(i.top+n.scrollTop-t._resizeDetails.offsetY,Math.min(n.clientHeight+n.scrollTop-1.5*t._resizeDetails.offsetY,e.pageY));else{if(t._resizeDetails.height=Math.min(t._dropDownSize.maxHeight,Math.max(0,Math.min(r.top,t._resizeDetails.height-s))),s=Math.max(0,i.top+(i.height-Math.max(t._dropDownSize.minHeight,t._resizeDetails.height))),t.dropDownAppendTo){const e=Math.abs(parseFloat(getComputedStyle(t.$.dropDownContainer).getPropertyValue("margin-bottom")))||0;t.$.dropDownContainer.style.top=t.dropDownAppendTo?e+s+"px":""}const o=r.top+n.scrollTop+t._resizeDetails.offsetYtop;t._resizeDetails.y=Math.max(t._resizeDetails.offsetYtop,Math.min(o,Math.max(o-t._dropDownSize.maxHeight,e.pageY)))}t.$.dropDownContainer.style.height=t._resizeDetails.height+"px"}function d(){s=e.pageX-t._resizeDetails.x,t._resizeDetails.width=Math.min(n.clientWidth-i.left-6,Math.max(0,t._resizeDetails.width+s)),t.$.dropDownContainer.style.width=t._resizeDetails.width+"px",t._resizeDetails.x=Math.max(i.left+n.scrollLeft-t._resizeDetails.offsetXR,Math.min(n.clientWidth+n.scrollLeft-1.5*t._resizeDetails.offsetXR,e.pageX))}switch(t.resizeMode){case"vertical":l();break;case"horizontal":d();break;case"both":d(),l()}}_documentUpHandler(e){const t=this;if(t.$.actionButton.removeAttribute("active"),t._resizeDetails&&t._resizeDetails.started)return t._resizeDetails.started=t._resizeDetails.resizeEventFired=!1,t.removeAttribute("resizing"),t._preventDropDownClose=!1,t.focus(),void t.$.fireEvent("resizeEnd",{position:{left:e.pageX,top:e.pageY}});if(t.disabled||t._isDropDownClicked||t.readonly)return void delete t._isDropDownClicked;if(t._overlayDown)return t.close(),void delete t._overlayDown;let o=e.originalEvent.target,n=o.closest?o.closest("smart-drop-down-list"):void 0;if((t.enableShadowDOM||t.isInShadowDOM)&&(o=e.originalEvent.composedPath()[0],n=o.getRootNode().host),t._preventsSelectStart=!1,void 0===o||o===t.$.resizeBar)return;if("tokens"===t.selectionDisplayMode&&o.classList.contains("smart-drop-down-list-selection-label")&&n===t){"none"!==t.dropDownOpenMode&&t.open();let e=t.$.listBox._items.filter((e=>e[t.inputMember].toString()===o.textContent))[0];return t.$.listBox._scrollView.scrollTop=e.offsetTop,void t._focus(e)}if("tokens"===t.selectionDisplayMode&&o.classList.contains("smart-drop-down-list-unselect-button")&&n===t){if(1===t.selectedIndexes.length&&["zeroOrMany","zeroOrOne","checkBox"].indexOf(t.selectionMode)<0)return;return void t.unselect(t.$.listBox._items.filter((e=>e[t.inputMember].toString()===o.previousElementSibling.textContent))[0])}const i=o.closest(".smart-action-button");let r;if(t._buttonClicked&&("dropDownButton"===t.dropDownOpenMode&&i&&t._buttonClicked===t.$.actionButton?t.$.fireEvent("actionButtonClick"):o.closest(".smart-drop-down-button")!==t._buttonClicked&&i!==t._buttonClicked||(r=!0,t.$.fireEvent("dropDownButtonClick"))),t._buttonClicked=void 0,i===t.$.actionButton||o.closest(".smart-drop-down-button")===t.$.dropDownButton)return"dropDownButton"===t.dropDownOpenMode&&i===t.$.actionButton?void t.close():void(t.$dropDownContainer.hasClass("smart-visibility-hidden")&&"none"!==t.dropDownOpenMode&&r&&"pointercancel"!==e.originalEvent.type?t.open():t.close());o=t._getUpEventTarget(o),void 0!==o&&("dropDownContainer"!==o&&"item"!==o||"item"===o&&"checkBox"!==t.selectionMode&&t.selectionMode.indexOf("Many")<0)&&t.close()}_dragStartHandler(e){this._resizeDetails&&this._resizeDetails.started&&e.preventDefault()}_dropDownTransitionendHandler(){const e=this;e._edgeMacFF&&!e.opened&&e.hasAnimation&&(e.$.dropDownContainer.style.top=e.$.dropDownContainer.style.left="",e.$dropDownContainer.addClass("not-in-view"))}_focus(e){this.$.listBox._focus(e)}_blurEventHandler(){const e=this;e.$.dropDownButton&&(e.removeAttribute("focus"),e.$.dropDownButton.removeAttribute("focus")),e.$.actionButton&&(e.removeAttribute("focus"),e.$.actionButton.removeAttribute("focus")),e.nodeName&&"smart-drop-down-list"===e.nodeName.toLowerCase()&&!e._preventDropDownClose&&e.close()}_focusEventHandler(){const e=this;e.$.dropDownButton&&(e.setAttribute("focus",""),e.$.dropDownButton.setAttribute("focus","")),e.$.actionButton&&(e.setAttribute("focus",""),e.$.actionButton.setAttribute("focus","")),e.removeAttribute("drop-down-button-focus"),e.removeAttribute("action-button-focus")}_buttonsFocusHandler(e){const t=this;e.target===t.$.dropDownButton?"focus"===e.type?t.setAttribute("drop-down-button-focus",""):(t.removeAttribute("drop-down-button-focus"),t.nodeName&&"smart-drop-down-list"===t.nodeName.toLowerCase()&&!t._preventDropDownClose&&t.close()):"focus"===e.type?t.setAttribute("action-button-focus",""):t.removeAttribute("action-button-focus")}_getUpEventTarget(e){const t=this;let o=e;for(o=void 0===o.parentElement?o.getRootNode().host:o.parentElement;o;){if(o===t.$.dropDownContainer){o="dropDownContainer";break}o=void 0===o.parentElement?o.getRootNode().host:o.parentElement}return o}_keyDownHandler(e){const t=this,o=t.enableShadowDOM&&t.shadowRoot.activeElement||document.activeElement,n=t.enableShadowDOM?e.composedPath()[0]:e.target;if(!(t.$.listBox&&n===t.$.listBox.$.filterInput||o!==t&&o!==t.$.dropDownButton&&o!==t.$.actionButton)||"Tab"===e.key)switch(e.key){case"Tab":if(t.filterable&&t.opened){const o=function(){for(let e=0;e<t.items.length;e++)if(!t.items[e].disabled)return t.items[e]};t.$.listBox.$.filterInput&&!Smart.Utilities.Core.isMobile&&document.activeElement!==t.$.listBox.$.filterInput?(t.$.listBox.$.filterInput.focus(),t._preventDropDownClose=!0):t.$.listBox&&(t.focus(),t.selectedIndexes.length>0?t._focus(t.items[t.selectedIndexes[0]]):t._focus(o),t._preventDropDownClose=!0),e.preventDefault()}break;case"Enter":case" ":e.preventDefault(),n!==t.$.actionButton&&(t._keyPressed=!0,t.opened?(t._focusedItem&&t.select(t._focusedItem),("Enter"===e.key&&["none"].indexOf(t.selectionMode)<0||" "===e.key&&["none","zeroAndOne","one","radioButton"].indexOf(t.selectionMode)>-1)&&t.close()):t.opened||t.readonly||"none"===t.dropDownOpenMode||t.open()),"dropDownButton"===t.dropDownOpenMode&&n.setAttribute("active","");break;case"End":case"Home":case"PageUp":case"PageDown":case"ArrowUp":case"ArrowDown":if(t.readonly)return;if(e.altKey)return t._keyPressed=!1,void(t.$dropDownContainer.hasClass("smart-visibility-hidden")?t.open():t.close());e.preventDefault(),t.$.listBox._handleKeyStrokes(e.key);break;case"Escape":e.preventDefault(),t.close();break;default:if(t.readonly)return;"oneOrManyExtended"===t.selectionMode&&(t.$.listBox._keysPressed[e.key]=!0),t.$.listBox._applyIncrementalSearch(e.key)}}_keyUpHandler(e){const t=this,o=t.enableShadowDOM?e.composedPath()[0]:e.target;t.$.listBox&&o===t.$.listBox.$.filterInput||("Enter"!==e.key&&" "!==e.key||(o.removeAttribute("active"),t.$dropDownContainer.hasClass("smart-visibility-hidden")||(t._keyPressed=!1)),t.$.listBox&&"oneOrManyExtended"===t.selectionMode&&(t.$.listBox._keysPressed[e.key]=!1))}_listBoxChangeHandler(e){const t=this;if(e.target===t.$.listBox){if((t.dropDownAppendTo||t.enableShadowDOM)&&t.$.fireEvent("change",e.detail),"list"===t.autoComplete&&e.detail){const o=t.$.listBox._items[e.detail.index];t._lastSelectedItem=o&&o.selected?o:void 0}t._applySelection(t.selectionMode,e.detail),t._updateTargetValue()}else e.stopPropagation()}_listBoxItemClickHandler(e){const t=this;(t.dropDownAppendTo||t.enableShadowDOM)&&t.$.fireEvent(e.type,e.detail),"checkBox"!==t.selectionMode&&t.selectionMode.indexOf("Many")<0&&t.close(),Smart.Utilities.Core.isMobile||t.focus(),delete t._isDropDownClicked}_listBoxKeyDownHandler(e){const t=this;if("Enter"===e.key)return t.close(),"dropDownButton"===t.dropDownOpenMode?t.$.dropDownButton.focus():t.focus(),void e.stopPropagation();"Escape"!==e.key||t.close()}_mouseEnterHandler(){const e=this;e._isElementHovered=!0,e.tagName.toLowerCase().indexOf("smart-drop-down-")>-1&&"auto"===e.dropDownOpenMode&&!e.disabled&&!e.readonly&&e.open()}_mouseLeaveHandler(){const e=this;e.removeAttribute("hover"),e._isElementHovered=!1,"auto"!==e.dropDownOpenMode||e.disabled||e.readonly||e._autoClose()}_mouseWheelHandler(e){const t=this;t.disabled||t.readonly||t.items&&0===t.items.length||t.$dropDownContainer&&!t.$dropDownContainer.hasClass("smart-visibility-hidden")||t.$.listBox&&(e.preventDefault(),t.$.listBox._handleKeyStrokes(e.deltaY>0?"ArrowDown":"ArrowUp"))}_autoClose(){const e=this;e._autoCloseTimeout=setTimeout(function(){e._isElementHovered||e.close(),clearTimeout(e._autoCloseTimeout)}.bind(e),e.autoCloseDelay)}_propertyValidator(e,t){return"number"!=typeof t&&"string"!=typeof t?e:t}_resizeHandler(){this.refresh()}refresh(){const e=this;"none"===e.resizeMode&&(e._calculateDropDownSize(),e._setDropDownSize())}_selectStartHandler(e){this._preventsSelectStart&&e.preventDefault()}_setAriaRelations(e){const t=this;let o,n;"dropDownButton"!==t.dropDownOpenMode?(o=t.$.dropDownButton,o.setAttribute("aria-hidden",!0),n=t,t.$.actionButton.removeAttribute("role")):(o=t,n=t.$.dropDownButton,n.removeAttribute("aria-hidden"),t.$.actionButton.setAttribute("role","button")),t._ariaButton=n,n.setAttribute("role","button"),n.setAttribute("aria-haspopup","listbox"),n.setAttribute("aria-owns",t.$.listBox.id),n.setAttribute("aria-describedby",t.$.hint.id),t.label?n.setAttribute("aria-labelledby",t.$.label.id):"DropDownList"===t.elementName&&n.setAttribute("aria-labelledby",t.$.actionButton.id),o.setAttribute("role","presentation"),o.removeAttribute("aria-owns"),e?n.setAttribute("aria-expanded",t.opened):(o.removeAttribute("aria-describedby"),o.removeAttribute("aria-expanded"),o.removeAttribute("aria-haspopup"),o.removeAttribute("aria-labelledby"))}_setDropDownSize(){const e=this,t=e.$.listBox;let o;if(e._dropDownSize||e._calculateDropDownSize(),["dropDownMinWidth","dropDownMaxWidth"].forEach((t=>{e.$.dropDownContainer.style[t.replace("dropDown","").replace(/^./,"m")]="initial"===e[t]?e.offsetWidth+"px":e[t]?parseFloat(e[t])+(e[t].toString().endsWith("%")?"%":"px"):null})),["dropDownMinHeight","dropDownMaxHeight"].forEach((t=>{e.$.dropDownContainer.style[t.replace("dropDown","").replace(/^./,"m")]=e[t]?parseFloat(e[t])+(e[t].toString().endsWith("%")?"%":"px"):null})),e.dropDownWidth?"auto"!==e.dropDownWidth?e.$.dropDownContainer.style.width=("initial"===e.dropDownWidth?e.offsetWidth:parseFloat(e.dropDownWidth))+"px":e.$.dropDownContainer.style.width="auto":e.$.dropDownContainer.style.width="auto"===e._dropDownSize.width?"auto":(parseFloat(e._dropDownSize.width)||0)+"px",e.dropDownHeight&&"auto"!==e.dropDownHeight)e.$.dropDownContainer.style.height=parseFloat(e.dropDownHeight)+((e.dropDownHeight+"").indexOf("%")>-1?"%":"px");else if(!e.$.listBox||"auto"!==e._dropDownSize.height&&"auto"!==e.dropDownHeight)e.$.dropDownContainer.style.height=e._dropDownSize.height;else{e.$.dropDownContainer.style.height="";let n=0;if(t.$.itemsContainer&&(n=2*parseInt(window.getComputedStyle(t.$.itemsContainer).getPropertyValue("--smart-list-item-vertical-offset"))),isNaN(n)&&(n=6),o=n,t.items&&t.items.length>0?t.items.map((e=>o+=e.height||e.offsetHeight)):o=t.$.placeholder?t.$.placeholder.offsetHeight:200,e.filterable){const e=t.$.filterInputContainer;o+=e.offsetHeight+e.offsetTop}o=o+e._dropDownSize.paddingWidth+e._dropDownSize.borderWidth,e.$.dropDownContainer.style.height=o+"px"}if(t){if(void 0===o||!t.$)return void t._refreshLayout();const n=t.$.horizontalScrollBar?t.$.horizontalScrollBar.offsetHeight:0,i=Math.max(0,e._dropDownSize.minHeight-(o-n));i&&(e.$.dropDownContainer.style.height=o+i+"px"),!e.opened&&e.virtualized&&t.refresh()}}_styleChangedHandler(e){const t=this;if(t.dropDownAppendTo){const o=e.detail.styleProperties,n=["font-size","font-family","font-style","font-weight"];for(let e=0;e<n.length;e++)o[n[e]]&&(t.$.dropDownContainer.style[n[e]]=o[n[e]].value)}"auto"===t._dropDownSize.height&&t._setDropDownSize()}_validateTemplate(e){const t=this;if(e&&"function"!=typeof e)if("content"in document.createElement("template")){if(e instanceof HTMLTemplateElement||(e=document.getElementById(e)),null!==e&&"content"in e)return e;t.error(t.localize("invalidTemplate",{elementType:t.nodeName.toLowerCase(),property:"tokenTemplate"}))}else t.error(t.localize("htmlTemplateNotSuported",{elementType:t.nodeName.toLowerCase()}))}});
788
788
 
789
789
  /***/ }),
790
790
 
@@ -922,8 +922,8 @@ var __webpack_exports__ = {};
922
922
  /* harmony import */ var _smart_window_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(8466);
923
923
  /* harmony import */ var _smart_window_js__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(_smart_window_js__WEBPACK_IMPORTED_MODULE_10__);
924
924
 
925
- /* Smart UI v15.0.0 (2023-01-19)
926
- Copyright (c) 2011-2022 jQWidgets.
925
+ /* Smart UI v15.0.3 (2023-01-26)
926
+ Copyright (c) 2011-2023 jQWidgets.
927
927
  License: https://htmlelements.com/license/ */ //
928
928
 
929
929
 
@@ -1,5 +1,5 @@
1
1
 
2
- /* Smart UI v15.0.0 (2023-01-19)
2
+ /* Smart UI v15.0.3 (2023-01-26)
3
3
  Copyright (c) 2011-2023 jQWidgets.
4
4
  License: https://htmlelements.com/license/ */ //
5
5