@tylertech/forge 3.11.0 → 3.12.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/custom-elements.json +315 -145
- package/dist/app-bar/forge-app-bar.css +2 -0
- package/dist/button/forge-button.css +2 -0
- package/dist/checkbox/forge-checkbox.css +2 -0
- package/dist/chips/forge-chips.css +2 -0
- package/dist/floating-action-button/forge-floating-action-button.css +2 -0
- package/dist/icon-button/forge-icon-button.css +2 -0
- package/dist/lib.js +17 -17
- package/dist/lib.js.map +3 -3
- package/dist/list/forge-list.css +2 -0
- package/dist/radio/forge-radio.css +2 -0
- package/dist/skip-link/forge-skip-link.css +2 -0
- package/dist/state-layer/forge-state-layer.css +2 -0
- package/dist/switch/forge-switch.css +2 -0
- package/dist/vscode.html-custom-data.json +74 -59
- package/esm/accordion/accordion.d.ts +1 -1
- package/esm/accordion/accordion.js +1 -1
- package/esm/app-bar/app-bar/app-bar.d.ts +1 -1
- package/esm/app-bar/app-bar/app-bar.js +1 -1
- package/esm/autocomplete/autocomplete-core.js +16 -3
- package/esm/autocomplete/autocomplete.d.ts +1 -1
- package/esm/autocomplete/autocomplete.js +1 -1
- package/esm/avatar/avatar.d.ts +1 -1
- package/esm/avatar/avatar.js +1 -1
- package/esm/backdrop/backdrop.d.ts +1 -1
- package/esm/backdrop/backdrop.js +1 -1
- package/esm/badge/badge.d.ts +1 -1
- package/esm/badge/badge.js +1 -1
- package/esm/banner/banner.d.ts +1 -1
- package/esm/banner/banner.js +1 -1
- package/esm/button/button.d.ts +1 -6
- package/esm/button/button.js +1 -6
- package/esm/button-area/button-area.d.ts +1 -4
- package/esm/button-area/button-area.js +1 -4
- package/esm/button-toggle/button-toggle/button-toggle.d.ts +1 -1
- package/esm/button-toggle/button-toggle/button-toggle.js +1 -1
- package/esm/button-toggle/button-toggle-group/button-toggle-group.d.ts +1 -1
- package/esm/button-toggle/button-toggle-group/button-toggle-group.js +1 -1
- package/esm/chip-field/chip-field.d.ts +1 -1
- package/esm/chip-field/chip-field.js +1 -1
- package/esm/chips/chip/chip-adapter.d.ts +3 -0
- package/esm/chips/chip/chip-adapter.js +12 -2
- package/esm/chips/chip/chip-constants.d.ts +2 -0
- package/esm/chips/chip/chip-constants.js +2 -1
- package/esm/chips/chip/chip-core.d.ts +4 -0
- package/esm/chips/chip/chip-core.js +9 -0
- package/esm/chips/chip/chip.d.ts +4 -0
- package/esm/chips/chip/chip.js +8 -0
- package/esm/chips/chip-set/chip-set.d.ts +1 -1
- package/esm/chips/chip-set/chip-set.js +1 -1
- package/esm/circular-progress/circular-progress.d.ts +1 -2
- package/esm/circular-progress/circular-progress.js +1 -2
- package/esm/color-picker/color-picker.d.ts +1 -1
- package/esm/color-picker/color-picker.js +1 -1
- package/esm/core/testing/test-harness.d.ts +11 -0
- package/esm/core/testing/test-harness.js +14 -0
- package/esm/core/testing/utils.d.ts +7 -0
- package/esm/core/testing/utils.js +14 -0
- package/esm/date-picker/date-picker.d.ts +1 -1
- package/esm/date-picker/date-picker.js +1 -1
- package/esm/dialog/dialog.d.ts +1 -1
- package/esm/dialog/dialog.js +1 -1
- package/esm/divider/divider.d.ts +1 -1
- package/esm/divider/divider.js +1 -1
- package/esm/drawer/base/base-drawer-adapter.d.ts +2 -0
- package/esm/drawer/base/base-drawer-adapter.js +3 -0
- package/esm/drawer/base/base-drawer-core.js +3 -0
- package/esm/drawer/drawer/drawer.d.ts +1 -1
- package/esm/drawer/drawer/drawer.js +1 -1
- package/esm/drawer/modal-drawer/modal-drawer.d.ts +1 -1
- package/esm/drawer/modal-drawer/modal-drawer.js +1 -1
- package/esm/expansion-panel/expansion-panel.d.ts +1 -1
- package/esm/expansion-panel/expansion-panel.js +1 -1
- package/esm/field/field.d.ts +1 -2
- package/esm/field/field.js +1 -2
- package/esm/file-picker/file-picker.d.ts +2 -3
- package/esm/file-picker/file-picker.js +2 -3
- package/esm/floating-action-button/floating-action-button.d.ts +1 -1
- package/esm/floating-action-button/floating-action-button.js +1 -1
- package/esm/focus-indicator/focus-indicator.d.ts +1 -1
- package/esm/focus-indicator/focus-indicator.js +22 -21
- package/esm/icon/icon.d.ts +1 -1
- package/esm/icon/icon.js +1 -1
- package/esm/icon-button/icon-button.d.ts +1 -1
- package/esm/icon-button/icon-button.js +1 -1
- package/esm/inline-message/inline-message.d.ts +1 -1
- package/esm/inline-message/inline-message.js +1 -1
- package/esm/label/label.d.ts +1 -1
- package/esm/label/label.js +1 -1
- package/esm/label-value/label-value.d.ts +1 -1
- package/esm/label-value/label-value.js +1 -1
- package/esm/linear-progress/linear-progress.d.ts +1 -2
- package/esm/linear-progress/linear-progress.js +1 -2
- package/esm/list/list/list.d.ts +1 -1
- package/esm/list/list/list.js +1 -1
- package/esm/list/list-item/list-item-constants.js +1 -1
- package/esm/list-dropdown/list-dropdown-constants.d.ts +5 -1
- package/esm/list-dropdown/list-dropdown-core.js +1 -1
- package/esm/list-dropdown/list-dropdown-utils.d.ts +3 -1
- package/esm/list-dropdown/list-dropdown-utils.js +41 -20
- package/esm/list-dropdown/list-dropdown.js +1 -1
- package/esm/menu/menu-adapter.d.ts +2 -0
- package/esm/menu/menu-adapter.js +12 -8
- package/esm/menu/menu-constants.d.ts +1 -0
- package/esm/menu/menu-constants.js +3 -2
- package/esm/menu/menu-core.d.ts +5 -0
- package/esm/menu/menu-core.js +41 -2
- package/esm/menu/menu.d.ts +16 -1
- package/esm/menu/menu.js +14 -2
- package/esm/open-icon/open-icon.d.ts +2 -1
- package/esm/open-icon/open-icon.js +2 -1
- package/esm/overlay/overlay.d.ts +1 -2
- package/esm/overlay/overlay.js +1 -2
- package/esm/page-state/page-state.d.ts +1 -1
- package/esm/page-state/page-state.js +1 -1
- package/esm/paginator/paginator-core.d.ts +16 -0
- package/esm/paginator/paginator-core.js +29 -9
- package/esm/paginator/paginator.d.ts +37 -1
- package/esm/paginator/paginator.js +45 -1
- package/esm/popover/popover-adapter.js +1 -1
- package/esm/popover/popover-constants.d.ts +4 -0
- package/esm/popover/popover-constants.js +4 -2
- package/esm/popover/popover-core.d.ts +5 -1
- package/esm/popover/popover-core.js +13 -0
- package/esm/popover/popover.d.ts +6 -2
- package/esm/popover/popover.js +9 -1
- package/esm/profile-card/profile-card.d.ts +2 -1
- package/esm/profile-card/profile-card.js +2 -1
- package/esm/radio/radio/radio.d.ts +1 -2
- package/esm/radio/radio/radio.js +1 -2
- package/esm/scaffold/scaffold.d.ts +1 -1
- package/esm/scaffold/scaffold.js +1 -1
- package/esm/select/option/option.d.ts +1 -1
- package/esm/select/option/option.js +1 -1
- package/esm/select/select/select.d.ts +1 -1
- package/esm/select/select/select.js +2 -2
- package/esm/skeleton/skeleton.d.ts +1 -1
- package/esm/skeleton/skeleton.js +1 -1
- package/esm/skip-link/skip-link.d.ts +1 -1
- package/esm/skip-link/skip-link.js +1 -1
- package/esm/slider/slider.d.ts +1 -1
- package/esm/slider/slider.js +1 -1
- package/esm/split-button/split-button.d.ts +1 -1
- package/esm/split-button/split-button.js +1 -1
- package/esm/split-view/split-view-panel/split-view-panel.js +1 -1
- package/esm/stack/stack.d.ts +1 -8
- package/esm/stack/stack.js +1 -8
- package/esm/state-layer/state-layer.d.ts +1 -1
- package/esm/state-layer/state-layer.js +2 -2
- package/esm/table/table-adapter.d.ts +4 -4
- package/esm/table/table-adapter.js +4 -4
- package/esm/table/table-core.js +2 -2
- package/esm/table/table-utils.d.ts +2 -2
- package/esm/table/table-utils.js +22 -18
- package/esm/table/table.d.ts +2 -2
- package/esm/table/table.js +1 -1
- package/esm/tabs/tab/tab.d.ts +1 -1
- package/esm/tabs/tab/tab.js +1 -1
- package/esm/tabs/tab-bar/tab-bar.d.ts +1 -1
- package/esm/tabs/tab-bar/tab-bar.js +1 -1
- package/esm/text-field/text-field-adapter.d.ts +6 -4
- package/esm/text-field/text-field-adapter.js +11 -4
- package/esm/text-field/text-field-core.d.ts +4 -0
- package/esm/text-field/text-field-core.js +13 -2
- package/esm/text-field/text-field.d.ts +1 -1
- package/esm/text-field/text-field.js +1 -1
- package/esm/time-picker/time-picker-adapter.js +1 -0
- package/esm/time-picker/time-picker-core.js +3 -3
- package/esm/toast/toast-adapter.d.ts +20 -0
- package/esm/toast/toast-adapter.js +30 -0
- package/esm/toast/toast-core.d.ts +17 -0
- package/esm/toast/toast-core.js +66 -0
- package/esm/toast/toast.d.ts +9 -2
- package/esm/toast/toast.js +10 -1
- package/esm/toolbar/toolbar.d.ts +1 -3
- package/esm/toolbar/toolbar.js +1 -3
- package/esm/tooltip/tooltip.d.ts +1 -1
- package/esm/tooltip/tooltip.js +1 -1
- package/esm/view-switcher/view/view.d.ts +1 -1
- package/esm/view-switcher/view/view.js +1 -1
- package/esm/view-switcher/view-switcher.d.ts +1 -1
- package/esm/view-switcher/view-switcher.js +1 -1
- package/package.json +1 -1
- package/sass/state-layer/_core.scss +2 -0
|
@@ -57,8 +57,8 @@ export class TableAdapter extends BaseAdapter {
|
|
|
57
57
|
setSortDirection(tableElement, columnIndex, sortDirection) {
|
|
58
58
|
TableUtils.setSortDirection(tableElement, columnIndex, sortDirection);
|
|
59
59
|
}
|
|
60
|
-
setSelectColumnVisibility(tableElement, isVisible, selectListener, selectAllListener, selectAllTemplate, selectCheckboxAlignment, data, tooltipSelect, tooltipSelectAll) {
|
|
61
|
-
TableUtils.setSelectColumnVisibility(tableElement, isVisible, selectListener, selectAllListener || null, selectAllTemplate || null, selectCheckboxAlignment || null, data || [], tooltipSelect || null, tooltipSelectAll || null);
|
|
60
|
+
setSelectColumnVisibility(tableElement, dense, isVisible, selectListener, selectAllListener, selectAllTemplate, selectCheckboxAlignment, data, tooltipSelect, tooltipSelectAll) {
|
|
61
|
+
TableUtils.setSelectColumnVisibility(tableElement, dense, isVisible, selectListener, selectAllListener || null, selectAllTemplate || null, selectCheckboxAlignment || null, data || [], tooltipSelect || null, tooltipSelectAll || null);
|
|
62
62
|
}
|
|
63
63
|
setDense(tableElement, isDense) {
|
|
64
64
|
TableUtils.setDenseState(tableElement, isDense);
|
|
@@ -69,8 +69,8 @@ export class TableAdapter extends BaseAdapter {
|
|
|
69
69
|
setResizable(configuration) {
|
|
70
70
|
TableUtils.setResizable(configuration);
|
|
71
71
|
}
|
|
72
|
-
setSelectAllVisibility(tableElement, isVisible, listener, selectAllTemplate, selectCheckboxAlignment, tooltipSelectAll = null) {
|
|
73
|
-
TableUtils.setSelectAllVisibility(tableElement, isVisible, listener, selectAllTemplate, selectCheckboxAlignment || null, tooltipSelectAll || null);
|
|
72
|
+
setSelectAllVisibility(tableElement, dense, isVisible, listener, selectAllTemplate, selectCheckboxAlignment, tooltipSelectAll = null) {
|
|
73
|
+
TableUtils.setSelectAllVisibility(tableElement, dense, isVisible, listener, selectAllTemplate, selectCheckboxAlignment || null, tooltipSelectAll || null);
|
|
74
74
|
}
|
|
75
75
|
setFilterRow(configuration) {
|
|
76
76
|
TableUtils.setFilterRow(configuration);
|
package/esm/table/table-core.js
CHANGED
|
@@ -141,7 +141,7 @@ export class TableCore {
|
|
|
141
141
|
if (this._select !== value) {
|
|
142
142
|
this._select = value;
|
|
143
143
|
// Now we can add/remove the column
|
|
144
|
-
this._adapter.setSelectColumnVisibility(this._adapter.getTableElement(), this._select, this._selectRowListener, this._multiselect ? this._selectAllListener : undefined, this._multiselect ? this._selectAllTemplate : null, this._selectCheckboxAlignment, this._tableRows, this._tooltipSelect, this._tooltipSelectAll);
|
|
144
|
+
this._adapter.setSelectColumnVisibility(this._adapter.getTableElement(), this._dense, this._select, this._selectRowListener, this._multiselect ? this._selectAllListener : undefined, this._multiselect ? this._selectAllTemplate : null, this._selectCheckboxAlignment, this._tableRows, this._tooltipSelect, this._tooltipSelectAll);
|
|
145
145
|
this._updateSelections(true);
|
|
146
146
|
// Update the attribute on the host element
|
|
147
147
|
if (this._select) {
|
|
@@ -160,7 +160,7 @@ export class TableCore {
|
|
|
160
160
|
if (this._multiselect !== value) {
|
|
161
161
|
this._multiselect = value;
|
|
162
162
|
if (this._select) {
|
|
163
|
-
this._adapter.setSelectAllVisibility(this._adapter.getTableElement(), this._multiselect, this._multiselect ? this._selectAllListener : null, this._multiselect ? this.selectAllTemplate : null, this._selectCheckboxAlignment, this._tooltipSelectAll);
|
|
163
|
+
this._adapter.setSelectAllVisibility(this._adapter.getTableElement(), this._dense, this._multiselect, this._multiselect ? this._selectAllListener : null, this._multiselect ? this.selectAllTemplate : null, this._selectCheckboxAlignment, this._tooltipSelectAll);
|
|
164
164
|
this._updateSelections(true);
|
|
165
165
|
}
|
|
166
166
|
this._adapter.setHostAttribute(TABLE_CONSTANTS.attributes.MULTISELECT, this._multiselect.toString());
|
|
@@ -282,7 +282,7 @@ export declare class TableUtils {
|
|
|
282
282
|
/**
|
|
283
283
|
* Adds/removes the select column on the table.
|
|
284
284
|
*/
|
|
285
|
-
static setSelectColumnVisibility(tableElement: HTMLTableElement, isVisible: boolean, selectListener: ((evt: Event) => void) | null, selectAllListener: ((evt: Event) => void) | null, selectAllTemplate: TableHeaderSelectAllTemplate | null, selectCheckboxAlignment: CellAlign | null, data: TableRow[], tooltipSelect: string | TableSelectTooltipCallback | null, tooltipSelectAll: string | null): void;
|
|
285
|
+
static setSelectColumnVisibility(tableElement: HTMLTableElement, dense: boolean, isVisible: boolean, selectListener: ((evt: Event) => void) | null, selectAllListener: ((evt: Event) => void) | null, selectAllTemplate: TableHeaderSelectAllTemplate | null, selectCheckboxAlignment: CellAlign | null, data: TableRow[], tooltipSelect: string | TableSelectTooltipCallback | null, tooltipSelectAll: string | null): void;
|
|
286
286
|
/**
|
|
287
287
|
* Adds the select column to the thead/tbody elements and attaches the provided click listeners.
|
|
288
288
|
* @param theadElement The table head element.
|
|
@@ -311,7 +311,7 @@ export declare class TableUtils {
|
|
|
311
311
|
* @param {HTMLTableElement} tableElement The table element.
|
|
312
312
|
* @param {boolean} isVisible Whether the select all option is visible or not.
|
|
313
313
|
*/
|
|
314
|
-
static setSelectAllVisibility(tableElement: HTMLTableElement, isVisible: boolean, listener: ((evt: Event) => void) | null, selectAllTemplate: TableHeaderSelectAllTemplate | null, selectCheckboxAlignment: CellAlign | null, tooltipSelectAll: string | null): void;
|
|
314
|
+
static setSelectAllVisibility(tableElement: HTMLTableElement, dense: boolean, isVisible: boolean, listener: ((evt: Event) => void) | null, selectAllTemplate: TableHeaderSelectAllTemplate | null, selectCheckboxAlignment: CellAlign | null, tooltipSelectAll: string | null): void;
|
|
315
315
|
/**
|
|
316
316
|
* Controls the visibility of the table filter row.
|
|
317
317
|
* @param {ITableConfiguration} configuration The table configuration.
|
package/esm/table/table-utils.js
CHANGED
|
@@ -51,7 +51,7 @@ export class TableUtils {
|
|
|
51
51
|
}
|
|
52
52
|
// Add the select column
|
|
53
53
|
if (configuration.selectListener) {
|
|
54
|
-
TableUtils._addSelectColumn(thead, tbody, configuration.selectListener, configuration.selectAllListener, configuration.selectAllTemplate, configuration.selectCheckboxAlignment, configuration.data, configuration.tooltipSelect, configuration.tooltipSelectAll);
|
|
54
|
+
TableUtils._addSelectColumn(thead, tbody, configuration.dense, configuration.selectListener, configuration.selectAllListener, configuration.selectAllTemplate, configuration.selectCheckboxAlignment, configuration.data, configuration.tooltipSelect, configuration.tooltipSelectAll);
|
|
55
55
|
}
|
|
56
56
|
if (configuration.resizable || configuration.columnConfigurations.some(c => !!c.sortable)) {
|
|
57
57
|
TableUtils._attachHeadRowMouseDownListener(thead, configuration.headRowMouseDownListener);
|
|
@@ -97,7 +97,7 @@ export class TableUtils {
|
|
|
97
97
|
}
|
|
98
98
|
// Add the select column if necessary
|
|
99
99
|
if (configuration.selectListener) {
|
|
100
|
-
TableUtils._createBodySelectColumn(tbody, configuration.selectCheckboxAlignment, configuration.data, configuration.tooltipSelect, configuration.tooltipSelectAll);
|
|
100
|
+
TableUtils._createBodySelectColumn(tbody, configuration.dense, configuration.selectCheckboxAlignment, configuration.data, configuration.tooltipSelect, configuration.tooltipSelectAll);
|
|
101
101
|
TableUtils._attachRowSelectListeners(tbody, configuration.selectListener);
|
|
102
102
|
}
|
|
103
103
|
TableUtils._setTableBody(configuration.tableElement, tbody);
|
|
@@ -594,12 +594,12 @@ export class TableUtils {
|
|
|
594
594
|
* @param theadElement
|
|
595
595
|
* @param tbodyElement
|
|
596
596
|
*/
|
|
597
|
-
static _createSelectColumn(theadElement, tbodyElement, showSelectAll, selectAllTemplate, registerListener, selectCheckboxAlignment, data, tooltipSelect, tooltipSelectAll) {
|
|
597
|
+
static _createSelectColumn(theadElement, tbodyElement, dense, showSelectAll, selectAllTemplate, registerListener, selectCheckboxAlignment, data, tooltipSelect, tooltipSelectAll) {
|
|
598
598
|
if (theadElement) {
|
|
599
|
-
TableUtils._createHeadSelectColumn(theadElement, showSelectAll, selectAllTemplate, registerListener, selectCheckboxAlignment, tooltipSelectAll);
|
|
599
|
+
TableUtils._createHeadSelectColumn(theadElement, dense, showSelectAll, selectAllTemplate, registerListener, selectCheckboxAlignment, tooltipSelectAll);
|
|
600
600
|
}
|
|
601
601
|
if (tbodyElement) {
|
|
602
|
-
TableUtils._createBodySelectColumn(tbodyElement, selectCheckboxAlignment, data, tooltipSelect, tooltipSelectAll);
|
|
602
|
+
TableUtils._createBodySelectColumn(tbodyElement, dense, selectCheckboxAlignment, data, tooltipSelect, tooltipSelectAll);
|
|
603
603
|
}
|
|
604
604
|
}
|
|
605
605
|
/**
|
|
@@ -607,7 +607,7 @@ export class TableUtils {
|
|
|
607
607
|
* @param {HTMLTableSectionElement} theadElement The table head element.
|
|
608
608
|
* @param {boolean} showSelectAll Whether to show the select all checkbox or not.
|
|
609
609
|
*/
|
|
610
|
-
static _createHeadSelectColumn(theadElement, showSelectAll, selectAllTemplate, registerListener, selectCheckboxAlignment, tooltipSelectAll) {
|
|
610
|
+
static _createHeadSelectColumn(theadElement, dense, showSelectAll, selectAllTemplate, registerListener, selectCheckboxAlignment, tooltipSelectAll) {
|
|
611
611
|
Array.from(theadElement.rows).forEach(row => {
|
|
612
612
|
const th = document.createElement('th');
|
|
613
613
|
addClass([TABLE_CONSTANTS.classes.TABLE_CELL, TABLE_CONSTANTS.classes.TABLE_HEAD_CELL], th);
|
|
@@ -624,7 +624,7 @@ export class TableUtils {
|
|
|
624
624
|
});
|
|
625
625
|
}
|
|
626
626
|
else {
|
|
627
|
-
lastRowFirstCell?.appendChild(TableUtils._createCheckboxElement(true, selectCheckboxAlignment, null, null, null, tooltipSelectAll));
|
|
627
|
+
lastRowFirstCell?.appendChild(TableUtils._createCheckboxElement(true, dense, selectCheckboxAlignment, null, null, null, tooltipSelectAll));
|
|
628
628
|
}
|
|
629
629
|
}
|
|
630
630
|
}
|
|
@@ -632,9 +632,9 @@ export class TableUtils {
|
|
|
632
632
|
* Creates the select column in the table body.
|
|
633
633
|
* @param {HTMLTableSectionElement} tbodyElement The table body element.
|
|
634
634
|
*/
|
|
635
|
-
static _createBodySelectColumn(tbodyElement, selectCheckboxAlignment, data, tooltipSelect, tooltipSelectAll) {
|
|
635
|
+
static _createBodySelectColumn(tbodyElement, dense, selectCheckboxAlignment, data, tooltipSelect, tooltipSelectAll) {
|
|
636
636
|
const nonExpandedRows = TableUtils._getNonExpandedRows(tbodyElement.rows);
|
|
637
|
-
nonExpandedRows.forEach((row, rowIndex) => TableUtils._addRowSelectColumn(row, selectCheckboxAlignment, rowIndex, data[rowIndex], tooltipSelect, tooltipSelectAll));
|
|
637
|
+
nonExpandedRows.forEach((row, rowIndex) => TableUtils._addRowSelectColumn(row, dense, selectCheckboxAlignment, rowIndex, data[rowIndex], tooltipSelect, tooltipSelectAll));
|
|
638
638
|
// Update the colspan on the expanded rows
|
|
639
639
|
if (tbodyElement.rows.length) {
|
|
640
640
|
const firstRow = tbodyElement.rows.item(0);
|
|
@@ -643,10 +643,10 @@ export class TableUtils {
|
|
|
643
643
|
}
|
|
644
644
|
}
|
|
645
645
|
}
|
|
646
|
-
static _addRowSelectColumn(row, selectCheckboxAlignment, rowIndex, rowData, tooltipSelect, tooltipSelectAll) {
|
|
646
|
+
static _addRowSelectColumn(row, dense, selectCheckboxAlignment, rowIndex, rowData, tooltipSelect, tooltipSelectAll) {
|
|
647
647
|
const td = row.insertCell(0);
|
|
648
648
|
addClass([TABLE_CONSTANTS.classes.TABLE_CELL, TABLE_CONSTANTS.classes.TABLE_BODY_CELL, TABLE_CONSTANTS.classes.TABLE_CELL_SELECT], td);
|
|
649
|
-
td.appendChild(TableUtils._createCheckboxElement(false, selectCheckboxAlignment, rowIndex, rowData, tooltipSelect, tooltipSelectAll));
|
|
649
|
+
td.appendChild(TableUtils._createCheckboxElement(false, dense, selectCheckboxAlignment, rowIndex, rowData, tooltipSelect, tooltipSelectAll));
|
|
650
650
|
}
|
|
651
651
|
/**
|
|
652
652
|
* Removes the first cell (select cell) in every row in the table head and table body elements.
|
|
@@ -678,7 +678,7 @@ export class TableUtils {
|
|
|
678
678
|
/**
|
|
679
679
|
* Creates a checkbox element for the select column.
|
|
680
680
|
*/
|
|
681
|
-
static _createCheckboxElement(isHeader, alignment, rowIndex, rowData, tooltipSelect, tooltipSelectAll) {
|
|
681
|
+
static _createCheckboxElement(isHeader, dense, alignment, rowIndex, rowData, tooltipSelect, tooltipSelectAll) {
|
|
682
682
|
const checkboxContainer = document.createElement('div');
|
|
683
683
|
checkboxContainer.classList.add(TABLE_CONSTANTS.classes.TABLE_CELL_SELECT_CHECKBOX_CONTAINER);
|
|
684
684
|
if (alignment) {
|
|
@@ -696,6 +696,7 @@ export class TableUtils {
|
|
|
696
696
|
}
|
|
697
697
|
const checkboxElement = document.createElement(CHECKBOX_CONSTANTS.elementName);
|
|
698
698
|
checkboxElement.setAttribute(TABLE_CONSTANTS.attributes.SELECT_CHECKBOX, '');
|
|
699
|
+
checkboxElement.dense = dense;
|
|
699
700
|
checkboxContainer.appendChild(checkboxElement);
|
|
700
701
|
const tooltipFactory = (text) => {
|
|
701
702
|
const tooltipEl = document.createElement('forge-tooltip');
|
|
@@ -957,14 +958,14 @@ export class TableUtils {
|
|
|
957
958
|
/**
|
|
958
959
|
* Adds/removes the select column on the table.
|
|
959
960
|
*/
|
|
960
|
-
static setSelectColumnVisibility(tableElement, isVisible, selectListener, selectAllListener, selectAllTemplate, selectCheckboxAlignment, data, tooltipSelect, tooltipSelectAll) {
|
|
961
|
+
static setSelectColumnVisibility(tableElement, dense, isVisible, selectListener, selectAllListener, selectAllTemplate, selectCheckboxAlignment, data, tooltipSelect, tooltipSelectAll) {
|
|
961
962
|
const theadElement = tableElement.tHead;
|
|
962
963
|
const tbodyElement = tableElement.tBodies[0];
|
|
963
964
|
if (!theadElement || !tbodyElement) {
|
|
964
965
|
return;
|
|
965
966
|
}
|
|
966
967
|
if (isVisible) {
|
|
967
|
-
TableUtils._addSelectColumn(theadElement, tbodyElement, selectListener, selectAllListener, selectAllTemplate, selectCheckboxAlignment, data, tooltipSelect, tooltipSelectAll);
|
|
968
|
+
TableUtils._addSelectColumn(theadElement, tbodyElement, dense, selectListener, selectAllListener, selectAllTemplate, selectCheckboxAlignment, data, tooltipSelect, tooltipSelectAll);
|
|
968
969
|
}
|
|
969
970
|
else if (TableUtils._hasSelectColumn(theadElement, tbodyElement)) {
|
|
970
971
|
if (selectListener) {
|
|
@@ -983,8 +984,8 @@ export class TableUtils {
|
|
|
983
984
|
* @param selectListener The row select listener.
|
|
984
985
|
* @param selectAllListener The select all checkbox listener.
|
|
985
986
|
*/
|
|
986
|
-
static _addSelectColumn(theadElement, tbodyElement, selectListener, selectAllListener, selectAllTemplate, selectCheckboxAlignment, data, tooltipSelect, tooltipSelectAll) {
|
|
987
|
-
TableUtils._createSelectColumn(theadElement, tbodyElement, !!selectAllListener, selectAllTemplate, () => {
|
|
987
|
+
static _addSelectColumn(theadElement, tbodyElement, dense, selectListener, selectAllListener, selectAllTemplate, selectCheckboxAlignment, data, tooltipSelect, tooltipSelectAll) {
|
|
988
|
+
TableUtils._createSelectColumn(theadElement, tbodyElement, dense, !!selectAllListener, selectAllTemplate, () => {
|
|
988
989
|
if (selectAllListener) {
|
|
989
990
|
TableUtils._tryAttachSelectAllTemplateListener(theadElement, selectAllListener);
|
|
990
991
|
}
|
|
@@ -1006,6 +1007,9 @@ export class TableUtils {
|
|
|
1006
1007
|
if (isDense) {
|
|
1007
1008
|
tableElement.classList.add(TABLE_CONSTANTS.classes.TABLE_DENSE);
|
|
1008
1009
|
}
|
|
1010
|
+
// Update the select column checkboxes if they exist
|
|
1011
|
+
const selectColumnCheckboxes = tableElement.querySelectorAll(`forge-checkbox[${TABLE_CONSTANTS.attributes.SELECT_CHECKBOX}]`);
|
|
1012
|
+
selectColumnCheckboxes.forEach(checkboxEl => (checkboxEl.dense = isDense));
|
|
1009
1013
|
}
|
|
1010
1014
|
/**
|
|
1011
1015
|
* Adds/removes the roomy class on the table.
|
|
@@ -1086,7 +1090,7 @@ export class TableUtils {
|
|
|
1086
1090
|
* @param {HTMLTableElement} tableElement The table element.
|
|
1087
1091
|
* @param {boolean} isVisible Whether the select all option is visible or not.
|
|
1088
1092
|
*/
|
|
1089
|
-
static setSelectAllVisibility(tableElement, isVisible, listener, selectAllTemplate, selectCheckboxAlignment, tooltipSelectAll) {
|
|
1093
|
+
static setSelectAllVisibility(tableElement, dense, isVisible, listener, selectAllTemplate, selectCheckboxAlignment, tooltipSelectAll) {
|
|
1090
1094
|
const theadElement = tableElement.tHead;
|
|
1091
1095
|
if (!theadElement) {
|
|
1092
1096
|
return;
|
|
@@ -1108,7 +1112,7 @@ export class TableUtils {
|
|
|
1108
1112
|
});
|
|
1109
1113
|
}
|
|
1110
1114
|
else {
|
|
1111
|
-
selectAllCell.appendChild(TableUtils._createCheckboxElement(true, selectCheckboxAlignment || null, null, null, null, tooltipSelectAll));
|
|
1115
|
+
selectAllCell.appendChild(TableUtils._createCheckboxElement(true, dense, selectCheckboxAlignment || null, null, null, null, tooltipSelectAll));
|
|
1112
1116
|
}
|
|
1113
1117
|
if (listener && !selectAllTemplate) {
|
|
1114
1118
|
TableUtils._attachSelectAllListener(theadElement, listener);
|
package/esm/table/table.d.ts
CHANGED
|
@@ -64,7 +64,7 @@ declare global {
|
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
66
|
/**
|
|
67
|
-
* @summary
|
|
67
|
+
* @summary Tables are used to display sets of data. They organize information into rows and columns, making it easier to read, compare, and analyze. The Forge table provides a configuration-based approach to building data tables with means for sorting, filtering, selecting, and customizing the display of tabular data.
|
|
68
68
|
*
|
|
69
69
|
* @tag forge-table
|
|
70
70
|
*
|
|
@@ -185,7 +185,7 @@ export declare class TableComponent extends BaseComponent implements ITableCompo
|
|
|
185
185
|
columnConfigurations: IColumnConfiguration[];
|
|
186
186
|
/**
|
|
187
187
|
* Controls the visibility of the select column.
|
|
188
|
-
* @default
|
|
188
|
+
* @default false
|
|
189
189
|
* @attribute
|
|
190
190
|
*/
|
|
191
191
|
select: boolean;
|
package/esm/table/table.js
CHANGED
|
@@ -17,7 +17,7 @@ import { CellAlign } from './types';
|
|
|
17
17
|
import { TooltipComponent } from '../tooltip';
|
|
18
18
|
import { FocusIndicatorComponent } from '../focus-indicator';
|
|
19
19
|
/**
|
|
20
|
-
* @summary
|
|
20
|
+
* @summary Tables are used to display sets of data. They organize information into rows and columns, making it easier to read, compare, and analyze. The Forge table provides a configuration-based approach to building data tables with means for sorting, filtering, selecting, and customizing the display of tabular data.
|
|
21
21
|
*
|
|
22
22
|
* @tag forge-table
|
|
23
23
|
*
|
package/esm/tabs/tab/tab.d.ts
CHANGED
|
@@ -26,7 +26,7 @@ declare global {
|
|
|
26
26
|
/**
|
|
27
27
|
* @tag forge-tab
|
|
28
28
|
*
|
|
29
|
-
* @summary
|
|
29
|
+
* @summary Tab components represent a single tab inside a tab bar.
|
|
30
30
|
*
|
|
31
31
|
* @dependency forge-focus-indicator
|
|
32
32
|
* @dependency forge-state-layer
|
package/esm/tabs/tab/tab.js
CHANGED
|
@@ -16,7 +16,7 @@ const styles = ':host{display:inline-flex;outline:0;-webkit-tap-highlight-color:
|
|
|
16
16
|
/**
|
|
17
17
|
* @tag forge-tab
|
|
18
18
|
*
|
|
19
|
-
* @summary
|
|
19
|
+
* @summary Tab components represent a single tab inside a tab bar.
|
|
20
20
|
*
|
|
21
21
|
* @dependency forge-focus-indicator
|
|
22
22
|
* @dependency forge-state-layer
|
|
@@ -31,7 +31,7 @@ declare const TabBarComponent_base: import("../../constants").AbstractConstructo
|
|
|
31
31
|
/**
|
|
32
32
|
* @tag forge-tab-bar
|
|
33
33
|
*
|
|
34
|
-
* @summary
|
|
34
|
+
* @summary Tab bars organize a set of tabs, holding selection state and enabling navigation between different views or sections of content.
|
|
35
35
|
*
|
|
36
36
|
* @description
|
|
37
37
|
* Use tabs to group content into helpful categories. Tabs are typically placed
|
|
@@ -21,7 +21,7 @@ const styles = ':host{position:relative;display:block}:host([hidden]){display:no
|
|
|
21
21
|
/**
|
|
22
22
|
* @tag forge-tab-bar
|
|
23
23
|
*
|
|
24
|
-
* @summary
|
|
24
|
+
* @summary Tab bars organize a set of tabs, holding selection state and enabling navigation between different views or sections of content.
|
|
25
25
|
*
|
|
26
26
|
* @description
|
|
27
27
|
* Use tabs to group content into helpful categories. Tabs are typically placed
|
|
@@ -12,13 +12,14 @@ export interface ITextFieldAdapter extends IBaseFieldAdapter {
|
|
|
12
12
|
addRootListener(name: keyof HTMLElementEventMap, listener: EventListener): void;
|
|
13
13
|
removeRootListener(name: keyof HTMLElementEventMap, listener: EventListener): void;
|
|
14
14
|
disableInput(disabled: boolean): void;
|
|
15
|
+
setInvalid(value: boolean): void;
|
|
15
16
|
handleDefaultSlotChange(listener: TextFieldInputAttributeObserver): void;
|
|
16
17
|
tryAddValueChangeListener(context: unknown, listener: TextFieldValueChangeListener): void;
|
|
17
18
|
removeValueChangeListener(): void;
|
|
18
19
|
tryFloatLabel(force?: boolean): void;
|
|
19
20
|
tryConnectSlottedLabel(): void;
|
|
20
|
-
connectClearButton(
|
|
21
|
-
disconnectClearButton(
|
|
21
|
+
connectClearButton(clickListener: EventListener, mouseDownListener: EventListener): void;
|
|
22
|
+
disconnectClearButton(clickListener: EventListener, mouseDownListener: EventListener): void;
|
|
22
23
|
toggleClearButtonVisibility(visible: boolean): void;
|
|
23
24
|
clearInput(): void;
|
|
24
25
|
getAllSlotElements(): HTMLSlotElement[];
|
|
@@ -39,6 +40,7 @@ export declare class TextFieldAdapter extends BaseFieldAdapter implements ITextF
|
|
|
39
40
|
addRootListener(name: keyof HTMLElementEventMap, listener: EventListener): void;
|
|
40
41
|
removeRootListener(name: keyof HTMLElementEventMap, listener: EventListener): void;
|
|
41
42
|
disableInput(disabled: boolean): void;
|
|
43
|
+
setInvalid(value: boolean): void;
|
|
42
44
|
inputIsDisabled(): boolean;
|
|
43
45
|
click(): void;
|
|
44
46
|
applyLabel(value: string | null): void;
|
|
@@ -47,8 +49,8 @@ export declare class TextFieldAdapter extends BaseFieldAdapter implements ITextF
|
|
|
47
49
|
removeValueChangeListener(): void;
|
|
48
50
|
tryFloatLabel(force?: boolean): void;
|
|
49
51
|
tryConnectSlottedLabel(): void;
|
|
50
|
-
connectClearButton(
|
|
51
|
-
disconnectClearButton(
|
|
52
|
+
connectClearButton(clickListener: EventListener, mouseDownListener: EventListener): void;
|
|
53
|
+
disconnectClearButton(clickListener: EventListener, mouseDownListener: EventListener): void;
|
|
52
54
|
toggleClearButtonVisibility(visible: boolean): void;
|
|
53
55
|
clearInput(): void;
|
|
54
56
|
getAllSlotElements(): HTMLSlotElement[];
|
|
@@ -40,6 +40,9 @@ export class TextFieldAdapter extends BaseFieldAdapter {
|
|
|
40
40
|
disableInput(disabled) {
|
|
41
41
|
this._inputElements.forEach(el => (el.disabled = disabled));
|
|
42
42
|
}
|
|
43
|
+
setInvalid(value) {
|
|
44
|
+
this._inputElements.forEach(el => toggleAttribute(el, value, 'aria-invalid', 'true'));
|
|
45
|
+
}
|
|
43
46
|
inputIsDisabled() {
|
|
44
47
|
return this._inputElements.some(el => el.disabled);
|
|
45
48
|
}
|
|
@@ -130,11 +133,15 @@ export class TextFieldAdapter extends BaseFieldAdapter {
|
|
|
130
133
|
inputElement.id = id;
|
|
131
134
|
label.htmlFor = id;
|
|
132
135
|
}
|
|
133
|
-
connectClearButton(
|
|
134
|
-
this._clearButtonSlotElement.addEventListener('click',
|
|
136
|
+
connectClearButton(clickListener, mouseDownListener) {
|
|
137
|
+
this._clearButtonSlotElement.addEventListener('click', clickListener);
|
|
138
|
+
if (mouseDownListener) {
|
|
139
|
+
this._clearButtonSlotElement.addEventListener('mousedown', mouseDownListener);
|
|
140
|
+
}
|
|
135
141
|
}
|
|
136
|
-
disconnectClearButton(
|
|
137
|
-
this._clearButtonSlotElement.removeEventListener('click',
|
|
142
|
+
disconnectClearButton(clickListener, mouseDownListener) {
|
|
143
|
+
this._clearButtonSlotElement.removeEventListener('click', clickListener);
|
|
144
|
+
this._clearButtonSlotElement.removeEventListener('mousedown', mouseDownListener);
|
|
138
145
|
}
|
|
139
146
|
toggleClearButtonVisibility(visible) {
|
|
140
147
|
if (visible) {
|
|
@@ -18,6 +18,7 @@ export declare class TextFieldCore extends BaseFieldCore<ITextFieldAdapter> impl
|
|
|
18
18
|
private _valueChangeListener;
|
|
19
19
|
private _inputListener;
|
|
20
20
|
private _clearButtonClickListener;
|
|
21
|
+
private _clearButtonMouseDownListener;
|
|
21
22
|
constructor(_adapter: TextFieldAdapter);
|
|
22
23
|
initialize(): void;
|
|
23
24
|
destroy(): void;
|
|
@@ -27,6 +28,7 @@ export declare class TextFieldCore extends BaseFieldCore<ITextFieldAdapter> impl
|
|
|
27
28
|
private _handleSlotChange;
|
|
28
29
|
private _onInputAttributeChange;
|
|
29
30
|
private _onClearButtonClick;
|
|
31
|
+
private _onClearButtonMouseDown;
|
|
30
32
|
/** Responds to the `input` event from the <input> element. */
|
|
31
33
|
private _onInputChange;
|
|
32
34
|
/** Called from the `value` property setter on the <input> element. */
|
|
@@ -35,6 +37,8 @@ export declare class TextFieldCore extends BaseFieldCore<ITextFieldAdapter> impl
|
|
|
35
37
|
private _toggleClearButtonVisibility;
|
|
36
38
|
get showClear(): boolean;
|
|
37
39
|
set showClear(value: boolean);
|
|
40
|
+
get invalid(): boolean;
|
|
41
|
+
set invalid(value: boolean);
|
|
38
42
|
get disabled(): boolean;
|
|
39
43
|
set disabled(value: boolean);
|
|
40
44
|
get labelPosition(): FieldLabelPosition;
|
|
@@ -17,6 +17,7 @@ export class TextFieldCore extends BaseFieldCore {
|
|
|
17
17
|
this._valueChangeListener = this._onValueChange.bind(this);
|
|
18
18
|
this._inputListener = this._onInputChange.bind(this);
|
|
19
19
|
this._clearButtonClickListener = (evt) => this._onClearButtonClick(evt);
|
|
20
|
+
this._clearButtonMouseDownListener = (evt) => this._onClearButtonMouseDown(evt);
|
|
20
21
|
}
|
|
21
22
|
initialize() {
|
|
22
23
|
this._adapter.tryApplyGlobalConfiguration(['labelPosition', 'variant']);
|
|
@@ -72,6 +73,9 @@ export class TextFieldCore extends BaseFieldCore {
|
|
|
72
73
|
this._adapter.clearInput();
|
|
73
74
|
}
|
|
74
75
|
}
|
|
76
|
+
_onClearButtonMouseDown(evt) {
|
|
77
|
+
evt.preventDefault(); // Prevent focus change to avoid blur event
|
|
78
|
+
}
|
|
75
79
|
/** Responds to the `input` event from the <input> element. */
|
|
76
80
|
_onInputChange(evt) {
|
|
77
81
|
let floatLabel;
|
|
@@ -101,14 +105,21 @@ export class TextFieldCore extends BaseFieldCore {
|
|
|
101
105
|
this._showClear = value;
|
|
102
106
|
this._adapter.toggleHostAttribute(TEXT_FIELD_CONSTANTS.attributes.SHOW_CLEAR, value);
|
|
103
107
|
if (value) {
|
|
104
|
-
this._adapter.connectClearButton(this._clearButtonClickListener);
|
|
108
|
+
this._adapter.connectClearButton(this._clearButtonClickListener, this._clearButtonMouseDownListener);
|
|
105
109
|
}
|
|
106
110
|
else {
|
|
107
|
-
this._adapter.disconnectClearButton(this._clearButtonClickListener);
|
|
111
|
+
this._adapter.disconnectClearButton(this._clearButtonClickListener, this._clearButtonMouseDownListener);
|
|
108
112
|
}
|
|
109
113
|
this._toggleClearButtonVisibility();
|
|
110
114
|
}
|
|
111
115
|
}
|
|
116
|
+
get invalid() {
|
|
117
|
+
return super.invalid;
|
|
118
|
+
}
|
|
119
|
+
set invalid(value) {
|
|
120
|
+
super.invalid = value;
|
|
121
|
+
this._adapter.setInvalid(value);
|
|
122
|
+
}
|
|
112
123
|
get disabled() {
|
|
113
124
|
return super.disabled;
|
|
114
125
|
}
|
|
@@ -20,7 +20,7 @@ declare global {
|
|
|
20
20
|
/**
|
|
21
21
|
* @tag forge-text-field
|
|
22
22
|
*
|
|
23
|
-
* @summary The Forge Text Field component
|
|
23
|
+
* @summary The Forge Text Field component is an input field used to capture user text input. It requires a child `<input>` or `<textarea>` element to function properly, and an optional `<label>` element can be used to provide a label for the `<input>`.
|
|
24
24
|
*
|
|
25
25
|
* @dependency forge-field
|
|
26
26
|
* @dependency forge-icon-button
|
|
@@ -19,7 +19,7 @@ const styles = ':host{display:block}:host([hidden]){display:none}forge-field{dis
|
|
|
19
19
|
/**
|
|
20
20
|
* @tag forge-text-field
|
|
21
21
|
*
|
|
22
|
-
* @summary The Forge Text Field component
|
|
22
|
+
* @summary The Forge Text Field component is an input field used to capture user text input. It requires a child `<input>` or `<textarea>` element to function properly, and an optional `<label>` element can be used to provide a label for the `<input>`.
|
|
23
23
|
*
|
|
24
24
|
* @dependency forge-field
|
|
25
25
|
* @dependency forge-icon-button
|
|
@@ -189,6 +189,7 @@ export class TimePickerAdapter extends BaseAdapter {
|
|
|
189
189
|
this._toggleElement.setAttribute('aria-disabled', value.toString());
|
|
190
190
|
if ('disabled' in this._toggleElement) {
|
|
191
191
|
this._toggleElement.disabled = value;
|
|
192
|
+
this._toggleElement.tabIndex = -1;
|
|
192
193
|
}
|
|
193
194
|
else {
|
|
194
195
|
const button = this._toggleElement.querySelector('button');
|
|
@@ -579,7 +579,7 @@ export class TimePickerCore {
|
|
|
579
579
|
for (let totalMinutes = minMinutes; totalMinutes < TIME_PICKER_CONSTANTS.numbers.MAX_DAY_MINUTES; totalMinutes += minuteStep) {
|
|
580
580
|
const millis = minutesToMillis(totalMinutes);
|
|
581
581
|
const disabled = this._restrictedTimes.includes(millis);
|
|
582
|
-
const label = millisToTimeString(millis, this._use24HourTime,
|
|
582
|
+
const label = millisToTimeString(millis, this._use24HourTime, this._allowSeconds) || '';
|
|
583
583
|
const value = { time: millis };
|
|
584
584
|
times.push({ label, value, disabled });
|
|
585
585
|
}
|
|
@@ -587,7 +587,7 @@ export class TimePickerCore {
|
|
|
587
587
|
for (let totalMinutes = 0; totalMinutes <= maxMinutes; totalMinutes += minuteStep) {
|
|
588
588
|
const millis = minutesToMillis(totalMinutes);
|
|
589
589
|
const disabled = this._restrictedTimes.includes(millis);
|
|
590
|
-
const label = millisToTimeString(millis, this._use24HourTime,
|
|
590
|
+
const label = millisToTimeString(millis, this._use24HourTime, this._allowSeconds) || '';
|
|
591
591
|
const value = { time: millis };
|
|
592
592
|
times.push({ label, value, disabled });
|
|
593
593
|
}
|
|
@@ -602,7 +602,7 @@ export class TimePickerCore {
|
|
|
602
602
|
}
|
|
603
603
|
const millis = minutesToMillis(totalMinutes);
|
|
604
604
|
const disabled = this._restrictedTimes.includes(millis);
|
|
605
|
-
const label = millisToTimeString(millis, this._use24HourTime,
|
|
605
|
+
const label = millisToTimeString(millis, this._use24HourTime, this._allowSeconds) || '';
|
|
606
606
|
const value = { time: millis };
|
|
607
607
|
times.push({ label, value, disabled });
|
|
608
608
|
}
|
|
@@ -14,6 +14,16 @@ export interface IToastAdapter extends IBaseAdapter<IToastComponent> {
|
|
|
14
14
|
removeActionListener(listener: EventListener): void;
|
|
15
15
|
setDismissLabel(label: string): void;
|
|
16
16
|
setActionText(text: string): void;
|
|
17
|
+
addPointerEnterListener(listener: EventListener): void;
|
|
18
|
+
removePointerEnterListener(listener: EventListener): void;
|
|
19
|
+
addPointerLeaveListener(listener: EventListener): void;
|
|
20
|
+
removePointerLeaveListener(listener: EventListener): void;
|
|
21
|
+
addFocusInListener(listener: EventListener): void;
|
|
22
|
+
removeFocusInListener(listener: EventListener): void;
|
|
23
|
+
addFocusOutListener(listener: EventListener): void;
|
|
24
|
+
removeFocusOutListener(listener: EventListener): void;
|
|
25
|
+
addKeyboardListener(listener: EventListener): void;
|
|
26
|
+
removeKeyboardListener(listener: EventListener): void;
|
|
17
27
|
}
|
|
18
28
|
export declare class ToastAdapter extends BaseAdapter<IToastComponent> implements IToastAdapter {
|
|
19
29
|
private _overlayElement;
|
|
@@ -29,4 +39,14 @@ export declare class ToastAdapter extends BaseAdapter<IToastComponent> implement
|
|
|
29
39
|
removeActionListener(listener: EventListener): void;
|
|
30
40
|
setDismissLabel(label: string): void;
|
|
31
41
|
setActionText(text: string): void;
|
|
42
|
+
addPointerEnterListener(listener: EventListener): void;
|
|
43
|
+
removePointerEnterListener(listener: EventListener): void;
|
|
44
|
+
addPointerLeaveListener(listener: EventListener): void;
|
|
45
|
+
removePointerLeaveListener(listener: EventListener): void;
|
|
46
|
+
addFocusInListener(listener: EventListener): void;
|
|
47
|
+
removeFocusInListener(listener: EventListener): void;
|
|
48
|
+
addFocusOutListener(listener: EventListener): void;
|
|
49
|
+
removeFocusOutListener(listener: EventListener): void;
|
|
50
|
+
addKeyboardListener(listener: EventListener): void;
|
|
51
|
+
removeKeyboardListener(listener: EventListener): void;
|
|
32
52
|
}
|
|
@@ -46,4 +46,34 @@ export class ToastAdapter extends BaseAdapter {
|
|
|
46
46
|
this._actionButtonElement.setAttribute('hidden', '');
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
|
+
addPointerEnterListener(listener) {
|
|
50
|
+
this._component.addEventListener('pointerenter', listener);
|
|
51
|
+
}
|
|
52
|
+
removePointerEnterListener(listener) {
|
|
53
|
+
this._component.removeEventListener('pointerenter', listener);
|
|
54
|
+
}
|
|
55
|
+
addPointerLeaveListener(listener) {
|
|
56
|
+
this._component.addEventListener('pointerleave', listener);
|
|
57
|
+
}
|
|
58
|
+
removePointerLeaveListener(listener) {
|
|
59
|
+
this._component.removeEventListener('pointerleave', listener);
|
|
60
|
+
}
|
|
61
|
+
addFocusInListener(listener) {
|
|
62
|
+
this._component.addEventListener('focusin', listener);
|
|
63
|
+
}
|
|
64
|
+
removeFocusInListener(listener) {
|
|
65
|
+
this._component.removeEventListener('focusin', listener);
|
|
66
|
+
}
|
|
67
|
+
addFocusOutListener(listener) {
|
|
68
|
+
this._component.addEventListener('focusout', listener);
|
|
69
|
+
}
|
|
70
|
+
removeFocusOutListener(listener) {
|
|
71
|
+
this._component.removeEventListener('focusout', listener);
|
|
72
|
+
}
|
|
73
|
+
addKeyboardListener(listener) {
|
|
74
|
+
this._component.addEventListener('keydown', listener);
|
|
75
|
+
}
|
|
76
|
+
removeKeyboardListener(listener) {
|
|
77
|
+
this._component.removeEventListener('keydown', listener);
|
|
78
|
+
}
|
|
49
79
|
}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* Copyright Tyler Technologies, Inc.
|
|
4
4
|
* License: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
+
import { IDismissibleStackState, tryDismiss } from '../core/utils/dismissible-stack';
|
|
6
7
|
import { IToastAdapter } from './toast-adapter';
|
|
7
8
|
import { ToastPlacement, ToastTheme } from './toast-constants';
|
|
8
9
|
export interface IToastCore {
|
|
@@ -26,6 +27,13 @@ export declare class ToastCore implements IToastCore {
|
|
|
26
27
|
private _hideTimeout;
|
|
27
28
|
private _actionListener;
|
|
28
29
|
private _closeListener;
|
|
30
|
+
private _isHovered;
|
|
31
|
+
private _isFocused;
|
|
32
|
+
private _pointerEnterListener;
|
|
33
|
+
private _pointerLeaveListener;
|
|
34
|
+
private _focusInListener;
|
|
35
|
+
private _focusOutListener;
|
|
36
|
+
private _keyboardListener;
|
|
29
37
|
constructor(_adapter: IToastAdapter);
|
|
30
38
|
initialize(): void;
|
|
31
39
|
show(): void;
|
|
@@ -34,6 +42,15 @@ export declare class ToastCore implements IToastCore {
|
|
|
34
42
|
}): Promise<void>;
|
|
35
43
|
private _onAction;
|
|
36
44
|
private _onClose;
|
|
45
|
+
private _handlePointerEnter;
|
|
46
|
+
private _handlePointerLeave;
|
|
47
|
+
private _handleFocusIn;
|
|
48
|
+
private _handleFocusOut;
|
|
49
|
+
private _handleKeyboard;
|
|
50
|
+
private _updateTimerState;
|
|
51
|
+
private _pauseTimer;
|
|
52
|
+
private _resumeTimer;
|
|
53
|
+
[tryDismiss](state?: IDismissibleStackState): boolean;
|
|
37
54
|
get open(): boolean;
|
|
38
55
|
set open(value: boolean);
|
|
39
56
|
get duration(): number;
|