reneco-hierarchized-picker 0.4.3-beta.10 → 0.4.3-beta.12
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.
- package/dist/cjs/reneco-hierarchized-picker_2.cjs.entry.js +80 -59
- package/dist/collection/components/hierarchized-picker/hierarchized-picker.css +3 -1
- package/dist/collection/components/hierarchized-picker/hierarchized-picker.js +2 -3
- package/dist/collection/components/search-input/search-input.js +1 -3
- package/dist/collection/components/treejs/index.js +45 -43
- package/dist/collection/features/keyboard-navigation/keyboard-navigation.js +31 -9
- package/dist/custom-elements/index.js +80 -59
- package/dist/esm/reneco-hierarchized-picker_2.entry.js +80 -59
- package/dist/esm-es5/reneco-hierarchized-picker_2.entry.js +1 -1
- package/dist/reneco-hierarchized-picker/p-3b623a33.entry.js +1 -0
- package/dist/reneco-hierarchized-picker/p-5baf6f9f.system.entry.js +3 -0
- package/dist/reneco-hierarchized-picker/p-73168a50.system.js +1 -1
- package/dist/reneco-hierarchized-picker/reneco-hierarchized-picker.esm.js +1 -1
- package/package.json +1 -1
- package/dist/reneco-hierarchized-picker/p-4c2ebe4c.entry.js +0 -1
- package/dist/reneco-hierarchized-picker/p-5d560499.system.entry.js +0 -3
|
@@ -323,49 +323,6 @@ Tree.prototype.bindEvent = function (ele) {
|
|
|
323
323
|
else if (target.nodeName === 'SPAN' && target.classList.contains('treejs-switcher')) {
|
|
324
324
|
this.onSwitcherClick(target);
|
|
325
325
|
}
|
|
326
|
-
const hasUndefinedchild = e.target.parentNode.querySelectorAll(".treejs-switcher").length > 0 && e.target.parentNode.querySelectorAll('ul').length == 0;
|
|
327
|
-
//CUSTOM
|
|
328
|
-
const childspans = Array.prototype.slice.call(e.target.parentNode.querySelectorAll('ul > li > span.treejs-label')).filter((ele) => {
|
|
329
|
-
return ele.parentNode.parentNode.parentNode === e.target.parentNode;
|
|
330
|
-
});
|
|
331
|
-
let undefinedChildren = [];
|
|
332
|
-
//This may be a problem the day a node value is "undefined"
|
|
333
|
-
undefinedChildren = childspans.filter(ele => {
|
|
334
|
-
return ele.textContent === 'undefined';
|
|
335
|
-
});
|
|
336
|
-
// If the user clicked on an unloaded node
|
|
337
|
-
if (target.nodeName === 'SPAN' && target.classList.contains('treejs-switcher') && (undefinedChildren.length > 0 || hasUndefinedchild)) {
|
|
338
|
-
// Clear the subnode HTML
|
|
339
|
-
if (undefinedChildren.length > 0) {
|
|
340
|
-
e.target.parentNode.querySelector('ul').innerHTML = '';
|
|
341
|
-
}
|
|
342
|
-
// If source is webservice (it shouldn't be something else)
|
|
343
|
-
if (this.options.parentApi.theOptions.source == 'webservice') {
|
|
344
|
-
if (this.options.parentApi.theOptions.origin == 'classification') {
|
|
345
|
-
const contextualApiParams = this.options.parentApi.getContextualApiParams(Object.assign(Object.assign({}, this.options.parentApi.theOptions.options), { startNode: target.parentNode.nodeId }));
|
|
346
|
-
const contextualApiURL = this.options.parentApi.getContextualApiURL();
|
|
347
|
-
// WS Call
|
|
348
|
-
this.options.rawDataManager
|
|
349
|
-
.getFromClassification(contextualApiURL, contextualApiParams, document.querySelector("#hierarchized-picker-" + this.options.parentApi.componentID + " .loader"))
|
|
350
|
-
.then(data => {
|
|
351
|
-
this.options.completeCurrentTreeWithTree(this, data, this.options.parentApi.theOptions);
|
|
352
|
-
});
|
|
353
|
-
}
|
|
354
|
-
else {
|
|
355
|
-
// WS Call
|
|
356
|
-
this.options.rawDataManager
|
|
357
|
-
.getFromSource(this.options.parentApi.theOptions.url, {
|
|
358
|
-
StartNodeID: target.parentNode.nodeId,
|
|
359
|
-
lng: this.options.parentApi.theOptions.options.lng,
|
|
360
|
-
IsDeprecated: this.options.parentApi.theOptions.options.IsDeprecated,
|
|
361
|
-
}, document.querySelector("#hierarchized-picker-" + this.options.parentApi.componentID + " .loader"))
|
|
362
|
-
.then(data => {
|
|
363
|
-
this.options.completeCurrentTreeWithTree(this, data, this.options.parentApi.theOptions);
|
|
364
|
-
});
|
|
365
|
-
}
|
|
366
|
-
}
|
|
367
|
-
this.onSwitcherClick(target);
|
|
368
|
-
}
|
|
369
326
|
}, false);
|
|
370
327
|
};
|
|
371
328
|
Tree.prototype.onItemClick = async function (id, rightclick = false) {
|
|
@@ -502,6 +459,48 @@ Tree.prototype.markWillUpdateNode = function (node) {
|
|
|
502
459
|
this.willUpdateNodesById[node.id] = node;
|
|
503
460
|
};
|
|
504
461
|
Tree.prototype.onSwitcherClick = function (target) {
|
|
462
|
+
const hasUndefinedchild = target.parentNode.querySelectorAll(".treejs-switcher").length > 0 && target.parentNode.querySelectorAll('ul').length == 0;
|
|
463
|
+
//CUSTOM
|
|
464
|
+
const childspans = Array.prototype.slice.call(target.parentNode.querySelectorAll('ul > li > span.treejs-label')).filter((ele) => {
|
|
465
|
+
return ele.parentNode.parentNode.parentNode === target.parentNode;
|
|
466
|
+
});
|
|
467
|
+
let undefinedChildren = [];
|
|
468
|
+
//This may be a problem the day a node value is "undefined"
|
|
469
|
+
undefinedChildren = childspans.filter(ele => {
|
|
470
|
+
return ele.textContent === 'undefined';
|
|
471
|
+
});
|
|
472
|
+
// If the user clicked on an unloaded node
|
|
473
|
+
if (target.nodeName === 'SPAN' && target.classList.contains('treejs-switcher') && (undefinedChildren.length > 0 || hasUndefinedchild)) {
|
|
474
|
+
// Clear the subnode HTML
|
|
475
|
+
if (undefinedChildren.length > 0) {
|
|
476
|
+
target.parentNode.querySelector('ul').innerHTML = '';
|
|
477
|
+
}
|
|
478
|
+
// If source is webservice (it shouldn't be something else)
|
|
479
|
+
if (this.options.parentApi.theOptions.source == 'webservice') {
|
|
480
|
+
if (this.options.parentApi.theOptions.origin == 'classification') {
|
|
481
|
+
const contextualApiParams = this.options.parentApi.getContextualApiParams(Object.assign(Object.assign({}, this.options.parentApi.theOptions.options), { startNode: target.parentNode.nodeId }));
|
|
482
|
+
const contextualApiURL = this.options.parentApi.getContextualApiURL();
|
|
483
|
+
// WS Call
|
|
484
|
+
this.options.rawDataManager
|
|
485
|
+
.getFromClassification(contextualApiURL, contextualApiParams, document.querySelector("#hierarchized-picker-" + this.options.parentApi.componentID + " .loader"))
|
|
486
|
+
.then(data => {
|
|
487
|
+
this.options.completeCurrentTreeWithTree(this, data, this.options.parentApi.theOptions);
|
|
488
|
+
});
|
|
489
|
+
}
|
|
490
|
+
else {
|
|
491
|
+
// WS Call
|
|
492
|
+
this.options.rawDataManager
|
|
493
|
+
.getFromSource(this.options.parentApi.theOptions.url, {
|
|
494
|
+
StartNodeID: target.parentNode.nodeId,
|
|
495
|
+
lng: this.options.parentApi.theOptions.options.lng,
|
|
496
|
+
IsDeprecated: this.options.parentApi.theOptions.options.IsDeprecated,
|
|
497
|
+
}, document.querySelector("#hierarchized-picker-" + this.options.parentApi.componentID + " .loader"))
|
|
498
|
+
.then(data => {
|
|
499
|
+
this.options.completeCurrentTreeWithTree(this, data, this.options.parentApi.theOptions);
|
|
500
|
+
});
|
|
501
|
+
}
|
|
502
|
+
}
|
|
503
|
+
}
|
|
505
504
|
const liEle = target.parentNode;
|
|
506
505
|
const ele = liEle.lastChild;
|
|
507
506
|
const height = ele.scrollHeight;
|
|
@@ -539,6 +538,9 @@ Tree.prototype.onSwitcherClick = function (target) {
|
|
|
539
538
|
},
|
|
540
539
|
});
|
|
541
540
|
}
|
|
541
|
+
return new Promise((resolve) => {
|
|
542
|
+
resolve(this);
|
|
543
|
+
});
|
|
542
544
|
};
|
|
543
545
|
Tree.prototype.walkUp = function (node, changeState) {
|
|
544
546
|
const { parent } = node;
|
|
@@ -18642,27 +18644,49 @@ function focusOutSearchEvent(component, event) {
|
|
|
18642
18644
|
manageFocusOut(component, event);
|
|
18643
18645
|
}
|
|
18644
18646
|
|
|
18647
|
+
let focusedNodeIndex = 0;
|
|
18645
18648
|
function setupKeyboardNavigation(component, navigateInTree) {
|
|
18646
18649
|
const treeArea = component.el.querySelector('.hierarchized-picker-tree-area');
|
|
18647
18650
|
if (!treeArea)
|
|
18648
18651
|
return;
|
|
18649
|
-
let focusedNodeIndex = 0;
|
|
18650
18652
|
function focusNode(allLiElements, liElementToFocus) {
|
|
18651
18653
|
Object.values(allLiElements).forEach((liNode) => {
|
|
18652
18654
|
liNode.classList.remove('treejs-node__focused');
|
|
18653
18655
|
});
|
|
18654
18656
|
liElementToFocus.classList.add('treejs-node__focused');
|
|
18655
18657
|
}
|
|
18658
|
+
function findAllTreeNodes(treeNodes, liElementsById) {
|
|
18659
|
+
let allNodes = [];
|
|
18660
|
+
const traverse = (nodes) => {
|
|
18661
|
+
nodes.forEach(node => {
|
|
18662
|
+
allNodes.push(node);
|
|
18663
|
+
if (node.children && node.children.length > 0 && !liElementsById[node.id].classList.contains("treejs-node__close")) {
|
|
18664
|
+
traverse(node.children);
|
|
18665
|
+
}
|
|
18666
|
+
});
|
|
18667
|
+
};
|
|
18668
|
+
traverse(treeNodes);
|
|
18669
|
+
return allNodes;
|
|
18670
|
+
}
|
|
18671
|
+
focusedNodeIndex = 0;
|
|
18672
|
+
if (component && component.loadedTreeJs && component.loadedTreeJs.liElementsById && component.loadedTreeJs.treeNodes) {
|
|
18673
|
+
focusNode(component.loadedTreeJs.liElementsById, component.loadedTreeJs.liElementsById[component.loadedTreeJs.treeNodes[focusedNodeIndex].id]);
|
|
18674
|
+
}
|
|
18675
|
+
if (component.el._hasKeydownListener) {
|
|
18676
|
+
return;
|
|
18677
|
+
}
|
|
18678
|
+
component.el._hasKeydownListener = true;
|
|
18656
18679
|
component.el.addEventListener('keydown', (event) => {
|
|
18657
18680
|
var _a, _b;
|
|
18658
18681
|
event.stopPropagation();
|
|
18659
18682
|
const tree = component.loadedTreeJs;
|
|
18660
|
-
|
|
18683
|
+
let treeNodesFromTree = findAllTreeNodes(tree.treeNodes, tree.liElementsById);
|
|
18661
18684
|
if (!tree || !treeNodesFromTree.length)
|
|
18662
18685
|
return;
|
|
18663
|
-
|
|
18664
|
-
|
|
18665
|
-
|
|
18686
|
+
let spaceNode = treeNodesFromTree[focusedNodeIndex];
|
|
18687
|
+
let activeNode = treeNodesFromTree[focusedNodeIndex];
|
|
18688
|
+
let liElement = tree.liElementsById[activeNode.id];
|
|
18689
|
+
const handledEvents = ['tab', '0', 'arrowup', 'arrowdown', 'arrowleft', 'arrowright'];
|
|
18666
18690
|
switch (event.key) {
|
|
18667
18691
|
case 'Tab':
|
|
18668
18692
|
case '0':
|
|
@@ -18678,6 +18702,7 @@ function setupKeyboardNavigation(component, navigateInTree) {
|
|
|
18678
18702
|
focusedNodeIndex = Math.max(focusedNodeIndex - 1, 0);
|
|
18679
18703
|
const newActiveNodeUp = treeNodesFromTree[focusedNodeIndex];
|
|
18680
18704
|
const newLiElementUp = tree.liElementsById[newActiveNodeUp.id];
|
|
18705
|
+
newLiElementUp.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
|
|
18681
18706
|
focusNode(tree.liElementsById, newLiElementUp);
|
|
18682
18707
|
break;
|
|
18683
18708
|
case 'ArrowDown':
|
|
@@ -18686,13 +18711,13 @@ function setupKeyboardNavigation(component, navigateInTree) {
|
|
|
18686
18711
|
const newActiveNodeDown = treeNodesFromTree[focusedNodeIndex];
|
|
18687
18712
|
const newLiElementDown = tree.liElementsById[newActiveNodeDown.id];
|
|
18688
18713
|
focusNode(tree.liElementsById, newLiElementDown);
|
|
18714
|
+
newLiElementDown.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
|
|
18689
18715
|
break;
|
|
18690
18716
|
case 'ArrowLeft':
|
|
18691
18717
|
event.preventDefault();
|
|
18692
18718
|
const leftSwitcher = liElement.querySelector('.treejs-switcher');
|
|
18693
18719
|
if (leftSwitcher) {
|
|
18694
18720
|
(_a = component.loadedTreeJs) === null || _a === void 0 ? void 0 : _a.onSwitcherClick(leftSwitcher);
|
|
18695
|
-
component.showTree('hide');
|
|
18696
18721
|
}
|
|
18697
18722
|
break;
|
|
18698
18723
|
case 'ArrowRight':
|
|
@@ -18703,13 +18728,12 @@ function setupKeyboardNavigation(component, navigateInTree) {
|
|
|
18703
18728
|
}
|
|
18704
18729
|
break;
|
|
18705
18730
|
}
|
|
18706
|
-
|
|
18731
|
+
if (handledEvents.includes(event.key.toLowerCase()))
|
|
18732
|
+
navigateInTree.emit(event);
|
|
18707
18733
|
});
|
|
18708
|
-
if (component && component.loadedTreeJs && component.loadedTreeJs.liElementsById && component.loadedTreeJs.treeNodes)
|
|
18709
|
-
setTimeout(() => focusNode(component.loadedTreeJs.liElementsById, component.loadedTreeJs.liElementsById[component.loadedTreeJs.treeNodes[focusedNodeIndex].id]), 100);
|
|
18710
18734
|
}
|
|
18711
18735
|
|
|
18712
|
-
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{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:#FFF;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)}reneco-hierarchized-picker input:focus-visible{outline:none !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}";
|
|
18736
|
+
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{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:#FFF;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)}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}";
|
|
18713
18737
|
|
|
18714
18738
|
const HierarchizedPickerComponent = class {
|
|
18715
18739
|
/**
|
|
@@ -18978,7 +19002,6 @@ const HierarchizedPickerComponent = class {
|
|
|
18978
19002
|
}
|
|
18979
19003
|
componentDidLoad() {
|
|
18980
19004
|
this.mylog('----- componentDidLoad beginning -----');
|
|
18981
|
-
setupKeyboardNavigation(this, this.navigateInTree);
|
|
18982
19005
|
focusMainInput();
|
|
18983
19006
|
}
|
|
18984
19007
|
displayWhenLoaded() {
|
|
@@ -19523,8 +19546,6 @@ const HierarchizedPickerComponent = class {
|
|
|
19523
19546
|
const previousShownTree = this.shownTree;
|
|
19524
19547
|
this.shownTree = this.hasFocus.length > 0;
|
|
19525
19548
|
if (this.shownTree && !previousShownTree) {
|
|
19526
|
-
console.log("component value", document.querySelector('#hierarchized-picker-input-' + this.componentID));
|
|
19527
|
-
console.log("shouldOpenModalAbove", this.shouldOpenModalAbove(document.querySelector('#hierarchized-picker-input-' + this.componentID), this.modaleHeight));
|
|
19528
19549
|
if (this.shouldOpenModalAbove(document.querySelector('#hierarchized-picker-input-' + this.componentID), this.modaleHeight)) {
|
|
19529
19550
|
this.modalePosition = 'top';
|
|
19530
19551
|
}
|
|
@@ -19532,6 +19553,8 @@ const HierarchizedPickerComponent = class {
|
|
|
19532
19553
|
this.modalePosition = 'bottom';
|
|
19533
19554
|
}
|
|
19534
19555
|
focusSearchInput(this);
|
|
19556
|
+
//TODO, this this at the good location ?
|
|
19557
|
+
setupKeyboardNavigation(this, this.navigateInTree);
|
|
19535
19558
|
}
|
|
19536
19559
|
}
|
|
19537
19560
|
// Changes the value of the component with passed node
|
|
@@ -19849,9 +19872,7 @@ const SearchInput = class {
|
|
|
19849
19872
|
render() {
|
|
19850
19873
|
return (index.h("div", { id: "hierarchized-picker-input-search",
|
|
19851
19874
|
// TODO: need component ID ?
|
|
19852
|
-
class: "search-input-container", ref: (el) => (this.rootElement = el) }, index.h("div", { class: "reneco reneco-search" }), index.h("input", { ref: (el) => (this.inputElement = el), type: "text", class: "native-input sc-ion-input-md-h sc-ion-input-md-s md search-input hierarchized-picker-search",
|
|
19853
|
-
//class="native-input search-input hierarchized-picker-search sc-ion-input-md-h sc-ion-input-md-s md"
|
|
19854
|
-
placeholder: this.placeholder, onFocus: () => this.handleFocus(), onBlur: (event) => this.handleBlur(event), onInput: (event) => this.handleInput(event) })));
|
|
19875
|
+
class: "search-input-container", ref: (el) => (this.rootElement = el) }, index.h("div", { class: "reneco reneco-search" }), index.h("input", { ref: (el) => (this.inputElement = el), type: "text", class: "native-input sc-ion-input-md-h sc-ion-input-md-s md search-input hierarchized-picker-search", placeholder: this.placeholder, onFocus: () => this.handleFocus(), onBlur: (event) => this.handleBlur(event), onInput: (event) => this.handleInput(event) })));
|
|
19855
19876
|
}
|
|
19856
19877
|
};
|
|
19857
19878
|
SearchInput.style = searchInputCss;
|
|
@@ -477,7 +477,9 @@ reneco-hierarchized-picker input {
|
|
|
477
477
|
}
|
|
478
478
|
|
|
479
479
|
reneco-hierarchized-picker input:focus-visible {
|
|
480
|
-
outline:
|
|
480
|
+
outline: unset !important;
|
|
481
|
+
outline-color: unset !important;
|
|
482
|
+
outline-style: unset !important;
|
|
481
483
|
}
|
|
482
484
|
|
|
483
485
|
/* TODO For now, the readonly status is ignored for the mode tree, probably need a rework sometime */
|
|
@@ -272,7 +272,6 @@ export class HierarchizedPickerComponent {
|
|
|
272
272
|
}
|
|
273
273
|
componentDidLoad() {
|
|
274
274
|
this.mylog('----- componentDidLoad beginning -----');
|
|
275
|
-
setupKeyboardNavigation(this, this.navigateInTree);
|
|
276
275
|
focusMainInput(this);
|
|
277
276
|
}
|
|
278
277
|
displayWhenLoaded() {
|
|
@@ -820,8 +819,6 @@ export class HierarchizedPickerComponent {
|
|
|
820
819
|
const previousShownTree = this.shownTree;
|
|
821
820
|
this.shownTree = this.hasFocus.length > 0;
|
|
822
821
|
if (this.shownTree && !previousShownTree) {
|
|
823
|
-
console.log("component value", document.querySelector('#hierarchized-picker-input-' + this.componentID));
|
|
824
|
-
console.log("shouldOpenModalAbove", this.shouldOpenModalAbove(document.querySelector('#hierarchized-picker-input-' + this.componentID), this.modaleHeight));
|
|
825
822
|
if (this.shouldOpenModalAbove(document.querySelector('#hierarchized-picker-input-' + this.componentID), this.modaleHeight)) {
|
|
826
823
|
this.modalePosition = 'top';
|
|
827
824
|
}
|
|
@@ -829,6 +826,8 @@ export class HierarchizedPickerComponent {
|
|
|
829
826
|
this.modalePosition = 'bottom';
|
|
830
827
|
}
|
|
831
828
|
focusSearchInput(this);
|
|
829
|
+
//TODO, this this at the good location ?
|
|
830
|
+
setupKeyboardNavigation(this, this.navigateInTree);
|
|
832
831
|
}
|
|
833
832
|
}
|
|
834
833
|
// Changes the value of the component with passed node
|
|
@@ -31,9 +31,7 @@ export class SearchInput {
|
|
|
31
31
|
render() {
|
|
32
32
|
return (h("div", { id: "hierarchized-picker-input-search",
|
|
33
33
|
// TODO: need component ID ?
|
|
34
|
-
class: "search-input-container", ref: (el) => (this.rootElement = el) }, h("div", { class: "reneco reneco-search" }), h("input", { ref: (el) => (this.inputElement = el), type: "text", class: "native-input sc-ion-input-md-h sc-ion-input-md-s md search-input hierarchized-picker-search",
|
|
35
|
-
//class="native-input search-input hierarchized-picker-search sc-ion-input-md-h sc-ion-input-md-s md"
|
|
36
|
-
placeholder: this.placeholder, onFocus: () => this.handleFocus(), onBlur: (event) => this.handleBlur(event), onInput: (event) => this.handleInput(event) })));
|
|
34
|
+
class: "search-input-container", ref: (el) => (this.rootElement = el) }, h("div", { class: "reneco reneco-search" }), h("input", { ref: (el) => (this.inputElement = el), type: "text", class: "native-input sc-ion-input-md-h sc-ion-input-md-s md search-input hierarchized-picker-search", placeholder: this.placeholder, onFocus: () => this.handleFocus(), onBlur: (event) => this.handleBlur(event), onInput: (event) => this.handleInput(event) })));
|
|
37
35
|
}
|
|
38
36
|
static get is() { return "search-input"; }
|
|
39
37
|
static get originalStyleUrls() {
|
|
@@ -188,49 +188,6 @@ Tree.prototype.bindEvent = function (ele) {
|
|
|
188
188
|
else if (target.nodeName === 'SPAN' && target.classList.contains('treejs-switcher')) {
|
|
189
189
|
this.onSwitcherClick(target);
|
|
190
190
|
}
|
|
191
|
-
const hasUndefinedchild = e.target.parentNode.querySelectorAll(".treejs-switcher").length > 0 && e.target.parentNode.querySelectorAll('ul').length == 0;
|
|
192
|
-
//CUSTOM
|
|
193
|
-
const childspans = Array.prototype.slice.call(e.target.parentNode.querySelectorAll('ul > li > span.treejs-label')).filter((ele) => {
|
|
194
|
-
return ele.parentNode.parentNode.parentNode === e.target.parentNode;
|
|
195
|
-
});
|
|
196
|
-
let undefinedChildren = [];
|
|
197
|
-
//This may be a problem the day a node value is "undefined"
|
|
198
|
-
undefinedChildren = childspans.filter(ele => {
|
|
199
|
-
return ele.textContent === 'undefined';
|
|
200
|
-
});
|
|
201
|
-
// If the user clicked on an unloaded node
|
|
202
|
-
if (target.nodeName === 'SPAN' && target.classList.contains('treejs-switcher') && (undefinedChildren.length > 0 || hasUndefinedchild)) {
|
|
203
|
-
// Clear the subnode HTML
|
|
204
|
-
if (undefinedChildren.length > 0) {
|
|
205
|
-
e.target.parentNode.querySelector('ul').innerHTML = '';
|
|
206
|
-
}
|
|
207
|
-
// If source is webservice (it shouldn't be something else)
|
|
208
|
-
if (this.options.parentApi.theOptions.source == 'webservice') {
|
|
209
|
-
if (this.options.parentApi.theOptions.origin == 'classification') {
|
|
210
|
-
const contextualApiParams = this.options.parentApi.getContextualApiParams(Object.assign(Object.assign({}, this.options.parentApi.theOptions.options), { startNode: target.parentNode.nodeId }));
|
|
211
|
-
const contextualApiURL = this.options.parentApi.getContextualApiURL();
|
|
212
|
-
// WS Call
|
|
213
|
-
this.options.rawDataManager
|
|
214
|
-
.getFromClassification(contextualApiURL, contextualApiParams, document.querySelector("#hierarchized-picker-" + this.options.parentApi.componentID + " .loader"))
|
|
215
|
-
.then(data => {
|
|
216
|
-
this.options.completeCurrentTreeWithTree(this, data, this.options.parentApi.theOptions);
|
|
217
|
-
});
|
|
218
|
-
}
|
|
219
|
-
else {
|
|
220
|
-
// WS Call
|
|
221
|
-
this.options.rawDataManager
|
|
222
|
-
.getFromSource(this.options.parentApi.theOptions.url, {
|
|
223
|
-
StartNodeID: target.parentNode.nodeId,
|
|
224
|
-
lng: this.options.parentApi.theOptions.options.lng,
|
|
225
|
-
IsDeprecated: this.options.parentApi.theOptions.options.IsDeprecated,
|
|
226
|
-
}, document.querySelector("#hierarchized-picker-" + this.options.parentApi.componentID + " .loader"))
|
|
227
|
-
.then(data => {
|
|
228
|
-
this.options.completeCurrentTreeWithTree(this, data, this.options.parentApi.theOptions);
|
|
229
|
-
});
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
this.onSwitcherClick(target);
|
|
233
|
-
}
|
|
234
191
|
}, false);
|
|
235
192
|
};
|
|
236
193
|
Tree.prototype.onItemClick = async function (id, rightclick = false) {
|
|
@@ -367,6 +324,48 @@ Tree.prototype.markWillUpdateNode = function (node) {
|
|
|
367
324
|
this.willUpdateNodesById[node.id] = node;
|
|
368
325
|
};
|
|
369
326
|
Tree.prototype.onSwitcherClick = function (target) {
|
|
327
|
+
const hasUndefinedchild = target.parentNode.querySelectorAll(".treejs-switcher").length > 0 && target.parentNode.querySelectorAll('ul').length == 0;
|
|
328
|
+
//CUSTOM
|
|
329
|
+
const childspans = Array.prototype.slice.call(target.parentNode.querySelectorAll('ul > li > span.treejs-label')).filter((ele) => {
|
|
330
|
+
return ele.parentNode.parentNode.parentNode === target.parentNode;
|
|
331
|
+
});
|
|
332
|
+
let undefinedChildren = [];
|
|
333
|
+
//This may be a problem the day a node value is "undefined"
|
|
334
|
+
undefinedChildren = childspans.filter(ele => {
|
|
335
|
+
return ele.textContent === 'undefined';
|
|
336
|
+
});
|
|
337
|
+
// If the user clicked on an unloaded node
|
|
338
|
+
if (target.nodeName === 'SPAN' && target.classList.contains('treejs-switcher') && (undefinedChildren.length > 0 || hasUndefinedchild)) {
|
|
339
|
+
// Clear the subnode HTML
|
|
340
|
+
if (undefinedChildren.length > 0) {
|
|
341
|
+
target.parentNode.querySelector('ul').innerHTML = '';
|
|
342
|
+
}
|
|
343
|
+
// If source is webservice (it shouldn't be something else)
|
|
344
|
+
if (this.options.parentApi.theOptions.source == 'webservice') {
|
|
345
|
+
if (this.options.parentApi.theOptions.origin == 'classification') {
|
|
346
|
+
const contextualApiParams = this.options.parentApi.getContextualApiParams(Object.assign(Object.assign({}, this.options.parentApi.theOptions.options), { startNode: target.parentNode.nodeId }));
|
|
347
|
+
const contextualApiURL = this.options.parentApi.getContextualApiURL();
|
|
348
|
+
// WS Call
|
|
349
|
+
this.options.rawDataManager
|
|
350
|
+
.getFromClassification(contextualApiURL, contextualApiParams, document.querySelector("#hierarchized-picker-" + this.options.parentApi.componentID + " .loader"))
|
|
351
|
+
.then(data => {
|
|
352
|
+
this.options.completeCurrentTreeWithTree(this, data, this.options.parentApi.theOptions);
|
|
353
|
+
});
|
|
354
|
+
}
|
|
355
|
+
else {
|
|
356
|
+
// WS Call
|
|
357
|
+
this.options.rawDataManager
|
|
358
|
+
.getFromSource(this.options.parentApi.theOptions.url, {
|
|
359
|
+
StartNodeID: target.parentNode.nodeId,
|
|
360
|
+
lng: this.options.parentApi.theOptions.options.lng,
|
|
361
|
+
IsDeprecated: this.options.parentApi.theOptions.options.IsDeprecated,
|
|
362
|
+
}, document.querySelector("#hierarchized-picker-" + this.options.parentApi.componentID + " .loader"))
|
|
363
|
+
.then(data => {
|
|
364
|
+
this.options.completeCurrentTreeWithTree(this, data, this.options.parentApi.theOptions);
|
|
365
|
+
});
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
}
|
|
370
369
|
const liEle = target.parentNode;
|
|
371
370
|
const ele = liEle.lastChild;
|
|
372
371
|
const height = ele.scrollHeight;
|
|
@@ -404,6 +403,9 @@ Tree.prototype.onSwitcherClick = function (target) {
|
|
|
404
403
|
},
|
|
405
404
|
});
|
|
406
405
|
}
|
|
406
|
+
return new Promise((resolve) => {
|
|
407
|
+
resolve(this);
|
|
408
|
+
});
|
|
407
409
|
};
|
|
408
410
|
Tree.prototype.walkUp = function (node, changeState) {
|
|
409
411
|
const { parent } = node;
|
|
@@ -1,25 +1,47 @@
|
|
|
1
1
|
import { focusMainInput } from "../events/focus-handlers";
|
|
2
|
+
let focusedNodeIndex = 0;
|
|
2
3
|
export function setupKeyboardNavigation(component, navigateInTree) {
|
|
3
4
|
const treeArea = component.el.querySelector('.hierarchized-picker-tree-area');
|
|
4
5
|
if (!treeArea)
|
|
5
6
|
return;
|
|
6
|
-
let focusedNodeIndex = 0;
|
|
7
7
|
function focusNode(allLiElements, liElementToFocus) {
|
|
8
8
|
Object.values(allLiElements).forEach((liNode) => {
|
|
9
9
|
liNode.classList.remove('treejs-node__focused');
|
|
10
10
|
});
|
|
11
11
|
liElementToFocus.classList.add('treejs-node__focused');
|
|
12
12
|
}
|
|
13
|
+
function findAllTreeNodes(treeNodes, liElementsById) {
|
|
14
|
+
let allNodes = [];
|
|
15
|
+
const traverse = (nodes) => {
|
|
16
|
+
nodes.forEach(node => {
|
|
17
|
+
allNodes.push(node);
|
|
18
|
+
if (node.children && node.children.length > 0 && !liElementsById[node.id].classList.contains("treejs-node__close")) {
|
|
19
|
+
traverse(node.children);
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
traverse(treeNodes);
|
|
24
|
+
return allNodes;
|
|
25
|
+
}
|
|
26
|
+
focusedNodeIndex = 0;
|
|
27
|
+
if (component && component.loadedTreeJs && component.loadedTreeJs.liElementsById && component.loadedTreeJs.treeNodes) {
|
|
28
|
+
focusNode(component.loadedTreeJs.liElementsById, component.loadedTreeJs.liElementsById[component.loadedTreeJs.treeNodes[focusedNodeIndex].id]);
|
|
29
|
+
}
|
|
30
|
+
if (component.el._hasKeydownListener) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
component.el._hasKeydownListener = true;
|
|
13
34
|
component.el.addEventListener('keydown', (event) => {
|
|
14
35
|
var _a, _b;
|
|
15
36
|
event.stopPropagation();
|
|
16
37
|
const tree = component.loadedTreeJs;
|
|
17
|
-
|
|
38
|
+
let treeNodesFromTree = findAllTreeNodes(tree.treeNodes, tree.liElementsById);
|
|
18
39
|
if (!tree || !treeNodesFromTree.length)
|
|
19
40
|
return;
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
41
|
+
let spaceNode = treeNodesFromTree[focusedNodeIndex];
|
|
42
|
+
let activeNode = treeNodesFromTree[focusedNodeIndex];
|
|
43
|
+
let liElement = tree.liElementsById[activeNode.id];
|
|
44
|
+
const handledEvents = ['tab', '0', 'arrowup', 'arrowdown', 'arrowleft', 'arrowright'];
|
|
23
45
|
switch (event.key) {
|
|
24
46
|
case 'Tab':
|
|
25
47
|
case '0':
|
|
@@ -35,6 +57,7 @@ export function setupKeyboardNavigation(component, navigateInTree) {
|
|
|
35
57
|
focusedNodeIndex = Math.max(focusedNodeIndex - 1, 0);
|
|
36
58
|
const newActiveNodeUp = treeNodesFromTree[focusedNodeIndex];
|
|
37
59
|
const newLiElementUp = tree.liElementsById[newActiveNodeUp.id];
|
|
60
|
+
newLiElementUp.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
|
|
38
61
|
focusNode(tree.liElementsById, newLiElementUp);
|
|
39
62
|
break;
|
|
40
63
|
case 'ArrowDown':
|
|
@@ -43,13 +66,13 @@ export function setupKeyboardNavigation(component, navigateInTree) {
|
|
|
43
66
|
const newActiveNodeDown = treeNodesFromTree[focusedNodeIndex];
|
|
44
67
|
const newLiElementDown = tree.liElementsById[newActiveNodeDown.id];
|
|
45
68
|
focusNode(tree.liElementsById, newLiElementDown);
|
|
69
|
+
newLiElementDown.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
|
|
46
70
|
break;
|
|
47
71
|
case 'ArrowLeft':
|
|
48
72
|
event.preventDefault();
|
|
49
73
|
const leftSwitcher = liElement.querySelector('.treejs-switcher');
|
|
50
74
|
if (leftSwitcher) {
|
|
51
75
|
(_a = component.loadedTreeJs) === null || _a === void 0 ? void 0 : _a.onSwitcherClick(leftSwitcher);
|
|
52
|
-
component.showTree('hide');
|
|
53
76
|
}
|
|
54
77
|
break;
|
|
55
78
|
case 'ArrowRight':
|
|
@@ -60,8 +83,7 @@ export function setupKeyboardNavigation(component, navigateInTree) {
|
|
|
60
83
|
}
|
|
61
84
|
break;
|
|
62
85
|
}
|
|
63
|
-
|
|
86
|
+
if (handledEvents.includes(event.key.toLowerCase()))
|
|
87
|
+
navigateInTree.emit(event);
|
|
64
88
|
});
|
|
65
|
-
if (component && component.loadedTreeJs && component.loadedTreeJs.liElementsById && component.loadedTreeJs.treeNodes)
|
|
66
|
-
setTimeout(() => focusNode(component.loadedTreeJs.liElementsById, component.loadedTreeJs.liElementsById[component.loadedTreeJs.treeNodes[focusedNodeIndex].id]), 100);
|
|
67
89
|
}
|