reneco-hierarchized-picker 0.4.3-beta.17 → 0.4.3-beta.19

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 (28) hide show
  1. package/dist/cjs/loader.cjs.js +1 -1
  2. package/dist/cjs/reneco-hierarchized-picker.cjs.js +1 -1
  3. package/dist/cjs/reneco-hierarchized-picker_2.cjs.entry.js +240 -143
  4. package/dist/collection/components/hierarchized-picker/hierarchized-picker.css +4 -0
  5. package/dist/collection/components/hierarchized-picker/hierarchized-picker.js +146 -46
  6. package/dist/collection/components/treejs/index.js +4 -5
  7. package/dist/collection/core/options-manager.js +1 -0
  8. package/dist/collection/features/events/focus-handlers.js +4 -0
  9. package/dist/collection/features/keyboard-navigation/keyboard-navigation.js +63 -59
  10. package/dist/collection/features/tree/tree-utils.js +12 -3
  11. package/dist/custom-elements/index.js +240 -143
  12. package/dist/esm/loader.js +1 -1
  13. package/dist/esm/reneco-hierarchized-picker.js +1 -1
  14. package/dist/esm/reneco-hierarchized-picker_2.entry.js +240 -143
  15. package/dist/esm-es5/loader.js +1 -1
  16. package/dist/esm-es5/reneco-hierarchized-picker.js +1 -1
  17. package/dist/esm-es5/reneco-hierarchized-picker_2.entry.js +1 -1
  18. package/dist/reneco-hierarchized-picker/p-711d3319.entry.js +1 -0
  19. package/dist/reneco-hierarchized-picker/p-73168a50.system.js +1 -1
  20. package/dist/reneco-hierarchized-picker/p-c45cf4da.system.entry.js +3 -0
  21. package/dist/reneco-hierarchized-picker/reneco-hierarchized-picker.esm.js +1 -1
  22. package/dist/types/components/hierarchized-picker/hierarchized-picker.d.ts +6 -2
  23. package/dist/types/components.d.ts +1 -0
  24. package/dist/types/core/options-manager.d.ts +1 -1
  25. package/dist/types/features/tree/tree-utils.d.ts +1 -1
  26. package/package.json +1 -1
  27. package/dist/reneco-hierarchized-picker/p-6a3abc16.entry.js +0 -1
  28. package/dist/reneco-hierarchized-picker/p-8ed96f20.system.entry.js +0 -3
