@akcelik/strct 4.14.0 → 4.16.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/fesm2022/akcelik-strct.mjs +308 -99
- package/fesm2022/akcelik-strct.mjs.map +1 -1
- package/package.json +1 -1
- package/types/akcelik-strct.d.ts +98 -9
|
@@ -2113,6 +2113,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
|
|
|
2113
2113
|
* <strct-avatar name="Ada Lovelace" status="online" />
|
|
2114
2114
|
*/
|
|
2115
2115
|
class StrctAvatar {
|
|
2116
|
+
/**
|
|
2117
|
+
* An icon instead of initials — a group, an assistant, a brand mark. An
|
|
2118
|
+
* `src` image still wins.
|
|
2119
|
+
*/
|
|
2120
|
+
icon = input('', /* @ts-ignore */
|
|
2121
|
+
...(ngDevMode ? [{ debugName: "icon" }] : /* istanbul ignore next */ []));
|
|
2122
|
+
/** `square` for a thing rather than a person (a group, an app). */
|
|
2123
|
+
shape = input('circle', /* @ts-ignore */
|
|
2124
|
+
...(ngDevMode ? [{ debugName: "shape" }] : /* istanbul ignore next */ []));
|
|
2125
|
+
/** Surface tone. `neutral` keeps the default grey tile. */
|
|
2126
|
+
tone = input('neutral', /* @ts-ignore */
|
|
2127
|
+
...(ngDevMode ? [{ debugName: "tone" }] : /* istanbul ignore next */ []));
|
|
2128
|
+
/** The icon scales with the avatar. */
|
|
2129
|
+
iconSize = computed(() => this.size() === 'lg' ? 22 : this.size() === 'sm' ? 13 : 17, /* @ts-ignore */
|
|
2130
|
+
...(ngDevMode ? [{ debugName: "iconSize" }] : /* istanbul ignore next */ []));
|
|
2116
2131
|
/** Image URL. */
|
|
2117
2132
|
src = input('', /* @ts-ignore */
|
|
2118
2133
|
...(ngDevMode ? [{ debugName: "src" }] : /* istanbul ignore next */ []));
|
|
@@ -2135,22 +2150,30 @@ class StrctAvatar {
|
|
|
2135
2150
|
}, /* @ts-ignore */
|
|
2136
2151
|
...(ngDevMode ? [{ debugName: "initials" }] : /* istanbul ignore next */ []));
|
|
2137
2152
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctAvatar, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2138
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: StrctAvatar, isStandalone: true, selector: "strct-avatar", inputs: { src: { classPropertyName: "src", publicName: "src", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, status: { classPropertyName: "status", publicName: "status", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.strct-av--sm": "size() === 'sm'", "class.strct-av--lg": "size() === 'lg'", "class.strct-av--online": "status() === 'online'", "class.strct-av--busy": "status() === 'busy'", "class.strct-av--offline": "status() === 'offline'", "attr.title": "name() || null" }, classAttribute: "strct-av" }, ngImport: i0, template: `
|
|
2153
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: StrctAvatar, isStandalone: true, selector: "strct-avatar", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, shape: { classPropertyName: "shape", publicName: "shape", isSignal: true, isRequired: false, transformFunction: null }, tone: { classPropertyName: "tone", publicName: "tone", isSignal: true, isRequired: false, transformFunction: null }, src: { classPropertyName: "src", publicName: "src", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, status: { classPropertyName: "status", publicName: "status", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.strct-av--square": "shape() === 'square'", "attr.data-tone": "tone()", "class.strct-av--sm": "size() === 'sm'", "class.strct-av--lg": "size() === 'lg'", "class.strct-av--online": "status() === 'online'", "class.strct-av--busy": "status() === 'busy'", "class.strct-av--offline": "status() === 'offline'", "attr.title": "name() || null" }, classAttribute: "strct-av" }, ngImport: i0, template: `
|
|
2139
2154
|
@if (src()) {
|
|
2140
2155
|
<img class="strct-av__img" [src]="src()" [alt]="name()" />
|
|
2156
|
+
} @else if (icon()) {
|
|
2157
|
+
<!-- Not every avatar is a person with initials: a group, an assistant, a
|
|
2158
|
+
brand mark. -->
|
|
2159
|
+
<strct-icon class="strct-av__icon" [name]="icon()" [size]="iconSize()" />
|
|
2141
2160
|
} @else {
|
|
2142
2161
|
<span class="strct-av__initials">{{ initials() }}</span>
|
|
2143
2162
|
}
|
|
2144
2163
|
@if (status() !== 'none') {
|
|
2145
2164
|
<span class="strct-av__status"></span>
|
|
2146
2165
|
}
|
|
2147
|
-
`, isInline: true, styles: [".strct-av{position:relative;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;flex-shrink:0;background:var(--bg-3);color:var(--t1);overflow:visible;font-size:13px;font-weight:600;-webkit-user-select:none;user-select:none;border:1px solid var(--b2)}.strct-av--sm{width:26px;height:26px;font-size:12px}.strct-av--lg{width:48px;height:48px;font-size:17px}.strct-av__img{width:100%;height:100%;border-radius:50%;object-fit:cover}.strct-av__initials{line-height:1}.strct-av__status{position:absolute;inset-inline-end:-1px;bottom:-1px;width:30%;height:30%;min-width:8px;min-height:8px;border-radius:50%;border:2px solid var(--bg-1);background:var(--t3)}.strct-av--online .strct-av__status{background:var(--success)}.strct-av--busy .strct-av__status{background:var(--critical)}.strct-av--offline .strct-av__status{background:var(--t3)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
2166
|
+
`, isInline: true, styles: [".strct-av{position:relative;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;flex-shrink:0;background:var(--bg-3);color:var(--t1);overflow:visible;font-size:13px;font-weight:600;-webkit-user-select:none;user-select:none;border:1px solid var(--b2)}.strct-av--square,.strct-av--square .strct-av__img{border-radius:var(--radius-md)}.strct-av__icon{line-height:0}.strct-av[data-tone=accent]{background:var(--acc);border-color:transparent;color:var(--inv)}.strct-av[data-tone=accent-soft]{background:var(--acc-m);border-color:var(--acc30);color:var(--acc)}.strct-av[data-tone=success]{background:var(--success);border-color:transparent;color:var(--inv)}.strct-av[data-tone=warning]{background:var(--warning);border-color:transparent;color:var(--inv)}.strct-av[data-tone=critical]{background:var(--critical);border-color:transparent;color:var(--inv)}.strct-av--sm{width:26px;height:26px;font-size:12px}.strct-av--lg{width:48px;height:48px;font-size:17px}.strct-av__img{width:100%;height:100%;border-radius:50%;object-fit:cover}.strct-av__initials{line-height:1}.strct-av__status{position:absolute;inset-inline-end:-1px;bottom:-1px;width:30%;height:30%;min-width:8px;min-height:8px;border-radius:50%;border:2px solid var(--bg-1);background:var(--t3)}.strct-av--online .strct-av__status{background:var(--success)}.strct-av--busy .strct-av__status{background:var(--critical)}.strct-av--offline .strct-av__status{background:var(--t3)}\n"], dependencies: [{ kind: "component", type: StrctIcon, selector: "strct-icon", inputs: ["name", "strictName", "size", "strokeWidth", "badge", "ariaLabel", "count", "countMax", "countStatus", "countLabel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
2148
2167
|
}
|
|
2149
2168
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctAvatar, decorators: [{
|
|
2150
2169
|
type: Component,
|
|
2151
|
-
args: [{ selector: 'strct-avatar', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: `
|
|
2170
|
+
args: [{ selector: 'strct-avatar', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [StrctIcon], template: `
|
|
2152
2171
|
@if (src()) {
|
|
2153
2172
|
<img class="strct-av__img" [src]="src()" [alt]="name()" />
|
|
2173
|
+
} @else if (icon()) {
|
|
2174
|
+
<!-- Not every avatar is a person with initials: a group, an assistant, a
|
|
2175
|
+
brand mark. -->
|
|
2176
|
+
<strct-icon class="strct-av__icon" [name]="icon()" [size]="iconSize()" />
|
|
2154
2177
|
} @else {
|
|
2155
2178
|
<span class="strct-av__initials">{{ initials() }}</span>
|
|
2156
2179
|
}
|
|
@@ -2159,14 +2182,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
|
|
|
2159
2182
|
}
|
|
2160
2183
|
`, host: {
|
|
2161
2184
|
class: 'strct-av',
|
|
2185
|
+
'[class.strct-av--square]': "shape() === 'square'",
|
|
2186
|
+
'[attr.data-tone]': 'tone()',
|
|
2162
2187
|
'[class.strct-av--sm]': "size() === 'sm'",
|
|
2163
2188
|
'[class.strct-av--lg]': "size() === 'lg'",
|
|
2164
2189
|
'[class.strct-av--online]': "status() === 'online'",
|
|
2165
2190
|
'[class.strct-av--busy]': "status() === 'busy'",
|
|
2166
2191
|
'[class.strct-av--offline]': "status() === 'offline'",
|
|
2167
2192
|
'[attr.title]': 'name() || null',
|
|
2168
|
-
}, styles: [".strct-av{position:relative;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;flex-shrink:0;background:var(--bg-3);color:var(--t1);overflow:visible;font-size:13px;font-weight:600;-webkit-user-select:none;user-select:none;border:1px solid var(--b2)}.strct-av--sm{width:26px;height:26px;font-size:12px}.strct-av--lg{width:48px;height:48px;font-size:17px}.strct-av__img{width:100%;height:100%;border-radius:50%;object-fit:cover}.strct-av__initials{line-height:1}.strct-av__status{position:absolute;inset-inline-end:-1px;bottom:-1px;width:30%;height:30%;min-width:8px;min-height:8px;border-radius:50%;border:2px solid var(--bg-1);background:var(--t3)}.strct-av--online .strct-av__status{background:var(--success)}.strct-av--busy .strct-av__status{background:var(--critical)}.strct-av--offline .strct-av__status{background:var(--t3)}\n"] }]
|
|
2169
|
-
}], propDecorators: { src: [{ type: i0.Input, args: [{ isSignal: true, alias: "src", required: false }] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], status: [{ type: i0.Input, args: [{ isSignal: true, alias: "status", required: false }] }] } });
|
|
2193
|
+
}, styles: [".strct-av{position:relative;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;flex-shrink:0;background:var(--bg-3);color:var(--t1);overflow:visible;font-size:13px;font-weight:600;-webkit-user-select:none;user-select:none;border:1px solid var(--b2)}.strct-av--square,.strct-av--square .strct-av__img{border-radius:var(--radius-md)}.strct-av__icon{line-height:0}.strct-av[data-tone=accent]{background:var(--acc);border-color:transparent;color:var(--inv)}.strct-av[data-tone=accent-soft]{background:var(--acc-m);border-color:var(--acc30);color:var(--acc)}.strct-av[data-tone=success]{background:var(--success);border-color:transparent;color:var(--inv)}.strct-av[data-tone=warning]{background:var(--warning);border-color:transparent;color:var(--inv)}.strct-av[data-tone=critical]{background:var(--critical);border-color:transparent;color:var(--inv)}.strct-av--sm{width:26px;height:26px;font-size:12px}.strct-av--lg{width:48px;height:48px;font-size:17px}.strct-av__img{width:100%;height:100%;border-radius:50%;object-fit:cover}.strct-av__initials{line-height:1}.strct-av__status{position:absolute;inset-inline-end:-1px;bottom:-1px;width:30%;height:30%;min-width:8px;min-height:8px;border-radius:50%;border:2px solid var(--bg-1);background:var(--t3)}.strct-av--online .strct-av__status{background:var(--success)}.strct-av--busy .strct-av__status{background:var(--critical)}.strct-av--offline .strct-av__status{background:var(--t3)}\n"] }]
|
|
2194
|
+
}], propDecorators: { icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], shape: [{ type: i0.Input, args: [{ isSignal: true, alias: "shape", required: false }] }], tone: [{ type: i0.Input, args: [{ isSignal: true, alias: "tone", required: false }] }], src: [{ type: i0.Input, args: [{ isSignal: true, alias: "src", required: false }] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], status: [{ type: i0.Input, args: [{ isSignal: true, alias: "status", required: false }] }] } });
|
|
2170
2195
|
|
|
2171
2196
|
/**
|
|
2172
2197
|
* Horizontal value/usage bar. `<strct-progress [value]="72" status="warning" />`.
|
|
@@ -3979,6 +4004,11 @@ class StrctTree {
|
|
|
3979
4004
|
*/
|
|
3980
4005
|
density = input('compact', /* @ts-ignore */
|
|
3981
4006
|
...(ngDevMode ? [{ debugName: "density" }] : /* istanbul ignore next */ []));
|
|
4007
|
+
/** A bordered surface around the tree — for a picker inside a dialog. */
|
|
4008
|
+
framed = input(false, { ...(ngDevMode ? { debugName: "framed" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
4009
|
+
/** Caps the height in px; the tree scrolls inside its frame. */
|
|
4010
|
+
maxHeight = input(null, /* @ts-ignore */
|
|
4011
|
+
...(ngDevMode ? [{ debugName: "maxHeight" }] : /* istanbul ignore next */ []));
|
|
3982
4012
|
/** Per-node right-click menu resolver. */
|
|
3983
4013
|
nodeMenu = input(null, /* @ts-ignore */
|
|
3984
4014
|
...(ngDevMode ? [{ debugName: "nodeMenu" }] : /* istanbul ignore next */ []));
|
|
@@ -4347,7 +4377,7 @@ class StrctTree {
|
|
|
4347
4377
|
this.expandedChange.emit([...this.currentSet()]);
|
|
4348
4378
|
}
|
|
4349
4379
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctTree, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
4350
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: StrctTree, isStandalone: true, selector: "strct-tree", inputs: { nodes: { classPropertyName: "nodes", publicName: "nodes", isSignal: true, isRequired: false, transformFunction: null }, density: { classPropertyName: "density", publicName: "density", isSignal: true, isRequired: false, transformFunction: null }, nodeMenu: { classPropertyName: "nodeMenu", publicName: "nodeMenu", isSignal: true, isRequired: false, transformFunction: null }, canDrag: { classPropertyName: "canDrag", publicName: "canDrag", isSignal: true, isRequired: false, transformFunction: null }, canDrop: { classPropertyName: "canDrop", publicName: "canDrop", isSignal: true, isRequired: false, transformFunction: null }, dragExpandDelay: { classPropertyName: "dragExpandDelay", publicName: "dragExpandDelay", isSignal: true, isRequired: false, transformFunction: null }, chevronAriaLabel: { classPropertyName: "chevronAriaLabel", publicName: "chevronAriaLabel", isSignal: true, isRequired: false, transformFunction: null }, expandedIds: { classPropertyName: "expandedIds", publicName: "expandedIds", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { nodeDrop: "nodeDrop", nodeActivated: "nodeActivated", nodeMenuSelect: "nodeMenuSelect", expandedIds: "expandedIdsChange", expandedChange: "expandedChange", nodeToggled: "nodeToggled" }, host: { attributes: { "role": "tree" }, properties: { "class.strct-tree--comfortable": "density() === 'comfortable'" }, classAttribute: "strct-tree" }, queries: [{ propertyName: "projectedNodes", predicate: StrctTreeNode, isSignal: true }], ngImport: i0, template: `
|
|
4380
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: StrctTree, isStandalone: true, selector: "strct-tree", inputs: { nodes: { classPropertyName: "nodes", publicName: "nodes", isSignal: true, isRequired: false, transformFunction: null }, density: { classPropertyName: "density", publicName: "density", isSignal: true, isRequired: false, transformFunction: null }, framed: { classPropertyName: "framed", publicName: "framed", isSignal: true, isRequired: false, transformFunction: null }, maxHeight: { classPropertyName: "maxHeight", publicName: "maxHeight", isSignal: true, isRequired: false, transformFunction: null }, nodeMenu: { classPropertyName: "nodeMenu", publicName: "nodeMenu", isSignal: true, isRequired: false, transformFunction: null }, canDrag: { classPropertyName: "canDrag", publicName: "canDrag", isSignal: true, isRequired: false, transformFunction: null }, canDrop: { classPropertyName: "canDrop", publicName: "canDrop", isSignal: true, isRequired: false, transformFunction: null }, dragExpandDelay: { classPropertyName: "dragExpandDelay", publicName: "dragExpandDelay", isSignal: true, isRequired: false, transformFunction: null }, chevronAriaLabel: { classPropertyName: "chevronAriaLabel", publicName: "chevronAriaLabel", isSignal: true, isRequired: false, transformFunction: null }, expandedIds: { classPropertyName: "expandedIds", publicName: "expandedIds", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { nodeDrop: "nodeDrop", nodeActivated: "nodeActivated", nodeMenuSelect: "nodeMenuSelect", expandedIds: "expandedIdsChange", expandedChange: "expandedChange", nodeToggled: "nodeToggled" }, host: { attributes: { "role": "tree" }, properties: { "class.strct-tree--comfortable": "density() === 'comfortable'", "class.strct-tree--framed": "framed()", "style.max-height.px": "maxHeight()" }, classAttribute: "strct-tree" }, queries: [{ propertyName: "projectedNodes", predicate: StrctTreeNode, isSignal: true }], ngImport: i0, template: `
|
|
4351
4381
|
@if (nodes(); as ns) {
|
|
4352
4382
|
@for (n of ns; track n.id ?? n.label) {
|
|
4353
4383
|
<strct-tree-node
|
|
@@ -4360,7 +4390,7 @@ class StrctTree {
|
|
|
4360
4390
|
} @else {
|
|
4361
4391
|
<ng-content />
|
|
4362
4392
|
}
|
|
4363
|
-
`, isInline: true, styles: [".strct-tree{display:block}.strct-tree--comfortable .strct-tnode__row{gap:7px;padding:6px 10px;border-radius:6px;font-size:14px}.strct-tree--comfortable .strct-tnode__chevron{margin:-4px;margin-inline-end:-9px}.strct-tree--comfortable .strct-tnode__spacer{width:16px}.strct-tree--comfortable .strct-tnode__children{margin-inline-start:19px}\n"], dependencies: [{ kind: "component", type: StrctTreeNode, selector: "strct-tree-node", inputs: ["node", "label", "icon", "badge", "active", "expanded", "nodeMenu"], outputs: ["expandedChange", "activated", "nodeActivated", "nodeMenuSelect"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
4393
|
+
`, isInline: true, styles: [".strct-tree{display:block}.strct-tree--framed{border:1px solid var(--b2);border-radius:var(--radius-md);background:var(--bg-1);padding:var(--space-1)}.strct-tree[style*=max-height]{overflow:auto}.strct-tree--comfortable .strct-tnode__row{gap:7px;padding:6px 10px;border-radius:6px;font-size:14px}.strct-tree--comfortable .strct-tnode__chevron{margin:-4px;margin-inline-end:-9px}.strct-tree--comfortable .strct-tnode__spacer{width:16px}.strct-tree--comfortable .strct-tnode__children{margin-inline-start:19px}\n"], dependencies: [{ kind: "component", type: StrctTreeNode, selector: "strct-tree-node", inputs: ["node", "label", "icon", "badge", "active", "expanded", "nodeMenu"], outputs: ["expandedChange", "activated", "nodeActivated", "nodeMenuSelect"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
4364
4394
|
}
|
|
4365
4395
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctTree, decorators: [{
|
|
4366
4396
|
type: Component,
|
|
@@ -4381,8 +4411,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
|
|
|
4381
4411
|
class: 'strct-tree',
|
|
4382
4412
|
role: 'tree',
|
|
4383
4413
|
'[class.strct-tree--comfortable]': "density() === 'comfortable'",
|
|
4384
|
-
|
|
4385
|
-
|
|
4414
|
+
'[class.strct-tree--framed]': 'framed()',
|
|
4415
|
+
'[style.max-height.px]': 'maxHeight()',
|
|
4416
|
+
}, styles: [".strct-tree{display:block}.strct-tree--framed{border:1px solid var(--b2);border-radius:var(--radius-md);background:var(--bg-1);padding:var(--space-1)}.strct-tree[style*=max-height]{overflow:auto}.strct-tree--comfortable .strct-tnode__row{gap:7px;padding:6px 10px;border-radius:6px;font-size:14px}.strct-tree--comfortable .strct-tnode__chevron{margin:-4px;margin-inline-end:-9px}.strct-tree--comfortable .strct-tnode__spacer{width:16px}.strct-tree--comfortable .strct-tnode__children{margin-inline-start:19px}\n"] }]
|
|
4417
|
+
}], propDecorators: { nodes: [{ type: i0.Input, args: [{ isSignal: true, alias: "nodes", required: false }] }], density: [{ type: i0.Input, args: [{ isSignal: true, alias: "density", required: false }] }], framed: [{ type: i0.Input, args: [{ isSignal: true, alias: "framed", required: false }] }], maxHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxHeight", required: false }] }], nodeMenu: [{ type: i0.Input, args: [{ isSignal: true, alias: "nodeMenu", required: false }] }], canDrag: [{ type: i0.Input, args: [{ isSignal: true, alias: "canDrag", required: false }] }], canDrop: [{ type: i0.Input, args: [{ isSignal: true, alias: "canDrop", required: false }] }], dragExpandDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "dragExpandDelay", required: false }] }], nodeDrop: [{ type: i0.Output, args: ["nodeDrop"] }], chevronAriaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "chevronAriaLabel", required: false }] }], nodeActivated: [{ type: i0.Output, args: ["nodeActivated"] }], nodeMenuSelect: [{ type: i0.Output, args: ["nodeMenuSelect"] }], expandedIds: [{ type: i0.Input, args: [{ isSignal: true, alias: "expandedIds", required: false }] }, { type: i0.Output, args: ["expandedIdsChange"] }], expandedChange: [{ type: i0.Output, args: ["expandedChange"] }], nodeToggled: [{ type: i0.Output, args: ["nodeToggled"] }], projectedNodes: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => StrctTreeNode), { ...{ descendants: false }, isSignal: true }] }] } });
|
|
4386
4418
|
|
|
4387
4419
|
/**
|
|
4388
4420
|
* Dev-mode diagnostics for combinations a component accepts but cannot honour.
|
|
@@ -12073,6 +12105,71 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
|
|
|
12073
12105
|
args: ['document:keydown.escape', ['$event']]
|
|
12074
12106
|
}] } });
|
|
12075
12107
|
|
|
12108
|
+
/**
|
|
12109
|
+
* Default accessible text per status, used when `label` is not given
|
|
12110
|
+
* (localizable — override via `label`). The canonical `StrctStatus` vocabulary
|
|
12111
|
+
* has no 'ok'/'info': OK maps to 'success', info to 'accent'.
|
|
12112
|
+
*/
|
|
12113
|
+
const DEFAULT_LABEL = {
|
|
12114
|
+
neutral: 'Neutral',
|
|
12115
|
+
accent: 'Info',
|
|
12116
|
+
success: 'OK',
|
|
12117
|
+
warning: 'Warning',
|
|
12118
|
+
critical: 'Critical',
|
|
12119
|
+
};
|
|
12120
|
+
/**
|
|
12121
|
+
* Presence/state dot that never relies on colour alone: the tone is painted by
|
|
12122
|
+
* a pure-CSS dot while the state is also rendered as visually-hidden text, so
|
|
12123
|
+
* screen readers (and colour-blind users copying text) get "Warning", not just
|
|
12124
|
+
* a yellow circle. Use it inside avatars, menu rows, metric tiles — anywhere a
|
|
12125
|
+
* bare coloured dot would otherwise carry meaning.
|
|
12126
|
+
*
|
|
12127
|
+
* <strct-status-dot status="success" />
|
|
12128
|
+
* <strct-status-dot status="critical" size="sm" label="Node unreachable" />
|
|
12129
|
+
*/
|
|
12130
|
+
class StrctStatusDot {
|
|
12131
|
+
/** Status tone (canonical vocabulary: OK = 'success', info = 'accent'). */
|
|
12132
|
+
status = input('neutral', /* @ts-ignore */
|
|
12133
|
+
...(ngDevMode ? [{ debugName: "status" }] : /* istanbul ignore next */ []));
|
|
12134
|
+
/**
|
|
12135
|
+
* Accessible text describing the state (localizable). Empty falls back to a
|
|
12136
|
+
* per-status default ("OK", "Warning", …) so the dot is never color-only.
|
|
12137
|
+
*/
|
|
12138
|
+
label = input('', /* @ts-ignore */
|
|
12139
|
+
...(ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []));
|
|
12140
|
+
/** Dot size: `sm` for dense rows, `md` standalone. */
|
|
12141
|
+
size = input('md', /* @ts-ignore */
|
|
12142
|
+
...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
|
|
12143
|
+
/**
|
|
12144
|
+
* Something happening *now* — a task running, a live chart. The halo pulses
|
|
12145
|
+
* once a second; the dot itself never changes size, so a column of dots does
|
|
12146
|
+
* not jitter. Under `prefers-reduced-motion` the halo is a static ring.
|
|
12147
|
+
*/
|
|
12148
|
+
pulse = input(false, { ...(ngDevMode ? { debugName: "pulse" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
12149
|
+
text = computed(() => this.label() || DEFAULT_LABEL[this.status()], /* @ts-ignore */
|
|
12150
|
+
...(ngDevMode ? [{ debugName: "text" }] : /* istanbul ignore next */ []));
|
|
12151
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctStatusDot, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
12152
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.4", type: StrctStatusDot, isStandalone: true, selector: "strct-status-dot", inputs: { status: { classPropertyName: "status", publicName: "status", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, pulse: { classPropertyName: "pulse", publicName: "pulse", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.strct-dot--accent": "status() === 'accent'", "class.strct-dot--success": "status() === 'success'", "class.strct-dot--warning": "status() === 'warning'", "class.strct-dot--critical": "status() === 'critical'", "class.strct-dot--sm": "size() === 'sm'", "class.strct-dot--pulse": "pulse()" }, classAttribute: "strct-dot" }, ngImport: i0, template: `
|
|
12153
|
+
<span class="strct-dot__dot" aria-hidden="true"></span>
|
|
12154
|
+
<span class="strct-dot__sr">{{ text() }}</span>
|
|
12155
|
+
`, isInline: true, styles: [".strct-dot{display:inline-flex;align-items:center;flex:none;line-height:0}.strct-dot__dot{width:10px;height:10px;border-radius:50%;background:var(--t3)}.strct-dot--sm .strct-dot__dot{width:8px;height:8px}.strct-dot--accent .strct-dot__dot{background:var(--acc)}.strct-dot--success .strct-dot__dot{background:var(--success)}.strct-dot--warning .strct-dot__dot{background:var(--warning)}.strct-dot--critical .strct-dot__dot{background:var(--critical)}.strct-dot--pulse .strct-dot__dot{position:relative}.strct-dot--pulse .strct-dot__dot:after{content:\"\";position:absolute;inset:0;border-radius:50%;background:inherit;animation:strct-dot-pulse 1s ease-out infinite}@keyframes strct-dot-pulse{0%{box-shadow:0 0 0 0 currentColor;opacity:.55}to{box-shadow:0 0 0 5px transparent;opacity:0}}.strct-dot--pulse .strct-dot__dot{color:var(--t3)}.strct-dot--pulse.strct-dot--accent .strct-dot__dot{color:var(--acc)}.strct-dot--pulse.strct-dot--success .strct-dot__dot{color:var(--success)}.strct-dot--pulse.strct-dot--warning .strct-dot__dot{color:var(--warning)}.strct-dot--pulse.strct-dot--critical .strct-dot__dot{color:var(--critical)}@media(prefers-reduced-motion:reduce){.strct-dot--pulse .strct-dot__dot:after{animation:none;box-shadow:0 0 0 3px currentColor;opacity:.25}}.strct-dot__sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
12156
|
+
}
|
|
12157
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctStatusDot, decorators: [{
|
|
12158
|
+
type: Component,
|
|
12159
|
+
args: [{ selector: 'strct-status-dot', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: `
|
|
12160
|
+
<span class="strct-dot__dot" aria-hidden="true"></span>
|
|
12161
|
+
<span class="strct-dot__sr">{{ text() }}</span>
|
|
12162
|
+
`, host: {
|
|
12163
|
+
class: 'strct-dot',
|
|
12164
|
+
'[class.strct-dot--accent]': "status() === 'accent'",
|
|
12165
|
+
'[class.strct-dot--success]': "status() === 'success'",
|
|
12166
|
+
'[class.strct-dot--warning]': "status() === 'warning'",
|
|
12167
|
+
'[class.strct-dot--critical]': "status() === 'critical'",
|
|
12168
|
+
'[class.strct-dot--sm]': "size() === 'sm'",
|
|
12169
|
+
'[class.strct-dot--pulse]': 'pulse()',
|
|
12170
|
+
}, styles: [".strct-dot{display:inline-flex;align-items:center;flex:none;line-height:0}.strct-dot__dot{width:10px;height:10px;border-radius:50%;background:var(--t3)}.strct-dot--sm .strct-dot__dot{width:8px;height:8px}.strct-dot--accent .strct-dot__dot{background:var(--acc)}.strct-dot--success .strct-dot__dot{background:var(--success)}.strct-dot--warning .strct-dot__dot{background:var(--warning)}.strct-dot--critical .strct-dot__dot{background:var(--critical)}.strct-dot--pulse .strct-dot__dot{position:relative}.strct-dot--pulse .strct-dot__dot:after{content:\"\";position:absolute;inset:0;border-radius:50%;background:inherit;animation:strct-dot-pulse 1s ease-out infinite}@keyframes strct-dot-pulse{0%{box-shadow:0 0 0 0 currentColor;opacity:.55}to{box-shadow:0 0 0 5px transparent;opacity:0}}.strct-dot--pulse .strct-dot__dot{color:var(--t3)}.strct-dot--pulse.strct-dot--accent .strct-dot__dot{color:var(--acc)}.strct-dot--pulse.strct-dot--success .strct-dot__dot{color:var(--success)}.strct-dot--pulse.strct-dot--warning .strct-dot__dot{color:var(--warning)}.strct-dot--pulse.strct-dot--critical .strct-dot__dot{color:var(--critical)}@media(prefers-reduced-motion:reduce){.strct-dot--pulse .strct-dot__dot:after{animation:none;box-shadow:0 0 0 3px currentColor;opacity:.25}}.strct-dot__sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}\n"] }]
|
|
12171
|
+
}], propDecorators: { status: [{ type: i0.Input, args: [{ isSignal: true, alias: "status", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], pulse: [{ type: i0.Input, args: [{ isSignal: true, alias: "pulse", required: false }] }] } });
|
|
12172
|
+
|
|
12076
12173
|
/**
|
|
12077
12174
|
* Compact definition list: aligned `label : value` rows with an optional trailing
|
|
12078
12175
|
* slot. The `inline` variant is the horizontal "stat strip" (label-value pairs in
|
|
@@ -12097,8 +12194,11 @@ class StrctDescriptionList {
|
|
|
12097
12194
|
/** Value alignment in stacked mode. */
|
|
12098
12195
|
align = input('between', /* @ts-ignore */
|
|
12099
12196
|
...(ngDevMode ? [{ debugName: "align" }] : /* istanbul ignore next */ []));
|
|
12197
|
+
/** Fixes the label column of `align="grid"` (e.g. `'160px'`). */
|
|
12198
|
+
labelWidth = input(null, /* @ts-ignore */
|
|
12199
|
+
...(ngDevMode ? [{ debugName: "labelWidth" }] : /* istanbul ignore next */ []));
|
|
12100
12200
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctDescriptionList, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
12101
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: StrctDescriptionList, isStandalone: true, selector: "strct-description-list", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, inline: { classPropertyName: "inline", publicName: "inline", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.strct-dl--inline": "inline()", "class.strct-dl--start": "align() === 'start'" }, classAttribute: "strct-dl" }, ngImport: i0, template: `
|
|
12201
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: StrctDescriptionList, isStandalone: true, selector: "strct-description-list", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, inline: { classPropertyName: "inline", publicName: "inline", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, labelWidth: { classPropertyName: "labelWidth", publicName: "labelWidth", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.strct-dl--inline": "inline()", "class.strct-dl--start": "align() === 'start'", "class.strct-dl--grid": "align() === 'grid'", "style.--strct-dl-label-w": "labelWidth()" }, classAttribute: "strct-dl" }, ngImport: i0, template: `
|
|
12102
12202
|
<dl class="strct-dl__list">
|
|
12103
12203
|
@for (item of items(); track $index) {
|
|
12104
12204
|
<div
|
|
@@ -12112,7 +12212,7 @@ class StrctDescriptionList {
|
|
|
12112
12212
|
}
|
|
12113
12213
|
<ng-content />
|
|
12114
12214
|
</dl>
|
|
12115
|
-
`, isInline: true, styles: [".strct-dl{display:flex;flex-direction:column;min-width:0}.strct-dl__list{display:flex;flex-direction:column;margin:0;padding:0;min-width:0}.strct-dl--inline .strct-dl__list{flex-direction:row;flex-wrap:wrap;gap:var(--space-3) var(--space-5);align-items:flex-start}.strct-desc{display:flex;align-items:baseline;gap:var(--space-3);padding:6px 0;font-size:var(--text-md);min-width:0}.strct-dl:not(.strct-dl--inline) .strct-desc{justify-content:space-between}.strct-dl:not(.strct-dl--inline) .strct-desc+.strct-desc{border-top:1px solid var(--b1)}.strct-dl--start .strct-desc{justify-content:flex-start}.strct-dl--inline .strct-desc{flex-direction:column;align-items:flex-start;gap:3px;padding:0}.strct-desc__label{color:var(--t3);font-size:var(--text-sm);font-weight:500;flex-shrink:0;white-space:nowrap}.strct-desc__value{margin:0;color:var(--t1);min-width:0;text-align:end}.strct-dl--inline .strct-desc__value,.strct-dl--start .strct-desc__value{text-align:start}.strct-desc--mono .strct-desc__value{font-family:var(--mono);font-size:var(--text-sm)}.strct-desc--muted .strct-desc__value{color:var(--t3)}.strct-desc__value:empty{display:none}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
12215
|
+
`, isInline: true, styles: [".strct-dl{display:flex;flex-direction:column;min-width:0}.strct-dl__list{display:flex;flex-direction:column;margin:0;padding:0;min-width:0}.strct-dl--inline .strct-dl__list{flex-direction:row;flex-wrap:wrap;gap:var(--space-3) var(--space-5);align-items:flex-start}.strct-desc{display:flex;align-items:baseline;gap:var(--space-3);padding:6px 0;font-size:var(--text-md);min-width:0}.strct-dl:not(.strct-dl--inline) .strct-desc{justify-content:space-between}.strct-dl:not(.strct-dl--inline) .strct-desc+.strct-desc{border-top:1px solid var(--b1)}.strct-dl--start .strct-desc{justify-content:flex-start}.strct-dl--inline .strct-desc{flex-direction:column;align-items:flex-start;gap:3px;padding:0}.strct-desc__label{color:var(--t3);font-size:var(--text-sm);font-weight:500;flex-shrink:0;white-space:nowrap}.strct-desc__value{margin:0;color:var(--t1);min-width:0;text-align:end}.strct-dl--inline .strct-desc__value,.strct-dl--start .strct-desc__value{text-align:start}.strct-desc--mono .strct-desc__value{font-family:var(--mono);font-size:var(--text-sm)}.strct-desc--muted .strct-desc__value{color:var(--t3)}.strct-desc__value:empty{display:none}.strct-dl--grid .strct-dl__list{display:grid;grid-template-columns:var(--strct-dl-label-w, max-content) minmax(0,1fr);column-gap:var(--space-4)}.strct-dl--grid .strct-desc{display:contents}.strct-dl--grid .strct-desc__label,.strct-dl--grid .strct-desc__value{padding:6px 0;text-align:start}.strct-dl--grid .strct-desc+.strct-desc>.strct-desc__label,.strct-dl--grid .strct-desc+.strct-desc>.strct-desc__value{border-top:1px solid var(--b1)}.strct-desc__label{display:inline-flex;align-items:center;gap:6px}.strct-desc__note{display:block;margin-top:1px;font-size:var(--text-sm);color:var(--t3)}.strct-desc__note:empty{display:none}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
12116
12216
|
}
|
|
12117
12217
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctDescriptionList, decorators: [{
|
|
12118
12218
|
type: Component,
|
|
@@ -12134,8 +12234,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
|
|
|
12134
12234
|
class: 'strct-dl',
|
|
12135
12235
|
'[class.strct-dl--inline]': 'inline()',
|
|
12136
12236
|
'[class.strct-dl--start]': "align() === 'start'",
|
|
12137
|
-
|
|
12138
|
-
|
|
12237
|
+
'[class.strct-dl--grid]': "align() === 'grid'",
|
|
12238
|
+
'[style.--strct-dl-label-w]': 'labelWidth()',
|
|
12239
|
+
}, styles: [".strct-dl{display:flex;flex-direction:column;min-width:0}.strct-dl__list{display:flex;flex-direction:column;margin:0;padding:0;min-width:0}.strct-dl--inline .strct-dl__list{flex-direction:row;flex-wrap:wrap;gap:var(--space-3) var(--space-5);align-items:flex-start}.strct-desc{display:flex;align-items:baseline;gap:var(--space-3);padding:6px 0;font-size:var(--text-md);min-width:0}.strct-dl:not(.strct-dl--inline) .strct-desc{justify-content:space-between}.strct-dl:not(.strct-dl--inline) .strct-desc+.strct-desc{border-top:1px solid var(--b1)}.strct-dl--start .strct-desc{justify-content:flex-start}.strct-dl--inline .strct-desc{flex-direction:column;align-items:flex-start;gap:3px;padding:0}.strct-desc__label{color:var(--t3);font-size:var(--text-sm);font-weight:500;flex-shrink:0;white-space:nowrap}.strct-desc__value{margin:0;color:var(--t1);min-width:0;text-align:end}.strct-dl--inline .strct-desc__value,.strct-dl--start .strct-desc__value{text-align:start}.strct-desc--mono .strct-desc__value{font-family:var(--mono);font-size:var(--text-sm)}.strct-desc--muted .strct-desc__value{color:var(--t3)}.strct-desc__value:empty{display:none}.strct-dl--grid .strct-dl__list{display:grid;grid-template-columns:var(--strct-dl-label-w, max-content) minmax(0,1fr);column-gap:var(--space-4)}.strct-dl--grid .strct-desc{display:contents}.strct-dl--grid .strct-desc__label,.strct-dl--grid .strct-desc__value{padding:6px 0;text-align:start}.strct-dl--grid .strct-desc+.strct-desc>.strct-desc__label,.strct-dl--grid .strct-desc+.strct-desc>.strct-desc__value{border-top:1px solid var(--b1)}.strct-desc__label{display:inline-flex;align-items:center;gap:6px}.strct-desc__note{display:block;margin-top:1px;font-size:var(--text-sm);color:var(--t3)}.strct-desc__note:empty{display:none}\n"] }]
|
|
12240
|
+
}], propDecorators: { items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], inline: [{ type: i0.Input, args: [{ isSignal: true, alias: "inline", required: false }] }], align: [{ type: i0.Input, args: [{ isSignal: true, alias: "align", required: false }] }], labelWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "labelWidth", required: false }] }] } });
|
|
12139
12241
|
/**
|
|
12140
12242
|
* One projected `label → value` row inside a `<strct-description-list>`. The
|
|
12141
12243
|
* value is whatever you project, so it can host a badge, icon or formatted text.
|
|
@@ -12148,11 +12250,36 @@ class StrctDesc {
|
|
|
12148
12250
|
mono = input(false, { ...(ngDevMode ? { debugName: "mono" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
12149
12251
|
/** Dim the projected value. */
|
|
12150
12252
|
muted = input(false, { ...(ngDevMode ? { debugName: "muted" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
12253
|
+
/** A status dot before the label — "Agent · connected". */
|
|
12254
|
+
status = input(null, /* @ts-ignore */
|
|
12255
|
+
...(ngDevMode ? [{ debugName: "status" }] : /* istanbul ignore next */ []));
|
|
12256
|
+
/** Accessible text for that dot; empty falls back to the per-status default. */
|
|
12257
|
+
statusLabel = input('', /* @ts-ignore */
|
|
12258
|
+
...(ngDevMode ? [{ debugName: "statusLabel" }] : /* istanbul ignore next */ []));
|
|
12259
|
+
/** A leading icon before the label. */
|
|
12260
|
+
icon = input('', /* @ts-ignore */
|
|
12261
|
+
...(ngDevMode ? [{ debugName: "icon" }] : /* istanbul ignore next */ []));
|
|
12262
|
+
/** A quiet second line under the value — "last seen 12 s ago". */
|
|
12263
|
+
note = input('', /* @ts-ignore */
|
|
12264
|
+
...(ngDevMode ? [{ debugName: "note" }] : /* istanbul ignore next */ []));
|
|
12151
12265
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctDesc, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
12152
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.
|
|
12153
|
-
<dt class="strct-desc__label">
|
|
12154
|
-
|
|
12155
|
-
|
|
12266
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: StrctDesc, isStandalone: true, selector: "strct-desc", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, mono: { classPropertyName: "mono", publicName: "mono", isSignal: true, isRequired: false, transformFunction: null }, muted: { classPropertyName: "muted", publicName: "muted", isSignal: true, isRequired: false, transformFunction: null }, status: { classPropertyName: "status", publicName: "status", isSignal: true, isRequired: false, transformFunction: null }, statusLabel: { classPropertyName: "statusLabel", publicName: "statusLabel", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, note: { classPropertyName: "note", publicName: "note", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.strct-desc--mono": "mono()", "class.strct-desc--muted": "muted()" }, classAttribute: "strct-desc" }, ngImport: i0, template: `
|
|
12267
|
+
<dt class="strct-desc__label">
|
|
12268
|
+
@if (status()) {
|
|
12269
|
+
<strct-status-dot size="sm" [status]="status()!" [label]="statusLabel()" />
|
|
12270
|
+
}
|
|
12271
|
+
@if (icon()) {
|
|
12272
|
+
<strct-icon [name]="icon()" [size]="14" />
|
|
12273
|
+
}
|
|
12274
|
+
{{ label() }}
|
|
12275
|
+
</dt>
|
|
12276
|
+
<dd class="strct-desc__value">
|
|
12277
|
+
<ng-content />
|
|
12278
|
+
@if (note()) {
|
|
12279
|
+
<span class="strct-desc__note">{{ note() }}</span>
|
|
12280
|
+
}
|
|
12281
|
+
</dd>
|
|
12282
|
+
`, isInline: true, dependencies: [{ kind: "component", type: StrctIcon, selector: "strct-icon", inputs: ["name", "strictName", "size", "strokeWidth", "badge", "ariaLabel", "count", "countMax", "countStatus", "countLabel"] }, { kind: "component", type: StrctStatusDot, selector: "strct-status-dot", inputs: ["status", "label", "size", "pulse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
12156
12283
|
}
|
|
12157
12284
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctDesc, decorators: [{
|
|
12158
12285
|
type: Component,
|
|
@@ -12160,9 +12287,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
|
|
|
12160
12287
|
selector: 'strct-desc',
|
|
12161
12288
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
12162
12289
|
encapsulation: ViewEncapsulation.None,
|
|
12290
|
+
imports: [StrctIcon, StrctStatusDot],
|
|
12163
12291
|
template: `
|
|
12164
|
-
<dt class="strct-desc__label">
|
|
12165
|
-
|
|
12292
|
+
<dt class="strct-desc__label">
|
|
12293
|
+
@if (status()) {
|
|
12294
|
+
<strct-status-dot size="sm" [status]="status()!" [label]="statusLabel()" />
|
|
12295
|
+
}
|
|
12296
|
+
@if (icon()) {
|
|
12297
|
+
<strct-icon [name]="icon()" [size]="14" />
|
|
12298
|
+
}
|
|
12299
|
+
{{ label() }}
|
|
12300
|
+
</dt>
|
|
12301
|
+
<dd class="strct-desc__value">
|
|
12302
|
+
<ng-content />
|
|
12303
|
+
@if (note()) {
|
|
12304
|
+
<span class="strct-desc__note">{{ note() }}</span>
|
|
12305
|
+
}
|
|
12306
|
+
</dd>
|
|
12166
12307
|
`,
|
|
12167
12308
|
host: {
|
|
12168
12309
|
class: 'strct-desc',
|
|
@@ -12170,7 +12311,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
|
|
|
12170
12311
|
'[class.strct-desc--muted]': 'muted()',
|
|
12171
12312
|
},
|
|
12172
12313
|
}]
|
|
12173
|
-
}], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: true }] }], mono: [{ type: i0.Input, args: [{ isSignal: true, alias: "mono", required: false }] }], muted: [{ type: i0.Input, args: [{ isSignal: true, alias: "muted", required: false }] }] } });
|
|
12314
|
+
}], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: true }] }], mono: [{ type: i0.Input, args: [{ isSignal: true, alias: "mono", required: false }] }], muted: [{ type: i0.Input, args: [{ isSignal: true, alias: "muted", required: false }] }], status: [{ type: i0.Input, args: [{ isSignal: true, alias: "status", required: false }] }], statusLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "statusLabel", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], note: [{ type: i0.Input, args: [{ isSignal: true, alias: "note", required: false }] }] } });
|
|
12174
12315
|
|
|
12175
12316
|
/**
|
|
12176
12317
|
* Per-column cell template for `strct-table` / `strct-datagrid`. The column key
|
|
@@ -17439,6 +17580,14 @@ class StrctDonut {
|
|
|
17439
17580
|
...(ngDevMode ? [{ debugName: "centerLabel" }] : /* istanbul ignore next */ []));
|
|
17440
17581
|
/** Show a legend (color · label · value · %) beside the ring. */
|
|
17441
17582
|
legend = input(false, { ...(ngDevMode ? { debugName: "legend" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
17583
|
+
/** Where the legend sits: beside the ring, or under it. */
|
|
17584
|
+
legendPosition = input('side', /* @ts-ignore */
|
|
17585
|
+
...(ngDevMode ? [{ debugName: "legendPosition" }] : /* istanbul ignore next */ []));
|
|
17586
|
+
/**
|
|
17587
|
+
* A zero-value category keeps its legend row, muted — "0 failed" is
|
|
17588
|
+
* information. Set it false to drop those rows instead.
|
|
17589
|
+
*/
|
|
17590
|
+
keepEmpty = input(true, { ...(ngDevMode ? { debugName: "keepEmpty" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
17442
17591
|
/** Gap between slices, in degrees. */
|
|
17443
17592
|
gap = input(3, /* @ts-ignore */
|
|
17444
17593
|
...(ngDevMode ? [{ debugName: "gap" }] : /* istanbul ignore next */ []));
|
|
@@ -17477,6 +17626,12 @@ class StrctDonut {
|
|
|
17477
17626
|
});
|
|
17478
17627
|
}, /* @ts-ignore */
|
|
17479
17628
|
...(ngDevMode ? [{ debugName: "arcs" }] : /* istanbul ignore next */ []));
|
|
17629
|
+
/** The rows the legend shows — every arc, or only the non-empty ones. */
|
|
17630
|
+
legendArcs = computed(() => {
|
|
17631
|
+
const rows = this.arcs().map((arc, index) => ({ ...arc, index }));
|
|
17632
|
+
return this.keepEmpty() ? rows : rows.filter((r) => r.value !== 0);
|
|
17633
|
+
}, /* @ts-ignore */
|
|
17634
|
+
...(ngDevMode ? [{ debugName: "legendArcs" }] : /* istanbul ignore next */ []));
|
|
17480
17635
|
centerMain = computed(() => {
|
|
17481
17636
|
const h = this.hovered();
|
|
17482
17637
|
if (h !== null)
|
|
@@ -17512,7 +17667,7 @@ class StrctDonut {
|
|
|
17512
17667
|
this.hovered.set(null);
|
|
17513
17668
|
}
|
|
17514
17669
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctDonut, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
17515
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: StrctDonut, isStandalone: true, selector: "strct-donut", inputs: { segments: { classPropertyName: "segments", publicName: "segments", isSignal: true, isRequired: true, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, thickness: { classPropertyName: "thickness", publicName: "thickness", isSignal: true, isRequired: false, transformFunction: null }, centerValue: { classPropertyName: "centerValue", publicName: "centerValue", isSignal: true, isRequired: false, transformFunction: null }, centerLabel: { classPropertyName: "centerLabel", publicName: "centerLabel", isSignal: true, isRequired: false, transformFunction: null }, legend: { classPropertyName: "legend", publicName: "legend", isSignal: true, isRequired: false, transformFunction: null }, gap: { classPropertyName: "gap", publicName: "gap", isSignal: true, isRequired: false, transformFunction: null }, interactive: { classPropertyName: "interactive", publicName: "interactive", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "strct-donut" }, ngImport: i0, template: `
|
|
17670
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: StrctDonut, isStandalone: true, selector: "strct-donut", inputs: { segments: { classPropertyName: "segments", publicName: "segments", isSignal: true, isRequired: true, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, thickness: { classPropertyName: "thickness", publicName: "thickness", isSignal: true, isRequired: false, transformFunction: null }, centerValue: { classPropertyName: "centerValue", publicName: "centerValue", isSignal: true, isRequired: false, transformFunction: null }, centerLabel: { classPropertyName: "centerLabel", publicName: "centerLabel", isSignal: true, isRequired: false, transformFunction: null }, legend: { classPropertyName: "legend", publicName: "legend", isSignal: true, isRequired: false, transformFunction: null }, legendPosition: { classPropertyName: "legendPosition", publicName: "legendPosition", isSignal: true, isRequired: false, transformFunction: null }, keepEmpty: { classPropertyName: "keepEmpty", publicName: "keepEmpty", isSignal: true, isRequired: false, transformFunction: null }, gap: { classPropertyName: "gap", publicName: "gap", isSignal: true, isRequired: false, transformFunction: null }, interactive: { classPropertyName: "interactive", publicName: "interactive", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.strct-donut--legend-below": "legendPosition() === 'below'" }, classAttribute: "strct-donut" }, ngImport: i0, template: `
|
|
17516
17671
|
<div class="strct-donut__layout">
|
|
17517
17672
|
<div class="strct-donut__wrap" [style.width.px]="size()" [style.height.px]="size()">
|
|
17518
17673
|
<svg
|
|
@@ -17561,12 +17716,13 @@ class StrctDonut {
|
|
|
17561
17716
|
|
|
17562
17717
|
@if (legend()) {
|
|
17563
17718
|
<ul class="strct-donut__legend">
|
|
17564
|
-
@for (arc of
|
|
17719
|
+
@for (arc of legendArcs(); track arc.index) {
|
|
17565
17720
|
<li
|
|
17566
17721
|
class="strct-donut__leg"
|
|
17567
|
-
[class.is-active]="hovered() ===
|
|
17568
|
-
[class.is-dim]="hovered() !== null && hovered() !==
|
|
17569
|
-
|
|
17722
|
+
[class.is-active]="hovered() === arc.index"
|
|
17723
|
+
[class.is-dim]="hovered() !== null && hovered() !== arc.index"
|
|
17724
|
+
[class.is-empty]="arc.value === 0"
|
|
17725
|
+
(pointerenter)="enter(arc.index)"
|
|
17570
17726
|
(pointerleave)="leave()"
|
|
17571
17727
|
>
|
|
17572
17728
|
<span class="strct-donut__swatch" [style.background]="arc.color"></span>
|
|
@@ -17578,7 +17734,7 @@ class StrctDonut {
|
|
|
17578
17734
|
</ul>
|
|
17579
17735
|
}
|
|
17580
17736
|
</div>
|
|
17581
|
-
`, isInline: true, styles: [".strct-donut{display:inline-block}.strct-donut__layout{display:inline-flex;align-items:center;gap:20px}.strct-donut__wrap{position:relative;flex-shrink:0}.strct-donut__track{stroke:var(--bg-3)}.strct-donut__arc{cursor:pointer;transition:stroke-width .16s ease,opacity .16s ease}.strct-donut__arc.is-dim{opacity:.32}.strct-donut__center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none}.strct-donut__value{font-size:var(--text-2xl);font-weight:650;color:var(--t1);line-height:1;font-variant-numeric:tabular-nums;transition:color .16s ease}.strct-donut__label{font-size:12px;color:var(--t2);margin-top:3px}.strct-donut__legend{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;min-width:0}.strct-donut__leg{display:flex;align-items:center;gap:8px;padding:3px 6px;border-radius:var(--radius-sm);font-size:12px;color:var(--t2);transition:background .14s ease,opacity .14s ease}.strct-donut__leg.is-active{background:var(--bg-2);color:var(--t1)}.strct-donut__leg.is-dim{opacity:.45}.strct-donut__swatch{width:9px;height:9px;border-radius:2px;flex-shrink:0}.strct-donut__leg-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.strct-donut__leg-val{font-variant-numeric:tabular-nums;font-weight:600;color:var(--t1)}.strct-donut__leg-pct{font-variant-numeric:tabular-nums;color:var(--t3);min-width:34px;text-align:end}@media(prefers-reduced-motion:no-preference){.strct-donut__svg{transform-origin:center;animation:strct-donut-in .6s cubic-bezier(.22,1,.36,1) both}}@keyframes strct-donut-in{0%{opacity:0;transform:rotate(-16deg) scale(.94)}to{opacity:1;transform:none}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
17737
|
+
`, isInline: true, styles: [".strct-donut{display:inline-block}.strct-donut__layout{display:inline-flex;align-items:center;gap:20px}.strct-donut--legend-below .strct-donut__layout{flex-direction:column;align-items:center;gap:12px}.strct-donut__leg.is-empty{opacity:.55}.strct-donut__wrap{position:relative;flex-shrink:0}.strct-donut__track{stroke:var(--bg-3)}.strct-donut__arc{cursor:pointer;transition:stroke-width .16s ease,opacity .16s ease}.strct-donut__arc.is-dim{opacity:.32}.strct-donut__center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none}.strct-donut__value{font-size:var(--text-2xl);font-weight:650;color:var(--t1);line-height:1;font-variant-numeric:tabular-nums;transition:color .16s ease}.strct-donut__label{font-size:12px;color:var(--t2);margin-top:3px}.strct-donut__legend{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;min-width:0}.strct-donut__leg{display:flex;align-items:center;gap:8px;padding:3px 6px;border-radius:var(--radius-sm);font-size:12px;color:var(--t2);transition:background .14s ease,opacity .14s ease}.strct-donut__leg.is-active{background:var(--bg-2);color:var(--t1)}.strct-donut__leg.is-dim{opacity:.45}.strct-donut__swatch{width:9px;height:9px;border-radius:2px;flex-shrink:0}.strct-donut__leg-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.strct-donut__leg-val{font-variant-numeric:tabular-nums;font-weight:600;color:var(--t1)}.strct-donut__leg-pct{font-variant-numeric:tabular-nums;color:var(--t3);min-width:34px;text-align:end}@media(prefers-reduced-motion:no-preference){.strct-donut__svg{transform-origin:center;animation:strct-donut-in .6s cubic-bezier(.22,1,.36,1) both}}@keyframes strct-donut-in{0%{opacity:0;transform:rotate(-16deg) scale(.94)}to{opacity:1;transform:none}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
17582
17738
|
}
|
|
17583
17739
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctDonut, decorators: [{
|
|
17584
17740
|
type: Component,
|
|
@@ -17631,12 +17787,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
|
|
|
17631
17787
|
|
|
17632
17788
|
@if (legend()) {
|
|
17633
17789
|
<ul class="strct-donut__legend">
|
|
17634
|
-
@for (arc of
|
|
17790
|
+
@for (arc of legendArcs(); track arc.index) {
|
|
17635
17791
|
<li
|
|
17636
17792
|
class="strct-donut__leg"
|
|
17637
|
-
[class.is-active]="hovered() ===
|
|
17638
|
-
[class.is-dim]="hovered() !== null && hovered() !==
|
|
17639
|
-
|
|
17793
|
+
[class.is-active]="hovered() === arc.index"
|
|
17794
|
+
[class.is-dim]="hovered() !== null && hovered() !== arc.index"
|
|
17795
|
+
[class.is-empty]="arc.value === 0"
|
|
17796
|
+
(pointerenter)="enter(arc.index)"
|
|
17640
17797
|
(pointerleave)="leave()"
|
|
17641
17798
|
>
|
|
17642
17799
|
<span class="strct-donut__swatch" [style.background]="arc.color"></span>
|
|
@@ -17648,8 +17805,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
|
|
|
17648
17805
|
</ul>
|
|
17649
17806
|
}
|
|
17650
17807
|
</div>
|
|
17651
|
-
`, host: {
|
|
17652
|
-
|
|
17808
|
+
`, host: {
|
|
17809
|
+
class: 'strct-donut',
|
|
17810
|
+
'[class.strct-donut--legend-below]': "legendPosition() === 'below'",
|
|
17811
|
+
}, styles: [".strct-donut{display:inline-block}.strct-donut__layout{display:inline-flex;align-items:center;gap:20px}.strct-donut--legend-below .strct-donut__layout{flex-direction:column;align-items:center;gap:12px}.strct-donut__leg.is-empty{opacity:.55}.strct-donut__wrap{position:relative;flex-shrink:0}.strct-donut__track{stroke:var(--bg-3)}.strct-donut__arc{cursor:pointer;transition:stroke-width .16s ease,opacity .16s ease}.strct-donut__arc.is-dim{opacity:.32}.strct-donut__center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none}.strct-donut__value{font-size:var(--text-2xl);font-weight:650;color:var(--t1);line-height:1;font-variant-numeric:tabular-nums;transition:color .16s ease}.strct-donut__label{font-size:12px;color:var(--t2);margin-top:3px}.strct-donut__legend{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;min-width:0}.strct-donut__leg{display:flex;align-items:center;gap:8px;padding:3px 6px;border-radius:var(--radius-sm);font-size:12px;color:var(--t2);transition:background .14s ease,opacity .14s ease}.strct-donut__leg.is-active{background:var(--bg-2);color:var(--t1)}.strct-donut__leg.is-dim{opacity:.45}.strct-donut__swatch{width:9px;height:9px;border-radius:2px;flex-shrink:0}.strct-donut__leg-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.strct-donut__leg-val{font-variant-numeric:tabular-nums;font-weight:600;color:var(--t1)}.strct-donut__leg-pct{font-variant-numeric:tabular-nums;color:var(--t3);min-width:34px;text-align:end}@media(prefers-reduced-motion:no-preference){.strct-donut__svg{transform-origin:center;animation:strct-donut-in .6s cubic-bezier(.22,1,.36,1) both}}@keyframes strct-donut-in{0%{opacity:0;transform:rotate(-16deg) scale(.94)}to{opacity:1;transform:none}}\n"] }]
|
|
17812
|
+
}], propDecorators: { segments: [{ type: i0.Input, args: [{ isSignal: true, alias: "segments", required: true }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], thickness: [{ type: i0.Input, args: [{ isSignal: true, alias: "thickness", required: false }] }], centerValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "centerValue", required: false }] }], centerLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "centerLabel", required: false }] }], legend: [{ type: i0.Input, args: [{ isSignal: true, alias: "legend", required: false }] }], legendPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "legendPosition", required: false }] }], keepEmpty: [{ type: i0.Input, args: [{ isSignal: true, alias: "keepEmpty", required: false }] }], gap: [{ type: i0.Input, args: [{ isSignal: true, alias: "gap", required: false }] }], interactive: [{ type: i0.Input, args: [{ isSignal: true, alias: "interactive", required: false }] }] } });
|
|
17653
17813
|
|
|
17654
17814
|
const COLOR$1 = {
|
|
17655
17815
|
accent: 'var(--acc)',
|
|
@@ -21893,71 +22053,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
|
|
|
21893
22053
|
args: ['keydown', ['$event']]
|
|
21894
22054
|
}] } });
|
|
21895
22055
|
|
|
21896
|
-
/**
|
|
21897
|
-
* Default accessible text per status, used when `label` is not given
|
|
21898
|
-
* (localizable — override via `label`). The canonical `StrctStatus` vocabulary
|
|
21899
|
-
* has no 'ok'/'info': OK maps to 'success', info to 'accent'.
|
|
21900
|
-
*/
|
|
21901
|
-
const DEFAULT_LABEL = {
|
|
21902
|
-
neutral: 'Neutral',
|
|
21903
|
-
accent: 'Info',
|
|
21904
|
-
success: 'OK',
|
|
21905
|
-
warning: 'Warning',
|
|
21906
|
-
critical: 'Critical',
|
|
21907
|
-
};
|
|
21908
|
-
/**
|
|
21909
|
-
* Presence/state dot that never relies on colour alone: the tone is painted by
|
|
21910
|
-
* a pure-CSS dot while the state is also rendered as visually-hidden text, so
|
|
21911
|
-
* screen readers (and colour-blind users copying text) get "Warning", not just
|
|
21912
|
-
* a yellow circle. Use it inside avatars, menu rows, metric tiles — anywhere a
|
|
21913
|
-
* bare coloured dot would otherwise carry meaning.
|
|
21914
|
-
*
|
|
21915
|
-
* <strct-status-dot status="success" />
|
|
21916
|
-
* <strct-status-dot status="critical" size="sm" label="Node unreachable" />
|
|
21917
|
-
*/
|
|
21918
|
-
class StrctStatusDot {
|
|
21919
|
-
/** Status tone (canonical vocabulary: OK = 'success', info = 'accent'). */
|
|
21920
|
-
status = input('neutral', /* @ts-ignore */
|
|
21921
|
-
...(ngDevMode ? [{ debugName: "status" }] : /* istanbul ignore next */ []));
|
|
21922
|
-
/**
|
|
21923
|
-
* Accessible text describing the state (localizable). Empty falls back to a
|
|
21924
|
-
* per-status default ("OK", "Warning", …) so the dot is never color-only.
|
|
21925
|
-
*/
|
|
21926
|
-
label = input('', /* @ts-ignore */
|
|
21927
|
-
...(ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []));
|
|
21928
|
-
/** Dot size: `sm` for dense rows, `md` standalone. */
|
|
21929
|
-
size = input('md', /* @ts-ignore */
|
|
21930
|
-
...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
|
|
21931
|
-
/**
|
|
21932
|
-
* Something happening *now* — a task running, a live chart. The halo pulses
|
|
21933
|
-
* once a second; the dot itself never changes size, so a column of dots does
|
|
21934
|
-
* not jitter. Under `prefers-reduced-motion` the halo is a static ring.
|
|
21935
|
-
*/
|
|
21936
|
-
pulse = input(false, { ...(ngDevMode ? { debugName: "pulse" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
21937
|
-
text = computed(() => this.label() || DEFAULT_LABEL[this.status()], /* @ts-ignore */
|
|
21938
|
-
...(ngDevMode ? [{ debugName: "text" }] : /* istanbul ignore next */ []));
|
|
21939
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctStatusDot, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
21940
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.4", type: StrctStatusDot, isStandalone: true, selector: "strct-status-dot", inputs: { status: { classPropertyName: "status", publicName: "status", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, pulse: { classPropertyName: "pulse", publicName: "pulse", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.strct-dot--accent": "status() === 'accent'", "class.strct-dot--success": "status() === 'success'", "class.strct-dot--warning": "status() === 'warning'", "class.strct-dot--critical": "status() === 'critical'", "class.strct-dot--sm": "size() === 'sm'", "class.strct-dot--pulse": "pulse()" }, classAttribute: "strct-dot" }, ngImport: i0, template: `
|
|
21941
|
-
<span class="strct-dot__dot" aria-hidden="true"></span>
|
|
21942
|
-
<span class="strct-dot__sr">{{ text() }}</span>
|
|
21943
|
-
`, isInline: true, styles: [".strct-dot{display:inline-flex;align-items:center;flex:none;line-height:0}.strct-dot__dot{width:10px;height:10px;border-radius:50%;background:var(--t3)}.strct-dot--sm .strct-dot__dot{width:8px;height:8px}.strct-dot--accent .strct-dot__dot{background:var(--acc)}.strct-dot--success .strct-dot__dot{background:var(--success)}.strct-dot--warning .strct-dot__dot{background:var(--warning)}.strct-dot--critical .strct-dot__dot{background:var(--critical)}.strct-dot--pulse .strct-dot__dot{position:relative}.strct-dot--pulse .strct-dot__dot:after{content:\"\";position:absolute;inset:0;border-radius:50%;background:inherit;animation:strct-dot-pulse 1s ease-out infinite}@keyframes strct-dot-pulse{0%{box-shadow:0 0 0 0 currentColor;opacity:.55}to{box-shadow:0 0 0 5px transparent;opacity:0}}.strct-dot--pulse .strct-dot__dot{color:var(--t3)}.strct-dot--pulse.strct-dot--accent .strct-dot__dot{color:var(--acc)}.strct-dot--pulse.strct-dot--success .strct-dot__dot{color:var(--success)}.strct-dot--pulse.strct-dot--warning .strct-dot__dot{color:var(--warning)}.strct-dot--pulse.strct-dot--critical .strct-dot__dot{color:var(--critical)}@media(prefers-reduced-motion:reduce){.strct-dot--pulse .strct-dot__dot:after{animation:none;box-shadow:0 0 0 3px currentColor;opacity:.25}}.strct-dot__sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
21944
|
-
}
|
|
21945
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctStatusDot, decorators: [{
|
|
21946
|
-
type: Component,
|
|
21947
|
-
args: [{ selector: 'strct-status-dot', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: `
|
|
21948
|
-
<span class="strct-dot__dot" aria-hidden="true"></span>
|
|
21949
|
-
<span class="strct-dot__sr">{{ text() }}</span>
|
|
21950
|
-
`, host: {
|
|
21951
|
-
class: 'strct-dot',
|
|
21952
|
-
'[class.strct-dot--accent]': "status() === 'accent'",
|
|
21953
|
-
'[class.strct-dot--success]': "status() === 'success'",
|
|
21954
|
-
'[class.strct-dot--warning]': "status() === 'warning'",
|
|
21955
|
-
'[class.strct-dot--critical]': "status() === 'critical'",
|
|
21956
|
-
'[class.strct-dot--sm]': "size() === 'sm'",
|
|
21957
|
-
'[class.strct-dot--pulse]': 'pulse()',
|
|
21958
|
-
}, styles: [".strct-dot{display:inline-flex;align-items:center;flex:none;line-height:0}.strct-dot__dot{width:10px;height:10px;border-radius:50%;background:var(--t3)}.strct-dot--sm .strct-dot__dot{width:8px;height:8px}.strct-dot--accent .strct-dot__dot{background:var(--acc)}.strct-dot--success .strct-dot__dot{background:var(--success)}.strct-dot--warning .strct-dot__dot{background:var(--warning)}.strct-dot--critical .strct-dot__dot{background:var(--critical)}.strct-dot--pulse .strct-dot__dot{position:relative}.strct-dot--pulse .strct-dot__dot:after{content:\"\";position:absolute;inset:0;border-radius:50%;background:inherit;animation:strct-dot-pulse 1s ease-out infinite}@keyframes strct-dot-pulse{0%{box-shadow:0 0 0 0 currentColor;opacity:.55}to{box-shadow:0 0 0 5px transparent;opacity:0}}.strct-dot--pulse .strct-dot__dot{color:var(--t3)}.strct-dot--pulse.strct-dot--accent .strct-dot__dot{color:var(--acc)}.strct-dot--pulse.strct-dot--success .strct-dot__dot{color:var(--success)}.strct-dot--pulse.strct-dot--warning .strct-dot__dot{color:var(--warning)}.strct-dot--pulse.strct-dot--critical .strct-dot__dot{color:var(--critical)}@media(prefers-reduced-motion:reduce){.strct-dot--pulse .strct-dot__dot:after{animation:none;box-shadow:0 0 0 3px currentColor;opacity:.25}}.strct-dot__sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}\n"] }]
|
|
21959
|
-
}], propDecorators: { status: [{ type: i0.Input, args: [{ isSignal: true, alias: "status", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], pulse: [{ type: i0.Input, args: [{ isSignal: true, alias: "pulse", required: false }] }] } });
|
|
21960
|
-
|
|
21961
22056
|
const DEFAULT_LABELS = {
|
|
21962
22057
|
live: 'Live',
|
|
21963
22058
|
liveEvery: (s) => `Live · updates every ${s} s`,
|
|
@@ -22064,6 +22159,120 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
|
|
|
22064
22159
|
}, styles: [".strct-live{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-sm);color:var(--t3)}.strct-live[data-state=reconnecting] .strct-live__text,.strct-live[data-state=stale] .strct-live__text{color:var(--warning)}.strct-live .strct-dot__sr{display:none}\n"] }]
|
|
22065
22160
|
}], ctorParameters: () => [], propDecorators: { state: [{ type: i0.Input, args: [{ isSignal: true, alias: "state", required: false }] }], interval: [{ type: i0.Input, args: [{ isSignal: true, alias: "interval", required: false }] }], updatedAt: [{ type: i0.Input, args: [{ isSignal: true, alias: "updatedAt", required: false }] }], labels: [{ type: i0.Input, args: [{ isSignal: true, alias: "labels", required: false }] }] } });
|
|
22066
22161
|
|
|
22162
|
+
/**
|
|
22163
|
+
* A chart's key is a component. The same swatch · label · value rows serve a
|
|
22164
|
+
* line chart's series picker, a diagram's edge styles and a donut's categories
|
|
22165
|
+
* — instead of 9px squares with inline backgrounds written per screen.
|
|
22166
|
+
*
|
|
22167
|
+
* <strct-legend [items]="series" orientation="vertical" />
|
|
22168
|
+
* <strct-legend [items]="edges" interactive (itemToggle)="toggle($event)" />
|
|
22169
|
+
*
|
|
22170
|
+
* A category with zero items still belongs in the key: pass it `muted`, because
|
|
22171
|
+
* "0 failed" is information.
|
|
22172
|
+
*/
|
|
22173
|
+
class StrctLegend {
|
|
22174
|
+
/** The rows of the key. */
|
|
22175
|
+
items = input.required(/* @ts-ignore */
|
|
22176
|
+
...(ngDevMode ? [{ debugName: "items" }] : /* istanbul ignore next */ []));
|
|
22177
|
+
/** `vertical` stacks the rows and aligns their values. */
|
|
22178
|
+
orientation = input('horizontal', /* @ts-ignore */
|
|
22179
|
+
...(ngDevMode ? [{ debugName: "orientation" }] : /* istanbul ignore next */ []));
|
|
22180
|
+
/** Rows become toggle buttons carrying `aria-pressed`. */
|
|
22181
|
+
interactive = input(false, { ...(ngDevMode ? { debugName: "interactive" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
22182
|
+
/** The label of the row that was toggled. */
|
|
22183
|
+
itemToggle = output();
|
|
22184
|
+
/** The status vocabulary's own tokens — 'accent' is `--acc`, not `--accent`. */
|
|
22185
|
+
static TONE = {
|
|
22186
|
+
neutral: 'var(--t3)',
|
|
22187
|
+
accent: 'var(--acc)',
|
|
22188
|
+
success: 'var(--success)',
|
|
22189
|
+
warning: 'var(--warning)',
|
|
22190
|
+
critical: 'var(--critical)',
|
|
22191
|
+
};
|
|
22192
|
+
swatchColor(item) {
|
|
22193
|
+
return item.color ?? StrctLegend.TONE[item.status ?? 'accent'];
|
|
22194
|
+
}
|
|
22195
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctLegend, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
22196
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: StrctLegend, isStandalone: true, selector: "strct-legend", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: true, transformFunction: null }, orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, interactive: { classPropertyName: "interactive", publicName: "interactive", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemToggle: "itemToggle" }, host: { properties: { "class.strct-legend--vertical": "orientation() === 'vertical'" }, classAttribute: "strct-legend" }, ngImport: i0, template: `
|
|
22197
|
+
<ul class="strct-legend__list" role="list">
|
|
22198
|
+
@for (item of items(); track item.label) {
|
|
22199
|
+
<li class="strct-legend__row" [class.strct-legend__row--muted]="item.muted">
|
|
22200
|
+
@if (interactive()) {
|
|
22201
|
+
<button
|
|
22202
|
+
type="button"
|
|
22203
|
+
class="strct-legend__hit"
|
|
22204
|
+
[attr.aria-pressed]="!item.off"
|
|
22205
|
+
(click)="itemToggle.emit(item.label)"
|
|
22206
|
+
>
|
|
22207
|
+
<span
|
|
22208
|
+
class="strct-legend__swatch strct-legend__swatch--{{ item.shape ?? 'square' }}"
|
|
22209
|
+
[style.--strct-legend-color]="swatchColor(item)"
|
|
22210
|
+
aria-hidden="true"
|
|
22211
|
+
></span>
|
|
22212
|
+
<span class="strct-legend__label">{{ item.label }}</span>
|
|
22213
|
+
@if (item.value !== undefined) {
|
|
22214
|
+
<span class="strct-legend__value">{{ item.value }}</span>
|
|
22215
|
+
}
|
|
22216
|
+
</button>
|
|
22217
|
+
} @else {
|
|
22218
|
+
<span
|
|
22219
|
+
class="strct-legend__swatch strct-legend__swatch--{{ item.shape ?? 'square' }}"
|
|
22220
|
+
[style.--strct-legend-color]="swatchColor(item)"
|
|
22221
|
+
aria-hidden="true"
|
|
22222
|
+
></span>
|
|
22223
|
+
<span class="strct-legend__label">{{ item.label }}</span>
|
|
22224
|
+
@if (item.value !== undefined) {
|
|
22225
|
+
<span class="strct-legend__value">{{ item.value }}</span>
|
|
22226
|
+
}
|
|
22227
|
+
}
|
|
22228
|
+
</li>
|
|
22229
|
+
}
|
|
22230
|
+
</ul>
|
|
22231
|
+
`, isInline: true, styles: [".strct-legend{display:block;font-size:var(--text-sm);color:var(--t2)}.strct-legend__list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px 14px}.strct-legend--vertical .strct-legend__list{flex-direction:column;flex-wrap:nowrap;gap:2px}.strct-legend__row{display:flex;align-items:center;gap:7px;min-width:0}.strct-legend__row--muted{opacity:.55}.strct-legend__hit{display:flex;align-items:center;gap:7px;min-width:0;padding:2px 4px;margin:-2px -4px;border:0;border-radius:var(--radius-sm);background:none;font:inherit;color:inherit;cursor:pointer}.strct-legend__hit:hover{background:var(--bg-3)}.strct-legend__hit:focus-visible{outline:2px solid var(--acc50);outline-offset:1px}.strct-legend__hit[aria-pressed=false]{opacity:.45}.strct-legend__hit[aria-pressed=false] .strct-legend__label{text-decoration:line-through}.strct-legend__swatch{flex:none;background:var(--strct-legend-color, var(--t3))}.strct-legend__swatch--square{width:9px;height:9px;border-radius:2px}.strct-legend__swatch--dot{width:9px;height:9px;border-radius:50%}.strct-legend__swatch--line{width:14px;height:2px;border-radius:1px}.strct-legend__swatch--dash{width:14px;height:2px;background:repeating-linear-gradient(to right,var(--strct-legend-color, var(--t3)) 0 4px,transparent 4px 7px)}.strct-legend__label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.strct-legend__value{margin-inline-start:auto;padding-inline-start:8px;color:var(--t3);font-variant-numeric:tabular-nums}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
22232
|
+
}
|
|
22233
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctLegend, decorators: [{
|
|
22234
|
+
type: Component,
|
|
22235
|
+
args: [{ selector: 'strct-legend', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: `
|
|
22236
|
+
<ul class="strct-legend__list" role="list">
|
|
22237
|
+
@for (item of items(); track item.label) {
|
|
22238
|
+
<li class="strct-legend__row" [class.strct-legend__row--muted]="item.muted">
|
|
22239
|
+
@if (interactive()) {
|
|
22240
|
+
<button
|
|
22241
|
+
type="button"
|
|
22242
|
+
class="strct-legend__hit"
|
|
22243
|
+
[attr.aria-pressed]="!item.off"
|
|
22244
|
+
(click)="itemToggle.emit(item.label)"
|
|
22245
|
+
>
|
|
22246
|
+
<span
|
|
22247
|
+
class="strct-legend__swatch strct-legend__swatch--{{ item.shape ?? 'square' }}"
|
|
22248
|
+
[style.--strct-legend-color]="swatchColor(item)"
|
|
22249
|
+
aria-hidden="true"
|
|
22250
|
+
></span>
|
|
22251
|
+
<span class="strct-legend__label">{{ item.label }}</span>
|
|
22252
|
+
@if (item.value !== undefined) {
|
|
22253
|
+
<span class="strct-legend__value">{{ item.value }}</span>
|
|
22254
|
+
}
|
|
22255
|
+
</button>
|
|
22256
|
+
} @else {
|
|
22257
|
+
<span
|
|
22258
|
+
class="strct-legend__swatch strct-legend__swatch--{{ item.shape ?? 'square' }}"
|
|
22259
|
+
[style.--strct-legend-color]="swatchColor(item)"
|
|
22260
|
+
aria-hidden="true"
|
|
22261
|
+
></span>
|
|
22262
|
+
<span class="strct-legend__label">{{ item.label }}</span>
|
|
22263
|
+
@if (item.value !== undefined) {
|
|
22264
|
+
<span class="strct-legend__value">{{ item.value }}</span>
|
|
22265
|
+
}
|
|
22266
|
+
}
|
|
22267
|
+
</li>
|
|
22268
|
+
}
|
|
22269
|
+
</ul>
|
|
22270
|
+
`, host: {
|
|
22271
|
+
class: 'strct-legend',
|
|
22272
|
+
'[class.strct-legend--vertical]': "orientation() === 'vertical'",
|
|
22273
|
+
}, styles: [".strct-legend{display:block;font-size:var(--text-sm);color:var(--t2)}.strct-legend__list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px 14px}.strct-legend--vertical .strct-legend__list{flex-direction:column;flex-wrap:nowrap;gap:2px}.strct-legend__row{display:flex;align-items:center;gap:7px;min-width:0}.strct-legend__row--muted{opacity:.55}.strct-legend__hit{display:flex;align-items:center;gap:7px;min-width:0;padding:2px 4px;margin:-2px -4px;border:0;border-radius:var(--radius-sm);background:none;font:inherit;color:inherit;cursor:pointer}.strct-legend__hit:hover{background:var(--bg-3)}.strct-legend__hit:focus-visible{outline:2px solid var(--acc50);outline-offset:1px}.strct-legend__hit[aria-pressed=false]{opacity:.45}.strct-legend__hit[aria-pressed=false] .strct-legend__label{text-decoration:line-through}.strct-legend__swatch{flex:none;background:var(--strct-legend-color, var(--t3))}.strct-legend__swatch--square{width:9px;height:9px;border-radius:2px}.strct-legend__swatch--dot{width:9px;height:9px;border-radius:50%}.strct-legend__swatch--line{width:14px;height:2px;border-radius:1px}.strct-legend__swatch--dash{width:14px;height:2px;background:repeating-linear-gradient(to right,var(--strct-legend-color, var(--t3)) 0 4px,transparent 4px 7px)}.strct-legend__label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.strct-legend__value{margin-inline-start:auto;padding-inline-start:8px;color:var(--t3);font-variant-numeric:tabular-nums}\n"] }]
|
|
22274
|
+
}], propDecorators: { items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: true }] }], orientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "orientation", required: false }] }], interactive: [{ type: i0.Input, args: [{ isSignal: true, alias: "interactive", required: false }] }], itemToggle: [{ type: i0.Output, args: ["itemToggle"] }] } });
|
|
22275
|
+
|
|
22067
22276
|
/**
|
|
22068
22277
|
* A generic anchored overlay panel for arbitrary projected content — the
|
|
22069
22278
|
* public primitive behind menus, signposts and rich pickers:
|
|
@@ -22624,7 +22833,7 @@ class StrctTreeSelect {
|
|
|
22624
22833
|
}
|
|
22625
22834
|
</div>
|
|
22626
22835
|
}
|
|
22627
|
-
`, isInline: true, styles: [".strct-tsel{position:relative;display:block;width:100%}.strct-tsel__field{position:relative}.strct-tsel__trigger{display:flex;align-items:center;gap:8px;padding-inline-end:30px;text-align:start;cursor:pointer}.strct-tsel__trigger--clearable{padding-inline-end:48px}.strct-tsel__trigger:disabled{cursor:not-allowed}.strct-tsel__value{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.strct-tsel__value--empty{color:var(--t3)}.strct-tsel__caret{position:absolute;inset-inline-end:9px;top:50%;transform:translateY(-50%);color:var(--t3);pointer-events:none}.strct-tsel__clear{position:absolute;inset-inline-end:26px;top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;padding:2px;color:var(--t3);background:none;border:none;border-radius:var(--radius-sm);cursor:pointer}.strct-tsel__clear:hover{color:var(--t1)}.strct-tsel__panel{z-index:var(--z-dropdown);max-height:260px;overflow-y:auto;padding:var(--space-1);background:var(--bg-1);border:1px solid var(--b2);border-radius:var(--radius-lg);box-shadow:var(--shh)}.strct-tsel__empty{padding:9px 10px;font-size:13px;color:var(--t3)}\n"], dependencies: [{ kind: "component", type: StrctIcon, selector: "strct-icon", inputs: ["name", "strictName", "size", "strokeWidth", "badge", "ariaLabel", "count", "countMax", "countStatus", "countLabel"] }, { kind: "directive", type: StrctOverlay, selector: "[strctOverlay]", inputs: ["strctOverlay", "strctOverlayPlacement", "strctOverlayMatchWidth", "strctOverlayGap"] }, { kind: "component", type: StrctTree, selector: "strct-tree", inputs: ["nodes", "density", "nodeMenu", "canDrag", "canDrop", "dragExpandDelay", "chevronAriaLabel", "expandedIds"], outputs: ["nodeDrop", "nodeActivated", "nodeMenuSelect", "expandedIdsChange", "expandedChange", "nodeToggled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
22836
|
+
`, isInline: true, styles: [".strct-tsel{position:relative;display:block;width:100%}.strct-tsel__field{position:relative}.strct-tsel__trigger{display:flex;align-items:center;gap:8px;padding-inline-end:30px;text-align:start;cursor:pointer}.strct-tsel__trigger--clearable{padding-inline-end:48px}.strct-tsel__trigger:disabled{cursor:not-allowed}.strct-tsel__value{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.strct-tsel__value--empty{color:var(--t3)}.strct-tsel__caret{position:absolute;inset-inline-end:9px;top:50%;transform:translateY(-50%);color:var(--t3);pointer-events:none}.strct-tsel__clear{position:absolute;inset-inline-end:26px;top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;padding:2px;color:var(--t3);background:none;border:none;border-radius:var(--radius-sm);cursor:pointer}.strct-tsel__clear:hover{color:var(--t1)}.strct-tsel__panel{z-index:var(--z-dropdown);max-height:260px;overflow-y:auto;padding:var(--space-1);background:var(--bg-1);border:1px solid var(--b2);border-radius:var(--radius-lg);box-shadow:var(--shh)}.strct-tsel__empty{padding:9px 10px;font-size:13px;color:var(--t3)}\n"], dependencies: [{ kind: "component", type: StrctIcon, selector: "strct-icon", inputs: ["name", "strictName", "size", "strokeWidth", "badge", "ariaLabel", "count", "countMax", "countStatus", "countLabel"] }, { kind: "directive", type: StrctOverlay, selector: "[strctOverlay]", inputs: ["strctOverlay", "strctOverlayPlacement", "strctOverlayMatchWidth", "strctOverlayGap"] }, { kind: "component", type: StrctTree, selector: "strct-tree", inputs: ["nodes", "density", "framed", "maxHeight", "nodeMenu", "canDrag", "canDrop", "dragExpandDelay", "chevronAriaLabel", "expandedIds"], outputs: ["nodeDrop", "nodeActivated", "nodeMenuSelect", "expandedIdsChange", "expandedChange", "nodeToggled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
22628
22837
|
}
|
|
22629
22838
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctTreeSelect, decorators: [{
|
|
22630
22839
|
type: Component,
|
|
@@ -23930,5 +24139,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
|
|
|
23930
24139
|
* Generated bundle index. Do not edit.
|
|
23931
24140
|
*/
|
|
23932
24141
|
|
|
23933
|
-
export { FOCUSABLE_SELECTOR, STRCT_DP_DOW, STRCT_DP_DOW_FULL, STRCT_DP_MONTHS, STRCT_ICONS, STRCT_ICON_GROUPS, STRCT_ICON_NAMES, STRCT_MASKS, STRCT_NOTIFICATION_HISTORY_LIMIT, STRCT_PALETTES, STRCT_RAW_ICONS, STRCT_TIME_RANGE_PRESETS, STRCT_WIZARD_DEFAULTS, StrctAccordion, StrctAccordionPanel, StrctAlert, StrctAnnouncer, StrctAvatar, StrctBadge, StrctBreadcrumb, StrctBreadcrumbItem, StrctButton, StrctButtonGroup, StrctBytesPipe, StrctCard, StrctCardBlock, StrctCardFooter, StrctCardHeader, StrctCardHeaderActions, StrctCardHeaderMeta, StrctCardHeaderNote, StrctCascadeColumn, StrctCascadeHost, StrctCascadeSelect, StrctCellDef, StrctCellStatus, StrctChart, StrctCheckbox, StrctChips, StrctCode, StrctCodeInline, StrctColorPicker, StrctCombobox, StrctCommandPalette, StrctConfirmOutlet, StrctConfirmService, StrctContextMenu, StrctContextMenuTrigger, StrctControlDescription, StrctCopy, StrctDatagrid, StrctDatagridActionBar, StrctDatagridActionBarCaption, StrctDatepicker, StrctDatetimePicker, StrctDesc, StrctDescriptionList, StrctDiff, StrctDivider, StrctDonut, StrctDrawer, StrctDrawerFooter, StrctDropdown, StrctDropdownDivider, StrctDropdownItem, StrctDropdownItemAction, StrctDropdownTrigger, StrctDurationPipe, StrctEmptyState, StrctField, StrctFieldGroup, StrctFieldHint, StrctFieldPrefix, StrctFieldSuffix, StrctFile, StrctFilterBar, StrctFlow, StrctFooter, StrctGauge, StrctHeader, StrctHeatmap, StrctHero, StrctHotkeysHelp, StrctHotkeysService, StrctIcon, StrctInlineEdit, StrctInput, StrctInputMask, StrctInputOtp, StrctKbd, StrctKnob, StrctList, StrctListItem, StrctListItemDescription, StrctListItemLeading, StrctListItemMeta, StrctListItemTrailing, StrctLiveIndicator, StrctLogViewer, StrctLogin, StrctMenuPanel, StrctMenuService, StrctMenubar, StrctMetricTile, StrctModal, StrctModalContent, StrctNav, StrctNavItem, StrctNotificationCenter, StrctNumber, StrctOverlay, StrctPageHeader, StrctPageHeaderActions, StrctPageHeaderCrumbs, StrctPageHeaderTitleMeta, StrctPagination, StrctPassword, StrctPopover, StrctPopoverTrigger, StrctProgress, StrctRadio, StrctRadioGroup, StrctRail, StrctRange, StrctRatePipe, StrctRating, StrctReorder, StrctReorderItem, StrctRowDetailDef, StrctSearchbox, StrctSectionHeader, StrctSectionHeaderActions, StrctSectionHeaderMeta, StrctSectionMenu, StrctSegmented, StrctSelect, StrctShell, StrctShellService, StrctSiPipe, StrctSignpost, StrctSignpostTrigger, StrctSkeleton, StrctSparkline, StrctSpeedDial, StrctSpinner, StrctSplitButton, StrctSplitter, StrctStack, StrctStackItem, StrctStatusDot, StrctStep, StrctSubmenu, StrctTab, StrctTable, StrctTabs, StrctTag, StrctTagLeading, StrctThemeService, StrctThemeSwitcher, StrctTimeRangePicker, StrctTimeline, StrctTimelineItem, StrctToastOutlet, StrctToastService, StrctToggle, StrctToolbar, StrctToolbarCaption, StrctToolbarSpacer, StrctTooltip, StrctTour, StrctTransfer, StrctTree, StrctTreeNode, StrctTreeSelect, StrctVerticalNav, StrctWatermark, StrctWizard, StrctWizardAside, focusFirstIn, keepTabInside, lockBodyScroll, parseAnsi, provideStrctWizardDefaults, registerStrctIcon, restoreFocus, saveFocusedElement, strctComputeDiff, strctDpPad, strctFormatBytes, strctFormatDuration, strctFormatRate, strctFormatSi, strctValidationIcon, strctValidationTone, unlockBodyScroll };
|
|
24142
|
+
export { FOCUSABLE_SELECTOR, STRCT_DP_DOW, STRCT_DP_DOW_FULL, STRCT_DP_MONTHS, STRCT_ICONS, STRCT_ICON_GROUPS, STRCT_ICON_NAMES, STRCT_MASKS, STRCT_NOTIFICATION_HISTORY_LIMIT, STRCT_PALETTES, STRCT_RAW_ICONS, STRCT_TIME_RANGE_PRESETS, STRCT_WIZARD_DEFAULTS, StrctAccordion, StrctAccordionPanel, StrctAlert, StrctAnnouncer, StrctAvatar, StrctBadge, StrctBreadcrumb, StrctBreadcrumbItem, StrctButton, StrctButtonGroup, StrctBytesPipe, StrctCard, StrctCardBlock, StrctCardFooter, StrctCardHeader, StrctCardHeaderActions, StrctCardHeaderMeta, StrctCardHeaderNote, StrctCascadeColumn, StrctCascadeHost, StrctCascadeSelect, StrctCellDef, StrctCellStatus, StrctChart, StrctCheckbox, StrctChips, StrctCode, StrctCodeInline, StrctColorPicker, StrctCombobox, StrctCommandPalette, StrctConfirmOutlet, StrctConfirmService, StrctContextMenu, StrctContextMenuTrigger, StrctControlDescription, StrctCopy, StrctDatagrid, StrctDatagridActionBar, StrctDatagridActionBarCaption, StrctDatepicker, StrctDatetimePicker, StrctDesc, StrctDescriptionList, StrctDiff, StrctDivider, StrctDonut, StrctDrawer, StrctDrawerFooter, StrctDropdown, StrctDropdownDivider, StrctDropdownItem, StrctDropdownItemAction, StrctDropdownTrigger, StrctDurationPipe, StrctEmptyState, StrctField, StrctFieldGroup, StrctFieldHint, StrctFieldPrefix, StrctFieldSuffix, StrctFile, StrctFilterBar, StrctFlow, StrctFooter, StrctGauge, StrctHeader, StrctHeatmap, StrctHero, StrctHotkeysHelp, StrctHotkeysService, StrctIcon, StrctInlineEdit, StrctInput, StrctInputMask, StrctInputOtp, StrctKbd, StrctKnob, StrctLegend, StrctList, StrctListItem, StrctListItemDescription, StrctListItemLeading, StrctListItemMeta, StrctListItemTrailing, StrctLiveIndicator, StrctLogViewer, StrctLogin, StrctMenuPanel, StrctMenuService, StrctMenubar, StrctMetricTile, StrctModal, StrctModalContent, StrctNav, StrctNavItem, StrctNotificationCenter, StrctNumber, StrctOverlay, StrctPageHeader, StrctPageHeaderActions, StrctPageHeaderCrumbs, StrctPageHeaderTitleMeta, StrctPagination, StrctPassword, StrctPopover, StrctPopoverTrigger, StrctProgress, StrctRadio, StrctRadioGroup, StrctRail, StrctRange, StrctRatePipe, StrctRating, StrctReorder, StrctReorderItem, StrctRowDetailDef, StrctSearchbox, StrctSectionHeader, StrctSectionHeaderActions, StrctSectionHeaderMeta, StrctSectionMenu, StrctSegmented, StrctSelect, StrctShell, StrctShellService, StrctSiPipe, StrctSignpost, StrctSignpostTrigger, StrctSkeleton, StrctSparkline, StrctSpeedDial, StrctSpinner, StrctSplitButton, StrctSplitter, StrctStack, StrctStackItem, StrctStatusDot, StrctStep, StrctSubmenu, StrctTab, StrctTable, StrctTabs, StrctTag, StrctTagLeading, StrctThemeService, StrctThemeSwitcher, StrctTimeRangePicker, StrctTimeline, StrctTimelineItem, StrctToastOutlet, StrctToastService, StrctToggle, StrctToolbar, StrctToolbarCaption, StrctToolbarSpacer, StrctTooltip, StrctTour, StrctTransfer, StrctTree, StrctTreeNode, StrctTreeSelect, StrctVerticalNav, StrctWatermark, StrctWizard, StrctWizardAside, focusFirstIn, keepTabInside, lockBodyScroll, parseAnsi, provideStrctWizardDefaults, registerStrctIcon, restoreFocus, saveFocusedElement, strctComputeDiff, strctDpPad, strctFormatBytes, strctFormatDuration, strctFormatRate, strctFormatSi, strctValidationIcon, strctValidationTone, unlockBodyScroll };
|
|
23934
24143
|
//# sourceMappingURL=akcelik-strct.mjs.map
|