@ni/ok-components 1.4.3 → 1.5.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.
- package/dist/all-components-bundle.js +1296 -473
- package/dist/all-components-bundle.js.map +1 -1
- package/dist/all-components-bundle.min.js +4051 -3798
- package/dist/all-components-bundle.min.js.map +1 -1
- package/dist/custom-elements.json +50 -2
- package/dist/custom-elements.md +4 -3
- package/dist/esm/ts/table-column/breakpoint/cell-view/index.d.ts +3 -0
- package/dist/esm/ts/table-column/breakpoint/cell-view/index.js +35 -0
- package/dist/esm/ts/table-column/breakpoint/cell-view/index.js.map +1 -1
- package/dist/esm/ts/table-column/breakpoint/index.d.ts +15 -1
- package/dist/esm/ts/table-column/breakpoint/index.js +2 -1
- package/dist/esm/ts/table-column/breakpoint/index.js.map +1 -1
- package/dist/esm/ts/table-column/breakpoint/testing/ts-table-column-breakpoint.pageobject.d.ts +1 -0
- package/dist/esm/ts/table-column/breakpoint/testing/ts-table-column-breakpoint.pageobject.js +3 -0
- package/dist/esm/ts/table-column/breakpoint/testing/ts-table-column-breakpoint.pageobject.js.map +1 -1
- package/package.json +3 -3
|
@@ -1900,9 +1900,14 @@
|
|
|
1900
1900
|
"fieldName": "position"
|
|
1901
1901
|
}
|
|
1902
1902
|
],
|
|
1903
|
+
"mixins": [
|
|
1904
|
+
{
|
|
1905
|
+
"name": "mixinPinnableColumnAPI",
|
|
1906
|
+
"package": "@ni/nimble-components/dist/esm/table-column/mixins/pinnable-column"
|
|
1907
|
+
}
|
|
1908
|
+
],
|
|
1903
1909
|
"superclass": {
|
|
1904
|
-
"
|
|
1905
|
-
"package": "@ni/nimble-components/dist/esm/table-column/base"
|
|
1910
|
+
"module": "src/ts/table-column/breakpoint/index.ts"
|
|
1906
1911
|
}
|
|
1907
1912
|
},
|
|
1908
1913
|
{
|
|
@@ -2008,6 +2013,15 @@
|
|
|
2008
2013
|
"privacy": "private",
|
|
2009
2014
|
"default": "false"
|
|
2010
2015
|
},
|
|
2016
|
+
{
|
|
2017
|
+
"kind": "field",
|
|
2018
|
+
"name": "restoreRowMenuOpenOnClose",
|
|
2019
|
+
"type": {
|
|
2020
|
+
"text": "boolean"
|
|
2021
|
+
},
|
|
2022
|
+
"privacy": "private",
|
|
2023
|
+
"default": "false"
|
|
2024
|
+
},
|
|
2011
2025
|
{
|
|
2012
2026
|
"kind": "field",
|
|
2013
2027
|
"name": "tabbableChildren",
|
|
@@ -2061,6 +2075,30 @@
|
|
|
2061
2075
|
}
|
|
2062
2076
|
}
|
|
2063
2077
|
},
|
|
2078
|
+
{
|
|
2079
|
+
"kind": "method",
|
|
2080
|
+
"name": "openChanged",
|
|
2081
|
+
"privacy": "public",
|
|
2082
|
+
"return": {
|
|
2083
|
+
"type": {
|
|
2084
|
+
"text": "void"
|
|
2085
|
+
}
|
|
2086
|
+
},
|
|
2087
|
+
"parameters": [
|
|
2088
|
+
{
|
|
2089
|
+
"name": "_prev",
|
|
2090
|
+
"type": {
|
|
2091
|
+
"text": "boolean"
|
|
2092
|
+
}
|
|
2093
|
+
},
|
|
2094
|
+
{
|
|
2095
|
+
"name": "next",
|
|
2096
|
+
"type": {
|
|
2097
|
+
"text": "boolean"
|
|
2098
|
+
}
|
|
2099
|
+
}
|
|
2100
|
+
]
|
|
2101
|
+
},
|
|
2064
2102
|
{
|
|
2065
2103
|
"kind": "method",
|
|
2066
2104
|
"name": "focusoutHandler",
|
|
@@ -2213,6 +2251,16 @@
|
|
|
2213
2251
|
"privacy": "private",
|
|
2214
2252
|
"readonly": true
|
|
2215
2253
|
},
|
|
2254
|
+
{
|
|
2255
|
+
"kind": "method",
|
|
2256
|
+
"name": "getOwningRow",
|
|
2257
|
+
"privacy": "private",
|
|
2258
|
+
"return": {
|
|
2259
|
+
"type": {
|
|
2260
|
+
"text": "(HTMLElement & { menuOpen: boolean }) | undefined"
|
|
2261
|
+
}
|
|
2262
|
+
}
|
|
2263
|
+
},
|
|
2216
2264
|
{
|
|
2217
2265
|
"kind": "method",
|
|
2218
2266
|
"name": "getRequestedStateFromEvent",
|
package/dist/custom-elements.md
CHANGED
|
@@ -328,9 +328,9 @@
|
|
|
328
328
|
|
|
329
329
|
### Superclass
|
|
330
330
|
|
|
331
|
-
| Name
|
|
332
|
-
|
|
|
333
|
-
|
|
|
331
|
+
| Name | Module | Package |
|
|
332
|
+
| ---- | --------------------------------------- | ------- |
|
|
333
|
+
| | src/ts/table-column/breakpoint/index.ts | |
|
|
334
334
|
|
|
335
335
|
### Fields
|
|
336
336
|
|
|
@@ -385,6 +385,7 @@
|
|
|
385
385
|
| `regionLoadedHandler` | public | | | `void` | |
|
|
386
386
|
| `regionChanged` | public | | `prev: AnchoredRegion \| undefined, _next: AnchoredRegion \| undefined` | `void` | |
|
|
387
387
|
| `buttonChanged` | public | | | `void` | |
|
|
388
|
+
| `openChanged` | public | | `_prev: boolean, next: boolean` | `void` | |
|
|
388
389
|
| `focusoutHandler` | public | | `e: FocusEvent` | `boolean` | |
|
|
389
390
|
| `contextMenuKeyDownHandler` | public | | `e: KeyboardEvent` | `boolean` | |
|
|
390
391
|
| `onContextMenuChange` | public | | `event: Event` | `void` | |
|
|
@@ -25,6 +25,7 @@ export declare class TsTableColumnBreakpointCellView extends TableCellView<TsTab
|
|
|
25
25
|
/** @internal */
|
|
26
26
|
readonly slottedMenus?: HTMLElement[];
|
|
27
27
|
private focusLastItemWhenOpened;
|
|
28
|
+
private restoreRowMenuOpenOnClose;
|
|
28
29
|
/** @internal */
|
|
29
30
|
private readonly breakpointEnabledString;
|
|
30
31
|
/** @internal */
|
|
@@ -57,6 +58,7 @@ export declare class TsTableColumnBreakpointCellView extends TableCellView<TsTab
|
|
|
57
58
|
regionLoadedHandler(): void;
|
|
58
59
|
regionChanged(prev: AnchoredRegion | undefined, _next: AnchoredRegion | undefined): void;
|
|
59
60
|
buttonChanged(): void;
|
|
61
|
+
openChanged(_prev: boolean, next: boolean): void;
|
|
60
62
|
focusoutHandler(e: FocusEvent): boolean;
|
|
61
63
|
contextMenuKeyDownHandler(e: KeyboardEvent): boolean;
|
|
62
64
|
onContextMenuChange(event: Event): void;
|
|
@@ -68,6 +70,7 @@ export declare class TsTableColumnBreakpointCellView extends TableCellView<TsTab
|
|
|
68
70
|
private requestContextMenu;
|
|
69
71
|
private openMenuFromColumnSlot;
|
|
70
72
|
private readonly menuChangeHandler;
|
|
73
|
+
private getOwningRow;
|
|
71
74
|
private getRequestedStateFromEvent;
|
|
72
75
|
}
|
|
73
76
|
export declare const tsTableColumnBreakpointCellViewTag = "ok-ts-table-column-breakpoint-cell-view";
|
|
@@ -17,6 +17,7 @@ export class TsTableColumnBreakpointCellView extends TableCellView {
|
|
|
17
17
|
*/
|
|
18
18
|
this.open = false;
|
|
19
19
|
this.focusLastItemWhenOpened = false;
|
|
20
|
+
this.restoreRowMenuOpenOnClose = false;
|
|
20
21
|
/** @internal */
|
|
21
22
|
this.breakpointEnabledString = 'Breakpoint enabled';
|
|
22
23
|
/** @internal */
|
|
@@ -148,6 +149,21 @@ export class TsTableColumnBreakpointCellView extends TableCellView {
|
|
|
148
149
|
this.region.anchorElement = this.button ?? this;
|
|
149
150
|
}
|
|
150
151
|
}
|
|
152
|
+
openChanged(_prev, next) {
|
|
153
|
+
const row = this.getOwningRow();
|
|
154
|
+
if (!row) {
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
if (next) {
|
|
158
|
+
this.restoreRowMenuOpenOnClose = !row.hasAttribute('menu-open');
|
|
159
|
+
row.menuOpen = true;
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
if (this.restoreRowMenuOpenOnClose) {
|
|
163
|
+
row.menuOpen = false;
|
|
164
|
+
this.restoreRowMenuOpenOnClose = false;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
151
167
|
focusoutHandler(e) {
|
|
152
168
|
if (!this.open) {
|
|
153
169
|
return true;
|
|
@@ -247,6 +263,25 @@ export class TsTableColumnBreakpointCellView extends TableCellView {
|
|
|
247
263
|
this.$emit('cell-view-slots-request', eventDetail);
|
|
248
264
|
this.open = true;
|
|
249
265
|
}
|
|
266
|
+
getOwningRow() {
|
|
267
|
+
const rootNode = this.getRootNode();
|
|
268
|
+
if (!(rootNode instanceof ShadowRoot)) {
|
|
269
|
+
return undefined;
|
|
270
|
+
}
|
|
271
|
+
const tableCell = rootNode.host;
|
|
272
|
+
if (!(tableCell instanceof HTMLElement)) {
|
|
273
|
+
return undefined;
|
|
274
|
+
}
|
|
275
|
+
const rowRootNode = tableCell.getRootNode();
|
|
276
|
+
if (!(rowRootNode instanceof ShadowRoot)) {
|
|
277
|
+
return undefined;
|
|
278
|
+
}
|
|
279
|
+
const tableRow = rowRootNode.host;
|
|
280
|
+
if (!(tableRow instanceof HTMLElement) || tableRow.localName !== 'nimble-table-row') {
|
|
281
|
+
return undefined;
|
|
282
|
+
}
|
|
283
|
+
return tableRow;
|
|
284
|
+
}
|
|
250
285
|
getRequestedStateFromEvent(event) {
|
|
251
286
|
const target = event.target;
|
|
252
287
|
if (!(target instanceof HTMLElement)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/ts/table-column/breakpoint/cell-view/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { DesignSystem } from '@ni/fast-foundation';\nimport { TableCellView } from '@ni/nimble-components/dist/esm/table-column/base/cell-view';\nimport { attr, observable } from '@ni/fast-element';\nimport type { AnchoredRegion } from '@ni/nimble-components/dist/esm/anchored-region';\nimport { MenuButtonPosition, type MenuButtonPosition as BreakpointMenuPosition } from '@ni/nimble-components/dist/esm/menu-button/types';\nimport type { CellViewSlotRequestEventDetail } from '@ni/nimble-components/dist/esm/table/types';\nimport { template } from './template';\nimport { styles } from './styles';\nimport {\n BreakpointState,\n breakpointCellViewMenuSlotName,\n breakpointMenuItemStateAttributeName,\n type BreakpointToggleEventDetail,\n type BreakpointStateChangeRequestedEventDetail\n} from '../types';\nimport type { TsTableColumnBreakpointCellRecord, TsTableColumnBreakpointColumnConfig } from '..';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ok-ts-table-column-breakpoint-cell-view': TsTableColumnBreakpointCellView;\n }\n}\n\n/**\n * Cell view for the breakpoint column that renders a clickable breakpoint indicator.\n */\nexport class TsTableColumnBreakpointCellView extends TableCellView<\n TsTableColumnBreakpointCellRecord,\n TsTableColumnBreakpointColumnConfig\n> {\n private static readonly menuKeyAlias = 'Menu';\n\n private static readonly contextMenuKeyAlias = 'ContextMenu';\n\n /** @internal */\n public button?: HTMLButtonElement;\n\n /**\n * Specifies whether or not the menu is open.\n */\n @attr({ mode: 'boolean' })\n public open = false;\n\n /** @internal */\n @observable\n public readonly region?: AnchoredRegion;\n\n /** @internal */\n @observable\n public readonly slottedMenus?: HTMLElement[];\n\n private focusLastItemWhenOpened = false;\n\n /** @internal */\n @observable\n private readonly breakpointEnabledString = 'Breakpoint enabled';\n\n /** @internal */\n @observable\n private readonly breakpointDisabledString = 'Breakpoint disabled';\n\n /** @internal */\n @observable\n private readonly breakpointHitString = 'Breakpoint hit';\n\n /** @internal */\n @observable\n private readonly breakpointConditionalString = 'Conditional breakpoint';\n\n /** @internal */\n @observable\n private readonly breakpointHitDisabledString = 'Breakpoint hit (disabled)';\n\n /** @internal */\n @observable\n private readonly breakpointAddString = 'Add breakpoint';\n\n /** @internal */\n @observable\n private readonly breakpointRemoveString = 'Remove breakpoint';\n\n /** @internal */\n public get currentState(): BreakpointState {\n const value = this.cellRecord?.value;\n if (value && Object.values(BreakpointState).includes(value as BreakpointState)) {\n return value as BreakpointState;\n }\n return BreakpointState.off;\n }\n\n /** @internal */\n public get tooltipText(): string {\n if (this.currentState === BreakpointState.off) {\n return this.breakpointAddString;\n }\n return this.breakpointRemoveString;\n }\n\n /** @internal */\n public get ariaLabelText(): string {\n switch (this.currentState) {\n case BreakpointState.enabled:\n return this.breakpointEnabledString;\n case BreakpointState.disabled:\n return this.breakpointDisabledString;\n case BreakpointState.hit:\n return this.breakpointHitString;\n case BreakpointState.conditional:\n return this.breakpointConditionalString;\n case BreakpointState.hitDisabled:\n return this.breakpointHitDisabledString;\n default:\n return this.breakpointAddString;\n }\n }\n\n /** @internal */\n public get menuPosition(): BreakpointMenuPosition {\n return this.columnConfig?.position ?? MenuButtonPosition.auto;\n }\n\n public override get tabbableChildren(): HTMLElement[] {\n if (this.button) {\n return [this.button];\n }\n return [];\n }\n\n /** @internal */\n public onButtonClick(event: Event): void {\n event.stopPropagation();\n const oldState = this.currentState;\n const newState = oldState === BreakpointState.off\n ? BreakpointState.enabled\n : BreakpointState.off;\n this.emitToggle(oldState, newState);\n }\n\n /** @internal */\n public onContextMenu(event: Event): void {\n event.preventDefault();\n event.stopPropagation();\n this.requestContextMenu();\n }\n\n /** @internal */\n public onKeyDown(event: KeyboardEvent): boolean {\n if ((event.key === 'F10' && event.shiftKey)\n || event.key === TsTableColumnBreakpointCellView.menuKeyAlias\n || (event.key === TsTableColumnBreakpointCellView.contextMenuKeyAlias)) {\n event.preventDefault();\n event.stopPropagation();\n this.requestContextMenu();\n return false;\n }\n\n if (event.key === 'F9' || ((event.ctrlKey || event.metaKey) && event.key.toLowerCase() === 'b')) {\n event.preventDefault();\n event.stopPropagation();\n this.onButtonClick(event);\n return false;\n }\n\n if (event.key === 'ArrowDown') {\n event.preventDefault();\n event.stopPropagation();\n this.focusLastItemWhenOpened = false;\n this.requestContextMenu();\n return false;\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault();\n event.stopPropagation();\n this.focusLastItemWhenOpened = true;\n this.requestContextMenu();\n return false;\n }\n\n return true;\n }\n\n public regionLoadedHandler(): void {\n if (this.focusLastItemWhenOpened) {\n this.focusLastItemWhenOpened = false;\n this.focusLastMenuItem();\n } else {\n this.focusMenu();\n }\n }\n\n public regionChanged(prev: AnchoredRegion | undefined, _next: AnchoredRegion | undefined): void {\n if (prev) {\n prev.removeEventListener('change', this.menuChangeHandler, { capture: true });\n }\n\n if (this.region) {\n this.region.anchorElement = this.button ?? this;\n this.region.addEventListener('change', this.menuChangeHandler, { capture: true });\n }\n }\n\n public buttonChanged(): void {\n if (this.region) {\n this.region.anchorElement = this.button ?? this;\n }\n }\n\n public focusoutHandler(e: FocusEvent): boolean {\n if (!this.open) {\n return true;\n }\n\n const focusTarget = e.relatedTarget as HTMLElement;\n if (\n !this.contains(focusTarget)\n && !this.region?.contains(focusTarget)\n && !this.getMenu()?.contains(focusTarget)\n ) {\n this.open = false;\n return false;\n }\n\n return true;\n }\n\n public contextMenuKeyDownHandler(e: KeyboardEvent): boolean {\n switch (e.key) {\n case 'Escape':\n this.open = false;\n this.button?.focus();\n return false;\n default:\n return true;\n }\n }\n\n public onContextMenuChange(event: Event): void {\n const requestedState = this.getRequestedStateFromEvent(event);\n if (!requestedState) {\n return;\n }\n\n const detail: BreakpointStateChangeRequestedEventDetail = {\n recordId: this.recordId!,\n requestedState,\n currentState: this.currentState\n };\n this.$emit('breakpoint-column-state-change-requested', detail);\n }\n\n private getMenu(): HTMLElement | undefined {\n if (!this.slottedMenus || this.slottedMenus.length === 0) {\n return undefined;\n }\n\n let currentItem: HTMLElement | undefined = this.slottedMenus[0];\n while (currentItem) {\n if (currentItem.getAttribute('role') === 'menu') {\n return currentItem;\n }\n\n if (this.isSlotElement(currentItem)) {\n const firstNode = currentItem.assignedNodes()[0];\n if (firstNode instanceof HTMLElement) {\n currentItem = firstNode;\n } else {\n currentItem = undefined;\n }\n } else {\n return undefined;\n }\n }\n\n return undefined;\n }\n\n private isSlotElement(\n element: HTMLElement | undefined\n ): element is HTMLSlotElement {\n return element?.nodeName === 'SLOT';\n }\n\n private focusMenu(): void {\n this.getMenu()?.focus();\n }\n\n private focusLastMenuItem(): void {\n const menuItems = this.getMenu()?.querySelectorAll('[role=menuitem]');\n if (menuItems && menuItems.length > 0) {\n const lastMenuItem = menuItems[menuItems.length - 1] as HTMLElement;\n lastMenuItem.focus();\n }\n }\n\n private emitToggle(\n oldState: BreakpointState,\n newState: BreakpointState\n ): void {\n const detail: BreakpointToggleEventDetail = {\n recordId: this.recordId!,\n newState,\n oldState\n };\n this.$emit('breakpoint-column-toggle', detail);\n }\n\n private requestContextMenu(): void {\n this.openMenuFromColumnSlot();\n }\n\n private openMenuFromColumnSlot(): void {\n const configuredSlotName = this.columnConfig?.menuSlot;\n if (!configuredSlotName) {\n return;\n }\n\n const eventDetail: CellViewSlotRequestEventDetail = {\n slots: [\n {\n name: configuredSlotName,\n slot: breakpointCellViewMenuSlotName\n }\n ]\n };\n this.$emit('cell-view-slots-request', eventDetail);\n this.open = true;\n }\n\n private readonly menuChangeHandler = (): void => {\n this.open = false;\n this.button?.focus();\n };\n\n private getRequestedStateFromEvent(event: Event): BreakpointState | undefined {\n const target = event.target;\n if (!(target instanceof HTMLElement)) {\n return undefined;\n }\n\n const stateElement = target.closest(`[${breakpointMenuItemStateAttributeName}]`);\n if (!stateElement) {\n return undefined;\n }\n\n const requestedState = stateElement.getAttribute(breakpointMenuItemStateAttributeName);\n if (requestedState && Object.values(BreakpointState).includes(requestedState as BreakpointState)) {\n return requestedState as BreakpointState;\n }\n\n return undefined;\n }\n}\n\nconst tsTableColumnBreakpointCellView = TsTableColumnBreakpointCellView.compose({\n baseName: 'ts-table-column-breakpoint-cell-view',\n template,\n styles\n});\nDesignSystem.getOrCreate().withPrefix('ok').register(tsTableColumnBreakpointCellView());\nexport const tsTableColumnBreakpointCellViewTag = 'ok-ts-table-column-breakpoint-cell-view';\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/ts/table-column/breakpoint/cell-view/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { DesignSystem } from '@ni/fast-foundation';\nimport { TableCellView } from '@ni/nimble-components/dist/esm/table-column/base/cell-view';\nimport { attr, observable } from '@ni/fast-element';\nimport type { AnchoredRegion } from '@ni/nimble-components/dist/esm/anchored-region';\nimport { MenuButtonPosition, type MenuButtonPosition as BreakpointMenuPosition } from '@ni/nimble-components/dist/esm/menu-button/types';\nimport type { CellViewSlotRequestEventDetail } from '@ni/nimble-components/dist/esm/table/types';\nimport { template } from './template';\nimport { styles } from './styles';\nimport {\n BreakpointState,\n breakpointCellViewMenuSlotName,\n breakpointMenuItemStateAttributeName,\n type BreakpointToggleEventDetail,\n type BreakpointStateChangeRequestedEventDetail\n} from '../types';\nimport type { TsTableColumnBreakpointCellRecord, TsTableColumnBreakpointColumnConfig } from '..';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ok-ts-table-column-breakpoint-cell-view': TsTableColumnBreakpointCellView;\n }\n}\n\n/**\n * Cell view for the breakpoint column that renders a clickable breakpoint indicator.\n */\nexport class TsTableColumnBreakpointCellView extends TableCellView<\n TsTableColumnBreakpointCellRecord,\n TsTableColumnBreakpointColumnConfig\n> {\n private static readonly menuKeyAlias = 'Menu';\n\n private static readonly contextMenuKeyAlias = 'ContextMenu';\n\n /** @internal */\n public button?: HTMLButtonElement;\n\n /**\n * Specifies whether or not the menu is open.\n */\n @attr({ mode: 'boolean' })\n public open = false;\n\n /** @internal */\n @observable\n public readonly region?: AnchoredRegion;\n\n /** @internal */\n @observable\n public readonly slottedMenus?: HTMLElement[];\n\n private focusLastItemWhenOpened = false;\n\n private restoreRowMenuOpenOnClose = false;\n\n /** @internal */\n @observable\n private readonly breakpointEnabledString = 'Breakpoint enabled';\n\n /** @internal */\n @observable\n private readonly breakpointDisabledString = 'Breakpoint disabled';\n\n /** @internal */\n @observable\n private readonly breakpointHitString = 'Breakpoint hit';\n\n /** @internal */\n @observable\n private readonly breakpointConditionalString = 'Conditional breakpoint';\n\n /** @internal */\n @observable\n private readonly breakpointHitDisabledString = 'Breakpoint hit (disabled)';\n\n /** @internal */\n @observable\n private readonly breakpointAddString = 'Add breakpoint';\n\n /** @internal */\n @observable\n private readonly breakpointRemoveString = 'Remove breakpoint';\n\n /** @internal */\n public get currentState(): BreakpointState {\n const value = this.cellRecord?.value;\n if (value && Object.values(BreakpointState).includes(value as BreakpointState)) {\n return value as BreakpointState;\n }\n return BreakpointState.off;\n }\n\n /** @internal */\n public get tooltipText(): string {\n if (this.currentState === BreakpointState.off) {\n return this.breakpointAddString;\n }\n return this.breakpointRemoveString;\n }\n\n /** @internal */\n public get ariaLabelText(): string {\n switch (this.currentState) {\n case BreakpointState.enabled:\n return this.breakpointEnabledString;\n case BreakpointState.disabled:\n return this.breakpointDisabledString;\n case BreakpointState.hit:\n return this.breakpointHitString;\n case BreakpointState.conditional:\n return this.breakpointConditionalString;\n case BreakpointState.hitDisabled:\n return this.breakpointHitDisabledString;\n default:\n return this.breakpointAddString;\n }\n }\n\n /** @internal */\n public get menuPosition(): BreakpointMenuPosition {\n return this.columnConfig?.position ?? MenuButtonPosition.auto;\n }\n\n public override get tabbableChildren(): HTMLElement[] {\n if (this.button) {\n return [this.button];\n }\n return [];\n }\n\n /** @internal */\n public onButtonClick(event: Event): void {\n event.stopPropagation();\n const oldState = this.currentState;\n const newState = oldState === BreakpointState.off\n ? BreakpointState.enabled\n : BreakpointState.off;\n this.emitToggle(oldState, newState);\n }\n\n /** @internal */\n public onContextMenu(event: Event): void {\n event.preventDefault();\n event.stopPropagation();\n this.requestContextMenu();\n }\n\n /** @internal */\n public onKeyDown(event: KeyboardEvent): boolean {\n if ((event.key === 'F10' && event.shiftKey)\n || event.key === TsTableColumnBreakpointCellView.menuKeyAlias\n || (event.key === TsTableColumnBreakpointCellView.contextMenuKeyAlias)) {\n event.preventDefault();\n event.stopPropagation();\n this.requestContextMenu();\n return false;\n }\n\n if (event.key === 'F9' || ((event.ctrlKey || event.metaKey) && event.key.toLowerCase() === 'b')) {\n event.preventDefault();\n event.stopPropagation();\n this.onButtonClick(event);\n return false;\n }\n\n if (event.key === 'ArrowDown') {\n event.preventDefault();\n event.stopPropagation();\n this.focusLastItemWhenOpened = false;\n this.requestContextMenu();\n return false;\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault();\n event.stopPropagation();\n this.focusLastItemWhenOpened = true;\n this.requestContextMenu();\n return false;\n }\n\n return true;\n }\n\n public regionLoadedHandler(): void {\n if (this.focusLastItemWhenOpened) {\n this.focusLastItemWhenOpened = false;\n this.focusLastMenuItem();\n } else {\n this.focusMenu();\n }\n }\n\n public regionChanged(prev: AnchoredRegion | undefined, _next: AnchoredRegion | undefined): void {\n if (prev) {\n prev.removeEventListener('change', this.menuChangeHandler, { capture: true });\n }\n\n if (this.region) {\n this.region.anchorElement = this.button ?? this;\n this.region.addEventListener('change', this.menuChangeHandler, { capture: true });\n }\n }\n\n public buttonChanged(): void {\n if (this.region) {\n this.region.anchorElement = this.button ?? this;\n }\n }\n\n public openChanged(_prev: boolean, next: boolean): void {\n const row = this.getOwningRow();\n if (!row) {\n return;\n }\n\n if (next) {\n this.restoreRowMenuOpenOnClose = !row.hasAttribute('menu-open');\n row.menuOpen = true;\n return;\n }\n\n if (this.restoreRowMenuOpenOnClose) {\n row.menuOpen = false;\n this.restoreRowMenuOpenOnClose = false;\n }\n }\n\n public focusoutHandler(e: FocusEvent): boolean {\n if (!this.open) {\n return true;\n }\n\n const focusTarget = e.relatedTarget as HTMLElement;\n if (\n !this.contains(focusTarget)\n && !this.region?.contains(focusTarget)\n && !this.getMenu()?.contains(focusTarget)\n ) {\n this.open = false;\n return false;\n }\n\n return true;\n }\n\n public contextMenuKeyDownHandler(e: KeyboardEvent): boolean {\n switch (e.key) {\n case 'Escape':\n this.open = false;\n this.button?.focus();\n return false;\n default:\n return true;\n }\n }\n\n public onContextMenuChange(event: Event): void {\n const requestedState = this.getRequestedStateFromEvent(event);\n if (!requestedState) {\n return;\n }\n\n const detail: BreakpointStateChangeRequestedEventDetail = {\n recordId: this.recordId!,\n requestedState,\n currentState: this.currentState\n };\n this.$emit('breakpoint-column-state-change-requested', detail);\n }\n\n private getMenu(): HTMLElement | undefined {\n if (!this.slottedMenus || this.slottedMenus.length === 0) {\n return undefined;\n }\n\n let currentItem: HTMLElement | undefined = this.slottedMenus[0];\n while (currentItem) {\n if (currentItem.getAttribute('role') === 'menu') {\n return currentItem;\n }\n\n if (this.isSlotElement(currentItem)) {\n const firstNode = currentItem.assignedNodes()[0];\n if (firstNode instanceof HTMLElement) {\n currentItem = firstNode;\n } else {\n currentItem = undefined;\n }\n } else {\n return undefined;\n }\n }\n\n return undefined;\n }\n\n private isSlotElement(\n element: HTMLElement | undefined\n ): element is HTMLSlotElement {\n return element?.nodeName === 'SLOT';\n }\n\n private focusMenu(): void {\n this.getMenu()?.focus();\n }\n\n private focusLastMenuItem(): void {\n const menuItems = this.getMenu()?.querySelectorAll('[role=menuitem]');\n if (menuItems && menuItems.length > 0) {\n const lastMenuItem = menuItems[menuItems.length - 1] as HTMLElement;\n lastMenuItem.focus();\n }\n }\n\n private emitToggle(\n oldState: BreakpointState,\n newState: BreakpointState\n ): void {\n const detail: BreakpointToggleEventDetail = {\n recordId: this.recordId!,\n newState,\n oldState\n };\n this.$emit('breakpoint-column-toggle', detail);\n }\n\n private requestContextMenu(): void {\n this.openMenuFromColumnSlot();\n }\n\n private openMenuFromColumnSlot(): void {\n const configuredSlotName = this.columnConfig?.menuSlot;\n if (!configuredSlotName) {\n return;\n }\n\n const eventDetail: CellViewSlotRequestEventDetail = {\n slots: [\n {\n name: configuredSlotName,\n slot: breakpointCellViewMenuSlotName\n }\n ]\n };\n this.$emit('cell-view-slots-request', eventDetail);\n this.open = true;\n }\n\n private readonly menuChangeHandler = (): void => {\n this.open = false;\n this.button?.focus();\n };\n\n private getOwningRow(): (HTMLElement & { menuOpen: boolean }) | undefined {\n const rootNode = this.getRootNode();\n if (!(rootNode instanceof ShadowRoot)) {\n return undefined;\n }\n\n const tableCell = rootNode.host;\n if (!(tableCell instanceof HTMLElement)) {\n return undefined;\n }\n\n const rowRootNode = tableCell.getRootNode();\n if (!(rowRootNode instanceof ShadowRoot)) {\n return undefined;\n }\n\n const tableRow = rowRootNode.host;\n if (!(tableRow instanceof HTMLElement) || tableRow.localName !== 'nimble-table-row') {\n return undefined;\n }\n\n return tableRow as HTMLElement & { menuOpen: boolean };\n }\n\n private getRequestedStateFromEvent(event: Event): BreakpointState | undefined {\n const target = event.target;\n if (!(target instanceof HTMLElement)) {\n return undefined;\n }\n\n const stateElement = target.closest(`[${breakpointMenuItemStateAttributeName}]`);\n if (!stateElement) {\n return undefined;\n }\n\n const requestedState = stateElement.getAttribute(breakpointMenuItemStateAttributeName);\n if (requestedState && Object.values(BreakpointState).includes(requestedState as BreakpointState)) {\n return requestedState as BreakpointState;\n }\n\n return undefined;\n }\n}\n\nconst tsTableColumnBreakpointCellView = TsTableColumnBreakpointCellView.compose({\n baseName: 'ts-table-column-breakpoint-cell-view',\n template,\n styles\n});\nDesignSystem.getOrCreate().withPrefix('ok').register(tsTableColumnBreakpointCellView());\nexport const tsTableColumnBreakpointCellViewTag = 'ok-ts-table-column-breakpoint-cell-view';\n"]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { TableStringField } from '@ni/nimble-components/dist/esm/table/types';
|
|
2
2
|
import type { ColumnInternalsOptions } from '@ni/nimble-components/dist/esm/table-column/base/models/column-internals';
|
|
3
|
+
import { ColumnValidator } from '@ni/nimble-components/dist/esm/table-column/base/models/column-validator';
|
|
3
4
|
import { TableColumn } from '@ni/nimble-components/dist/esm/table-column/base';
|
|
4
5
|
import { type MenuButtonPosition as BreakpointMenuPosition } from '@ni/nimble-components/dist/esm/menu-button/types';
|
|
5
6
|
import { BreakpointState } from './types';
|
|
@@ -13,10 +14,22 @@ declare global {
|
|
|
13
14
|
'ok-ts-table-column-breakpoint': TsTableColumnBreakpoint;
|
|
14
15
|
}
|
|
15
16
|
}
|
|
17
|
+
declare const TsTableColumnBreakpoint_base: (abstract new (...args: any[]) => {
|
|
18
|
+
pinLocation?: import("@ni/nimble-components/dist/esm/table/types").TableColumnPinLocation;
|
|
19
|
+
pinLocationChanged(): void;
|
|
20
|
+
readonly columnInternals: import("@ni/nimble-components/dist/esm/table-column/base/models/column-internals").ColumnInternals<unknown, import("@ni/nimble-components/dist/esm/table-column/base/models/column-validator").ColumnValidator<[]>>;
|
|
21
|
+
}) & ((abstract new () => TableColumn<TsTableColumnBreakpointColumnConfig, ColumnValidator<[]>>) & {
|
|
22
|
+
compose<T extends import("@ni/fast-foundation").FoundationElementDefinition = import("@ni/fast-foundation").FoundationElementDefinition, K extends import("@ni/fast-element").Constructable<import("@ni/fast-foundation").FoundationElement> = import("@ni/fast-element").Constructable<import("@ni/fast-foundation").FoundationElement>>(this: K, elementDefinition: T): (overrideDefinition?: import("@ni/fast-foundation").OverrideFoundationElementDefinition<T>) => import("@ni/fast-foundation").FoundationElementRegistry<T, K>;
|
|
23
|
+
from<TBase extends {
|
|
24
|
+
new (): HTMLElement;
|
|
25
|
+
prototype: HTMLElement;
|
|
26
|
+
}>(BaseType: TBase): new () => InstanceType<TBase> & import("@ni/fast-element").FASTElement;
|
|
27
|
+
define<TType extends Function>(type: TType, nameOrDef?: string | import("@ni/fast-element").PartialFASTElementDefinition): TType;
|
|
28
|
+
});
|
|
16
29
|
/**
|
|
17
30
|
* A table column that displays a breakpoint indicator with toggle functionality.
|
|
18
31
|
*/
|
|
19
|
-
export declare class TsTableColumnBreakpoint extends
|
|
32
|
+
export declare class TsTableColumnBreakpoint extends TsTableColumnBreakpoint_base {
|
|
20
33
|
fieldName?: string;
|
|
21
34
|
menuSlot?: string;
|
|
22
35
|
position: BreakpointMenuPosition;
|
|
@@ -34,3 +47,4 @@ export declare class TsTableColumnBreakpoint extends TableColumn<TsTableColumnBr
|
|
|
34
47
|
private updateColumnConfig;
|
|
35
48
|
}
|
|
36
49
|
export declare const tsTableColumnBreakpointTag = "ok-ts-table-column-breakpoint";
|
|
50
|
+
export {};
|
|
@@ -6,6 +6,7 @@ import { ColumnValidator } from '@ni/nimble-components/dist/esm/table-column/bas
|
|
|
6
6
|
import { TableColumn } from '@ni/nimble-components/dist/esm/table-column/base';
|
|
7
7
|
import { styles } from '@ni/nimble-components/dist/esm/table-column/base/styles';
|
|
8
8
|
import { MenuButtonPosition } from '@ni/nimble-components/dist/esm/menu-button/types';
|
|
9
|
+
import { mixinPinnableColumnAPI } from '@ni/nimble-components/dist/esm/table-column/mixins/pinnable-column';
|
|
9
10
|
import { BreakpointState } from './types';
|
|
10
11
|
import { breakpointCellViewMenuSlotName } from './types';
|
|
11
12
|
import { tsTableColumnBreakpointCellViewTag } from './cell-view';
|
|
@@ -13,7 +14,7 @@ import { template } from './template';
|
|
|
13
14
|
/**
|
|
14
15
|
* A table column that displays a breakpoint indicator with toggle functionality.
|
|
15
16
|
*/
|
|
16
|
-
export class TsTableColumnBreakpoint extends TableColumn {
|
|
17
|
+
export class TsTableColumnBreakpoint extends mixinPinnableColumnAPI((TableColumn)) {
|
|
17
18
|
constructor() {
|
|
18
19
|
super();
|
|
19
20
|
this.position = MenuButtonPosition.auto;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/ts/table-column/breakpoint/index.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAGxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,wDAAwD,CAAC;AAC/F,OAAO,EAAE,eAAe,EAAE,MAAM,0EAA0E,CAAC;AAC3G,OAAO,EAAE,WAAW,EAAE,MAAM,kDAAkD,CAAC;AAC/E,OAAO,EAAE,MAAM,EAAE,MAAM,yDAAyD,CAAC;AAEjF,OAAO,EAAE,kBAAkB,EAAqD,MAAM,kDAAkD,CAAC;AACzI,OAAO,EACH,eAAe,EAGlB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,8BAA8B,EAAE,MAAM,SAAS,CAAC;AACzD,OAAO,EAAE,kCAAkC,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAetC;;GAEG;AACH,MAAM,OAAO,uBAAwB,SAAQ,WAAgD;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/ts/table-column/breakpoint/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { DesignSystem } from '@ni/fast-foundation';\nimport { attr } from '@ni/fast-element';\nimport type { TableStringField } from '@ni/nimble-components/dist/esm/table/types';\nimport type { ColumnInternalsOptions } from '@ni/nimble-components/dist/esm/table-column/base/models/column-internals';\nimport { singleIconColumnWidth } from '@ni/nimble-components/dist/esm/table-column/base/types';\nimport { ColumnValidator } from '@ni/nimble-components/dist/esm/table-column/base/models/column-validator';\nimport { TableColumn } from '@ni/nimble-components/dist/esm/table-column/base';\nimport { styles } from '@ni/nimble-components/dist/esm/table-column/base/styles';\nimport type { DelegatedEventEventDetails } from '@ni/nimble-components/dist/esm/table-column/base/types';\nimport { MenuButtonPosition, type MenuButtonPosition as BreakpointMenuPosition } from '@ni/nimble-components/dist/esm/menu-button/types';\nimport { mixinPinnableColumnAPI } from '@ni/nimble-components/dist/esm/table-column/mixins/pinnable-column';\nimport {\n BreakpointState,\n type BreakpointToggleEventDetail,\n type BreakpointStateChangeRequestedEventDetail\n} from './types';\nimport { breakpointCellViewMenuSlotName } from './types';\nimport { tsTableColumnBreakpointCellViewTag } from './cell-view';\nimport { template } from './template';\n\nexport type TsTableColumnBreakpointCellRecord = TableStringField<'value'>;\n\nexport interface TsTableColumnBreakpointColumnConfig {\n menuSlot?: string;\n position?: BreakpointMenuPosition;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ok-ts-table-column-breakpoint': TsTableColumnBreakpoint;\n }\n}\n\n/**\n * A table column that displays a breakpoint indicator with toggle functionality.\n */\nexport class TsTableColumnBreakpoint extends mixinPinnableColumnAPI(\n TableColumn<TsTableColumnBreakpointColumnConfig>\n) {\n @attr({ attribute: 'field-name' })\n public fieldName?: string;\n\n @attr({ attribute: 'menu-slot' })\n public menuSlot?: string;\n\n @attr\n public position: BreakpointMenuPosition = MenuButtonPosition.auto;\n\n public constructor() {\n super();\n // Breakpoint columns are icon-only and should remain fixed-size and non-resizable.\n this.columnInternals.resizingDisabled = true;\n this.columnInternals.pixelWidth = singleIconColumnWidth;\n this.columnInternals.minPixelWidth = singleIconColumnWidth;\n }\n\n /** @internal */\n public onDelegatedEvent(e: Event): void {\n e.stopImmediatePropagation();\n\n const event = e as CustomEvent<DelegatedEventEventDetails>;\n\n if (event.detail.originalEvent.type === 'breakpoint-column-toggle') {\n const originalEvent = event.detail.originalEvent as CustomEvent<BreakpointToggleEventDetail>;\n const detail: BreakpointToggleEventDetail = {\n ...originalEvent.detail,\n recordId: event.detail.recordId\n };\n this.$emit('breakpoint-column-toggle', detail);\n } else if (event.detail.originalEvent.type === 'breakpoint-column-state-change-requested') {\n const originalEvent = event.detail.originalEvent as CustomEvent<BreakpointStateChangeRequestedEventDetail>;\n const detail: BreakpointStateChangeRequestedEventDetail = {\n ...originalEvent.detail,\n recordId: event.detail.recordId\n };\n this.$emit('breakpoint-column-state-change-requested', detail);\n }\n }\n\n /**\n * Programmatically requests a breakpoint state change for a record.\n */\n public requestBreakpointStateChange(\n recordId: string,\n currentState: BreakpointState,\n requestedState: BreakpointState\n ): void {\n const detail: BreakpointStateChangeRequestedEventDetail = {\n recordId,\n currentState,\n requestedState\n };\n this.$emit('breakpoint-column-state-change-requested', detail);\n }\n\n protected override getColumnInternalsOptions(): ColumnInternalsOptions {\n return {\n cellRecordFieldNames: ['value'],\n cellViewTag: tsTableColumnBreakpointCellViewTag,\n delegatedEvents: ['breakpoint-column-toggle', 'breakpoint-column-state-change-requested'],\n slotNames: [breakpointCellViewMenuSlotName],\n validator: new ColumnValidator<[]>([])\n };\n }\n\n protected fieldNameChanged(): void {\n this.columnInternals.dataRecordFieldNames = [this.fieldName];\n this.columnInternals.operandDataRecordFieldName = this.fieldName;\n }\n\n protected menuSlotChanged(): void {\n this.updateColumnConfig();\n }\n\n protected positionChanged(): void {\n this.updateColumnConfig();\n }\n\n private updateColumnConfig(): void {\n this.columnInternals.columnConfig = {\n menuSlot: this.menuSlot,\n position: this.position\n };\n }\n}\n\nconst tsTableColumnBreakpoint = TsTableColumnBreakpoint.compose({\n baseName: 'ts-table-column-breakpoint',\n template,\n styles\n});\n\nDesignSystem.getOrCreate()\n .withPrefix('ok')\n .register(tsTableColumnBreakpoint());\nexport const tsTableColumnBreakpointTag = 'ok-ts-table-column-breakpoint';\n"]}
|
package/dist/esm/ts/table-column/breakpoint/testing/ts-table-column-breakpoint.pageobject.d.ts
CHANGED
|
@@ -16,6 +16,7 @@ export declare class TsTableColumnBreakpointPageObject<T extends TableRecord> {
|
|
|
16
16
|
getTooltipText(rowIndex: number, columnIndex: number): string;
|
|
17
17
|
getTabbableChildrenCount(rowIndex: number, columnIndex: number): number;
|
|
18
18
|
isContextMenuOpen(rowIndex: number, columnIndex: number): boolean;
|
|
19
|
+
isRowMenuOpen(rowIndex: number): boolean;
|
|
19
20
|
pressContextMenuKey(rowIndex: number, columnIndex: number, eventInit: KeyboardEventInit): boolean;
|
|
20
21
|
private getRenderedCellView;
|
|
21
22
|
private getBreakpointButton;
|
package/dist/esm/ts/table-column/breakpoint/testing/ts-table-column-breakpoint.pageobject.js
CHANGED
|
@@ -42,6 +42,9 @@ export class TsTableColumnBreakpointPageObject {
|
|
|
42
42
|
isContextMenuOpen(rowIndex, columnIndex) {
|
|
43
43
|
return this.getContextMenuRegion(rowIndex, columnIndex) !== null;
|
|
44
44
|
}
|
|
45
|
+
isRowMenuOpen(rowIndex) {
|
|
46
|
+
return this.tablePageObject.getRow(rowIndex).hasAttribute('menu-open');
|
|
47
|
+
}
|
|
45
48
|
pressContextMenuKey(rowIndex, columnIndex, eventInit) {
|
|
46
49
|
const region = this.getContextMenuRegion(rowIndex, columnIndex);
|
|
47
50
|
if (!region) {
|
package/dist/esm/ts/table-column/breakpoint/testing/ts-table-column-breakpoint.pageobject.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ts-table-column-breakpoint.pageobject.js","sourceRoot":"","sources":["../../../../../../src/ts/table-column/breakpoint/testing/ts-table-column-breakpoint.pageobject.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAC;AACnF,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,+BAA+B,EAAE,MAAM,cAAc,CAAC;AAE/D;;GAEG;AACH,MAAM,OAAO,iCAAiC;IAC1C,YAAoC,eAAmC;QAAnC,oBAAe,GAAf,eAAe,CAAoB;IAAG,CAAC;IAEpE,qBAAqB,CAAC,QAAgB,EAAE,WAAmB;QAC9D,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,KAAK,EAAE,CAAC;IAC5D,CAAC;IAEM,0BAA0B,CAAC,QAAgB,EAAE,WAAmB;QACnE,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,aAAa,CACzD,IAAI,UAAU,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CACnD,CAAC;IACN,CAAC;IAEM,qBAAqB,CAAC,QAAgB,EAAE,WAAmB;QAC9D,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,KAAK,EAAE,CAAC;IAC5D,CAAC;IAEM,wBAAwB,CAC3B,QAAgB,EAChB,WAAmB,EACnB,SAA4B;QAE5B,OAAO,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,aAAa,CAChE,IAAI,aAAa,CAAC,SAAS,EAAE;YACzB,OAAO,EAAE,IAAI;YACb,GAAG,SAAS;SACf,CAAC,CACL,CAAC;IACN,CAAC;IAEM,0BAA0B,CAC7B,QAAgB,EAChB,WAAmB;QAEnB,MAAM,OAAO,GAAG,IAAI;aACf,mBAAmB,CAAC,QAAQ,EAAE,WAAW,CAAC;aAC1C,aAAa,CAAC,YAAY,CAAC;YAC5B,EAAE,OAAO,CAAC;QACd,OAAO,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC;IAC9C,CAAC;IAEM,eAAe,CAAC,QAAgB,EAAE,WAAmB;QACxD,OAAO,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,YAAY,CAAC;IACxE,CAAC;IAEM,cAAc,CAAC,QAAgB,EAAE,WAAmB;QACvD,OAAO,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,WAAW,CAAC;IACvE,CAAC;IAEM,wBAAwB,CAAC,QAAgB,EAAE,WAAmB;QACjE,OAAO,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC;IACnF,CAAC;IAEM,iBAAiB,CAAC,QAAgB,EAAE,WAAmB;QAC1D,OAAO,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,WAAW,CAAC,KAAK,IAAI,CAAC;IACrE,CAAC;IAEM,mBAAmB,CACtB,QAAgB,EAChB,WAAmB,EACnB,SAA4B;QAE5B,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAChE,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CACX,iCAAiC,QAAQ,IAAI,WAAW,EAAE,CAC7D,CAAC;QACN,CAAC;QAED,OAAO,MAAM,CAAC,aAAa,CACvB,IAAI,aAAa,CAAC,SAAS,EAAE;YACzB,OAAO,EAAE,IAAI;YACb,GAAG,SAAS;SACf,CAAC,CACL,CAAC;IACN,CAAC;IAEO,mBAAmB,CACvB,QAAgB,EAChB,WAAmB;QAEnB,OAAO,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAC3C,QAAQ,EACR,WAAW,CACqB,CAAC;IACzC,CAAC;IAEO,mBAAmB,CACvB,QAAgB,EAChB,WAAmB;QAEnB,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CACnC,QAAQ,EACR,WAAW,CACd,CAAC,UAAW,CAAC,aAAa,CAAoB,oBAAoB,CAAC,CAAC;QACrE,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CACX,sCAAsC,QAAQ,IAAI,WAAW,EAAE,CAClE,CAAC;QACN,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,oBAAoB,CACxB,QAAgB,EAChB,WAAmB;QAEnB,OAAO,IAAI,CAAC,mBAAmB,CAC3B,QAAQ,EACR,WAAW,CACd,CAAC,UAAW,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;IACnD,CAAC;CACJ","sourcesContent":["import type { TablePageObject } from '@ni/nimble-components/dist/esm/table/testing/table.pageobject';\nimport type { TableRecord } from '@ni/nimble-components/dist/esm/table/types';\nimport { anchoredRegionTag } from '@ni/nimble-components/dist/esm/anchored-region';\nimport { BreakpointState } from '../types';\nimport { TsTableColumnBreakpointCellView } from '../cell-view';\n\n/**\n * Page object for ts-table-column-breakpoint tests.\n */\nexport class TsTableColumnBreakpointPageObject<T extends TableRecord> {\n public constructor(private readonly tablePageObject: TablePageObject<T>) {}\n\n public clickBreakpointButton(rowIndex: number, columnIndex: number): void {\n this.getBreakpointButton(rowIndex, columnIndex).click();\n }\n\n public rightClickBreakpointButton(rowIndex: number, columnIndex: number): void {\n this.getBreakpointButton(rowIndex, columnIndex).dispatchEvent(\n new MouseEvent('contextmenu', { bubbles: true })\n );\n }\n\n public focusBreakpointButton(rowIndex: number, columnIndex: number): void {\n this.getBreakpointButton(rowIndex, columnIndex).focus();\n }\n\n public pressBreakpointButtonKey(\n rowIndex: number,\n columnIndex: number,\n eventInit: KeyboardEventInit\n ): boolean {\n return this.getBreakpointButton(rowIndex, columnIndex).dispatchEvent(\n new KeyboardEvent('keydown', {\n bubbles: true,\n ...eventInit\n })\n );\n }\n\n public getBreakpointButtonIconTag(\n rowIndex: number,\n columnIndex: number\n ): string {\n const iconTag = this\n .getBreakpointButton(rowIndex, columnIndex)\n .querySelector(':scope > *')\n ?.tagName;\n return iconTag?.toLocaleLowerCase() ?? '';\n }\n\n public getCurrentState(rowIndex: number, columnIndex: number): BreakpointState {\n return this.getRenderedCellView(rowIndex, columnIndex).currentState;\n }\n\n public getTooltipText(rowIndex: number, columnIndex: number): string {\n return this.getRenderedCellView(rowIndex, columnIndex).tooltipText;\n }\n\n public getTabbableChildrenCount(rowIndex: number, columnIndex: number): number {\n return this.getRenderedCellView(rowIndex, columnIndex).tabbableChildren.length;\n }\n\n public isContextMenuOpen(rowIndex: number, columnIndex: number): boolean {\n return this.getContextMenuRegion(rowIndex, columnIndex) !== null;\n }\n\n public pressContextMenuKey(\n rowIndex: number,\n columnIndex: number,\n eventInit: KeyboardEventInit\n ): boolean {\n const region = this.getContextMenuRegion(rowIndex, columnIndex);\n if (!region) {\n throw new Error(\n `Expected context menu at cell ${rowIndex},${columnIndex}`\n );\n }\n\n return region.dispatchEvent(\n new KeyboardEvent('keydown', {\n bubbles: true,\n ...eventInit\n })\n );\n }\n\n private getRenderedCellView(\n rowIndex: number,\n columnIndex: number\n ): TsTableColumnBreakpointCellView {\n return this.tablePageObject.getRenderedCellView(\n rowIndex,\n columnIndex\n ) as TsTableColumnBreakpointCellView;\n }\n\n private getBreakpointButton(\n rowIndex: number,\n columnIndex: number\n ): HTMLButtonElement {\n const button = this.getRenderedCellView(\n rowIndex,\n columnIndex\n ).shadowRoot!.querySelector<HTMLButtonElement>('.breakpoint-button');\n if (!button) {\n throw new Error(\n `Expected breakpoint button at cell ${rowIndex},${columnIndex}`\n );\n }\n return button;\n }\n\n private getContextMenuRegion(\n rowIndex: number,\n columnIndex: number\n ): HTMLElement | null {\n return this.getRenderedCellView(\n rowIndex,\n columnIndex\n ).shadowRoot!.querySelector(anchoredRegionTag);\n }\n}"]}
|
|
1
|
+
{"version":3,"file":"ts-table-column-breakpoint.pageobject.js","sourceRoot":"","sources":["../../../../../../src/ts/table-column/breakpoint/testing/ts-table-column-breakpoint.pageobject.ts"],"names":[],"mappings":"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","sourcesContent":["import type { TablePageObject } from '@ni/nimble-components/dist/esm/table/testing/table.pageobject';\nimport type { TableRecord } from '@ni/nimble-components/dist/esm/table/types';\nimport { anchoredRegionTag } from '@ni/nimble-components/dist/esm/anchored-region';\nimport { BreakpointState } from '../types';\nimport { TsTableColumnBreakpointCellView } from '../cell-view';\n\n/**\n * Page object for ts-table-column-breakpoint tests.\n */\nexport class TsTableColumnBreakpointPageObject<T extends TableRecord> {\n public constructor(private readonly tablePageObject: TablePageObject<T>) {}\n\n public clickBreakpointButton(rowIndex: number, columnIndex: number): void {\n this.getBreakpointButton(rowIndex, columnIndex).click();\n }\n\n public rightClickBreakpointButton(rowIndex: number, columnIndex: number): void {\n this.getBreakpointButton(rowIndex, columnIndex).dispatchEvent(\n new MouseEvent('contextmenu', { bubbles: true })\n );\n }\n\n public focusBreakpointButton(rowIndex: number, columnIndex: number): void {\n this.getBreakpointButton(rowIndex, columnIndex).focus();\n }\n\n public pressBreakpointButtonKey(\n rowIndex: number,\n columnIndex: number,\n eventInit: KeyboardEventInit\n ): boolean {\n return this.getBreakpointButton(rowIndex, columnIndex).dispatchEvent(\n new KeyboardEvent('keydown', {\n bubbles: true,\n ...eventInit\n })\n );\n }\n\n public getBreakpointButtonIconTag(\n rowIndex: number,\n columnIndex: number\n ): string {\n const iconTag = this\n .getBreakpointButton(rowIndex, columnIndex)\n .querySelector(':scope > *')\n ?.tagName;\n return iconTag?.toLocaleLowerCase() ?? '';\n }\n\n public getCurrentState(rowIndex: number, columnIndex: number): BreakpointState {\n return this.getRenderedCellView(rowIndex, columnIndex).currentState;\n }\n\n public getTooltipText(rowIndex: number, columnIndex: number): string {\n return this.getRenderedCellView(rowIndex, columnIndex).tooltipText;\n }\n\n public getTabbableChildrenCount(rowIndex: number, columnIndex: number): number {\n return this.getRenderedCellView(rowIndex, columnIndex).tabbableChildren.length;\n }\n\n public isContextMenuOpen(rowIndex: number, columnIndex: number): boolean {\n return this.getContextMenuRegion(rowIndex, columnIndex) !== null;\n }\n\n public isRowMenuOpen(rowIndex: number): boolean {\n return this.tablePageObject.getRow(rowIndex).hasAttribute('menu-open');\n }\n\n public pressContextMenuKey(\n rowIndex: number,\n columnIndex: number,\n eventInit: KeyboardEventInit\n ): boolean {\n const region = this.getContextMenuRegion(rowIndex, columnIndex);\n if (!region) {\n throw new Error(\n `Expected context menu at cell ${rowIndex},${columnIndex}`\n );\n }\n\n return region.dispatchEvent(\n new KeyboardEvent('keydown', {\n bubbles: true,\n ...eventInit\n })\n );\n }\n\n private getRenderedCellView(\n rowIndex: number,\n columnIndex: number\n ): TsTableColumnBreakpointCellView {\n return this.tablePageObject.getRenderedCellView(\n rowIndex,\n columnIndex\n ) as TsTableColumnBreakpointCellView;\n }\n\n private getBreakpointButton(\n rowIndex: number,\n columnIndex: number\n ): HTMLButtonElement {\n const button = this.getRenderedCellView(\n rowIndex,\n columnIndex\n ).shadowRoot!.querySelector<HTMLButtonElement>('.breakpoint-button');\n if (!button) {\n throw new Error(\n `Expected breakpoint button at cell ${rowIndex},${columnIndex}`\n );\n }\n return button;\n }\n\n private getContextMenuRegion(\n rowIndex: number,\n columnIndex: number\n ): HTMLElement | null {\n return this.getRenderedCellView(\n rowIndex,\n columnIndex\n ).shadowRoot!.querySelector(anchoredRegionTag);\n }\n}"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ni/ok-components",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.1",
|
|
4
4
|
"description": "NI Ok Components",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build": "npm run build:components && npm run build:cem",
|
|
@@ -42,8 +42,8 @@
|
|
|
42
42
|
"@ni/fast-element": "^10.1.1",
|
|
43
43
|
"@ni/fast-foundation": "^10.2.3",
|
|
44
44
|
"@ni/fast-web-utilities": "^10.0.0",
|
|
45
|
-
"@ni/nimble-components": "^35.
|
|
46
|
-
"@ni/spright-components": "^6.20.
|
|
45
|
+
"@ni/nimble-components": "^35.11.0",
|
|
46
|
+
"@ni/spright-components": "^6.20.4",
|
|
47
47
|
"tslib": "^2.2.0"
|
|
48
48
|
},
|
|
49
49
|
"devDependencies": {
|