@daffodil/design 0.92.3-rc.1 → 0.92.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -202,7 +202,7 @@ class DaffTreeComponent {
202
202
  * but there may be use-cases (like SEO) where having the tree in the DOM
203
203
  * is relevant.
204
204
  */
205
- this.renderMode = input(...(ngDevMode ? [undefined, { debugName: "renderMode" }] : []));
205
+ this.renderMode = input('in-dom', ...(ngDevMode ? [{ debugName: "renderMode" }] : []));
206
206
  /**
207
207
  * A unique identifier for the tree instance.
208
208
  * Used as a prefix for all node IDs in the tree.
@@ -1 +1 @@
1
- {"version":3,"file":"daffodil-design-tree.mjs","sources":["../../../libs/design/tree/src/tree/tree-notifier.service.ts","../../../libs/design/tree/src/utils/flatten-tree.ts","../../../libs/design/tree/src/utils/traverse-tree.ts","../../../libs/design/tree/src/utils/hydrate-tree.ts","../../../libs/design/tree/src/tree/tree.component.ts","../../../libs/design/tree/src/tree/tree.component.html","../../../libs/design/tree/src/utils/walk-up.ts","../../../libs/design/tree/src/utils/open-ancestors.ts","../../../libs/design/tree/src/tree-item/tree-item.directive.ts","../../../libs/design/tree/src/tree.module.ts","../../../libs/design/tree/src/utils/transform.ts","../../../libs/design/tree/src/tree.ts","../../../libs/design/tree/src/daffodil-design-tree.ts"],"sourcesContent":["import {\n Inject,\n OnDestroy,\n} from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n/**\n * This service is used by tree items to notify their parent\n * that the tree has to be recomputed.\n *\n * This service is a multiton associated with each tree instance.\n * It follows the same lifecycle as the tree it is associated with.\n */\n@Inject({})\nexport class DaffTreeNotifierService implements OnDestroy {\n\n /**\n * @docs-private\n */\n private _notice: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(true);\n\n /**\n * An observable that emits when the tree needs to be re-computed.\n */\n notice$ = this._notice.asObservable();\n\n /**\n * `notify` can be called to trigger a re-computation of the tree\n * if data has changed unexpectedly and a re-render did not occur.\n *\n * This should be used sparingly. Instead, prefer updating `data` on the tree\n * itself for performance reasons.\n */\n notify() {\n this._notice.next(true);\n }\n\n /**\n * Cleanup when the tree is destroyed.\n *\n * @docs-private\n */\n ngOnDestroy(): void {\n this._notice.complete();\n }\n}\n","import { collect } from '@daffodil/core';\n\nimport { DaffTreeUi } from '../interfaces/tree-ui';\n\n/**\n * A flattened node of a tree. This is used when translating the tree data\n * structure into an array.\n */\nexport interface DaffTreeFlatNode {\n id: number | string;\n title: string;\n url: string;\n level: number;\n hasChildren: boolean;\n data: unknown;\n visible: boolean;\n _treeRef: DaffTreeUi<unknown>;\n}\n\n/**\n * Flatten a DaffTreeUi<unknown> into an array, removing elements from the array\n * below nodes in the tree that are not open.\n */\nexport const flattenTree = (daffUiTree: DaffTreeUi<unknown>, removeNodes: boolean = false): DaffTreeFlatNode[] => {\n const tree: DaffTreeFlatNode[] = [];\n if(!daffUiTree) {\n return [];\n }\n\n let items = [\n {\n ...daffUiTree,\n level: 0,\n data: undefined,\n open: true,\n _treeRef: daffUiTree,\n },\n ];\n\n\n while(items) {\n const el = items.pop();\n if(!el) {\n break;\n }\n\n items = [\n ...items,\n ...el.items.map((i) => ({\n ...i,\n level:\n el.level + 1,\n _treeRef: i,\n })).reverse(),\n ];\n\n const hasClosedAncestor = el._treeRef.parent\n ? collect(el._treeRef.parent, (node) => node.parent ? [node.parent] : [], el.level).reduce(\n (acc, parent) => acc || !parent.open,\n false,\n )\n : false;\n\n if(!removeNodes && el._treeRef.parent) {\n tree.push({\n id: el.id,\n title: el.title,\n level: el.level,\n url : el.url,\n visible: !hasClosedAncestor,\n hasChildren: el.items.length > 0,\n data: undefined,\n _treeRef: el._treeRef,\n });\n } else if(removeNodes && el._treeRef.parent?.open) {\n tree.push({\n id: el.id,\n title: el.title,\n level: el.level,\n url : el.url,\n visible: !hasClosedAncestor,\n hasChildren: el.items.length > 0,\n data: undefined,\n _treeRef: el._treeRef,\n });\n }\n }\n\n return tree;\n};\n","import { RecursiveTreeKeyOfType } from '../interfaces/recursive-key';\n\n/**\n * Traverse the tree, pre-order, right-to-left\n */\nexport const traverse = <T extends Record<any, any>, V extends Record<any, any> = T>(\n tree: T,\n visit: (tree: T) => V,\n key: RecursiveTreeKeyOfType<T>,\n): V => {\n let stack = [\n tree,\n ];\n\n while(stack) {\n const el = stack.pop();\n if(!el) {\n break;\n }\n\n visit(el);\n\n stack = [\n ...stack,\n ...<T[]><unknown>el[key],\n ];\n }\n\n return tree;\n};\n","import { traverse } from './traverse-tree';\nimport { DaffTreeData } from '../interfaces/tree-data';\nimport { DaffTreeUi } from '../interfaces/tree-ui';\n\nexport const daffDataTreeToUiTree = <T>(data: DaffTreeData<T>, parent: DaffTreeUi<T>, open: boolean = false): DaffTreeUi<T> => ({\n id: parent ? `${parent.id}.${data.id ?? data.title}` : (data.id ?? data.title),\n title: data.title,\n url: data.url,\n data: data.data,\n open,\n parent,\n items: [],\n});\n\n/**\n * This function translates the original data given to us by the client\n * to the internal representation of the tree used by the {@link DaffTreeComponent}\n */\nexport const hydrateTree = <T>(data: DaffTreeData<T>, treeId?: string): DaffTreeUi<T> => {\n const root: DaffTreeUi<T> = {\n id: treeId ?? (data.id ?? data.title),\n title: data.title,\n url: data.url,\n data: data.data,\n open: true,\n parent: undefined,\n items: [],\n };\n\n let treeStack = [\n root,\n ];\n\n traverse(data, (el) => {\n const treeEl = treeStack.pop();\n treeEl.items = el.items.map((i) => daffDataTreeToUiTree(i, treeEl, false));\n treeStack = [\n ...treeStack,\n ...treeEl.items,\n ];\n return el;\n }, 'items');\n\n return root;\n};\n","/* eslint-disable quote-props */\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n inject,\n input,\n signal,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { DaffArticleEncapsulatedDirective } from '@daffodil/design';\n\nimport { DaffTreeNotifierService } from './tree-notifier.service';\nimport { DaffTreeData } from '../interfaces/tree-data';\nimport { DaffTreeRenderMode } from '../interfaces/tree-render-mode';\nimport { flattenTree } from '../utils/flatten-tree';\nimport { hydrateTree } from '../utils/hydrate-tree';\n\nlet daffTreeId = 0;\n\n/**\n * The `DaffTreeComponent` allows you to render tree structures as interactable UI.\n *\n * @example Basic use of the tree component\n * ```html\n * <ul daff-tree [tree]=\"tree\">\n * <ng-template #daffTreeItemWithChildrenTpl let-node>\n * <button daffTreeItem [node]=\"node\">{{ node.title }} </button>\n * </ng-template>\n *\n * <ng-template #daffTreeItemTpl let-node>\n * <a daffTreeItem [node]=\"node\" [routerLink]=\"node.url\">{{ node.title }}</a>\n * </ng-template>\n * </ul>\n * ```\n *\n * where `tree` is a {@link DaffTreeData}.\n *\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'ul[daff-tree]',\n templateUrl: './tree.component.html',\n styleUrls: ['./tree.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n DaffTreeNotifierService,\n ],\n hostDirectives: [{\n directive: DaffArticleEncapsulatedDirective,\n }],\n host: {\n 'class': 'daff-tree',\n },\n imports: [\n NgTemplateOutlet,\n ],\n})\nexport class DaffTreeComponent {\n private notifier = inject(DaffTreeNotifierService);\n\n /**\n * The rendering mode for nodes in the tree.\n *\n * Default value is `in-dom`, which means nodes are present in the DOM.\n *\n * Generally, `not-in-dom` is faster as there are less DOM elements to render,\n * but there may be use-cases (like SEO) where having the tree in the DOM\n * is relevant.\n */\n readonly renderMode = input<DaffTreeRenderMode>();\n\n /**\n * A unique identifier for the tree instance.\n * Used as a prefix for all node IDs in the tree.\n * If not provided, an auto-incrementing number is used.\n */\n readonly id = input<string>(`${daffTreeId++}`);\n\n /**\n * The tree data you would like to render.\n */\n readonly tree = input<DaffTreeData<unknown>>();\n\n /**\n * The internal tree element.\n */\n private _tree = computed(() => {\n const tree = this.tree();\n return tree ? hydrateTree(tree, this.id()) : undefined;\n });\n\n /**\n * A revision counter incremented by notifications from tree items.\n * Used to trigger re-flattening when tree item state changes.\n */\n readonly _revision = signal(0);\n\n /**\n * @docs-private\n *\n * The flattened tree data. For debugging purposes, you can iterate through this if you want to inspect\n * the resulting array structure we computed to render the tree.\n */\n readonly flatTree = computed(() => {\n this._revision();\n const tree = this._tree();\n return tree ? flattenTree(tree, this.renderMode() === 'not-in-dom') : [];\n });\n\n /**\n * The template used to render tree-nodes that themselves have children.\n *\n * @docs-private\n */\n readonly withChildrenTemplate = contentChild<TemplateRef<any>>('daffTreeItemWithChildrenTpl');\n\n /**\n * The template used to render tree-nodes that have no children.\n *\n * @docs-private\n */\n readonly treeItemTemplate = contentChild<TemplateRef<any>>('daffTreeItemTpl');\n\n constructor() {\n this.notifier.notice$.subscribe(() => {\n this._revision.update((r) => r + 1);\n });\n }\n}\n","@for (node of flatTree(); track node.id) {\n\t<li [attr.aria-level]=\"node.level\" [class.hidden]=\"!node.visible\">\n\t\t<ng-container\n\t\t\t*ngTemplateOutlet=\"node.hasChildren ? withChildrenTemplate() : treeItemTemplate(); context: { $implicit: node }\">\n\t\t</ng-container>\n\t</li>\n}","import { DaffTreeUi } from '../interfaces/tree-ui';\n\n/**\n * Walk up the tree from a leaf to the root applying the\n * visit function at each node along the way.\n */\nexport const walkUp = <T>(\n tree: DaffTreeUi<T>,\n visit: (tree: DaffTreeUi<T>) => DaffTreeUi<T>,\n): DaffTreeUi<T> => {\n while(tree.parent) {\n visit(tree);\n tree = tree.parent;\n }\n\n return tree;\n};\n","import { walkUp } from './walk-up';\nimport { DaffTreeUi } from '../interfaces/tree-ui';\n\n/**\n * Open all ancestor nodes of the given node so that it becomes visible in the tree.\n */\nexport const daffTreeOpenAncestors = <T>(node: DaffTreeUi<T>): void => {\n walkUp(node, (ancestor) => {\n ancestor.open = true;\n return ancestor;\n });\n};\n","/* eslint-disable quote-props */\n\nimport { DOCUMENT } from '@angular/common';\nimport {\n computed,\n Directive,\n effect,\n inject,\n input,\n untracked,\n} from '@angular/core';\n\nimport { DaffTreeNotifierService } from '../tree/tree-notifier.service';\nimport { DaffTreeFlatNode } from '../utils/flatten-tree';\nimport { daffTreeOpenAncestors } from '../utils/open-ancestors';\n\n/**\n * The `DaffTreeItemDirective` marks elements as tree child nodes that interact with the parent tree structure.\n *\n * @example Using a `[daffTreeItem]`\n *\n * `[tree]` is a {@link DaffTreeData} and `[daff-tree]` is a {@link DaffTreeComponent}.\n *\n * ```html\n * <ul daff-tree [tree]=\"tree\">\n * <ng-template #daffTreeItemWithChildrenTpl let-node>\n * <button daffTreeItem [node]=\"node\">{{ node.title }} </button>\n * </ng-template>\n *\n * <ng-template #daffTreeItemTpl let-node>\n * <a daffTreeItem [node]=\"node\" [routerLink]=\"node.url\">{{ node.title }}</a>\n * </ng-template>\n * </ul>\n * ```\n *\n */\n@Directive({\n selector: '[daffTreeItem]',\n host: {\n 'class': 'daff-tree-item',\n '[class.selected]': 'selected()',\n '[class.parent]': 'isParent()',\n '[class.open]': 'open()',\n '[attr.id]': 'id()',\n '[attr.aria-expanded]': 'ariaExpanded()',\n '[style.--depth]': 'depth()',\n '(keydown.escape)': 'onEscape()',\n '(click)': 'onClick()',\n },\n})\nexport class DaffTreeItemDirective {\n private document = inject(DOCUMENT);\n private treeNotifier = inject(DaffTreeNotifierService);\n\n /**\n * The {@link DaffTreeFlatNode} associated with this specific tree item.\n */\n readonly node = input.required<DaffTreeFlatNode>();\n\n /**\n * Whether or not the tree item is the currently active item.\n * Note that there is no requirement that there only be one active item at a time.\n *\n * When a tree item becomes selected, all of its ancestor nodes\n * will be automatically opened so that the selected item is visible.\n */\n readonly selected = input(false);\n\n /**\n * The html `id` of the tree item. This is derived from the {@link DaffTreeData}.\n */\n protected readonly id = computed(() => 'tree-' + this.node().id);\n\n /**\n * A property indicating the depth of the tree.\n */\n protected readonly depth = computed(() => this.node().level);\n\n /**\n * Whether or not this node has children.\n */\n protected readonly isParent = computed(() => this.node().hasChildren);\n\n /**\n * Indicates whether or not the tree is `open`.\n */\n protected readonly open = computed(() => this.node()._treeRef.open);\n\n /**\n * Accessibility property, notifying users about whether\n * or not the tree item is open.\n */\n protected readonly ariaExpanded = computed(() => {\n const node = this.node();\n return node.hasChildren ? (node._treeRef.open ? 'true' : 'false') : undefined;\n });\n\n constructor() {\n effect(() => {\n if(this.selected()) {\n const node = untracked(this.node);\n daffTreeOpenAncestors(node._treeRef);\n this.treeNotifier.notify();\n }\n });\n }\n\n /**\n * @docs-private\n */\n onEscape() {\n this.toggleParent(this.node());\n }\n\n /**\n * @docs-private\n */\n onClick() {\n if(this.node().hasChildren) {\n this.toggleTree(this.node());\n }\n this.treeNotifier.notify();\n }\n\n /**\n * Toggle the open state of the tree's parent.\n */\n toggleParent(node: DaffTreeFlatNode) {\n if(node._treeRef?.parent.parent === undefined) {\n return;\n }\n node._treeRef.parent.open = !node._treeRef.parent.open;\n (<Document>this.document).getElementById('tree-' + node._treeRef.parent.id).focus();\n }\n\n /**\n * Toggle the open state of this specific subtree tree.\n */\n toggleTree(node: DaffTreeFlatNode) {\n if(node._treeRef.open === false) {\n node._treeRef.open = true;\n } else {\n node._treeRef.open = false;\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { DaffTreeComponent } from './tree/tree.component';\nimport { DaffTreeItemDirective } from './tree-item/tree-item.directive';\n\n/**\n * @deprecated in favor of {@link DAFF_TREE_COMPONENTS}. Deprecated in version 0.78.0. Will be removed in version 1.0.0.\n */\n@NgModule({\n imports: [\n CommonModule,\n DaffTreeComponent,\n DaffTreeItemDirective,\n ],\n exports: [\n DaffTreeComponent,\n DaffTreeItemDirective,\n ],\n})\nexport class DaffTreeModule { }\n","import { RecursiveTreeKeyOfType } from '../interfaces/recursive-key';\nimport { DaffTreeData } from '../interfaces/tree-data';\n\n/**\n * Transform a tree-like structure into a {@link DaffTreeData}.\n *\n * @param tree - The data structure representing tree-like data.\n * @param transformFn - A user-supplied function that will transform the user\n * type into a {@link DaffTreeData}\n * @param key - The property of the your tree that indicates which\n * key contains the \"children\" of your tree structure.\n *\n */\nexport const daffTransformTree = <\n\n T extends Record<any,any>,\n V\n>(\n tree: T,\n transformFn: (type: T) => DaffTreeData<V>,\n key: RecursiveTreeKeyOfType<T>,\n): DaffTreeData<V> => {\n\n const transformedTree: DaffTreeData<V> = transformFn(tree);\n\n const queue: { node: T; parent: DaffTreeData<V> }[] = [{ node: tree, parent: transformedTree }];\n\n while (queue.length > 0) {\n const { node, parent } = queue.shift();\n\n const childItems = node[key];\n for (const child of <T[]>childItems) {\n const transformedChild: DaffTreeData<V> = transformFn(child);\n parent.items.push(transformedChild);\n queue.push({ node: child, parent: transformedChild });\n }\n }\n\n return transformedTree;\n};\n","import { DaffTreeComponent } from './tree/tree.component';\nimport { DaffTreeItemDirective } from './tree-item/tree-item.directive';\n\n/**\n * @docs-private\n */\nexport const DAFF_TREE_COMPONENTS = <const> [\n DaffTreeComponent,\n DaffTreeItemDirective,\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"daffodil-design-tree.mjs","sources":["../../../libs/design/tree/src/tree/tree-notifier.service.ts","../../../libs/design/tree/src/utils/flatten-tree.ts","../../../libs/design/tree/src/utils/traverse-tree.ts","../../../libs/design/tree/src/utils/hydrate-tree.ts","../../../libs/design/tree/src/tree/tree.component.ts","../../../libs/design/tree/src/tree/tree.component.html","../../../libs/design/tree/src/utils/walk-up.ts","../../../libs/design/tree/src/utils/open-ancestors.ts","../../../libs/design/tree/src/tree-item/tree-item.directive.ts","../../../libs/design/tree/src/tree.module.ts","../../../libs/design/tree/src/utils/transform.ts","../../../libs/design/tree/src/tree.ts","../../../libs/design/tree/src/daffodil-design-tree.ts"],"sourcesContent":["import {\n Inject,\n OnDestroy,\n} from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n/**\n * This service is used by tree items to notify their parent\n * that the tree has to be recomputed.\n *\n * This service is a multiton associated with each tree instance.\n * It follows the same lifecycle as the tree it is associated with.\n */\n@Inject({})\nexport class DaffTreeNotifierService implements OnDestroy {\n\n /**\n * @docs-private\n */\n private _notice: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(true);\n\n /**\n * An observable that emits when the tree needs to be re-computed.\n */\n notice$ = this._notice.asObservable();\n\n /**\n * `notify` can be called to trigger a re-computation of the tree\n * if data has changed unexpectedly and a re-render did not occur.\n *\n * This should be used sparingly. Instead, prefer updating `data` on the tree\n * itself for performance reasons.\n */\n notify() {\n this._notice.next(true);\n }\n\n /**\n * Cleanup when the tree is destroyed.\n *\n * @docs-private\n */\n ngOnDestroy(): void {\n this._notice.complete();\n }\n}\n","import { collect } from '@daffodil/core';\n\nimport { DaffTreeUi } from '../interfaces/tree-ui';\n\n/**\n * A flattened node of a tree. This is used when translating the tree data\n * structure into an array.\n */\nexport interface DaffTreeFlatNode {\n id: number | string;\n title: string;\n url: string;\n level: number;\n hasChildren: boolean;\n data: unknown;\n visible: boolean;\n _treeRef: DaffTreeUi<unknown>;\n}\n\n/**\n * Flatten a DaffTreeUi<unknown> into an array, removing elements from the array\n * below nodes in the tree that are not open.\n */\nexport const flattenTree = (daffUiTree: DaffTreeUi<unknown>, removeNodes: boolean = false): DaffTreeFlatNode[] => {\n const tree: DaffTreeFlatNode[] = [];\n if(!daffUiTree) {\n return [];\n }\n\n let items = [\n {\n ...daffUiTree,\n level: 0,\n data: undefined,\n open: true,\n _treeRef: daffUiTree,\n },\n ];\n\n\n while(items) {\n const el = items.pop();\n if(!el) {\n break;\n }\n\n items = [\n ...items,\n ...el.items.map((i) => ({\n ...i,\n level:\n el.level + 1,\n _treeRef: i,\n })).reverse(),\n ];\n\n const hasClosedAncestor = el._treeRef.parent\n ? collect(el._treeRef.parent, (node) => node.parent ? [node.parent] : [], el.level).reduce(\n (acc, parent) => acc || !parent.open,\n false,\n )\n : false;\n\n if(!removeNodes && el._treeRef.parent) {\n tree.push({\n id: el.id,\n title: el.title,\n level: el.level,\n url : el.url,\n visible: !hasClosedAncestor,\n hasChildren: el.items.length > 0,\n data: undefined,\n _treeRef: el._treeRef,\n });\n } else if(removeNodes && el._treeRef.parent?.open) {\n tree.push({\n id: el.id,\n title: el.title,\n level: el.level,\n url : el.url,\n visible: !hasClosedAncestor,\n hasChildren: el.items.length > 0,\n data: undefined,\n _treeRef: el._treeRef,\n });\n }\n }\n\n return tree;\n};\n","import { RecursiveTreeKeyOfType } from '../interfaces/recursive-key';\n\n/**\n * Traverse the tree, pre-order, right-to-left\n */\nexport const traverse = <T extends Record<any, any>, V extends Record<any, any> = T>(\n tree: T,\n visit: (tree: T) => V,\n key: RecursiveTreeKeyOfType<T>,\n): V => {\n let stack = [\n tree,\n ];\n\n while(stack) {\n const el = stack.pop();\n if(!el) {\n break;\n }\n\n visit(el);\n\n stack = [\n ...stack,\n ...<T[]><unknown>el[key],\n ];\n }\n\n return tree;\n};\n","import { traverse } from './traverse-tree';\nimport { DaffTreeData } from '../interfaces/tree-data';\nimport { DaffTreeUi } from '../interfaces/tree-ui';\n\nexport const daffDataTreeToUiTree = <T>(data: DaffTreeData<T>, parent: DaffTreeUi<T>, open: boolean = false): DaffTreeUi<T> => ({\n id: parent ? `${parent.id}.${data.id ?? data.title}` : (data.id ?? data.title),\n title: data.title,\n url: data.url,\n data: data.data,\n open,\n parent,\n items: [],\n});\n\n/**\n * This function translates the original data given to us by the client\n * to the internal representation of the tree used by the {@link DaffTreeComponent}\n */\nexport const hydrateTree = <T>(data: DaffTreeData<T>, treeId?: string): DaffTreeUi<T> => {\n const root: DaffTreeUi<T> = {\n id: treeId ?? (data.id ?? data.title),\n title: data.title,\n url: data.url,\n data: data.data,\n open: true,\n parent: undefined,\n items: [],\n };\n\n let treeStack = [\n root,\n ];\n\n traverse(data, (el) => {\n const treeEl = treeStack.pop();\n treeEl.items = el.items.map((i) => daffDataTreeToUiTree(i, treeEl, false));\n treeStack = [\n ...treeStack,\n ...treeEl.items,\n ];\n return el;\n }, 'items');\n\n return root;\n};\n","/* eslint-disable quote-props */\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n inject,\n input,\n signal,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { DaffArticleEncapsulatedDirective } from '@daffodil/design';\n\nimport { DaffTreeNotifierService } from './tree-notifier.service';\nimport { DaffTreeData } from '../interfaces/tree-data';\nimport { DaffTreeRenderMode } from '../interfaces/tree-render-mode';\nimport { flattenTree } from '../utils/flatten-tree';\nimport { hydrateTree } from '../utils/hydrate-tree';\n\nlet daffTreeId = 0;\n\n/**\n * The `DaffTreeComponent` allows you to render tree structures as interactable UI.\n *\n * @example Basic use of the tree component\n * ```html\n * <ul daff-tree [tree]=\"tree\">\n * <ng-template #daffTreeItemWithChildrenTpl let-node>\n * <button daffTreeItem [node]=\"node\">{{ node.title }} </button>\n * </ng-template>\n *\n * <ng-template #daffTreeItemTpl let-node>\n * <a daffTreeItem [node]=\"node\" [routerLink]=\"node.url\">{{ node.title }}</a>\n * </ng-template>\n * </ul>\n * ```\n *\n * where `tree` is a {@link DaffTreeData}.\n *\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'ul[daff-tree]',\n templateUrl: './tree.component.html',\n styleUrls: ['./tree.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n DaffTreeNotifierService,\n ],\n hostDirectives: [{\n directive: DaffArticleEncapsulatedDirective,\n }],\n host: {\n 'class': 'daff-tree',\n },\n imports: [\n NgTemplateOutlet,\n ],\n})\nexport class DaffTreeComponent {\n private notifier = inject(DaffTreeNotifierService);\n\n /**\n * The rendering mode for nodes in the tree.\n *\n * Default value is `in-dom`, which means nodes are present in the DOM.\n *\n * Generally, `not-in-dom` is faster as there are less DOM elements to render,\n * but there may be use-cases (like SEO) where having the tree in the DOM\n * is relevant.\n */\n readonly renderMode = input<DaffTreeRenderMode>('in-dom');\n\n /**\n * A unique identifier for the tree instance.\n * Used as a prefix for all node IDs in the tree.\n * If not provided, an auto-incrementing number is used.\n */\n readonly id = input<string>(`${daffTreeId++}`);\n\n /**\n * The tree data you would like to render.\n */\n readonly tree = input<DaffTreeData<unknown>>();\n\n /**\n * The internal tree element.\n */\n private _tree = computed(() => {\n const tree = this.tree();\n return tree ? hydrateTree(tree, this.id()) : undefined;\n });\n\n /**\n * A revision counter incremented by notifications from tree items.\n * Used to trigger re-flattening when tree item state changes.\n */\n readonly _revision = signal(0);\n\n /**\n * @docs-private\n *\n * The flattened tree data. For debugging purposes, you can iterate through this if you want to inspect\n * the resulting array structure we computed to render the tree.\n */\n readonly flatTree = computed(() => {\n this._revision();\n const tree = this._tree();\n return tree ? flattenTree(tree, this.renderMode() === 'not-in-dom') : [];\n });\n\n /**\n * The template used to render tree-nodes that themselves have children.\n *\n * @docs-private\n */\n readonly withChildrenTemplate = contentChild<TemplateRef<any>>('daffTreeItemWithChildrenTpl');\n\n /**\n * The template used to render tree-nodes that have no children.\n *\n * @docs-private\n */\n readonly treeItemTemplate = contentChild<TemplateRef<any>>('daffTreeItemTpl');\n\n constructor() {\n this.notifier.notice$.subscribe(() => {\n this._revision.update((r) => r + 1);\n });\n }\n}\n","@for (node of flatTree(); track node.id) {\n\t<li [attr.aria-level]=\"node.level\" [class.hidden]=\"!node.visible\">\n\t\t<ng-container\n\t\t\t*ngTemplateOutlet=\"node.hasChildren ? withChildrenTemplate() : treeItemTemplate(); context: { $implicit: node }\">\n\t\t</ng-container>\n\t</li>\n}","import { DaffTreeUi } from '../interfaces/tree-ui';\n\n/**\n * Walk up the tree from a leaf to the root applying the\n * visit function at each node along the way.\n */\nexport const walkUp = <T>(\n tree: DaffTreeUi<T>,\n visit: (tree: DaffTreeUi<T>) => DaffTreeUi<T>,\n): DaffTreeUi<T> => {\n while(tree.parent) {\n visit(tree);\n tree = tree.parent;\n }\n\n return tree;\n};\n","import { walkUp } from './walk-up';\nimport { DaffTreeUi } from '../interfaces/tree-ui';\n\n/**\n * Open all ancestor nodes of the given node so that it becomes visible in the tree.\n */\nexport const daffTreeOpenAncestors = <T>(node: DaffTreeUi<T>): void => {\n walkUp(node, (ancestor) => {\n ancestor.open = true;\n return ancestor;\n });\n};\n","/* eslint-disable quote-props */\n\nimport { DOCUMENT } from '@angular/common';\nimport {\n computed,\n Directive,\n effect,\n inject,\n input,\n untracked,\n} from '@angular/core';\n\nimport { DaffTreeNotifierService } from '../tree/tree-notifier.service';\nimport { DaffTreeFlatNode } from '../utils/flatten-tree';\nimport { daffTreeOpenAncestors } from '../utils/open-ancestors';\n\n/**\n * The `DaffTreeItemDirective` marks elements as tree child nodes that interact with the parent tree structure.\n *\n * @example Using a `[daffTreeItem]`\n *\n * `[tree]` is a {@link DaffTreeData} and `[daff-tree]` is a {@link DaffTreeComponent}.\n *\n * ```html\n * <ul daff-tree [tree]=\"tree\">\n * <ng-template #daffTreeItemWithChildrenTpl let-node>\n * <button daffTreeItem [node]=\"node\">{{ node.title }} </button>\n * </ng-template>\n *\n * <ng-template #daffTreeItemTpl let-node>\n * <a daffTreeItem [node]=\"node\" [routerLink]=\"node.url\">{{ node.title }}</a>\n * </ng-template>\n * </ul>\n * ```\n *\n */\n@Directive({\n selector: '[daffTreeItem]',\n host: {\n 'class': 'daff-tree-item',\n '[class.selected]': 'selected()',\n '[class.parent]': 'isParent()',\n '[class.open]': 'open()',\n '[attr.id]': 'id()',\n '[attr.aria-expanded]': 'ariaExpanded()',\n '[style.--depth]': 'depth()',\n '(keydown.escape)': 'onEscape()',\n '(click)': 'onClick()',\n },\n})\nexport class DaffTreeItemDirective {\n private document = inject(DOCUMENT);\n private treeNotifier = inject(DaffTreeNotifierService);\n\n /**\n * The {@link DaffTreeFlatNode} associated with this specific tree item.\n */\n readonly node = input.required<DaffTreeFlatNode>();\n\n /**\n * Whether or not the tree item is the currently active item.\n * Note that there is no requirement that there only be one active item at a time.\n *\n * When a tree item becomes selected, all of its ancestor nodes\n * will be automatically opened so that the selected item is visible.\n */\n readonly selected = input(false);\n\n /**\n * The html `id` of the tree item. This is derived from the {@link DaffTreeData}.\n */\n protected readonly id = computed(() => 'tree-' + this.node().id);\n\n /**\n * A property indicating the depth of the tree.\n */\n protected readonly depth = computed(() => this.node().level);\n\n /**\n * Whether or not this node has children.\n */\n protected readonly isParent = computed(() => this.node().hasChildren);\n\n /**\n * Indicates whether or not the tree is `open`.\n */\n protected readonly open = computed(() => this.node()._treeRef.open);\n\n /**\n * Accessibility property, notifying users about whether\n * or not the tree item is open.\n */\n protected readonly ariaExpanded = computed(() => {\n const node = this.node();\n return node.hasChildren ? (node._treeRef.open ? 'true' : 'false') : undefined;\n });\n\n constructor() {\n effect(() => {\n if(this.selected()) {\n const node = untracked(this.node);\n daffTreeOpenAncestors(node._treeRef);\n this.treeNotifier.notify();\n }\n });\n }\n\n /**\n * @docs-private\n */\n onEscape() {\n this.toggleParent(this.node());\n }\n\n /**\n * @docs-private\n */\n onClick() {\n if(this.node().hasChildren) {\n this.toggleTree(this.node());\n }\n this.treeNotifier.notify();\n }\n\n /**\n * Toggle the open state of the tree's parent.\n */\n toggleParent(node: DaffTreeFlatNode) {\n if(node._treeRef?.parent.parent === undefined) {\n return;\n }\n node._treeRef.parent.open = !node._treeRef.parent.open;\n (<Document>this.document).getElementById('tree-' + node._treeRef.parent.id).focus();\n }\n\n /**\n * Toggle the open state of this specific subtree tree.\n */\n toggleTree(node: DaffTreeFlatNode) {\n if(node._treeRef.open === false) {\n node._treeRef.open = true;\n } else {\n node._treeRef.open = false;\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { DaffTreeComponent } from './tree/tree.component';\nimport { DaffTreeItemDirective } from './tree-item/tree-item.directive';\n\n/**\n * @deprecated in favor of {@link DAFF_TREE_COMPONENTS}. Deprecated in version 0.78.0. Will be removed in version 1.0.0.\n */\n@NgModule({\n imports: [\n CommonModule,\n DaffTreeComponent,\n DaffTreeItemDirective,\n ],\n exports: [\n DaffTreeComponent,\n DaffTreeItemDirective,\n ],\n})\nexport class DaffTreeModule { }\n","import { RecursiveTreeKeyOfType } from '../interfaces/recursive-key';\nimport { DaffTreeData } from '../interfaces/tree-data';\n\n/**\n * Transform a tree-like structure into a {@link DaffTreeData}.\n *\n * @param tree - The data structure representing tree-like data.\n * @param transformFn - A user-supplied function that will transform the user\n * type into a {@link DaffTreeData}\n * @param key - The property of the your tree that indicates which\n * key contains the \"children\" of your tree structure.\n *\n */\nexport const daffTransformTree = <\n\n T extends Record<any,any>,\n V\n>(\n tree: T,\n transformFn: (type: T) => DaffTreeData<V>,\n key: RecursiveTreeKeyOfType<T>,\n): DaffTreeData<V> => {\n\n const transformedTree: DaffTreeData<V> = transformFn(tree);\n\n const queue: { node: T; parent: DaffTreeData<V> }[] = [{ node: tree, parent: transformedTree }];\n\n while (queue.length > 0) {\n const { node, parent } = queue.shift();\n\n const childItems = node[key];\n for (const child of <T[]>childItems) {\n const transformedChild: DaffTreeData<V> = transformFn(child);\n parent.items.push(transformedChild);\n queue.push({ node: child, parent: transformedChild });\n }\n }\n\n return transformedTree;\n};\n","import { DaffTreeComponent } from './tree/tree.component';\nimport { DaffTreeItemDirective } from './tree-item/tree-item.directive';\n\n/**\n * @docs-private\n */\nexport const DAFF_TREE_COMPONENTS = <const> [\n DaffTreeComponent,\n DaffTreeItemDirective,\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1 +1 @@
1
- {"name":"@daffodil/design","nx":{"targets":{"build":{"outputs":["{workspaceRoot}/dist/design"]}}},"version":"0.92.3-rc.1","author":"Graycore LLC","license":"MIT","bugs":{"url":"https://github.com/graycoreio/daffodil/issues"},"homepage":"https://github.com/graycoreio/daffodil","description":"An Angular component library built to support ecommerce applications with accessible UI components and theming. Part of the Daffodil ecommerce framework.","repository":{"type":"git","url":"https://github.com/graycoreio/daffodil"},"peerDependencies":{"@angular/animations":"^20.0.0","@angular/common":"^20.0.0","@angular/core":"^20.0.0","@angular/forms":"^20.0.0","@angular/cdk":"^20.0.0","@daffodil/core":"0.92.3-rc.1","@fortawesome/angular-fontawesome":"^3.0.0","@fortawesome/fontawesome-svg-core":"^7.0.1","@fortawesome/free-solid-svg-icons":"^7.0.1","@fortawesome/free-brands-svg-icons":"^7.0.1","@fortawesome/free-regular-svg-icons":"^7.0.1","modern-normalize":"^3.0.1","rxjs":"^7.0.0"},"optionalDependencies":{"@faker-js/faker":"^10.3.0"},"exports":{"./scss/global":{"sass":"./scss/global.scss"},"./scss/theme":{"sass":"./scss/theme.scss"},"./scss/utilities":{"sass":"./scss/utilities.scss"},"./scss/typography":{"sass":"./scss/typography/_index.scss"},"./package.json":{"default":"./package.json"},".":{"types":"./index.d.ts","default":"./fesm2022/daffodil-design.mjs"},"./accordion":{"types":"./accordion/index.d.ts","default":"./fesm2022/daffodil-design-accordion.mjs"},"./breadcrumb":{"types":"./breadcrumb/index.d.ts","default":"./fesm2022/daffodil-design-breadcrumb.mjs"},"./article":{"types":"./article/index.d.ts","default":"./fesm2022/daffodil-design-article.mjs"},"./button":{"types":"./button/index.d.ts","default":"./fesm2022/daffodil-design-button.mjs"},"./callout":{"types":"./callout/index.d.ts","default":"./fesm2022/daffodil-design-callout.mjs"},"./card":{"types":"./card/index.d.ts","default":"./fesm2022/daffodil-design-card.mjs"},"./checkbox":{"types":"./checkbox/index.d.ts","default":"./fesm2022/daffodil-design-checkbox.mjs"},"./container":{"types":"./container/index.d.ts","default":"./fesm2022/daffodil-design-container.mjs"},"./form":{"types":"./form/index.d.ts","default":"./fesm2022/daffodil-design-form.mjs"},"./form-field":{"types":"./form-field/index.d.ts","default":"./fesm2022/daffodil-design-form-field.mjs"},"./hero":{"types":"./hero/index.d.ts","default":"./fesm2022/daffodil-design-hero.mjs"},"./image":{"types":"./image/index.d.ts","default":"./fesm2022/daffodil-design-image.mjs"},"./input":{"types":"./input/index.d.ts","default":"./fesm2022/daffodil-design-input.mjs"},"./link-set":{"types":"./link-set/index.d.ts","default":"./fesm2022/daffodil-design-link-set.mjs"},"./list":{"types":"./list/index.d.ts","default":"./fesm2022/daffodil-design-list.mjs"},"./loading-icon":{"types":"./loading-icon/index.d.ts","default":"./fesm2022/daffodil-design-loading-icon.mjs"},"./media-gallery":{"types":"./media-gallery/index.d.ts","default":"./fesm2022/daffodil-design-media-gallery.mjs"},"./menu":{"types":"./menu/index.d.ts","default":"./fesm2022/daffodil-design-menu.mjs"},"./modal":{"types":"./modal/index.d.ts","default":"./fesm2022/daffodil-design-modal.mjs"},"./native-select":{"types":"./native-select/index.d.ts","default":"./fesm2022/daffodil-design-native-select.mjs"},"./navbar":{"types":"./navbar/index.d.ts","default":"./fesm2022/daffodil-design-navbar.mjs"},"./notification":{"types":"./notification/index.d.ts","default":"./fesm2022/daffodil-design-notification.mjs"},"./paginator":{"types":"./paginator/index.d.ts","default":"./fesm2022/daffodil-design-paginator.mjs"},"./progress-bar":{"types":"./progress-bar/index.d.ts","default":"./fesm2022/daffodil-design-progress-bar.mjs"},"./quantity-field":{"types":"./quantity-field/index.d.ts","default":"./fesm2022/daffodil-design-quantity-field.mjs"},"./radio":{"types":"./radio/index.d.ts","default":"./fesm2022/daffodil-design-radio.mjs"},"./select":{"types":"./select/index.d.ts","default":"./fesm2022/daffodil-design-select.mjs"},"./sidebar":{"types":"./sidebar/index.d.ts","default":"./fesm2022/daffodil-design-sidebar.mjs"},"./spinner":{"types":"./spinner/index.d.ts","default":"./fesm2022/daffodil-design-spinner.mjs"},"./switch":{"types":"./switch/index.d.ts","default":"./fesm2022/daffodil-design-switch.mjs"},"./tabs":{"types":"./tabs/index.d.ts","default":"./fesm2022/daffodil-design-tabs.mjs"},"./tag":{"types":"./tag/index.d.ts","default":"./fesm2022/daffodil-design-tag.mjs"},"./text-snippet":{"types":"./text-snippet/index.d.ts","default":"./fesm2022/daffodil-design-text-snippet.mjs"},"./textarea":{"types":"./textarea/index.d.ts","default":"./fesm2022/daffodil-design-textarea.mjs"},"./toast":{"types":"./toast/index.d.ts","default":"./fesm2022/daffodil-design-toast.mjs"},"./tree":{"types":"./tree/index.d.ts","default":"./fesm2022/daffodil-design-tree.mjs"},"./youtube-player":{"types":"./youtube-player/index.d.ts","default":"./fesm2022/daffodil-design-youtube-player.mjs"}},"module":"fesm2022/daffodil-design.mjs","typings":"index.d.ts","sideEffects":false,"dependencies":{"tslib":"^2.6.2"}}
1
+ {"name":"@daffodil/design","nx":{"targets":{"build":{"outputs":["{workspaceRoot}/dist/design"]}}},"version":"0.92.3","author":"Graycore LLC","license":"MIT","bugs":{"url":"https://github.com/graycoreio/daffodil/issues"},"homepage":"https://github.com/graycoreio/daffodil","description":"An Angular component library built to support ecommerce applications with accessible UI components and theming. Part of the Daffodil ecommerce framework.","repository":{"type":"git","url":"https://github.com/graycoreio/daffodil"},"peerDependencies":{"@angular/animations":"^20.0.0","@angular/common":"^20.0.0","@angular/core":"^20.0.0","@angular/forms":"^20.0.0","@angular/cdk":"^20.0.0","@daffodil/core":"0.92.3","@fortawesome/angular-fontawesome":"^3.0.0","@fortawesome/fontawesome-svg-core":"^7.0.1","@fortawesome/free-solid-svg-icons":"^7.0.1","@fortawesome/free-brands-svg-icons":"^7.0.1","@fortawesome/free-regular-svg-icons":"^7.0.1","modern-normalize":"^3.0.1","rxjs":"^7.0.0"},"optionalDependencies":{"@faker-js/faker":"^10.3.0"},"exports":{"./scss/global":{"sass":"./scss/global.scss"},"./scss/theme":{"sass":"./scss/theme.scss"},"./scss/utilities":{"sass":"./scss/utilities.scss"},"./scss/typography":{"sass":"./scss/typography/_index.scss"},"./package.json":{"default":"./package.json"},".":{"types":"./index.d.ts","default":"./fesm2022/daffodil-design.mjs"},"./article":{"types":"./article/index.d.ts","default":"./fesm2022/daffodil-design-article.mjs"},"./breadcrumb":{"types":"./breadcrumb/index.d.ts","default":"./fesm2022/daffodil-design-breadcrumb.mjs"},"./accordion":{"types":"./accordion/index.d.ts","default":"./fesm2022/daffodil-design-accordion.mjs"},"./button":{"types":"./button/index.d.ts","default":"./fesm2022/daffodil-design-button.mjs"},"./callout":{"types":"./callout/index.d.ts","default":"./fesm2022/daffodil-design-callout.mjs"},"./card":{"types":"./card/index.d.ts","default":"./fesm2022/daffodil-design-card.mjs"},"./checkbox":{"types":"./checkbox/index.d.ts","default":"./fesm2022/daffodil-design-checkbox.mjs"},"./container":{"types":"./container/index.d.ts","default":"./fesm2022/daffodil-design-container.mjs"},"./form":{"types":"./form/index.d.ts","default":"./fesm2022/daffodil-design-form.mjs"},"./form-field":{"types":"./form-field/index.d.ts","default":"./fesm2022/daffodil-design-form-field.mjs"},"./hero":{"types":"./hero/index.d.ts","default":"./fesm2022/daffodil-design-hero.mjs"},"./image":{"types":"./image/index.d.ts","default":"./fesm2022/daffodil-design-image.mjs"},"./input":{"types":"./input/index.d.ts","default":"./fesm2022/daffodil-design-input.mjs"},"./link-set":{"types":"./link-set/index.d.ts","default":"./fesm2022/daffodil-design-link-set.mjs"},"./list":{"types":"./list/index.d.ts","default":"./fesm2022/daffodil-design-list.mjs"},"./loading-icon":{"types":"./loading-icon/index.d.ts","default":"./fesm2022/daffodil-design-loading-icon.mjs"},"./media-gallery":{"types":"./media-gallery/index.d.ts","default":"./fesm2022/daffodil-design-media-gallery.mjs"},"./menu":{"types":"./menu/index.d.ts","default":"./fesm2022/daffodil-design-menu.mjs"},"./modal":{"types":"./modal/index.d.ts","default":"./fesm2022/daffodil-design-modal.mjs"},"./native-select":{"types":"./native-select/index.d.ts","default":"./fesm2022/daffodil-design-native-select.mjs"},"./navbar":{"types":"./navbar/index.d.ts","default":"./fesm2022/daffodil-design-navbar.mjs"},"./notification":{"types":"./notification/index.d.ts","default":"./fesm2022/daffodil-design-notification.mjs"},"./paginator":{"types":"./paginator/index.d.ts","default":"./fesm2022/daffodil-design-paginator.mjs"},"./progress-bar":{"types":"./progress-bar/index.d.ts","default":"./fesm2022/daffodil-design-progress-bar.mjs"},"./quantity-field":{"types":"./quantity-field/index.d.ts","default":"./fesm2022/daffodil-design-quantity-field.mjs"},"./radio":{"types":"./radio/index.d.ts","default":"./fesm2022/daffodil-design-radio.mjs"},"./select":{"types":"./select/index.d.ts","default":"./fesm2022/daffodil-design-select.mjs"},"./sidebar":{"types":"./sidebar/index.d.ts","default":"./fesm2022/daffodil-design-sidebar.mjs"},"./spinner":{"types":"./spinner/index.d.ts","default":"./fesm2022/daffodil-design-spinner.mjs"},"./switch":{"types":"./switch/index.d.ts","default":"./fesm2022/daffodil-design-switch.mjs"},"./tabs":{"types":"./tabs/index.d.ts","default":"./fesm2022/daffodil-design-tabs.mjs"},"./tag":{"types":"./tag/index.d.ts","default":"./fesm2022/daffodil-design-tag.mjs"},"./text-snippet":{"types":"./text-snippet/index.d.ts","default":"./fesm2022/daffodil-design-text-snippet.mjs"},"./textarea":{"types":"./textarea/index.d.ts","default":"./fesm2022/daffodil-design-textarea.mjs"},"./toast":{"types":"./toast/index.d.ts","default":"./fesm2022/daffodil-design-toast.mjs"},"./tree":{"types":"./tree/index.d.ts","default":"./fesm2022/daffodil-design-tree.mjs"},"./youtube-player":{"types":"./youtube-player/index.d.ts","default":"./fesm2022/daffodil-design-youtube-player.mjs"}},"module":"fesm2022/daffodil-design.mjs","typings":"index.d.ts","sideEffects":false,"dependencies":{"tslib":"^2.6.2"}}