@tylertech/forge 3.8.2-dev.0 → 3.9.0-dev.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 +9827 -9331
- package/dist/lib.js +27 -105
- package/dist/lib.js.map +4 -4
- package/dist/toolbar/forge-toolbar.css +1 -0
- package/dist/vscode.css-custom-data.json +950 -943
- package/dist/vscode.html-custom-data.json +819 -772
- package/esm/app-bar/help-button/app-bar-help-button.js +1 -1
- package/esm/app-bar/menu-button/app-bar-menu-button.js +1 -1
- package/esm/app-bar/notification-button/app-bar-notification-button.js +1 -1
- package/esm/app-bar/search/app-bar-search.js +1 -1
- package/esm/autocomplete/autocomplete.js +1 -1
- package/esm/banner/banner.js +1 -1
- package/esm/button/base/base-button-adapter.js +1 -1
- package/esm/button/base/base-button.js +1 -1
- package/esm/calendar/calendar.js +1 -1
- package/esm/chips/chip/chip.js +1 -1
- package/esm/color-picker/color-picker.js +1 -1
- package/esm/core/utils/dismissible-stack.d.ts +5 -1
- package/esm/core/utils/dismissible-stack.js +6 -0
- package/esm/data-table/body/body.d.ts +33 -0
- package/esm/data-table/body/body.js +42 -0
- package/esm/data-table/body/index.d.ts +6 -0
- package/esm/data-table/body/index.js +6 -0
- package/esm/data-table/cell/cell.d.ts +33 -0
- package/esm/data-table/cell/cell.js +42 -0
- package/esm/data-table/cell/index.d.ts +6 -0
- package/esm/data-table/cell/index.js +6 -0
- package/esm/data-table/column/column.d.ts +33 -0
- package/esm/data-table/column/column.js +42 -0
- package/esm/data-table/column/index.d.ts +6 -0
- package/esm/data-table/column/index.js +6 -0
- package/esm/data-table/footer/footer.d.ts +33 -0
- package/esm/data-table/footer/footer.js +42 -0
- package/esm/data-table/footer/index.d.ts +6 -0
- package/esm/data-table/footer/index.js +6 -0
- package/esm/data-table/head/head.d.ts +33 -0
- package/esm/data-table/head/head.js +42 -0
- package/esm/data-table/head/index.d.ts +6 -0
- package/esm/data-table/head/index.js +6 -0
- package/esm/data-table/index.d.ts +12 -0
- package/esm/data-table/index.js +12 -0
- package/esm/data-table/row/index.d.ts +6 -0
- package/esm/data-table/row/index.js +6 -0
- package/esm/data-table/row/row.d.ts +33 -0
- package/esm/data-table/row/row.js +42 -0
- package/esm/data-table/table/index.d.ts +6 -0
- package/esm/data-table/table/index.js +6 -0
- package/esm/data-table/table/table.d.ts +36 -0
- package/esm/data-table/table/table.js +40 -0
- package/esm/date-picker/date-picker.js +1 -1
- package/esm/date-range-picker/date-range-picker.js +1 -1
- package/esm/icon/icon-constants.d.ts +2 -1
- package/esm/icon/icon-constants.js +2 -1
- package/esm/icon/icon-core.js +6 -2
- package/esm/icon/icon-utils.d.ts +2 -1
- package/esm/icon/icon-utils.js +2 -2
- package/esm/icon/icon.d.ts +3 -1
- package/esm/icon/icon.js +1 -1
- package/esm/icon-button/icon-button-core.js +11 -2
- package/esm/list-dropdown/list-dropdown-utils.js +1 -1
- package/esm/list-dropdown/list-dropdown.js +1 -1
- package/esm/menu/menu.js +1 -1
- package/esm/open-icon/open-icon.js +1 -1
- package/esm/paginator/paginator.js +1 -1
- package/esm/popover/popover-constants.d.ts +3 -0
- package/esm/popover/popover-constants.js +4 -2
- package/esm/popover/popover-core.d.ts +4 -0
- package/esm/popover/popover-core.js +20 -0
- package/esm/popover/popover.d.ts +4 -0
- package/esm/popover/popover.js +8 -0
- package/esm/select/select/select.js +1 -1
- package/esm/split-view/split-view-panel/split-view-panel.js +3 -4
- package/esm/stepper/step/step.js +1 -1
- package/esm/table/table-core.js +1 -0
- package/esm/table/table.js +1 -1
- package/esm/tabs/tab-bar/tab-bar-adapter.js +1 -1
- package/esm/tabs/tab-bar/tab-bar-core.d.ts +1 -0
- package/esm/tabs/tab-bar/tab-bar-core.js +27 -30
- package/esm/tabs/tab-bar/tab-bar.js +1 -1
- package/esm/text-field/text-field.js +1 -1
- package/esm/time-picker/time-picker.js +1 -2
- package/esm/toast/toast.js +1 -1
- package/esm/toolbar/toolbar.js +1 -1
- package/package.json +2 -2
- package/sass/data-table/_core.scss +52 -0
- package/sass/data-table/_token-utils.scss +15 -0
- package/sass/data-table/body/body.scss +27 -0
- package/sass/data-table/cell/cell.scss +27 -0
- package/sass/data-table/column/column.scss +27 -0
- package/sass/data-table/footer/footer.scss +27 -0
- package/sass/data-table/head/head.scss +27 -0
- package/sass/data-table/index.scss +12 -0
- package/sass/data-table/row/row.scss +27 -0
- package/sass/data-table/table/table.scss +16 -0
- package/sass/toolbar/_core.scss +5 -0
- package/sass/toolbar/toolbar.scss +4 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright Tyler Technologies, Inc.
|
|
4
|
+
* License: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { TemplateResult } from 'lit';
|
|
7
|
+
import { CUSTOM_ELEMENT_NAME_PROPERTY } from '@tylertech/forge-core';
|
|
8
|
+
import { BaseLitElement } from '../../core/base/base-lit-element';
|
|
9
|
+
export interface IDataTableRowComponent extends BaseLitElement {
|
|
10
|
+
}
|
|
11
|
+
declare global {
|
|
12
|
+
interface HTMLElementTagNameMap {
|
|
13
|
+
'forge-data-table-row': IDataTableRowComponent;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export declare const DATA_TABLE_ROW_TAG_NAME: keyof HTMLElementTagNameMap;
|
|
17
|
+
/**
|
|
18
|
+
* @tag forge-data-table-row
|
|
19
|
+
*
|
|
20
|
+
* @summary Represents a row in a data table.
|
|
21
|
+
*
|
|
22
|
+
* @csspart root - The root container element.
|
|
23
|
+
*
|
|
24
|
+
* @slot - The default slot for row content.
|
|
25
|
+
*
|
|
26
|
+
* @cssclass forge-data-table-row - The data table row class _(required)_.
|
|
27
|
+
*/
|
|
28
|
+
export declare class DataTableRowComponent extends BaseLitElement implements IDataTableRowComponent {
|
|
29
|
+
static styles: import("lit").CSSResult;
|
|
30
|
+
/** @deprecated Used for compatibility with legacy Forge @customElement decorator. */
|
|
31
|
+
static [CUSTOM_ELEMENT_NAME_PROPERTY]: keyof HTMLElementTagNameMap;
|
|
32
|
+
render(): TemplateResult;
|
|
33
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright Tyler Technologies, Inc.
|
|
4
|
+
* License: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
var _a;
|
|
7
|
+
import { __decorate } from "tslib";
|
|
8
|
+
import { html, unsafeCSS } from 'lit';
|
|
9
|
+
import { customElement } from 'lit/decorators.js';
|
|
10
|
+
import { classMap } from 'lit/directives/class-map.js';
|
|
11
|
+
import { CUSTOM_ELEMENT_NAME_PROPERTY } from '@tylertech/forge-core';
|
|
12
|
+
import { BaseLitElement } from '../../core/base/base-lit-element';
|
|
13
|
+
const styles = ':host{display:block}:host([hidden]){display:none}.forge-data-table-row{display:table-row}';
|
|
14
|
+
export const DATA_TABLE_ROW_TAG_NAME = 'forge-data-table-row';
|
|
15
|
+
/**
|
|
16
|
+
* @tag forge-data-table-row
|
|
17
|
+
*
|
|
18
|
+
* @summary Represents a row in a data table.
|
|
19
|
+
*
|
|
20
|
+
* @csspart root - The root container element.
|
|
21
|
+
*
|
|
22
|
+
* @slot - The default slot for row content.
|
|
23
|
+
*
|
|
24
|
+
* @cssclass forge-data-table-row - The data table row class _(required)_.
|
|
25
|
+
*/
|
|
26
|
+
let DataTableRowComponent = class DataTableRowComponent extends BaseLitElement {
|
|
27
|
+
render() {
|
|
28
|
+
return html `
|
|
29
|
+
<div part="root" class=${classMap({ 'forge-data-table-row': true })}>
|
|
30
|
+
<slot></slot>
|
|
31
|
+
</div>
|
|
32
|
+
`;
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
_a = CUSTOM_ELEMENT_NAME_PROPERTY;
|
|
36
|
+
DataTableRowComponent.styles = unsafeCSS(styles);
|
|
37
|
+
/** @deprecated Used for compatibility with legacy Forge @customElement decorator. */
|
|
38
|
+
DataTableRowComponent[_a] = DATA_TABLE_ROW_TAG_NAME;
|
|
39
|
+
DataTableRowComponent = __decorate([
|
|
40
|
+
customElement(DATA_TABLE_ROW_TAG_NAME)
|
|
41
|
+
], DataTableRowComponent);
|
|
42
|
+
export { DataTableRowComponent };
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright Tyler Technologies, Inc.
|
|
4
|
+
* License: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { TemplateResult } from 'lit';
|
|
7
|
+
import { CUSTOM_ELEMENT_NAME_PROPERTY } from '@tylertech/forge-core';
|
|
8
|
+
import { BaseLitElement } from '../../core/base/base-lit-element';
|
|
9
|
+
import '../cell/cell';
|
|
10
|
+
import '../column/column';
|
|
11
|
+
import '../row/row';
|
|
12
|
+
export interface IDataTableComponent extends BaseLitElement {
|
|
13
|
+
}
|
|
14
|
+
declare global {
|
|
15
|
+
interface HTMLElementTagNameMap {
|
|
16
|
+
'forge-data-table': IDataTableComponent;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
export declare const DATA_TABLE_TAG_NAME: keyof HTMLElementTagNameMap;
|
|
20
|
+
/**
|
|
21
|
+
* @tag forge-data-table
|
|
22
|
+
*
|
|
23
|
+
* @summary Data tables display information in a grid-like format of rows and columns.
|
|
24
|
+
*
|
|
25
|
+
* @csspart root - The root container element.
|
|
26
|
+
*
|
|
27
|
+
* @slot - The default slot for data table content.
|
|
28
|
+
*
|
|
29
|
+
* @cssclass forge-data-table - The data table class _(required)_.
|
|
30
|
+
*/
|
|
31
|
+
export declare class DataTableComponent extends BaseLitElement implements IDataTableComponent {
|
|
32
|
+
static styles: import("lit").CSSResult;
|
|
33
|
+
/** @deprecated Used for compatibility with legacy Forge @customElement decorator. */
|
|
34
|
+
static [CUSTOM_ELEMENT_NAME_PROPERTY]: keyof HTMLElementTagNameMap;
|
|
35
|
+
render(): TemplateResult;
|
|
36
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright Tyler Technologies, Inc.
|
|
4
|
+
* License: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
var _a;
|
|
7
|
+
import { __decorate } from "tslib";
|
|
8
|
+
import { html, unsafeCSS } from 'lit';
|
|
9
|
+
import { customElement } from 'lit/decorators.js';
|
|
10
|
+
import { CUSTOM_ELEMENT_NAME_PROPERTY } from '@tylertech/forge-core';
|
|
11
|
+
import { BaseLitElement } from '../../core/base/base-lit-element';
|
|
12
|
+
import '../cell/cell';
|
|
13
|
+
import '../column/column';
|
|
14
|
+
import '../row/row';
|
|
15
|
+
const styles = ':host{display:block;display:table;width:100%;border-collapse:collapse}:host([hidden]){display:none}';
|
|
16
|
+
export const DATA_TABLE_TAG_NAME = 'forge-data-table';
|
|
17
|
+
/**
|
|
18
|
+
* @tag forge-data-table
|
|
19
|
+
*
|
|
20
|
+
* @summary Data tables display information in a grid-like format of rows and columns.
|
|
21
|
+
*
|
|
22
|
+
* @csspart root - The root container element.
|
|
23
|
+
*
|
|
24
|
+
* @slot - The default slot for data table content.
|
|
25
|
+
*
|
|
26
|
+
* @cssclass forge-data-table - The data table class _(required)_.
|
|
27
|
+
*/
|
|
28
|
+
let DataTableComponent = class DataTableComponent extends BaseLitElement {
|
|
29
|
+
render() {
|
|
30
|
+
return html `<slot></slot></div>`;
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
_a = CUSTOM_ELEMENT_NAME_PROPERTY;
|
|
34
|
+
DataTableComponent.styles = unsafeCSS(styles);
|
|
35
|
+
/** @deprecated Used for compatibility with legacy Forge @customElement decorator. */
|
|
36
|
+
DataTableComponent[_a] = DATA_TABLE_TAG_NAME;
|
|
37
|
+
DataTableComponent = __decorate([
|
|
38
|
+
customElement(DATA_TABLE_TAG_NAME)
|
|
39
|
+
], DataTableComponent);
|
|
40
|
+
export { DataTableComponent };
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { __decorate } from "tslib";
|
|
7
7
|
import { attachShadowTemplate, customElement } from '@tylertech/forge-core';
|
|
8
|
-
import { tylIconInsertInvitation } from '@tylertech/tyler-icons
|
|
8
|
+
import { tylIconInsertInvitation } from '@tylertech/tyler-icons';
|
|
9
9
|
import { CalendarComponent } from '../calendar';
|
|
10
10
|
import { IconComponent, IconRegistry } from '../icon';
|
|
11
11
|
import { IconButtonComponent } from '../icon-button';
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { __decorate } from "tslib";
|
|
7
7
|
import { attachShadowTemplate, customElement, coreProperty } from '@tylertech/forge-core';
|
|
8
|
-
import { tylIconDateRange } from '@tylertech/tyler-icons
|
|
8
|
+
import { tylIconDateRange } from '@tylertech/tyler-icons';
|
|
9
9
|
import { CalendarComponent } from '../calendar';
|
|
10
10
|
import { BaseDatePickerComponent } from '../date-picker/base/base-date-picker';
|
|
11
11
|
import { BASE_DATE_PICKER_CONSTANTS } from '../date-picker/base/base-date-picker-constants';
|
|
@@ -31,9 +31,10 @@ export declare const ICON_CONSTANTS: {
|
|
|
31
31
|
};
|
|
32
32
|
strings: {
|
|
33
33
|
DEFAULT_NETWORK_BASE_URL: string;
|
|
34
|
+
ALL_NETWORK_BASE_URL: string;
|
|
34
35
|
};
|
|
35
36
|
};
|
|
36
37
|
export declare const ICON_REGISTRY_KEY: "forgeIcons";
|
|
37
38
|
export type IconUrlBuilder = (name: string, type: IconExternalType) => string;
|
|
38
|
-
export type IconExternalType = '' | 'custom' | 'standard' | 'extended';
|
|
39
|
+
export type IconExternalType = '' | 'custom' | 'standard' | 'extended' | 'all';
|
|
39
40
|
export type IconTheme = Theme | 'text-medium' | 'text-low';
|
|
@@ -23,7 +23,8 @@ const numbers = {
|
|
|
23
23
|
DEFAULT_HEIGHT: 24
|
|
24
24
|
};
|
|
25
25
|
const strings = {
|
|
26
|
-
DEFAULT_NETWORK_BASE_URL: `${CDN_BASE_URL}v1/icons/svg
|
|
26
|
+
DEFAULT_NETWORK_BASE_URL: `${CDN_BASE_URL}v1/icons/svg`,
|
|
27
|
+
ALL_NETWORK_BASE_URL: `${CDN_BASE_URL}v1/icons/svg/all`
|
|
27
28
|
};
|
|
28
29
|
export const ICON_CONSTANTS = {
|
|
29
30
|
elementName,
|
package/esm/icon/icon-core.js
CHANGED
|
@@ -11,7 +11,7 @@ export class IconCore {
|
|
|
11
11
|
this._adapter = _adapter;
|
|
12
12
|
this._lazy = false;
|
|
13
13
|
this._external = false;
|
|
14
|
-
this._externalType = '
|
|
14
|
+
this._externalType = 'all';
|
|
15
15
|
this._lazyListener = this._loadIcon.bind(this);
|
|
16
16
|
}
|
|
17
17
|
initialize() {
|
|
@@ -125,7 +125,10 @@ export class IconCore {
|
|
|
125
125
|
return this._externalUrlBuilder(name, type);
|
|
126
126
|
}
|
|
127
127
|
const setName = sanitizeExternalType(this._externalType);
|
|
128
|
-
|
|
128
|
+
if (['standard', 'extended', 'custom'].includes(setName)) {
|
|
129
|
+
return `${ICON_CONSTANTS.strings.DEFAULT_NETWORK_BASE_URL}/${setName}/${name}.svg`;
|
|
130
|
+
}
|
|
131
|
+
return `${ICON_CONSTANTS.strings.ALL_NETWORK_BASE_URL}/${name}.svg`;
|
|
129
132
|
}
|
|
130
133
|
get name() {
|
|
131
134
|
return this._name;
|
|
@@ -177,6 +180,7 @@ export class IconCore {
|
|
|
177
180
|
return this._externalType;
|
|
178
181
|
}
|
|
179
182
|
set externalType(value) {
|
|
183
|
+
value = sanitizeExternalType(value);
|
|
180
184
|
if (this._externalType !== value) {
|
|
181
185
|
this._externalType = value;
|
|
182
186
|
this._safeApplyIcon();
|
package/esm/icon/icon-utils.d.ts
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* License: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { IIconDescriptor } from './icon-registry';
|
|
7
|
+
import { IconExternalType } from './icon-constants';
|
|
7
8
|
/**
|
|
8
9
|
* Creates an SVG element from a string of SVG content, and sanitizes it for injection into the DOM.
|
|
9
10
|
*/
|
|
@@ -12,4 +13,4 @@ export declare function getCachedIcon(key: string): IIconDescriptor | undefined;
|
|
|
12
13
|
export declare function awaitIconDefinition(key: string, listener: () => void): void;
|
|
13
14
|
export declare function removeIconListener(key: string, listener: () => void): void;
|
|
14
15
|
export declare function fetchIconContent(url: string, name: string): Promise<string>;
|
|
15
|
-
export declare function sanitizeExternalType(type: string):
|
|
16
|
+
export declare function sanitizeExternalType(type: string): IconExternalType;
|
package/esm/icon/icon-utils.js
CHANGED
|
@@ -60,6 +60,6 @@ export function fetchIconContent(url, name) {
|
|
|
60
60
|
return request || Promise.resolve('');
|
|
61
61
|
}
|
|
62
62
|
export function sanitizeExternalType(type) {
|
|
63
|
-
const isValidType = ['standard', 'extended', 'custom'].includes(type);
|
|
64
|
-
return isValidType ? type : '';
|
|
63
|
+
const isValidType = ['standard', 'extended', 'custom', 'all'].includes(type);
|
|
64
|
+
return isValidType ? type : 'all';
|
|
65
65
|
}
|
package/esm/icon/icon.d.ts
CHANGED
|
@@ -10,6 +10,7 @@ export interface IIconProperties {
|
|
|
10
10
|
src: string | undefined;
|
|
11
11
|
lazy: boolean;
|
|
12
12
|
external: boolean;
|
|
13
|
+
/** @deprecated This will be removed in a future version. */
|
|
13
14
|
externalType: IconExternalType;
|
|
14
15
|
externalUrlBuilder: IconUrlBuilder;
|
|
15
16
|
theme: IconTheme;
|
|
@@ -32,7 +33,7 @@ declare global {
|
|
|
32
33
|
* @property {string} src - Provides the ability to set the SVG string content directly.
|
|
33
34
|
* @property {boolean} [lazy=false] - Controls whether the icon will be loaded dynamically when it comes into view. False by default.
|
|
34
35
|
* @property {boolean} [external=false] - Controls whether external network requests are allowed for this icon. Only pertains for icons that aren't already defined in the registry.
|
|
35
|
-
* @property {IconExternalType} [externalType="
|
|
36
|
+
* @property {IconExternalType} [externalType="all"] - **(Deprecated)** The type of icon to load externally. Possible values: "all" (default), "standard", "extended", "custom".
|
|
36
37
|
* @property {IconUrlBuilder} externalUrlBuilder - A callback that can be provided to generate a URL that will be used to fetch an SVG icon.
|
|
37
38
|
* @property {string} viewbox - A custom value to apply to the `viewBox` attribute on the internal `<svg>` element.
|
|
38
39
|
* @property {IconTheme} theme - The theme to apply to the icon.
|
|
@@ -79,6 +80,7 @@ export declare class IconComponent extends BaseComponent implements IIconCompone
|
|
|
79
80
|
external: boolean;
|
|
80
81
|
/**
|
|
81
82
|
* The type of icon to load externally. Possible values: "standard", "extended", "custom".
|
|
83
|
+
* @deprecated This will be removed in a future version.
|
|
82
84
|
* @attribute external-type
|
|
83
85
|
*/
|
|
84
86
|
externalType: IconExternalType;
|
package/esm/icon/icon.js
CHANGED
|
@@ -20,7 +20,7 @@ const styles = ':host{--_icon-color:var(--forge-icon-color, currentColor);--_ico
|
|
|
20
20
|
* @property {string} src - Provides the ability to set the SVG string content directly.
|
|
21
21
|
* @property {boolean} [lazy=false] - Controls whether the icon will be loaded dynamically when it comes into view. False by default.
|
|
22
22
|
* @property {boolean} [external=false] - Controls whether external network requests are allowed for this icon. Only pertains for icons that aren't already defined in the registry.
|
|
23
|
-
* @property {IconExternalType} [externalType="
|
|
23
|
+
* @property {IconExternalType} [externalType="all"] - **(Deprecated)** The type of icon to load externally. Possible values: "all" (default), "standard", "extended", "custom".
|
|
24
24
|
* @property {IconUrlBuilder} externalUrlBuilder - A callback that can be provided to generate a URL that will be used to fetch an SVG icon.
|
|
25
25
|
* @property {string} viewbox - A custom value to apply to the `viewBox` attribute on the internal `<svg>` element.
|
|
26
26
|
* @property {IconTheme} theme - The theme to apply to the icon.
|
|
@@ -29,9 +29,18 @@ export class IconButtonCore extends BaseButtonCore {
|
|
|
29
29
|
// Update internal state first so listeners can access the new state
|
|
30
30
|
const originalPressed = this._pressed;
|
|
31
31
|
this._pressed = !this._pressed;
|
|
32
|
-
const
|
|
32
|
+
const event = new CustomEvent(ICON_BUTTON_CONSTANTS.events.TOGGLE, {
|
|
33
|
+
detail: {
|
|
34
|
+
pressed: this._pressed,
|
|
35
|
+
toggle: this._toggle
|
|
36
|
+
},
|
|
37
|
+
bubbles: true,
|
|
38
|
+
cancelable: true,
|
|
39
|
+
composed: true
|
|
40
|
+
});
|
|
41
|
+
this._adapter.dispatchHostEvent(event);
|
|
33
42
|
this._pressed = originalPressed;
|
|
34
|
-
if (
|
|
43
|
+
if (event.defaultPrevented) {
|
|
35
44
|
return;
|
|
36
45
|
}
|
|
37
46
|
this.pressed = !originalPressed;
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* License: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { addClass, getEventPath, isDeepEqual, isDefined, isObject } from '@tylertech/forge-core';
|
|
7
|
-
import { tylIconCheckBox, tylIconCheckBoxOutlineBlank } from '@tylertech/tyler-icons
|
|
7
|
+
import { tylIconCheckBox, tylIconCheckBoxOutlineBlank } from '@tylertech/tyler-icons';
|
|
8
8
|
import { ICON_CLASS_NAME } from '../constants';
|
|
9
9
|
import { LINEAR_PROGRESS_CONSTANTS } from '../linear-progress';
|
|
10
10
|
import { LIST_CONSTANTS } from '../list/list';
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Copyright Tyler Technologies, Inc.
|
|
4
4
|
* License: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import { tylIconCheckBox, tylIconCheckBoxOutlineBlank } from '@tylertech/tyler-icons
|
|
6
|
+
import { tylIconCheckBox, tylIconCheckBoxOutlineBlank } from '@tylertech/tyler-icons';
|
|
7
7
|
import { ListDropdownCore } from './list-dropdown-core';
|
|
8
8
|
import { ListDropdownAdapter } from './list-dropdown-adapter';
|
|
9
9
|
import { IconRegistry } from '../icon';
|
package/esm/menu/menu.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { __decorate } from "tslib";
|
|
7
7
|
import { attachShadowTemplate, coerceBoolean, customElement, ensureChild, coreProperty, isDefined } from '@tylertech/forge-core';
|
|
8
|
-
import { tylIconArrowRight } from '@tylertech/tyler-icons
|
|
8
|
+
import { tylIconArrowRight } from '@tylertech/tyler-icons';
|
|
9
9
|
import { IconRegistry } from '../icon';
|
|
10
10
|
import { ListComponent } from '../list';
|
|
11
11
|
import { ListDropdownAware } from '../list-dropdown/list-dropdown-aware';
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { __decorate } from "tslib";
|
|
7
7
|
import { customElement, attachShadowTemplate, coerceBoolean } from '@tylertech/forge-core';
|
|
8
|
-
import { tylIconKeyboardArrowRight, tylIconKeyboardArrowDown } from '@tylertech/tyler-icons
|
|
8
|
+
import { tylIconKeyboardArrowRight, tylIconKeyboardArrowDown } from '@tylertech/tyler-icons';
|
|
9
9
|
import { OPEN_ICON_CONSTANTS } from './open-icon-constants';
|
|
10
10
|
import { IconRegistry, IconComponent } from '../icon';
|
|
11
11
|
import { BaseComponent } from '../core/base/base-component';
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { __decorate } from "tslib";
|
|
7
7
|
import { customElement, attachShadowTemplate, coreProperty, coerceBoolean, coerceNumberArray, coerceNumber } from '@tylertech/forge-core';
|
|
8
|
-
import { tylIconFirstPage, tylIconLastPage, tylIconKeyboardArrowRight, tylIconKeyboardArrowLeft } from '@tylertech/tyler-icons
|
|
8
|
+
import { tylIconFirstPage, tylIconLastPage, tylIconKeyboardArrowRight, tylIconKeyboardArrowLeft } from '@tylertech/tyler-icons';
|
|
9
9
|
import { PAGINATOR_CONSTANTS } from './paginator-constants';
|
|
10
10
|
import { PaginatorCore } from './paginator-core';
|
|
11
11
|
import { PaginatorAdapter } from './paginator-adapter';
|
|
@@ -15,6 +15,7 @@ export declare const POPOVER_CONSTANTS: {
|
|
|
15
15
|
HOVER_DELAY: string;
|
|
16
16
|
HOVER_DISMISS_DELAY: string;
|
|
17
17
|
PRESET: string;
|
|
18
|
+
DISTINCT: string;
|
|
18
19
|
};
|
|
19
20
|
attributes: {
|
|
20
21
|
OPEN: string;
|
|
@@ -28,6 +29,7 @@ export declare const POPOVER_CONSTANTS: {
|
|
|
28
29
|
HOVER_DELAY: string;
|
|
29
30
|
HOVER_DISMISS_DELAY: string;
|
|
30
31
|
PRESET: string;
|
|
32
|
+
DISTINCT: string;
|
|
31
33
|
};
|
|
32
34
|
classes: {
|
|
33
35
|
ARROW: string;
|
|
@@ -48,6 +50,7 @@ export declare const POPOVER_CONSTANTS: {
|
|
|
48
50
|
TRIGGER_TYPE: PopoverTriggerType;
|
|
49
51
|
HOVER_DELAY: number;
|
|
50
52
|
PRESET: PopoverPreset;
|
|
53
|
+
DISTINCT: string;
|
|
51
54
|
};
|
|
52
55
|
};
|
|
53
56
|
export declare const POPOVER_HOVER_TIMEOUT = 500;
|
|
@@ -13,7 +13,8 @@ const observedAttributes = {
|
|
|
13
13
|
PERSISTENT_HOVER: 'persistent-hover',
|
|
14
14
|
HOVER_DELAY: 'hover-delay',
|
|
15
15
|
HOVER_DISMISS_DELAY: 'hover-dismiss-delay',
|
|
16
|
-
PRESET: 'preset'
|
|
16
|
+
PRESET: 'preset',
|
|
17
|
+
DISTINCT: 'distinct'
|
|
17
18
|
};
|
|
18
19
|
const attributes = {
|
|
19
20
|
...observedAttributes,
|
|
@@ -39,7 +40,8 @@ const events = {
|
|
|
39
40
|
const defaults = {
|
|
40
41
|
TRIGGER_TYPE: 'click',
|
|
41
42
|
HOVER_DELAY: 0,
|
|
42
|
-
PRESET: 'popover'
|
|
43
|
+
PRESET: 'popover',
|
|
44
|
+
DISTINCT: '<default>'
|
|
43
45
|
};
|
|
44
46
|
export const POPOVER_CONSTANTS = {
|
|
45
47
|
elementName,
|
|
@@ -18,6 +18,7 @@ export interface IPopoverCore extends IOverlayAwareCore {
|
|
|
18
18
|
hoverDismissDelay: number;
|
|
19
19
|
hoverDelay: number;
|
|
20
20
|
preset: PopoverPreset;
|
|
21
|
+
distinct: string | null;
|
|
21
22
|
hideAsync(): Promise<void>;
|
|
22
23
|
dispatchBeforeToggleEvent(state: IDismissibleStackState): boolean;
|
|
23
24
|
}
|
|
@@ -31,6 +32,7 @@ export declare class PopoverCore extends PopoverCore_base implements IPopoverCor
|
|
|
31
32
|
private _hoverDismissDelay;
|
|
32
33
|
private _hoverDelay;
|
|
33
34
|
private _preset;
|
|
35
|
+
private _distinct;
|
|
34
36
|
private _previouslyFocusedElement;
|
|
35
37
|
private _hoverAnchorLeaveTimeout;
|
|
36
38
|
private _popoverMouseleaveTimeout;
|
|
@@ -146,5 +148,7 @@ export declare class PopoverCore extends PopoverCore_base implements IPopoverCor
|
|
|
146
148
|
set hoverDismissDelay(value: number);
|
|
147
149
|
get preset(): PopoverPreset;
|
|
148
150
|
set preset(value: PopoverPreset);
|
|
151
|
+
get distinct(): string | null;
|
|
152
|
+
set distinct(value: string | null);
|
|
149
153
|
}
|
|
150
154
|
export {};
|
|
@@ -19,6 +19,7 @@ export class PopoverCore extends WithLongpressListener((OverlayAwareCore)) {
|
|
|
19
19
|
this._hoverDismissDelay = POPOVER_HOVER_TIMEOUT;
|
|
20
20
|
this._hoverDelay = POPOVER_CONSTANTS.defaults.HOVER_DELAY;
|
|
21
21
|
this._preset = POPOVER_CONSTANTS.defaults.PRESET;
|
|
22
|
+
this._distinct = null;
|
|
22
23
|
this._previouslyFocusedElement = null;
|
|
23
24
|
// Click trigger listeners
|
|
24
25
|
this._anchorClickListener = this._onAnchorClick.bind(this);
|
|
@@ -102,6 +103,11 @@ export class PopoverCore extends WithLongpressListener((OverlayAwareCore)) {
|
|
|
102
103
|
}
|
|
103
104
|
this._previouslyFocusedElement = this._adapter.captureFocusedElement();
|
|
104
105
|
this._adapter.setOverlayOpen(true);
|
|
106
|
+
if (this._distinct) {
|
|
107
|
+
const allPopovers = DismissibleStack.instance.getAll().filter(el => el.tagName.toLowerCase() === 'forge-popover');
|
|
108
|
+
const contextPopovers = allPopovers.filter(popover => popover.distinct === this._distinct);
|
|
109
|
+
contextPopovers.filter(popover => popover !== this._adapter.hostElement).forEach(popover => (popover.open = false));
|
|
110
|
+
}
|
|
105
111
|
if (!this.overlayElement.persistent) {
|
|
106
112
|
DismissibleStack.instance.add(this._adapter.hostElement);
|
|
107
113
|
}
|
|
@@ -518,4 +524,18 @@ export class PopoverCore extends WithLongpressListener((OverlayAwareCore)) {
|
|
|
518
524
|
this._adapter.toggleHostAttribute(POPOVER_CONSTANTS.attributes.PRESET, hasPreset, this._preset);
|
|
519
525
|
}
|
|
520
526
|
}
|
|
527
|
+
get distinct() {
|
|
528
|
+
return this._distinct;
|
|
529
|
+
}
|
|
530
|
+
set distinct(value) {
|
|
531
|
+
value = value ?? null;
|
|
532
|
+
if (this._distinct !== value) {
|
|
533
|
+
if (this._adapter.hasHostAttribute(POPOVER_CONSTANTS.attributes.DISTINCT) && !value) {
|
|
534
|
+
this._distinct = POPOVER_CONSTANTS.defaults.DISTINCT;
|
|
535
|
+
}
|
|
536
|
+
else {
|
|
537
|
+
this._distinct = value;
|
|
538
|
+
}
|
|
539
|
+
}
|
|
540
|
+
}
|
|
521
541
|
}
|
package/esm/popover/popover.d.ts
CHANGED
|
@@ -16,6 +16,7 @@ export interface IPopoverProperties extends IOverlayAware, IDismissible {
|
|
|
16
16
|
hoverDelay: number;
|
|
17
17
|
hoverDismissDelay: number;
|
|
18
18
|
preset: PopoverPreset;
|
|
19
|
+
distinct: string | null;
|
|
19
20
|
}
|
|
20
21
|
export interface IPopoverComponent extends IPopoverProperties {
|
|
21
22
|
hideAsync(): Promise<void>;
|
|
@@ -44,6 +45,7 @@ declare global {
|
|
|
44
45
|
* @property {number} [hoverDismissDelay=500] - The delay in milliseconds before the popover is dismissed when the user hovers outside of the popover.
|
|
45
46
|
* @property {number} [hoverDelay=0] - The delay in milliseconds before the popover is shown.
|
|
46
47
|
* @property {PopoverPreset} [preset="popover"] - The preset to use for the popover.
|
|
48
|
+
* @property {string | null} [distinct=null] - Enforces that this popover should be the only one open in the same context. Use a unique name otherwise a default context will be used.
|
|
47
49
|
*
|
|
48
50
|
* @globalconfig placement
|
|
49
51
|
* @globalconfig animationType
|
|
@@ -64,6 +66,7 @@ declare global {
|
|
|
64
66
|
* @attribute {string} [hover-dismiss-delay=500] - The delay in milliseconds before the popover is dismissed when the user hovers outside of the popover.
|
|
65
67
|
* @attribute {number} [hover-delay=0] - The delay in milliseconds before the popover is shown.
|
|
66
68
|
* @attribute {string} [preset="popover"] - The preset to use for the popover.
|
|
69
|
+
* @attribute {string | null} [distinct=null] - Enforces that this popover should be the only one open in the same context. Use a unique name otherwise a default context will be used.
|
|
67
70
|
*
|
|
68
71
|
* @event {CustomEvent<IPopoverToggleEventData>} forge-popover-beforetoggle - Dispatches before the popover is toggled, and is cancelable.
|
|
69
72
|
* @event {CustomEvent<IPopoverToggleEventData>} forge-popover-toggle - Dispatches after the popover is toggled.
|
|
@@ -125,6 +128,7 @@ export declare class PopoverComponent extends OverlayAware<IPopoverCore> impleme
|
|
|
125
128
|
hoverDelay: number;
|
|
126
129
|
hoverDismissDelay: number;
|
|
127
130
|
preset: PopoverPreset;
|
|
131
|
+
distinct: string | null;
|
|
128
132
|
/**
|
|
129
133
|
* Hides the popover, and returns a `Promise` that resolves when the hide animation is complete.
|
|
130
134
|
*/
|
package/esm/popover/popover.js
CHANGED
|
@@ -29,6 +29,7 @@ const styles = '@keyframes zoomin{from{transform:scale(.8)}to{transform:scale(1)
|
|
|
29
29
|
* @property {number} [hoverDismissDelay=500] - The delay in milliseconds before the popover is dismissed when the user hovers outside of the popover.
|
|
30
30
|
* @property {number} [hoverDelay=0] - The delay in milliseconds before the popover is shown.
|
|
31
31
|
* @property {PopoverPreset} [preset="popover"] - The preset to use for the popover.
|
|
32
|
+
* @property {string | null} [distinct=null] - Enforces that this popover should be the only one open in the same context. Use a unique name otherwise a default context will be used.
|
|
32
33
|
*
|
|
33
34
|
* @globalconfig placement
|
|
34
35
|
* @globalconfig animationType
|
|
@@ -49,6 +50,7 @@ const styles = '@keyframes zoomin{from{transform:scale(.8)}to{transform:scale(1)
|
|
|
49
50
|
* @attribute {string} [hover-dismiss-delay=500] - The delay in milliseconds before the popover is dismissed when the user hovers outside of the popover.
|
|
50
51
|
* @attribute {number} [hover-delay=0] - The delay in milliseconds before the popover is shown.
|
|
51
52
|
* @attribute {string} [preset="popover"] - The preset to use for the popover.
|
|
53
|
+
* @attribute {string | null} [distinct=null] - Enforces that this popover should be the only one open in the same context. Use a unique name otherwise a default context will be used.
|
|
52
54
|
*
|
|
53
55
|
* @event {CustomEvent<IPopoverToggleEventData>} forge-popover-beforetoggle - Dispatches before the popover is toggled, and is cancelable.
|
|
54
56
|
* @event {CustomEvent<IPopoverToggleEventData>} forge-popover-toggle - Dispatches after the popover is toggled.
|
|
@@ -139,6 +141,9 @@ let PopoverComponent = class PopoverComponent extends OverlayAware {
|
|
|
139
141
|
case POPOVER_CONSTANTS.observedAttributes.PRESET:
|
|
140
142
|
this.preset = newValue;
|
|
141
143
|
return;
|
|
144
|
+
case POPOVER_CONSTANTS.observedAttributes.DISTINCT:
|
|
145
|
+
this.distinct = !newValue ? null : newValue.trim();
|
|
146
|
+
return;
|
|
142
147
|
}
|
|
143
148
|
super.attributeChangedCallback(name, oldValue, newValue);
|
|
144
149
|
}
|
|
@@ -173,6 +178,9 @@ __decorate([
|
|
|
173
178
|
__decorate([
|
|
174
179
|
coreProperty()
|
|
175
180
|
], PopoverComponent.prototype, "preset", void 0);
|
|
181
|
+
__decorate([
|
|
182
|
+
coreProperty()
|
|
183
|
+
], PopoverComponent.prototype, "distinct", void 0);
|
|
176
184
|
PopoverComponent = __decorate([
|
|
177
185
|
customElement({
|
|
178
186
|
name: POPOVER_CONSTANTS.elementName,
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { __decorate } from "tslib";
|
|
7
7
|
import { attachShadowTemplate, coerceBoolean, coreProperty, customElement } from '@tylertech/forge-core';
|
|
8
|
-
import { tylIconCheckBox, tylIconCheckBoxOutlineBlank } from '@tylertech/tyler-icons
|
|
8
|
+
import { tylIconCheckBox, tylIconCheckBoxOutlineBlank } from '@tylertech/tyler-icons';
|
|
9
9
|
import { CircularProgressComponent } from '../../circular-progress';
|
|
10
10
|
import { getFormValue, getValidationMessage, inputType, internals, setDefaultAria, setValidity } from '../../constants';
|
|
11
11
|
import { WithFocusable } from '../../core/mixins/focus/with-focusable';
|
|
@@ -5,17 +5,16 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { __decorate } from "tslib";
|
|
7
7
|
import { customElement, attachShadowTemplate, coreProperty, coerceBoolean, coerceNumber } from '@tylertech/forge-core';
|
|
8
|
-
import { tylIconDragVerticalVariant } from '@tylertech/tyler-icons
|
|
9
|
-
import { tylIconDragHandle } from '@tylertech/tyler-icons/standard';
|
|
8
|
+
import { tylIconDragHandle, tylIconDragVerticalVariant } from '@tylertech/tyler-icons';
|
|
10
9
|
import { BaseComponent } from '../../core/base/base-component';
|
|
11
10
|
import { SPLIT_VIEW_PANEL_CONSTANTS } from './split-view-panel-constants';
|
|
12
11
|
import { SplitViewPanelCore } from './split-view-panel-core';
|
|
13
12
|
import { SplitViewPanelAdapter } from './split-view-panel-adapter';
|
|
14
13
|
import { IconComponent, IconRegistry } from '../../icon';
|
|
15
|
-
const template = '<template><div class=\"forge-split-view-panel\" id=\"root\" part=\"root\"><div class=\"forge-split-view-panel__handle\" id=\"handle\" part=\"handle\" role=\"separator\" aria-controls=\"content\" aria-grabbed=\"false\" tabindex=\"0\"><forge-icon class=\"forge-split-view-panel__icon\" id=\"icon\" part=\"icon\"></forge-icon><forge-state-layer target=\"handle\" id=\"state-layer\" exportparts=\"surface:state-layer\"></forge-state-layer><forge-focus-indicator inward target=\"handle\" part=\"focus-indicator\"></forge-focus-indicator></div><div class=\"forge-split-view-panel__content\" id=\"content\" part=\"content\" role=\"group\"><slot></slot></div></div></template>';
|
|
16
|
-
const styles = '.forge-split-view-panel{display:flex;width:100%;height:100%;overflow:hidden}.forge-split-view-panel__handle{color:var(--forge-theme-text-medium,rgba(0,0,0,.6));background-color:var(--forge-theme-outline,#e0e0e0);position:relative;display:flex;flex-shrink:0;justify-content:center;align-items:center;outline:0}.forge-split-view-panel__content{flex:1;overflow:hidden}.forge-split-view-panel--closed{display:none}.forge-split-view-panel--disabled #handle{pointer-events:none}.forge-split-view-panel--disabled .forge-split-view-panel__icon{display:none}.forge-split-view-panel[orientation=horizontal]{min-width:var(--forge-split-view-handle-width,8px);width:calc(var(--forge-split-view-panel-size,unset) + var(--forge-split-view-handle-width,8px));flex-direction:row}.forge-split-view-panel[orientation=horizontal] .forge-split-view-panel__handle{width:var(--forge-split-view-handle-width,8px);cursor:var(--forge-split-view-panel-cursor)}.forge-split-view-panel[orientation=horizontal].forge-split-view-panel--closing[resizable=end]{position:absolute;top:0;left:0;animation-name:uez234f;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1))}@keyframes uez234f{from{transform:none}to{transform:translateX(-100%)}}.forge-split-view-panel[orientation=horizontal].forge-split-view-panel--closing[resizable=start]{position:absolute;top:0;right:0;animation-name:uez234v;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1))}@keyframes uez234v{from{transform:none}to{transform:translateX(100%)}}.forge-split-view-panel[orientation=horizontal].forge-split-view-panel--opening[resizable=end]{position:absolute;top:0;left:0;animation-name:uez235n;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1));animation-direction:reverse}@keyframes uez235n{from{transform:none}to{transform:translateX(-100%)}}.forge-split-view-panel[orientation=horizontal].forge-split-view-panel--opening[resizable=start]{position:absolute;top:0;right:0;animation-name:uez236i;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1));animation-direction:reverse}@keyframes uez236i{from{transform:none}to{transform:translateX(100%)}}.forge-split-view-panel[orientation=vertical]{min-height:var(--forge-split-view-handle-width,8px);height:calc(var(--forge-split-view-panel-size,unset) + var(--forge-split-view-handle-width,8px));flex-direction:column}.forge-split-view-panel[orientation=vertical] .forge-split-view-panel__handle{height:var(--forge-split-view-handle-width,8px);cursor:var(--forge-split-view-panel-cursor)}.forge-split-view-panel[orientation=vertical].forge-split-view-panel--closing[resizable=end]{position:absolute;top:0;left:0;animation-name:uez236l;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1))}@keyframes uez236l{from{transform:none}to{transform:translateY(-100%)}}.forge-split-view-panel[orientation=vertical].forge-split-view-panel--closing[resizable=start]{position:absolute;bottom:0;left:0;animation-name:uez237k;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1))}@keyframes uez237k{from{transform:none}to{transform:translateY(100%)}}.forge-split-view-panel[orientation=vertical].forge-split-view-panel--opening[resizable=end]{position:absolute;top:0;left:0;animation-name:uez237p;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1));animation-direction:reverse}@keyframes uez237p{from{transform:none}to{transform:translateY(-100%)}}.forge-split-view-panel[orientation=vertical].forge-split-view-panel--opening[resizable=start]{position:absolute;bottom:0;left:0;animation-name:uez2389;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1));animation-direction:reverse}@keyframes uez2389{from{transform:none}to{transform:translateY(100%)}}:host{z-index:var(--forge-split-view-animating-layer)!important;display:block;position:relative;height:100%;width:100%;flex:0}:host([hidden]){display:none}:host(:not([resizable=start],[resizable=end])){flex:1}:host(:not([resizable=start],[resizable=end])) .forge-split-view-panel{width:100%;height:100%;min-width:0;min-height:0}:host(:not([resizable=start],[resizable=end])) .forge-split-view-panel__handle{display:none}forge-focus-indicator{--forge-focus-indicator-active-width:2px}';
|
|
17
14
|
import { StateLayerComponent } from '../../state-layer';
|
|
18
15
|
import { FocusIndicatorComponent } from '../../focus-indicator';
|
|
16
|
+
const template = '<template><div class=\"forge-split-view-panel\" id=\"root\" part=\"root\"><div class=\"forge-split-view-panel__handle\" id=\"handle\" part=\"handle\" role=\"separator\" aria-controls=\"content\" aria-grabbed=\"false\" tabindex=\"0\"><forge-icon class=\"forge-split-view-panel__icon\" id=\"icon\" part=\"icon\"></forge-icon><forge-state-layer target=\"handle\" id=\"state-layer\" exportparts=\"surface:state-layer\"></forge-state-layer><forge-focus-indicator inward target=\"handle\" part=\"focus-indicator\"></forge-focus-indicator></div><div class=\"forge-split-view-panel__content\" id=\"content\" part=\"content\" role=\"group\"><slot></slot></div></div></template>';
|
|
17
|
+
const styles = '.forge-split-view-panel{display:flex;width:100%;height:100%;overflow:hidden}.forge-split-view-panel__handle{color:var(--forge-theme-text-medium,rgba(0,0,0,.6));background-color:var(--forge-theme-outline,#e0e0e0);position:relative;display:flex;flex-shrink:0;justify-content:center;align-items:center;outline:0}.forge-split-view-panel__content{flex:1;overflow:hidden}.forge-split-view-panel--closed{display:none}.forge-split-view-panel--disabled #handle{pointer-events:none}.forge-split-view-panel--disabled .forge-split-view-panel__icon{display:none}.forge-split-view-panel[orientation=horizontal]{min-width:var(--forge-split-view-handle-width,8px);width:calc(var(--forge-split-view-panel-size,unset) + var(--forge-split-view-handle-width,8px));flex-direction:row}.forge-split-view-panel[orientation=horizontal] .forge-split-view-panel__handle{width:var(--forge-split-view-handle-width,8px);cursor:var(--forge-split-view-panel-cursor)}.forge-split-view-panel[orientation=horizontal].forge-split-view-panel--closing[resizable=end]{position:absolute;top:0;left:0;animation-name:uwedhbm;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1))}@keyframes uwedhbm{from{transform:none}to{transform:translateX(-100%)}}.forge-split-view-panel[orientation=horizontal].forge-split-view-panel--closing[resizable=start]{position:absolute;top:0;right:0;animation-name:uwedhbz;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1))}@keyframes uwedhbz{from{transform:none}to{transform:translateX(100%)}}.forge-split-view-panel[orientation=horizontal].forge-split-view-panel--opening[resizable=end]{position:absolute;top:0;left:0;animation-name:uwedhcs;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1));animation-direction:reverse}@keyframes uwedhcs{from{transform:none}to{transform:translateX(-100%)}}.forge-split-view-panel[orientation=horizontal].forge-split-view-panel--opening[resizable=start]{position:absolute;top:0;right:0;animation-name:uwedhd4;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1));animation-direction:reverse}@keyframes uwedhd4{from{transform:none}to{transform:translateX(100%)}}.forge-split-view-panel[orientation=vertical]{min-height:var(--forge-split-view-handle-width,8px);height:calc(var(--forge-split-view-panel-size,unset) + var(--forge-split-view-handle-width,8px));flex-direction:column}.forge-split-view-panel[orientation=vertical] .forge-split-view-panel__handle{height:var(--forge-split-view-handle-width,8px);cursor:var(--forge-split-view-panel-cursor)}.forge-split-view-panel[orientation=vertical].forge-split-view-panel--closing[resizable=end]{position:absolute;top:0;left:0;animation-name:uwedhd8;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1))}@keyframes uwedhd8{from{transform:none}to{transform:translateY(-100%)}}.forge-split-view-panel[orientation=vertical].forge-split-view-panel--closing[resizable=start]{position:absolute;bottom:0;left:0;animation-name:uwedhds;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1))}@keyframes uwedhds{from{transform:none}to{transform:translateY(100%)}}.forge-split-view-panel[orientation=vertical].forge-split-view-panel--opening[resizable=end]{position:absolute;top:0;left:0;animation-name:uwedheb;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1));animation-direction:reverse}@keyframes uwedheb{from{transform:none}to{transform:translateY(-100%)}}.forge-split-view-panel[orientation=vertical].forge-split-view-panel--opening[resizable=start]{position:absolute;bottom:0;left:0;animation-name:uwedher;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1));animation-direction:reverse}@keyframes uwedher{from{transform:none}to{transform:translateY(100%)}}:host{z-index:var(--forge-split-view-animating-layer)!important;display:block;position:relative;height:100%;width:100%;flex:0}:host([hidden]){display:none}:host(:not([resizable=start],[resizable=end])){flex:1}:host(:not([resizable=start],[resizable=end])) .forge-split-view-panel{width:100%;height:100%;min-width:0;min-height:0}:host(:not([resizable=start],[resizable=end])) .forge-split-view-panel__handle{display:none}forge-focus-indicator{--forge-focus-indicator-active-width:2px}';
|
|
19
18
|
/**
|
|
20
19
|
* @tag forge-split-view-panel
|
|
21
20
|
*
|
package/esm/stepper/step/step.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { __decorate } from "tslib";
|
|
7
7
|
import { attachShadowTemplate, coerceBoolean, coerceNumber, customElement, coreProperty } from '@tylertech/forge-core';
|
|
8
|
-
import { tylIconModeEdit, tylIconWarning, tylIconCheck, tylIconBlock, tylIconKeyboardArrowDown } from '@tylertech/tyler-icons
|
|
8
|
+
import { tylIconModeEdit, tylIconWarning, tylIconCheck, tylIconBlock, tylIconKeyboardArrowDown } from '@tylertech/tyler-icons';
|
|
9
9
|
import { StepAdapter } from './step-adapter';
|
|
10
10
|
import { STEP_CONSTANTS } from './step-constants';
|
|
11
11
|
import { StepCore } from './step-core';
|
package/esm/table/table-core.js
CHANGED
|
@@ -573,6 +573,7 @@ export class TableCore {
|
|
|
573
573
|
* Handles a row being selected/deselected.
|
|
574
574
|
*/
|
|
575
575
|
_onRowSelected(evt) {
|
|
576
|
+
// TODO: We need to ignore this if the checkbox is disabled (which could happen in user code)
|
|
576
577
|
// We handle row selection manually with either a pointerdown or keydown event (space key), so we listen
|
|
577
578
|
// for the change event as well to prevent checking the checkbox being checked by the time the event reaches us
|
|
578
579
|
if (evt.type === 'change') {
|
package/esm/table/table.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { __decorate } from "tslib";
|
|
7
7
|
import { coerceBoolean, coerceNumber, customElement, coreProperty } from '@tylertech/forge-core';
|
|
8
|
-
import { tylIconArrowDownward } from '@tylertech/tyler-icons
|
|
8
|
+
import { tylIconArrowDownward } from '@tylertech/tyler-icons';
|
|
9
9
|
import { ExpansionPanelComponent } from '../expansion-panel';
|
|
10
10
|
import { CheckboxComponent } from '../checkbox';
|
|
11
11
|
import { TableAdapter } from './table-adapter';
|