@ni/nimble-components 7.8.2 → 8.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/dist/all-components-bundle.js +436 -104
  2. package/dist/all-components-bundle.js.map +1 -1
  3. package/dist/all-components-bundle.min.js +657 -637
  4. package/dist/all-components-bundle.min.js.map +1 -1
  5. package/dist/esm/all-components.d.ts +2 -1
  6. package/dist/esm/all-components.js +2 -1
  7. package/dist/esm/all-components.js.map +1 -1
  8. package/dist/esm/{listbox-option → list-option}/index.d.ts +2 -2
  9. package/dist/esm/{listbox-option → list-option}/index.js +4 -4
  10. package/dist/esm/list-option/index.js.map +1 -0
  11. package/dist/esm/{listbox-option → list-option}/styles.d.ts +0 -0
  12. package/dist/esm/{listbox-option → list-option}/styles.js +0 -0
  13. package/dist/esm/list-option/styles.js.map +1 -0
  14. package/dist/esm/nimble-components/src/all-components.d.ts +2 -1
  15. package/dist/esm/nimble-components/src/{listbox-option → list-option}/index.d.ts +2 -2
  16. package/dist/esm/nimble-components/src/{listbox-option → list-option}/styles.d.ts +0 -0
  17. package/dist/esm/nimble-components/src/select/index.d.ts +0 -1
  18. package/dist/esm/nimble-components/src/tree-item/index.d.ts +0 -4
  19. package/dist/esm/nimble-components/src/tree-view/index.d.ts +3 -0
  20. package/dist/esm/select/index.d.ts +0 -1
  21. package/dist/esm/select/index.js +0 -5
  22. package/dist/esm/select/index.js.map +1 -1
  23. package/dist/esm/tree-item/index.d.ts +0 -4
  24. package/dist/esm/tree-item/index.js +2 -45
  25. package/dist/esm/tree-item/index.js.map +1 -1
  26. package/dist/esm/tree-view/index.d.ts +3 -0
  27. package/dist/esm/tree-view/index.js +38 -1
  28. package/dist/esm/tree-view/index.js.map +1 -1
  29. package/package.json +1 -1
  30. package/dist/esm/listbox-option/index.js.map +0 -1
  31. package/dist/esm/listbox-option/styles.js.map +0 -1
@@ -9,7 +9,7 @@ import './button';
9
9
  import './checkbox';
10
10
  import './drawer';
11
11
  import './icons/all-icons';
12
- import './listbox-option';
12
+ import './list-option';
13
13
  import './menu';
14
14
  import './menu-item';
15
15
  import './number-field';
@@ -23,5 +23,6 @@ import './text-area';
23
23
  import './text-field';
24
24
  import './theme-provider';
25
25
  import './toggle-button';
26
+ import './toolbar';
26
27
  import './tree-item';
27
28
  import './tree-view';
@@ -9,7 +9,7 @@ import './button';
9
9
  import './checkbox';
10
10
  import './drawer';
11
11
  import './icons/all-icons';
12
- import './listbox-option';
12
+ import './list-option';
13
13
  import './menu';
14
14
  import './menu-item';
15
15
  import './number-field';
@@ -23,6 +23,7 @@ import './text-area';
23
23
  import './text-field';
24
24
  import './theme-provider';
25
25
  import './toggle-button';
26
+ import './toolbar';
26
27
  import './tree-item';
27
28
  import './tree-view';
28
29
  //# sourceMappingURL=all-components.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"all-components.js","sourceRoot":"","sources":["../../src/all-components.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,cAAc,CAAC;AACtB,OAAO,mBAAmB,CAAC;AAC3B,OAAO,UAAU,CAAC;AAClB,OAAO,YAAY,CAAC;AACpB,OAAO,UAAU,CAAC;AAClB,OAAO,mBAAmB,CAAC;AAC3B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,QAAQ,CAAC;AAChB,OAAO,aAAa,CAAC;AACrB,OAAO,gBAAgB,CAAC;AACxB,OAAO,UAAU,CAAC;AAClB,OAAO,UAAU,CAAC;AAClB,OAAO,OAAO,CAAC;AACf,OAAO,aAAa,CAAC;AACrB,OAAO,QAAQ,CAAC;AAChB,OAAO,gBAAgB,CAAC;AACxB,OAAO,aAAa,CAAC;AACrB,OAAO,cAAc,CAAC;AACtB,OAAO,kBAAkB,CAAC;AAC1B,OAAO,iBAAiB,CAAC;AACzB,OAAO,aAAa,CAAC;AACrB,OAAO,aAAa,CAAC"}
