@ni/nimble-components 1.0.0-beta.12 → 1.0.0-beta.123
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +42 -4
- package/dist/esm/button/behaviors.js.map +1 -1
- package/dist/esm/button/index.d.ts +10 -0
- package/dist/esm/button/index.js +19 -10
- package/dist/esm/button/index.js.map +1 -1
- package/dist/esm/button/styles.js +125 -49
- package/dist/esm/button/styles.js.map +1 -1
- package/dist/esm/button/types.d.ts +3 -0
- package/dist/esm/button/types.js +0 -4
- package/dist/esm/button/types.js.map +1 -1
- package/dist/esm/checkbox/index.d.ts +12 -0
- package/dist/esm/checkbox/index.js +18 -0
- package/dist/esm/checkbox/index.js.map +1 -0
- package/dist/esm/checkbox/styles.d.ts +1 -0
- package/dist/esm/checkbox/styles.js +92 -0
- package/dist/esm/checkbox/styles.js.map +1 -0
- package/dist/esm/drawer/animations.d.ts +14 -0
- package/dist/esm/drawer/animations.js +52 -0
- package/dist/esm/drawer/animations.js.map +1 -0
- package/dist/esm/drawer/index.d.ts +43 -0
- package/dist/esm/drawer/index.js +189 -0
- package/dist/esm/drawer/index.js.map +1 -0
- package/dist/esm/drawer/styles.d.ts +1 -0
- package/dist/esm/drawer/styles.js +116 -0
- package/dist/esm/drawer/styles.js.map +1 -0
- package/dist/esm/drawer/types.d.ts +12 -0
- package/dist/esm/drawer/types.js +13 -0
- package/dist/esm/drawer/types.js.map +1 -0
- package/dist/esm/icon-base/index.d.ts +12 -0
- package/dist/esm/icon-base/index.js +22 -0
- package/dist/esm/icon-base/index.js.map +1 -0
- package/dist/esm/icon-base/styles.d.ts +1 -0
- package/dist/esm/icon-base/styles.js +38 -0
- package/dist/esm/icon-base/styles.js.map +1 -0
- package/dist/esm/icon-base/template.d.ts +2 -0
- package/dist/esm/icon-base/template.js +7 -0
- package/dist/esm/icon-base/template.js.map +1 -0
- package/dist/esm/icon-base/types.d.ts +11 -0
- package/dist/esm/icon-base/types.js +8 -0
- package/dist/esm/icon-base/types.js.map +1 -0
- package/dist/esm/icons/access-control.d.ts +12 -0
- package/dist/esm/icons/access-control.js +12 -0
- package/dist/esm/icons/access-control.js.map +1 -0
- package/dist/esm/icons/admin.d.ts +12 -0
- package/dist/esm/icons/admin.js +12 -0
- package/dist/esm/icons/admin.js.map +1 -0
- package/dist/esm/icons/administration.d.ts +12 -0
- package/dist/esm/icons/administration.js +12 -0
- package/dist/esm/icons/administration.js.map +1 -0
- package/dist/esm/icons/all-icons.d.ts +15 -0
- package/dist/esm/icons/all-icons.js +16 -0
- package/dist/esm/icons/all-icons.js.map +1 -0
- package/dist/esm/icons/check.d.ts +12 -0
- package/dist/esm/icons/check.js +12 -0
- package/dist/esm/icons/check.js.map +1 -0
- package/dist/esm/icons/custom-applications.d.ts +12 -0
- package/dist/esm/icons/custom-applications.js +12 -0
- package/dist/esm/icons/custom-applications.js.map +1 -0
- package/dist/esm/icons/delete.d.ts +12 -0
- package/dist/esm/icons/delete.js +12 -0
- package/dist/esm/icons/delete.js.map +1 -0
- package/dist/esm/icons/fail.d.ts +12 -0
- package/dist/esm/icons/fail.js +12 -0
- package/dist/esm/icons/fail.js.map +1 -0
- package/dist/esm/icons/login.d.ts +12 -0
- package/dist/esm/icons/login.js +12 -0
- package/dist/esm/icons/login.js.map +1 -0
- package/dist/esm/icons/logout.d.ts +12 -0
- package/dist/esm/icons/logout.js +12 -0
- package/dist/esm/icons/logout.js.map +1 -0
- package/dist/esm/icons/managed-systems.d.ts +12 -0
- package/dist/esm/icons/managed-systems.js +12 -0
- package/dist/esm/icons/managed-systems.js.map +1 -0
- package/dist/esm/icons/measurement-data-analysis.d.ts +12 -0
- package/dist/esm/icons/measurement-data-analysis.js +12 -0
- package/dist/esm/icons/measurement-data-analysis.js.map +1 -0
- package/dist/esm/icons/settings.d.ts +12 -0
- package/dist/esm/icons/settings.js +12 -0
- package/dist/esm/icons/settings.js.map +1 -0
- package/dist/esm/icons/succeeded.d.ts +12 -0
- package/dist/esm/icons/succeeded.js +12 -0
- package/dist/esm/icons/succeeded.js.map +1 -0
- package/dist/esm/icons/test-insights.d.ts +12 -0
- package/dist/esm/icons/test-insights.js +12 -0
- package/dist/esm/icons/test-insights.js.map +1 -0
- package/dist/esm/icons/utilities.d.ts +12 -0
- package/dist/esm/icons/utilities.js +12 -0
- package/dist/esm/icons/utilities.js.map +1 -0
- package/dist/esm/listbox-option/index.d.ts +15 -0
- package/dist/esm/listbox-option/index.js +31 -0
- package/dist/esm/listbox-option/index.js.map +1 -0
- package/dist/esm/listbox-option/styles.d.ts +1 -0
- package/dist/esm/listbox-option/styles.js +60 -0
- package/dist/esm/listbox-option/styles.js.map +1 -0
- package/dist/esm/menu/index.d.ts +12 -0
- package/dist/esm/menu/index.js +25 -0
- package/dist/esm/menu/index.js.map +1 -0
- package/dist/esm/menu/styles.d.ts +1 -0
- package/dist/esm/menu/styles.js +40 -0
- package/dist/esm/menu/styles.js.map +1 -0
- package/dist/esm/menu-item/index.d.ts +12 -0
- package/dist/esm/menu-item/index.js +25 -0
- package/dist/esm/menu-item/index.js.map +1 -0
- package/dist/esm/menu-item/styles.d.ts +1 -0
- package/dist/esm/menu-item/styles.js +64 -0
- package/dist/esm/menu-item/styles.js.map +1 -0
- package/dist/esm/nimble-components/src/button/behaviors.d.ts +12 -0
- package/dist/esm/nimble-components/src/button/index.d.ts +24 -0
- package/dist/esm/nimble-components/src/button/styles.d.ts +1 -0
- package/dist/esm/nimble-components/src/button/types.d.ts +12 -0
- package/dist/esm/nimble-components/src/checkbox/index.d.ts +12 -0
- package/dist/esm/nimble-components/src/checkbox/styles.d.ts +1 -0
- package/dist/esm/nimble-components/src/drawer/animations.d.ts +14 -0
- package/dist/esm/nimble-components/src/drawer/index.d.ts +43 -0
- package/dist/esm/nimble-components/src/drawer/styles.d.ts +1 -0
- package/dist/esm/nimble-components/src/drawer/types.d.ts +12 -0
- package/dist/esm/nimble-components/src/icon-base/index.d.ts +12 -0
- package/dist/esm/nimble-components/src/icon-base/styles.d.ts +1 -0
- package/dist/esm/nimble-components/src/icon-base/template.d.ts +2 -0
- package/dist/esm/nimble-components/src/icon-base/types.d.ts +11 -0
- package/dist/esm/nimble-components/src/icons/access-control.d.ts +12 -0
- package/dist/esm/nimble-components/src/icons/admin.d.ts +12 -0
- package/dist/esm/nimble-components/src/icons/administration.d.ts +12 -0
- package/dist/esm/nimble-components/src/icons/all-icons.d.ts +15 -0
- package/dist/esm/nimble-components/src/icons/check.d.ts +12 -0
- package/dist/esm/nimble-components/src/icons/custom-applications.d.ts +12 -0
- package/dist/esm/nimble-components/src/icons/delete.d.ts +12 -0
- package/dist/esm/nimble-components/src/icons/fail.d.ts +12 -0
- package/dist/esm/nimble-components/src/icons/login.d.ts +12 -0
- package/dist/esm/nimble-components/src/icons/logout.d.ts +12 -0
- package/dist/esm/nimble-components/src/icons/managed-systems.d.ts +12 -0
- package/dist/esm/nimble-components/src/icons/measurement-data-analysis.d.ts +12 -0
- package/dist/esm/nimble-components/src/icons/settings.d.ts +12 -0
- package/dist/esm/nimble-components/src/icons/succeeded.d.ts +12 -0
- package/dist/esm/nimble-components/src/icons/test-insights.d.ts +12 -0
- package/dist/esm/nimble-components/src/icons/utilities.d.ts +12 -0
- package/dist/esm/nimble-components/src/listbox-option/index.d.ts +15 -0
- package/dist/esm/nimble-components/src/listbox-option/styles.d.ts +1 -0
- package/dist/esm/nimble-components/src/menu/index.d.ts +12 -0
- package/dist/esm/nimble-components/src/menu/styles.d.ts +1 -0
- package/dist/esm/nimble-components/src/menu-item/index.d.ts +12 -0
- package/dist/esm/nimble-components/src/menu-item/styles.d.ts +1 -0
- package/dist/esm/nimble-components/src/number-field/index.d.ts +12 -0
- package/dist/esm/nimble-components/src/number-field/styles.d.ts +1 -0
- package/dist/esm/nimble-components/src/select/index.d.ts +16 -0
- package/dist/esm/nimble-components/src/select/styles.d.ts +1 -0
- package/dist/esm/nimble-components/src/tab/index.d.ts +12 -0
- package/dist/esm/nimble-components/src/tab/styles.d.ts +1 -0
- package/dist/esm/nimble-components/src/tab-panel/index.d.ts +12 -0
- package/dist/esm/nimble-components/src/tab-panel/styles.d.ts +1 -0
- package/dist/esm/nimble-components/src/tabs/index.d.ts +12 -0
- package/dist/esm/nimble-components/src/tabs/styles.d.ts +1 -0
- package/dist/esm/nimble-components/src/tabs-toolbar/index.d.ts +12 -0
- package/dist/esm/nimble-components/src/tabs-toolbar/styles.d.ts +1 -0
- package/dist/esm/nimble-components/src/tabs-toolbar/template.d.ts +1 -0
- package/dist/esm/nimble-components/src/testing/async-helpers.d.ts +10 -0
- package/dist/esm/nimble-components/src/text-field/index.d.ts +12 -0
- package/dist/esm/nimble-components/src/text-field/styles.d.ts +1 -0
- package/dist/esm/nimble-components/src/text-field/types.d.ts +3 -0
- package/dist/esm/nimble-components/src/theme-provider/design-tokens.d.ts +48 -0
- package/dist/esm/nimble-components/src/theme-provider/index.d.ts +17 -0
- package/dist/esm/nimble-components/src/theme-provider/styles.d.ts +1 -0
- package/dist/esm/nimble-components/src/theme-provider/template.d.ts +2 -0
- package/dist/esm/nimble-components/src/theme-provider/types.d.ts +7 -0
- package/dist/esm/nimble-components/src/tree-item/index.d.ts +34 -0
- package/dist/esm/nimble-components/src/tree-item/styles.d.ts +3 -0
- package/dist/esm/nimble-components/src/tree-view/index.d.ts +22 -0
- package/dist/esm/nimble-components/src/tree-view/styles.d.ts +1 -0
- package/dist/esm/nimble-components/src/tree-view/types.d.ts +7 -0
- package/dist/esm/nimble-components/src/utilities/style/focus.d.ts +11 -0
- package/dist/esm/nimble-components/src/utilities/style/prefers-reduced-motion.d.ts +8 -0
- package/dist/esm/number-field/index.d.ts +12 -1
- package/dist/esm/number-field/index.js +11 -8
- package/dist/esm/number-field/index.js.map +1 -1
- package/dist/esm/number-field/styles.js +114 -87
- package/dist/esm/number-field/styles.js.map +1 -1
- package/dist/esm/select/index.d.ts +16 -0
- package/dist/esm/select/index.js +50 -0
- package/dist/esm/select/index.js.map +1 -0
- package/dist/esm/select/styles.d.ts +1 -0
- package/dist/esm/select/styles.js +141 -0
- package/dist/esm/select/styles.js.map +1 -0
- package/dist/esm/tab/index.d.ts +12 -0
- package/dist/esm/tab/index.js +16 -0
- package/dist/esm/tab/index.js.map +1 -0
- package/dist/esm/tab/styles.d.ts +1 -0
- package/dist/esm/tab/styles.js +53 -0
- package/dist/esm/tab/styles.js.map +1 -0
- package/dist/esm/tab-panel/index.d.ts +12 -0
- package/dist/esm/tab-panel/index.js +16 -0
- package/dist/esm/tab-panel/index.js.map +1 -0
- package/dist/esm/tab-panel/styles.d.ts +1 -0
- package/dist/esm/tab-panel/styles.js +15 -0
- package/dist/esm/tab-panel/styles.js.map +1 -0
- package/dist/esm/tabs/index.d.ts +12 -0
- package/dist/esm/tabs/index.js +16 -0
- package/dist/esm/tabs/index.js.map +1 -0
- package/dist/esm/tabs/styles.d.ts +1 -0
- package/dist/esm/tabs/styles.js +43 -0
- package/dist/esm/tabs/styles.js.map +1 -0
- package/dist/esm/tabs-toolbar/index.d.ts +12 -0
- package/dist/esm/tabs-toolbar/index.js +15 -0
- package/dist/esm/tabs-toolbar/index.js.map +1 -0
- package/dist/esm/tabs-toolbar/styles.d.ts +1 -0
- package/dist/esm/tabs-toolbar/styles.js +23 -0
- package/dist/esm/tabs-toolbar/styles.js.map +1 -0
- package/dist/esm/tabs-toolbar/template.d.ts +1 -0
- package/dist/esm/tabs-toolbar/template.js +8 -0
- package/dist/esm/tabs-toolbar/template.js.map +1 -0
- package/dist/esm/testing/async-helpers.d.ts +10 -0
- package/dist/esm/testing/async-helpers.js +12 -0
- package/dist/esm/testing/async-helpers.js.map +1 -0
- package/dist/esm/text-field/index.d.ts +12 -1
- package/dist/esm/text-field/index.js +11 -2
- package/dist/esm/text-field/index.js.map +1 -1
- package/dist/esm/text-field/styles.js +139 -63
- package/dist/esm/text-field/styles.js.map +1 -1
- package/dist/esm/text-field/types.d.ts +3 -0
- package/dist/esm/text-field/types.js +3 -0
- package/dist/esm/text-field/types.js.map +1 -0
- package/dist/esm/theme-provider/design-tokens.d.ts +34 -3
- package/dist/esm/theme-provider/design-tokens.js +128 -15
- package/dist/esm/theme-provider/design-tokens.js.map +1 -1
- package/dist/esm/theme-provider/index.d.ts +17 -1
- package/dist/esm/theme-provider/index.js +18 -32
- package/dist/esm/theme-provider/index.js.map +1 -1
- package/dist/esm/theme-provider/styles.d.ts +1 -0
- package/dist/esm/theme-provider/styles.js +7 -0
- package/dist/esm/theme-provider/styles.js.map +1 -0
- package/dist/esm/theme-provider/template.d.ts +2 -0
- package/dist/esm/theme-provider/template.js +3 -0
- package/dist/esm/theme-provider/template.js.map +1 -0
- package/dist/esm/theme-provider/types.d.ts +7 -0
- package/dist/esm/theme-provider/types.js +8 -0
- package/dist/esm/theme-provider/types.js.map +1 -0
- package/dist/esm/tree-item/index.d.ts +34 -0
- package/dist/esm/tree-item/index.js +117 -0
- package/dist/esm/tree-item/index.js.map +1 -0
- package/dist/esm/tree-item/styles.d.ts +3 -0
- package/dist/esm/tree-item/styles.js +195 -0
- package/dist/esm/tree-item/styles.js.map +1 -0
- package/dist/esm/tree-view/index.d.ts +22 -0
- package/dist/esm/tree-view/index.js +35 -0
- package/dist/esm/tree-view/index.js.map +1 -0
- package/dist/esm/tree-view/styles.d.ts +1 -0
- package/dist/esm/tree-view/styles.js +17 -0
- package/dist/esm/tree-view/styles.js.map +1 -0
- package/dist/esm/tree-view/types.d.ts +7 -0
- package/dist/esm/tree-view/types.js +8 -0
- package/dist/esm/tree-view/types.js.map +1 -0
- package/dist/esm/utilities/style/focus.d.ts +11 -0
- package/dist/esm/utilities/style/focus.js +14 -0
- package/dist/esm/utilities/style/focus.js.map +1 -0
- package/dist/esm/utilities/style/prefers-reduced-motion.d.ts +8 -0
- package/dist/esm/utilities/style/prefers-reduced-motion.js +11 -0
- package/dist/esm/utilities/style/prefers-reduced-motion.js.map +1 -0
- package/package.json +41 -28
- package/dist/esm/button/tests/button.spec.d.ts +0 -1
- package/dist/esm/button/tests/button.spec.js +0 -39
- package/dist/esm/button/tests/button.spec.js.map +0 -1
- package/dist/esm/button/tests/button.stories.d.ts +0 -81
- package/dist/esm/button/tests/button.stories.js +0 -59
- package/dist/esm/button/tests/button.stories.js.map +0 -1
- package/dist/esm/number-field/tests/number-field.stories.d.ts +0 -33
- package/dist/esm/number-field/tests/number-field.stories.js +0 -26
- package/dist/esm/number-field/tests/number-field.stories.js.map +0 -1
- package/dist/esm/shared/icon-font.d.ts +0 -3
- package/dist/esm/shared/icon-font.js +0 -6
- package/dist/esm/shared/icon-font.js.map +0 -1
- package/dist/esm/stories/icons.stories.d.ts +0 -14
- package/dist/esm/stories/icons.stories.js +0 -52
- package/dist/esm/stories/icons.stories.js.map +0 -1
- package/dist/esm/tests/utilities/fixture.d.ts +0 -89
- package/dist/esm/tests/utilities/fixture.js +0 -90
- package/dist/esm/tests/utilities/fixture.js.map +0 -1
- package/dist/esm/tests/utilities/fixture.spec.d.ts +0 -1
- package/dist/esm/tests/utilities/fixture.spec.js +0 -73
- package/dist/esm/tests/utilities/fixture.spec.js.map +0 -1
- package/dist/esm/tests/utilities/setup.d.ts +0 -2
- package/dist/esm/tests/utilities/setup.js +0 -7
- package/dist/esm/tests/utilities/setup.js.map +0 -1
- package/dist/esm/text-field/tests/text-field.stories.d.ts +0 -42
- package/dist/esm/text-field/tests/text-field.stories.js +0 -30
- package/dist/esm/text-field/tests/text-field.stories.js.map +0 -1
- package/dist/esm/theme-provider/themes.d.ts +0 -5
- package/dist/esm/theme-provider/themes.js +0 -7
- package/dist/esm/theme-provider/themes.js.map +0 -1
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export var NimbleTheme;
|
|
2
|
+
(function (NimbleTheme) {
|
|
3
|
+
NimbleTheme["Light"] = "light";
|
|
4
|
+
NimbleTheme["Dark"] = "dark";
|
|
5
|
+
NimbleTheme["Color"] = "color";
|
|
6
|
+
NimbleTheme["LegacyBlue"] = "legacy-blue"; // ⛔️ only for use within SystemLink apps that haven't been updated to brand-aligned controls
|
|
7
|
+
})(NimbleTheme || (NimbleTheme = {}));
|
|
8
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/theme-provider/types.ts"],"names":[],"mappings":"AACA,MAAM,CAAN,IAAY,WAKX;AALD,WAAY,WAAW;IACnB,8BAAe,CAAA;IACf,4BAAa,CAAA;IACb,8BAAe,CAAA;IACf,yCAA0B,CAAA,CAAC,6FAA6F;AAC5H,CAAC,EALW,WAAW,KAAX,WAAW,QAKtB"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { TreeItem as FoundationTreeItem } from '@microsoft/fast-foundation';
|
|
2
|
+
export type { TreeItem };
|
|
3
|
+
declare global {
|
|
4
|
+
interface HTMLElementTagNameMap {
|
|
5
|
+
'nimble-tree-item': TreeItem;
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* A function that returns a nimble-tree-item registration for configuring the component with a DesignSystem.
|
|
10
|
+
* Implements {@link @microsoft/fast-foundation#treeItemTemplate}
|
|
11
|
+
*
|
|
12
|
+
*
|
|
13
|
+
* @public
|
|
14
|
+
* @remarks
|
|
15
|
+
* Generates HTML Element: \<nimble-tree-item\>
|
|
16
|
+
*
|
|
17
|
+
*/
|
|
18
|
+
declare class TreeItem extends FoundationTreeItem {
|
|
19
|
+
private treeView;
|
|
20
|
+
constructor();
|
|
21
|
+
connectedCallback(): void;
|
|
22
|
+
disconnectedCallback(): void;
|
|
23
|
+
private hasChildTreeItems;
|
|
24
|
+
private readonly handleClickOverride;
|
|
25
|
+
private readonly handleSelectedChange;
|
|
26
|
+
private clearTreeGroupSelection;
|
|
27
|
+
private setGroupSelectionOnRootParentTreeItem;
|
|
28
|
+
private getImmediateTreeItem;
|
|
29
|
+
/**
|
|
30
|
+
* This was copied directly from the FAST TreeItem implementation
|
|
31
|
+
* @returns the root tree view
|
|
32
|
+
*/
|
|
33
|
+
private getParentTreeView;
|
|
34
|
+
}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { treeItemTemplate as template, TreeItem as FoundationTreeItem, DesignSystem } from '@microsoft/fast-foundation';
|
|
2
|
+
import { controlsArrowExpanderUp16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';
|
|
3
|
+
import { groupSelectedAttribute, TreeViewSelectionMode } from '../tree-view/types';
|
|
4
|
+
import { styles } from './styles';
|
|
5
|
+
/**
|
|
6
|
+
* A function that returns a nimble-tree-item registration for configuring the component with a DesignSystem.
|
|
7
|
+
* Implements {@link @microsoft/fast-foundation#treeItemTemplate}
|
|
8
|
+
*
|
|
9
|
+
*
|
|
10
|
+
* @public
|
|
11
|
+
* @remarks
|
|
12
|
+
* Generates HTML Element: \<nimble-tree-item\>
|
|
13
|
+
*
|
|
14
|
+
*/
|
|
15
|
+
class TreeItem extends FoundationTreeItem {
|
|
16
|
+
constructor() {
|
|
17
|
+
super();
|
|
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 hasChildren = this.hasChildTreeItems();
|
|
32
|
+
if ((leavesOnly && !hasChildren) || !leavesOnly) {
|
|
33
|
+
// if either a leaf tree item, or in a mode that supports select on groups,
|
|
34
|
+
// process click as a select
|
|
35
|
+
if (!this.selected) {
|
|
36
|
+
this.selected = true;
|
|
37
|
+
this.$emit('selected-change', this);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
// implicit hasChildren && leavesOnly, so only allow expand/collapse, not select
|
|
42
|
+
this.expanded = !this.expanded;
|
|
43
|
+
this.$emit('expanded-change', this);
|
|
44
|
+
}
|
|
45
|
+
// don't allow base class to process click event
|
|
46
|
+
event.stopImmediatePropagation();
|
|
47
|
+
};
|
|
48
|
+
// This prevents the toggling of selected state when a TreeItem is clicked multiple times,
|
|
49
|
+
// which is what the FAST TreeItem allows
|
|
50
|
+
this.handleSelectedChange = (event) => {
|
|
51
|
+
// only process selection
|
|
52
|
+
if (event.target === this && this.selected) {
|
|
53
|
+
this.setGroupSelectionOnRootParentTreeItem(this);
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
this.addEventListener('click', this.handleClickOverride);
|
|
57
|
+
}
|
|
58
|
+
connectedCallback() {
|
|
59
|
+
super.connectedCallback();
|
|
60
|
+
this.addEventListener('selected-change', this.handleSelectedChange);
|
|
61
|
+
this.treeView = this.getParentTreeView();
|
|
62
|
+
if (this.treeView && this.selected) {
|
|
63
|
+
this.setGroupSelectionOnRootParentTreeItem(this);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
disconnectedCallback() {
|
|
67
|
+
super.disconnectedCallback();
|
|
68
|
+
this.removeEventListener('click', this.handleClickOverride);
|
|
69
|
+
this.removeEventListener('selected-change', this.handleSelectedChange);
|
|
70
|
+
this.treeView = null;
|
|
71
|
+
}
|
|
72
|
+
hasChildTreeItems() {
|
|
73
|
+
const treeItemChild = this.querySelector('[role="treeitem"]');
|
|
74
|
+
return treeItemChild !== null;
|
|
75
|
+
}
|
|
76
|
+
clearTreeGroupSelection() {
|
|
77
|
+
const currentGroupSelection = this.treeView?.querySelectorAll(`[${groupSelectedAttribute}]`);
|
|
78
|
+
currentGroupSelection?.forEach(treeItem => treeItem.removeAttribute(groupSelectedAttribute));
|
|
79
|
+
}
|
|
80
|
+
setGroupSelectionOnRootParentTreeItem(treeItem) {
|
|
81
|
+
this.clearTreeGroupSelection();
|
|
82
|
+
let currentItem = treeItem;
|
|
83
|
+
while (currentItem?.parentElement !== this.treeView) {
|
|
84
|
+
currentItem = currentItem?.parentElement;
|
|
85
|
+
}
|
|
86
|
+
if (currentItem) {
|
|
87
|
+
currentItem.setAttribute(groupSelectedAttribute, 'true');
|
|
88
|
+
}
|
|
89
|
+
}
|
|
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
|
+
/**
|
|
99
|
+
* This was copied directly from the FAST TreeItem implementation
|
|
100
|
+
* @returns the root tree view
|
|
101
|
+
*/
|
|
102
|
+
getParentTreeView() {
|
|
103
|
+
const parentNode = this.parentElement.closest("[role='tree']");
|
|
104
|
+
return parentNode;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
const nimbleTreeItem = TreeItem.compose({
|
|
108
|
+
baseName: 'tree-item',
|
|
109
|
+
baseClass: FoundationTreeItem,
|
|
110
|
+
// @ts-expect-error FAST templates have incorrect type, see: https://github.com/microsoft/fast/issues/5047
|
|
111
|
+
template,
|
|
112
|
+
// @ts-expect-error FAST styles have incorrect type, see: https://github.com/microsoft/fast/issues/5047
|
|
113
|
+
styles,
|
|
114
|
+
expandCollapseGlyph: controlsArrowExpanderUp16X16.data
|
|
115
|
+
});
|
|
116
|
+
DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleTreeItem());
|
|
117
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tree-item/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
import { DirectionalStyleSheetBehavior } from '@microsoft/fast-components';
|
|
2
|
+
import { css } from '@microsoft/fast-element';
|
|
3
|
+
import { display, TreeItem } from '@microsoft/fast-foundation';
|
|
4
|
+
import { focusVisible } from '../utilities/style/focus';
|
|
5
|
+
import { contentFontColor, fontFamily, borderColorHover, fillColorSelected, contentFontSize, fillColorHover, fillColorSelectedHover, borderWidth, iconSize } from '../theme-provider/design-tokens';
|
|
6
|
+
import { groupSelectedAttribute } from '../tree-view/types';
|
|
7
|
+
export const styles = (context) => css `
|
|
8
|
+
${display('block')}
|
|
9
|
+
|
|
10
|
+
:host {
|
|
11
|
+
contain: content;
|
|
12
|
+
position: relative;
|
|
13
|
+
outline: none;
|
|
14
|
+
color: ${contentFontColor};
|
|
15
|
+
cursor: pointer;
|
|
16
|
+
font-family: ${fontFamily};
|
|
17
|
+
--tree-item-nested-width: 0;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
${ /* this controls the side border */''}
|
|
21
|
+
:host([${groupSelectedAttribute}])::after {
|
|
22
|
+
background: ${borderColorHover};
|
|
23
|
+
border-radius: 0px;
|
|
24
|
+
content: '';
|
|
25
|
+
display: block;
|
|
26
|
+
position: absolute;
|
|
27
|
+
top: 0px;
|
|
28
|
+
width: calc(${borderWidth} * 2);
|
|
29
|
+
height: calc(${iconSize} * 2);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.positioning-region {
|
|
33
|
+
display: flex;
|
|
34
|
+
position: relative;
|
|
35
|
+
box-sizing: border-box;
|
|
36
|
+
height: calc(${iconSize} * 2);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.positioning-region:hover {
|
|
40
|
+
background: ${fillColorHover};
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
:host(${focusVisible}) .positioning-region {
|
|
44
|
+
box-shadow: 0px 0px 0px ${borderWidth} ${borderColorHover} inset;
|
|
45
|
+
outline: ${borderWidth} solid ${borderColorHover};
|
|
46
|
+
outline-offset: -2px;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
:host([selected]) .positioning-region {
|
|
50
|
+
background: ${fillColorSelected};
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
:host([selected]) .positioning-region:hover {
|
|
54
|
+
background: ${fillColorSelectedHover};
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.positioning-region::before {
|
|
58
|
+
content: '';
|
|
59
|
+
display: block;
|
|
60
|
+
width: var(--tree-item-nested-width);
|
|
61
|
+
flex-shrink: 0;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.content-region {
|
|
65
|
+
display: inline-flex;
|
|
66
|
+
align-items: center;
|
|
67
|
+
white-space: nowrap;
|
|
68
|
+
width: 100%;
|
|
69
|
+
padding-left: 10px;
|
|
70
|
+
font-size: ${contentFontSize};
|
|
71
|
+
user-select: none;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
:host(${focusVisible}) .content-region {
|
|
75
|
+
outline: none;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
:host(.nested) .content-region {
|
|
79
|
+
position: relative;
|
|
80
|
+
margin-inline-start: ${iconSize};
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
:host([disabled]) .content-region {
|
|
84
|
+
opacity: 0.5;
|
|
85
|
+
cursor: not-allowed;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.expand-collapse-button {
|
|
89
|
+
background: none;
|
|
90
|
+
border: none;
|
|
91
|
+
outline: none;
|
|
92
|
+
width: ${iconSize};
|
|
93
|
+
height: ${iconSize};
|
|
94
|
+
padding: 0px;
|
|
95
|
+
justify-content: center;
|
|
96
|
+
align-items: center;
|
|
97
|
+
cursor: pointer;
|
|
98
|
+
margin-left: 10px;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
:host(.nested) .expand-collapse-button {
|
|
102
|
+
position: absolute;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
.expand-collapse-button svg {
|
|
106
|
+
width: ${iconSize};
|
|
107
|
+
height: ${iconSize};
|
|
108
|
+
transition: transform 0.2s ease-in;
|
|
109
|
+
pointer-events: none;
|
|
110
|
+
fill: currentcolor;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
${
|
|
114
|
+
/* this rule keeps children without an icon text aligned with parents */ ''}
|
|
115
|
+
span[part="start"] {
|
|
116
|
+
width: ${iconSize};
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
${
|
|
120
|
+
/* the start class is applied when the corresponding slots is filled */ ''}
|
|
121
|
+
.start {
|
|
122
|
+
display: flex;
|
|
123
|
+
fill: currentcolor;
|
|
124
|
+
margin-inline-start: ${iconSize};
|
|
125
|
+
margin-inline-end: ${iconSize};
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
slot[name='start']::slotted(*) {
|
|
129
|
+
width: ${iconSize};
|
|
130
|
+
height: ${iconSize};
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
::slotted(${context.tagFor(TreeItem)}) {
|
|
134
|
+
--tree-item-nested-width: 1em;
|
|
135
|
+
--expand-collapse-button-nested-width: calc(${iconSize} * -1);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
${
|
|
139
|
+
/* the end class is applied when the corresponding slots is filled */ ''}
|
|
140
|
+
.end {
|
|
141
|
+
display: flex;
|
|
142
|
+
fill: currentcolor;
|
|
143
|
+
margin-inline-start: ${iconSize};
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
.items {
|
|
147
|
+
display: none;
|
|
148
|
+
${
|
|
149
|
+
/*
|
|
150
|
+
* this controls the nested indentation (by affecting .positioning-region::before)
|
|
151
|
+
* it must minimally contain arithmetic with an em and a px value
|
|
152
|
+
* make it larger or shorter by changing the px value
|
|
153
|
+
*/ ''}
|
|
154
|
+
font-size: calc(1em + (${iconSize} * 2));
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
:host([expanded]) .items {
|
|
158
|
+
display: block;
|
|
159
|
+
}
|
|
160
|
+
`
|
|
161
|
+
// prettier-ignore
|
|
162
|
+
.withBehaviors(new DirectionalStyleSheetBehavior(css `
|
|
163
|
+
${ /* ltr styles */''}
|
|
164
|
+
:host(.nested) .expand-collapse-button {
|
|
165
|
+
left: var(
|
|
166
|
+
--expand-collapse-button-nested-width,
|
|
167
|
+
calc(${iconSize} * -1)
|
|
168
|
+
);
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
.expand-collapse-button svg {
|
|
172
|
+
transform: rotate(90deg);
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
:host([expanded]) .expand-collapse-button svg {
|
|
176
|
+
transform: rotate(180deg);
|
|
177
|
+
}
|
|
178
|
+
`, css `
|
|
179
|
+
${ /* rtl styles */''}
|
|
180
|
+
:host(.nested) .expand-collapse-button {
|
|
181
|
+
right: var(
|
|
182
|
+
--expand-collapse-button-nested-width,
|
|
183
|
+
calc(${iconSize} * -1)
|
|
184
|
+
);
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
.expand-collapse-button svg {
|
|
188
|
+
transform: rotate(180deg);
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
:host([expanded]) .expand-collapse-button svg {
|
|
192
|
+
transform: rotate(135deg);
|
|
193
|
+
}
|
|
194
|
+
`));
|
|
195
|
+
//# sourceMappingURL=styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/tree-item/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,EAAE,GAAG,EAAiB,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EACH,OAAO,EAEP,QAAQ,EAEX,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EACH,gBAAgB,EAChB,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,sBAAsB,EACtB,WAAW,EACX,QAAQ,EACX,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,MAAM,CAAC,MAAM,MAAM,GAGE,CAAC,OAAiC,EAAE,EAAE,CAAC,GAAG,CAAA;UACrD,OAAO,CAAC,OAAO,CAAC;;;;;;qBAML,gBAAgB;;2BAEV,UAAU;;;;UAI3B,CAAA,mCAAoC,EAAE;iBAC/B,sBAAsB;0BACb,gBAAgB;;;;;;0BAMhB,WAAW;2BACV,QAAQ;;;;;;;2BAOR,QAAQ;;;;0BAIT,cAAc;;;gBAGxB,YAAY;sCACU,WAAW,IAAI,gBAAgB;uBAC9C,WAAW,UAAU,gBAAgB;;;;;0BAKlC,iBAAiB;;;;0BAIjB,sBAAsB;;;;;;;;;;;;;;;;yBAgBvB,eAAe;;;;gBAIxB,YAAY;;;;;;mCAMO,QAAQ;;;;;;;;;;;;qBAYtB,QAAQ;sBACP,QAAQ;;;;;;;;;;;;;qBAaT,QAAQ;sBACP,QAAQ;;;;;;UAMpB;AACE,wEAAwE,CAAC,EAC7E;;qBAEa,QAAQ;;;UAGnB;AACE,uEAAuE,CAAC,EAC5E;;;;mCAI2B,QAAQ;iCACV,QAAQ;;;;qBAIpB,QAAQ;sBACP,QAAQ;;;oBAGV,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC;;0DAEc,QAAQ;;;UAGxD;AACE,qEAAqE,CAAC,EAC1E;;;;mCAI2B,QAAQ;;;;;cAK7B;AACE;;;;GAIG,CAAC,EACR;qCACyB,QAAQ;;;;;;KAMxC;IACL,kBAAkB;KACb,aAAa,CACV,IAAI,6BAA6B,CAC7B,GAAG,CAAA;sBACO,CAAA,gBAAiB,EAAE;;;;mCAIN,QAAQ;;;;;;;;;;;iBAW1B,EACL,GAAG,CAAA;sBACO,CAAA,gBAAiB,EAAE;;;;mCAIN,QAAQ;;;;;;;;;;;iBAW1B,CACR,CACJ,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { TreeView as FoundationTreeView } from '@microsoft/fast-foundation';
|
|
2
|
+
import { TreeViewSelectionMode } from './types';
|
|
3
|
+
export type { TreeView };
|
|
4
|
+
declare global {
|
|
5
|
+
interface HTMLElementTagNameMap {
|
|
6
|
+
'nimble-tree-view': TreeView;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* A function that returns a nimble-tree-view registration for configuring the component with a DesignSystem.
|
|
11
|
+
* Implements {@link @microsoft/fast-foundation#treeViewTemplate}
|
|
12
|
+
*
|
|
13
|
+
*
|
|
14
|
+
* @public
|
|
15
|
+
* @remarks
|
|
16
|
+
* Generates HTML Element: \<nimble-tree-view\>
|
|
17
|
+
*
|
|
18
|
+
*/
|
|
19
|
+
declare class TreeView extends FoundationTreeView {
|
|
20
|
+
selectionMode: TreeViewSelectionMode;
|
|
21
|
+
connectedCallback(): void;
|
|
22
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { attr } from '@microsoft/fast-element';
|
|
3
|
+
import { treeViewTemplate as template, TreeView as FoundationTreeView, DesignSystem } from '@microsoft/fast-foundation';
|
|
4
|
+
import { styles } from './styles';
|
|
5
|
+
import { TreeViewSelectionMode } from './types';
|
|
6
|
+
/**
|
|
7
|
+
* A function that returns a nimble-tree-view registration for configuring the component with a DesignSystem.
|
|
8
|
+
* Implements {@link @microsoft/fast-foundation#treeViewTemplate}
|
|
9
|
+
*
|
|
10
|
+
*
|
|
11
|
+
* @public
|
|
12
|
+
* @remarks
|
|
13
|
+
* Generates HTML Element: \<nimble-tree-view\>
|
|
14
|
+
*
|
|
15
|
+
*/
|
|
16
|
+
class TreeView extends FoundationTreeView {
|
|
17
|
+
connectedCallback() {
|
|
18
|
+
super.connectedCallback();
|
|
19
|
+
if (!this.selectionMode) {
|
|
20
|
+
this.selectionMode = TreeViewSelectionMode.All;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
__decorate([
|
|
25
|
+
attr({ attribute: 'selection-mode' })
|
|
26
|
+
], TreeView.prototype, "selectionMode", void 0);
|
|
27
|
+
const nimbleTreeView = TreeView.compose({
|
|
28
|
+
baseName: 'tree-view',
|
|
29
|
+
baseClass: FoundationTreeView,
|
|
30
|
+
// @ts-expect-error FAST templates have incorrect type, see: https://github.com/microsoft/fast/issues/5047
|
|
31
|
+
template,
|
|
32
|
+
styles
|
|
33
|
+
});
|
|
34
|
+
DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleTreeView());
|
|
35
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +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;AAUhD;;;;;;;;;GASG;AACH,MAAM,QAAS,SAAQ,kBAAkB;IAI9B,iBAAiB;QACpB,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACrB,IAAI,CAAC,aAAa,GAAG,qBAAqB,CAAC,GAAG,CAAC;SAClD;IACL,CAAC;CACJ;AARG;IADC,IAAI,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;+CACO;AAUjD,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC;IACpC,QAAQ,EAAE,WAAW;IACrB,SAAS,EAAE,kBAAkB;IAC7B,0GAA0G;IAC1G,QAAQ;IACR,MAAM;CACT,CAAC,CAAC;AAEH,YAAY,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const styles: import("@microsoft/fast-element").ElementStyles;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { css } from '@microsoft/fast-element';
|
|
2
|
+
import { display } from '@microsoft/fast-foundation';
|
|
3
|
+
import { focusVisible } from '../utilities/style/focus';
|
|
4
|
+
export const styles = css `
|
|
5
|
+
${display('flex')}
|
|
6
|
+
|
|
7
|
+
:host {
|
|
8
|
+
flex-direction: column;
|
|
9
|
+
align-items: stretch;
|
|
10
|
+
min-width: fit-content;
|
|
11
|
+
font-size: 0;
|
|
12
|
+
}
|
|
13
|
+
:host(${focusVisible}) {
|
|
14
|
+
outline: none;
|
|
15
|
+
}
|
|
16
|
+
`;
|
|
17
|
+
//# sourceMappingURL=styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/tree-view/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,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;MACnB,OAAO,CAAC,MAAM,CAAC;;;;;;;;YAQT,YAAY;;;CAGvB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare const pinnedSelectedAttribute = "pinned-selected";
|
|
2
|
+
export declare const groupSelectedAttribute = "group-selected";
|
|
3
|
+
export declare type TreeViewSelectionModeAttribute = 'all' | 'leaves-only';
|
|
4
|
+
export declare enum TreeViewSelectionMode {
|
|
5
|
+
All = "all",
|
|
6
|
+
LeavesOnly = "leaves-only"
|
|
7
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export const pinnedSelectedAttribute = 'pinned-selected';
|
|
2
|
+
export const groupSelectedAttribute = 'group-selected';
|
|
3
|
+
export var TreeViewSelectionMode;
|
|
4
|
+
(function (TreeViewSelectionMode) {
|
|
5
|
+
TreeViewSelectionMode["All"] = "all";
|
|
6
|
+
TreeViewSelectionMode["LeavesOnly"] = "leaves-only";
|
|
7
|
+
})(TreeViewSelectionMode || (TreeViewSelectionMode = {}));
|
|
8
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/tree-view/types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,uBAAuB,GAAG,iBAAiB,CAAC;AACzD,MAAM,CAAC,MAAM,sBAAsB,GAAG,gBAAgB,CAAC;AAGvD,MAAM,CAAN,IAAY,qBAGX;AAHD,WAAY,qBAAqB;IAC7B,oCAAW,CAAA;IACX,mDAA0B,CAAA;AAC9B,CAAC,EAHW,qBAAqB,KAArB,qBAAqB,QAGhC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file is a workaround for: https://github.com/prettier/prettier/issues/11400
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* The string representing the focus selector to be used. Value
|
|
6
|
+
* will be ":focus-visible" when https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo
|
|
7
|
+
* is supported and ":focus" when it is not.
|
|
8
|
+
*
|
|
9
|
+
* @public
|
|
10
|
+
*/
|
|
11
|
+
export declare const focusVisible: string;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file is a workaround for: https://github.com/prettier/prettier/issues/11400
|
|
3
|
+
*/
|
|
4
|
+
// eslint-disable-next-line
|
|
5
|
+
import { focusVisible as focusVisibleOriginal } from '@microsoft/fast-foundation';
|
|
6
|
+
/**
|
|
7
|
+
* The string representing the focus selector to be used. Value
|
|
8
|
+
* will be ":focus-visible" when https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo
|
|
9
|
+
* is supported and ":focus" when it is not.
|
|
10
|
+
*
|
|
11
|
+
* @public
|
|
12
|
+
*/
|
|
13
|
+
export const focusVisible = `:${focusVisibleOriginal}`;
|
|
14
|
+
//# sourceMappingURL=focus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"focus.js","sourceRoot":"","sources":["../../../../src/utilities/style/focus.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,2BAA2B;AAC3B,OAAO,EAAE,YAAY,IAAI,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,oBAAoB,EAAE,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Singleton utility to watch the prefers-reduced-motion media value
|
|
3
|
+
*/
|
|
4
|
+
export class PrefersReducedMotionWatcher {
|
|
5
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
6
|
+
constructor() {
|
|
7
|
+
this.mediaQuery = window.matchMedia('(prefers-reduced-motion: reduce)');
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
PrefersReducedMotionWatcher.instance = new PrefersReducedMotionWatcher();
|
|
11
|
+
//# sourceMappingURL=prefers-reduced-motion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prefers-reduced-motion.js","sourceRoot":"","sources":["../../../../src/utilities/style/prefers-reduced-motion.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,OAAO,2BAA2B;IAQpC,gEAAgE;IAChE;QALgB,eAAU,GAAmB,MAAM,CAAC,UAAU,CAC1D,kCAAkC,CACrC,CAAC;IAGqB,CAAC;;AARV,oCAAQ,GACtB,IAAI,2BAA2B,EAAE,CAAC"}
|