@skyux/angular-tree-component 15.0.0-alpha.3 → 15.0.0-alpha.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.
|
@@ -320,7 +320,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
|
|
|
320
320
|
* tag with the template reference variable `#treeNodeFullTemplate`. For information about tree node templates,
|
|
321
321
|
* see the [Angular tree component documentation](https://angular2-tree.readme.io/docs/templates).
|
|
322
322
|
* To display context menus with actions for individual items in hierarchical lists, place
|
|
323
|
-
* [dropdowns](https://developer.blackbaud.com/skyux
|
|
323
|
+
* [dropdowns](https://developer.blackbaud.com/skyux/components/dropdown) inside the
|
|
324
324
|
* Angular tree node component, which automatically handles styling and positioning for context menus.
|
|
325
325
|
*/
|
|
326
326
|
class SkyAngularTreeNodeComponent {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skyux-angular-tree-component.mjs","sources":["../../../../../libs/components/angular-tree-component/src/lib/modules/shared/sky-angular-tree-component-resources.module.ts","../../../../../libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-context-menu.component.ts","../../../../../libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-context-menu.component.html","../../../../../libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-adapter.service.ts","../../../../../libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-toolbar.component.ts","../../../../../libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-toolbar.component.html","../../../../../libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-wrapper.component.ts","../../../../../libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-wrapper.component.html","../../../../../libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts","../../../../../libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.html","../../../../../libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree.module.ts","../../../../../libs/components/angular-tree-component/src/skyux-angular-tree-component.ts"],"sourcesContent":["/* istanbul ignore file */\n\n/**\n * NOTICE: DO NOT MODIFY THIS FILE!\n * The contents of this file were automatically generated by\n * the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-angular-tree-component' schematic.\n * To update this file, simply rerun the command.\n */\nimport { NgModule } from '@angular/core';\nimport {\n SkyI18nModule,\n SkyLibResources,\n SkyLibResourcesService,\n} from '@skyux/i18n';\n\nconst RESOURCES: Record<string, SkyLibResources> = {\n 'EN-US': {\n skyux_angular_tree_clear_all: { message: 'Clear all' },\n skyux_angular_tree_click_to_expand: { message: 'Click to expand' },\n skyux_angular_tree_collapse_all: { message: 'Collapse' },\n skyux_angular_tree_expand_all: { message: 'Expand' },\n skyux_angular_tree_select_all: { message: 'Select all' },\n },\n 'FR-CA': {\n skyux_angular_tree_clear_all: { message: 'Effacer tout' },\n skyux_angular_tree_click_to_expand: { message: 'Cliquez pour agrandir' },\n skyux_angular_tree_collapse_all: { message: 'Réduire' },\n skyux_angular_tree_expand_all: { message: 'Agrandir' },\n skyux_angular_tree_select_all: { message: 'Sélectionner tout' },\n },\n};\n\nSkyLibResourcesService.addResources(RESOURCES);\n\n/**\n * Import into any component library module that needs to use resource strings.\n */\n@NgModule({\n exports: [SkyI18nModule],\n})\nexport class SkyAngularTreeComponentResourcesModule {}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-angular-tree-context-menu',\n templateUrl: './angular-tree-context-menu.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyAngularTreeContextMenuComponent {}\n","<div class=\"sky-angular-tree-context-menu\">\n <ng-content />\n</div>\n","import { Injectable, inject } from '@angular/core';\nimport { SkyCoreAdapterService } from '@skyux/core';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyAngularTreeAdapterService {\n readonly #coreAdapterService = inject(SkyCoreAdapterService);\n\n public getFocusableChildren(element: HTMLElement): HTMLElement[] {\n return this.#coreAdapterService.getFocusableChildren(element);\n }\n\n public setTabIndexOfFocusableEls(\n element: HTMLElement,\n tabIndex: number,\n ): void {\n const focusableEls = this.#coreAdapterService.getFocusableChildren(element);\n let index = focusableEls.length;\n while (index--) {\n focusableEls[index].tabIndex = tabIndex;\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\nimport { SkyI18nModule } from '@skyux/i18n';\nimport { SkyIconModule } from '@skyux/icon';\nimport { SkyToolbarModule } from '@skyux/layout';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-angular-tree-toolbar',\n templateUrl: './angular-tree-toolbar.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [SkyI18nModule, SkyIconModule, SkyToolbarModule],\n})\nexport class SkyAngularTreeToolbarComponent {\n @Input()\n public showSelectButtons: boolean | undefined;\n\n @Output()\n public clearAllClick = new EventEmitter<void>();\n\n @Output()\n public collapseAllClick = new EventEmitter<void>();\n\n @Output()\n public expandAllClick = new EventEmitter<void>();\n\n @Output()\n public selectAllClick = new EventEmitter<void>();\n\n public onClearAllClick(): void {\n this.clearAllClick.emit();\n }\n\n public onCollapseAllClick(): void {\n this.collapseAllClick.emit();\n }\n\n public onExpandAllClick(): void {\n this.expandAllClick.emit();\n }\n\n public onSelectAllClick(): void {\n this.selectAllClick.emit();\n }\n}\n","<div class=\"sky-angular-tree-toolbar\" role=\"toolbar\">\n <sky-toolbar>\n @if (showSelectButtons) {\n <sky-toolbar-item>\n <button\n class=\"sky-btn sky-btn-link sky-angular-tree-select-all-btn\"\n type=\"button\"\n (click)=\"onSelectAllClick()\"\n >\n {{ 'skyux_angular_tree_select_all' | skyLibResources }}\n </button>\n </sky-toolbar-item>\n <sky-toolbar-item>\n <button\n class=\"sky-btn sky-btn-link sky-angular-tree-clear-all-btn\"\n type=\"button\"\n (click)=\"onClearAllClick()\"\n >\n {{ 'skyux_angular_tree_clear_all' | skyLibResources }}\n </button>\n </sky-toolbar-item>\n }\n <sky-toolbar-view-actions>\n <button\n class=\"sky-btn sky-btn-default sky-theme-margin-right-s sky-angular-tree-expand-all-btn\"\n type=\"button\"\n [title]=\"'skyux_angular_tree_expand_all' | skyLibResources\"\n (click)=\"onExpandAllClick()\"\n >\n <sky-icon iconName=\"chevron-double-down\" />\n </button>\n <button\n class=\"sky-btn sky-btn-default sky-theme-margin-right-s sky-angular-tree-collapse-all-btn\"\n type=\"button\"\n [title]=\"'skyux_angular_tree_collapse_all' | skyLibResources\"\n (click)=\"onCollapseAllClick()\"\n >\n <sky-icon iconName=\"chevron-double-up\" />\n </button>\n </sky-toolbar-view-actions>\n </sky-toolbar>\n</div>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n Input,\n} from '@angular/core';\nimport {\n KEYS,\n TREE_ACTIONS,\n TreeComponent,\n TreeModel,\n TreeNode,\n} from '@blackbaud/angular-tree-component';\n\nimport { SkyAngularTreeToolbarComponent } from './angular-tree-toolbar.component';\n\n/**\n * Wraps the Angular `tree-root` component as part of the `SkyAngularTreeModule` that provides\n * SKY UX components and styles to complement the `angular-tree-component` library and apply SKY UX\n * themes and functionality to hierarchical list views. For information about the `tree-root` component, see the\n * [Angular tree component documentation](https://angular2-tree.readme.io/docs).\n */\n@Component({\n selector: 'sky-angular-tree-wrapper',\n templateUrl: './angular-tree-wrapper.component.html',\n styleUrls: ['./angular-tree-wrapper.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [SkyAngularTreeToolbarComponent],\n})\nexport class SkyAngularTreeWrapperComponent implements AfterViewInit {\n /**\n * Whether to render the tree view in read-only mode.\n * This mode disables selected and active states on the tree view nodes.\n * @default false\n */\n @Input()\n public readOnly: boolean | undefined = false;\n\n /**\n * Whether to use leaf-only selection mode. For tree views with\n * [checkboxes](https://angular2-tree.readme.io/docs/tri-state-checkboxes),\n * this mode limits user selections to leaf nodes and prevents users from selecting parent nodes.\n * @default false\n */\n @Input()\n public selectLeafNodesOnly: boolean | undefined = false;\n\n /**\n * Whether to use single-select mode. For tree views with\n * [checkboxes](https://angular2-tree.readme.io/docs/tri-state-checkboxes),\n * this mode limits user selections to one node at a time.\n * @default false\n */\n @Input()\n public selectSingle: boolean | undefined = false;\n\n /**\n * Whether to display a toolbar with buttons to expand and collapse all nodes and buttons to select and clear all checkboxes.\n * The select and clear buttons only appear when you enable checkboxes.\n * To enable [checkboxes](https://angular2-tree.readme.io/docs/tri-state-checkboxes).\n * @default false\n */\n @Input()\n public showToolbar: boolean | undefined = false;\n\n public selectableNodeIds: Record<string, unknown> = {};\n\n @ContentChild(TreeComponent)\n public treeComponent: TreeComponent | undefined;\n\n public ngAfterViewInit(): void {\n if (\n this.selectSingle &&\n this.treeComponent?.treeModel.options.useTriState\n ) {\n console.warn(\n 'Single select mode should not be enabled while the tree is in triState mode (cascading selection). ' +\n 'Please set \"useTriState\" to \"false\" if you want to remain in single select mode.',\n );\n }\n this.#overrideActionMapping();\n }\n\n public multiselectable(): boolean {\n return (\n !!this.treeComponent &&\n this.treeComponent.treeModel.options.useCheckbox &&\n !this.selectSingle\n );\n }\n\n public onClearAllClick(): void {\n /* istanbul ignore else */\n if (!this.selectSingle && this.treeComponent) {\n const currentState = this.treeComponent.treeModel.getState();\n this.treeComponent.state = {\n ...currentState,\n selectedLeafNodeIds: {},\n };\n }\n }\n\n public onCollapseAllClick(): void {\n this.treeComponent?.treeModel.collapseAll();\n }\n\n public onExpandAllClick(): void {\n this.treeComponent?.treeModel.expandAll();\n }\n\n public onSelectAllClick(): void {\n /* istanbul ignore else */\n if (!this.selectSingle && this.treeComponent) {\n // Get a list of all node ids that are selectable.\n this.selectableNodeIds = {};\n const getSelectableNodeIds = (node: TreeNode): void => {\n const selectable =\n node.isSelectable() &&\n !(node.hasChildren && this.selectLeafNodesOnly);\n if (selectable && !node.data.virtual) {\n this.selectableNodeIds[node.id] = true;\n }\n if (!node.children) {\n return;\n }\n node.children.forEach((child) => getSelectableNodeIds(child));\n };\n getSelectableNodeIds(this.treeComponent.treeModel.virtualRoot);\n\n // Update tree state with new list of selected node ids.\n const currentState = this.treeComponent.treeModel.getState();\n this.treeComponent.state = {\n ...currentState,\n selectedLeafNodeIds: this.selectableNodeIds,\n };\n }\n }\n\n public showSelectButtons(): boolean {\n return (\n !!this.treeComponent &&\n this.treeComponent.treeModel.options.useCheckbox &&\n !this.selectSingle\n );\n }\n\n #isSelectable(node: TreeNode): boolean {\n return node.isLeaf || !node.hasChildren || !this.selectLeafNodesOnly;\n }\n\n #nodeDefaultAction(tree: TreeModel, node: TreeNode, event: any): void {\n if (this.readOnly) {\n return;\n }\n\n if (node.options.useCheckbox && this.#isSelectable(node)) {\n this.#toggleSelected(node, event);\n } else {\n TREE_ACTIONS.TOGGLE_ACTIVE(tree, node, event);\n }\n\n return;\n }\n\n #onKeyDownAction(tree: TreeModel, node: TreeNode, event: any): void {\n const targetNodeId = event.target.getAttribute('data-node-id');\n\n // Key press did not happen on the node.\n if (!node || targetNodeId !== node.id.toString()) {\n // angular-tree-component will preventDefault() on anything using a key action handler,\n // thus stopping \"enter\" and \"space\" keys to throw \"click\" events on interactive elements.\n // This logic ensures components looking for \"clicks\" on those keystrokes still work (dropdown component).\n // https://github.com/500tech/angular-tree-component/blob/master/lib/models/tree.model.ts#L341\n /* istanbul ignore else */\n if (event.defaultPrevented) {\n event.target.click();\n }\n\n return;\n }\n\n this.#nodeDefaultAction(tree, node, event);\n }\n\n #overrideActionMapping(): void {\n const defaultActionMapping =\n this.treeComponent?.treeModel.options.actionMapping;\n\n if (defaultActionMapping?.mouse) {\n // Override default click/enter/space action to check for unsupported options (leaf node, single-select).\n defaultActionMapping.mouse.click = (tree, node, event): void =>\n this.#nodeDefaultAction(tree, node, event);\n }\n\n if (defaultActionMapping?.keys) {\n defaultActionMapping.keys[KEYS.SPACE] = (tree, node, event): void =>\n this.#onKeyDownAction(tree, node, event);\n defaultActionMapping.keys[KEYS.ENTER] = (tree, node, event): void =>\n this.#onKeyDownAction(tree, node, event);\n\n // Disable left/right arrow keys to support navigating through interactive elements with keyboard.\n // See onArrowLeft() / onArrowRight() methods inside the angular-tree-node.component.ts.\n /* istanbul ignore next */\n defaultActionMapping.keys[KEYS.RIGHT] = (tree, node, $event): void =>\n undefined;\n /* istanbul ignore next */\n defaultActionMapping.keys[KEYS.LEFT] = (tree, node, $event): void =>\n undefined;\n /* istanbul ignore next */\n defaultActionMapping.keys[KEYS.DOWN] = (tree, node, $event): void =>\n undefined;\n /* istanbul ignore next */\n defaultActionMapping.keys[KEYS.UP] = (tree, node, $event): void =>\n undefined;\n }\n }\n\n #toggleSelected(node: TreeNode, event: any): void {\n // If single-selection is enabled, only select the node clicked.\n if (this.selectSingle && !node.isSelected) {\n const oldState = this.treeComponent?.treeModel.getState();\n const newState = {\n expandedNodeIds: oldState?.expandedNodeIds,\n selectedLeafNodeIds: Object.assign({}, node.id, { [node.id]: true }),\n activeNodeIds: oldState?.activeNodeIds,\n hiddenNodeIds: oldState?.hiddenNodeIds,\n focusedNodeId: node.id,\n };\n // Reconstruct the state in one go, so we don't create multiple events for the consumer.\n this.treeComponent?.treeModel.setState(newState);\n } else {\n TREE_ACTIONS.TOGGLE_SELECTED(node.treeModel, node, event);\n }\n }\n}\n","<div\n class=\"sky-angular-tree-wrapper\"\n [class.sky-angular-tree-read-only]=\"readOnly\"\n>\n @if (showToolbar) {\n <sky-angular-tree-toolbar\n [showSelectButtons]=\"showSelectButtons()\"\n (clearAllClick)=\"onClearAllClick()\"\n (collapseAllClick)=\"onCollapseAllClick()\"\n (expandAllClick)=\"onExpandAllClick()\"\n (selectAllClick)=\"onSelectAllClick()\"\n />\n }\n <div\n class=\"sky-angular-tree-root\"\n role=\"tree\"\n [attr.aria-multiselectable]=\"multiselectable()\"\n >\n <ng-content select=\"tree-root\" />\n </div>\n</div>\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnInit,\n TemplateRef,\n ViewChild,\n inject,\n} from '@angular/core';\nimport {\n ITreeState,\n TreeModule,\n TreeNode,\n} from '@blackbaud/angular-tree-component';\nimport { SkyContentInfoProvider } from '@skyux/core';\nimport { SkyCheckboxModule } from '@skyux/forms';\nimport { SkyHelpInlineModule } from '@skyux/help-inline';\nimport { SkyIconModule } from '@skyux/icon';\n\nimport { SkyAngularTreeAdapterService } from './angular-tree-adapter.service';\nimport { SkyAngularTreeContextMenuComponent } from './angular-tree-context-menu.component';\nimport { SkyAngularTreeWrapperComponent } from './angular-tree-wrapper.component';\n\n/**\n * Replaces the default tree node template with a SKY UX node as part of the `SkyAngularTreeModule` that\n * provides SKY UX components and styles to complement the `angular-tree-component` library and apply SKY UX\n * themes and functionality to hierarchical list views. You must wrap this component in an `ng-template`\n * tag with the template reference variable `#treeNodeFullTemplate`. For information about tree node templates,\n * see the [Angular tree component documentation](https://angular2-tree.readme.io/docs/templates).\n * To display context menus with actions for individual items in hierarchical lists, place\n * [dropdowns](https://developer.blackbaud.com/skyux-popovers/docs/dropdown?docs-active-tab=design) inside the\n * Angular tree node component, which automatically handles styling and positioning for context menus.\n */\n@Component({\n selector: 'sky-angular-tree-node',\n templateUrl: './angular-tree-node.component.html',\n providers: [SkyAngularTreeAdapterService, SkyContentInfoProvider],\n changeDetection: ChangeDetectionStrategy.Eager,\n imports: [\n TreeModule,\n SkyAngularTreeContextMenuComponent,\n SkyCheckboxModule,\n SkyHelpInlineModule,\n SkyIconModule,\n NgTemplateOutlet,\n ],\n})\nexport class SkyAngularTreeNodeComponent implements AfterViewInit, OnInit {\n /**\n * The `index` property from the parent `ng-template`.\n * @required\n */\n @Input()\n public index: number | undefined;\n\n /**\n * The `node` property from the parent `ng-template`. For information about the `TreeNode` object, see the\n * [Angular tree component documentation](https://angular2-tree.readme.io/docs/api).\n * @required\n */\n @Input()\n public node: TreeNode | undefined;\n\n /**\n * The `templates` property from the parent `ng-template`.\n */\n @Input()\n public templates: any;\n\n /**\n * A help key that identifies the global help content to display. When specified, a [help inline](https://developer.blackbaud.com/skyux/components/help-inline)\n * button is placed beside the tree node label. Clicking the button invokes [global help](https://developer.blackbaud.com/skyux/learn/develop/global-help)\n * as configured by the application.\n */\n @Input()\n public helpKey: string | undefined;\n\n /**\n * The content of the help popover. When specified, a [help inline](https://developer.blackbaud.com/skyux/components/help-inline)\n * button is added to the tree node. The help inline button displays a [popover](https://developer.blackbaud.com/skyux/components/popover)\n * when clicked using the specified content and optional title.\n */\n @Input()\n public helpPopoverContent: string | TemplateRef<unknown> | undefined;\n\n /**\n * The title of the help popover. This property only applies when `helpPopoverContent` is\n * also specified.\n */\n @Input()\n public helpPopoverTitle: string | undefined;\n\n public set childFocusIndex(value: number | undefined) {\n if (value !== this.#_childFocusIndex) {\n this.#_childFocusIndex = value;\n if (this.#focusableChildren.length > 0 && value !== undefined) {\n this.#focusableChildren[value].focus();\n } else {\n this.nodeContentWrapperRef?.nativeElement.focus();\n }\n }\n }\n\n public get childFocusIndex(): number | undefined {\n return this.#_childFocusIndex;\n }\n\n public set focused(value: boolean) {\n this.tabIndex = value ? 0 : -1;\n if (value) {\n this.nodeContentWrapperRef?.nativeElement.focus();\n }\n }\n\n public set isPartiallySelected(value: boolean) {\n if (value !== this.#_isPartiallySelected) {\n this.#_isPartiallySelected = value;\n this.#changeDetectorRef.markForCheck();\n }\n }\n\n public get isPartiallySelected(): boolean {\n return this.#_isPartiallySelected;\n }\n\n public set isSelected(value: boolean) {\n if (value !== this.#_isSelected) {\n this.#_isSelected = value;\n this.#changeDetectorRef.markForCheck();\n }\n }\n\n public get isSelected(): boolean {\n return this.#_isSelected;\n }\n\n public set tabIndex(value: number) {\n this.#_tabIndex = value;\n }\n\n public get tabIndex(): number {\n return this.#_tabIndex;\n }\n\n @ViewChild('nodeContentWrapper', { read: ElementRef })\n public nodeContentWrapperRef: ElementRef | undefined;\n\n protected set nodeName(value: string) {\n this.#_nodeName = value;\n this.#contentInfoProvider.patchInfo({\n descriptor: { type: 'text', value },\n });\n }\n\n protected get nodeName(): string {\n return this.#_nodeName;\n }\n\n #focusableChildren: HTMLElement[] = [];\n\n #mouseDown = false;\n\n #_childFocusIndex: number | undefined;\n\n #_isPartiallySelected = false;\n\n #_isSelected = false;\n\n #_tabIndex = -1;\n\n #_nodeName = '';\n\n readonly #adapterService = inject(SkyAngularTreeAdapterService);\n readonly #changeDetectorRef = inject(ChangeDetectorRef);\n readonly #contentInfoProvider = inject(SkyContentInfoProvider);\n readonly #skyAngularTreeWrapper = inject(SkyAngularTreeWrapperComponent, {\n optional: true,\n });\n\n public ngOnInit(): void {\n if (!this.#skyAngularTreeWrapper) {\n console.error(\n `<sky-angular-tree-node-wrapper> must be wrapped inside a <sky-angular-tree-wrapper> component.`,\n );\n }\n\n if (this.node) {\n this.nodeName = this.node.data.name;\n // Because we're binding the checkbox to node's children properties, we need to manually control change detection.\n // Here, we listen to the tree's state and force change detection in the setters if the value has changed.\n this.node.treeModel.subscribeToState((state: ITreeState) => {\n if (this.node) {\n this.isSelected = this.node.isSelected;\n this.isPartiallySelected = this.node.isPartiallySelected;\n\n if (state.focusedNodeId) {\n this.focused = state.focusedNodeId === this.node.id;\n }\n }\n });\n\n this.node.treeModel.subscribe('updateData', () => {\n if (this.node) {\n this.nodeName = this.node.data.name;\n }\n });\n\n // Make the first root node tabbable.\n if (this.node.isRoot && this.node.index === 0) {\n this.tabIndex = 0;\n }\n }\n }\n\n public ngAfterViewInit(): void {\n // Wait 1s for the node to render, then reset all child tabIndexes to -1.\n // Units smaller than 1s may consistently fail if there are many nodes, or multiple trees are on the same screen.\n setTimeout(() => {\n if (this.nodeContentWrapperRef) {\n this.#focusableChildren = this.#adapterService.getFocusableChildren(\n this.nodeContentWrapperRef.nativeElement,\n );\n this.#adapterService.setTabIndexOfFocusableEls(\n this.nodeContentWrapperRef.nativeElement,\n -1,\n );\n }\n }, 1000);\n }\n\n /**\n * If single-select, set aria-selected=true for the selected node and undefined for all the others.\n * For multiple-select, set aria-selected to either true or false.\n * If node cannot be selected, aria-selected should be undefined (e.g. parent nodes in leaf-select-only mode).\n * @internal\n */\n public ariaSelected(): boolean | undefined {\n if (!this.#skyAngularTreeWrapper) {\n return;\n }\n\n if (this.#skyAngularTreeWrapper.selectSingle) {\n return this.isSelected ? true : undefined;\n }\n\n if (!this.#isSelectable()) {\n return;\n }\n\n return !!this.isSelected;\n }\n\n public showCheckbox(): boolean {\n // Check for checkbox mode enabled, but also respect leaf-node and single-select settings.\n return (\n !!this.node &&\n this.node.options.useCheckbox &&\n this.#isSelectable() &&\n (!this.#skyAngularTreeWrapper ||\n !this.#skyAngularTreeWrapper.selectSingle)\n );\n }\n\n public showSelectedClass(): boolean {\n return this.#isSelectable() && this.isSelected && !this.isPartiallySelected;\n }\n\n public showActiveClass(): boolean {\n return (\n !!this.node &&\n this.node.isActive &&\n !this.node.treeModel.options.useCheckbox\n );\n }\n\n public showTogglePlaceholder(): boolean {\n return (\n !this.node?.hasChildren &&\n !this.#skyAngularTreeWrapper?.selectLeafNodesOnly\n );\n }\n\n public onFocus(): void {\n // <tree-node-content> has its own click handler, so we need to check if this focus event\n // is coming from the mouse click or the keyboard to prevent the logic from running twice.\n if (!this.#mouseDown) {\n this.node?.treeModel.setFocus(true);\n this.node?.focus();\n this.childFocusIndex = undefined;\n }\n }\n\n public onMouseDown(): void {\n this.#mouseDown = true;\n }\n\n public onMouseUp(): void {\n this.#mouseDown = false;\n }\n\n public onKeyDown(event: KeyboardEvent): void {\n /* istanbul ignore else */\n if (document.activeElement === event.target) {\n const key = event.key.toLowerCase();\n switch (key) {\n case 'up':\n case 'arrowup':\n // Focus on previous node.\n this.node?.treeModel.focusPreviousNode();\n break;\n\n case 'down':\n case 'arrowdown':\n // Focus on next node.\n this.node?.treeModel.focusNextNode();\n break;\n\n case 'left':\n case 'arrowleft':\n // Cycle backwards through interactive child elements\n // If user reaches the beginning, activate drill up.\n /* istanbul ignore else */\n if (this.childFocusIndex !== undefined) {\n if (this.childFocusIndex === 0) {\n this.childFocusIndex = undefined;\n } else {\n this.childFocusIndex--;\n }\n } else {\n this.node?.setIsExpanded(false);\n }\n event.stopPropagation();\n event.preventDefault();\n break;\n\n case 'right':\n case 'arrowright':\n // Cycle forward through interactive child elements.\n // If user reaches the end, activate drill down.\n /* istanbul ignore else */\n if (\n this.#focusableChildren.length <= 0 ||\n this.childFocusIndex === this.#focusableChildren.length - 1\n ) {\n this.node?.setIsExpanded(true);\n } else {\n if (this.childFocusIndex === undefined) {\n this.childFocusIndex = 0;\n } else {\n this.childFocusIndex++;\n }\n }\n event.stopPropagation();\n event.preventDefault();\n break;\n\n default:\n break;\n }\n }\n }\n\n #isSelectable(): boolean {\n if (this.#skyAngularTreeWrapper) {\n return (\n !!this.node &&\n (this.node.isLeaf ||\n !this.node.hasChildren ||\n !this.#skyAngularTreeWrapper.selectLeafNodesOnly)\n );\n } else {\n return false;\n }\n }\n}\n","@if (node && index !== undefined) {\n <div\n [class]=\"node.getClass()\"\n [class.tree-node]=\"true\"\n [class.tree-node-active]=\"node.isActive\"\n [class.tree-node-collapsed]=\"node.isCollapsed && node.hasChildren\"\n [class.tree-node-expanded]=\"node.isExpanded && node.hasChildren\"\n [class.tree-node-focused]=\"node.isFocused\"\n [class.tree-node-leaf]=\"node.isLeaf\"\n >\n @if (index === 0) {\n <tree-node-drop-slot [dropIndex]=\"node.index\" [node]=\"node.parent\" />\n }\n\n <!-- #region <tree-node-wrapper> custom template --->\n <div\n #nodeContentWrapper\n class=\"node-wrapper\"\n role=\"treeitem\"\n [allowDragoverStyling]=\"node.allowDragoverStyling()\"\n [attr.aria-current]=\"node.isActive\"\n [attr.aria-expanded]=\"node.children?.length ? node.isExpanded : null\"\n [attr.aria-selected]=\"ariaSelected()\"\n [attr.data-node-id]=\"node.id\"\n [attr.tabindex]=\"tabIndex\"\n [class.sky-angular-tree-node-active]=\"showActiveClass()\"\n [class.sky-angular-tree-node-has-checkbox]=\"showCheckbox()\"\n [class.sky-angular-tree-node-selected]=\"showSelectedClass()\"\n [style.--sky-angular-tree-node-padding]=\"node.getNodePadding()\"\n [treeAllowDrop]=\"node.allowDrop\"\n [treeDrag]=\"node\"\n [treeDragEnabled]=\"node.allowDrag()\"\n (contextmenu)=\"node.mouseAction('contextMenu', $event)\"\n (dblclick)=\"node.mouseAction('dblClick', $event)\"\n (focus)=\"onFocus()\"\n (mousedown)=\"onMouseDown()\"\n (mouseup)=\"onMouseUp()\"\n (keydown)=\"onKeyDown($event)\"\n (treeDrop)=\"node.onDrop($event)\"\n (treeDropDragEnter)=\"node.mouseAction('dragEnter', $event)\"\n (treeDropDragLeave)=\"node.mouseAction('dragLeave', $event)\"\n (treeDropDragOver)=\"node.mouseAction('dragOver', $event)\"\n >\n <!-- #region <tree-node-expander> custom template --->\n <div class=\"sky-toggle-children-wrapper\">\n @if (node.hasChildren) {\n <button\n class=\"sky-btn sky-btn-icon-borderless sky-toggle-children\"\n tabindex=\"-1\"\n type=\"button\"\n [attr.aria-label]=\"nodeName\"\n [class.toggle-children-wrapper-expanded]=\"node.isExpanded\"\n [class.toggle-children-wrapper-collapsed]=\"node.isCollapsed\"\n (click)=\"node.mouseAction('expanderClick', $event)\"\n >\n <sky-icon\n [iconName]=\"node.isExpanded ? 'chevron-down' : 'chevron-right'\"\n />\n </button>\n }\n @if (showTogglePlaceholder()) {\n <span class=\"toggle-children-placeholder\"> </span>\n }\n </div>\n <!-- #endregion <tree-node-expander> --->\n\n <!-- Note: we've made changes to the click event, tabindex, and classes when compared to the original template. -->\n <!-- https://github.com/500tech/angular-tree-component/blob/master/lib/components/tree-node-wrapper.component.ts -->\n <div class=\"node-content-wrapper\">\n @if (showCheckbox()) {\n <sky-checkbox\n [checked]=\"isSelected\"\n [id]=\"node.data.id\"\n [label]=\"nodeName\"\n [indeterminate]=\"isPartiallySelected\"\n (change)=\"node.mouseAction('checkboxClick', $event)\"\n />\n }\n\n <sky-angular-tree-context-menu>\n <ng-content select=\"sky-dropdown\" />\n </sky-angular-tree-context-menu>\n\n <tree-node-content\n [index]=\"index\"\n [node]=\"node\"\n [template]=\"templates?.treeNodeTemplate\"\n (click)=\"node.mouseAction('click', $event)\"\n /><span class=\"sky-control-help-container\">\n @if (helpKey || helpPopoverContent) {\n <sky-help-inline\n [helpKey]=\"helpKey\"\n [labelText]=\"nodeName\"\n [popoverContent]=\"helpPopoverContent\"\n [popoverTitle]=\"helpPopoverTitle\"\n />\n } @else {\n <ng-content select=\".sky-control-help\" />\n }\n </span>\n </div>\n </div>\n\n <ng-container\n [ngTemplateOutlet]=\"templates?.treeNodeWrapperTemplate\"\n [ngTemplateOutletContext]=\"{\n $implicit: node,\n node: node,\n index: index,\n templates: templates\n }\"\n />\n <!-- #endregion <tree-node-wrapper> -->\n\n <tree-node-children role=\"group\" [node]=\"node\" [templates]=\"templates\" />\n\n <tree-node-drop-slot [dropIndex]=\"node.index + 1\" [node]=\"node.parent\" />\n </div>\n}\n","import { NgModule } from '@angular/core';\nimport { SkyCoreAdapterService } from '@skyux/core';\n\nimport { SkyAngularTreeComponentResourcesModule } from '../shared/sky-angular-tree-component-resources.module';\n\nimport { SkyAngularTreeContextMenuComponent } from './angular-tree-context-menu.component';\nimport { SkyAngularTreeNodeComponent } from './angular-tree-node.component';\nimport { SkyAngularTreeToolbarComponent } from './angular-tree-toolbar.component';\nimport { SkyAngularTreeWrapperComponent } from './angular-tree-wrapper.component';\n\n@NgModule({\n imports: [\n SkyAngularTreeComponentResourcesModule,\n SkyAngularTreeContextMenuComponent,\n SkyAngularTreeNodeComponent,\n SkyAngularTreeToolbarComponent,\n SkyAngularTreeWrapperComponent,\n ],\n providers: [SkyCoreAdapterService],\n exports: [SkyAngularTreeNodeComponent, SkyAngularTreeWrapperComponent],\n})\nexport class SkyAngularTreeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i3","i4"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"skyux-angular-tree-component.mjs","sources":["../../../../../libs/components/angular-tree-component/src/lib/modules/shared/sky-angular-tree-component-resources.module.ts","../../../../../libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-context-menu.component.ts","../../../../../libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-context-menu.component.html","../../../../../libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-adapter.service.ts","../../../../../libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-toolbar.component.ts","../../../../../libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-toolbar.component.html","../../../../../libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-wrapper.component.ts","../../../../../libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-wrapper.component.html","../../../../../libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts","../../../../../libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.html","../../../../../libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree.module.ts","../../../../../libs/components/angular-tree-component/src/skyux-angular-tree-component.ts"],"sourcesContent":["/* istanbul ignore file */\n\n/**\n * NOTICE: DO NOT MODIFY THIS FILE!\n * The contents of this file were automatically generated by\n * the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-angular-tree-component' schematic.\n * To update this file, simply rerun the command.\n */\nimport { NgModule } from '@angular/core';\nimport {\n SkyI18nModule,\n SkyLibResources,\n SkyLibResourcesService,\n} from '@skyux/i18n';\n\nconst RESOURCES: Record<string, SkyLibResources> = {\n 'EN-US': {\n skyux_angular_tree_clear_all: { message: 'Clear all' },\n skyux_angular_tree_click_to_expand: { message: 'Click to expand' },\n skyux_angular_tree_collapse_all: { message: 'Collapse' },\n skyux_angular_tree_expand_all: { message: 'Expand' },\n skyux_angular_tree_select_all: { message: 'Select all' },\n },\n 'FR-CA': {\n skyux_angular_tree_clear_all: { message: 'Effacer tout' },\n skyux_angular_tree_click_to_expand: { message: 'Cliquez pour agrandir' },\n skyux_angular_tree_collapse_all: { message: 'Réduire' },\n skyux_angular_tree_expand_all: { message: 'Agrandir' },\n skyux_angular_tree_select_all: { message: 'Sélectionner tout' },\n },\n};\n\nSkyLibResourcesService.addResources(RESOURCES);\n\n/**\n * Import into any component library module that needs to use resource strings.\n */\n@NgModule({\n exports: [SkyI18nModule],\n})\nexport class SkyAngularTreeComponentResourcesModule {}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-angular-tree-context-menu',\n templateUrl: './angular-tree-context-menu.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyAngularTreeContextMenuComponent {}\n","<div class=\"sky-angular-tree-context-menu\">\n <ng-content />\n</div>\n","import { Injectable, inject } from '@angular/core';\nimport { SkyCoreAdapterService } from '@skyux/core';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyAngularTreeAdapterService {\n readonly #coreAdapterService = inject(SkyCoreAdapterService);\n\n public getFocusableChildren(element: HTMLElement): HTMLElement[] {\n return this.#coreAdapterService.getFocusableChildren(element);\n }\n\n public setTabIndexOfFocusableEls(\n element: HTMLElement,\n tabIndex: number,\n ): void {\n const focusableEls = this.#coreAdapterService.getFocusableChildren(element);\n let index = focusableEls.length;\n while (index--) {\n focusableEls[index].tabIndex = tabIndex;\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\nimport { SkyI18nModule } from '@skyux/i18n';\nimport { SkyIconModule } from '@skyux/icon';\nimport { SkyToolbarModule } from '@skyux/layout';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-angular-tree-toolbar',\n templateUrl: './angular-tree-toolbar.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [SkyI18nModule, SkyIconModule, SkyToolbarModule],\n})\nexport class SkyAngularTreeToolbarComponent {\n @Input()\n public showSelectButtons: boolean | undefined;\n\n @Output()\n public clearAllClick = new EventEmitter<void>();\n\n @Output()\n public collapseAllClick = new EventEmitter<void>();\n\n @Output()\n public expandAllClick = new EventEmitter<void>();\n\n @Output()\n public selectAllClick = new EventEmitter<void>();\n\n public onClearAllClick(): void {\n this.clearAllClick.emit();\n }\n\n public onCollapseAllClick(): void {\n this.collapseAllClick.emit();\n }\n\n public onExpandAllClick(): void {\n this.expandAllClick.emit();\n }\n\n public onSelectAllClick(): void {\n this.selectAllClick.emit();\n }\n}\n","<div class=\"sky-angular-tree-toolbar\" role=\"toolbar\">\n <sky-toolbar>\n @if (showSelectButtons) {\n <sky-toolbar-item>\n <button\n class=\"sky-btn sky-btn-link sky-angular-tree-select-all-btn\"\n type=\"button\"\n (click)=\"onSelectAllClick()\"\n >\n {{ 'skyux_angular_tree_select_all' | skyLibResources }}\n </button>\n </sky-toolbar-item>\n <sky-toolbar-item>\n <button\n class=\"sky-btn sky-btn-link sky-angular-tree-clear-all-btn\"\n type=\"button\"\n (click)=\"onClearAllClick()\"\n >\n {{ 'skyux_angular_tree_clear_all' | skyLibResources }}\n </button>\n </sky-toolbar-item>\n }\n <sky-toolbar-view-actions>\n <button\n class=\"sky-btn sky-btn-default sky-theme-margin-right-s sky-angular-tree-expand-all-btn\"\n type=\"button\"\n [title]=\"'skyux_angular_tree_expand_all' | skyLibResources\"\n (click)=\"onExpandAllClick()\"\n >\n <sky-icon iconName=\"chevron-double-down\" />\n </button>\n <button\n class=\"sky-btn sky-btn-default sky-theme-margin-right-s sky-angular-tree-collapse-all-btn\"\n type=\"button\"\n [title]=\"'skyux_angular_tree_collapse_all' | skyLibResources\"\n (click)=\"onCollapseAllClick()\"\n >\n <sky-icon iconName=\"chevron-double-up\" />\n </button>\n </sky-toolbar-view-actions>\n </sky-toolbar>\n</div>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n Input,\n} from '@angular/core';\nimport {\n KEYS,\n TREE_ACTIONS,\n TreeComponent,\n TreeModel,\n TreeNode,\n} from '@blackbaud/angular-tree-component';\n\nimport { SkyAngularTreeToolbarComponent } from './angular-tree-toolbar.component';\n\n/**\n * Wraps the Angular `tree-root` component as part of the `SkyAngularTreeModule` that provides\n * SKY UX components and styles to complement the `angular-tree-component` library and apply SKY UX\n * themes and functionality to hierarchical list views. For information about the `tree-root` component, see the\n * [Angular tree component documentation](https://angular2-tree.readme.io/docs).\n */\n@Component({\n selector: 'sky-angular-tree-wrapper',\n templateUrl: './angular-tree-wrapper.component.html',\n styleUrls: ['./angular-tree-wrapper.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [SkyAngularTreeToolbarComponent],\n})\nexport class SkyAngularTreeWrapperComponent implements AfterViewInit {\n /**\n * Whether to render the tree view in read-only mode.\n * This mode disables selected and active states on the tree view nodes.\n * @default false\n */\n @Input()\n public readOnly: boolean | undefined = false;\n\n /**\n * Whether to use leaf-only selection mode. For tree views with\n * [checkboxes](https://angular2-tree.readme.io/docs/tri-state-checkboxes),\n * this mode limits user selections to leaf nodes and prevents users from selecting parent nodes.\n * @default false\n */\n @Input()\n public selectLeafNodesOnly: boolean | undefined = false;\n\n /**\n * Whether to use single-select mode. For tree views with\n * [checkboxes](https://angular2-tree.readme.io/docs/tri-state-checkboxes),\n * this mode limits user selections to one node at a time.\n * @default false\n */\n @Input()\n public selectSingle: boolean | undefined = false;\n\n /**\n * Whether to display a toolbar with buttons to expand and collapse all nodes and buttons to select and clear all checkboxes.\n * The select and clear buttons only appear when you enable checkboxes.\n * To enable [checkboxes](https://angular2-tree.readme.io/docs/tri-state-checkboxes).\n * @default false\n */\n @Input()\n public showToolbar: boolean | undefined = false;\n\n public selectableNodeIds: Record<string, unknown> = {};\n\n @ContentChild(TreeComponent)\n public treeComponent: TreeComponent | undefined;\n\n public ngAfterViewInit(): void {\n if (\n this.selectSingle &&\n this.treeComponent?.treeModel.options.useTriState\n ) {\n console.warn(\n 'Single select mode should not be enabled while the tree is in triState mode (cascading selection). ' +\n 'Please set \"useTriState\" to \"false\" if you want to remain in single select mode.',\n );\n }\n this.#overrideActionMapping();\n }\n\n public multiselectable(): boolean {\n return (\n !!this.treeComponent &&\n this.treeComponent.treeModel.options.useCheckbox &&\n !this.selectSingle\n );\n }\n\n public onClearAllClick(): void {\n /* istanbul ignore else */\n if (!this.selectSingle && this.treeComponent) {\n const currentState = this.treeComponent.treeModel.getState();\n this.treeComponent.state = {\n ...currentState,\n selectedLeafNodeIds: {},\n };\n }\n }\n\n public onCollapseAllClick(): void {\n this.treeComponent?.treeModel.collapseAll();\n }\n\n public onExpandAllClick(): void {\n this.treeComponent?.treeModel.expandAll();\n }\n\n public onSelectAllClick(): void {\n /* istanbul ignore else */\n if (!this.selectSingle && this.treeComponent) {\n // Get a list of all node ids that are selectable.\n this.selectableNodeIds = {};\n const getSelectableNodeIds = (node: TreeNode): void => {\n const selectable =\n node.isSelectable() &&\n !(node.hasChildren && this.selectLeafNodesOnly);\n if (selectable && !node.data.virtual) {\n this.selectableNodeIds[node.id] = true;\n }\n if (!node.children) {\n return;\n }\n node.children.forEach((child) => getSelectableNodeIds(child));\n };\n getSelectableNodeIds(this.treeComponent.treeModel.virtualRoot);\n\n // Update tree state with new list of selected node ids.\n const currentState = this.treeComponent.treeModel.getState();\n this.treeComponent.state = {\n ...currentState,\n selectedLeafNodeIds: this.selectableNodeIds,\n };\n }\n }\n\n public showSelectButtons(): boolean {\n return (\n !!this.treeComponent &&\n this.treeComponent.treeModel.options.useCheckbox &&\n !this.selectSingle\n );\n }\n\n #isSelectable(node: TreeNode): boolean {\n return node.isLeaf || !node.hasChildren || !this.selectLeafNodesOnly;\n }\n\n #nodeDefaultAction(tree: TreeModel, node: TreeNode, event: any): void {\n if (this.readOnly) {\n return;\n }\n\n if (node.options.useCheckbox && this.#isSelectable(node)) {\n this.#toggleSelected(node, event);\n } else {\n TREE_ACTIONS.TOGGLE_ACTIVE(tree, node, event);\n }\n\n return;\n }\n\n #onKeyDownAction(tree: TreeModel, node: TreeNode, event: any): void {\n const targetNodeId = event.target.getAttribute('data-node-id');\n\n // Key press did not happen on the node.\n if (!node || targetNodeId !== node.id.toString()) {\n // angular-tree-component will preventDefault() on anything using a key action handler,\n // thus stopping \"enter\" and \"space\" keys to throw \"click\" events on interactive elements.\n // This logic ensures components looking for \"clicks\" on those keystrokes still work (dropdown component).\n // https://github.com/500tech/angular-tree-component/blob/master/lib/models/tree.model.ts#L341\n /* istanbul ignore else */\n if (event.defaultPrevented) {\n event.target.click();\n }\n\n return;\n }\n\n this.#nodeDefaultAction(tree, node, event);\n }\n\n #overrideActionMapping(): void {\n const defaultActionMapping =\n this.treeComponent?.treeModel.options.actionMapping;\n\n if (defaultActionMapping?.mouse) {\n // Override default click/enter/space action to check for unsupported options (leaf node, single-select).\n defaultActionMapping.mouse.click = (tree, node, event): void =>\n this.#nodeDefaultAction(tree, node, event);\n }\n\n if (defaultActionMapping?.keys) {\n defaultActionMapping.keys[KEYS.SPACE] = (tree, node, event): void =>\n this.#onKeyDownAction(tree, node, event);\n defaultActionMapping.keys[KEYS.ENTER] = (tree, node, event): void =>\n this.#onKeyDownAction(tree, node, event);\n\n // Disable left/right arrow keys to support navigating through interactive elements with keyboard.\n // See onArrowLeft() / onArrowRight() methods inside the angular-tree-node.component.ts.\n /* istanbul ignore next */\n defaultActionMapping.keys[KEYS.RIGHT] = (tree, node, $event): void =>\n undefined;\n /* istanbul ignore next */\n defaultActionMapping.keys[KEYS.LEFT] = (tree, node, $event): void =>\n undefined;\n /* istanbul ignore next */\n defaultActionMapping.keys[KEYS.DOWN] = (tree, node, $event): void =>\n undefined;\n /* istanbul ignore next */\n defaultActionMapping.keys[KEYS.UP] = (tree, node, $event): void =>\n undefined;\n }\n }\n\n #toggleSelected(node: TreeNode, event: any): void {\n // If single-selection is enabled, only select the node clicked.\n if (this.selectSingle && !node.isSelected) {\n const oldState = this.treeComponent?.treeModel.getState();\n const newState = {\n expandedNodeIds: oldState?.expandedNodeIds,\n selectedLeafNodeIds: Object.assign({}, node.id, { [node.id]: true }),\n activeNodeIds: oldState?.activeNodeIds,\n hiddenNodeIds: oldState?.hiddenNodeIds,\n focusedNodeId: node.id,\n };\n // Reconstruct the state in one go, so we don't create multiple events for the consumer.\n this.treeComponent?.treeModel.setState(newState);\n } else {\n TREE_ACTIONS.TOGGLE_SELECTED(node.treeModel, node, event);\n }\n }\n}\n","<div\n class=\"sky-angular-tree-wrapper\"\n [class.sky-angular-tree-read-only]=\"readOnly\"\n>\n @if (showToolbar) {\n <sky-angular-tree-toolbar\n [showSelectButtons]=\"showSelectButtons()\"\n (clearAllClick)=\"onClearAllClick()\"\n (collapseAllClick)=\"onCollapseAllClick()\"\n (expandAllClick)=\"onExpandAllClick()\"\n (selectAllClick)=\"onSelectAllClick()\"\n />\n }\n <div\n class=\"sky-angular-tree-root\"\n role=\"tree\"\n [attr.aria-multiselectable]=\"multiselectable()\"\n >\n <ng-content select=\"tree-root\" />\n </div>\n</div>\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnInit,\n TemplateRef,\n ViewChild,\n inject,\n} from '@angular/core';\nimport {\n ITreeState,\n TreeModule,\n TreeNode,\n} from '@blackbaud/angular-tree-component';\nimport { SkyContentInfoProvider } from '@skyux/core';\nimport { SkyCheckboxModule } from '@skyux/forms';\nimport { SkyHelpInlineModule } from '@skyux/help-inline';\nimport { SkyIconModule } from '@skyux/icon';\n\nimport { SkyAngularTreeAdapterService } from './angular-tree-adapter.service';\nimport { SkyAngularTreeContextMenuComponent } from './angular-tree-context-menu.component';\nimport { SkyAngularTreeWrapperComponent } from './angular-tree-wrapper.component';\n\n/**\n * Replaces the default tree node template with a SKY UX node as part of the `SkyAngularTreeModule` that\n * provides SKY UX components and styles to complement the `angular-tree-component` library and apply SKY UX\n * themes and functionality to hierarchical list views. You must wrap this component in an `ng-template`\n * tag with the template reference variable `#treeNodeFullTemplate`. For information about tree node templates,\n * see the [Angular tree component documentation](https://angular2-tree.readme.io/docs/templates).\n * To display context menus with actions for individual items in hierarchical lists, place\n * [dropdowns](https://developer.blackbaud.com/skyux/components/dropdown) inside the\n * Angular tree node component, which automatically handles styling and positioning for context menus.\n */\n@Component({\n selector: 'sky-angular-tree-node',\n templateUrl: './angular-tree-node.component.html',\n providers: [SkyAngularTreeAdapterService, SkyContentInfoProvider],\n changeDetection: ChangeDetectionStrategy.Eager,\n imports: [\n TreeModule,\n SkyAngularTreeContextMenuComponent,\n SkyCheckboxModule,\n SkyHelpInlineModule,\n SkyIconModule,\n NgTemplateOutlet,\n ],\n})\nexport class SkyAngularTreeNodeComponent implements AfterViewInit, OnInit {\n /**\n * The `index` property from the parent `ng-template`.\n * @required\n */\n @Input()\n public index: number | undefined;\n\n /**\n * The `node` property from the parent `ng-template`. For information about the `TreeNode` object, see the\n * [Angular tree component documentation](https://angular2-tree.readme.io/docs/api).\n * @required\n */\n @Input()\n public node: TreeNode | undefined;\n\n /**\n * The `templates` property from the parent `ng-template`.\n */\n @Input()\n public templates: any;\n\n /**\n * A help key that identifies the global help content to display. When specified, a [help inline](https://developer.blackbaud.com/skyux/components/help-inline)\n * button is placed beside the tree node label. Clicking the button invokes [global help](https://developer.blackbaud.com/skyux/learn/develop/global-help)\n * as configured by the application.\n */\n @Input()\n public helpKey: string | undefined;\n\n /**\n * The content of the help popover. When specified, a [help inline](https://developer.blackbaud.com/skyux/components/help-inline)\n * button is added to the tree node. The help inline button displays a [popover](https://developer.blackbaud.com/skyux/components/popover)\n * when clicked using the specified content and optional title.\n */\n @Input()\n public helpPopoverContent: string | TemplateRef<unknown> | undefined;\n\n /**\n * The title of the help popover. This property only applies when `helpPopoverContent` is\n * also specified.\n */\n @Input()\n public helpPopoverTitle: string | undefined;\n\n public set childFocusIndex(value: number | undefined) {\n if (value !== this.#_childFocusIndex) {\n this.#_childFocusIndex = value;\n if (this.#focusableChildren.length > 0 && value !== undefined) {\n this.#focusableChildren[value].focus();\n } else {\n this.nodeContentWrapperRef?.nativeElement.focus();\n }\n }\n }\n\n public get childFocusIndex(): number | undefined {\n return this.#_childFocusIndex;\n }\n\n public set focused(value: boolean) {\n this.tabIndex = value ? 0 : -1;\n if (value) {\n this.nodeContentWrapperRef?.nativeElement.focus();\n }\n }\n\n public set isPartiallySelected(value: boolean) {\n if (value !== this.#_isPartiallySelected) {\n this.#_isPartiallySelected = value;\n this.#changeDetectorRef.markForCheck();\n }\n }\n\n public get isPartiallySelected(): boolean {\n return this.#_isPartiallySelected;\n }\n\n public set isSelected(value: boolean) {\n if (value !== this.#_isSelected) {\n this.#_isSelected = value;\n this.#changeDetectorRef.markForCheck();\n }\n }\n\n public get isSelected(): boolean {\n return this.#_isSelected;\n }\n\n public set tabIndex(value: number) {\n this.#_tabIndex = value;\n }\n\n public get tabIndex(): number {\n return this.#_tabIndex;\n }\n\n @ViewChild('nodeContentWrapper', { read: ElementRef })\n public nodeContentWrapperRef: ElementRef | undefined;\n\n protected set nodeName(value: string) {\n this.#_nodeName = value;\n this.#contentInfoProvider.patchInfo({\n descriptor: { type: 'text', value },\n });\n }\n\n protected get nodeName(): string {\n return this.#_nodeName;\n }\n\n #focusableChildren: HTMLElement[] = [];\n\n #mouseDown = false;\n\n #_childFocusIndex: number | undefined;\n\n #_isPartiallySelected = false;\n\n #_isSelected = false;\n\n #_tabIndex = -1;\n\n #_nodeName = '';\n\n readonly #adapterService = inject(SkyAngularTreeAdapterService);\n readonly #changeDetectorRef = inject(ChangeDetectorRef);\n readonly #contentInfoProvider = inject(SkyContentInfoProvider);\n readonly #skyAngularTreeWrapper = inject(SkyAngularTreeWrapperComponent, {\n optional: true,\n });\n\n public ngOnInit(): void {\n if (!this.#skyAngularTreeWrapper) {\n console.error(\n `<sky-angular-tree-node-wrapper> must be wrapped inside a <sky-angular-tree-wrapper> component.`,\n );\n }\n\n if (this.node) {\n this.nodeName = this.node.data.name;\n // Because we're binding the checkbox to node's children properties, we need to manually control change detection.\n // Here, we listen to the tree's state and force change detection in the setters if the value has changed.\n this.node.treeModel.subscribeToState((state: ITreeState) => {\n if (this.node) {\n this.isSelected = this.node.isSelected;\n this.isPartiallySelected = this.node.isPartiallySelected;\n\n if (state.focusedNodeId) {\n this.focused = state.focusedNodeId === this.node.id;\n }\n }\n });\n\n this.node.treeModel.subscribe('updateData', () => {\n if (this.node) {\n this.nodeName = this.node.data.name;\n }\n });\n\n // Make the first root node tabbable.\n if (this.node.isRoot && this.node.index === 0) {\n this.tabIndex = 0;\n }\n }\n }\n\n public ngAfterViewInit(): void {\n // Wait 1s for the node to render, then reset all child tabIndexes to -1.\n // Units smaller than 1s may consistently fail if there are many nodes, or multiple trees are on the same screen.\n setTimeout(() => {\n if (this.nodeContentWrapperRef) {\n this.#focusableChildren = this.#adapterService.getFocusableChildren(\n this.nodeContentWrapperRef.nativeElement,\n );\n this.#adapterService.setTabIndexOfFocusableEls(\n this.nodeContentWrapperRef.nativeElement,\n -1,\n );\n }\n }, 1000);\n }\n\n /**\n * If single-select, set aria-selected=true for the selected node and undefined for all the others.\n * For multiple-select, set aria-selected to either true or false.\n * If node cannot be selected, aria-selected should be undefined (e.g. parent nodes in leaf-select-only mode).\n * @internal\n */\n public ariaSelected(): boolean | undefined {\n if (!this.#skyAngularTreeWrapper) {\n return;\n }\n\n if (this.#skyAngularTreeWrapper.selectSingle) {\n return this.isSelected ? true : undefined;\n }\n\n if (!this.#isSelectable()) {\n return;\n }\n\n return !!this.isSelected;\n }\n\n public showCheckbox(): boolean {\n // Check for checkbox mode enabled, but also respect leaf-node and single-select settings.\n return (\n !!this.node &&\n this.node.options.useCheckbox &&\n this.#isSelectable() &&\n (!this.#skyAngularTreeWrapper ||\n !this.#skyAngularTreeWrapper.selectSingle)\n );\n }\n\n public showSelectedClass(): boolean {\n return this.#isSelectable() && this.isSelected && !this.isPartiallySelected;\n }\n\n public showActiveClass(): boolean {\n return (\n !!this.node &&\n this.node.isActive &&\n !this.node.treeModel.options.useCheckbox\n );\n }\n\n public showTogglePlaceholder(): boolean {\n return (\n !this.node?.hasChildren &&\n !this.#skyAngularTreeWrapper?.selectLeafNodesOnly\n );\n }\n\n public onFocus(): void {\n // <tree-node-content> has its own click handler, so we need to check if this focus event\n // is coming from the mouse click or the keyboard to prevent the logic from running twice.\n if (!this.#mouseDown) {\n this.node?.treeModel.setFocus(true);\n this.node?.focus();\n this.childFocusIndex = undefined;\n }\n }\n\n public onMouseDown(): void {\n this.#mouseDown = true;\n }\n\n public onMouseUp(): void {\n this.#mouseDown = false;\n }\n\n public onKeyDown(event: KeyboardEvent): void {\n /* istanbul ignore else */\n if (document.activeElement === event.target) {\n const key = event.key.toLowerCase();\n switch (key) {\n case 'up':\n case 'arrowup':\n // Focus on previous node.\n this.node?.treeModel.focusPreviousNode();\n break;\n\n case 'down':\n case 'arrowdown':\n // Focus on next node.\n this.node?.treeModel.focusNextNode();\n break;\n\n case 'left':\n case 'arrowleft':\n // Cycle backwards through interactive child elements\n // If user reaches the beginning, activate drill up.\n /* istanbul ignore else */\n if (this.childFocusIndex !== undefined) {\n if (this.childFocusIndex === 0) {\n this.childFocusIndex = undefined;\n } else {\n this.childFocusIndex--;\n }\n } else {\n this.node?.setIsExpanded(false);\n }\n event.stopPropagation();\n event.preventDefault();\n break;\n\n case 'right':\n case 'arrowright':\n // Cycle forward through interactive child elements.\n // If user reaches the end, activate drill down.\n /* istanbul ignore else */\n if (\n this.#focusableChildren.length <= 0 ||\n this.childFocusIndex === this.#focusableChildren.length - 1\n ) {\n this.node?.setIsExpanded(true);\n } else {\n if (this.childFocusIndex === undefined) {\n this.childFocusIndex = 0;\n } else {\n this.childFocusIndex++;\n }\n }\n event.stopPropagation();\n event.preventDefault();\n break;\n\n default:\n break;\n }\n }\n }\n\n #isSelectable(): boolean {\n if (this.#skyAngularTreeWrapper) {\n return (\n !!this.node &&\n (this.node.isLeaf ||\n !this.node.hasChildren ||\n !this.#skyAngularTreeWrapper.selectLeafNodesOnly)\n );\n } else {\n return false;\n }\n }\n}\n","@if (node && index !== undefined) {\n <div\n [class]=\"node.getClass()\"\n [class.tree-node]=\"true\"\n [class.tree-node-active]=\"node.isActive\"\n [class.tree-node-collapsed]=\"node.isCollapsed && node.hasChildren\"\n [class.tree-node-expanded]=\"node.isExpanded && node.hasChildren\"\n [class.tree-node-focused]=\"node.isFocused\"\n [class.tree-node-leaf]=\"node.isLeaf\"\n >\n @if (index === 0) {\n <tree-node-drop-slot [dropIndex]=\"node.index\" [node]=\"node.parent\" />\n }\n\n <!-- #region <tree-node-wrapper> custom template --->\n <div\n #nodeContentWrapper\n class=\"node-wrapper\"\n role=\"treeitem\"\n [allowDragoverStyling]=\"node.allowDragoverStyling()\"\n [attr.aria-current]=\"node.isActive\"\n [attr.aria-expanded]=\"node.children?.length ? node.isExpanded : null\"\n [attr.aria-selected]=\"ariaSelected()\"\n [attr.data-node-id]=\"node.id\"\n [attr.tabindex]=\"tabIndex\"\n [class.sky-angular-tree-node-active]=\"showActiveClass()\"\n [class.sky-angular-tree-node-has-checkbox]=\"showCheckbox()\"\n [class.sky-angular-tree-node-selected]=\"showSelectedClass()\"\n [style.--sky-angular-tree-node-padding]=\"node.getNodePadding()\"\n [treeAllowDrop]=\"node.allowDrop\"\n [treeDrag]=\"node\"\n [treeDragEnabled]=\"node.allowDrag()\"\n (contextmenu)=\"node.mouseAction('contextMenu', $event)\"\n (dblclick)=\"node.mouseAction('dblClick', $event)\"\n (focus)=\"onFocus()\"\n (mousedown)=\"onMouseDown()\"\n (mouseup)=\"onMouseUp()\"\n (keydown)=\"onKeyDown($event)\"\n (treeDrop)=\"node.onDrop($event)\"\n (treeDropDragEnter)=\"node.mouseAction('dragEnter', $event)\"\n (treeDropDragLeave)=\"node.mouseAction('dragLeave', $event)\"\n (treeDropDragOver)=\"node.mouseAction('dragOver', $event)\"\n >\n <!-- #region <tree-node-expander> custom template --->\n <div class=\"sky-toggle-children-wrapper\">\n @if (node.hasChildren) {\n <button\n class=\"sky-btn sky-btn-icon-borderless sky-toggle-children\"\n tabindex=\"-1\"\n type=\"button\"\n [attr.aria-label]=\"nodeName\"\n [class.toggle-children-wrapper-expanded]=\"node.isExpanded\"\n [class.toggle-children-wrapper-collapsed]=\"node.isCollapsed\"\n (click)=\"node.mouseAction('expanderClick', $event)\"\n >\n <sky-icon\n [iconName]=\"node.isExpanded ? 'chevron-down' : 'chevron-right'\"\n />\n </button>\n }\n @if (showTogglePlaceholder()) {\n <span class=\"toggle-children-placeholder\"> </span>\n }\n </div>\n <!-- #endregion <tree-node-expander> --->\n\n <!-- Note: we've made changes to the click event, tabindex, and classes when compared to the original template. -->\n <!-- https://github.com/500tech/angular-tree-component/blob/master/lib/components/tree-node-wrapper.component.ts -->\n <div class=\"node-content-wrapper\">\n @if (showCheckbox()) {\n <sky-checkbox\n [checked]=\"isSelected\"\n [id]=\"node.data.id\"\n [label]=\"nodeName\"\n [indeterminate]=\"isPartiallySelected\"\n (change)=\"node.mouseAction('checkboxClick', $event)\"\n />\n }\n\n <sky-angular-tree-context-menu>\n <ng-content select=\"sky-dropdown\" />\n </sky-angular-tree-context-menu>\n\n <tree-node-content\n [index]=\"index\"\n [node]=\"node\"\n [template]=\"templates?.treeNodeTemplate\"\n (click)=\"node.mouseAction('click', $event)\"\n /><span class=\"sky-control-help-container\">\n @if (helpKey || helpPopoverContent) {\n <sky-help-inline\n [helpKey]=\"helpKey\"\n [labelText]=\"nodeName\"\n [popoverContent]=\"helpPopoverContent\"\n [popoverTitle]=\"helpPopoverTitle\"\n />\n } @else {\n <ng-content select=\".sky-control-help\" />\n }\n </span>\n </div>\n </div>\n\n <ng-container\n [ngTemplateOutlet]=\"templates?.treeNodeWrapperTemplate\"\n [ngTemplateOutletContext]=\"{\n $implicit: node,\n node: node,\n index: index,\n templates: templates\n }\"\n />\n <!-- #endregion <tree-node-wrapper> -->\n\n <tree-node-children role=\"group\" [node]=\"node\" [templates]=\"templates\" />\n\n <tree-node-drop-slot [dropIndex]=\"node.index + 1\" [node]=\"node.parent\" />\n </div>\n}\n","import { NgModule } from '@angular/core';\nimport { SkyCoreAdapterService } from '@skyux/core';\n\nimport { SkyAngularTreeComponentResourcesModule } from '../shared/sky-angular-tree-component-resources.module';\n\nimport { SkyAngularTreeContextMenuComponent } from './angular-tree-context-menu.component';\nimport { SkyAngularTreeNodeComponent } from './angular-tree-node.component';\nimport { SkyAngularTreeToolbarComponent } from './angular-tree-toolbar.component';\nimport { SkyAngularTreeWrapperComponent } from './angular-tree-wrapper.component';\n\n@NgModule({\n imports: [\n SkyAngularTreeComponentResourcesModule,\n SkyAngularTreeContextMenuComponent,\n SkyAngularTreeNodeComponent,\n SkyAngularTreeToolbarComponent,\n SkyAngularTreeWrapperComponent,\n ],\n providers: [SkyCoreAdapterService],\n exports: [SkyAngularTreeNodeComponent, SkyAngularTreeWrapperComponent],\n})\nexport class SkyAngularTreeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i3","i4"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@skyux/angular-tree-component",
|
|
3
|
-
"version": "15.0.0-alpha.
|
|
3
|
+
"version": "15.0.0-alpha.4",
|
|
4
4
|
"author": "Blackbaud, Inc.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"blackbaud",
|
|
@@ -19,12 +19,12 @@
|
|
|
19
19
|
"@angular/common": "^22.0.6",
|
|
20
20
|
"@angular/core": "^22.0.6",
|
|
21
21
|
"@blackbaud/angular-tree-component": "^1.0.0",
|
|
22
|
-
"@skyux/core": "15.0.0-alpha.
|
|
23
|
-
"@skyux/forms": "15.0.0-alpha.
|
|
24
|
-
"@skyux/help-inline": "15.0.0-alpha.
|
|
25
|
-
"@skyux/i18n": "15.0.0-alpha.
|
|
26
|
-
"@skyux/icon": "15.0.0-alpha.
|
|
27
|
-
"@skyux/layout": "15.0.0-alpha.
|
|
22
|
+
"@skyux/core": "15.0.0-alpha.4",
|
|
23
|
+
"@skyux/forms": "15.0.0-alpha.4",
|
|
24
|
+
"@skyux/help-inline": "15.0.0-alpha.4",
|
|
25
|
+
"@skyux/i18n": "15.0.0-alpha.4",
|
|
26
|
+
"@skyux/icon": "15.0.0-alpha.4",
|
|
27
|
+
"@skyux/layout": "15.0.0-alpha.4"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
30
|
"tslib": "^2.8.1"
|
|
@@ -27,7 +27,7 @@ declare class SkyAngularTreeContextMenuComponent {
|
|
|
27
27
|
* tag with the template reference variable `#treeNodeFullTemplate`. For information about tree node templates,
|
|
28
28
|
* see the [Angular tree component documentation](https://angular2-tree.readme.io/docs/templates).
|
|
29
29
|
* To display context menus with actions for individual items in hierarchical lists, place
|
|
30
|
-
* [dropdowns](https://developer.blackbaud.com/skyux
|
|
30
|
+
* [dropdowns](https://developer.blackbaud.com/skyux/components/dropdown) inside the
|
|
31
31
|
* Angular tree node component, which automatically handles styling and positioning for context menus.
|
|
32
32
|
*/
|
|
33
33
|
declare class SkyAngularTreeNodeComponent implements AfterViewInit, OnInit {
|