@eui/components 15.3.4-snapshot-1684959284015 → 15.3.4
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/docs/components/UxTreeComponent.html +5 -5
- package/docs/components/UxTreeNodeComponent.html +1 -1
- package/docs/dependencies.html +2 -2
- package/docs/js/menu-wc.js +3 -3
- package/docs/js/menu-wc_es5.js +1 -1
- package/docs/js/search/search_index.js +2 -2
- package/docs/miscellaneous/variables.html +14 -14
- package/docs/modules/UxTreeComponentModule.html +0 -9
- package/esm2020/eui-timepicker/eui-timepicker.component.mjs +4 -1
- package/esm2020/legacy/ux-dropdown-tree/ux-dropdown-tree.component.mjs +2 -2
- package/esm2020/legacy/ux-tree/ux-tree.component.mjs +18 -23
- package/eui-timepicker/eui-timepicker.component.d.ts.map +1 -1
- package/fesm2015/eui-components-eui-timepicker.mjs +3 -0
- package/fesm2015/eui-components-eui-timepicker.mjs.map +1 -1
- package/fesm2015/eui-components-legacy-ux-dropdown-tree.mjs +2 -2
- package/fesm2015/eui-components-legacy-ux-dropdown-tree.mjs.map +1 -1
- package/fesm2015/eui-components-legacy-ux-tree.mjs +17 -22
- package/fesm2015/eui-components-legacy-ux-tree.mjs.map +1 -1
- package/fesm2020/eui-components-eui-timepicker.mjs +3 -0
- package/fesm2020/eui-components-eui-timepicker.mjs.map +1 -1
- package/fesm2020/eui-components-legacy-ux-dropdown-tree.mjs +2 -2
- package/fesm2020/eui-components-legacy-ux-dropdown-tree.mjs.map +1 -1
- package/fesm2020/eui-components-legacy-ux-tree.mjs +17 -22
- package/fesm2020/eui-components-legacy-ux-tree.mjs.map +1 -1
- package/legacy/ux-tree/ux-tree.component.d.ts +1 -2
- package/legacy/ux-tree/ux-tree.component.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-components-legacy-ux-tree.mjs","sources":["../../legacy/ux-tree/ux-tree.component.ts","../../legacy/ux-tree/ux-tree.component.html","../../legacy/ux-tree/eui-components-legacy-ux-tree.ts"],"sourcesContent":["import {\n AfterContentInit,\n Component,\n ContentChild,\n ContentChildren,\n EventEmitter,\n Input,\n NgModule,\n OnChanges,\n OnInit,\n Output,\n QueryList,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewChildren,\n ViewEncapsulation,\n ChangeDetectorRef,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Router } from '@angular/router';\nimport { FormsModule } from '@angular/forms';\nimport { UxLink } from '@eui/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { consumeEvent, uniqueId } from '@eui/core';\nimport { coerceBooleanProperty, BooleanInput } from '@angular/cdk/coercion';\nimport { CdkVirtualScrollViewport, ScrollingModule } from '@angular/cdk/scrolling';\n\nimport { UxTemplateDirective } from '@eui/components/legacy/common/ux-directives';\nimport { UxToolbarFilterComponentModule } from '@eui/deprecated/ux-a-toolbar-filter';\nimport { UxButtonComponentModule } from '@eui/components/legacy/ux-button';\nimport { UxBadgeComponentModule } from '@eui/components/legacy/ux-badge';\nimport { EuiIconModule } from '@eui/components/eui-icon';\n\n@Component({\n selector: 'ux-tree-node',\n templateUrl: './ux-tree.component.html',\n})\nexport class UxTreeNodeComponent {\n @Input() expandedIconClass: string;\n @Input() collapsedIconClass: string;\n @Input() templateVariable: TemplateRef<any>;\n @Input() node: UxLink;\n @Input() nodeContentTemplate: TemplateRef<any>;\n @Input() e2eAttr = 'ux-tree-node';\n\n @Output() nodeClick = new EventEmitter<UxLink>();\n @Output() nodeToggle = new EventEmitter<UxLink>();\n @Output() selectionChange = new EventEmitter<UxLink>();\n\n public nodeId: string;\n public childrenSelected = true;\n public amountSelectedChildren = 0;\n\n @Input()\n get isFirst(): boolean {\n return this._isFirst;\n }\n set isFirst(value: BooleanInput) {\n this._isFirst = coerceBooleanProperty(value);\n }\n private _isFirst = false;\n @Input()\n get isLast(): boolean {\n return this._isLast;\n }\n set isLast(value: BooleanInput) {\n this._isLast = coerceBooleanProperty(value);\n }\n private _isLast = false;\n @Input()\n get isRootNode(): boolean {\n return this._isRootNode;\n }\n set isRootNode(value: BooleanInput) {\n this._isRootNode = coerceBooleanProperty(value);\n }\n private _isRootNode = false;\n @Input()\n get isClickTogglingNode(): boolean {\n return this._isClickTogglingNode;\n }\n set isClickTogglingNode(value: BooleanInput) {\n this._isClickTogglingNode = coerceBooleanProperty(value);\n }\n private _isClickTogglingNode = false;\n @Input()\n get isMultiselect(): boolean {\n return this._isMultiselect;\n }\n set isMultiselect(value: BooleanInput) {\n this._isMultiselect = coerceBooleanProperty(value);\n }\n private _isMultiselect = false;\n @Input()\n get isRecursiveSelection(): boolean {\n return this._isRecursiveSelection;\n }\n set isRecursiveSelection(value: BooleanInput) {\n this._isRecursiveSelection = coerceBooleanProperty(value);\n }\n private _isRecursiveSelection = false;\n @Input()\n get isRecursiveParentSelection(): boolean {\n return this._isRecursiveParentSelection;\n }\n set isRecursiveParentSelection(value: BooleanInput) {\n this._isRecursiveParentSelection = coerceBooleanProperty(value);\n }\n private _isRecursiveParentSelection = true;\n @Input()\n get isShowActiveNode(): boolean {\n return this._isShowActiveNode;\n }\n set isShowActiveNode(value: BooleanInput) {\n this._isShowActiveNode = coerceBooleanProperty(value);\n }\n private _isShowActiveNode = false;\n @Input()\n get isHideToggles(): boolean {\n return this._isHideToggles;\n }\n set isHideToggles(value: BooleanInput) {\n this._isHideToggles = coerceBooleanProperty(value);\n }\n private _isHideToggles = false;\n @Input()\n get isClickSelectingNode(): boolean {\n return this._isClickSelectingNode;\n }\n set isClickSelectingNode(value: BooleanInput) {\n this._isClickSelectingNode = coerceBooleanProperty(value);\n }\n private _isClickSelectingNode = false;\n @Input()\n get highlightPath(): boolean {\n return this._highlightPath;\n }\n set highlightPath(value: BooleanInput) {\n this._highlightPath = coerceBooleanProperty(value);\n }\n private _highlightPath = false;\n @Input()\n get autoTranslate(): boolean {\n return this._autoTranslate;\n }\n set autoTranslate(value: BooleanInput) {\n this._autoTranslate = coerceBooleanProperty(value);\n }\n private _autoTranslate = true;\n @Input()\n get hasSelectAll(): boolean {\n return this._hasSelectAll;\n }\n set hasSelectAll(value: BooleanInput) {\n this._hasSelectAll = coerceBooleanProperty(value);\n }\n private _hasSelectAll = false;\n\n constructor(private router: Router) {\n this.nodeId = `ux-tree-node-${uniqueId()}`;\n }\n\n public hasNodeChildren(node: UxLink): boolean {\n return node && node.children && node.children.length > 0;\n }\n\n public onNodeKeydown(event: any, uxLink: UxLink): void {\n if (event.keyCode === 13) {\n this.onNodeClick(event, uxLink);\n }\n }\n\n public onNodeToggle(event: Event, uxLink: UxLink): void {\n this.node.expanded = !this.node.expanded;\n this.nodeToggle.emit(uxLink);\n }\n\n public onNodeClick(event: Event, uxLink: UxLink): void {\n if (!uxLink.disabled) {\n if (!this.node.metadata) {\n if (this.isMultiselect && this.isClickSelectingNode) {\n uxLink.selected = !uxLink.selected;\n event.target['checked'] = uxLink.selected;\n this.onCheckboxChange(uxLink, event);\n }\n if (!this.node.children || this.node.children.length === 0) {\n this.node.expanded = !this.node.expanded;\n\n if (this.node.url) {\n this.router.navigate([this.node.url]);\n }\n if (this.node.urlExternal) {\n window.open(this.node.urlExternal, this.node.urlExternalTarget);\n }\n } else {\n const clickedEl = event.target['nodeName'];\n if (this.isClickTogglingNode) {\n this.onNodeToggle(event, uxLink);\n }\n if (clickedEl === 'SPAN' && (this.node.url || this.node.urlExternal)) {\n if (this.node.url) {\n this.router.navigate([this.node.url]);\n }\n if (this.node.urlExternal) {\n window.open(this.node.urlExternal, this.node.urlExternalTarget);\n }\n }\n }\n } else {\n if (this.node.url) {\n this.router.navigate([this.node.url]);\n }\n if (this.node.urlExternal) {\n window.open(this.node.urlExternal, this.node.urlExternalTarget);\n }\n }\n if (uxLink.command) {\n uxLink.command();\n }\n\n this.nodeClick.emit(uxLink);\n consumeEvent(event);\n }\n }\n\n public onCheckboxChange(uxLink: UxLink, evt: any): void {\n uxLink.selected = !evt.target.checked;\n\n if (this.isRecursiveSelection) {\n if (!uxLink.selected) {\n uxLink.indeterminate = false;\n }\n this.changeSelectionRecursively(uxLink, uxLink.selected);\n if (uxLink.parent) {\n this.changeParentSelection(uxLink.parent);\n }\n }\n\n if (this.highlightPath) {\n this.getParents(uxLink, evt.target.checked);\n }\n\n this.selectionChange.next(uxLink);\n }\n\n public onMetadataNodeToggle(event: Event, uxLink: UxLink): void {\n this.node.expanded = !this.node.expanded;\n consumeEvent(event);\n }\n\n public onSubNodeClick(uxLink: UxLink): void {\n this.nodeClick.emit(uxLink);\n }\n\n public onSubNodeToggle(uxLink: UxLink): void {\n this.nodeToggle.emit(uxLink);\n }\n\n public onSelectionChange(uxLink: UxLink): void {\n this.selectionChange.next(uxLink);\n }\n\n public trackByFn(index: number, item: UxLink): string {\n return item.id;\n }\n\n checkInputLabel(): string {\n if (this.isRecursiveSelection && this.node.hasChildren) {\n if (this.node.selected) {\n return 'Deselect All';\n } else {\n return 'Select All';\n }\n } else if ((this.isRecursiveSelection && !this.node.hasChildren) || !this.isRecursiveSelection) {\n if (this.node.selected) {\n return 'Deselect node';\n } else {\n return 'Select node';\n }\n }\n }\n\n private getParents(uxLink: UxLink, isChecked: boolean): void {\n if (uxLink === this.node) {\n if (isChecked === true) {\n this.node['highlighted'] = isChecked;\n } else {\n const selectedChildren = this.hasChildSelected(this.node);\n if (selectedChildren.length === 0) {\n this.node['highlighted'] = isChecked;\n }\n }\n }\n\n if (uxLink.parent) {\n if (isChecked === true) {\n uxLink.parent['highlighted'] = isChecked;\n this.getParents(uxLink.parent, isChecked);\n } else {\n const selectedChildren = this.hasChildSelected(uxLink.parent);\n if (selectedChildren.length === 0) {\n uxLink.parent['highlighted'] = isChecked;\n this.getParents(uxLink.parent, isChecked);\n }\n }\n }\n }\n\n private hasChildSelected(uxLink: UxLink, selected = []): string[] {\n if (uxLink.selected) {\n selected.push(uxLink.label);\n }\n\n if (uxLink.children && uxLink.children.length > 0) {\n uxLink.children.forEach((child) => {\n this.hasChildSelected(child, selected);\n });\n }\n\n return selected;\n }\n\n private changeSelectionRecursively(uxLink: UxLink, value: boolean): void {\n if (uxLink.hasChildren) {\n uxLink.children.forEach((link: UxLink) => {\n link.selected = value;\n if (value) {\n link.indeterminate = false;\n }\n this.changeSelectionRecursively(link, value);\n });\n }\n }\n\n private changeParentSelection(uxLink: UxLink): void {\n if (this.isRecursiveParentSelection) {\n uxLink.indeterminate = !this.allChildrenSelected(uxLink);\n uxLink.selected = this.hasSelectedChildren(uxLink);\n } else {\n if (!uxLink.selected) {\n uxLink.indeterminate = this.hasSelectedChildren(uxLink);\n uxLink.selected = this.hasSelectedChildren(uxLink);\n }\n\n if (uxLink.indeterminate && !this.hasSelectedChildren(uxLink)) {\n uxLink.indeterminate = false;\n uxLink.selected = false;\n }\n }\n\n if (uxLink.parent) {\n this.changeParentSelection(uxLink.parent);\n }\n }\n\n private allChildrenSelected(uxlink: UxLink): boolean {\n return uxlink.children.filter((c) => (!c.selected || (c.selected && c.indeterminate)) && this.childrenSelected).length === 0;\n }\n\n private hasSelectedChildren(uxlink: UxLink): boolean {\n return uxlink.children.filter((c) => c.selected === true).length > 0;\n }\n}\n\n@Component({\n selector: 'ux-tree',\n template: `\n <ux-a-toolbar-filter\n *ngIf=\"isShowToolbar\"\n [isVisible]=\"isShowToolbar\"\n [isToggleVisible]=\"!isHideToggles\"\n (filter)=\"onFilter($event)\"\n [filterValue]=\"setFilterValue\"\n (expandAll)=\"onExpandAll($event)\"\n (collapseAll)=\"onCollapseAll($event)\"\n filterLabel=\"{{ filterLabel }}\"\n [expandAllLabel]=\"expandAllLabel ? expandAllLabel : null\"\n collapseAllLabel=\"{{ collapseAllLabel }}\"\n [isToggleExpanded]=\"isExpanded\"\n [hasLabels]=\"hasLabels\"\n attr.data-e2e=\"{{ e2eAttr }}-a-toolbar-filter\">\n </ux-a-toolbar-filter>\n\n <span *ngIf=\"hasSelectAll || hasSelectAllFiltered\">\n <input\n type=\"checkbox\"\n class=\"ux-input__checkbox\"\n id=\"selectAll\"\n [checked]=\"isMinimumOneSelected ? 'checked' : null\"\n (change)=\"onSelectAllChange($event)\" />\n <label\n class=\"ux-tree__node-checkbox-label\"\n [class.checkbox-label-indeterminate]=\"isMinimumOneSelected && !isAllSelected\"\n for=\"selectAll\"\n [class.ux-tree__node-checkbox-label--onelevel]=\"checkForChildren()\">\n <ng-container *ngIf=\"!allSelected && !isMinimumOneSelected && !isAllSelected\">\n {{ 'eui.uxtree.SELECT-ALL' | translate }}\n </ng-container>\n <ng-container *ngIf=\"allSelected || isMinimumOneSelected || isAllSelected\">\n {{ 'eui.uxtree.UNSELECT-ALL' | translate }}\n </ng-container>\n </label>\n </span>\n <ng-container *ngIf=\"nodes.length > 500 && !hasSelectAll && !hasSelectAllFiltered; else noVirtualScroll\">\n <cdk-virtual-scroll-viewport\n #virtualScrolling\n itemSize=\"30\"\n class=\"ux-tree__virtual-scrolling__container\"\n minBufferPx=\"2000\"\n maxBufferPx=\"2400\">\n <div *cdkVirtualFor=\"let node of visibleNodes; trackBy: trackByFn\" class=\"ux-tree__virtual-scrolling__item\">\n <ul\n class=\"ux-tree\"\n [class.ux-tree--hidelines]=\"isHideLines\"\n [class.ux-tree--multiselect]=\"isMultiselect\"\n [class.ux-tree--onelevel]=\"checkForChildren()\"\n attr.data-e2e=\"{{ e2eAttr }}\">\n <ux-tree-node\n [node]=\"node\"\n (nodeClick)=\"onNodeClick($event)\"\n (nodeToggle)=\"onNodeToggle($event)\"\n (selectionChange)=\"onSelectionChange($event)\"\n [isRootNode]=\"true\"\n [isMultiselect]=\"isMultiselect\"\n [isRecursiveSelection]=\"isRecursiveSelection\"\n [isClickTogglingNode]=\"isClickTogglingNode\"\n expandedIconClass=\"{{ expandedIconClass }}\"\n collapsedIconClass=\"{{ collapsedIconClass }}\"\n [templateVariable]=\"templateVariable\"\n [nodeContentTemplate]=\"nodeContentTemplate\"\n [isShowActiveNode]=\"isShowActiveNode\"\n [autoTranslate]=\"autoTranslate\"\n [isHideToggles]=\"isHideToggles\"\n [isClickSelectingNode]=\"isClickSelectingNode\"\n [highlightPath]=\"highlightPath\"\n [isRecursiveParentSelection]=\"isRecursiveParentSelection\">\n </ux-tree-node>\n </ul>\n </div>\n </cdk-virtual-scroll-viewport>\n </ng-container>\n\n <ng-template #noVirtualScroll>\n <ul\n class=\"ux-tree\"\n [class.ux-tree--hidelines]=\"isHideLines\"\n [class.ux-tree--multiselect]=\"isMultiselect\"\n [class.ux-tree--onelevel]=\"checkForChildren()\"\n attr.data-e2e=\"{{ e2eAttr }}\">\n <ux-tree-node\n *ngFor=\"let node of nodes; trackBy: trackByFn\"\n [node]=\"node\"\n (nodeClick)=\"onNodeClick($event)\"\n (nodeToggle)=\"onNodeToggle($event)\"\n (selectionChange)=\"onSelectionChange($event)\"\n [isRootNode]=\"true\"\n [isMultiselect]=\"isMultiselect\"\n [isRecursiveSelection]=\"isRecursiveSelection\"\n [isClickTogglingNode]=\"isClickTogglingNode\"\n expandedIconClass=\"{{ expandedIconClass }}\"\n collapsedIconClass=\"{{ collapsedIconClass }}\"\n [templateVariable]=\"templateVariable\"\n [nodeContentTemplate]=\"nodeContentTemplate\"\n [isShowActiveNode]=\"isShowActiveNode\"\n [autoTranslate]=\"autoTranslate\"\n [isHideToggles]=\"isHideToggles\"\n [isClickSelectingNode]=\"isClickSelectingNode\"\n [highlightPath]=\"highlightPath\"\n [isRecursiveParentSelection]=\"isRecursiveParentSelection\">\n </ux-tree-node>\n </ul>\n </ng-template>\n `,\n styleUrls: ['./styles/_index.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class UxTreeComponent implements AfterContentInit, OnInit, OnChanges {\n @Input() nodes: UxLink[];\n @Input() collapseAllLabel: string;\n @Input() expandAllLabel: string;\n @Input() filterLabel: string;\n @Input() collapsedIconClass = 'eui-icon eui-icon-plus-circle';\n @Input() expandedIconClass = 'eui-icon eui-icon-minus-circle';\n @Input() setFilterValue: string;\n @Input() e2eAttr = 'ux-tree';\n\n @Output() nodeClick = new EventEmitter<UxLink>();\n @Output() nodeToggle = new EventEmitter<UxLink>();\n // TODO: for eUI 14 remove the [] type\n @Output() selectionChange = new EventEmitter<UxLink | []>();\n @Output() onFilterValue = new EventEmitter<string>();\n\n @ContentChild(TemplateRef) templateVariable: TemplateRef<any>;\n @ContentChildren(UxTemplateDirective) templates: QueryList<any>;\n @ViewChildren(UxTreeNodeComponent) treeNodes: QueryList<UxTreeNodeComponent>;\n @ViewChild('virtualScrolling') public virtualScrolling: CdkVirtualScrollViewport;\n\n constructor(private cd: ChangeDetectorRef) {}\n\n public allSelected = false;\n public nbNodes = 0;\n public visibleNodes = [];\n public nodeContentTemplate: TemplateRef<any>;\n public filterValue = '';\n\n @Input()\n get isShowToolbar(): boolean {\n return this._isShowToolbar;\n }\n set isShowToolbar(value: BooleanInput) {\n this._isShowToolbar = coerceBooleanProperty(value);\n }\n private _isShowToolbar = false;\n @Input()\n get isExpanded(): boolean {\n return this._isExpanded;\n }\n set isExpanded(value: BooleanInput) {\n this._isExpanded = coerceBooleanProperty(value);\n }\n private _isExpanded = false;\n @Input()\n get isMultiselect(): boolean {\n return this._isMultiselect;\n }\n set isMultiselect(value: BooleanInput) {\n this._isMultiselect = coerceBooleanProperty(value);\n }\n private _isMultiselect = false;\n @Input()\n get isRecursiveSelection(): boolean {\n return this._isRecursiveSelection;\n }\n set isRecursiveSelection(value: BooleanInput) {\n this._isRecursiveSelection = coerceBooleanProperty(value);\n }\n private _isRecursiveSelection = false;\n @Input()\n get isClickTogglingNode(): boolean {\n return this._isClickTogglingNode;\n }\n set isClickTogglingNode(value: BooleanInput) {\n this._isClickTogglingNode = coerceBooleanProperty(value);\n }\n private _isClickTogglingNode = false;\n @Input()\n get isShowActiveNode(): boolean {\n return this._isShowActiveNode;\n }\n set isShowActiveNode(value: BooleanInput) {\n this._isShowActiveNode = coerceBooleanProperty(value);\n }\n private _isShowActiveNode = false;\n @Input()\n get isHideToggles(): boolean {\n return this._isHideToggles;\n }\n set isHideToggles(value: BooleanInput) {\n this._isHideToggles = coerceBooleanProperty(value);\n }\n private _isHideToggles = false;\n @Input()\n get isHideLines(): boolean {\n return this._isHideLines;\n }\n set isHideLines(value: BooleanInput) {\n this._isHideLines = coerceBooleanProperty(value);\n }\n private _isHideLines = false;\n @Input()\n get isClickSelectingNode(): boolean {\n return this._isClickSelectingNode;\n }\n set isClickSelectingNode(value: BooleanInput) {\n this._isClickSelectingNode = coerceBooleanProperty(value);\n }\n private _isClickSelectingNode = false;\n @Input()\n get showFilteredChildren(): boolean {\n return this._showFilteredChildren;\n }\n set showFilteredChildren(value: BooleanInput) {\n this._showFilteredChildren = coerceBooleanProperty(value);\n }\n private _showFilteredChildren = false;\n @Input()\n get expandFilteredChildren(): boolean {\n return this._expandFilteredChildren;\n }\n set expandFilteredChildren(value: BooleanInput) {\n this._expandFilteredChildren = coerceBooleanProperty(value);\n }\n private _expandFilteredChildren = false;\n @Input()\n get highlightPath(): boolean {\n return this._highlightPath;\n }\n set highlightPath(value: BooleanInput) {\n this._highlightPath = coerceBooleanProperty(value);\n }\n private _highlightPath = false;\n @Input()\n get autoTranslate(): boolean {\n return this._autoTranslate;\n }\n set autoTranslate(value: BooleanInput) {\n this._autoTranslate = coerceBooleanProperty(value);\n }\n private _autoTranslate = true;\n @Input()\n get hasLabels(): boolean {\n return this._hasLabels;\n }\n set hasLabels(value: BooleanInput) {\n this._hasLabels = coerceBooleanProperty(value);\n }\n private _hasLabels = true;\n @Input()\n get hasSelectAll(): boolean {\n return this._hasSelectAll;\n }\n set hasSelectAll(value: BooleanInput) {\n this._hasSelectAll = coerceBooleanProperty(value);\n }\n private _hasSelectAll = false;\n @Input()\n get hasSelectAllFiltered(): boolean {\n return this._hasSelectAllFiltered;\n }\n set hasSelectAllFiltered(value: BooleanInput) {\n this._hasSelectAllFiltered = coerceBooleanProperty(value);\n }\n private _hasSelectAllFiltered = false;\n @Input()\n get isRecursiveParentSelection(): boolean {\n return this._isRecursiveParentSelection;\n }\n set isRecursiveParentSelection(value: BooleanInput) {\n this._isRecursiveParentSelection = coerceBooleanProperty(value);\n }\n private _isRecursiveParentSelection = true;\n\n get isMinimumOneSelected(): boolean {\n return this.getSelectedNodes().length > 0 && !this.allSelected;\n }\n\n get isAllSelected(): boolean {\n return this.getSelectedNodes().length === this.nbNodes;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes && changes['nodes']) {\n this.visibleNodes = this.visible(this.nodes);\n }\n }\n\n ngOnInit(): void {\n if (this.hasSelectAll) {\n this.isRecursiveSelection = false;\n }\n\n this.getNbNodes(this.nodes);\n\n }\n\n ngAfterContentInit(): void {\n if (this.isExpanded) {\n this.setNodesExpandedState(this.nodes, true);\n }\n\n this.setParentNode(this.nodes, null);\n\n this.templates.forEach((item) => {\n if (item.getType() === 'nodeContent') {\n this.nodeContentTemplate = item.template;\n }\n });\n }\n\n visible(nodes: UxLink[]): UxLink[] {\n\n if(this.hasSelectAllFiltered) {\n return this.getVisibleNodesRecursive(nodes);\n } else {\n return nodes.filter((n) => n.visible);\n }\n }\n\n getNbNodes(nodes: UxLink[]): void {\n nodes.forEach((node) => {\n this.nbNodes++;\n if (node.hasChildren) {\n node.children.forEach((link: UxLink) => {\n this.getNbNodes([link]);\n });\n }\n });\n }\n\n public onSelectAllChange(e: any): void {\n this.allSelected = e.target.checked;\n if (!e.target.check) {\n this.resetSelection();\n }\n\n if(this.hasSelectAllFiltered) {\n this.setNodesSelectedFilteredState(this.visibleNodes, e.target.checked);\n } else {\n this.setNodesSelectedState(this.nodes, e.target.checked);\n }\n }\n\n public getSelectedNodes(): UxLink[] {\n\n if(this.filterValue !== '' && this.allSelected && this.hasSelectAllFiltered) {\n return this.visibleNodes;\n } else {\n return this.getSelectedNodesRecursive(this.nodes);\n }\n\n }\n\n public onNodeToggle(uxLink: UxLink): void {\n this.nodeToggle.emit(uxLink);\n }\n\n public onNodeClick(uxLink: UxLink): void {\n if (!uxLink.disabled) {\n this.nodeClick.emit(uxLink);\n if (this.isClickTogglingNode && uxLink.hasChildren) {\n this.onNodeToggle(uxLink);\n }\n if (!this.isMultiselect && this.isShowActiveNode) {\n this.setNodesSelectedState(this.nodes, false);\n uxLink.selected = true;\n }\n }\n }\n\n public onExpandAll(event: Event): void {\n this.setNodesExpandedState(this.nodes, true);\n }\n\n public onCollapseAll(event: Event): void {\n this.setNodesExpandedState(this.nodes, false);\n }\n\n public onSelectionChange(uxLink: UxLink): void {\n if (!uxLink.selected) {\n this.allSelected = false;\n }\n this.selectionChange.next(uxLink);\n }\n\n public onFilter(filterValue: string): void {\n\n if (filterValue !== '') {\n this.setNodesVisibleState(this.nodes, false);\n\n if (!this.expandFilteredChildren) {\n this.nodes.forEach((node) => {\n this.isFilterMatched(node, filterValue);\n });\n }\n\n if (this.expandFilteredChildren) {\n this.nodes.forEach((node) => {\n this.isFilterMatchedExpand(node, filterValue);\n });\n this.setNodesVisibleState(this.nodes, true);\n }\n\n if (this.showFilteredChildren) {\n this.nodes.forEach((node) => {\n this.isVisibleChildren(node, filterValue);\n });\n }\n\n if (!this.expandFilteredChildren) {\n this.setNodesExpandedState(this.nodes, true);\n }\n this.visibleNodes = this.visible(this.nodes);\n } else {\n this.setNodesVisibleState(this.nodes, true);\n this.visibleNodes = this.visible(this.nodes);\n this.virtualScrolling?.scrollToIndex(0);\n }\n\n if(this.hasSelectAllFiltered) {\n this.setNodesSelectedFilteredState(this.visibleNodes, this.allSelected);\n this.filterValue = filterValue;\n this.cd.detectChanges();\n }\n\n this.onFilterValue.emit(filterValue);\n }\n\n isFilterMatchedExpand(node: UxLink, filterValue: string): void {\n node['highlighted'] = false;\n if (node.label.toUpperCase().indexOf(filterValue.toUpperCase()) !== -1) {\n node.expanded = true;\n node['highlighted'] = true;\n } else {\n node.expanded = false;\n node['highlighted'] = false;\n }\n\n if (node.children) {\n node.children.forEach((childrenNode) => {\n this.isFilterMatchedExpand(childrenNode, filterValue);\n\n if (childrenNode.expanded) {\n node.expanded = true;\n node['highlighted'] = true;\n }\n });\n }\n }\n\n public trackByFn(index: number, item: UxLink): string {\n return item.id;\n }\n\n public checkForChildren(): boolean {\n return !this.nodes.some((node) => node.hasChildren);\n }\n\n public resetSelection(): void {\n this.resetNode(this.nodes);\n // TODO: investigate if we can emit null instead of []\n this.selectionChange.emit([]);\n }\n\n private resetNode(nodes: UxLink[]): void {\n nodes.forEach((node) => {\n node.selected = false;\n\n if (node.children && node.children.length > 0) {\n this.resetNode(node.children);\n }\n });\n }\n\n private isVisibleChildren(node: UxLink, filterValue: string): void {\n if (node.parent && node.parent.visible === true && node.parent.label.toUpperCase().indexOf(filterValue.toUpperCase()) !== -1) {\n node.visible = true;\n }\n\n if (node.children) {\n node.children.forEach((childrenNode) => {\n this.isVisibleChildren(childrenNode, filterValue);\n });\n }\n }\n\n private getSelectedNodesRecursive(nodes: UxLink[]): UxLink[] {\n return (nodes || []).reduce((acc, node) => {\n if (node.hasChildren) {\n return node.selected && !node.indeterminate\n ? [...acc, node, ...this.getSelectedNodesRecursive(node.children)]\n : [...acc, ...this.getSelectedNodesRecursive(node.children)];\n } else {\n return node.selected ? [...acc, node] : [...acc];\n }\n }, []);\n }\n\n private getVisibleNodesRecursive(nodes: UxLink[]): UxLink[] {\n return (nodes || []).reduce((acc, node) => {\n if (node.hasChildren) {\n return node.visible\n ? [...acc, node, ...this.getVisibleNodesRecursive(node.children)]\n : [...acc, ...this.getVisibleNodesRecursive(node.children)];\n } else {\n return node.visible ? [...acc, node] : [...acc];\n }\n }, []);\n }\n\n private isFilterMatched(node: UxLink, filterValue: string): void {\n if (node.label?.toUpperCase().indexOf(filterValue?.toUpperCase()) !== -1) {\n this.virtualScrolling?.scrollToIndex(0);\n node.visible = true;\n } else {\n node.visible = false;\n }\n\n if (node.children) {\n node.children.forEach((childrenNode) => {\n this.isFilterMatched(childrenNode, filterValue);\n\n if (childrenNode.visible) {\n node.visible = true;\n }\n });\n }\n }\n\n private setNodesExpandedState(nodes: UxLink[], expanded: boolean): void {\n nodes.forEach((node) => {\n node.expanded = expanded;\n if (node.children) {\n this.setNodesExpandedState(node.children, expanded);\n }\n });\n }\n\n private setNodesVisibleState(nodes: UxLink[], visible: boolean): void {\n nodes.forEach((node) => {\n node.visible = visible;\n if (node.children) {\n this.setNodesVisibleState(node.children, visible);\n }\n });\n }\n\n private setNodesSelectedState(nodes: UxLink[], selected: boolean): void {\n nodes.forEach((node) => {\n node.selected = selected;\n if (node.children) {\n this.setNodesSelectedState(node.children, selected);\n }\n if (this.hasSelectAll) {\n this.selectionChange.emit(node);\n }\n });\n\n }\n private setNodesSelectedFilteredState(nodes: UxLink[], selected: boolean): void {\n nodes.forEach((node) => {\n if(node.visible){\n node.selected = selected;\n if (node.children) {\n this.setNodesSelectedFilteredState(node.children, selected);\n }\n if (this.hasSelectAllFiltered) {\n this.selectionChange.emit(node);\n }\n }\n });\n }\n\n private setParentNode(nodes: UxLink[], parentNode: UxLink): void {\n nodes.forEach((node) => {\n if (parentNode) {\n node.parent = parentNode;\n }\n if (node.children) {\n this.setParentNode(node.children, node);\n }\n });\n }\n}\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n UxToolbarFilterComponentModule,\n UxButtonComponentModule,\n UxBadgeComponentModule,\n TranslateModule,\n ScrollingModule,\n EuiIconModule,\n ],\n exports: [UxTreeComponent, UxTreeNodeComponent],\n declarations: [UxTreeComponent, UxTreeNodeComponent],\n})\nexport class UxTreeComponentModule {}\n","<li\n *ngIf=\"node.visible\"\n class=\"ux-tree__node\"\n [class.first-child]=\"isFirst\"\n [class.last-child]=\"isLast\"\n [class.ux-tree__node--expandable]=\"hasNodeChildren(node) && !isHideToggles\"\n [class.ux-tree__node--disabled]=\"node.disabled\"\n title=\"{{ node.tooltipLabel ? node.tooltipLabel : node.label }}\"\n attr.data-e2e=\"{{ e2eAttr }}\">\n <div class=\"ux-tree__node-wrapper\" [class.ux-tree__node--selected]=\"node.selected\">\n <ux-button\n (click)=\"onNodeToggle($event, node)\"\n (keydown)=\"onNodeKeydown($event, node)\"\n styleClass=\"ux-tree__node-toggle-icon\"\n *ngIf=\"hasNodeChildren(node) && !isHideToggles\"\n [isSmall]=\"true\"\n [isFlat]=\"true\"\n [ariaLabel]=\"node.expanded ? 'Collapse' : 'Expand'\"\n [iconClass]=\"node.expanded ? expandedIconClass : collapsedIconClass\"></ux-button>\n\n <span\n *ngIf=\"isMultiselect\"\n [class.ux-tree__parent]=\"hasNodeChildren(node) && !isHideToggles\"\n [class.ux-tree__leaf]=\"!hasNodeChildren(node) && !isHideToggles\">\n <eui-icon-svg\n *ngIf=\"node.selected && !node.indeterminate\"\n euiPrimary\n icon=\"eui-checkbox\"\n fillColor=\"primary\"\n (click)=\"onCheckboxChange(node, { target: { checked: true } })\"\n aria-label=\"Check\">\n </eui-icon-svg>\n <eui-icon-svg\n *ngIf=\"!node.selected\"\n icon=\"eui-checkbox-outline\"\n fillColor=\"grey-25\"\n (click)=\"onCheckboxChange(node, { target: { checked: false } })\"\n aria-label=\"Uncheck\">\n </eui-icon-svg>\n <eui-icon-svg\n *ngIf=\"node.indeterminate && node.selected\"\n euiPrimary\n icon=\"eui-checkbox-intermediate\"\n fillColor=\"primary\"\n (click)=\"onCheckboxChange(node, { target: { checked: true } })\"\n aria-label=\"Uncheck\">\n </eui-icon-svg>\n </span>\n\n <div\n *ngIf=\"nodeContentTemplate\"\n class=\"ux-tree__custom-content\"\n [class.ux-tree__parent]=\"hasNodeChildren(node) && !isHideToggles\"\n [class.ux-tree__leaf]=\"!hasNodeChildren(node) && !isHideToggles\">\n <ng-template [ngTemplateOutlet]=\"nodeContentTemplate\" [ngTemplateOutletContext]=\"{ $implicit: node }\"> </ng-template>\n </div>\n\n <ng-container *ngIf=\"!nodeContentTemplate\">\n <ng-container *ngIf=\"node.typeLabel || node.iconClass\">\n <span\n *ngIf=\"node.typeLabel\"\n class=\"ux-tree__node-type ux-tree__node-type--{{ node.typeClass }}\"\n [class.ux-tree__node-type-parent]=\"hasNodeChildren(node) && !isHideToggles && !isMultiselect\"\n (click)=\"onNodeClick($event, node)\"\n (keydown)=\"onNodeKeydown($event, node)\">\n {{ node.typeLabel }}\n </span>\n\n <span *ngIf=\"node.iconClass\" class=\"ux-tree__node-icon ux-tree__node-type--{{ node.iconTypeClass }}\">\n <span class=\"{{ node.iconClass }}\"></span>\n </span>\n\n <div class=\"ux-tree__node-label-wrapped\">\n <span\n [class.text-muted]=\"node.disabled\"\n [class.ux-tree__node-label--highlighted]=\"node['highlighted']\"\n (click)=\"onNodeClick($event, node)\"\n (keydown)=\"onNodeKeydown($event, node)\">\n <span *ngIf=\"autoTranslate; else manualTranslation\">\n {{ node.label | translate }}\n </span>\n <ng-template #manualTranslation>{{ node.label }}</ng-template>\n <span [class.eui-u-text-link-external]=\"node && node.urlExternal\"></span>\n </span>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"!(node.typeLabel || node.iconClass)\">\n <span\n class=\"ux-tree__node-label\"\n [class.ux-tree__node-label-parent]=\"hasNodeChildren(node) && !isHideToggles && !isMultiselect\"\n [class.ux-tree__node-label--highlighted]=\"node['highlighted']\"\n [class.text-muted]=\"node.disabled\"\n (click)=\"onNodeClick($event, node)\"\n (keydown)=\"onNodeKeydown($event, node)\">\n <span *ngIf=\"autoTranslate; else manualTranslation\">\n {{ node.label | translate }}\n </span>\n <ng-template #manualTranslation>{{ node.label }}</ng-template>\n <span [class.eui-u-text-link-external]=\"node && node.urlExternal\"></span>\n </span>\n </ng-container>\n\n <div *ngIf=\"node.badges\" class=\"eui-u-ml-auto\">\n <ux-badge\n *ngFor=\"let badge of node.badges\"\n styleClass=\"ux-tree__node-badge\"\n isTiny=\"true\"\n isOutline=\"true\"\n isPill=\"true\"\n typeClass=\"{{ badge.typeClass }}\">\n {{ badge.label }}\n </ux-badge>\n </div>\n\n <span\n *ngIf=\"node.metadata && node.metadata.title && node.metadata.title.length > 0\"\n class=\"ux-tree__node-metacontent-toggle ux-tree__node-clickable\"\n (click)=\"onMetadataNodeToggle($event, node)\">\n <eui-icon-svg *ngIf=\"node.expanded\" icon=\"eui-chevron-down\"></eui-icon-svg>\n <eui-icon-svg *ngIf=\"!node.expanded\" icon=\"eui-chevron-forward\"></eui-icon-svg>\n </span>\n </ng-container>\n </div>\n <ng-container *ngIf=\"node.expanded\">\n <ul *ngIf=\"hasNodeChildren(node)\" class=\"ux-tree__nodes\">\n <ux-tree-node\n *ngFor=\"let subNode of node.children; let isFirst = first; let isLast = last; trackBy: trackByFn\"\n [node]=\"subNode\"\n [isMultiselect]=\"isMultiselect\"\n [isRecursiveSelection]=\"isRecursiveSelection\"\n (nodeClick)=\"onSubNodeClick($event)\"\n (nodeToggle)=\"onSubNodeToggle($event)\"\n (selectionChange)=\"onSelectionChange($event)\"\n [isFirst]=\"isFirst\"\n [isLast]=\"isLast\"\n [isClickTogglingNode]=\"isClickTogglingNode\"\n expandedIconClass=\"{{ expandedIconClass }}\"\n collapsedIconClass=\"{{ collapsedIconClass }}\"\n [templateVariable]=\"templateVariable\"\n [nodeContentTemplate]=\"nodeContentTemplate\"\n [isShowActiveNode]=\"isShowActiveNode\"\n [isHideToggles]=\"isHideToggles\"\n [isClickSelectingNode]=\"isClickSelectingNode\"\n [highlightPath]=\"highlightPath\"\n [isRecursiveParentSelection]=\"isRecursiveParentSelection\"\n [autoTranslate]=\"autoTranslate\">\n </ux-tree-node>\n </ul>\n <div *ngIf=\"node.metadata && node.metadata.title && node.metadata.title.length > 0\" class=\"ux-tree__node-metacontent\">\n <ng-template [ngTemplateOutlet]=\"templateVariable\" [ngTemplateOutletContext]=\"{ metadata: node.metadata }\"></ng-template>\n </div>\n </ng-container>\n</li>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"eui-components-legacy-ux-tree.mjs","sources":["../../legacy/ux-tree/ux-tree.component.ts","../../legacy/ux-tree/ux-tree.component.html","../../legacy/ux-tree/eui-components-legacy-ux-tree.ts"],"sourcesContent":["import {\n AfterContentInit,\n Component,\n ContentChild,\n ContentChildren,\n EventEmitter,\n Input,\n NgModule,\n OnChanges,\n OnInit,\n Output,\n QueryList,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewChildren,\n ViewEncapsulation,\n ChangeDetectorRef,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Router } from '@angular/router';\nimport { FormsModule } from '@angular/forms';\nimport { UxLink } from '@eui/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { consumeEvent, uniqueId } from '@eui/core';\nimport { coerceBooleanProperty, BooleanInput } from '@angular/cdk/coercion';\nimport { CdkVirtualScrollViewport, ScrollingModule } from '@angular/cdk/scrolling';\n\nimport { UxTemplateDirective } from '@eui/components/legacy/common/ux-directives';\nimport { UxToolbarFilterComponentModule } from '@eui/deprecated/ux-a-toolbar-filter';\nimport { UxButtonComponentModule } from '@eui/components/legacy/ux-button';\nimport { UxBadgeComponentModule } from '@eui/components/legacy/ux-badge';\n@Component({\n selector: 'ux-tree-node',\n templateUrl: './ux-tree.component.html',\n})\nexport class UxTreeNodeComponent {\n @Input() expandedIconClass: string;\n @Input() collapsedIconClass: string;\n @Input() templateVariable: TemplateRef<any>;\n @Input() node: UxLink;\n @Input() nodeContentTemplate: TemplateRef<any>;\n @Input() e2eAttr = 'ux-tree-node';\n\n @Output() nodeClick = new EventEmitter<UxLink>();\n @Output() nodeToggle = new EventEmitter<UxLink>();\n @Output() selectionChange = new EventEmitter<UxLink>();\n\n public nodeId: string;\n public childrenSelected = true;\n public amountSelectedChildren = 0;\n\n @Input()\n get isFirst(): boolean {\n return this._isFirst;\n }\n set isFirst(value: BooleanInput) {\n this._isFirst = coerceBooleanProperty(value);\n }\n private _isFirst = false;\n @Input()\n get isLast(): boolean {\n return this._isLast;\n }\n set isLast(value: BooleanInput) {\n this._isLast = coerceBooleanProperty(value);\n }\n private _isLast = false;\n @Input()\n get isRootNode(): boolean {\n return this._isRootNode;\n }\n set isRootNode(value: BooleanInput) {\n this._isRootNode = coerceBooleanProperty(value);\n }\n private _isRootNode = false;\n @Input()\n get isClickTogglingNode(): boolean {\n return this._isClickTogglingNode;\n }\n set isClickTogglingNode(value: BooleanInput) {\n this._isClickTogglingNode = coerceBooleanProperty(value);\n }\n private _isClickTogglingNode = false;\n @Input()\n get isMultiselect(): boolean {\n return this._isMultiselect;\n }\n set isMultiselect(value: BooleanInput) {\n this._isMultiselect = coerceBooleanProperty(value);\n }\n private _isMultiselect = false;\n @Input()\n get isRecursiveSelection(): boolean {\n return this._isRecursiveSelection;\n }\n set isRecursiveSelection(value: BooleanInput) {\n this._isRecursiveSelection = coerceBooleanProperty(value);\n }\n private _isRecursiveSelection = false;\n @Input()\n get isRecursiveParentSelection(): boolean {\n return this._isRecursiveParentSelection;\n }\n set isRecursiveParentSelection(value: BooleanInput) {\n this._isRecursiveParentSelection = coerceBooleanProperty(value);\n }\n private _isRecursiveParentSelection = true;\n @Input()\n get isShowActiveNode(): boolean {\n return this._isShowActiveNode;\n }\n set isShowActiveNode(value: BooleanInput) {\n this._isShowActiveNode = coerceBooleanProperty(value);\n }\n private _isShowActiveNode = false;\n @Input()\n get isHideToggles(): boolean {\n return this._isHideToggles;\n }\n set isHideToggles(value: BooleanInput) {\n this._isHideToggles = coerceBooleanProperty(value);\n }\n private _isHideToggles = false;\n @Input()\n get isClickSelectingNode(): boolean {\n return this._isClickSelectingNode;\n }\n set isClickSelectingNode(value: BooleanInput) {\n this._isClickSelectingNode = coerceBooleanProperty(value);\n }\n private _isClickSelectingNode = false;\n @Input()\n get highlightPath(): boolean {\n return this._highlightPath;\n }\n set highlightPath(value: BooleanInput) {\n this._highlightPath = coerceBooleanProperty(value);\n }\n private _highlightPath = false;\n @Input()\n get autoTranslate(): boolean {\n return this._autoTranslate;\n }\n set autoTranslate(value: BooleanInput) {\n this._autoTranslate = coerceBooleanProperty(value);\n }\n private _autoTranslate = true;\n @Input()\n get hasSelectAll(): boolean {\n return this._hasSelectAll;\n }\n set hasSelectAll(value: BooleanInput) {\n this._hasSelectAll = coerceBooleanProperty(value);\n }\n private _hasSelectAll = false;\n\n constructor(private router: Router) {\n this.nodeId = `ux-tree-node-${uniqueId()}`;\n }\n\n public hasNodeChildren(node: UxLink): boolean {\n return node && node.children && node.children.length > 0;\n }\n\n public onNodeKeydown(event: any, uxLink: UxLink): void {\n if (event.keyCode === 13) {\n this.onNodeClick(event, uxLink);\n }\n }\n\n public onNodeToggle(event: Event, uxLink: UxLink): void {\n this.node.expanded = !this.node.expanded;\n this.nodeToggle.emit(uxLink);\n }\n\n public onNodeClick(event: Event, uxLink: UxLink): void {\n if (!uxLink.disabled) {\n if (!this.node.metadata) {\n if (this.isMultiselect && this.isClickSelectingNode) {\n uxLink.selected = !uxLink.selected;\n event.target['checked'] = uxLink.selected;\n this.onCheckboxChange(uxLink, event);\n }\n if (!this.node.children || this.node.children.length === 0) {\n this.node.expanded = !this.node.expanded;\n\n if (this.node.url) {\n this.router.navigate([this.node.url]);\n }\n if (this.node.urlExternal) {\n window.open(this.node.urlExternal, this.node.urlExternalTarget);\n }\n } else {\n const clickedEl = event.target['nodeName'];\n if (this.isClickTogglingNode) {\n this.onNodeToggle(event, uxLink);\n }\n if (clickedEl === 'SPAN' && (this.node.url || this.node.urlExternal)) {\n if (this.node.url) {\n this.router.navigate([this.node.url]);\n }\n if (this.node.urlExternal) {\n window.open(this.node.urlExternal, this.node.urlExternalTarget);\n }\n }\n }\n } else {\n if (this.node.url) {\n this.router.navigate([this.node.url]);\n }\n if (this.node.urlExternal) {\n window.open(this.node.urlExternal, this.node.urlExternalTarget);\n }\n }\n if (uxLink.command) {\n uxLink.command();\n }\n\n this.nodeClick.emit(uxLink);\n consumeEvent(event);\n }\n }\n\n public onCheckboxChange(uxLink: UxLink, evt: any): void {\n\n if (this.isRecursiveSelection) {\n if (!uxLink.selected) {\n uxLink.indeterminate = false;\n }\n this.changeSelectionRecursively(uxLink, uxLink.selected);\n if (uxLink.parent) {\n this.changeParentSelection(uxLink.parent);\n }\n }\n\n if (this.highlightPath) {\n this.getParents(uxLink, evt.target.checked);\n }\n\n this.selectionChange.next(uxLink);\n }\n\n public onMetadataNodeToggle(event: Event, uxLink: UxLink): void {\n this.node.expanded = !this.node.expanded;\n consumeEvent(event);\n }\n\n public onSubNodeClick(uxLink: UxLink): void {\n this.nodeClick.emit(uxLink);\n }\n\n public onSubNodeToggle(uxLink: UxLink): void {\n this.nodeToggle.emit(uxLink);\n }\n\n public onSelectionChange(uxLink: UxLink): void {\n this.selectionChange.next(uxLink);\n }\n\n public trackByFn(index: number, item: UxLink): string {\n return item.id;\n }\n\n checkInputLabel(): string {\n if (this.isRecursiveSelection && this.node.hasChildren) {\n if (this.node.selected) {\n return 'Deselect All';\n } else {\n return 'Select All';\n }\n } else if ((this.isRecursiveSelection && !this.node.hasChildren) || !this.isRecursiveSelection) {\n if (this.node.selected) {\n return 'Deselect node';\n } else {\n return 'Select node';\n }\n }\n }\n\n private getParents(uxLink: UxLink, isChecked: boolean): void {\n if (uxLink === this.node) {\n if (isChecked === true) {\n this.node['highlighted'] = isChecked;\n } else {\n const selectedChildren = this.hasChildSelected(this.node);\n if (selectedChildren.length === 0) {\n this.node['highlighted'] = isChecked;\n }\n }\n }\n\n if (uxLink.parent) {\n if (isChecked === true) {\n uxLink.parent['highlighted'] = isChecked;\n this.getParents(uxLink.parent, isChecked);\n } else {\n const selectedChildren = this.hasChildSelected(uxLink.parent);\n if (selectedChildren.length === 0) {\n uxLink.parent['highlighted'] = isChecked;\n this.getParents(uxLink.parent, isChecked);\n }\n }\n }\n }\n\n private hasChildSelected(uxLink: UxLink, selected = []): string[] {\n if (uxLink.selected) {\n selected.push(uxLink.label);\n }\n\n if (uxLink.children && uxLink.children.length > 0) {\n uxLink.children.forEach((child) => {\n this.hasChildSelected(child, selected);\n });\n }\n\n return selected;\n }\n\n private changeSelectionRecursively(uxLink: UxLink, value: boolean): void {\n if (uxLink.hasChildren) {\n uxLink.children.forEach((link: UxLink) => {\n link.selected = value;\n if (value) {\n link.indeterminate = false;\n }\n this.changeSelectionRecursively(link, value);\n });\n }\n }\n\n private changeParentSelection(uxLink: UxLink): void {\n if (this.isRecursiveParentSelection) {\n uxLink.indeterminate = !this.allChildrenSelected(uxLink);\n uxLink.selected = this.hasSelectedChildren(uxLink);\n } else {\n if (!uxLink.selected) {\n uxLink.indeterminate = this.hasSelectedChildren(uxLink);\n uxLink.selected = this.hasSelectedChildren(uxLink);\n }\n\n if (uxLink.indeterminate && !this.hasSelectedChildren(uxLink)) {\n uxLink.indeterminate = false;\n uxLink.selected = false;\n }\n }\n\n if (uxLink.parent) {\n this.changeParentSelection(uxLink.parent);\n }\n }\n\n private allChildrenSelected(uxlink: UxLink): boolean {\n return uxlink.children.filter((c) => (!c.selected || (c.selected && c.indeterminate)) && this.childrenSelected).length === 0;\n }\n\n private hasSelectedChildren(uxlink: UxLink): boolean {\n return uxlink.children.filter((c) => c.selected === true).length > 0;\n }\n}\n\n@Component({\n selector: 'ux-tree',\n template: `\n <ux-a-toolbar-filter\n *ngIf=\"isShowToolbar\"\n [isVisible]=\"isShowToolbar\"\n [isToggleVisible]=\"!isHideToggles\"\n (filter)=\"onFilter($event)\"\n [filterValue]=\"setFilterValue\"\n (expandAll)=\"onExpandAll($event)\"\n (collapseAll)=\"onCollapseAll($event)\"\n filterLabel=\"{{ filterLabel }}\"\n [expandAllLabel]=\"expandAllLabel ? expandAllLabel : null\"\n collapseAllLabel=\"{{ collapseAllLabel }}\"\n [isToggleExpanded]=\"isExpanded\"\n [hasLabels]=\"hasLabels\"\n attr.data-e2e=\"{{ e2eAttr }}-a-toolbar-filter\">\n </ux-a-toolbar-filter>\n\n <div class=\"flex-container\" *ngIf=\"hasSelectAll || hasSelectAllFiltered\">\n <input\n type=\"checkbox\"\n class=\"ux-input__checkbox\"\n id=\"selectAll\"\n [checked]=\"isMinimumOneSelected ? 'checked' : null\"\n (change)=\"onSelectAllChange($event)\" />\n <label\n class=\"ux-tree__node-checkbox-label\"\n [class.checkbox-label-indeterminate]=\"isMinimumOneSelected && !isAllSelected\"\n for=\"selectAll\"\n [class.ux-tree__node-checkbox-label--onelevel]=\"checkForChildren()\">\n <ng-container *ngIf=\"!allSelected && !isMinimumOneSelected && !isAllSelected\">\n {{ 'eui.uxtree.SELECT-ALL' | translate }}\n </ng-container>\n <ng-container *ngIf=\"allSelected || isMinimumOneSelected || isAllSelected\">\n {{ 'eui.uxtree.UNSELECT-ALL' | translate }}\n </ng-container>\n </label>\n </div>\n <ng-container *ngIf=\"nodes.length > 500 && !hasSelectAll && !hasSelectAllFiltered; else noVirtualScroll\">\n <cdk-virtual-scroll-viewport\n #virtualScrolling\n itemSize=\"30\"\n class=\"ux-tree__virtual-scrolling__container\"\n minBufferPx=\"2000\"\n maxBufferPx=\"2400\">\n <div *cdkVirtualFor=\"let node of visibleNodes; trackBy: trackByFn\" class=\"ux-tree__virtual-scrolling__item\">\n <ul\n class=\"ux-tree\"\n [class.ux-tree--hidelines]=\"isHideLines\"\n [class.ux-tree--multiselect]=\"isMultiselect\"\n [class.ux-tree--onelevel]=\"checkForChildren()\"\n attr.data-e2e=\"{{ e2eAttr }}\">\n <ux-tree-node\n [node]=\"node\"\n (nodeClick)=\"onNodeClick($event)\"\n (nodeToggle)=\"onNodeToggle($event)\"\n (selectionChange)=\"onSelectionChange($event)\"\n [isRootNode]=\"true\"\n [isMultiselect]=\"isMultiselect\"\n [isRecursiveSelection]=\"isRecursiveSelection\"\n [isClickTogglingNode]=\"isClickTogglingNode\"\n expandedIconClass=\"{{ expandedIconClass }}\"\n collapsedIconClass=\"{{ collapsedIconClass }}\"\n [templateVariable]=\"templateVariable\"\n [nodeContentTemplate]=\"nodeContentTemplate\"\n [isShowActiveNode]=\"isShowActiveNode\"\n [autoTranslate]=\"autoTranslate\"\n [isHideToggles]=\"isHideToggles\"\n [isClickSelectingNode]=\"isClickSelectingNode\"\n [highlightPath]=\"highlightPath\"\n [isRecursiveParentSelection]=\"isRecursiveParentSelection\">\n </ux-tree-node>\n </ul>\n </div>\n </cdk-virtual-scroll-viewport>\n </ng-container>\n\n <ng-template #noVirtualScroll>\n <ul\n class=\"ux-tree\"\n [class.ux-tree--hidelines]=\"isHideLines\"\n [class.ux-tree--multiselect]=\"isMultiselect\"\n [class.ux-tree--onelevel]=\"checkForChildren()\"\n attr.data-e2e=\"{{ e2eAttr }}\">\n <ux-tree-node\n *ngFor=\"let node of nodes; trackBy: trackByFn\"\n [node]=\"node\"\n (nodeClick)=\"onNodeClick($event)\"\n (nodeToggle)=\"onNodeToggle($event)\"\n (selectionChange)=\"onSelectionChange($event)\"\n [isRootNode]=\"true\"\n [isMultiselect]=\"isMultiselect\"\n [isRecursiveSelection]=\"isRecursiveSelection\"\n [isClickTogglingNode]=\"isClickTogglingNode\"\n expandedIconClass=\"{{ expandedIconClass }}\"\n collapsedIconClass=\"{{ collapsedIconClass }}\"\n [templateVariable]=\"templateVariable\"\n [nodeContentTemplate]=\"nodeContentTemplate\"\n [isShowActiveNode]=\"isShowActiveNode\"\n [autoTranslate]=\"autoTranslate\"\n [isHideToggles]=\"isHideToggles\"\n [isClickSelectingNode]=\"isClickSelectingNode\"\n [highlightPath]=\"highlightPath\"\n [isRecursiveParentSelection]=\"isRecursiveParentSelection\">\n </ux-tree-node>\n </ul>\n </ng-template>\n `,\n styleUrls: ['./styles/_index.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class UxTreeComponent implements AfterContentInit, OnInit, OnChanges {\n @Input() nodes: UxLink[];\n @Input() collapseAllLabel: string;\n @Input() expandAllLabel: string;\n @Input() filterLabel: string;\n @Input() collapsedIconClass = 'eui-icon eui-icon-plus-circle';\n @Input() expandedIconClass = 'eui-icon eui-icon-minus-circle';\n @Input() setFilterValue: string;\n @Input() e2eAttr = 'ux-tree';\n\n @Output() nodeClick = new EventEmitter<UxLink>();\n @Output() nodeToggle = new EventEmitter<UxLink>();\n // TODO: for eUI 14 remove the [] type\n @Output() selectionChange = new EventEmitter<UxLink | []>();\n @Output() onFilterValue = new EventEmitter<string>();\n\n @ContentChild(TemplateRef) templateVariable: TemplateRef<any>;\n @ContentChildren(UxTemplateDirective) templates: QueryList<any>;\n @ViewChildren(UxTreeNodeComponent) treeNodes: QueryList<UxTreeNodeComponent>;\n @ViewChild('virtualScrolling') public virtualScrolling: CdkVirtualScrollViewport;\n\n constructor(private cd: ChangeDetectorRef) {}\n\n public allSelected = false;\n public nbNodes = 0;\n public visibleNodes = [];\n public nodeContentTemplate: TemplateRef<any>;\n public filterValue = '';\n\n @Input()\n get isShowToolbar(): boolean {\n return this._isShowToolbar;\n }\n set isShowToolbar(value: BooleanInput) {\n this._isShowToolbar = coerceBooleanProperty(value);\n }\n private _isShowToolbar = false;\n @Input()\n get isExpanded(): boolean {\n return this._isExpanded;\n }\n set isExpanded(value: BooleanInput) {\n this._isExpanded = coerceBooleanProperty(value);\n }\n private _isExpanded = false;\n @Input()\n get isMultiselect(): boolean {\n return this._isMultiselect;\n }\n set isMultiselect(value: BooleanInput) {\n this._isMultiselect = coerceBooleanProperty(value);\n }\n private _isMultiselect = false;\n @Input()\n get isRecursiveSelection(): boolean {\n return this._isRecursiveSelection;\n }\n set isRecursiveSelection(value: BooleanInput) {\n this._isRecursiveSelection = coerceBooleanProperty(value);\n }\n private _isRecursiveSelection = false;\n @Input()\n get isClickTogglingNode(): boolean {\n return this._isClickTogglingNode;\n }\n set isClickTogglingNode(value: BooleanInput) {\n this._isClickTogglingNode = coerceBooleanProperty(value);\n }\n private _isClickTogglingNode = false;\n @Input()\n get isShowActiveNode(): boolean {\n return this._isShowActiveNode;\n }\n set isShowActiveNode(value: BooleanInput) {\n this._isShowActiveNode = coerceBooleanProperty(value);\n }\n private _isShowActiveNode = false;\n @Input()\n get isHideToggles(): boolean {\n return this._isHideToggles;\n }\n set isHideToggles(value: BooleanInput) {\n this._isHideToggles = coerceBooleanProperty(value);\n }\n private _isHideToggles = false;\n @Input()\n get isHideLines(): boolean {\n return this._isHideLines;\n }\n set isHideLines(value: BooleanInput) {\n this._isHideLines = coerceBooleanProperty(value);\n }\n private _isHideLines = false;\n @Input()\n get isClickSelectingNode(): boolean {\n return this._isClickSelectingNode;\n }\n set isClickSelectingNode(value: BooleanInput) {\n this._isClickSelectingNode = coerceBooleanProperty(value);\n }\n private _isClickSelectingNode = false;\n @Input()\n get showFilteredChildren(): boolean {\n return this._showFilteredChildren;\n }\n set showFilteredChildren(value: BooleanInput) {\n this._showFilteredChildren = coerceBooleanProperty(value);\n }\n private _showFilteredChildren = false;\n @Input()\n get expandFilteredChildren(): boolean {\n return this._expandFilteredChildren;\n }\n set expandFilteredChildren(value: BooleanInput) {\n this._expandFilteredChildren = coerceBooleanProperty(value);\n }\n private _expandFilteredChildren = false;\n @Input()\n get highlightPath(): boolean {\n return this._highlightPath;\n }\n set highlightPath(value: BooleanInput) {\n this._highlightPath = coerceBooleanProperty(value);\n }\n private _highlightPath = false;\n @Input()\n get autoTranslate(): boolean {\n return this._autoTranslate;\n }\n set autoTranslate(value: BooleanInput) {\n this._autoTranslate = coerceBooleanProperty(value);\n }\n private _autoTranslate = true;\n @Input()\n get hasLabels(): boolean {\n return this._hasLabels;\n }\n set hasLabels(value: BooleanInput) {\n this._hasLabels = coerceBooleanProperty(value);\n }\n private _hasLabels = true;\n @Input()\n get hasSelectAll(): boolean {\n return this._hasSelectAll;\n }\n set hasSelectAll(value: BooleanInput) {\n this._hasSelectAll = coerceBooleanProperty(value);\n }\n private _hasSelectAll = false;\n @Input()\n get hasSelectAllFiltered(): boolean {\n return this._hasSelectAllFiltered;\n }\n set hasSelectAllFiltered(value: BooleanInput) {\n this._hasSelectAllFiltered = coerceBooleanProperty(value);\n }\n private _hasSelectAllFiltered = false;\n @Input()\n get isRecursiveParentSelection(): boolean {\n return this._isRecursiveParentSelection;\n }\n set isRecursiveParentSelection(value: BooleanInput) {\n this._isRecursiveParentSelection = coerceBooleanProperty(value);\n }\n private _isRecursiveParentSelection = true;\n\n get isMinimumOneSelected(): boolean {\n return this.getSelectedNodes().length > 0 && !this.allSelected;\n }\n\n get isAllSelected(): boolean {\n return this.getSelectedNodes().length === this.nbNodes;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes && changes['nodes']) {\n this.visibleNodes = this.visible(this.nodes);\n }\n }\n\n ngOnInit(): void {\n if (this.hasSelectAll) {\n this.isRecursiveSelection = false;\n }\n\n this.getNbNodes(this.nodes);\n\n }\n\n ngAfterContentInit(): void {\n if (this.isExpanded) {\n this.setNodesExpandedState(this.nodes, true);\n }\n\n this.setParentNode(this.nodes, null);\n\n this.templates.forEach((item) => {\n if (item.getType() === 'nodeContent') {\n this.nodeContentTemplate = item.template;\n }\n });\n }\n\n visible(nodes: UxLink[]): UxLink[] {\n\n if(this.hasSelectAllFiltered) {\n return this.getVisibleNodesRecursive(nodes);\n } else {\n return nodes.filter((n) => n.visible);\n }\n }\n\n getNbNodes(nodes: UxLink[]): void {\n nodes.forEach((node) => {\n this.nbNodes++;\n if (node.hasChildren) {\n node.children.forEach((link: UxLink) => {\n this.getNbNodes([link]);\n });\n }\n });\n }\n\n public onSelectAllChange(e: any): void {\n this.allSelected = e.target.checked;\n if (!e.target.check) {\n this.resetSelection();\n }\n\n if(this.hasSelectAllFiltered) {\n this.setNodesSelectedFilteredState(this.visibleNodes, e.target.checked);\n } else {\n this.setNodesSelectedState(this.nodes, e.target.checked);\n }\n }\n\n public getSelectedNodes(): UxLink[] {\n\n if(this.filterValue !== '' && this.allSelected && this.hasSelectAllFiltered) {\n return this.visibleNodes;\n } else {\n return this.getSelectedNodesRecursive(this.nodes);\n }\n\n }\n\n public onNodeToggle(uxLink: UxLink): void {\n this.nodeToggle.emit(uxLink);\n }\n\n public onNodeClick(uxLink: UxLink): void {\n if (!uxLink.disabled) {\n this.nodeClick.emit(uxLink);\n if (this.isClickTogglingNode && uxLink.hasChildren) {\n this.onNodeToggle(uxLink);\n }\n if (!this.isMultiselect && this.isShowActiveNode) {\n this.setNodesSelectedState(this.nodes, false);\n uxLink.selected = true;\n }\n }\n }\n\n public onExpandAll(event: Event): void {\n this.setNodesExpandedState(this.nodes, true);\n }\n\n public onCollapseAll(event: Event): void {\n this.setNodesExpandedState(this.nodes, false);\n }\n\n public onSelectionChange(uxLink: UxLink): void {\n if (!uxLink.selected) {\n this.allSelected = false;\n }\n this.selectionChange.next(uxLink);\n }\n\n public onFilter(filterValue: string): void {\n\n if (filterValue !== '') {\n this.setNodesVisibleState(this.nodes, false);\n\n if (!this.expandFilteredChildren) {\n this.nodes.forEach((node) => {\n this.isFilterMatched(node, filterValue);\n });\n }\n\n if (this.expandFilteredChildren) {\n this.nodes.forEach((node) => {\n this.isFilterMatchedExpand(node, filterValue);\n });\n this.setNodesVisibleState(this.nodes, true);\n }\n\n if (this.showFilteredChildren) {\n this.nodes.forEach((node) => {\n this.isVisibleChildren(node, filterValue);\n });\n }\n\n if (!this.expandFilteredChildren) {\n this.setNodesExpandedState(this.nodes, true);\n }\n this.visibleNodes = this.visible(this.nodes);\n } else {\n this.setNodesVisibleState(this.nodes, true);\n this.visibleNodes = this.visible(this.nodes);\n this.virtualScrolling?.scrollToIndex(0);\n }\n\n if(this.hasSelectAllFiltered) {\n this.setNodesSelectedFilteredState(this.visibleNodes, this.allSelected);\n this.filterValue = filterValue;\n this.cd.detectChanges();\n }\n\n this.onFilterValue.emit(filterValue);\n }\n\n isFilterMatchedExpand(node: UxLink, filterValue: string): void {\n node['highlighted'] = false;\n if (node.label.toUpperCase().indexOf(filterValue.toUpperCase()) !== -1) {\n node.expanded = true;\n node['highlighted'] = true;\n } else {\n node.expanded = false;\n node['highlighted'] = false;\n }\n\n if (node.children) {\n node.children.forEach((childrenNode) => {\n this.isFilterMatchedExpand(childrenNode, filterValue);\n\n if (childrenNode.expanded) {\n node.expanded = true;\n node['highlighted'] = true;\n }\n });\n }\n }\n\n public trackByFn(index: number, item: UxLink): string {\n return item.id;\n }\n\n public checkForChildren(): boolean {\n return !this.nodes.some((node) => node.hasChildren);\n }\n\n public resetSelection(): void {\n this.resetNode(this.nodes);\n // TODO: investigate if we can emit null instead of []\n this.selectionChange.emit([]);\n }\n\n private resetNode(nodes: UxLink[]): void {\n nodes.forEach((node) => {\n node.selected = false;\n\n if (node.children && node.children.length > 0) {\n this.resetNode(node.children);\n }\n });\n }\n\n private isVisibleChildren(node: UxLink, filterValue: string): void {\n if (node.parent && node.parent.visible === true && node.parent.label.toUpperCase().indexOf(filterValue.toUpperCase()) !== -1) {\n node.visible = true;\n }\n\n if (node.children) {\n node.children.forEach((childrenNode) => {\n this.isVisibleChildren(childrenNode, filterValue);\n });\n }\n }\n\n private getSelectedNodesRecursive(nodes: UxLink[]): UxLink[] {\n return (nodes || []).reduce((acc, node) => {\n if (node.hasChildren) {\n return node.selected && !node.indeterminate\n ? [...acc, node, ...this.getSelectedNodesRecursive(node.children)]\n : [...acc, ...this.getSelectedNodesRecursive(node.children)];\n } else {\n return node.selected ? [...acc, node] : [...acc];\n }\n }, []);\n }\n\n private getVisibleNodesRecursive(nodes: UxLink[]): UxLink[] {\n return (nodes || []).reduce((acc, node) => {\n if (node.hasChildren) {\n return node.visible\n ? [...acc, node, ...this.getVisibleNodesRecursive(node.children)]\n : [...acc, ...this.getVisibleNodesRecursive(node.children)];\n } else {\n return node.visible ? [...acc, node] : [...acc];\n }\n }, []);\n }\n\n private isFilterMatched(node: UxLink, filterValue: string): void {\n if (node.label?.toUpperCase().indexOf(filterValue?.toUpperCase()) !== -1) {\n this.virtualScrolling?.scrollToIndex(0);\n node.visible = true;\n } else {\n node.visible = false;\n }\n\n if (node.children) {\n node.children.forEach((childrenNode) => {\n this.isFilterMatched(childrenNode, filterValue);\n\n if (childrenNode.visible) {\n node.visible = true;\n }\n });\n }\n }\n\n private setNodesExpandedState(nodes: UxLink[], expanded: boolean): void {\n nodes.forEach((node) => {\n node.expanded = expanded;\n if (node.children) {\n this.setNodesExpandedState(node.children, expanded);\n }\n });\n }\n\n private setNodesVisibleState(nodes: UxLink[], visible: boolean): void {\n nodes.forEach((node) => {\n node.visible = visible;\n if (node.children) {\n this.setNodesVisibleState(node.children, visible);\n }\n });\n }\n\n private setNodesSelectedState(nodes: UxLink[], selected: boolean): void {\n nodes.forEach((node) => {\n node.selected = selected;\n if (node.children) {\n this.setNodesSelectedState(node.children, selected);\n }\n if (this.hasSelectAll) {\n this.selectionChange.emit(node);\n }\n });\n\n }\n private setNodesSelectedFilteredState(nodes: UxLink[], selected: boolean): void {\n nodes.forEach((node) => {\n if(node.visible){\n node.selected = selected;\n if (node.children) {\n this.setNodesSelectedFilteredState(node.children, selected);\n }\n if (this.hasSelectAllFiltered) {\n this.selectionChange.emit(node);\n }\n }\n });\n }\n\n private setParentNode(nodes: UxLink[], parentNode: UxLink): void {\n nodes.forEach((node) => {\n if (parentNode) {\n node.parent = parentNode;\n }\n if (node.children) {\n this.setParentNode(node.children, node);\n }\n });\n }\n}\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n UxToolbarFilterComponentModule,\n UxButtonComponentModule,\n UxBadgeComponentModule,\n TranslateModule,\n ScrollingModule,\n ],\n exports: [UxTreeComponent, UxTreeNodeComponent],\n declarations: [UxTreeComponent, UxTreeNodeComponent],\n})\nexport class UxTreeComponentModule {}\n","<li\n *ngIf=\"node.visible\"\n class=\"ux-tree__node\"\n [class.first-child]=\"isFirst\"\n [class.last-child]=\"isLast\"\n [class.ux-tree__node--expandable]=\"hasNodeChildren(node) && !isHideToggles\"\n [class.ux-tree__node--disabled]=\"node.disabled\"\n title=\"{{ node.tooltipLabel ? node.tooltipLabel : node.label }}\"\n attr.data-e2e=\"{{ e2eAttr }}\">\n <div class=\"ux-tree__node-wrapper\" [class.ux-tree__node--selected]=\"node.selected\">\n <ux-button\n (click)=\"onNodeToggle($event, node)\"\n (keydown)=\"onNodeKeydown($event, node)\"\n styleClass=\"ux-tree__node-toggle-icon\"\n *ngIf=\"hasNodeChildren(node) && !isHideToggles\"\n [isSmall]=\"true\"\n [isFlat]=\"true\"\n [ariaLabel]=\"node.expanded ? 'Collapse' : 'Expand'\"\n [iconClass]=\"node.expanded ? expandedIconClass : collapsedIconClass\"></ux-button>\n\n <span\n *ngIf=\"isMultiselect\"\n [class.ux-tree__parent]=\"hasNodeChildren(node) && !isHideToggles\"\n [class.ux-tree__leaf]=\"!hasNodeChildren(node) && !isHideToggles\">\n <input\n type=\"checkbox\"\n class=\"ux-input__checkbox\"\n [class.checkbox-label-indeterminate]=\"node.indeterminate\"\n [class.ux-input__checkbox--selected]=\"node.selected && !node.indeterminate\"\n [id]=\"nodeId\"\n [value]=\"node.label\"\n [disabled]=\"node.disabled\"\n [(ngModel)]=\"node.selected\"\n [attr.aria-label]=\"checkInputLabel()\"\n (change)=\"onCheckboxChange(node, $event)\" />\n <label class=\"ux-tree__node-checkbox-label\" [class.checkbox-label-indeterminate]=\"node.indeterminate\" [for]=\"nodeId\"> </label>\n </span>\n\n <div\n *ngIf=\"nodeContentTemplate\"\n class=\"ux-tree__custom-content\"\n [class.ux-tree__parent]=\"hasNodeChildren(node) && !isHideToggles\"\n [class.ux-tree__leaf]=\"!hasNodeChildren(node) && !isHideToggles\">\n <ng-template [ngTemplateOutlet]=\"nodeContentTemplate\" [ngTemplateOutletContext]=\"{ $implicit: node }\"> </ng-template>\n </div>\n\n <ng-container *ngIf=\"!nodeContentTemplate\">\n <ng-container *ngIf=\"node.typeLabel || node.iconClass\">\n <span\n *ngIf=\"node.typeLabel\"\n class=\"ux-tree__node-type ux-tree__node-type--{{ node.typeClass }}\"\n [class.ux-tree__node-type-parent]=\"hasNodeChildren(node) && !isHideToggles && !isMultiselect\"\n (click)=\"onNodeClick($event, node)\"\n (keydown)=\"onNodeKeydown($event, node)\">\n {{ node.typeLabel }}\n </span>\n\n <span *ngIf=\"node.iconClass\" class=\"ux-tree__node-icon ux-tree__node-type--{{ node.iconTypeClass }}\">\n <span class=\"{{ node.iconClass }}\"></span>\n </span>\n\n <div class=\"ux-tree__node-label-wrapped\">\n <span\n [class.text-muted]=\"node.disabled\"\n [class.ux-tree__node-label--highlighted]=\"node['highlighted']\"\n (click)=\"onNodeClick($event, node)\"\n (keydown)=\"onNodeKeydown($event, node)\">\n <span *ngIf=\"autoTranslate; else manualTranslation\">\n {{ node.label | translate }}\n </span>\n <ng-template #manualTranslation>{{ node.label }}</ng-template>\n <span [class.eui-u-text-link-external]=\"node && node.urlExternal\"></span>\n </span>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"!(node.typeLabel || node.iconClass)\">\n <span\n class=\"ux-tree__node-label\"\n [class.ux-tree__node-label-parent]=\"hasNodeChildren(node) && !isHideToggles && !isMultiselect\"\n [class.ux-tree__node-label--highlighted]=\"node['highlighted']\"\n [class.text-muted]=\"node.disabled\"\n (click)=\"onNodeClick($event, node)\"\n (keydown)=\"onNodeKeydown($event, node)\">\n <span *ngIf=\"autoTranslate; else manualTranslation\">\n {{ node.label | translate }}\n </span>\n <ng-template #manualTranslation>{{ node.label }}</ng-template>\n <span [class.eui-u-text-link-external]=\"node && node.urlExternal\"></span>\n </span>\n </ng-container>\n\n <div *ngIf=\"node.badges\" class=\"eui-u-ml-auto\">\n <ux-badge\n *ngFor=\"let badge of node.badges\"\n styleClass=\"ux-tree__node-badge\"\n isTiny=\"true\"\n isOutline=\"true\"\n isPill=\"true\"\n typeClass=\"{{ badge.typeClass }}\">\n {{ badge.label }}\n </ux-badge>\n </div>\n\n <span\n *ngIf=\"node.metadata && node.metadata.title && node.metadata.title.length > 0\"\n class=\"ux-tree__node-metacontent-toggle ux-tree__node-clickable\"\n (click)=\"onMetadataNodeToggle($event, node)\">\n <span class=\"eui-icon\" [ngClass]=\"node.expanded ? 'eui-icon eui-icon-angle-down' : 'eui-icon eui-icon-angle-right'\"></span>\n </span>\n </ng-container>\n </div>\n <ng-container *ngIf=\"node.expanded\">\n <ul *ngIf=\"hasNodeChildren(node)\" class=\"ux-tree__nodes\">\n <ux-tree-node\n *ngFor=\"let subNode of node.children; let isFirst = first; let isLast = last; trackBy: trackByFn\"\n [node]=\"subNode\"\n [isMultiselect]=\"isMultiselect\"\n [isRecursiveSelection]=\"isRecursiveSelection\"\n (nodeClick)=\"onSubNodeClick($event)\"\n (nodeToggle)=\"onSubNodeToggle($event)\"\n (selectionChange)=\"onSelectionChange($event)\"\n [isFirst]=\"isFirst\"\n [isLast]=\"isLast\"\n [isClickTogglingNode]=\"isClickTogglingNode\"\n expandedIconClass=\"{{ expandedIconClass }}\"\n collapsedIconClass=\"{{ collapsedIconClass }}\"\n [templateVariable]=\"templateVariable\"\n [nodeContentTemplate]=\"nodeContentTemplate\"\n [isShowActiveNode]=\"isShowActiveNode\"\n [isHideToggles]=\"isHideToggles\"\n [isClickSelectingNode]=\"isClickSelectingNode\"\n [highlightPath]=\"highlightPath\"\n [isRecursiveParentSelection]=\"isRecursiveParentSelection\"\n [autoTranslate]=\"autoTranslate\">\n </ux-tree-node>\n </ul>\n <div *ngIf=\"node.metadata && node.metadata.title && node.metadata.title.length > 0\" class=\"ux-tree__node-metacontent\">\n <ng-template [ngTemplateOutlet]=\"templateVariable\" [ngTemplateOutletContext]=\"{ metadata: node.metadata }\"></ng-template>\n </div>\n </ng-container>\n</li>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -206,6 +206,9 @@ class EuiTimepickerComponent {
|
|
|
206
206
|
this.propagateTouched();
|
|
207
207
|
}
|
|
208
208
|
writeValue(values) {
|
|
209
|
+
if (!values) {
|
|
210
|
+
return;
|
|
211
|
+
}
|
|
209
212
|
if (typeof values !== 'object' || Array.isArray(values)) {
|
|
210
213
|
throw new Error('value must be an EuiTimePicker Object');
|
|
211
214
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-components-eui-timepicker.mjs","sources":["../../eui-timepicker/models/eui-date-time-picker.config.model.ts","../../eui-timepicker/eui-timepicker.component.ts","../../eui-timepicker/eui-timepicker.component.html","../../eui-timepicker/eui-timepicker.module.ts","../../eui-timepicker/eui-components-eui-timepicker.ts"],"sourcesContent":["export interface EuiDateTimePickerConfig {\n hours: number;\n mins: number;\n secs?: number;\n isDatetimepicker: boolean;\n hasSeconds: boolean;\n isOneInputField: boolean;\n callbackFn: (hours: number, mins: number, secs?: number) => void;\n}\n\nexport class EuiDateTimePickerConfig implements EuiDateTimePickerConfig {\n hours: number;\n mins: number;\n secs?: number;\n isDatetimepicker: boolean;\n hasSeconds: boolean;\n isOneInputField: boolean;\n callbackFn: (hours: number, mins: number, secs?: number) => void;\n\n constructor(values) {\n Object.assign(this, values);\n }\n}\n","import { coerceBooleanProperty, BooleanInput } from '@angular/cdk/coercion';\nimport {\n Component,\n ElementRef,\n Inject,\n Input,\n OnInit,\n Optional,\n ViewChild,\n ViewEncapsulation,\n Self,\n DoCheck,\n OnDestroy,\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl, FormControl } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { DYNAMIC_COMPONENT_CONFIG } from '@eui/core';\nimport { EuiDateTimePickerConfig } from './models/eui-date-time-picker.config.model';\nimport { EuiTimePicker } from './models/eui-timepicker.model';\n\n@Component({\n selector: 'eui-timepicker',\n templateUrl: './eui-timepicker.component.html',\n styleUrls: ['./styles/_index.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class EuiTimepickerComponent implements ControlValueAccessor, OnInit, DoCheck, OnDestroy {\n hours: number;\n mins: number;\n secs: number;\n isDatetimepicker: boolean;\n oneInputFormControl = new FormControl();\n oneInputHours: string;\n oneInputMins: string;\n oneInputSecs: string;\n\n private propagatedValues: EuiTimePicker = {\n hours: null,\n mins: null,\n secs: this.hasSeconds ? null : undefined,\n };\n private destroy$: Subject<boolean> = new Subject<boolean>();\n\n @Input()\n get isreadOnly(): boolean {\n return this._isreadOnly;\n }\n set isreadOnly(value: BooleanInput) {\n this._isreadOnly = coerceBooleanProperty(value);\n }\n private _isreadOnly = false;\n\n @Input()\n get isOneInputField(): boolean {\n return this._isOneInputField;\n }\n set isOneInputField(value: BooleanInput) {\n this._isOneInputField = coerceBooleanProperty(value);\n }\n private _isOneInputField = false;\n\n @Input()\n get hasSeconds(): boolean {\n return this._hasSeconds;\n }\n set hasSeconds(value: BooleanInput) {\n this._hasSeconds = coerceBooleanProperty(value);\n }\n private _hasSeconds = false;\n\n // eslint-disable-next-line @typescript-eslint/member-ordering\n @Input() timeMask = 'Hh:m0';\n\n @ViewChild('inputrefhours', { read: ElementRef }) protected inputHoursElement: ElementRef<HTMLInputElement>;\n @ViewChild('inputrefmins', { read: ElementRef }) protected inputMinsElement: ElementRef<HTMLInputElement>;\n @ViewChild('inputrefsecs', { read: ElementRef }) protected inputSecsElement: ElementRef<HTMLInputElement>;\n\n constructor(\n @Optional() @Inject(DYNAMIC_COMPONENT_CONFIG) config: EuiDateTimePickerConfig,\n @Self() @Optional() private control: NgControl\n ) {\n this.hours = config?.hours || 0;\n this.mins = config?.mins || 0;\n this.secs = config?.secs || 0;\n this.isDatetimepicker = config?.isDatetimepicker;\n this.hasSeconds = config?.hasSeconds;\n this.isOneInputField = config?.isOneInputField;\n const hours = this.hours === 0 || null ? '00' : this.hours;\n const mins = this.mins === 0 || null ? '00' : this.mins;\n const secs = this.secs === 0 || null ? '00' : this.secs;\n this.oneInputFormControl.setValue('' + hours + ':' + mins + ':' + secs);\n this.callbackFn = config?.callbackFn || this.callbackFn;\n\n if (this.control) {\n this.control.valueAccessor = this;\n }\n }\n\n ngOnInit(): void {\n if (this.hasSeconds) {\n this.timeMask = 'Hh:m0:s0';\n }\n\n this.oneInputFormControl.valueChanges.pipe(takeUntil(this.destroy$)).subscribe((value) => {\n // splits the entered time into 3 parts based on the : and propagates back the corresponding parts\n const timeArray = value.split(':');\n this.oneInputHours = timeArray[0];\n this.oneInputMins = timeArray[1];\n this.oneInputSecs = timeArray[2];\n const splittedhours = value !== '' ? Number(this.oneInputHours) : null;\n const splittedmins = value !== '' ? Number(this.oneInputMins) : null;\n const splittedsecs = value !== '' ? Number(this.oneInputSecs) : null;\n if (this.hasSeconds) {\n this.propagatedValues = {\n ...this.propagatedValues,\n hours: splittedhours,\n mins: splittedmins,\n secs: splittedsecs,\n };\n this.callbackFn(splittedhours, splittedmins, splittedsecs);\n } else {\n this.propagatedValues = {\n ...this.propagatedValues,\n hours: splittedhours,\n mins: splittedmins,\n };\n this.callbackFn(splittedhours, splittedmins);\n }\n if (splittedhours === null && splittedmins === null && splittedsecs === null) {\n this.propagateChange(null);\n } else {\n this.propagateChange(this.propagatedValues);\n }\n });\n }\n\n ngDoCheck(): void {\n if (this.control) {\n // marks the input control as touched/invalid if the form control is touched/invalid\n this.control?.touched ? this.oneInputFormControl.markAsTouched() : this.oneInputFormControl.markAsUntouched();\n this.control?.invalid ? this.oneInputFormControl.setErrors(this.control.errors) : this.oneInputFormControl.setErrors(null);\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n changeHours(step: number): void {\n const val = (isNaN(this.hours) ? 0 : this.hours) + step;\n this.updateHours(val.toString());\n }\n\n changeMinutes(step: number): void {\n const val = (isNaN(this.mins) ? 0 : this.mins) + step;\n this.updateMinutes(val.toString());\n }\n\n changeSeconds(step: number): void {\n const val = (isNaN(this.secs) ? 0 : this.secs) + step;\n this.updateSeconds(val.toString());\n }\n\n updateHours(newVal: string): void {\n const enteredHour = this.toInteger(newVal);\n\n if (!isNaN(enteredHour)) {\n this.hours = (enteredHour < 0 ? 24 + enteredHour : enteredHour) % 24;\n } else {\n this.hours = NaN;\n }\n\n this.callbackFn(this.hours, this.mins);\n\n this.propagatedValues = {\n ...this.propagatedValues,\n hours: this.hours,\n };\n this.propagateChange(this.propagatedValues);\n }\n\n updateMinutes(newVal: string): void {\n const enteredMin = this.toInteger(newVal);\n\n if (!isNaN(enteredMin)) {\n this.mins = enteredMin % 60 < 0 ? 60 + (enteredMin % 60) : enteredMin % 60;\n this.changeHours(Math.floor(enteredMin / 60));\n } else {\n this.mins = NaN;\n }\n\n this.callbackFn(this.hours, this.mins);\n\n this.propagatedValues = {\n ...this.propagatedValues,\n mins: this.mins,\n };\n this.propagateChange(this.propagatedValues);\n }\n\n updateSeconds(newVal: string): void {\n const enteredSec = this.toInteger(newVal);\n\n if (!isNaN(enteredSec)) {\n this.secs = enteredSec % 60 < 0 ? 60 + (enteredSec % 60) : enteredSec % 60;\n this.changeMinutes(Math.floor(enteredSec / 60));\n } else {\n this.secs = NaN;\n }\n\n this.callbackFn(this.hours, this.mins, this.secs);\n\n this.propagatedValues = {\n ...this.propagatedValues,\n secs: this.secs,\n };\n\n this.propagateChange(this.propagatedValues);\n }\n /**\n * Autofills mins and secs with 00s if the user tabs after entering hours and marks the input as touched\n */\n onFocusOut(): void {\n if (this.oneInputHours && !this.oneInputMins && !this.oneInputSecs) {\n switch (this.oneInputHours) {\n case '0':\n this.oneInputHours = '00';\n break;\n case '1':\n this.oneInputHours = '01';\n break;\n case '2':\n this.oneInputHours = '02';\n break;\n }\n this.oneInputFormControl.patchValue(`${this.oneInputHours} : 00 : 00`);\n }\n\n this.propagateTouched();\n }\n\n writeValue(values: EuiTimePicker): void {\n if (typeof values !== 'object' || Array.isArray(values)) {\n throw new Error('value must be an EuiTimePicker Object');\n }\n if (values.hours === undefined || values.hours < 0 || values.hours > 23 || typeof values.hours !== 'number') {\n throw new Error('hours must be defined and be a number with range 0-23');\n }\n if (values.mins === undefined || values.mins < 0 || values.mins > 59 || typeof values.mins !== 'number') {\n throw new Error('mins must be defined and be a number with range 0-59');\n }\n if (this.hasSeconds && (values.secs === undefined || values.secs < 0 || values.secs > 59 || typeof values.secs !== 'number')) {\n throw new Error('secs must be defined and be a number with range 0-59');\n }\n\n this.updateHours(values.hours.toString());\n this.updateMinutes(values.mins.toString());\n if (values.secs) {\n this.updateSeconds(values.secs.toString());\n }\n if (this.isOneInputField) {\n const hours = this.padNumber(values.hours);\n const mins = this.padNumber(values.mins);\n const secs = this.padNumber(values.secs);\n\n this.oneInputFormControl.patchValue('' + hours + ':' + mins + ':' + secs);\n }\n }\n\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.propagateTouched = fn;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private callbackFn: (hours: number, mins: number, secs?: number) => void = () => {};\n\n private toInteger(value: any): number {\n return parseInt(`${value}`, 10);\n }\n\n /**\n * Pads leading zero to the provided number when isOneInputField\n *\n * @param value The value to add leading zero to\n * @private\n */\n private padNumber(value: number): string {\n if (!isNaN(this.toInteger(value))) {\n return `0${value}`.slice(-2);\n } else {\n return '';\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private propagateChange = (_: any): void => {};\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private propagateTouched = (): void => {};\n}\n","<div class=\"eui-timepicker\" [class.eui-timepicker--centered]=\"isDatetimepicker\">\n <ng-container *ngIf=\"isOneInputField; else multipleInputs\">\n <input\n [class.eui-timepicker__input--one-field]=\"isDatetimepicker\"\n euiInputText\n mask=\"{{ timeMask }}\"\n [leadZeroDateTime]=\"true\"\n placeholder=\"{{ timeMask }}\"\n aria-label=\"Time Input Field\"\n [formControl]=\"oneInputFormControl\"\n (focusout)=\"onFocusOut()\"\n [dropSpecialCharacters]=\"false\"\n [readonly]=\"isreadOnly\" />\n </ng-container>\n\n <ng-template #multipleInputs>\n <div class=\"eui-timepicker__input-container\">\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron\">\n <eui-icon-svg\n (click)=\"changeHours(1)\"\n icon=\"eui-chevron-up\"\n fillColor=\"grey-75\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Increase Hours\"></eui-icon-svg>\n </div>\n <input\n #inputrefhours\n euiInputNumber\n [leadingZero]=\"2\"\n [digits]=\"2\"\n [fractionDigits]=\"0\"\n class=\"eui-timepicker__input\"\n placeholder=\"HH\"\n [ngModel]=\"hours\"\n (ngModelChange)=\"updateHours($event)\"\n [readonly]=\"isreadOnly\"\n aria-label=\"Hours\"\n (keydown.ArrowUp)=\"changeHours(1); $event.preventDefault()\"\n (keydown.ArrowDown)=\"changeHours(-1); $event.preventDefault()\" />\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron\">\n <eui-icon-svg\n (click)=\"changeHours(-1)\"\n icon=\"eui-chevron-down\"\n fillColor=\"grey-75\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Decrease Hours\"></eui-icon-svg>\n </div>\n </div>\n <div class=\"eui-timepicker__spacer\">:</div>\n <div class=\"eui-timepicker__input-container\">\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron\">\n <eui-icon-svg\n (click)=\"changeMinutes(1)\"\n icon=\"eui-chevron-up\"\n fillColor=\"grey-75\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Increase Minutes\"></eui-icon-svg>\n </div>\n <input\n #inputrefmins\n euiInputNumber\n [leadingZero]=\"2\"\n [digits]=\"2\"\n [fractionDigits]=\"0\"\n class=\"eui-timepicker__input\"\n placeholder=\"MM\"\n [ngModel]=\"mins\"\n (ngModelChange)=\"updateMinutes($event)\"\n [readonly]=\"isreadOnly\"\n aria-label=\"Minutes\"\n (keydown.ArrowUp)=\"changeMinutes(1); $event.preventDefault()\"\n (keydown.ArrowDown)=\"changeMinutes(-1); $event.preventDefault()\" />\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron\">\n <eui-icon-svg\n (click)=\"changeMinutes(-1)\"\n icon=\"eui-chevron-down\"\n fillColor=\"grey-75\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Decrease Minutes\"></eui-icon-svg>\n </div>\n </div>\n <ng-container *ngIf=\"hasSeconds\">\n <div class=\"eui-timepicker__spacer\">:</div>\n <div class=\"eui-timepicker__input-container\">\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron\">\n <eui-icon-svg\n (click)=\"changeSeconds(1)\"\n icon=\"eui-chevron-up\"\n fillColor=\"grey-75\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Increase seconds\"></eui-icon-svg>\n </div>\n <input\n #inputrefsecs\n euiInputNumber\n [leadingZero]=\"2\"\n [digits]=\"2\"\n [fractionDigits]=\"0\"\n class=\"eui-timepicker__input\"\n placeholder=\"SS\"\n [ngModel]=\"secs\"\n (ngModelChange)=\"updateSeconds($event)\"\n [readonly]=\"isreadOnly\"\n aria-label=\"Seconds\"\n (keydown.ArrowUp)=\"changeSeconds(1); $event.preventDefault()\"\n (keydown.ArrowDown)=\"changeSeconds(-1); $event.preventDefault()\" />\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron\">\n <eui-icon-svg\n (click)=\"changeSeconds(-1)\"\n icon=\"eui-chevron-down\"\n fillColor=\"grey-75\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Decrease seconds\"></eui-icon-svg>\n </div>\n </div>\n </ng-container>\n </ng-template>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { NgxMaskModule } from 'ngx-mask';\n\nimport { EuiTimepickerComponent } from './eui-timepicker.component';\nimport { EuiInputNumberDirectiveModule } from '@eui/components/eui-input-number';\nimport { EuiInputTextModule } from '@eui/components/eui-input-text';\nimport { EuiIconModule } from '@eui/components/eui-icon';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n EuiInputNumberDirectiveModule,\n EuiInputTextModule,\n EuiIconModule,\n NgxMaskModule.forRoot(),\n ],\n exports: [EuiTimepickerComponent],\n declarations: [EuiTimepickerComponent],\n})\nexport class EuiTimepickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"eui-components-eui-timepicker.mjs","sources":["../../eui-timepicker/models/eui-date-time-picker.config.model.ts","../../eui-timepicker/eui-timepicker.component.ts","../../eui-timepicker/eui-timepicker.component.html","../../eui-timepicker/eui-timepicker.module.ts","../../eui-timepicker/eui-components-eui-timepicker.ts"],"sourcesContent":["export interface EuiDateTimePickerConfig {\n hours: number;\n mins: number;\n secs?: number;\n isDatetimepicker: boolean;\n hasSeconds: boolean;\n isOneInputField: boolean;\n callbackFn: (hours: number, mins: number, secs?: number) => void;\n}\n\nexport class EuiDateTimePickerConfig implements EuiDateTimePickerConfig {\n hours: number;\n mins: number;\n secs?: number;\n isDatetimepicker: boolean;\n hasSeconds: boolean;\n isOneInputField: boolean;\n callbackFn: (hours: number, mins: number, secs?: number) => void;\n\n constructor(values) {\n Object.assign(this, values);\n }\n}\n","import { coerceBooleanProperty, BooleanInput } from '@angular/cdk/coercion';\nimport {\n Component,\n ElementRef,\n Inject,\n Input,\n OnInit,\n Optional,\n ViewChild,\n ViewEncapsulation,\n Self,\n DoCheck,\n OnDestroy,\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl, FormControl } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { DYNAMIC_COMPONENT_CONFIG } from '@eui/core';\nimport { EuiDateTimePickerConfig } from './models/eui-date-time-picker.config.model';\nimport { EuiTimePicker } from './models/eui-timepicker.model';\n\n@Component({\n selector: 'eui-timepicker',\n templateUrl: './eui-timepicker.component.html',\n styleUrls: ['./styles/_index.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class EuiTimepickerComponent implements ControlValueAccessor, OnInit, DoCheck, OnDestroy {\n hours: number;\n mins: number;\n secs: number;\n isDatetimepicker: boolean;\n oneInputFormControl = new FormControl();\n oneInputHours: string;\n oneInputMins: string;\n oneInputSecs: string;\n\n private propagatedValues: EuiTimePicker = {\n hours: null,\n mins: null,\n secs: this.hasSeconds ? null : undefined,\n };\n private destroy$: Subject<boolean> = new Subject<boolean>();\n\n @Input()\n get isreadOnly(): boolean {\n return this._isreadOnly;\n }\n set isreadOnly(value: BooleanInput) {\n this._isreadOnly = coerceBooleanProperty(value);\n }\n private _isreadOnly = false;\n\n @Input()\n get isOneInputField(): boolean {\n return this._isOneInputField;\n }\n set isOneInputField(value: BooleanInput) {\n this._isOneInputField = coerceBooleanProperty(value);\n }\n private _isOneInputField = false;\n\n @Input()\n get hasSeconds(): boolean {\n return this._hasSeconds;\n }\n set hasSeconds(value: BooleanInput) {\n this._hasSeconds = coerceBooleanProperty(value);\n }\n private _hasSeconds = false;\n\n // eslint-disable-next-line @typescript-eslint/member-ordering\n @Input() timeMask = 'Hh:m0';\n\n @ViewChild('inputrefhours', { read: ElementRef }) protected inputHoursElement: ElementRef<HTMLInputElement>;\n @ViewChild('inputrefmins', { read: ElementRef }) protected inputMinsElement: ElementRef<HTMLInputElement>;\n @ViewChild('inputrefsecs', { read: ElementRef }) protected inputSecsElement: ElementRef<HTMLInputElement>;\n\n constructor(\n @Optional() @Inject(DYNAMIC_COMPONENT_CONFIG) config: EuiDateTimePickerConfig,\n @Self() @Optional() private control: NgControl\n ) {\n this.hours = config?.hours || 0;\n this.mins = config?.mins || 0;\n this.secs = config?.secs || 0;\n this.isDatetimepicker = config?.isDatetimepicker;\n this.hasSeconds = config?.hasSeconds;\n this.isOneInputField = config?.isOneInputField;\n const hours = this.hours === 0 || null ? '00' : this.hours;\n const mins = this.mins === 0 || null ? '00' : this.mins;\n const secs = this.secs === 0 || null ? '00' : this.secs;\n this.oneInputFormControl.setValue('' + hours + ':' + mins + ':' + secs);\n this.callbackFn = config?.callbackFn || this.callbackFn;\n\n if (this.control) {\n this.control.valueAccessor = this;\n }\n }\n\n ngOnInit(): void {\n if (this.hasSeconds) {\n this.timeMask = 'Hh:m0:s0';\n }\n\n this.oneInputFormControl.valueChanges.pipe(takeUntil(this.destroy$)).subscribe((value) => {\n // splits the entered time into 3 parts based on the : and propagates back the corresponding parts\n const timeArray = value.split(':');\n this.oneInputHours = timeArray[0];\n this.oneInputMins = timeArray[1];\n this.oneInputSecs = timeArray[2];\n const splittedhours = value !== '' ? Number(this.oneInputHours) : null;\n const splittedmins = value !== '' ? Number(this.oneInputMins) : null;\n const splittedsecs = value !== '' ? Number(this.oneInputSecs) : null;\n if (this.hasSeconds) {\n this.propagatedValues = {\n ...this.propagatedValues,\n hours: splittedhours,\n mins: splittedmins,\n secs: splittedsecs,\n };\n this.callbackFn(splittedhours, splittedmins, splittedsecs);\n } else {\n this.propagatedValues = {\n ...this.propagatedValues,\n hours: splittedhours,\n mins: splittedmins,\n };\n this.callbackFn(splittedhours, splittedmins);\n }\n if (splittedhours === null && splittedmins === null && splittedsecs === null) {\n this.propagateChange(null);\n } else {\n this.propagateChange(this.propagatedValues);\n }\n });\n }\n\n ngDoCheck(): void {\n if (this.control) {\n // marks the input control as touched/invalid if the form control is touched/invalid\n this.control?.touched ? this.oneInputFormControl.markAsTouched() : this.oneInputFormControl.markAsUntouched();\n this.control?.invalid ? this.oneInputFormControl.setErrors(this.control.errors) : this.oneInputFormControl.setErrors(null);\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n changeHours(step: number): void {\n const val = (isNaN(this.hours) ? 0 : this.hours) + step;\n this.updateHours(val.toString());\n }\n\n changeMinutes(step: number): void {\n const val = (isNaN(this.mins) ? 0 : this.mins) + step;\n this.updateMinutes(val.toString());\n }\n\n changeSeconds(step: number): void {\n const val = (isNaN(this.secs) ? 0 : this.secs) + step;\n this.updateSeconds(val.toString());\n }\n\n updateHours(newVal: string): void {\n const enteredHour = this.toInteger(newVal);\n\n if (!isNaN(enteredHour)) {\n this.hours = (enteredHour < 0 ? 24 + enteredHour : enteredHour) % 24;\n } else {\n this.hours = NaN;\n }\n\n this.callbackFn(this.hours, this.mins);\n\n this.propagatedValues = {\n ...this.propagatedValues,\n hours: this.hours,\n };\n this.propagateChange(this.propagatedValues);\n }\n\n updateMinutes(newVal: string): void {\n const enteredMin = this.toInteger(newVal);\n\n if (!isNaN(enteredMin)) {\n this.mins = enteredMin % 60 < 0 ? 60 + (enteredMin % 60) : enteredMin % 60;\n this.changeHours(Math.floor(enteredMin / 60));\n } else {\n this.mins = NaN;\n }\n\n this.callbackFn(this.hours, this.mins);\n\n this.propagatedValues = {\n ...this.propagatedValues,\n mins: this.mins,\n };\n this.propagateChange(this.propagatedValues);\n }\n\n updateSeconds(newVal: string): void {\n const enteredSec = this.toInteger(newVal);\n\n if (!isNaN(enteredSec)) {\n this.secs = enteredSec % 60 < 0 ? 60 + (enteredSec % 60) : enteredSec % 60;\n this.changeMinutes(Math.floor(enteredSec / 60));\n } else {\n this.secs = NaN;\n }\n\n this.callbackFn(this.hours, this.mins, this.secs);\n\n this.propagatedValues = {\n ...this.propagatedValues,\n secs: this.secs,\n };\n\n this.propagateChange(this.propagatedValues);\n }\n /**\n * Autofills mins and secs with 00s if the user tabs after entering hours and marks the input as touched\n */\n onFocusOut(): void {\n if (this.oneInputHours && !this.oneInputMins && !this.oneInputSecs) {\n switch (this.oneInputHours) {\n case '0':\n this.oneInputHours = '00';\n break;\n case '1':\n this.oneInputHours = '01';\n break;\n case '2':\n this.oneInputHours = '02';\n break;\n }\n this.oneInputFormControl.patchValue(`${this.oneInputHours} : 00 : 00`);\n }\n\n this.propagateTouched();\n }\n\n writeValue(values: EuiTimePicker): void {\n if (!values) {\n return;\n }\n if (typeof values !== 'object' || Array.isArray(values)) {\n throw new Error('value must be an EuiTimePicker Object');\n }\n if (values.hours === undefined || values.hours < 0 || values.hours > 23 || typeof values.hours !== 'number') {\n throw new Error('hours must be defined and be a number with range 0-23');\n }\n if (values.mins === undefined || values.mins < 0 || values.mins > 59 || typeof values.mins !== 'number') {\n throw new Error('mins must be defined and be a number with range 0-59');\n }\n if (this.hasSeconds && (values.secs === undefined || values.secs < 0 || values.secs > 59 || typeof values.secs !== 'number')) {\n throw new Error('secs must be defined and be a number with range 0-59');\n }\n\n this.updateHours(values.hours.toString());\n this.updateMinutes(values.mins.toString());\n if (values.secs) {\n this.updateSeconds(values.secs.toString());\n }\n if (this.isOneInputField) {\n const hours = this.padNumber(values.hours);\n const mins = this.padNumber(values.mins);\n const secs = this.padNumber(values.secs);\n\n this.oneInputFormControl.patchValue('' + hours + ':' + mins + ':' + secs);\n }\n }\n\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.propagateTouched = fn;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private callbackFn: (hours: number, mins: number, secs?: number) => void = () => {};\n\n private toInteger(value: any): number {\n return parseInt(`${value}`, 10);\n }\n\n /**\n * Pads leading zero to the provided number when isOneInputField\n *\n * @param value The value to add leading zero to\n * @private\n */\n private padNumber(value: number): string {\n if (!isNaN(this.toInteger(value))) {\n return `0${value}`.slice(-2);\n } else {\n return '';\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private propagateChange = (_: any): void => {};\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private propagateTouched = (): void => {};\n}\n","<div class=\"eui-timepicker\" [class.eui-timepicker--centered]=\"isDatetimepicker\">\n <ng-container *ngIf=\"isOneInputField; else multipleInputs\">\n <input\n [class.eui-timepicker__input--one-field]=\"isDatetimepicker\"\n euiInputText\n mask=\"{{ timeMask }}\"\n [leadZeroDateTime]=\"true\"\n placeholder=\"{{ timeMask }}\"\n aria-label=\"Time Input Field\"\n [formControl]=\"oneInputFormControl\"\n (focusout)=\"onFocusOut()\"\n [dropSpecialCharacters]=\"false\"\n [readonly]=\"isreadOnly\" />\n </ng-container>\n\n <ng-template #multipleInputs>\n <div class=\"eui-timepicker__input-container\">\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron\">\n <eui-icon-svg\n (click)=\"changeHours(1)\"\n icon=\"eui-chevron-up\"\n fillColor=\"grey-75\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Increase Hours\"></eui-icon-svg>\n </div>\n <input\n #inputrefhours\n euiInputNumber\n [leadingZero]=\"2\"\n [digits]=\"2\"\n [fractionDigits]=\"0\"\n class=\"eui-timepicker__input\"\n placeholder=\"HH\"\n [ngModel]=\"hours\"\n (ngModelChange)=\"updateHours($event)\"\n [readonly]=\"isreadOnly\"\n aria-label=\"Hours\"\n (keydown.ArrowUp)=\"changeHours(1); $event.preventDefault()\"\n (keydown.ArrowDown)=\"changeHours(-1); $event.preventDefault()\" />\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron\">\n <eui-icon-svg\n (click)=\"changeHours(-1)\"\n icon=\"eui-chevron-down\"\n fillColor=\"grey-75\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Decrease Hours\"></eui-icon-svg>\n </div>\n </div>\n <div class=\"eui-timepicker__spacer\">:</div>\n <div class=\"eui-timepicker__input-container\">\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron\">\n <eui-icon-svg\n (click)=\"changeMinutes(1)\"\n icon=\"eui-chevron-up\"\n fillColor=\"grey-75\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Increase Minutes\"></eui-icon-svg>\n </div>\n <input\n #inputrefmins\n euiInputNumber\n [leadingZero]=\"2\"\n [digits]=\"2\"\n [fractionDigits]=\"0\"\n class=\"eui-timepicker__input\"\n placeholder=\"MM\"\n [ngModel]=\"mins\"\n (ngModelChange)=\"updateMinutes($event)\"\n [readonly]=\"isreadOnly\"\n aria-label=\"Minutes\"\n (keydown.ArrowUp)=\"changeMinutes(1); $event.preventDefault()\"\n (keydown.ArrowDown)=\"changeMinutes(-1); $event.preventDefault()\" />\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron\">\n <eui-icon-svg\n (click)=\"changeMinutes(-1)\"\n icon=\"eui-chevron-down\"\n fillColor=\"grey-75\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Decrease Minutes\"></eui-icon-svg>\n </div>\n </div>\n <ng-container *ngIf=\"hasSeconds\">\n <div class=\"eui-timepicker__spacer\">:</div>\n <div class=\"eui-timepicker__input-container\">\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron\">\n <eui-icon-svg\n (click)=\"changeSeconds(1)\"\n icon=\"eui-chevron-up\"\n fillColor=\"grey-75\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Increase seconds\"></eui-icon-svg>\n </div>\n <input\n #inputrefsecs\n euiInputNumber\n [leadingZero]=\"2\"\n [digits]=\"2\"\n [fractionDigits]=\"0\"\n class=\"eui-timepicker__input\"\n placeholder=\"SS\"\n [ngModel]=\"secs\"\n (ngModelChange)=\"updateSeconds($event)\"\n [readonly]=\"isreadOnly\"\n aria-label=\"Seconds\"\n (keydown.ArrowUp)=\"changeSeconds(1); $event.preventDefault()\"\n (keydown.ArrowDown)=\"changeSeconds(-1); $event.preventDefault()\" />\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron\">\n <eui-icon-svg\n (click)=\"changeSeconds(-1)\"\n icon=\"eui-chevron-down\"\n fillColor=\"grey-75\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Decrease seconds\"></eui-icon-svg>\n </div>\n </div>\n </ng-container>\n </ng-template>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { NgxMaskModule } from 'ngx-mask';\n\nimport { EuiTimepickerComponent } from './eui-timepicker.component';\nimport { EuiInputNumberDirectiveModule } from '@eui/components/eui-input-number';\nimport { EuiInputTextModule } from '@eui/components/eui-input-text';\nimport { EuiIconModule } from '@eui/components/eui-icon';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n EuiInputNumberDirectiveModule,\n EuiInputTextModule,\n EuiIconModule,\n NgxMaskModule.forRoot(),\n ],\n exports: [EuiTimepickerComponent],\n declarations: [EuiTimepickerComponent],\n})\nexport class EuiTimepickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|