@@ -14,7 +14,7 @@ const patchEsm = () => {
14
14
  const defineCustomElements = (win, options) => {
15
15
  if (typeof window === 'undefined') return Promise.resolve();
16
16
  return patchEsm().then(() => {
17
- return index.bootstrapLazy([["reneco-hierarchized-picker_2.cjs",[[0,"reneco-hierarchized-picker",{"options":[1],"valueChangeCallback":[16],"disabled":[4],"newoptions":[1],"newfilter":[1],"activatedDragAndDrop":[4,"activated-drag-and-drop"],"isDisabled":[32],"componentID":[32],"rawData":[32],"pickerClass":[32],"displayedValue":[32],"value":[32],"shownTree":[32],"searchResultData":[32],"hasFocus":[32],"errorToLog":[32],"getValue":[64],"refreshPicker":[64],"setOptions":[64],"getSearchResult":[64],"filterTree":[64],"clearPicker":[64],"showSelectedNodes":[64]}],[0,"search-input",{"placeholder":[1],"setFocus":[64]}]]]], options);
17
+ return index.bootstrapLazy([["reneco-hierarchized-picker_2.cjs",[[0,"reneco-hierarchized-picker",{"options":[1],"valueChangeCallback":[16],"disabled":[4],"newoptions":[1],"newfilter":[1],"activatedDragAndDrop":[4,"activated-drag-and-drop"],"isDisabled":[32],"componentID":[32],"rawData":[32],"pickerClass":[32],"displayedValue":[32],"value":[32],"shownTree":[32],"searchResultData":[32],"hasFocus":[32],"errorToLog":[32],"getValue":[64],"refreshPicker":[64],"setOptions":[64],"getSearchResult":[64],"filterTree":[64],"clearPicker":[64],"showSelectedNodes":[64],"scrollToNodeWithId":[64]}],[0,"search-input",{"placeholder":[1],"setFocus":[64]}]]]], options);
18
18
  });
19
19
  };
20
20
 
@@ -17,7 +17,7 @@ const patchBrowser = () => {
17
17
  };
18
18
 
19
19
  patchBrowser().then(options => {
20
- return index.bootstrapLazy([["reneco-hierarchized-picker_2.cjs",[[0,"reneco-hierarchized-picker",{"options":[1],"valueChangeCallback":[16],"disabled":[4],"newoptions":[1],"newfilter":[1],"activatedDragAndDrop":[4,"activated-drag-and-drop"],"isDisabled":[32],"componentID":[32],"rawData":[32],"pickerClass":[32],"displayedValue":[32],"value":[32],"shownTree":[32],"searchResultData":[32],"hasFocus":[32],"errorToLog":[32],"getValue":[64],"refreshPicker":[64],"setOptions":[64],"getSearchResult":[64],"filterTree":[64],"clearPicker":[64],"showSelectedNodes":[64]}],[0,"search-input",{"placeholder":[1],"setFocus":[64]}]]]], options);
20
+ return index.bootstrapLazy([["reneco-hierarchized-picker_2.cjs",[[0,"reneco-hierarchized-picker",{"options":[1],"valueChangeCallback":[16],"disabled":[4],"newoptions":[1],"newfilter":[1],"activatedDragAndDrop":[4,"activated-drag-and-drop"],"isDisabled":[32],"componentID":[32],"rawData":[32],"pickerClass":[32],"displayedValue":[32],"value":[32],"shownTree":[32],"searchResultData":[32],"hasFocus":[32],"errorToLog":[32],"getValue":[64],"refreshPicker":[64],"setOptions":[64],"getSearchResult":[64],"filterTree":[64],"clearPicker":[64],"showSelectedNodes":[64],"scrollToNodeWithId":[64]}],[0,"search-input",{"placeholder":[1],"setFocus":[64]}]]]], options);
21
21
  });
22
22
 
23
23
  exports.setNonce = index.setNonce;
@@ -673,11 +673,10 @@ Tree.prototype.createLiEle = function (node, closed) {
673
673
  else {
674
674
  li.classList.add('treejs-placeholder');
675
675
  }
676
- if (!this.options.parentApi || (this.options.parentApi && this.options.parentApi.theOptions.multiple)) {
677
- const checkbox = document.createElement('span');
678
- checkbox.classList.add('treejs-checkbox');
679
- li.appendChild(checkbox);
680
- }
676
+ const checkbox = document.createElement('span');
677
+ checkbox.classList.add('treejs-checkbox');
678
+ checkbox.style.display = ((!this.options.parentApi || (this.options.parentApi && this.options.parentApi.theOptions.multiple)) ? "inline-block" : "none");
679
+ li.appendChild(checkbox);
681
680
  const label = document.createElement('span');
682
681
  label.classList.add('treejs-label');
683
682
  const text = document.createTextNode(node.text);
@@ -18375,6 +18374,7 @@ class OptionsManager {
18375
18374
  errorsInInput: true,
18376
18375
  isFullpath: true,
18377
18376
  defaultValue: [],
18377
+ defaultValueIsFullpath: false,
18378
18378
  };
18379
18379
  const validatedOptions = Object.assign(Object.assign({}, defaults), options);
18380
18380
  // Validate specific fields
@@ -18461,7 +18461,7 @@ function findNodeById(tree, nodeId) {
18461
18461
  /**
18462
18462
  * Fills the tree with nodes based on the provided object.
18463
18463
  */
18464
- function fillTreeWithObject(tree, myObject, searched, options, depth = 0) {
18464
+ function fillTreeWithObject(tree, myObject, searched, options) {
18465
18465
  const searchResultPresentsUnMatched = options.searchResultPresentsUnMatched;
18466
18466
  if (myObject && myObject.length) {
18467
18467
  myObject.forEach(value => {
@@ -18493,7 +18493,6 @@ function fillTreeWithObject(tree, myObject, searched, options, depth = 0) {
18493
18493
  const objToPush = {
18494
18494
  id: keyPropFromNode,
18495
18495
  nodeId: keyPropFromNode,
18496
- depth,
18497
18496
  text: valueTranslatedPropFromNode,
18498
18497
  fullpath: fullpathPropFromNode,
18499
18498
  fullpathTranslated: fullpathTranslatedPropFromNode,
@@ -18502,7 +18501,7 @@ function fillTreeWithObject(tree, myObject, searched, options, depth = 0) {
18502
18501
  isDesaturated: false,
18503
18502
  searchMatch: false,
18504
18503
  };
18505
- const childTree = fillTreeWithObject(objToPush.children, childrenPropFromNode, searched, options, depth + 1);
18504
+ const childTree = fillTreeWithObject(objToPush.children, childrenPropFromNode, searched, options);
18506
18505
  let pushMe = false;
18507
18506
  if (searched) {
18508
18507
  const matched = searchValue(objToPush, false, searched);
@@ -18528,6 +18527,11 @@ function completeCurrentTreeWithTree(treeJsInstance, newTree, options) {
18528
18527
  var _a;
18529
18528
  const ElmID = newTree.key || newTree.id || newTree.ID;
18530
18529
  const targetNode = findNodeById(treeJsInstance, ElmID);
18530
+ if (ElmID == 0 && newTree.children && newTree.children.length > 0) {
18531
+ newTree.children.forEach(child => {
18532
+ completeCurrentTreeWithTree(treeJsInstance, child, options);
18533
+ });
18534
+ }
18531
18535
  if (targetNode) {
18532
18536
  targetNode.children = [];
18533
18537
  let ulElem = (_a = treeJsInstance.liElementsById[ElmID]) === null || _a === void 0 ? void 0 : _a.querySelector('ul');
@@ -18543,6 +18547,11 @@ function completeCurrentTreeWithTree(treeJsInstance, newTree, options) {
18543
18547
  targetNode.children.push(item);
18544
18548
  treeJsInstance.nodesById[item.id] = item;
18545
18549
  treeJsInstance.liElementsById[item.id] = liElm;
18550
+ if (item.children && item.children.some(child => Object.keys(child).length > 0)) {
18551
+ newTree.children.forEach(child => {
18552
+ completeCurrentTreeWithTree(treeJsInstance, child, options);
18553
+ });
18554
+ }
18546
18555
  });
18547
18556
  }
18548
18557
  }
@@ -18585,6 +18594,101 @@ function clearAutocomplete(eraseResults = false) {
18585
18594
  }
18586
18595
  }
18587
18596
 
18597
+ let focusedNodeIndex = 0;
18598
+ function setupKeyboardNavigation(component, optionsManager, navigateInTree) {
18599
+ if (!optionsManager.getOptions().keyboardNavigation)
18600
+ return;
18601
+ const treeArea = component.el.querySelector('.hierarchized-picker-tree-area') || component.el.querySelector('.hierarchized-picker-raw-tree-area');
18602
+ if (!treeArea)
18603
+ return;
18604
+ function focusNode(allLiElements, liElementToFocus) {
18605
+ Object.values(allLiElements).forEach((liNode) => {
18606
+ liNode.classList.remove('treejs-node__focused');
18607
+ });
18608
+ liElementToFocus.classList.add('treejs-node__focused');
18609
+ }
18610
+ function findAllTreeNodes(treeNodes, liElementsById) {
18611
+ let allNodes = [];
18612
+ const traverse = (nodes) => {
18613
+ nodes.forEach(node => {
18614
+ allNodes.push(node);
18615
+ if (node.children && node.children.length > 0 && !liElementsById[node.id].classList.contains("treejs-node__close")) {
18616
+ traverse(node.children);
18617
+ }
18618
+ });
18619
+ };
18620
+ traverse(treeNodes);
18621
+ return allNodes;
18622
+ }
18623
+ focusedNodeIndex = 0;
18624
+ if (component && component.loadedTreeJs && component.loadedTreeJs.liElementsById && component.loadedTreeJs.treeNodes) {
18625
+ focusNode(component.loadedTreeJs.liElementsById, component.loadedTreeJs.liElementsById[component.loadedTreeJs.treeNodes[focusedNodeIndex].id]);
18626
+ }
18627
+ //todo, put back ?
18628
+ // if ((component.el as any)._hasKeydownListener) {
18629
+ // return;
18630
+ // }
18631
+ component.el._hasKeydownListener = true;
18632
+ if (!component._keydownListenerAdded) {
18633
+ component._keydownListenerAdded = true;
18634
+ component.el.addEventListener('keydown', (event) => {
18635
+ var _a, _b;
18636
+ event.stopPropagation();
18637
+ const tree = component.loadedTreeJs;
18638
+ let treeNodesFromTree = findAllTreeNodes(tree.treeNodes, tree.liElementsById);
18639
+ if (!tree || !treeNodesFromTree.length)
18640
+ return;
18641
+ let spaceNode = treeNodesFromTree[focusedNodeIndex];
18642
+ let activeNode = treeNodesFromTree[focusedNodeIndex];
18643
+ let liElement = tree.liElementsById[activeNode.id];
18644
+ const handledEvents = ['tab', '0', 'arrowup', 'arrowdown', 'arrowleft', 'arrowright'];
18645
+ switch (event.key) {
18646
+ case 'Tab':
18647
+ case '0':
18648
+ event.preventDefault();
18649
+ { //(spaceNode?.nodeId) {
18650
+ component.setNodeAsSelected(spaceNode.nodeId, component.loadedTreeJs, true);
18651
+ component.showTree('hide');
18652
+ setTimeout(() => focusMainInput(), 100);
18653
+ }
18654
+ break;
18655
+ case 'ArrowUp':
18656
+ event.preventDefault();
18657
+ focusedNodeIndex = Math.max(focusedNodeIndex - 1, 0);
18658
+ const newActiveNodeUp = treeNodesFromTree[focusedNodeIndex];
18659
+ const newLiElementUp = tree.liElementsById[newActiveNodeUp.id];
18660
+ newLiElementUp.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
18661
+ focusNode(tree.liElementsById, newLiElementUp);
18662
+ break;
18663
+ case 'ArrowDown':
18664
+ event.preventDefault();
18665
+ focusedNodeIndex = Math.min(focusedNodeIndex + 1, treeNodesFromTree.length - 1);
18666
+ const newActiveNodeDown = treeNodesFromTree[focusedNodeIndex];
18667
+ const newLiElementDown = tree.liElementsById[newActiveNodeDown.id];
18668
+ focusNode(tree.liElementsById, newLiElementDown);
18669
+ newLiElementDown.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
18670
+ break;
18671
+ case 'ArrowLeft':
18672
+ event.preventDefault();
18673
+ const leftSwitcher = liElement.querySelector('.treejs-switcher');
18674
+ if (leftSwitcher) {
18675
+ (_a = component.loadedTreeJs) === null || _a === void 0 ? void 0 : _a.onSwitcherClick(leftSwitcher);
18676
+ }
18677
+ break;
18678
+ case 'ArrowRight':
18679
+ event.preventDefault();
18680
+ const rightSwitcher = liElement.querySelector('.treejs-switcher');
18681
+ if (rightSwitcher) {
18682
+ (_b = component.loadedTreeJs) === null || _b === void 0 ? void 0 : _b.onSwitcherClick(rightSwitcher);
18683
+ }
18684
+ break;
18685
+ }
18686
+ if (handledEvents.includes(event.key.toLowerCase()))
18687
+ navigateInTree.emit(event);
18688
+ });
18689
+ }
18690
+ }
18691
+
18588
18692
  // Utility functions
18589
18693
  function isInsidePicker(component, target) {
18590
18694
  return target !== null && component.el.contains(target);
@@ -18629,6 +18733,9 @@ function clickPickerModalArea(component, _event) {
18629
18733
  else {
18630
18734
  component.mylog('Ignored modal click');
18631
18735
  }
18736
+ if (component.theOptions.mode == 'tree') {
18737
+ setupKeyboardNavigation(component, component.optionsManager, component.navigateInTree);
18738
+ }
18632
18739
  }
18633
18740
  // Exposed event handlers
18634
18741
  function focusInSearchEvent(component) {
@@ -18637,98 +18744,7 @@ function focusInSearchEvent(component) {
18637
18744
  function focusOutSearchEvent(component, event) {
18638
18745
  }
18639
18746
 
18640
- let focusedNodeIndex = 0;
18641
- function setupKeyboardNavigation(component, optionsManager, navigateInTree) {
18642
- if (!optionsManager.getOptions().keyboardNavigation)
18643
- return;
18644
- const treeArea = component.el.querySelector('.hierarchized-picker-tree-area');
18645
- if (!treeArea)
18646
- return;
18647
- function focusNode(allLiElements, liElementToFocus) {
18648
- Object.values(allLiElements).forEach((liNode) => {
18649
- liNode.classList.remove('treejs-node__focused');
18650
- });
18651
- liElementToFocus.classList.add('treejs-node__focused');
18652
- }
18653
- function findAllTreeNodes(treeNodes, liElementsById) {
18654
- let allNodes = [];
18655
- const traverse = (nodes) => {
18656
- nodes.forEach(node => {
18657
- allNodes.push(node);
18658
- if (node.children && node.children.length > 0 && !liElementsById[node.id].classList.contains("treejs-node__close")) {
18659
- traverse(node.children);
18660
- }
18661
- });
18662
- };
18663
- traverse(treeNodes);
18664
- return allNodes;
18665
- }
18666
- focusedNodeIndex = 0;
18667
- if (component && component.loadedTreeJs && component.loadedTreeJs.liElementsById && component.loadedTreeJs.treeNodes) {
18668
- focusNode(component.loadedTreeJs.liElementsById, component.loadedTreeJs.liElementsById[component.loadedTreeJs.treeNodes[focusedNodeIndex].id]);
18669
- }
18670
- if (component.el._hasKeydownListener) {
18671
- return;
18672
- }
18673
- component.el._hasKeydownListener = true;
18674
- component.el.addEventListener('keydown', (event) => {
18675
- var _a, _b;
18676
- event.stopPropagation();
18677
- const tree = component.loadedTreeJs;
18678
- let treeNodesFromTree = findAllTreeNodes(tree.treeNodes, tree.liElementsById);
18679
- if (!tree || !treeNodesFromTree.length)
18680
- return;
18681
- let spaceNode = treeNodesFromTree[focusedNodeIndex];
18682
- let activeNode = treeNodesFromTree[focusedNodeIndex];
18683
- let liElement = tree.liElementsById[activeNode.id];
18684
- const handledEvents = ['tab', '0', 'arrowup', 'arrowdown', 'arrowleft', 'arrowright'];
18685
- switch (event.key) {
18686
- case 'Tab':
18687
- case '0':
18688
- event.preventDefault();
18689
- { //(spaceNode?.nodeId) {
18690
- component.setNodeAsSelected(spaceNode.nodeId, component.loadedTreeJs, true);
18691
- component.showTree('hide');
18692
- setTimeout(() => focusMainInput(), 100);
18693
- }
18694
- break;
18695
- case 'ArrowUp':
18696
- event.preventDefault();
18697
- focusedNodeIndex = Math.max(focusedNodeIndex - 1, 0);
18698
- const newActiveNodeUp = treeNodesFromTree[focusedNodeIndex];
18699
- const newLiElementUp = tree.liElementsById[newActiveNodeUp.id];
18700
- newLiElementUp.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
18701
- focusNode(tree.liElementsById, newLiElementUp);
18702
- break;
18703
- case 'ArrowDown':
18704
- event.preventDefault();
18705
- focusedNodeIndex = Math.min(focusedNodeIndex + 1, treeNodesFromTree.length - 1);
18706
- const newActiveNodeDown = treeNodesFromTree[focusedNodeIndex];
18707
- const newLiElementDown = tree.liElementsById[newActiveNodeDown.id];
18708
- focusNode(tree.liElementsById, newLiElementDown);
18709
- newLiElementDown.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
18710
- break;
18711
- case 'ArrowLeft':
18712
- event.preventDefault();
18713
- const leftSwitcher = liElement.querySelector('.treejs-switcher');
18714
- if (leftSwitcher) {
18715
- (_a = component.loadedTreeJs) === null || _a === void 0 ? void 0 : _a.onSwitcherClick(leftSwitcher);
18716
- }
18717
- break;
18718
- case 'ArrowRight':
18719
- event.preventDefault();
18720
- const rightSwitcher = liElement.querySelector('.treejs-switcher');
18721
- if (rightSwitcher) {
18722
- (_b = component.loadedTreeJs) === null || _b === void 0 ? void 0 : _b.onSwitcherClick(rightSwitcher);
18723
- }
18724
- break;
18725
- }
18726
- if (handledEvents.includes(event.key.toLowerCase()))
18727
- navigateInTree.emit(event);
18728
- });
18729
- }
18730
-
18731
- const hierarchizedPickerCss = "reneco-hierarchized-picker .hierarchized-picker-raw-tree-area{position:relative;-webkit-box-sizing:border-box;box-sizing:border-box}reneco-hierarchized-picker .loader{color:var(--hpicker-theme-palette-font-color, var(--mui-palette-font-color, black)) !important;position:absolute;z-index:1;min-width:100%;min-height:100%;background:#FFFFFF99;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;padding:10px;-webkit-box-sizing:border-box;box-sizing:border-box}reneco-hierarchized-picker .loader .loader-inner{background:var(--hpicker-theme-palette-background-light, var(--mui-palette-background-light, var(--ion-color-light, #FAFAFA))) !important;padding:20px;-webkit-box-shadow:0 0 5px #000;box-shadow:0 0 5px #000;-webkit-box-sizing:border-box;box-sizing:border-box}reneco-hierarchized-picker .loader:not(.loading){display:none}reneco-hierarchized-picker .scrollable{overflow-y:auto;position:relative}reneco-hierarchized-picker .treejs{-webkit-box-sizing:border-box;box-sizing:border-box;font-size:var(--hpicker-theme-typography-tree-font-size, 14px) !important;font-weight:var(--hpicker-theme-typography-tree-font-weight, 400) !important}reneco-hierarchized-picker .treejs *:after,reneco-hierarchized-picker .treejs *:before{-webkit-box-sizing:border-box;box-sizing:border-box}reneco-hierarchized-picker .treejs>.treejs-node{padding-left:0}reneco-hierarchized-picker .treejs .treejs-nodes{list-style:none;padding-left:20px;overflow:hidden;-webkit-transition:height 150ms ease-out, opacity 150ms ease-out;-o-transition:height 150ms ease-out, opacity 150ms ease-out;transition:height 150ms ease-out, opacity 150ms ease-out}reneco-hierarchized-picker .treejs .treejs-node{cursor:pointer;overflow:hidden;position:relative}reneco-hierarchized-picker .treejs .treejs-node.treejs-placeholder{padding-left:20px}reneco-hierarchized-picker .treejs .treejs-switcher{display:inline-block;vertical-align:middle;width:20px;height:20px;cursor:pointer;position:relative;-webkit-transition:-webkit-transform 150ms ease-out;transition:-webkit-transform 150ms ease-out;-o-transition:transform 150ms ease-out;transition:transform 150ms ease-out;transition:transform 150ms ease-out, -webkit-transform 150ms ease-out}reneco-hierarchized-picker .treejs .treejs-switcher:before{position:absolute;top:8px;left:6px;display:block;content:' ';border:4px solid transparent;border-top:4px solid rgba(0, 0, 0, 0.4);-webkit-transition:border-color 150ms;-o-transition:border-color 150ms;transition:border-color 150ms}reneco-hierarchized-picker .treejs .treejs-switcher:hover:before{border-top:4px solid var(--hpicker-theme-palette-font-color)}reneco-hierarchized-picker .treejs-node__checked>.treejs-switcher:before{border-top:4px solid var(--hpicker-theme-palette-primary-contrastText) !important}reneco-hierarchized-picker .treejs-node__focused{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:2px}reneco-hierarchized-picker .treejs .treejs-node__close>.treejs-switcher{-webkit-transform:rotate(-90deg);-ms-transform:rotate(-90deg);transform:rotate(-90deg)}reneco-hierarchized-picker .treejs .treejs-node__close>.treejs-nodes{height:0}reneco-hierarchized-picker .treejs .treejs-checkbox{display:inline-block;vertical-align:middle;width:20px;height:20px;cursor:pointer;position:relative}reneco-hierarchized-picker .treejs .treejs-checkbox:before{-webkit-transition:all 0.3s;-o-transition:all 0.3s;transition:all 0.3s;cursor:pointer;position:absolute;top:2px;content:' ';display:block;width:16px;height:16px;border:1px solid #d9d9d9;border-radius:2px}reneco-hierarchized-picker .treejs .treejs-checkbox:hover:before{-webkit-box-shadow:0 0 2px 1px #1890ff;box-shadow:0 0 2px 1px #1890ff}reneco-hierarchized-picker .treejs .treejs-node__checked>.treejs-checkbox:before{background-color:#1890ff;border-color:#1890ff}reneco-hierarchized-picker .treejs .treejs-node__checked>.treejs-checkbox:after{position:absolute;content:' ';display:block;top:4px;left:5px;width:5px;height:9px;border:2px solid #fff;border-top:none;border-left:none;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}reneco-hierarchized-picker .treejs .treejs-node__halfchecked{background-color:var(--hpicker-theme-palette-background-default, var(--mui-palette-background-default, #e8a86c))}reneco-hierarchized-picker .treejs .treejs-node__halfchecked>.treejs-checkbox:before{background-color:#1890ff;border-color:#1890ff}reneco-hierarchized-picker .treejs .treejs-node__halfchecked>.treejs-checkbox:after{position:absolute;content:' ';display:block;top:9px;left:3px;width:10px;height:2px;background-color:#fff}reneco-hierarchized-picker .treejs .treejs-node__disabled{cursor:not-allowed;color:rgba(0, 0, 0, 0.25)}reneco-hierarchized-picker .treejs .treejs-node__disabled .treejs-checkbox{cursor:not-allowed}reneco-hierarchized-picker .treejs .treejs-node__disabled .treejs-checkbox:before{cursor:not-allowed;border-color:#d9d9d9 !important;background-color:#f5f5f5 !important}reneco-hierarchized-picker .treejs .treejs-node__disabled .treejs-checkbox:hover:before{-webkit-box-shadow:none !important;box-shadow:none !important}reneco-hierarchized-picker .treejs .treejs-node__disabled .treejs-node__checked>.treejs-checkbox:after{border-color:#d9d9d9}reneco-hierarchized-picker .treejs .treejs-node__disabled .treejs-node__halfchecked>.treejs-checkbox:after{background-color:#d9d9d9}reneco-hierarchized-picker .treejs .treejs-node__disabled.treejs-node__checked>.treejs-checkbox:after{border-color:#d9d9d9}reneco-hierarchized-picker .treejs .treejs-node__disabled.treejs-node__halfchecked>.treejs-checkbox:after{background-color:#d9d9d9}reneco-hierarchized-picker .treejs .treejs-label{vertical-align:middle}reneco-hierarchized-picker .treejs .treejs-node__deprecated>.treejs-label{text-decoration:line-through}reneco-hierarchized-picker .treejs .treejs-node__desaturated>.treejs-label{opacity:.5}reneco-hierarchized-picker .treejs .treejs-node__searchmatch>.treejs-label{font-weight:bolder}reneco-hierarchized-picker .treejs .dragging{background:var(--hpicker-theme-palette-background-light, var(--mui-palette-background-light, #e8a86c));display:inline;opacity:.9;padding:11px 0px;display:block}reneco-hierarchized-picker .treejs .dragover{background:var(--hpicker-theme-palette-background-light, var(--mui-palette-background-light, #e8a86c))}reneco-hierarchized-picker .treejs .dragover-over::after{content:\"\";display:block;width:2px;height:100%;position:absolute;top:0;left:0;background:var(--hpicker-theme-palette-primary-main, var(--mui-palette-primary-main, #d58433))}reneco-hierarchized-picker .treejs .dragover-before::after{content:\"\";display:block;height:2px;width:100%;position:absolute;top:0;left:0;background:var(--hpicker-theme-palette-primary-main, var(--mui-palette-primary-main, #d58433))}reneco-hierarchized-picker .treejs .dragover-after::after{content:\"\";display:block;height:2px;width:100%;position:absolute;bottom:0;left:0;background:var(--hpicker-theme-palette-primary-main, var(--mui-palette-primary-main, #d58433))}reneco-hierarchized-picker .fieldError{color:red !important}reneco-hierarchized-picker .hidden{display:none;opacity:0}reneco-hierarchized-picker ul.treejs-nodes:first-child{padding-left:0px !important;margin-top:0px !important;margin-left:0px !important;background-color:var(--hpicker-theme-palette-background-dark)}reneco-hierarchized-picker ul.treejs-nodes:not(:first-child){margin:0 !important;padding-left:15px !important;background-color:var(--hpicker-theme-palette-background-dark, var(--mui-palette-background-dark, var(--ion-color-light-tint, #FFF)))}reneco-hierarchized-picker ul.treejs-nodes{margin-left:15px !important;padding-left:0px !important}reneco-hierarchized-picker .hierarchized-picker-raw-tree li.treejs-node ul.treejs-nodes{margin:11px 0 0 0 !important}reneco-hierarchized-picker .hierarchized-picker-raw-tree li.treejs-node__close ul.treejs-nodes{margin:0 !important}reneco-hierarchized-picker li.treejs-node__close{background-color:var(--hpicker-theme-palette-background-light, var(--mui-palette-background-light, var(--ion-color-light, #FAFAFA)))}reneco-hierarchized-picker li:not(.treejs-node__close){background-color:var(--hpicker-theme-palette-background-default, var(--mui-palette-background-default, #e8a86c));padding-bottom:0px !important}reneco-hierarchized-picker li:not(.treejs-node__close) ul.treejs-nodes li{margin-top:2px !important}reneco-hierarchized-picker ul li:last-child{margin-bottom:0px !important}reneco-hierarchized-picker li.treejs-node__checked{background-color:var(--hpicker-theme-palette-primary-light) !important;color:var(--hpicker-theme-palette-primary-contrastText, var(--mui-palette-primary-ContrastText, var(--ion-color-primary-contrast, #000)))!important}reneco-hierarchized-picker li.treejs-node{padding:2px 0px;margin-bottom:2px}reneco-hierarchized-picker .treejs-node.readonly_node{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:darkgrey}reneco-hierarchized-picker .treejs-node:not(.readonly_node){-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:var(--hpicker-theme-palette-font-color, var(--mui-palette-font-color, black))}reneco-hierarchized-picker .hierarchized-picker-container{position:relative;width:100%}reneco-hierarchized-picker .hierarchized-picker-input-area{background-color:transparent !important;display:-ms-flexbox;display:flex;width:100%;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center}reneco-hierarchized-picker .hierarchized-picker-input-area .input-wrapper{padding-left:10px !important}reneco-hierarchized-picker .hierarchized-picker-input{-ms-flex:2;flex:2}reneco-hierarchized-picker .hierarchized-picker-input input{width:100%}reneco-hierarchized-picker .hierarchized-picker-input.readonly{pointer-events:none;cursor:initial}reneco-hierarchized-picker .hierarchized-picker-label{position:stacked;margin-left:5px}reneco-hierarchized-picker .hierarchized-picker-tree-area{padding-top:10px}reneco-hierarchized-picker .hierarchized-picker-modal-area{position:absolute;width:100%;background-color:var(--hpicker-theme-palette-background-dark, var(--mui-palette-background-dark, var(--ion-color-light-tint, #FFF))) !important;z-index:10;overflow:scroll;top:20px;min-height:100px;max-height:var(--hpicker-theme-modal-height, \"200px\") !important;-webkit-box-shadow:0 0px 15px 0 rgba(0, 0, 0, 0.2);box-shadow:0 0px 15px 0 rgba(0, 0, 0, 0.2);border-radius:4px;margin-right:0px !important}reneco-hierarchized-picker .hierarchized-picker-modal-area.display-modale-top{bottom:30px !important;top:unset !important}reneco-hierarchized-picker .hierarchized-picker-modal{padding:0px 15px}reneco-hierarchized-picker .hierarchized-picker{display:-ms-flexbox;display:flex;width:100%;font-family:'Roboto', sans-serif}reneco-hierarchized-picker .hierarchized-picker-spinner{margin:35px 0px 0px 145px}reneco-hierarchized-picker .reneco:before{position:relative;top:1px}reneco-hierarchized-picker .hierarchized-picker-input-area span.reneco:hover{cursor:pointer}reneco-hierarchized-picker .hierarchized-picker-input-area span.reneco-close{color:var(--ion-color-danger, red) !important;padding-left:10px}reneco-hierarchized-picker .treejs .treejs-switcher:before{border-top:4px solid var(--hpicker-theme-palette-font-color, var(--mui-palette-font-color, var(--ion-color-dark-shade, #121212)))}reneco-hierarchized-picker .treejs .treejs-checkbox:before{-webkit-box-shadow:none !important;box-shadow:none !important}reneco-hierarchized-picker .treejs .treejs-node__checked>.treejs-checkbox:before,reneco-hierarchized-picker .treejs .treejs-node__halfchecked>.treejs-checkbox:before{background-color:var(--hpicker-theme-palette-primary-main, var(--mui-palette-primary-main, var(--ion-color-primary, #d58433))) !important;border-color:var(--hpicker-theme-palette-primary-main, var(--mui-palette-primary-main, var(--ion-color-primary, #d58433))) !important;-webkit-box-shadow:none !important;box-shadow:none !important}reneco-hierarchized-picker #autocomplete-results-area{position:absolute;margin-top:48px;background-color:white;left:15px;z-index:10;padding:0px 5px;max-width:340px;max-height:110px;overflow:auto}reneco-hierarchized-picker #autocomplete-results-area li{list-style-type:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;margin:1px}reneco-hierarchized-picker .hierarchized-picker-raw-tree-area li.treejs-node{padding:11px 0px;display:block}reneco-hierarchized-picker input[title]{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}reneco-hierarchized-picker input{background-color:var(--hpicker-theme-palette-input-background-color, #eeeeee);border-style:var(--hpicker-theme-palette-input-border-style, solid);color:var(--hpicker-theme-palette-font-color, var(--mui-palette-font-color, black))}reneco-hierarchized-picker input:focus-visible{outline:unset !important;outline-color:unset !important;outline-style:unset !important}.hierarchized-picker-raw-tree-area.readonly li.treejs-node .treejs-switcher{pointer-events:all}::-webkit-scrollbar-thumb{background:var(--hpicker-theme-palette-primary-main, var(--mui-palette-primary-main, var(--ion-color-primary, #d58433)));width:8px;margin:5px;border-radius:5px}::-webkit-scrollbar{background:var(--ion-color-medium-tint, #E0E0E0);width:8px;height:8px;margin:5px;cursor:pointer;border-radius:5px}::-webkit-scrollbar-corner{background-color:var(--ion-color-light-tint, #FFF)}[class$=\"-dark\"] reneco-hierarchized-picker li.treejs-node__close{background-color:var(--ion-color-dark-tint, #424242);color:var(--ion-color-dark-contrast, #fff)}[class$=\"-dark\"] reneco-hierarchized-picker li:not(.treejs-node__close){background-color:var(--ion-color-dark, #212121);color:var(--ion-color-dark-contrast, #fff)}[class$=\"-dark\"] reneco-hierarchized-picker li.treejs-node__checked{background-color:var(--ion-color-background, var(--hpicker-theme-palette-background-default, rgba(221, 169, 37, 0.18)));color:var(--ion-color-primary-contrast, #fff) !important}[class$=\"-dark\"] reneco-hierarchized-picker .treejs-switcher:before{border-top-color:var(--ion-color-dark-contrast, #fff) !important}[class$=\"-dark\"] reneco-hierarchized-picker li.treejs-node__checked .treejs-switcher:before{color:var(--ion-color-light-contrast, #111111) !important}[class$=\"-dark\"] reneco-hierarchized-picker ul.treejs-nodes:not(:first-child){background-color:var(--ion-color-light-contrast, #111111) !important}";
18747
+ const hierarchizedPickerCss = "reneco-hierarchized-picker .hierarchized-picker-raw-tree-area{position:relative;-webkit-box-sizing:border-box;box-sizing:border-box}reneco-hierarchized-picker div:focus{outline:none}reneco-hierarchized-picker .loader{color:var(--hpicker-theme-palette-font-color, var(--mui-palette-font-color, black)) !important;position:absolute;z-index:1;min-width:100%;min-height:100%;background:#FFFFFF99;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;padding:10px;-webkit-box-sizing:border-box;box-sizing:border-box}reneco-hierarchized-picker .loader .loader-inner{background:var(--hpicker-theme-palette-background-light, var(--mui-palette-background-light, var(--ion-color-light, #FAFAFA))) !important;padding:20px;-webkit-box-shadow:0 0 5px #000;box-shadow:0 0 5px #000;-webkit-box-sizing:border-box;box-sizing:border-box}reneco-hierarchized-picker .loader:not(.loading){display:none}reneco-hierarchized-picker .scrollable{overflow-y:auto;position:relative}reneco-hierarchized-picker .treejs{-webkit-box-sizing:border-box;box-sizing:border-box;font-size:var(--hpicker-theme-typography-tree-font-size, 14px) !important;font-weight:var(--hpicker-theme-typography-tree-font-weight, 400) !important}reneco-hierarchized-picker .treejs *:after,reneco-hierarchized-picker .treejs *:before{-webkit-box-sizing:border-box;box-sizing:border-box}reneco-hierarchized-picker .treejs>.treejs-node{padding-left:0}reneco-hierarchized-picker .treejs .treejs-nodes{list-style:none;padding-left:20px;overflow:hidden;-webkit-transition:height 150ms ease-out, opacity 150ms ease-out;-o-transition:height 150ms ease-out, opacity 150ms ease-out;transition:height 150ms ease-out, opacity 150ms ease-out}reneco-hierarchized-picker .treejs .treejs-node{cursor:pointer;overflow:hidden;position:relative}reneco-hierarchized-picker .treejs .treejs-node.treejs-placeholder{padding-left:20px}reneco-hierarchized-picker .treejs .treejs-switcher{display:inline-block;vertical-align:middle;width:20px;height:20px;cursor:pointer;position:relative;-webkit-transition:-webkit-transform 150ms ease-out;transition:-webkit-transform 150ms ease-out;-o-transition:transform 150ms ease-out;transition:transform 150ms ease-out;transition:transform 150ms ease-out, -webkit-transform 150ms ease-out}reneco-hierarchized-picker .treejs .treejs-switcher:before{position:absolute;top:8px;left:6px;display:block;content:' ';border:4px solid transparent;border-top:4px solid rgba(0, 0, 0, 0.4);-webkit-transition:border-color 150ms;-o-transition:border-color 150ms;transition:border-color 150ms}reneco-hierarchized-picker .treejs .treejs-switcher:hover:before{border-top:4px solid var(--hpicker-theme-palette-font-color)}reneco-hierarchized-picker .treejs-node__checked>.treejs-switcher:before{border-top:4px solid var(--hpicker-theme-palette-primary-contrastText) !important}reneco-hierarchized-picker .treejs-node__focused{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:2px}reneco-hierarchized-picker .treejs .treejs-node__close>.treejs-switcher{-webkit-transform:rotate(-90deg);-ms-transform:rotate(-90deg);transform:rotate(-90deg)}reneco-hierarchized-picker .treejs .treejs-node__close>.treejs-nodes{height:0}reneco-hierarchized-picker .treejs .treejs-checkbox{display:inline-block;vertical-align:middle;width:20px;height:20px;cursor:pointer;position:relative}reneco-hierarchized-picker .treejs .treejs-checkbox:before{-webkit-transition:all 0.3s;-o-transition:all 0.3s;transition:all 0.3s;cursor:pointer;position:absolute;top:2px;content:' ';display:block;width:16px;height:16px;border:1px solid #d9d9d9;border-radius:2px}reneco-hierarchized-picker .treejs .treejs-checkbox:hover:before{-webkit-box-shadow:0 0 2px 1px #1890ff;box-shadow:0 0 2px 1px #1890ff}reneco-hierarchized-picker .treejs .treejs-node__checked>.treejs-checkbox:before{background-color:#1890ff;border-color:#1890ff}reneco-hierarchized-picker .treejs .treejs-node__checked>.treejs-checkbox:after{position:absolute;content:' ';display:block;top:4px;left:5px;width:5px;height:9px;border:2px solid #fff;border-top:none;border-left:none;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}reneco-hierarchized-picker .treejs .treejs-node__halfchecked{background-color:var(--hpicker-theme-palette-background-default, var(--mui-palette-background-default, #e8a86c))}reneco-hierarchized-picker .treejs .treejs-node__halfchecked>.treejs-checkbox:before{background-color:#1890ff;border-color:#1890ff}reneco-hierarchized-picker .treejs .treejs-node__halfchecked>.treejs-checkbox:after{position:absolute;content:' ';display:block;top:9px;left:3px;width:10px;height:2px;background-color:#fff}reneco-hierarchized-picker .treejs .treejs-node__disabled{cursor:not-allowed;color:rgba(0, 0, 0, 0.25)}reneco-hierarchized-picker .treejs .treejs-node__disabled .treejs-checkbox{cursor:not-allowed}reneco-hierarchized-picker .treejs .treejs-node__disabled .treejs-checkbox:before{cursor:not-allowed;border-color:#d9d9d9 !important;background-color:#f5f5f5 !important}reneco-hierarchized-picker .treejs .treejs-node__disabled .treejs-checkbox:hover:before{-webkit-box-shadow:none !important;box-shadow:none !important}reneco-hierarchized-picker .treejs .treejs-node__disabled .treejs-node__checked>.treejs-checkbox:after{border-color:#d9d9d9}reneco-hierarchized-picker .treejs .treejs-node__disabled .treejs-node__halfchecked>.treejs-checkbox:after{background-color:#d9d9d9}reneco-hierarchized-picker .treejs .treejs-node__disabled.treejs-node__checked>.treejs-checkbox:after{border-color:#d9d9d9}reneco-hierarchized-picker .treejs .treejs-node__disabled.treejs-node__halfchecked>.treejs-checkbox:after{background-color:#d9d9d9}reneco-hierarchized-picker .treejs .treejs-label{vertical-align:middle}reneco-hierarchized-picker .treejs .treejs-node__deprecated>.treejs-label{text-decoration:line-through}reneco-hierarchized-picker .treejs .treejs-node__desaturated>.treejs-label{opacity:.5}reneco-hierarchized-picker .treejs .treejs-node__searchmatch>.treejs-label{font-weight:bolder}reneco-hierarchized-picker .treejs .dragging{background:var(--hpicker-theme-palette-background-light, var(--mui-palette-background-light, #e8a86c));display:inline;opacity:.9;padding:11px 0px;display:block}reneco-hierarchized-picker .treejs .dragover{background:var(--hpicker-theme-palette-background-light, var(--mui-palette-background-light, #e8a86c))}reneco-hierarchized-picker .treejs .dragover-over::after{content:\"\";display:block;width:2px;height:100%;position:absolute;top:0;left:0;background:var(--hpicker-theme-palette-primary-main, var(--mui-palette-primary-main, #d58433))}reneco-hierarchized-picker .treejs .dragover-before::after{content:\"\";display:block;height:2px;width:100%;position:absolute;top:0;left:0;background:var(--hpicker-theme-palette-primary-main, var(--mui-palette-primary-main, #d58433))}reneco-hierarchized-picker .treejs .dragover-after::after{content:\"\";display:block;height:2px;width:100%;position:absolute;bottom:0;left:0;background:var(--hpicker-theme-palette-primary-main, var(--mui-palette-primary-main, #d58433))}reneco-hierarchized-picker .fieldError{color:red !important}reneco-hierarchized-picker .hidden{display:none;opacity:0}reneco-hierarchized-picker ul.treejs-nodes:first-child{padding-left:0px !important;margin-top:0px !important;margin-left:0px !important;background-color:var(--hpicker-theme-palette-background-dark)}reneco-hierarchized-picker ul.treejs-nodes:not(:first-child){margin:0 !important;padding-left:15px !important;background-color:var(--hpicker-theme-palette-background-dark, var(--mui-palette-background-dark, var(--ion-color-light-tint, #FFF)))}reneco-hierarchized-picker ul.treejs-nodes{margin-left:15px !important;padding-left:0px !important}reneco-hierarchized-picker .hierarchized-picker-raw-tree li.treejs-node ul.treejs-nodes{margin:11px 0 0 0 !important}reneco-hierarchized-picker .hierarchized-picker-raw-tree li.treejs-node__close ul.treejs-nodes{margin:0 !important}reneco-hierarchized-picker li.treejs-node__close{background-color:var(--hpicker-theme-palette-background-light, var(--mui-palette-background-light, var(--ion-color-light, #FAFAFA)))}reneco-hierarchized-picker li:not(.treejs-node__close){background-color:var(--hpicker-theme-palette-background-default, var(--mui-palette-background-default, #e8a86c));padding-bottom:0px !important}reneco-hierarchized-picker li:not(.treejs-node__close) ul.treejs-nodes li{margin-top:2px !important}reneco-hierarchized-picker ul li:last-child{margin-bottom:0px !important}reneco-hierarchized-picker li.treejs-node__checked{background-color:var(--hpicker-theme-palette-primary-light) !important;color:var(--hpicker-theme-palette-primary-contrastText, var(--mui-palette-primary-ContrastText, var(--ion-color-primary-contrast, #000)))!important}reneco-hierarchized-picker li.treejs-node{padding:2px 0px;margin-bottom:2px}reneco-hierarchized-picker .treejs-node.readonly_node{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:darkgrey}reneco-hierarchized-picker .treejs-node:not(.readonly_node){-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:var(--hpicker-theme-palette-font-color, var(--mui-palette-font-color, black))}reneco-hierarchized-picker .hierarchized-picker-container{position:relative;width:100%}reneco-hierarchized-picker .hierarchized-picker-input-area{background-color:transparent !important;display:-ms-flexbox;display:flex;width:100%;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center}reneco-hierarchized-picker .hierarchized-picker-input-area .input-wrapper{padding-left:10px !important}reneco-hierarchized-picker .hierarchized-picker-input{-ms-flex:2;flex:2}reneco-hierarchized-picker .hierarchized-picker-input input{width:100%}reneco-hierarchized-picker .hierarchized-picker-input.readonly{pointer-events:none;cursor:initial}reneco-hierarchized-picker .hierarchized-picker-label{position:stacked;margin-left:5px}reneco-hierarchized-picker .hierarchized-picker-tree-area{padding-top:10px}reneco-hierarchized-picker .hierarchized-picker-modal-area{position:absolute;width:100%;background-color:var(--hpicker-theme-palette-background-dark, var(--mui-palette-background-dark, var(--ion-color-light-tint, #FFF))) !important;z-index:10;overflow:scroll;top:20px;min-height:100px;max-height:var(--hpicker-theme-modal-height, \"200px\") !important;-webkit-box-shadow:0 0px 15px 0 rgba(0, 0, 0, 0.2);box-shadow:0 0px 15px 0 rgba(0, 0, 0, 0.2);border-radius:4px;margin-right:0px !important}reneco-hierarchized-picker .hierarchized-picker-modal-area.display-modale-top{bottom:30px !important;top:unset !important}reneco-hierarchized-picker .hierarchized-picker-modal{padding:0px 15px}reneco-hierarchized-picker .hierarchized-picker{display:-ms-flexbox;display:flex;width:100%;font-family:'Roboto', sans-serif}reneco-hierarchized-picker .hierarchized-picker-spinner{margin:35px 0px 0px 145px}reneco-hierarchized-picker .reneco:before{position:relative;top:1px}reneco-hierarchized-picker .hierarchized-picker-input-area span.reneco:hover{cursor:pointer}reneco-hierarchized-picker .hierarchized-picker-input-area span.reneco-close{color:var(--ion-color-danger, red) !important;padding-left:10px}reneco-hierarchized-picker .treejs .treejs-switcher:before{border-top:4px solid var(--hpicker-theme-palette-font-color, var(--mui-palette-font-color, var(--ion-color-dark-shade, #121212)))}reneco-hierarchized-picker .treejs .treejs-checkbox:before{-webkit-box-shadow:none !important;box-shadow:none !important}reneco-hierarchized-picker .treejs .treejs-node__checked>.treejs-checkbox:before,reneco-hierarchized-picker .treejs .treejs-node__halfchecked>.treejs-checkbox:before{background-color:var(--hpicker-theme-palette-primary-main, var(--mui-palette-primary-main, var(--ion-color-primary, #d58433))) !important;border-color:var(--hpicker-theme-palette-primary-main, var(--mui-palette-primary-main, var(--ion-color-primary, #d58433))) !important;-webkit-box-shadow:none !important;box-shadow:none !important}reneco-hierarchized-picker #autocomplete-results-area{position:absolute;margin-top:48px;background-color:white;left:15px;z-index:10;padding:0px 5px;max-width:340px;max-height:110px;overflow:auto}reneco-hierarchized-picker #autocomplete-results-area li{list-style-type:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;margin:1px}reneco-hierarchized-picker .hierarchized-picker-raw-tree-area li.treejs-node{padding:11px 0px;display:block}reneco-hierarchized-picker input[title]{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}reneco-hierarchized-picker input{background-color:var(--hpicker-theme-palette-input-background-color, #eeeeee);border-style:var(--hpicker-theme-palette-input-border-style, solid);color:var(--hpicker-theme-palette-font-color, var(--mui-palette-font-color, black))}reneco-hierarchized-picker input:focus-visible{outline:unset !important;outline-color:unset !important;outline-style:unset !important}.hierarchized-picker-raw-tree-area.readonly li.treejs-node .treejs-switcher{pointer-events:all}::-webkit-scrollbar-thumb{background:var(--hpicker-theme-palette-primary-main, var(--mui-palette-primary-main, var(--ion-color-primary, #d58433)));width:8px;margin:5px;border-radius:5px}::-webkit-scrollbar{background:var(--ion-color-medium-tint, #E0E0E0);width:8px;height:8px;margin:5px;cursor:pointer;border-radius:5px}::-webkit-scrollbar-corner{background-color:var(--ion-color-light-tint, #FFF)}[class$=\"-dark\"] reneco-hierarchized-picker li.treejs-node__close{background-color:var(--ion-color-dark-tint, #424242);color:var(--ion-color-dark-contrast, #fff)}[class$=\"-dark\"] reneco-hierarchized-picker li:not(.treejs-node__close){background-color:var(--ion-color-dark, #212121);color:var(--ion-color-dark-contrast, #fff)}[class$=\"-dark\"] reneco-hierarchized-picker li.treejs-node__checked{background-color:var(--ion-color-background, var(--hpicker-theme-palette-background-default, rgba(221, 169, 37, 0.18)));color:var(--ion-color-primary-contrast, #fff) !important}[class$=\"-dark\"] reneco-hierarchized-picker .treejs-switcher:before{border-top-color:var(--ion-color-dark-contrast, #fff) !important}[class$=\"-dark\"] reneco-hierarchized-picker li.treejs-node__checked .treejs-switcher:before{color:var(--ion-color-light-contrast, #111111) !important}[class$=\"-dark\"] reneco-hierarchized-picker ul.treejs-nodes:not(:first-child){background-color:var(--ion-color-light-contrast, #111111) !important}";
18732
18748
 
18733
18749
  const HierarchizedPickerComponent = class {
18734
18750
  /**
@@ -18805,6 +18821,24 @@ const HierarchizedPickerComponent = class {
18805
18821
  get theOptions() {
18806
18822
  return this.optionsManager.getOptions();
18807
18823
  }
18824
+ diffKeys(obj1, obj2, prefix = '') {
18825
+ const diffs = [];
18826
+ const keys = new Set([...Object.keys(obj1 || {}), ...Object.keys(obj2 || {})]);
18827
+ for (const key of keys) {
18828
+ const fullKey = prefix ? `${prefix}.${key}` : key;
18829
+ const val1 = obj1 ? obj1[key] : undefined;
18830
+ const val2 = obj2 ? obj2[key] : undefined;
18831
+ if (typeof val1 === 'object' && val1 !== null && typeof val2 === 'object' && val2 !== null) {
18832
+ // Appel récursif pour les objets imbriqués
18833
+ diffs.push(...this.diffKeys(val1, val2, fullKey));
18834
+ }
18835
+ else if (val1 !== val2) {
18836
+ // Valeurs différentes ou propriété manquante
18837
+ diffs.push(fullKey);
18838
+ }
18839
+ }
18840
+ return diffs;
18841
+ }
18808
18842
  async setNewOption(newValue, oldValue = null) {
18809
18843
  this.ready = false;
18810
18844
  // --------------------------------------- DEPRECATED ?
@@ -18823,6 +18857,7 @@ const HierarchizedPickerComponent = class {
18823
18857
  // });
18824
18858
  // ---------------------------------------
18825
18859
  // this.theOptions = newValue;
18860
+ const savedOldValue = Object.assign({}, this.theOptions);
18826
18861
  if (oldValue && JSON.stringify(newValue.options) == JSON.stringify(oldValue.options)) {
18827
18862
  this.ready = true;
18828
18863
  return;
@@ -18849,11 +18884,26 @@ const HierarchizedPickerComponent = class {
18849
18884
  if (oldValue && JSON.stringify(newValue.options) != JSON.stringify(oldValue.options)) {
18850
18885
  this.value = [];
18851
18886
  }
18852
- if ((newValue === null || newValue === void 0 ? void 0 : newValue.loading) == 'display') {
18887
+ if ((newValue === null || newValue === void 0 ? void 0 : newValue.loading) == 'display' || (newValue && !newValue.loading)) {
18853
18888
  if ((oldValue && this.isChangeInOptions(newValue, oldValue)) || !oldValue) {
18854
- this.rawDataManager = new RawDataManager(this.getOptionsAsIConf(this.optionsManager.getOptions()).token, this.optionsManager);
18855
- await this.loadHierarchizedPicker(true);
18856
- this.displayWhenLoaded();
18889
+ if (!oldValue) {
18890
+ oldValue = savedOldValue;
18891
+ }
18892
+ const propDiffs = this.diffKeys(oldValue, this.optionsManager.initializeOptions(newValue));
18893
+ const noReloadProps = ["multiple"];
18894
+ if (propDiffs.length == 1 && propDiffs.some(item => noReloadProps.includes(item))) {
18895
+ const propChanged = propDiffs[0];
18896
+ switch (propChanged) {
18897
+ case "multiple":
18898
+ document.querySelectorAll('#tree-area-' + this.componentID + ' .treejs-checkbox').forEach((item) => (item.style.display = (this.theOptions.multiple ? 'inline-block' : 'none')));
18899
+ break;
18900
+ }
18901
+ }
18902
+ else {
18903
+ this.rawDataManager = new RawDataManager(this.getOptionsAsIConf(this.optionsManager.getOptions()).token, this.optionsManager);
18904
+ await this.loadHierarchizedPicker(true);
18905
+ this.displayWhenLoaded();
18906
+ }
18857
18907
  }
18858
18908
  else {
18859
18909
  this.ready = true;
@@ -18923,6 +18973,52 @@ const HierarchizedPickerComponent = class {
18923
18973
  this.lastSearchMatchCounter = 0; // Counter of number of matches for last search
18924
18974
  this.setValueOnClick = true; // Tells wether we edit the picker value on click in the tree
18925
18975
  this.mylog = console.log; // Custom log function for debug purposes
18976
+ this.scrollToNode = (targetNodeId = null, displayChildren = false) => {
18977
+ var _a;
18978
+ let scrollToValue = 0;
18979
+ let removeClosedAndLookUp = (element, editScroll = false) => {
18980
+ var _a, _b, _c, _d;
18981
+ const nodeId = element === null || element === void 0 ? void 0 : element.nodeId;
18982
+ if (!element || !nodeId) {
18983
+ return;
18984
+ }
18985
+ const node = this.loadedTreeJs.nodesById[nodeId];
18986
+ if ((_b = (_a = node === null || node === void 0 ? void 0 : node.children) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.id) {
18987
+ (_c = element.classList) === null || _c === void 0 ? void 0 : _c.remove('treejs-node__close');
18988
+ }
18989
+ if (editScroll) {
18990
+ scrollToValue += element.offsetTop;
18991
+ }
18992
+ const parent = (_d = element.parentNode) === null || _d === void 0 ? void 0 : _d.closest('.treejs-node');
18993
+ if (parent) {
18994
+ removeClosedAndLookUp(parent, editScroll);
18995
+ }
18996
+ };
18997
+ try {
18998
+ if (targetNodeId) {
18999
+ const targetNode = this.loadedTreeJs.liElementsById[targetNodeId];
19000
+ if (targetNode) {
19001
+ removeClosedAndLookUp(targetNode, true);
19002
+ if (displayChildren && targetNode.classList.contains('treejs-node__close')) {
19003
+ const leftSwitcher = targetNode.querySelector('.treejs-switcher');
19004
+ if (leftSwitcher) {
19005
+ (_a = this.loadedTreeJs) === null || _a === void 0 ? void 0 : _a.onSwitcherClick(leftSwitcher);
19006
+ }
19007
+ }
19008
+ }
19009
+ }
19010
+ else {
19011
+ const checkeds = document.querySelectorAll('#tree-area-' + this.componentID + ' .treejs-node__checked');
19012
+ checkeds.forEach((item) => removeClosedAndLookUp(item, scrollToValue == 0));
19013
+ }
19014
+ }
19015
+ catch (err) {
19016
+ console.error("Error in showSelectedNodes", err);
19017
+ }
19018
+ if (scrollToValue && this.scrollable) {
19019
+ this.scrollable.scrollTop = scrollToValue;
19020
+ }
19021
+ };
18926
19022
  this.getShortenedFullpath = (realFullpath) => {
18927
19023
  var _a, _b, _c, _d;
18928
19024
  let toret = realFullpath;
@@ -19224,8 +19320,8 @@ const HierarchizedPickerComponent = class {
19224
19320
  }
19225
19321
  }
19226
19322
  // TODO > Celine would rather like the context (thesaurus or position) to be extracted another way
19227
- getContextualApiURL(init = false) {
19228
- const { options, url } = this.optionsManager.getOptions();
19323
+ getContextualApiURL(init = false, forcedOptions = null) {
19324
+ const { options, url } = forcedOptions || this.optionsManager.getOptions();
19229
19325
  if (init && options.Reach) {
19230
19326
  const base = window.location.origin;
19231
19327
  const parsedUrl = new URL(url, base);
@@ -19428,11 +19524,31 @@ const HierarchizedPickerComponent = class {
19428
19524
  this.showSelectedNodes();
19429
19525
  this.deactivateNodesOutOfDepthSettings();
19430
19526
  // Hides checkboxes in non multiple context
19431
- if (!this.optionsManager.getOptions().multiple) {
19432
- document.querySelectorAll('#tree-area-' + this.componentID + ' .treejs-checkbox').forEach((item) => (item.style.display = 'none'));
19433
- }
19527
+ document.querySelectorAll('#tree-area-' + this.componentID + ' .treejs-checkbox').forEach((item) => (item.style.display = (this.theOptions.multiple ? 'inline-block' : 'none')));
19434
19528
  }
19435
19529
  onItemContextMenuItemClick(e) {
19530
+ if (e.target && e.target.id) {
19531
+ function getDirectParentAndDepth(nodesById, targetId) {
19532
+ // Find the direct parent
19533
+ const parent = Object.values(nodesById).find(node => { var _a; return (_a = node.children) === null || _a === void 0 ? void 0 : _a.some(child => child.id === targetId); }) || null;
19534
+ if (!nodesById[targetId])
19535
+ return null; // target not found
19536
+ // Depth is 0 for root nodes, 1 for children of root, etc.
19537
+ let depth = 0;
19538
+ let current = targetId;
19539
+ while (true) {
19540
+ const directParent = Object.values(nodesById).find(node => { var _a; return (_a = node.children) === null || _a === void 0 ? void 0 : _a.some(child => child.id === current); });
19541
+ if (!directParent)
19542
+ break;
19543
+ depth++;
19544
+ current = directParent.id;
19545
+ }
19546
+ return { parent, depth };
19547
+ }
19548
+ const result = getDirectParentAndDepth(this.loadedTreeJs.nodesById, e.target.id);
19549
+ e.target.depth = result.depth;
19550
+ e.target.parentId = result.parent.id;
19551
+ }
19436
19552
  this.itemContextMenuItemClick.emit(e);
19437
19553
  }
19438
19554
  setNodeAsSelected(id, treeToUpdate, userClick) {
@@ -19483,44 +19599,25 @@ const HierarchizedPickerComponent = class {
19483
19599
  // console.warn('You are not allowed to scroll to selected nodes in multiple mode');
19484
19600
  // return;
19485
19601
  // }
19486
- const scrollToNode = () => {
19487
- let scrollToValue = 0;
19488
- let removeClosedAndLookUp = (element, editScroll = false) => {
19489
- var _a, _b, _c, _d;
19490
- const nodeId = element === null || element === void 0 ? void 0 : element.nodeId;
19491
- if (!element || !nodeId) {
19492
- return;
19493
- }
19494
- const node = this.loadedTreeJs.nodesById[nodeId];
19495
- if ((_b = (_a = node === null || node === void 0 ? void 0 : node.children) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.id) {
19496
- (_c = element.classList) === null || _c === void 0 ? void 0 : _c.remove('treejs-node__close');
19497
- }
19498
- if (editScroll) {
19499
- scrollToValue += element.offsetTop;
19500
- }
19501
- const parent = (_d = element.parentNode) === null || _d === void 0 ? void 0 : _d.closest('.treejs-node');
19502
- if (parent) {
19503
- removeClosedAndLookUp(parent, editScroll);
19504
- }
19505
- };
19506
- try {
19507
- const checkeds = document.querySelectorAll('#tree-area-' + this.componentID + ' .treejs-node__checked');
19508
- checkeds.forEach((item) => removeClosedAndLookUp(item, scrollToValue == 0));
19509
- }
19510
- catch (err) {
19511
- console.error("Error in showSelectedNodes", err);
19512
- }
19513
- if (scrollToValue && this.scrollable) {
19514
- this.scrollable.scrollTop = scrollToValue;
19515
- }
19516
- };
19517
19602
  if (addDelay) {
19518
19603
  setTimeout(() => {
19519
- scrollToNode();
19604
+ this.scrollToNode();
19520
19605
  }, 200);
19521
19606
  }
19522
19607
  else {
19523
- scrollToNode();
19608
+ this.scrollToNode();
19609
+ }
19610
+ }
19611
+ async scrollToNodeWithId(targetNodeId, displayChildren = false) {
19612
+ const targetNode = this.loadedTreeJs.liElementsById[targetNodeId];
19613
+ if (!targetNode) {
19614
+ const contextualApiParams = this.getContextualApiParams(Object.assign(Object.assign({}, this.theOptions.options), { Reach: [targetNodeId] }), null, true);
19615
+ const contextualApiURL = this.getContextualApiURL(true, Object.assign(Object.assign({}, this.theOptions), { options: contextualApiParams }));
19616
+ this.rawDataManager.getFromClassification(contextualApiURL, contextualApiParams, document.querySelector("#hierarchized-picker-" + this.componentID + " .loader"))
19617
+ .then(data => {
19618
+ completeCurrentTreeWithTree(this.loadedTreeJs, data, this.theOptions);
19619
+ this.scrollToNode(targetNodeId, displayChildren);
19620
+ });
19524
19621
  }
19525
19622
  }
19526
19623
  showTree(focused) {
@@ -19840,7 +19937,7 @@ const HierarchizedPickerComponent = class {
19840
19937
  clickPickerModalArea(this);
19841
19938
  } }, index.h("div", { class: "loader", ref: el => {
19842
19939
  this.loader = el;
19843
- } }, index.h("div", { class: "loader-inner" }, "Loading...")), index.h("div", { class: `hierarchized-picker-modal ${!this.ready ? 'hidden' : ''}` }, index.h("search-input", { placeholder: getLanguageValue(this.optionsManager.getOptions().searchPlaceholder, this.optionsManager.getOptions().language, defaultLanguage), onInputFocus: () => focusInSearchEvent(this), onInputBlur: () => focusOutSearchEvent(this, event), onSearch: (event) => this.search(event.detail) }), index.h("ul", { id: "autocomplete-results-area" }), index.h("div", { id: 'tree-area-' + this.componentID, class: 'hierarchized-picker-tree hierarchized-picker-tree-area ' + this.pickerClass }))))) : (index.h("div", { class: 'hierarchized-picker-raw-tree-area' + (this.isDisabled ? ' readonly' : ''), onClick: event => {
19940
+ } }, index.h("div", { class: "loader-inner" }, "Loading...")), index.h("div", { class: `hierarchized-picker-modal ${!this.ready ? 'hidden' : ''}`, tabindex: "" + this.componentID }, index.h("search-input", { placeholder: getLanguageValue(this.optionsManager.getOptions().searchPlaceholder, this.optionsManager.getOptions().language, defaultLanguage), onInputFocus: () => focusInSearchEvent(this), onInputBlur: () => focusOutSearchEvent(this, event), onSearch: (event) => this.search(event.detail) }), index.h("ul", { id: "autocomplete-results-area" }), index.h("div", { id: 'tree-area-' + this.componentID, class: 'hierarchized-picker-tree hierarchized-picker-tree-area ' + this.pickerClass }))))) : (index.h("div", { class: 'hierarchized-picker-raw-tree-area' + (this.isDisabled ? ' readonly' : ''), tabindex: "" + this.componentID, onClick: event => {
19844
19941
  clickPickerModalArea(this);
19845
19942
  } }, index.h("div", { class: "loader", ref: el => {
19846
19943
  this.loader = el;
@@ -3,6 +3,10 @@ reneco-hierarchized-picker .hierarchized-picker-raw-tree-area {
3
3
  box-sizing: border-box;
4
4
  }
5
5
 
6
+ reneco-hierarchized-picker div:focus {
7
+ outline: none;
8
+ }
9
+
6
10
  reneco-hierarchized-picker .loader {
7
11
  color: var(--hpicker-theme-palette-font-color, var(--mui-palette-font-color, black)) !important;
8
12
  position: absolute;