1
+ {"version":3,"file":"all-components.js","sourceRoot":"","sources":["../../src/all-components.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,cAAc,CAAC;AACtB,OAAO,mBAAmB,CAAC;AAC3B,OAAO,UAAU,CAAC;AAClB,OAAO,YAAY,CAAC;AACpB,OAAO,UAAU,CAAC;AAClB,OAAO,mBAAmB,CAAC;AAC3B,OAAO,eAAe,CAAC;AACvB,OAAO,QAAQ,CAAC;AAChB,OAAO,aAAa,CAAC;AACrB,OAAO,gBAAgB,CAAC;AACxB,OAAO,UAAU,CAAC;AAClB,OAAO,UAAU,CAAC;AAClB,OAAO,OAAO,CAAC;AACf,OAAO,aAAa,CAAC;AACrB,OAAO,QAAQ,CAAC;AAChB,OAAO,gBAAgB,CAAC;AACxB,OAAO,aAAa,CAAC;AACrB,OAAO,cAAc,CAAC;AACtB,OAAO,kBAAkB,CAAC;AAC1B,OAAO,iBAAiB,CAAC;AACzB,OAAO,WAAW,CAAC;AACnB,OAAO,aAAa,CAAC;AACrB,OAAO,aAAa,CAAC"}
@@ -1,13 +1,13 @@
1
1
  import { ListboxOption as FoundationListboxOption } from '@microsoft/fast-foundation';
2
2
  declare global {
3
3
  interface HTMLElementTagNameMap {
4
- 'nimble-listbox-option': ListboxOption;
4
+ 'nimble-list-option': ListOption;
5
5
  }
6
6
  }
7
7
  /**
8
8
  * A nimble-styled HTML listbox option
9
9
  */
10
- export declare class ListboxOption extends FoundationListboxOption {
10
+ export declare class ListOption extends FoundationListboxOption {
11
11
  get value(): string;
12
12
  set value(value: string);
13
13
  connectedCallback(): void;
@@ -3,7 +3,7 @@ import { styles } from './styles';
3
3
  /**
4
4
  * A nimble-styled HTML listbox option
5
5
  */
6
- export class ListboxOption extends FoundationListboxOption {
6
+ export class ListOption extends FoundationListboxOption {
7
7
  // Workaround for https://github.com/microsoft/fast/issues/5219
8
8
  get value() {
9
9
  return super.value;
@@ -20,11 +20,11 @@ export class ListboxOption extends FoundationListboxOption {
20
20
  this.setAttribute('value', this.value);
21
21
  }
22
22
  }
23
- const nimbleListboxOption = ListboxOption.compose({
24
- baseName: 'listbox-option',
23
+ const nimbleListOption = ListOption.compose({
24
+ baseName: 'list-option',
25
25
  baseClass: FoundationListboxOption,
26
26
  template,
27
27
  styles
28
28
  });
29
- DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleListboxOption());
29
+ DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleListOption());
30
30
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/list-option/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,YAAY,EACZ,aAAa,IAAI,uBAAuB,EACxC,qBAAqB,IAAI,QAAQ,EACpC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAQlC;;GAEG;AACH,MAAM,OAAO,UAAW,SAAQ,uBAAuB;IACnD,+DAA+D;IAC/D,IAAoB,KAAK;QACrB,OAAO,KAAK,CAAC,KAAK,CAAC;IACvB,CAAC;IAED,IAAoB,KAAK,CAAC,KAAa;QACnC,yBAAyB;QACzB,KAAK,CAAC,KAAK,GAAG,GAAG,KAAK,EAAE,CAAC;QAEzB,IAAI,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE;YAClC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;SAC1C;IACL,CAAC;IAEe,iBAAiB;QAC7B,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;CACJ;AAED,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,CAAC;IACxC,QAAQ,EAAE,aAAa;IACvB,SAAS,EAAE,uBAAuB;IAClC,QAAQ;IACR,MAAM;CACT,CAAC,CAAC;AAEH,YAAY,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/list-option/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,OAAO,EACH,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACtB,cAAc,EACd,QAAQ,EACR,qBAAqB,EACxB,MAAM,iCAAiC,CAAC;AAEzC,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;MACnB,OAAO,CAAC,MAAM,CAAC;;;gBAGL,QAAQ;;;;;;;;;;;;4BAYI,iBAAiB;;;;4BAIjB,sBAAsB;;;;4BAItB,cAAc;;;;;;;;aAQ7B,YAAY;sCACa,gBAAgB;6BACzB,gBAAgB;;;;;;;4BAOjB,iBAAiB;;;;iBAI5B,qBAAqB;;;;;;;;CAQrC,CAAC"}
@@ -9,7 +9,7 @@ import './button';
9
9
  import './checkbox';
10
10
  import './drawer';
11
11
  import './icons/all-icons';
12
- import './listbox-option';
12
+ import './list-option';
13
13
  import './menu';
14
14
  import './menu-item';
15
15
  import './number-field';
@@ -23,5 +23,6 @@ import './text-area';
23
23
  import './text-field';
24
24
  import './theme-provider';
25
25
  import './toggle-button';
26
+ import './toolbar';
26
27
  import './tree-item';
27
28
  import './tree-view';
@@ -1,13 +1,13 @@
1
1
  import { ListboxOption as FoundationListboxOption } from '@microsoft/fast-foundation';
2
2
  declare global {
3
3
  interface HTMLElementTagNameMap {
4
- 'nimble-listbox-option': ListboxOption;
4
+ 'nimble-list-option': ListOption;
5
5
  }
6
6
  }
7
7
  /**
8
8
  * A nimble-styled HTML listbox option
9
9
  */
10
- export declare class ListboxOption extends FoundationListboxOption {
10
+ export declare class ListOption extends FoundationListboxOption {
11
11
  get value(): string;
12
12
  set value(value: string);
13
13
  connectedCallback(): void;
@@ -9,6 +9,5 @@ declare global {
9
9
  */
10
10
  export declare class Select extends FoundationSelect {
11
11
  setPositioning(): void;
12
- connectedCallback(): void;
13
12
  slottedOptionsChanged(prev: Element[], next: Element[]): void;
14
13
  }
@@ -16,15 +16,11 @@ declare global {
16
16
  */
17
17
  export declare class TreeItem extends FoundationTreeItem {
18
18
  private treeView;
19
- constructor();
20
19
  connectedCallback(): void;
21
20
  disconnectedCallback(): void;
22
- private hasChildTreeItems;
23
- private readonly handleClickOverride;
24
21
  private readonly handleSelectedChange;
25
22
  private clearTreeGroupSelection;
26
23
  private setGroupSelectionOnRootParentTreeItem;
27
- private getImmediateTreeItem;
28
24
  /**
29
25
  * This was copied directly from the FAST TreeItem implementation
30
26
  * @returns the root tree view
@@ -17,4 +17,7 @@ declare global {
17
17
  */
18
18
  export declare class TreeView extends FoundationTreeView {
19
19
  selectionMode: TreeViewSelectionMode;
20
+ handleClick(e: Event): boolean;
21
+ private canSelect;
22
+ private itemHasChildren;
20
23
  }
@@ -9,6 +9,5 @@ declare global {
9
9
  */
10
10
  export declare class Select extends FoundationSelect {
11
11
  setPositioning(): void;
12
- connectedCallback(): void;
13
12
  slottedOptionsChanged(prev: Element[], next: Element[]): void;
14
13
  }
@@ -14,11 +14,6 @@ export class Select extends FoundationSelect {
14
14
  }
15
15
  super.setPositioning();
16
16
  }
17
- connectedCallback() {
18
- super.connectedCallback();
19
- // Call setPositioning() after this.forcedPosition is initialized.
20
- this.setPositioning();
21
- }
22
17
  // Workaround for https://github.com/microsoft/fast/issues/5773
23
18
  slottedOptionsChanged(prev, next) {
24
19
  const value = this.value;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/select/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,YAAY,EACZ,MAAM,IAAI,gBAAgB,EAE1B,cAAc,IAAI,QAAQ,EAC7B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,sDAAsD,CAAC;AAC9F,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAQlC;;GAEG;AACH,MAAM,OAAO,MAAO,SAAQ,gBAAgB;IACxC,+DAA+D;IAC/C,cAAc;QAC1B,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE;YACnC,qDAAqD;YACrD,mDAAmD;YACnD,OAAO;SACV;QACD,KAAK,CAAC,cAAc,EAAE,CAAC;IAC3B,CAAC;IAEe,iBAAiB;QAC7B,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,kEAAkE;QAClE,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;IAED,+DAA+D;IAC/C,qBAAqB,CACjC,IAAe,EACf,IAAe;QAEf,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,KAAK,CAAC,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACxC,IAAI,KAAK,EAAE;YACP,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SACtB;IACL,CAAC;CACJ;AAED,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAgB;IAC/C,QAAQ,EAAE,QAAQ;IAClB,SAAS,EAAE,gBAAgB;IAC3B,QAAQ;IACR,MAAM;IACN,SAAS,EAAE,sBAAsB,CAAC,IAAI;CACzC,CAAC,CAAC;AAEH,YAAY,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/select/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,YAAY,EACZ,MAAM,IAAI,gBAAgB,EAE1B,cAAc,IAAI,QAAQ,EAC7B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,sDAAsD,CAAC;AAC9F,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAQlC;;GAEG;AACH,MAAM,OAAO,MAAO,SAAQ,gBAAgB;IACxC,+DAA+D;IAC/C,cAAc;QAC1B,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE;YACnC,qDAAqD;YACrD,mDAAmD;YACnD,OAAO;SACV;QACD,KAAK,CAAC,cAAc,EAAE,CAAC;IAC3B,CAAC;IAED,+DAA+D;IAC/C,qBAAqB,CACjC,IAAe,EACf,IAAe;QAEf,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,KAAK,CAAC,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACxC,IAAI,KAAK,EAAE;YACP,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SACtB;IACL,CAAC;CACJ;AAED,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAgB;IAC/C,QAAQ,EAAE,QAAQ;IAClB,SAAS,EAAE,gBAAgB;IAC3B,QAAQ;IACR,MAAM;IACN,SAAS,EAAE,sBAAsB,CAAC,IAAI;CACzC,CAAC,CAAC;AAEH,YAAY,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC"}
@@ -16,15 +16,11 @@ declare global {
16
16
  */
17
17
  export declare class TreeItem extends FoundationTreeItem {
18
18
  private treeView;
19
- constructor();
20
19
  connectedCallback(): void;
21
20
  disconnectedCallback(): void;
22
- private hasChildTreeItems;
23
- private readonly handleClickOverride;
24
21
  private readonly handleSelectedChange;
25
22
  private clearTreeGroupSelection;
26
23
  private setGroupSelectionOnRootParentTreeItem;
27
- private getImmediateTreeItem;
28
24
  /**
29
25
  * This was copied directly from the FAST TreeItem implementation
30
26
  * @returns the root tree view
@@ -1,6 +1,6 @@
1
1
  import { treeItemTemplate as template, TreeItem as FoundationTreeItem, DesignSystem } from '@microsoft/fast-foundation';
2
2
  import { arrowExpanderUp16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';
3
- import { groupSelectedAttribute, TreeViewSelectionMode } from '../tree-view/types';
3
+ import { groupSelectedAttribute } from '../tree-view/types';
4
4
  import { styles } from './styles';
5
5
  /**
6
6
  * A function that returns a nimble-tree-item registration for configuring the component with a DesignSystem.
@@ -14,37 +14,8 @@ import { styles } from './styles';
14
14
  */
15
15
  export class TreeItem extends FoundationTreeItem {
16
16
  constructor() {
17
- super();
17
+ super(...arguments);
18
18
  this.treeView = null;
19
- this.handleClickOverride = (event) => {
20
- if (event.composedPath().includes(this.expandCollapseButton)) {
21
- // just have base class handle click event for glyph
22
- return;
23
- }
24
- const treeItem = this.getImmediateTreeItem(event.target);
25
- if (treeItem?.disabled || treeItem !== this) {
26
- // don't allow base TreeItem to emit a 'selected-change' event when a disabled item is clicked
27
- event.stopImmediatePropagation();
28
- return;
29
- }
30
- const leavesOnly = this.treeView?.selectionMode === TreeViewSelectionMode.LeavesOnly;
31
- const all = this.treeView?.selectionMode === TreeViewSelectionMode.All;
32
- const hasChildren = this.hasChildTreeItems();
33
- if ((leavesOnly && !hasChildren) || all) {
34
- const selectedTreeItem = this.getImmediateTreeItem(this.treeView?.currentSelected);
35
- // deselect currently selected item if different than this instance
36
- if (selectedTreeItem && this !== this.treeView?.currentSelected) {
37
- selectedTreeItem.selected = false;
38
- }
39
- this.selected = true;
40
- }
41
- else {
42
- // implicit (hasChildren && leavesOnly) || none, so only allow expand/collapse, not select
43
- this.expanded = !this.expanded;
44
- }
45
- // don't allow base class to process click event
46
- event.stopImmediatePropagation();
47
- };
48
19
  // This prevents the toggling of selected state when a TreeItem is clicked multiple times,
49
20
  // which is what the FAST TreeItem allows
50
21
  this.handleSelectedChange = (event) => {
@@ -53,7 +24,6 @@ export class TreeItem extends FoundationTreeItem {
53
24
  this.setGroupSelectionOnRootParentTreeItem(this);
54
25
  }
55
26
  };
56
- this.addEventListener('click', this.handleClickOverride);
57
27
  }
58
28
  connectedCallback() {
59
29
  super.connectedCallback();
@@ -65,14 +35,9 @@ export class TreeItem extends FoundationTreeItem {
65
35
  }
66
36
  disconnectedCallback() {
67
37
  super.disconnectedCallback();
68
- this.removeEventListener('click', this.handleClickOverride);
69
38
  this.removeEventListener('selected-change', this.handleSelectedChange);
70
39
  this.treeView = null;
71
40
  }
72
- hasChildTreeItems() {
73
- const treeItemChild = this.querySelector('[role="treeitem"]');
74
- return treeItemChild !== null;
75
- }
76
41
  clearTreeGroupSelection() {
77
42
  const currentGroupSelection = this.treeView?.querySelectorAll(`[${groupSelectedAttribute}]`);
78
43
  currentGroupSelection?.forEach(treeItem => treeItem.removeAttribute(groupSelectedAttribute));
@@ -87,14 +52,6 @@ export class TreeItem extends FoundationTreeItem {
87
52
  currentItem.setAttribute(groupSelectedAttribute, 'true');
88
53
  }
89
54
  }
90
- getImmediateTreeItem(element) {
91
- let foundElement = element;
92
- while (foundElement
93
- && !(foundElement?.getAttribute('role') === 'treeitem')) {
94
- foundElement = foundElement?.parentElement;
95
- }
96
- return foundElement;
97
- }
98
55
  /**
99
56
  * This was copied directly from the FAST TreeItem implementation
100
57
  * @returns the root tree view
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tree-item/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tree-item/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,gBAAgB,IAAI,QAAQ,EAC5B,QAAQ,IAAI,kBAAkB,EAE9B,YAAY,EACf,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,sDAAsD,CAAC;AAE5F,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAQlC;;;;;;;;;GASG;AACH,MAAM,OAAO,QAAS,SAAQ,kBAAkB;IAAhD;;QACY,aAAQ,GAAoB,IAAI,CAAC;QAiBzC,0FAA0F;QAC1F,yCAAyC;QACxB,yBAAoB,GAAG,CAAC,KAAY,EAAQ,EAAE;YAC3D,yBAAyB;YACzB,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACxC,IAAI,CAAC,qCAAqC,CAAC,IAAI,CAAC,CAAC;aACpD;QACL,CAAC,CAAC;IA8BN,CAAC;IApDmB,iBAAiB;QAC7B,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACpE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzC,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;YAChC,IAAI,CAAC,qCAAqC,CAAC,IAAI,CAAC,CAAC;SACpD;IACL,CAAC;IAEe,oBAAoB;QAChC,KAAK,CAAC,oBAAoB,EAAE,CAAC;QAC7B,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACvE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACzB,CAAC;IAWO,uBAAuB;QAC3B,MAAM,qBAAqB,GAAG,IAAI,CAAC,QAAQ,EAAE,gBAAgB,CACzD,IAAI,sBAAsB,GAAG,CAChC,CAAC;QACF,qBAAqB,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,sBAAsB,CAAC,CAAC,CAAC;IACjG,CAAC;IAEO,qCAAqC,CAAC,QAAqB;QAC/D,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAE/B,IAAI,WAAW,GAAmC,QAAQ,CAAC;QAC3D,OAAO,WAAW,EAAE,aAAa,KAAK,IAAI,CAAC,QAAQ,EAAE;YACjD,WAAW,GAAG,WAAW,EAAE,aAAa,CAAC;SAC5C;QAED,IAAI,WAAW,EAAE;YACb,WAAW,CAAC,YAAY,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC;SAC5D;IACL,CAAC;IAED;;;OAGG;IACK,iBAAiB;QACrB,MAAM,UAAU,GAAmB,IAAI,CAAC,aAAc,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAChF,OAAO,UAAsB,CAAC;IAClC,CAAC;CACJ;AAED,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAkB;IACrD,QAAQ,EAAE,WAAW;IACrB,SAAS,EAAE,kBAAkB;IAC7B,QAAQ;IACR,MAAM;IACN,mBAAmB,EAAE,oBAAoB,CAAC,IAAI;CACjD,CAAC,CAAC;AAEH,YAAY,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC"}
@@ -17,4 +17,7 @@ declare global {
17
17
  */
18
18
  export declare class TreeView extends FoundationTreeView {
19
19
  selectionMode: TreeViewSelectionMode;
20
+ handleClick(e: Event): boolean;
21
+ private canSelect;
22
+ private itemHasChildren;
20
23
  }
@@ -1,6 +1,6 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { attr } from '@microsoft/fast-element';
3
- import { treeViewTemplate as template, TreeView as FoundationTreeView, DesignSystem } from '@microsoft/fast-foundation';
3
+ import { treeViewTemplate as template, TreeView as FoundationTreeView, DesignSystem, isTreeItemElement } from '@microsoft/fast-foundation';
4
4
  import { styles } from './styles';
5
5
  import { TreeViewSelectionMode } from './types';
6
6
  /**
@@ -18,6 +18,43 @@ export class TreeView extends FoundationTreeView {
18
18
  super(...arguments);
19
19
  this.selectionMode = TreeViewSelectionMode.All;
20
20
  }
21
+ handleClick(e) {
22
+ if (e.defaultPrevented) {
23
+ // handled, do nothing
24
+ return false;
25
+ }
26
+ if (!(e.target instanceof Element) || !isTreeItemElement(e.target)) {
27
+ // not a tree item, ignore
28
+ return true;
29
+ }
30
+ const item = e.target;
31
+ if (item.disabled) {
32
+ return false;
33
+ }
34
+ if (this.canSelect(item)) {
35
+ item.selected = true;
36
+ }
37
+ else if (this.itemHasChildren(item)) {
38
+ item.expanded = !item.expanded;
39
+ }
40
+ return true;
41
+ }
42
+ canSelect(item) {
43
+ switch (this.selectionMode) {
44
+ case TreeViewSelectionMode.All:
45
+ return true;
46
+ case TreeViewSelectionMode.None:
47
+ return false;
48
+ case TreeViewSelectionMode.LeavesOnly:
49
+ return !this.itemHasChildren(item);
50
+ default:
51
+ return true;
52
+ }
53
+ }
54
+ itemHasChildren(item) {
55
+ const treeItemChild = item.querySelector('[role="treeitem"]');
56
+ return treeItemChild !== null;
57
+ }
21
58
  }
22
59
  __decorate([
23
60
  attr({ attribute: 'selection-mode' })
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tree-view/index.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EACH,gBAAgB,IAAI,QAAQ,EAC5B,QAAQ,IAAI,kBAAkB,EAC9B,YAAY,EACf,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAQhD;;;;;;;;;GASG;AACH,MAAM,OAAO,QAAS,SAAQ,kBAAkB;IAAhD;;QAEW,kBAAa,GAA0B,qBAAqB,CAAC,GAAG,CAAC;IAC5E,CAAC;CAAA;AADG;IADC,IAAI,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;+CACkC;AAG5E,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC;IACpC,QAAQ,EAAE,WAAW;IACrB,SAAS,EAAE,kBAAkB;IAC7B,QAAQ;IACR,MAAM;CACT,CAAC,CAAC;AAEH,YAAY,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tree-view/index.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EACH,gBAAgB,IAAI,QAAQ,EAC5B,QAAQ,IAAI,kBAAkB,EAC9B,YAAY,EACZ,iBAAiB,EAEpB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAQhD;;;;;;;;;GASG;AACH,MAAM,OAAO,QAAS,SAAQ,kBAAkB;IAAhD;;QAEW,kBAAa,GAA0B,qBAAqB,CAAC,GAAG,CAAC;IA2C5E,CAAC;IAzCmB,WAAW,CAAC,CAAQ;QAChC,IAAI,CAAC,CAAC,gBAAgB,EAAE;YACpB,sBAAsB;YACtB,OAAO,KAAK,CAAC;SAChB;QAED,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,YAAY,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE;YAChE,0BAA0B;YAC1B,OAAO,IAAI,CAAC;SACf;QAED,MAAM,IAAI,GAAa,CAAC,CAAC,MAAkB,CAAC;QAC5C,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,OAAO,KAAK,CAAC;SAChB;QAED,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;SACxB;aAAM,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE;YACnC,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;SAClC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,SAAS,CAAC,IAAc;QAC5B,QAAQ,IAAI,CAAC,aAAa,EAAE;YACxB,KAAK,qBAAqB,CAAC,GAAG;gBAC1B,OAAO,IAAI,CAAC;YAChB,KAAK,qBAAqB,CAAC,IAAI;gBAC3B,OAAO,KAAK,CAAC;YACjB,KAAK,qBAAqB,CAAC,UAAU;gBACjC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YACvC;gBACI,OAAO,IAAI,CAAC;SACnB;IACL,CAAC;IAEO,eAAe,CAAC,IAAc;QAClC,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;QAC9D,OAAO,aAAa,KAAK,IAAI,CAAC;IAClC,CAAC;CACJ;AA3CG;IADC,IAAI,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;+CACkC;AA6C5E,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC;IACpC,QAAQ,EAAE,WAAW;IACrB,SAAS,EAAE,kBAAkB;IAC7B,QAAQ;IACR,MAAM;CACT,CAAC,CAAC;AAEH,YAAY,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ni/nimble-components",
3
- "version": "7.8.2",
3
+ "version": "8.0.1",
4
4
  "description": "Styled web components for the NI Nimble Design System",
5
5
  "scripts": {
6
6
  "build": "npm run generate-icons && npm run build-components && npm run bundle-components && npm run generate-scss && npm run build-storybook",
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/listbox-option/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,YAAY,EACZ,aAAa,IAAI,uBAAuB,EACxC,qBAAqB,IAAI,QAAQ,EACpC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAQlC;;GAEG;AACH,MAAM,OAAO,aAAc,SAAQ,uBAAuB;IACtD,+DAA+D;IAC/D,IAAoB,KAAK;QACrB,OAAO,KAAK,CAAC,KAAK,CAAC;IACvB,CAAC;IAED,IAAoB,KAAK,CAAC,KAAa;QACnC,yBAAyB;QACzB,KAAK,CAAC,KAAK,GAAG,GAAG,KAAK,EAAE,CAAC;QAEzB,IAAI,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE;YAClC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;SAC1C;IACL,CAAC;IAEe,iBAAiB;QAC7B,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;CACJ;AAED,MAAM,mBAAmB,GAAG,aAAa,CAAC,OAAO,CAAC;IAC9C,QAAQ,EAAE,gBAAgB;IAC1B,SAAS,EAAE,uBAAuB;IAClC,QAAQ;IACR,MAAM;CACT,CAAC,CAAC;AAEH,YAAY,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,mBAAmB,EAAE,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/listbox-option/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,OAAO,EACH,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACtB,cAAc,EACd,QAAQ,EACR,qBAAqB,EACxB,MAAM,iCAAiC,CAAC;AAEzC,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;MACnB,OAAO,CAAC,MAAM,CAAC;;;gBAGL,QAAQ;;;;;;;;;;;;4BAYI,iBAAiB;;;;4BAIjB,sBAAsB;;;;4BAItB,cAAc;;;;;;;;aAQ7B,YAAY;sCACa,gBAAgB;6BACzB,gBAAgB;;;;;;;4BAOjB,iBAAiB;;;;iBAI5B,qBAAqB;;;;;;;;CAQrC,CAAC"}