@tylertech/forge 3.8.0-dev.3 → 3.8.0
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 +3948 -3215
- package/dist/app-bar/forge-app-bar.css +20 -11
- package/dist/forge.css +2 -2
- package/dist/lib.js +14 -14
- package/dist/lib.js.map +4 -4
- package/dist/table/forge-table.css +2 -2
- package/dist/vscode.css-custom-data.json +218 -208
- package/dist/vscode.html-custom-data.json +370 -245
- package/esm/app-bar/app-bar/app-bar-constants.d.ts +2 -0
- package/esm/app-bar/app-bar/app-bar-constants.js +2 -1
- package/esm/app-bar/app-bar/app-bar-core.d.ts +5 -1
- package/esm/app-bar/app-bar/app-bar-core.js +10 -0
- package/esm/app-bar/app-bar/app-bar.d.ts +9 -1
- package/esm/app-bar/app-bar/app-bar.js +15 -2
- 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/profile-button/app-bar-profile-button.d.ts +1 -1
- package/esm/app-bar/profile-button/app-bar-profile-button.js +13 -10
- package/esm/app-bar/search/app-bar-search.js +1 -1
- package/esm/autocomplete/autocomplete-core.js +5 -0
- package/esm/avatar/avatar.d.ts +4 -4
- package/esm/avatar/avatar.js +5 -6
- package/esm/badge/badge.d.ts +4 -3
- package/esm/badge/badge.js +5 -4
- package/esm/button/button-constants.d.ts +1 -1
- package/esm/button/button.js +1 -1
- package/esm/card/card.d.ts +4 -3
- package/esm/card/card.js +3 -2
- package/esm/core/base/base-lit-element.d.ts +9 -0
- package/esm/core/base/base-lit-element.js +12 -0
- package/esm/core/utils/lit-utils.d.ts +11 -0
- package/esm/core/utils/lit-utils.js +31 -0
- package/esm/dialog/dialog-adapter.d.ts +0 -1
- package/esm/dialog/dialog-adapter.js +4 -39
- package/esm/dialog/dialog-constants.d.ts +6 -2
- package/esm/dialog/dialog-constants.js +4 -4
- package/esm/dialog/dialog-core.d.ts +3 -3
- package/esm/dialog/dialog-core.js +8 -7
- package/esm/dialog/dialog.d.ts +3 -3
- package/esm/dialog/dialog.js +4 -4
- package/esm/icon-button/icon-button-constants.d.ts +1 -1
- package/esm/icon-button/icon-button.js +1 -1
- package/esm/key/key/key.d.ts +3 -2
- package/esm/key/key/key.js +3 -2
- package/esm/key/key-item/key-item.d.ts +3 -2
- package/esm/key/key-item/key-item.js +3 -2
- package/esm/list-dropdown/list-dropdown-aware-core.d.ts +22 -0
- package/esm/list-dropdown/list-dropdown-aware-core.js +30 -0
- package/esm/list-dropdown/list-dropdown-aware.d.ts +35 -0
- package/esm/list-dropdown/list-dropdown-aware.js +35 -16
- package/esm/list-dropdown/list-dropdown-constants.d.ts +22 -3
- package/esm/list-dropdown/list-dropdown-constants.js +9 -1
- package/esm/list-dropdown/list-dropdown-utils.js +6 -0
- package/esm/menu/menu-core.js +2 -0
- package/esm/menu/menu.js +1 -0
- package/esm/meter/meter/meter.d.ts +4 -2
- package/esm/meter/meter/meter.js +4 -2
- package/esm/meter/meter-group/meter-group.d.ts +3 -2
- package/esm/meter/meter-group/meter-group.js +3 -2
- package/esm/overlay/base/overlay-aware.d.ts +4 -4
- package/esm/overlay/base/overlay-aware.js +3 -3
- package/esm/select/core/base-select-core.js +5 -0
- package/esm/select/select/select.d.ts +25 -1
- package/esm/select/select/select.js +26 -1
- package/esm/split-view/split-view-panel/split-view-panel.js +1 -1
- package/esm/tabs/tab-bar/tab-bar.js +1 -1
- package/package.json +2 -2
- package/sass/app-bar/app-bar/_core.scss +0 -1
- package/sass/app-bar/app-bar/app-bar.scss +57 -23
- package/sass/app-bar/forge-app-bar.scss +41 -11
- package/sass/app-bar/search/app-bar-search.scss +3 -0
- package/sass/button/button.scss +24 -0
- package/sass/core/styles/scrollbar/index.scss +14 -0
- package/sass/core/styles/tokens/app-bar/app-bar/_tokens.scss +2 -8
- package/sass/icon-button/icon-button.scss +8 -9
- package/sass/table/_core.scss +1 -1
- package/sass/tabs/tab-bar/tab-bar.scss +24 -0
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
* Copyright Tyler Technologies, Inc.
|
|
4
4
|
* License: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import {
|
|
6
|
+
import { TemplateResult } from 'lit';
|
|
7
7
|
import { CUSTOM_ELEMENT_NAME_PROPERTY } from '@tylertech/forge-core';
|
|
8
|
+
import { BaseLitElement } from '../../core/base/base-lit-element';
|
|
8
9
|
export declare const KEY_ITEM_TAG_NAME: keyof HTMLElementTagNameMap;
|
|
9
10
|
/**
|
|
10
11
|
* @tag forge-key-item
|
|
@@ -26,7 +27,7 @@ export declare const KEY_ITEM_TAG_NAME: keyof HTMLElementTagNameMap;
|
|
|
26
27
|
* @csspart label - The label element.
|
|
27
28
|
* @csspart value - The value element.
|
|
28
29
|
*/
|
|
29
|
-
export declare class KeyItemComponent extends
|
|
30
|
+
export declare class KeyItemComponent extends BaseLitElement {
|
|
30
31
|
static styles: import("lit").CSSResult;
|
|
31
32
|
/** @deprecated Used for compatibility with legacy Forge @customElement decorator. */
|
|
32
33
|
static [CUSTOM_ELEMENT_NAME_PROPERTY]: keyof HTMLElementTagNameMap;
|
|
@@ -5,11 +5,12 @@
|
|
|
5
5
|
*/
|
|
6
6
|
var _a;
|
|
7
7
|
import { __decorate } from "tslib";
|
|
8
|
-
import {
|
|
8
|
+
import { html, unsafeCSS } from 'lit';
|
|
9
9
|
import { customElement, property, queryAssignedNodes, state } from 'lit/decorators.js';
|
|
10
10
|
import { classMap } from 'lit/directives/class-map.js';
|
|
11
11
|
import { setDefaultAria } from '../../core/utils/a11y-utils';
|
|
12
12
|
import { CUSTOM_ELEMENT_NAME_PROPERTY } from '@tylertech/forge-core';
|
|
13
|
+
import { BaseLitElement } from '../../core/base/base-lit-element';
|
|
13
14
|
const styles = ':host{display:inline}.forge-key-item{--_key-item-icon-color:var(--forge-key-item-icon-color, var(--forge-theme-tertiary, #3d5afe));--_key-item-label-color:var(--forge-key-item-label-color, var(--forge-theme-text-high, rgba(0, 0, 0, 0.87)));--_key-item-value-color:var(--forge-key-item-value-color, var(--forge-theme-text-medium, rgba(0, 0, 0, 0.6)));--_key-item-gap:var(--forge-key-item-gap, var(--forge-spacing-xsmall, 8px));--_key-item-icon-size:var(--forge-key-item-icon-size, calc(var(--forge-typography-font-size, 1rem) * 1))}.forge-key-item{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--forge-typography-label1-font-family, var(--forge-typography-font-family, \"Roboto\", sans-serif));font-size:var(--forge-typography-label1-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-label-font-size-scale, .75)));font-weight:var(--forge-typography-label1-font-weight,400);line-height:var(--forge-typography-label1-line-height, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-label-line-height-scale, 1.25)));letter-spacing:var(--forge-typography-label1-letter-spacing, .0357142857em);text-transform:var(--forge-typography-label1-text-transform,inherit);text-decoration:var(--forge-typography-label1-text-decoration,inherit);box-sizing:border-box;display:grid;grid-template:\"icon label\" \"icon value\";column-gap:var(--_key-item-gap);inline-size:fit-content;line-height:normal}.forge-key-item.inline{grid-template:\"icon label value\";grid-template-columns:auto 1fr auto;align-items:center;inline-size:auto}.forge-key-item.no-value{grid-template:\"icon label\";align-items:center}.forge-key-item.no-value .value{display:none}.forge-key-item:not(.inline,.no-value) .label{padding-block-start:1px}.icon{--forge-icon-size:var(--_key-item-icon-size);grid-area:icon;color:var(--_key-item-icon-color)}.label{grid-area:label;color:var(--_key-item-label-color)}.value{grid-area:value;color:var(--_key-item-value-color)}.default-icon{block-size:calc(var(--_key-item-icon-size) - 1px);inline-size:calc(var(--_key-item-icon-size) - 1px);border-radius:50%;background:currentColor}';
|
|
14
15
|
export const KEY_ITEM_TAG_NAME = 'forge-key-item';
|
|
15
16
|
/**
|
|
@@ -32,7 +33,7 @@ export const KEY_ITEM_TAG_NAME = 'forge-key-item';
|
|
|
32
33
|
* @csspart label - The label element.
|
|
33
34
|
* @csspart value - The value element.
|
|
34
35
|
*/
|
|
35
|
-
let KeyItemComponent = class KeyItemComponent extends
|
|
36
|
+
let KeyItemComponent = class KeyItemComponent extends BaseLitElement {
|
|
36
37
|
constructor() {
|
|
37
38
|
super();
|
|
38
39
|
/**
|
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
* Copyright Tyler Technologies, Inc.
|
|
4
4
|
* License: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
+
import { PositionPlacement } from '../core/utils/position-utils';
|
|
7
|
+
import { IOverlayOffset, OverlayFlipState, OverlayPlacement, OverlayShiftState } from '../overlay/overlay-constants';
|
|
6
8
|
import { ListDropdownHeaderBuilder, ListDropdownFooterBuilder } from './list-dropdown-constants';
|
|
7
9
|
export interface IListDropdownAwareCore {
|
|
8
10
|
popupClasses: string | string[];
|
|
@@ -14,6 +16,11 @@ export interface IListDropdownAwareCore {
|
|
|
14
16
|
observeScrollThreshold: number;
|
|
15
17
|
constrainPopupWidth: boolean;
|
|
16
18
|
wrapOptionText: boolean;
|
|
19
|
+
popoverPlacement: OverlayPlacement;
|
|
20
|
+
popoverOffset: IOverlayOffset;
|
|
21
|
+
popoverFlip: OverlayFlipState;
|
|
22
|
+
popoverShift: OverlayShiftState;
|
|
23
|
+
popoverFallbackPlacements: PositionPlacement[] | null;
|
|
17
24
|
}
|
|
18
25
|
export declare abstract class ListDropdownAwareCore implements IListDropdownAwareCore {
|
|
19
26
|
protected _popupClasses: string | string[];
|
|
@@ -25,6 +32,11 @@ export declare abstract class ListDropdownAwareCore implements IListDropdownAwar
|
|
|
25
32
|
protected _observeScrollThreshold: number;
|
|
26
33
|
protected _constrainPopupWidth: boolean;
|
|
27
34
|
protected _wrapOptionText: boolean;
|
|
35
|
+
protected _popoverPlacement: OverlayPlacement;
|
|
36
|
+
protected _popoverOffset: IOverlayOffset;
|
|
37
|
+
protected _popoverFlip: OverlayFlipState;
|
|
38
|
+
protected _popoverShift: OverlayShiftState;
|
|
39
|
+
protected _popoverFallbackPlacements: PositionPlacement[] | null;
|
|
28
40
|
get syncPopupWidth(): boolean;
|
|
29
41
|
set syncPopupWidth(value: boolean);
|
|
30
42
|
get popupClasses(): string | string[];
|
|
@@ -43,5 +55,15 @@ export declare abstract class ListDropdownAwareCore implements IListDropdownAwar
|
|
|
43
55
|
set constrainPopupWidth(value: boolean);
|
|
44
56
|
get wrapOptionText(): boolean;
|
|
45
57
|
set wrapOptionText(value: boolean);
|
|
58
|
+
get popoverPlacement(): OverlayPlacement;
|
|
59
|
+
set popoverPlacement(value: OverlayPlacement);
|
|
60
|
+
get popoverOffset(): IOverlayOffset;
|
|
61
|
+
set popoverOffset(value: IOverlayOffset);
|
|
62
|
+
get popoverFlip(): OverlayFlipState;
|
|
63
|
+
set popoverFlip(value: OverlayFlipState);
|
|
64
|
+
get popoverShift(): OverlayShiftState;
|
|
65
|
+
set popoverShift(value: OverlayShiftState);
|
|
66
|
+
get popoverFallbackPlacements(): PositionPlacement[] | null;
|
|
67
|
+
set popoverFallbackPlacements(value: PositionPlacement[] | null);
|
|
46
68
|
protected _applySelection(): void;
|
|
47
69
|
}
|
|
@@ -72,5 +72,35 @@ export class ListDropdownAwareCore {
|
|
|
72
72
|
set wrapOptionText(value) {
|
|
73
73
|
this._wrapOptionText = value;
|
|
74
74
|
}
|
|
75
|
+
get popoverPlacement() {
|
|
76
|
+
return this._popoverPlacement;
|
|
77
|
+
}
|
|
78
|
+
set popoverPlacement(value) {
|
|
79
|
+
this._popoverPlacement = value;
|
|
80
|
+
}
|
|
81
|
+
get popoverOffset() {
|
|
82
|
+
return this._popoverOffset;
|
|
83
|
+
}
|
|
84
|
+
set popoverOffset(value) {
|
|
85
|
+
this._popoverOffset = value;
|
|
86
|
+
}
|
|
87
|
+
get popoverFlip() {
|
|
88
|
+
return this._popoverFlip;
|
|
89
|
+
}
|
|
90
|
+
set popoverFlip(value) {
|
|
91
|
+
this._popoverFlip = value;
|
|
92
|
+
}
|
|
93
|
+
get popoverShift() {
|
|
94
|
+
return this._popoverShift;
|
|
95
|
+
}
|
|
96
|
+
set popoverShift(value) {
|
|
97
|
+
this._popoverShift = value;
|
|
98
|
+
}
|
|
99
|
+
get popoverFallbackPlacements() {
|
|
100
|
+
return this._popoverFallbackPlacements;
|
|
101
|
+
}
|
|
102
|
+
set popoverFallbackPlacements(value) {
|
|
103
|
+
this._popoverFallbackPlacements = value;
|
|
104
|
+
}
|
|
75
105
|
_applySelection() { }
|
|
76
106
|
}
|
|
@@ -5,6 +5,8 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { BaseComponent, IBaseComponent } from '../core/base/base-component';
|
|
7
7
|
import { ListDropdownHeaderBuilder, ListDropdownFooterBuilder } from './list-dropdown-constants';
|
|
8
|
+
import { PositionPlacement } from '../core/utils/position-utils';
|
|
9
|
+
import { OverlayPlacement, IOverlayOffset, OverlayFlipState, OverlayShiftState } from '../overlay/overlay-constants';
|
|
8
10
|
export interface IListDropdownAware extends IBaseComponent {
|
|
9
11
|
popupClasses: string | string[];
|
|
10
12
|
popupHeaderBuilder: ListDropdownHeaderBuilder;
|
|
@@ -15,6 +17,11 @@ export interface IListDropdownAware extends IBaseComponent {
|
|
|
15
17
|
observeScrollThreshold: number;
|
|
16
18
|
constrainPopupWidth: boolean;
|
|
17
19
|
wrapOptionText: boolean;
|
|
20
|
+
popoverPlacement: OverlayPlacement;
|
|
21
|
+
popoverOffset: IOverlayOffset;
|
|
22
|
+
popoverFlip: OverlayFlipState;
|
|
23
|
+
popoverShift: OverlayShiftState;
|
|
24
|
+
popoverFallbackPlacements: PositionPlacement[] | null;
|
|
18
25
|
}
|
|
19
26
|
export declare class ListDropdownAware extends BaseComponent {
|
|
20
27
|
static get observedAttributes(): string[];
|
|
@@ -66,4 +73,32 @@ export declare class ListDropdownAware extends BaseComponent {
|
|
|
66
73
|
* @attribute wrap-option-text
|
|
67
74
|
*/
|
|
68
75
|
wrapOptionText: boolean;
|
|
76
|
+
/**
|
|
77
|
+
* Gets/sets the placement of the popover.
|
|
78
|
+
* @default 'bottom'
|
|
79
|
+
* @attribute popover-placement
|
|
80
|
+
*/
|
|
81
|
+
popoverPlacement: OverlayPlacement;
|
|
82
|
+
/**
|
|
83
|
+
* Gets/sets the offset of the popover.
|
|
84
|
+
* @attribute popover-offset
|
|
85
|
+
*/
|
|
86
|
+
popoverOffset: IOverlayOffset;
|
|
87
|
+
/**
|
|
88
|
+
* Gets/sets the flip state of the popover.
|
|
89
|
+
* @default 'auto'
|
|
90
|
+
* @attribute popover-flip
|
|
91
|
+
*/
|
|
92
|
+
popoverFlip: OverlayFlipState;
|
|
93
|
+
/**
|
|
94
|
+
* Gets/sets whether the popover should shift to fit within the viewport.
|
|
95
|
+
* @default 'auto'
|
|
96
|
+
* @attribute popover-shift
|
|
97
|
+
*/
|
|
98
|
+
popoverShift: OverlayShiftState;
|
|
99
|
+
/**
|
|
100
|
+
* Gets/sets the fallback placements of the popover.
|
|
101
|
+
* @attribute popover-fallback-placements
|
|
102
|
+
*/
|
|
103
|
+
popoverFallbackPlacements: PositionPlacement[] | null;
|
|
69
104
|
}
|
|
@@ -9,42 +9,46 @@ import { BaseComponent } from '../core/base/base-component';
|
|
|
9
9
|
import { LIST_DROPDOWN_CONSTANTS } from './list-dropdown-constants';
|
|
10
10
|
export class ListDropdownAware extends BaseComponent {
|
|
11
11
|
static get observedAttributes() {
|
|
12
|
-
return
|
|
13
|
-
LIST_DROPDOWN_CONSTANTS.attributes.POPUP_CLASSES,
|
|
14
|
-
LIST_DROPDOWN_CONSTANTS.attributes.OPTION_LIMIT,
|
|
15
|
-
LIST_DROPDOWN_CONSTANTS.attributes.OBSERVE_SCROLL,
|
|
16
|
-
LIST_DROPDOWN_CONSTANTS.attributes.OBSERVE_SCROLL_THRESHOLD,
|
|
17
|
-
LIST_DROPDOWN_CONSTANTS.attributes.SYNC_POPUP_WIDTH,
|
|
18
|
-
LIST_DROPDOWN_CONSTANTS.attributes.CONSTRAIN_POPUP_WIDTH,
|
|
19
|
-
LIST_DROPDOWN_CONSTANTS.attributes.WRAP_OPTION_TEXT
|
|
20
|
-
];
|
|
12
|
+
return Object.values(LIST_DROPDOWN_CONSTANTS.observedAttributes);
|
|
21
13
|
}
|
|
22
14
|
constructor() {
|
|
23
15
|
super();
|
|
24
16
|
}
|
|
25
17
|
attributeChangedCallback(name, oldValue, newValue) {
|
|
26
18
|
switch (name) {
|
|
27
|
-
case LIST_DROPDOWN_CONSTANTS.
|
|
19
|
+
case LIST_DROPDOWN_CONSTANTS.observedAttributes.POPUP_CLASSES:
|
|
28
20
|
this.popupClasses = newValue;
|
|
29
21
|
break;
|
|
30
|
-
case LIST_DROPDOWN_CONSTANTS.
|
|
22
|
+
case LIST_DROPDOWN_CONSTANTS.observedAttributes.OPTION_LIMIT:
|
|
31
23
|
this.optionLimit = coerceNumber(newValue);
|
|
32
24
|
break;
|
|
33
|
-
case LIST_DROPDOWN_CONSTANTS.
|
|
25
|
+
case LIST_DROPDOWN_CONSTANTS.observedAttributes.OBSERVE_SCROLL:
|
|
34
26
|
this.observeScroll = coerceBoolean(newValue);
|
|
35
27
|
break;
|
|
36
|
-
case LIST_DROPDOWN_CONSTANTS.
|
|
28
|
+
case LIST_DROPDOWN_CONSTANTS.observedAttributes.OBSERVE_SCROLL_THRESHOLD:
|
|
37
29
|
this.observeScrollThreshold = coerceNumber(newValue);
|
|
38
30
|
break;
|
|
39
|
-
case LIST_DROPDOWN_CONSTANTS.
|
|
31
|
+
case LIST_DROPDOWN_CONSTANTS.observedAttributes.SYNC_POPUP_WIDTH:
|
|
40
32
|
this.syncPopupWidth = coerceBoolean(newValue);
|
|
41
33
|
break;
|
|
42
|
-
case LIST_DROPDOWN_CONSTANTS.
|
|
34
|
+
case LIST_DROPDOWN_CONSTANTS.observedAttributes.CONSTRAIN_POPUP_WIDTH:
|
|
43
35
|
this.constrainPopupWidth = coerceBoolean(newValue);
|
|
44
36
|
break;
|
|
45
|
-
case LIST_DROPDOWN_CONSTANTS.
|
|
37
|
+
case LIST_DROPDOWN_CONSTANTS.observedAttributes.WRAP_OPTION_TEXT:
|
|
46
38
|
this.wrapOptionText = coerceBoolean(newValue);
|
|
47
39
|
break;
|
|
40
|
+
case LIST_DROPDOWN_CONSTANTS.observedAttributes.POPOVER_PLACEMENT:
|
|
41
|
+
this.popoverPlacement = newValue;
|
|
42
|
+
break;
|
|
43
|
+
case LIST_DROPDOWN_CONSTANTS.observedAttributes.POPOVER_OFFSET:
|
|
44
|
+
this.popoverOffset = JSON.parse(newValue);
|
|
45
|
+
break;
|
|
46
|
+
case LIST_DROPDOWN_CONSTANTS.observedAttributes.POPOVER_FLIP:
|
|
47
|
+
this.popoverFlip = newValue;
|
|
48
|
+
break;
|
|
49
|
+
case LIST_DROPDOWN_CONSTANTS.observedAttributes.POPOVER_SHIFT:
|
|
50
|
+
this.popoverShift = newValue;
|
|
51
|
+
break;
|
|
48
52
|
}
|
|
49
53
|
}
|
|
50
54
|
}
|
|
@@ -75,3 +79,18 @@ __decorate([
|
|
|
75
79
|
__decorate([
|
|
76
80
|
coreProperty()
|
|
77
81
|
], ListDropdownAware.prototype, "wrapOptionText", void 0);
|
|
82
|
+
__decorate([
|
|
83
|
+
coreProperty()
|
|
84
|
+
], ListDropdownAware.prototype, "popoverPlacement", void 0);
|
|
85
|
+
__decorate([
|
|
86
|
+
coreProperty()
|
|
87
|
+
], ListDropdownAware.prototype, "popoverOffset", void 0);
|
|
88
|
+
__decorate([
|
|
89
|
+
coreProperty()
|
|
90
|
+
], ListDropdownAware.prototype, "popoverFlip", void 0);
|
|
91
|
+
__decorate([
|
|
92
|
+
coreProperty()
|
|
93
|
+
], ListDropdownAware.prototype, "popoverShift", void 0);
|
|
94
|
+
__decorate([
|
|
95
|
+
coreProperty()
|
|
96
|
+
], ListDropdownAware.prototype, "popoverFallbackPlacements", void 0);
|
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
* License: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import type { IIconComponent } from '../icon';
|
|
7
|
-
import type { IOverlayOffset } from '../overlay/overlay-constants';
|
|
7
|
+
import type { IOverlayOffset, OverlayFlipState, OverlayShiftState } from '../overlay/overlay-constants';
|
|
8
8
|
import { PositionPlacement } from '../core/utils/position-utils';
|
|
9
9
|
import { TooltipPlacement, TooltipType } from '../tooltip';
|
|
10
10
|
export declare const LIST_DROPDOWN_CONSTANTS: {
|
|
11
|
-
|
|
11
|
+
observedAttributes: {
|
|
12
12
|
POPUP_CLASSES: string;
|
|
13
13
|
OPTION_LIMIT: string;
|
|
14
14
|
OBSERVE_SCROLL: string;
|
|
@@ -16,8 +16,25 @@ export declare const LIST_DROPDOWN_CONSTANTS: {
|
|
|
16
16
|
SYNC_POPUP_WIDTH: string;
|
|
17
17
|
CONSTRAIN_POPUP_WIDTH: string;
|
|
18
18
|
WRAP_OPTION_TEXT: string;
|
|
19
|
+
POPOVER_PLACEMENT: string;
|
|
20
|
+
POPOVER_OFFSET: string;
|
|
21
|
+
POPOVER_FLIP: string;
|
|
22
|
+
POPOVER_SHIFT: string;
|
|
23
|
+
};
|
|
24
|
+
attributes: {
|
|
19
25
|
CHECKBOX_ELEMENT: string;
|
|
20
26
|
DATA_ALLOW_FOCUS: string;
|
|
27
|
+
POPUP_CLASSES: string;
|
|
28
|
+
OPTION_LIMIT: string;
|
|
29
|
+
OBSERVE_SCROLL: string;
|
|
30
|
+
OBSERVE_SCROLL_THRESHOLD: string;
|
|
31
|
+
SYNC_POPUP_WIDTH: string;
|
|
32
|
+
CONSTRAIN_POPUP_WIDTH: string;
|
|
33
|
+
WRAP_OPTION_TEXT: string;
|
|
34
|
+
POPOVER_PLACEMENT: string;
|
|
35
|
+
POPOVER_OFFSET: string;
|
|
36
|
+
POPOVER_FLIP: string;
|
|
37
|
+
POPOVER_SHIFT: string;
|
|
21
38
|
};
|
|
22
39
|
classes: {
|
|
23
40
|
GROUP_WRAPPER: string;
|
|
@@ -85,7 +102,9 @@ export interface IListDropdownConfig<T = any> {
|
|
|
85
102
|
popupOffset?: IOverlayOffset;
|
|
86
103
|
popupStatic?: boolean;
|
|
87
104
|
popupPlacement?: PositionPlacement;
|
|
88
|
-
|
|
105
|
+
popupFlip?: OverlayFlipState;
|
|
106
|
+
popupShift?: OverlayShiftState;
|
|
107
|
+
popupFallbackPlacements?: PositionPlacement[] | null;
|
|
89
108
|
optionLimit?: number;
|
|
90
109
|
optionBuilder?: ListDropdownOptionBuilder;
|
|
91
110
|
observeScroll?: boolean;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Copyright Tyler Technologies, Inc.
|
|
4
4
|
* License: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
const
|
|
6
|
+
const observedAttributes = {
|
|
7
7
|
POPUP_CLASSES: 'popup-classes',
|
|
8
8
|
OPTION_LIMIT: 'option-limit',
|
|
9
9
|
OBSERVE_SCROLL: 'observe-scroll',
|
|
@@ -11,6 +11,13 @@ const attributes = {
|
|
|
11
11
|
SYNC_POPUP_WIDTH: 'sync-popup-width',
|
|
12
12
|
CONSTRAIN_POPUP_WIDTH: 'constrain-popup-width',
|
|
13
13
|
WRAP_OPTION_TEXT: 'wrap-option-text',
|
|
14
|
+
POPOVER_PLACEMENT: 'popover-placement',
|
|
15
|
+
POPOVER_OFFSET: 'popover-offset',
|
|
16
|
+
POPOVER_FLIP: 'popover-flip',
|
|
17
|
+
POPOVER_SHIFT: 'popover-shift'
|
|
18
|
+
};
|
|
19
|
+
const attributes = {
|
|
20
|
+
...observedAttributes,
|
|
14
21
|
// Internal
|
|
15
22
|
CHECKBOX_ELEMENT: 'data-list-dropdown-checkbox',
|
|
16
23
|
DATA_ALLOW_FOCUS: 'data-list-dropdown-allow-focus'
|
|
@@ -19,6 +26,7 @@ const classes = {
|
|
|
19
26
|
GROUP_WRAPPER: 'forge-list-dropdown__group-wrapper'
|
|
20
27
|
};
|
|
21
28
|
export const LIST_DROPDOWN_CONSTANTS = {
|
|
29
|
+
observedAttributes,
|
|
22
30
|
attributes,
|
|
23
31
|
classes
|
|
24
32
|
};
|
|
@@ -60,6 +60,12 @@ export function createPopupDropdown(config, targetElement) {
|
|
|
60
60
|
if (config.popupOffset) {
|
|
61
61
|
popoverElement.offset = config.popupOffset;
|
|
62
62
|
}
|
|
63
|
+
if (config.popupFlip) {
|
|
64
|
+
popoverElement.flip = config.popupFlip;
|
|
65
|
+
}
|
|
66
|
+
if (config.popupShift !== undefined) {
|
|
67
|
+
popoverElement.shift = config.popupShift;
|
|
68
|
+
}
|
|
63
69
|
// Set the animations based on our type
|
|
64
70
|
if (config.type === ListDropdownType.None) {
|
|
65
71
|
popoverElement.animationType = 'none';
|
package/esm/menu/menu-core.js
CHANGED
|
@@ -238,6 +238,8 @@ export class MenuCore extends CascadingListDropdownAwareCore {
|
|
|
238
238
|
observeScroll: this._observeScroll,
|
|
239
239
|
observeScrollThreshold: this._observeScrollThreshold,
|
|
240
240
|
popupPlacement: this._placement,
|
|
241
|
+
popupFlip: this._popoverFlip,
|
|
242
|
+
popupShift: this._popoverShift,
|
|
241
243
|
popupFallbackPlacements: this._fallbackPlacements,
|
|
242
244
|
activeStartIndex: fromKeyboard ? 0 : undefined,
|
|
243
245
|
popupClasses: [MENU_CONSTANTS.classes.POPUP, ...this._popupClasses],
|
package/esm/menu/menu.js
CHANGED
|
@@ -25,6 +25,7 @@ const styles = ':host{display:inline-flex}:host([hidden]){display:none}';
|
|
|
25
25
|
let MenuComponent = class MenuComponent extends ListDropdownAware {
|
|
26
26
|
static get observedAttributes() {
|
|
27
27
|
return [
|
|
28
|
+
...ListDropdownAware.observedAttributes,
|
|
28
29
|
MENU_CONSTANTS.attributes.OPEN,
|
|
29
30
|
MENU_CONSTANTS.attributes.PLACEMENT,
|
|
30
31
|
MENU_CONSTANTS.attributes.SELECTED_INDEX,
|
|
@@ -3,9 +3,10 @@
|
|
|
3
3
|
* Copyright Tyler Technologies, Inc.
|
|
4
4
|
* License: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import {
|
|
6
|
+
import { PropertyValues, TemplateResult } from 'lit';
|
|
7
7
|
import { Theme } from '../../constants';
|
|
8
8
|
import { CUSTOM_ELEMENT_NAME_PROPERTY } from '@tylertech/forge-core';
|
|
9
|
+
import { BaseLitElement } from '../../core/base/base-lit-element';
|
|
9
10
|
export declare const METER_TAG_NAME: keyof HTMLElementTagNameMap;
|
|
10
11
|
export type MeterDirection = 'horizontal' | 'vertical';
|
|
11
12
|
export type MeterDensity = 'default' | 'small' | 'medium' | 'large';
|
|
@@ -49,9 +50,10 @@ export type MeterValueMode = 'manual' | 'percentage' | 'value';
|
|
|
49
50
|
* @slot - The default slot for the meter's label.
|
|
50
51
|
* @slot value - A textual representation of the meter's value.
|
|
51
52
|
*/
|
|
52
|
-
export declare class MeterComponent extends
|
|
53
|
+
export declare class MeterComponent extends BaseLitElement {
|
|
53
54
|
static styles: import("lit").CSSResult;
|
|
54
55
|
static formAssociated: boolean;
|
|
56
|
+
/** @deprecated Used for compatibility with legacy Forge @customElement decorator. */
|
|
55
57
|
static [CUSTOM_ELEMENT_NAME_PROPERTY]: keyof HTMLElementTagNameMap;
|
|
56
58
|
/**
|
|
57
59
|
* The current value of the meter.
|
package/esm/meter/meter/meter.js
CHANGED
|
@@ -5,13 +5,14 @@
|
|
|
5
5
|
*/
|
|
6
6
|
var _a;
|
|
7
7
|
import { __decorate } from "tslib";
|
|
8
|
-
import {
|
|
8
|
+
import { html, unsafeCSS } from 'lit';
|
|
9
9
|
import { customElement, property, queryAssignedNodes, state } from 'lit/decorators.js';
|
|
10
10
|
import { classMap } from 'lit/directives/class-map.js';
|
|
11
11
|
import { styleMap } from 'lit/directives/style-map.js';
|
|
12
12
|
import { setDefaultAria } from '../../core/utils/a11y-utils';
|
|
13
13
|
import { toggleState } from '../../core/utils/utils';
|
|
14
14
|
import { CUSTOM_ELEMENT_NAME_PROPERTY } from '@tylertech/forge-core';
|
|
15
|
+
import { BaseLitElement } from '../../core/base/base-lit-element';
|
|
15
16
|
const styles = ':host{display:inline}.forge-meter{--_meter-background:var(--forge-meter-background, var(--forge-theme-tertiary-container-low, #e8ebff));--_meter-color:var(--forge-meter-color, var(--forge-theme-tertiary, #3d5afe));--_meter-height:var(--forge-meter-height, var(--forge-spacing-medium, 16px));--_meter-shape:var(--forge-meter-shape, calc(var(--forge-shape-medium, 4px) * var(--forge-shape-factor, 1)));--_meter-inner-shape:var(--forge-meter-inner-shape, 0);--_meter-inner-elevation:var(--forge-meter-inner-elevation, 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12));--_meter-tickmarks:var(--forge-meter-tickmarks, 10);--_meter-tickmark-opacity:var(--forge-meter-tickmark-opacity, 54%);--_meter-transition-duration:var(--forge-meter-transition-duration, var(--forge-animation-duration-short4, 200ms));--_meter-transition-timing:var(--forge-meter-transition-timing, var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1)))}.forge-meter{box-sizing:border-box}.forge-meter .heading{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--forge-typography-label1-font-family, var(--forge-typography-font-family, \"Roboto\", sans-serif));font-size:var(--forge-typography-label1-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-label-font-size-scale, .75)));font-weight:var(--forge-typography-label1-font-weight,400);line-height:var(--forge-typography-label1-line-height, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-label-line-height-scale, 1.25)));letter-spacing:var(--forge-typography-label1-letter-spacing, .0357142857em);text-transform:var(--forge-typography-label1-text-transform,inherit);text-decoration:var(--forge-typography-label1-text-decoration,inherit);display:flex;align-items:center;justify-content:space-between;line-height:normal}.forge-meter .heading.not-empty{margin-bottom:var(--forge-spacing-xxsmall,4px)}.forge-meter .label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.forge-meter .value{color:var(--forge-theme-text-medium,rgba(0,0,0,.6))}.forge-meter .track{position:relative;block-size:var(--_meter-height);border-radius:var(--_meter-shape);overflow:hidden;background:var(--_meter-background)}.forge-meter .track.segmented{--_meter-background:var(--forge-meter-background, var(--forge-theme-warning-container-low, #f9e9e0));--_meter-color:var(--forge-meter-color, var(--forge-theme-warning, #d14900));transition-property:background;transition-duration:var(--_meter-transition-duration);transition-timing-function:var(--_meter-transition-timing)}.forge-meter .track.segmented.least-optimal{--_meter-background:var(--forge-meter-background, var(--forge-theme-error-container-low, #f6e0e4));--_meter-color:var(--forge-meter-color, var(--forge-theme-error, #b00020))}.forge-meter .track.segmented.optimal{--_meter-background:var(--forge-meter-background, var(--forge-theme-success-container-low, #e6efe6));--_meter-color:var(--forge-meter-color, var(--forge-theme-success, #2e7d32))}.forge-meter .track.segmented .bar{transition-property:translate,box-shadow,background;transition-duration:var(--_meter-transition-duration);transition-timing-function:var(--_meter-transition-timing)}.forge-meter .track.lowest{--_meter-inner-elevation:var(--forge-meter-inner-elevation, 0)}.forge-meter .track.tickmarks::after{content:\"\";position:relative;display:block;width:100%;height:100%;margin-left:2px;background:repeating-linear-gradient(90deg,var(--_meter-color) 0,var(--_meter-color) 1px,var(--_meter-background) 1px,var(--_meter-background) 2px,transparent 2px,transparent calc(100% / (var(--_meter-tickmarks) + 1) + 0px));background-position-x:-2px;opacity:var(--_meter-tickmark-opacity);pointer-events:none;transition-property:background;transition-duration:var(--_meter-transition-duration);transition-timing-function:var(--_meter-transition-timing)}.forge-meter .bar{position:absolute;left:-100%;width:100%;height:100%;border-radius:var(--_meter-inner-shape);box-shadow:var(--_meter-inner-elevation);background:var(--_meter-color);translate:var(--_meter-percentage) 0;transition-property:translate,box-shadow;transition-duration:var(--_meter-transition-duration);transition-timing-function:var(--_meter-transition-timing)}.forge-meter.grouped{display:block;position:absolute;z-index:var(--_meter-z-index);top:0;left:var(--_meter-inset);width:calc(var(--_meter-percentage) + var(--_meter-group-height) * .5);height:100%;border-radius:var(--_meter-inner-shape);border-top-left-radius:0;border-bottom-left-radius:0;margin-left:calc(-1 * var(--_meter-group-height) * .5);background:var(--_meter-color);box-shadow:var(--_meter-inner-elevation)}.forge-meter.grouped.muted{--_meter-color:var(--forge-meter-color, var(--forge-theme-tertiary-container-high, #b5c0ff))}.forge-meter.density--small{--_meter-height:var(--forge-meter-height, var(--forge-spacing-xsmall, 8px))}.forge-meter.density--medium{--_meter-height:var(--forge-meter-height, var(--forge-spacing-medium, 16px))}.forge-meter.density--large{--_meter-height:var(--forge-meter-height, var(--forge-spacing-large, 24px))}.forge-meter.shape--default{--_meter-shape:var(--forge-meter-shape, calc(var(--forge-shape-medium, 4px) * var(--forge-shape-factor, 1)))}.forge-meter.shape--rounded{--_meter-shape:var(--forge-meter-shape, calc(var(--forge-shape-full, 9999px) * var(--forge-shape-factor, 1)))}.forge-meter.shape--squared{--_meter-shape:var(--forge-meter-shape, 0)}.forge-meter.inner-shape--inherit{--_meter-inner-shape:var(--_meter-shape)}.forge-meter.muted .track{--_meter-background:var(--forge-meter-background, var(--forge-theme-tertiary-container-minimum, #f7f8ff));--_meter-color:var(--forge-meter-color, var(--forge-theme-tertiary-container-high, #b5c0ff))}.forge-meter.muted .track.segmented{--_meter-background:var(--forge-meter-background, var(--forge-theme-warning-container-minimum, #fdf8f5));--_meter-color:var(--forge-meter-color, var(--forge-theme-warning-container-high, #eeba9e))}.forge-meter.muted .track.segmented.least-optimal{--_meter-background:var(--forge-meter-background, var(--forge-theme-error-container-minimum, #fcf5f6));--_meter-color:var(--forge-meter-color, var(--forge-theme-error-container-high, #e19eaa))}.forge-meter.muted .track.segmented.optimal{--_meter-background:var(--forge-meter-background, var(--forge-theme-success-container-minimum, #f7faf7));--_meter-color:var(--forge-meter-color, var(--forge-theme-success-container-high, #b0ceb1))}:host(:is(:state(vertical),:--vertical)){display:block}:host(:is(:state(vertical),:--vertical)) .forge-meter{display:flex;flex-direction:row-reverse;align-items:end;width:fit-content;height:100%;max-width:100%}:host(:is(:state(vertical),:--vertical)) .forge-meter .heading{flex-direction:column;align-items:start}:host(:is(:state(vertical),:--vertical)) .forge-meter .heading.not-empty{margin-bottom:0;margin-left:var(--forge-spacing-xsmall,8px)}:host(:is(:state(vertical),:--vertical)) .forge-meter .track{width:var(--_meter-height);height:100%}:host(:is(:state(vertical),:--vertical)) .forge-meter .track.tickmarks::after{margin-top:-2px;margin-left:0;background:repeating-linear-gradient(0,var(--_meter-color) 0,var(--_meter-color) 1px,var(--_meter-background) 1px,var(--_meter-background) 2px,transparent 2px,transparent calc(100% / (var(--_meter-tickmarks) + 1) + 0px));background-position-x:0;background-position-y:2px}:host(:is(:state(vertical),:--vertical)) .forge-meter .bar{left:initial;top:100%;translate:0 calc(-1 * var(--_meter-percentage))}:host(:is(:state(vertical),:--vertical)) .forge-meter.grouped{display:block;top:calc(100% - var(--_meter-percentage) - var(--_meter-inset));left:0;width:100%;height:calc(var(--_meter-percentage) + var(--_meter-group-height) * .5);max-width:initial;border-radius:var(--_meter-inner-shape);border-bottom-left-radius:0;border-bottom-right-radius:0;margin-left:0;margin-bottom:calc(-1 * var(--_meter-group-height) * .5)}.theme--primary:not(.muted) .track:not(.segmented){--_meter-background:var(--forge-meter-background, var(--forge-theme-primary-container-low, #e8eaf6));--_meter-color:var(--forge-meter-color, var(--forge-theme-primary, #3f51b5))}.theme--primary:not(.muted).grouped{--_meter-background:var(--forge-meter-background, var(--forge-theme-primary-container-low, #e8eaf6));--_meter-color:var(--forge-meter-color, var(--forge-theme-primary, #3f51b5))}.theme--primary.muted .track:not(.segmented){--_meter-background:var(--forge-meter-background, var(--forge-theme-primary-container-minimum, #f7f8fc));--_meter-color:var(--forge-meter-color, var(--forge-theme-primary-container-high, #b6bde3))}.theme--primary.muted .grouped{--_meter-background:var(--forge-meter-background, var(--forge-theme-primary-container-minimum, #f7f8fc));--_meter-color:var(--forge-meter-color, var(--forge-theme-primary-container-high, #b6bde3))}.theme--secondary:not(.muted) .track:not(.segmented){--_meter-background:var(--forge-meter-background, var(--forge-theme-secondary-container-low, #fff8e1));--_meter-color:var(--forge-meter-color, var(--forge-theme-secondary, #ffc107))}.theme--secondary:not(.muted).grouped{--_meter-background:var(--forge-meter-background, var(--forge-theme-secondary-container-low, #fff8e1));--_meter-color:var(--forge-meter-color, var(--forge-theme-secondary, #ffc107))}.theme--secondary.muted .track:not(.segmented){--_meter-background:var(--forge-meter-background, var(--forge-theme-secondary-container-minimum, #fffdf5));--_meter-color:var(--forge-meter-color, var(--forge-theme-secondary-container-high, #ffe7a1))}.theme--secondary.muted .grouped{--_meter-background:var(--forge-meter-background, var(--forge-theme-secondary-container-minimum, #fffdf5));--_meter-color:var(--forge-meter-color, var(--forge-theme-secondary-container-high, #ffe7a1))}.theme--tertiary:not(.muted) .track:not(.segmented){--_meter-background:var(--forge-meter-background, var(--forge-theme-tertiary-container-low, #e8ebff));--_meter-color:var(--forge-meter-color, var(--forge-theme-tertiary, #3d5afe))}.theme--tertiary:not(.muted).grouped{--_meter-background:var(--forge-meter-background, var(--forge-theme-tertiary-container-low, #e8ebff));--_meter-color:var(--forge-meter-color, var(--forge-theme-tertiary, #3d5afe))}.theme--tertiary.muted .track:not(.segmented){--_meter-background:var(--forge-meter-background, var(--forge-theme-tertiary-container-minimum, #f7f8ff));--_meter-color:var(--forge-meter-color, var(--forge-theme-tertiary-container-high, #b5c0ff))}.theme--tertiary.muted .grouped{--_meter-background:var(--forge-meter-background, var(--forge-theme-tertiary-container-minimum, #f7f8ff));--_meter-color:var(--forge-meter-color, var(--forge-theme-tertiary-container-high, #b5c0ff))}.theme--success:not(.muted) .track:not(.segmented){--_meter-background:var(--forge-meter-background, var(--forge-theme-success-container-low, #e6efe6));--_meter-color:var(--forge-meter-color, var(--forge-theme-success, #2e7d32))}.theme--success:not(.muted).grouped{--_meter-background:var(--forge-meter-background, var(--forge-theme-success-container-low, #e6efe6));--_meter-color:var(--forge-meter-color, var(--forge-theme-success, #2e7d32))}.theme--success.muted .track:not(.segmented){--_meter-background:var(--forge-meter-background, var(--forge-theme-success-container-minimum, #f7faf7));--_meter-color:var(--forge-meter-color, var(--forge-theme-success-container-high, #b0ceb1))}.theme--success.muted .grouped{--_meter-background:var(--forge-meter-background, var(--forge-theme-success-container-minimum, #f7faf7));--_meter-color:var(--forge-meter-color, var(--forge-theme-success-container-high, #b0ceb1))}.theme--warning:not(.muted) .track:not(.segmented){--_meter-background:var(--forge-meter-background, var(--forge-theme-warning-container-low, #f9e9e0));--_meter-color:var(--forge-meter-color, var(--forge-theme-warning, #d14900))}.theme--warning:not(.muted).grouped{--_meter-background:var(--forge-meter-background, var(--forge-theme-warning-container-low, #f9e9e0));--_meter-color:var(--forge-meter-color, var(--forge-theme-warning, #d14900))}.theme--warning.muted .track:not(.segmented){--_meter-background:var(--forge-meter-background, var(--forge-theme-warning-container-minimum, #fdf8f5));--_meter-color:var(--forge-meter-color, var(--forge-theme-warning-container-high, #eeba9e))}.theme--warning.muted .grouped{--_meter-background:var(--forge-meter-background, var(--forge-theme-warning-container-minimum, #fdf8f5));--_meter-color:var(--forge-meter-color, var(--forge-theme-warning-container-high, #eeba9e))}.theme--error:not(.muted) .track:not(.segmented){--_meter-background:var(--forge-meter-background, var(--forge-theme-error-container-low, #f6e0e4));--_meter-color:var(--forge-meter-color, var(--forge-theme-error, #b00020))}.theme--error:not(.muted).grouped{--_meter-background:var(--forge-meter-background, var(--forge-theme-error-container-low, #f6e0e4));--_meter-color:var(--forge-meter-color, var(--forge-theme-error, #b00020))}.theme--error.muted .track:not(.segmented){--_meter-background:var(--forge-meter-background, var(--forge-theme-error-container-minimum, #fcf5f6));--_meter-color:var(--forge-meter-color, var(--forge-theme-error-container-high, #e19eaa))}.theme--error.muted .grouped{--_meter-background:var(--forge-meter-background, var(--forge-theme-error-container-minimum, #fcf5f6));--_meter-color:var(--forge-meter-color, var(--forge-theme-error-container-high, #e19eaa))}.theme--info:not(.muted) .track:not(.segmented){--_meter-background:var(--forge-meter-background, var(--forge-theme-info-container-low, #e3edf7));--_meter-color:var(--forge-meter-color, var(--forge-theme-info, #1565c0))}.theme--info:not(.muted).grouped{--_meter-background:var(--forge-meter-background, var(--forge-theme-info-container-low, #e3edf7));--_meter-color:var(--forge-meter-color, var(--forge-theme-info, #1565c0))}.theme--info.muted .track:not(.segmented){--_meter-background:var(--forge-meter-background, var(--forge-theme-info-container-minimum, #f6f9fc));--_meter-color:var(--forge-meter-color, var(--forge-theme-info-container-high, #a6c4e7))}.theme--info.muted .grouped{--_meter-background:var(--forge-meter-background, var(--forge-theme-info-container-minimum, #f6f9fc));--_meter-color:var(--forge-meter-color, var(--forge-theme-info-container-high, #a6c4e7))}@media (prefers-reduced-motion:reduce){.track{--_meter-transition-duration:var(--forge-meter-transition-duration, 0)}}@media (forced-colors:active){.track{border:1px solid CanvasText}.track .bar{background:CanvasText}.grouped{border-inline-end:1px solid Canvas!important;background:CanvasText!important}:host(:is(:state(vertical),:--vertical)) .grouped{border-block-start:1px solid CanvasText!important;border-inline-end:initial!important}}';
|
|
16
17
|
export const METER_TAG_NAME = 'forge-meter';
|
|
17
18
|
const VALUE_STATE_MAP = new Map([
|
|
@@ -54,7 +55,7 @@ const VALUE_STATE_MAP = new Map([
|
|
|
54
55
|
* @slot - The default slot for the meter's label.
|
|
55
56
|
* @slot value - A textual representation of the meter's value.
|
|
56
57
|
*/
|
|
57
|
-
let MeterComponent = class MeterComponent extends
|
|
58
|
+
let MeterComponent = class MeterComponent extends BaseLitElement {
|
|
58
59
|
/**
|
|
59
60
|
* Gets the percentage of the meter that's filled.
|
|
60
61
|
* @readonly
|
|
@@ -295,6 +296,7 @@ let MeterComponent = class MeterComponent extends LitElement {
|
|
|
295
296
|
_a = CUSTOM_ELEMENT_NAME_PROPERTY;
|
|
296
297
|
MeterComponent.styles = unsafeCSS(styles);
|
|
297
298
|
MeterComponent.formAssociated = true;
|
|
299
|
+
/** @deprecated Used for compatibility with legacy Forge @customElement decorator. */
|
|
298
300
|
MeterComponent[_a] = METER_TAG_NAME;
|
|
299
301
|
__decorate([
|
|
300
302
|
property({ type: Number })
|
|
@@ -4,8 +4,9 @@
|
|
|
4
4
|
* License: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { CUSTOM_ELEMENT_NAME_PROPERTY } from '@tylertech/forge-core';
|
|
7
|
-
import {
|
|
7
|
+
import { PropertyValues, TemplateResult } from 'lit';
|
|
8
8
|
import { MeterDensity, MeterDirection, MeterInnerShape, MeterShape } from '../meter/meter';
|
|
9
|
+
import { BaseLitElement } from '../../core/base/base-lit-element';
|
|
9
10
|
export declare const METER_GROUP_TAG_NAME: keyof HTMLElementTagNameMap;
|
|
10
11
|
/**
|
|
11
12
|
* @tag forge-meter-group
|
|
@@ -28,7 +29,7 @@ export declare const METER_GROUP_TAG_NAME: keyof HTMLElementTagNameMap;
|
|
|
28
29
|
* @slot label - Positions a label above the meter group.
|
|
29
30
|
* @slot value - A textual representation of the meter's value.
|
|
30
31
|
*/
|
|
31
|
-
export declare class MeterGroupComponent extends
|
|
32
|
+
export declare class MeterGroupComponent extends BaseLitElement {
|
|
32
33
|
static styles: import("lit").CSSResult;
|
|
33
34
|
static formAssociated: boolean;
|
|
34
35
|
/** @deprecated Used for compatibility with legacy Forge @customElement decorator. */
|
|
@@ -6,11 +6,12 @@
|
|
|
6
6
|
var _a;
|
|
7
7
|
import { __decorate } from "tslib";
|
|
8
8
|
import { CUSTOM_ELEMENT_NAME_PROPERTY, debounce } from '@tylertech/forge-core';
|
|
9
|
-
import { html,
|
|
9
|
+
import { html, unsafeCSS } from 'lit';
|
|
10
10
|
import { customElement, property, queryAssignedElements, queryAssignedNodes, state } from 'lit/decorators.js';
|
|
11
11
|
import { classMap } from 'lit/directives/class-map.js';
|
|
12
12
|
import { setDefaultAria } from '../../core/utils/a11y-utils';
|
|
13
13
|
import { toggleState } from '../../core/utils/utils';
|
|
14
|
+
import { BaseLitElement } from '../../core/base/base-lit-element';
|
|
14
15
|
const styles = ':host{display:inline}.forge-meter-group{--_meter-group-background:var(--forge-meter-group-background, var(--forge-theme-surface-container-low, #ebebeb));--_meter-group-height:var(--forge-meter-group-height, var(--forge-spacing-medium, 16px));--_meter-group-shape:var(--forge-meter-group-shape, calc(var(--forge-shape-medium, 4px) * var(--forge-shape-factor, 1)));--_meter-group-tickmarks:var(--forge-meter-group-tickmarks, 10);--_meter-group-tickmark-color:var(--forge-meter-group-tickmark-color, var(--forge-theme-outline-high, #212121));--_meter-group-tickmark-opacity:var(--forge-meter-group-tickmark-opacity, 54%)}.forge-meter-group{box-sizing:border-box}.forge-meter-group .heading{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--forge-typography-label1-font-family, var(--forge-typography-font-family, \"Roboto\", sans-serif));font-size:var(--forge-typography-label1-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-label-font-size-scale, .75)));font-weight:var(--forge-typography-label1-font-weight,400);line-height:var(--forge-typography-label1-line-height, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-label-line-height-scale, 1.25)));letter-spacing:var(--forge-typography-label1-letter-spacing, .0357142857em);text-transform:var(--forge-typography-label1-text-transform,inherit);text-decoration:var(--forge-typography-label1-text-decoration,inherit);display:flex;align-items:center;justify-content:space-between;line-height:normal}.forge-meter-group .heading.not-empty{margin-bottom:var(--forge-spacing-xxsmall,4px)}.forge-meter-group .label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.forge-meter-group .value{color:var(--forge-theme-text-medium,rgba(0,0,0,.6))}.forge-meter-group .track{position:relative;height:var(--_meter-group-height);border-radius:var(--_meter-group-shape);overflow:hidden;background:var(--_meter-group-background)}.forge-meter-group .track.tickmarks::after{content:\"\";position:relative;display:block;z-index:9999;width:100%;height:100%;margin-left:-1px;background:repeating-linear-gradient(90deg,var(--_meter-group-tickmark-color) 0,var(--_meter-group-tickmark-color) 1px,transparent 1px,transparent calc(100% / (var(--_meter-group-tickmarks) + 1) + 0px));opacity:var(--_meter-group-tickmark-opacity);pointer-events:none}.forge-meter-group .track.inner-shape--inherit{--forge-meter-inner-shape:var(--_meter-group-shape)}.forge-meter-group .track.shape--default{--_meter-group-shape:var(--forge-meter-group-shape, calc(var(--forge-shape-medium, 4px) * var(--forge-shape-factor, 1)))}.forge-meter-group .track.shape--rounded{--_meter-group-shape:var(--forge-meter-group-shape, calc(var(--forge-shape-full, 9999px) * var(--forge-shape-factor, 1)))}.forge-meter-group .track.shape--squared{--_meter-group-shape:var(--forge-meter-group-shape, 0)}.forge-meter-group .track.density--small{--_meter-group-height:var(--forge-meter-group-height, var(--forge-spacing-xsmall, 8px))}.forge-meter-group .track.density--medium{--_meter-group-height:var(--forge-meter-group-height, var(--forge-spacing-medium, 16px))}.forge-meter-group .track.density--large{--_meter-group-height:var(--forge-meter-group-height, var(--forge-spacing-large, 24px))}:host(:is(:state(vertical),:--vertical)){display:block}:host(:is(:state(vertical),:--vertical)) .forge-meter-group{display:flex;flex-direction:row-reverse;align-items:end;width:fit-content;height:100%;max-width:100%}:host(:is(:state(vertical),:--vertical)) .forge-meter-group .heading{flex-direction:column;align-items:start}:host(:is(:state(vertical),:--vertical)) .forge-meter-group .heading.not-empty{margin-bottom:0;margin-left:var(--forge-spacing-xsmall,8px)}:host(:is(:state(vertical),:--vertical)) .forge-meter-group .track{width:var(--_meter-group-height);height:100%}:host(:is(:state(vertical),:--vertical)) .forge-meter-group .track.tickmarks::after{margin-top:1px;margin-left:0;background:repeating-linear-gradient(90deg,var(--_meter-group-tickmark-color),true 0,var(--_meter-group-tickmark-color),true 1px,transparent 1px,transparent calc(100% / (var(--_meter-group-tickmarks) + 1) + 0px))}@media (forced-colors:active){.track{border:1px solid CanvasText}}';
|
|
15
16
|
export const METER_GROUP_TAG_NAME = 'forge-meter-group';
|
|
16
17
|
/**
|
|
@@ -34,7 +35,7 @@ export const METER_GROUP_TAG_NAME = 'forge-meter-group';
|
|
|
34
35
|
* @slot label - Positions a label above the meter group.
|
|
35
36
|
* @slot value - A textual representation of the meter's value.
|
|
36
37
|
*/
|
|
37
|
-
let MeterGroupComponent = class MeterGroupComponent extends
|
|
38
|
+
let MeterGroupComponent = class MeterGroupComponent extends BaseLitElement {
|
|
38
39
|
get labels() {
|
|
39
40
|
return this._internals.labels;
|
|
40
41
|
}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
import { BaseComponent, IBaseComponent } from '../../core/base/base-component';
|
|
7
7
|
import { IOverlayComponent } from '../overlay';
|
|
8
8
|
import { IOverlayAwareCore } from './overlay-aware-core';
|
|
9
|
-
import { IOverlayOffset, OverlayFlipState, OverlayHideState, OverlayPlacement, OverlayPositionStrategy } from '../overlay-constants';
|
|
9
|
+
import { IOverlayOffset, OverlayFlipState, OverlayHideState, OverlayPlacement, OverlayPositionStrategy, OverlayShiftState } from '../overlay-constants';
|
|
10
10
|
import { PositionPlacement, VirtualElement } from '../../core/utils/position-utils';
|
|
11
11
|
import { IBaseOverlay } from './base-overlay';
|
|
12
12
|
export interface IOverlayAware extends IBaseComponent, IBaseOverlay {
|
|
@@ -21,7 +21,7 @@ export interface IOverlayAware extends IBaseComponent, IBaseOverlay {
|
|
|
21
21
|
* @property {OverlayPlacement} [placement="bottom"] - The placement of the overlay.
|
|
22
22
|
* @property {OverlayPositionStrategy} [positionStrategy="fixed"] - The position strategy of the overlay.
|
|
23
23
|
* @property {IOverlayOffset} [offset={}] - The offset of the overlay.
|
|
24
|
-
* @property {
|
|
24
|
+
* @property {OverlayShiftState} [shift="auto"] - Whether the overlay should shift to fit within the viewport.
|
|
25
25
|
* @property {OverlayHideState} [hide="anchor-hidden"] - The hide state of the overlay.
|
|
26
26
|
* @property {boolean} [persistent=false] - Whether the overlay should persist when the anchor is removed.
|
|
27
27
|
* @property {OverlayFlipState} [flip="auto"] - Whether the overlay should flip placements to another side fit within the viewport.
|
|
@@ -37,7 +37,7 @@ export interface IOverlayAware extends IBaseComponent, IBaseOverlay {
|
|
|
37
37
|
* @attribute {OverlayPlacement} [placement="bottom"] - The placement of the overlay.
|
|
38
38
|
* @attribute {OverlayPositionStrategy} [position-strategy="fixed"] - The position strategy of the overlay.
|
|
39
39
|
* @attribute {IOverlayOffset} offset - The offset of the overlay.
|
|
40
|
-
* @attribute {
|
|
40
|
+
* @attribute {OverlayShiftState} [shift="auto"] - Whether the overlay should shift to fit within the viewport.
|
|
41
41
|
* @attribute {OverlayHideState} [hide="anchor-hidden"] - The hide state of the overlay.
|
|
42
42
|
* @attribute {boolean} [persistent=false] - Whether the overlay should persist when the anchor is removed.
|
|
43
43
|
* @attribute {OverlayFlipState} [flip="auto"] - Whether the overlay should flip placements to another side fit within the viewport.
|
|
@@ -60,7 +60,7 @@ export declare abstract class OverlayAware<T extends IOverlayAwareCore> extends
|
|
|
60
60
|
placement: OverlayPlacement;
|
|
61
61
|
positionStrategy: OverlayPositionStrategy;
|
|
62
62
|
offset: IOverlayOffset;
|
|
63
|
-
shift:
|
|
63
|
+
shift: OverlayShiftState;
|
|
64
64
|
hide: OverlayHideState;
|
|
65
65
|
persistent: boolean;
|
|
66
66
|
flip: OverlayFlipState;
|
|
@@ -16,7 +16,7 @@ import { OVERLAY_CONSTANTS } from '../overlay-constants';
|
|
|
16
16
|
* @property {OverlayPlacement} [placement="bottom"] - The placement of the overlay.
|
|
17
17
|
* @property {OverlayPositionStrategy} [positionStrategy="fixed"] - The position strategy of the overlay.
|
|
18
18
|
* @property {IOverlayOffset} [offset={}] - The offset of the overlay.
|
|
19
|
-
* @property {
|
|
19
|
+
* @property {OverlayShiftState} [shift="auto"] - Whether the overlay should shift to fit within the viewport.
|
|
20
20
|
* @property {OverlayHideState} [hide="anchor-hidden"] - The hide state of the overlay.
|
|
21
21
|
* @property {boolean} [persistent=false] - Whether the overlay should persist when the anchor is removed.
|
|
22
22
|
* @property {OverlayFlipState} [flip="auto"] - Whether the overlay should flip placements to another side fit within the viewport.
|
|
@@ -32,7 +32,7 @@ import { OVERLAY_CONSTANTS } from '../overlay-constants';
|
|
|
32
32
|
* @attribute {OverlayPlacement} [placement="bottom"] - The placement of the overlay.
|
|
33
33
|
* @attribute {OverlayPositionStrategy} [position-strategy="fixed"] - The position strategy of the overlay.
|
|
34
34
|
* @attribute {IOverlayOffset} offset - The offset of the overlay.
|
|
35
|
-
* @attribute {
|
|
35
|
+
* @attribute {OverlayShiftState} [shift="auto"] - Whether the overlay should shift to fit within the viewport.
|
|
36
36
|
* @attribute {OverlayHideState} [hide="anchor-hidden"] - The hide state of the overlay.
|
|
37
37
|
* @attribute {boolean} [persistent=false] - Whether the overlay should persist when the anchor is removed.
|
|
38
38
|
* @attribute {OverlayFlipState} [flip="auto"] - Whether the overlay should flip placements to another side fit within the viewport.
|
|
@@ -75,7 +75,7 @@ export class OverlayAware extends BaseComponent {
|
|
|
75
75
|
this.persistent = coerceBoolean(newValue);
|
|
76
76
|
break;
|
|
77
77
|
case OVERLAY_CONSTANTS.observedAttributes.SHIFT:
|
|
78
|
-
this.shift =
|
|
78
|
+
this.shift = newValue;
|
|
79
79
|
break;
|
|
80
80
|
case OVERLAY_CONSTANTS.observedAttributes.FLIP:
|
|
81
81
|
this.flip = newValue;
|
|
@@ -127,6 +127,11 @@ export class BaseSelectCore extends ListDropdownAwareCore {
|
|
|
127
127
|
scrollEndListener: this._dropdownScrollEndListener,
|
|
128
128
|
activeChangeCallback: this._activeChangeListener,
|
|
129
129
|
targetWidthCallback: this._targetWidthCallback,
|
|
130
|
+
popupPlacement: this._popoverPlacement,
|
|
131
|
+
popupOffset: this._popoverOffset,
|
|
132
|
+
popupFlip: this._popoverFlip,
|
|
133
|
+
popupShift: this._popoverShift,
|
|
134
|
+
popupFallbackPlacements: this._popoverFallbackPlacements,
|
|
130
135
|
popupClasses: this._popupClasses,
|
|
131
136
|
optionLimit: this._optionLimit,
|
|
132
137
|
headerBuilder: this._popupHeaderBuilder,
|