@akcelik/strct 5.14.0 → 5.15.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 +322 -11
- package/fesm2022/akcelik-strct.mjs.map +1 -1
- package/package.json +1 -1
- package/styles/_tokens.scss +31 -30
- package/types/akcelik-strct.d.ts +77 -3
|
@@ -1135,7 +1135,7 @@ class StrctDropdown {
|
|
|
1135
1135
|
const target = event.target;
|
|
1136
1136
|
if (target?.closest('.strct-dd__itemaction'))
|
|
1137
1137
|
return; // the second action is not the item
|
|
1138
|
-
const item = target?.closest(
|
|
1138
|
+
const item = target?.closest(DD_ITEM);
|
|
1139
1139
|
if (item && item.getAttribute('aria-disabled') !== 'true')
|
|
1140
1140
|
this.close(true);
|
|
1141
1141
|
}
|
|
@@ -1183,14 +1183,14 @@ class StrctDropdown {
|
|
|
1183
1183
|
onItemActionKey(event, key) {
|
|
1184
1184
|
const target = event.target;
|
|
1185
1185
|
if (key === 'ArrowLeft') {
|
|
1186
|
-
const item = target.closest(
|
|
1186
|
+
const item = target.closest(DD_ITEM);
|
|
1187
1187
|
if (!target.classList.contains('strct-dd__itemaction') || !item)
|
|
1188
1188
|
return;
|
|
1189
1189
|
event.preventDefault();
|
|
1190
1190
|
item.focus();
|
|
1191
1191
|
return;
|
|
1192
1192
|
}
|
|
1193
|
-
const item = target.closest(
|
|
1193
|
+
const item = target.closest(DD_ITEM);
|
|
1194
1194
|
const action = item?.querySelector('.strct-dd__itemaction');
|
|
1195
1195
|
if (!item || item !== target || !action)
|
|
1196
1196
|
return;
|
|
@@ -1202,7 +1202,9 @@ class StrctDropdown {
|
|
|
1202
1202
|
}
|
|
1203
1203
|
enabledItems() {
|
|
1204
1204
|
return [
|
|
1205
|
-
...this.host.nativeElement.querySelectorAll('
|
|
1205
|
+
...this.host.nativeElement.querySelectorAll(`${DD_ITEM.split(', ')
|
|
1206
|
+
.map((sel) => `${sel}:not([aria-disabled="true"])`)
|
|
1207
|
+
.join(', ')}, strct-submenu .strct-submenu__trigger`),
|
|
1206
1208
|
];
|
|
1207
1209
|
}
|
|
1208
1210
|
/** What the arrow keys visit: enabled items, plus disabled ones that carry a
|
|
@@ -1210,7 +1212,7 @@ class StrctDropdown {
|
|
|
1210
1212
|
navItems() {
|
|
1211
1213
|
const host = this.host.nativeElement;
|
|
1212
1214
|
const rows = [
|
|
1213
|
-
...host.querySelectorAll(
|
|
1215
|
+
...host.querySelectorAll(DD_ITEM),
|
|
1214
1216
|
...host.querySelectorAll('strct-submenu .strct-submenu__trigger'),
|
|
1215
1217
|
].filter((el) => el.getAttribute('aria-disabled') !== 'true' ||
|
|
1216
1218
|
el.classList.contains('strct-dd__item--hinted'));
|
|
@@ -1414,6 +1416,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
|
|
|
1414
1416
|
host: { class: 'strct-dd__itemdesc' },
|
|
1415
1417
|
}]
|
|
1416
1418
|
}] });
|
|
1419
|
+
/**
|
|
1420
|
+
* The two forms a menu row can take. `a[strctDropdownItem]` is the one for a
|
|
1421
|
+
* row that goes somewhere: a real link (middle-click, ⌘-click, open in a new
|
|
1422
|
+
* tab, copy address) wearing the menu's semantics.
|
|
1423
|
+
*/
|
|
1424
|
+
const DD_ITEM = 'strct-dropdown-item, a[strctDropdownItem]';
|
|
1417
1425
|
class StrctDropdownItem {
|
|
1418
1426
|
/**
|
|
1419
1427
|
* Select-like usage: bind `selected` and the item becomes a
|
|
@@ -1475,7 +1483,7 @@ class StrctDropdownItem {
|
|
|
1475
1483
|
}, { capture: true });
|
|
1476
1484
|
}
|
|
1477
1485
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctDropdownItem, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1478
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: StrctDropdownItem, isStandalone: true, selector: "strct-dropdown-item", inputs: { selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, critical: { classPropertyName: "critical", publicName: "critical", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, hint: { classPropertyName: "hint", publicName: "hint", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.role": "selected() === null ? 'menuitem' : 'menuitemradio'", "attr.aria-checked": "selected()", "attr.tabindex": "tabindex()", "attr.title": "hint() || null", "attr.aria-describedby": "hint() ? hintId : null", "class.strct-dd__item--hinted": "!!hint()", "class.strct-dd__item--critical": "critical()", "class.strct-dd__item--selected": "selected() === true", "attr.aria-disabled": "disabled() || null" }, classAttribute: "strct-dd__item" }, ngImport: i0, template: `@if (selected() !== null) {
|
|
1486
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: StrctDropdownItem, isStandalone: true, selector: "strct-dropdown-item, a[strctDropdownItem]", inputs: { selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, critical: { classPropertyName: "critical", publicName: "critical", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, hint: { classPropertyName: "hint", publicName: "hint", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.role": "selected() === null ? 'menuitem' : 'menuitemradio'", "attr.aria-checked": "selected()", "attr.tabindex": "tabindex()", "attr.title": "hint() || null", "attr.aria-describedby": "hint() ? hintId : null", "class.strct-dd__item--hinted": "!!hint()", "class.strct-dd__item--critical": "critical()", "class.strct-dd__item--selected": "selected() === true", "attr.aria-disabled": "disabled() || null" }, classAttribute: "strct-dd__item" }, ngImport: i0, template: `@if (selected() !== null) {
|
|
1479
1487
|
<span class="strct-dd__check" aria-hidden="true">
|
|
1480
1488
|
@if (selected()) {
|
|
1481
1489
|
<strct-icon strictName="check" [size]="12" [strokeWidth]="1.8" />
|
|
@@ -1500,7 +1508,7 @@ class StrctDropdownItem {
|
|
|
1500
1508
|
}
|
|
1501
1509
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctDropdownItem, decorators: [{
|
|
1502
1510
|
type: Component,
|
|
1503
|
-
args: [{ selector: 'strct-dropdown-item', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [StrctIcon], template: `@if (selected() !== null) {
|
|
1511
|
+
args: [{ selector: 'strct-dropdown-item, a[strctDropdownItem]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [StrctIcon], template: `@if (selected() !== null) {
|
|
1504
1512
|
<span class="strct-dd__check" aria-hidden="true">
|
|
1505
1513
|
@if (selected()) {
|
|
1506
1514
|
<strct-icon strictName="check" [size]="12" [strokeWidth]="1.8" />
|
|
@@ -1876,7 +1884,7 @@ class StrctHeader {
|
|
|
1876
1884
|
}
|
|
1877
1885
|
</span>
|
|
1878
1886
|
}
|
|
1879
|
-
`, isInline: true, styles: [".strct-vnav__backdrop{position:fixed;inset:0;z-index:calc(var(--z-nav) - 1);background:var(--backdrop);animation:strct-vnav-backdrop-in .2s ease}@media(min-width:769px){.strct-vnav__backdrop{display:none}}@keyframes strct-vnav-backdrop-in{0%{opacity:0}to{opacity:1}}.strct-header{display:flex;align-items:center;gap:var(--strct-header-gap, 14px);height:56px;padding:0 var(--strct-header-pad, 18px);background:var(--hdr);border-bottom:1px solid var(--b2);color:var(--hdr-fg)}.strct-header--accent{box-shadow:inset 0 -3px 0 var(--strct-header-accent, var(--acc))}.strct-header__actions{display:flex;align-items:center;gap:inherit;min-width:0}.strct-header__more{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:0;border-radius:var(--radius-sm);background:transparent;color:inherit;cursor:pointer}.strct-header__more:hover{background:#ffffff1f}.strct-header__moreslot{display:flex;align-items:center;padding:6px 10px}.strct-header__morecmd{display:flex;align-items:center;gap:8px;width:100%;box-sizing:border-box;padding:9px 10px;border:0;border-radius:5px;background:transparent;color:var(--t1);font-size:13px;font-family:var(--font);text-align:start;cursor:pointer}.strct-header__morecmd:hover,.strct-header__morecmd:focus-visible{background:var(--bg-3);outline:none}@media(max-width:600px){.strct-header{gap:var(--strct-header-gap, 4px);padding:0 var(--strct-header-pad, 6px)}}.strct-header .strct-btn--flat:not(.strct-modal__dialog *,.strct-drawer *,.strct-popover__panel *,.strct-dd__menu *,.strct-tour__card *){color:color-mix(in srgb,var(--hdr-fg) 72%,transparent)}.strct-header .strct-btn--flat:not(.strct-modal__dialog *,.strct-drawer *,.strct-popover__panel *,.strct-dd__menu *,.strct-tour__card *):hover:not(:disabled){background:color-mix(in srgb,var(--hdr-fg) 12%,transparent);color:var(--hdr-fg)}.strct-header .strct-btn--flat:not(.strct-modal__dialog *,.strct-drawer *,.strct-popover__panel *,.strct-dd__menu *,.strct-tour__card *):focus-visible{outline-color:color-mix(in srgb,var(--hdr-fg) 60%,transparent)}.strct-header__drawer-toggle{display:none;align-items:center;justify-content:center;padding:4px;border:0;border-radius:5px;background:transparent;color:color-mix(in srgb,var(--hdr-fg) 85%,transparent);cursor:pointer}.strct-header__drawer-toggle:hover{background:#ffffff1f;color:var(--hdr-fg)}@media(max-width:768px){.strct-header__drawer-toggle{display:inline-flex}}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: StrctIcon, selector: "strct-icon", inputs: ["name", "strictName", "size", "strokeWidth", "badge", "ariaLabel", "count", "countMax", "countStatus", "countLabel"] }, { kind: "component", type: StrctDropdown, selector: "strct-dropdown", inputs: ["align", "popover", "popoverLabel", "focusable"] }, { kind: "directive", type: StrctDropdownTrigger, selector: "[strctDropdownTrigger]" }, { kind: "component", type: StrctDropdownItem, selector: "strct-dropdown-item", inputs: ["selected", "critical", "disabled", "hint"] }, { kind: "directive", type: StrctDropdownItemIcon, selector: "[strctDropdownItemIcon]", inputs: ["tone"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
1887
|
+
`, isInline: true, styles: [".strct-vnav__backdrop{position:fixed;inset:0;z-index:calc(var(--z-nav) - 1);background:var(--backdrop);animation:strct-vnav-backdrop-in .2s ease}@media(min-width:769px){.strct-vnav__backdrop{display:none}}@keyframes strct-vnav-backdrop-in{0%{opacity:0}to{opacity:1}}.strct-header{display:flex;align-items:center;gap:var(--strct-header-gap, 14px);height:56px;padding:0 var(--strct-header-pad, 18px);background:var(--hdr);border-bottom:1px solid var(--b2);color:var(--hdr-fg)}.strct-header--accent{box-shadow:inset 0 -3px 0 var(--strct-header-accent, var(--acc))}.strct-header__actions{display:flex;align-items:center;gap:inherit;min-width:0}.strct-header__more{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:0;border-radius:var(--radius-sm);background:transparent;color:inherit;cursor:pointer}.strct-header__more:hover{background:#ffffff1f}.strct-header__moreslot{display:flex;align-items:center;padding:6px 10px}.strct-header__morecmd{display:flex;align-items:center;gap:8px;width:100%;box-sizing:border-box;padding:9px 10px;border:0;border-radius:5px;background:transparent;color:var(--t1);font-size:13px;font-family:var(--font);text-align:start;cursor:pointer}.strct-header__morecmd:hover,.strct-header__morecmd:focus-visible{background:var(--bg-3);outline:none}@media(max-width:600px){.strct-header{gap:var(--strct-header-gap, 4px);padding:0 var(--strct-header-pad, 6px)}}.strct-header .strct-btn--flat:not(.strct-modal__dialog *,.strct-drawer *,.strct-popover__panel *,.strct-dd__menu *,.strct-tour__card *){color:color-mix(in srgb,var(--hdr-fg) 72%,transparent)}.strct-header .strct-btn--flat:not(.strct-modal__dialog *,.strct-drawer *,.strct-popover__panel *,.strct-dd__menu *,.strct-tour__card *):hover:not(:disabled){background:color-mix(in srgb,var(--hdr-fg) 12%,transparent);color:var(--hdr-fg)}.strct-header .strct-btn--flat:not(.strct-modal__dialog *,.strct-drawer *,.strct-popover__panel *,.strct-dd__menu *,.strct-tour__card *):focus-visible{outline-color:color-mix(in srgb,var(--hdr-fg) 60%,transparent)}.strct-header__drawer-toggle{display:none;align-items:center;justify-content:center;padding:4px;border:0;border-radius:5px;background:transparent;color:color-mix(in srgb,var(--hdr-fg) 85%,transparent);cursor:pointer}.strct-header__drawer-toggle:hover{background:#ffffff1f;color:var(--hdr-fg)}@media(max-width:768px){.strct-header__drawer-toggle{display:inline-flex}}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: StrctIcon, selector: "strct-icon", inputs: ["name", "strictName", "size", "strokeWidth", "badge", "ariaLabel", "count", "countMax", "countStatus", "countLabel"] }, { kind: "component", type: StrctDropdown, selector: "strct-dropdown", inputs: ["align", "popover", "popoverLabel", "focusable"] }, { kind: "directive", type: StrctDropdownTrigger, selector: "[strctDropdownTrigger]" }, { kind: "component", type: StrctDropdownItem, selector: "strct-dropdown-item, a[strctDropdownItem]", inputs: ["selected", "critical", "disabled", "hint"] }, { kind: "directive", type: StrctDropdownItemIcon, selector: "[strctDropdownItemIcon]", inputs: ["tone"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
1880
1888
|
}
|
|
1881
1889
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctHeader, decorators: [{
|
|
1882
1890
|
type: Component,
|
|
@@ -6762,7 +6770,9 @@ class StrctSubmenu {
|
|
|
6762
6770
|
panelItems() {
|
|
6763
6771
|
const panel = this.panel()?.nativeElement;
|
|
6764
6772
|
return panel
|
|
6765
|
-
? [
|
|
6773
|
+
? [
|
|
6774
|
+
...panel.querySelectorAll('strct-dropdown-item, a[strctDropdownItem]'),
|
|
6775
|
+
].filter((i) => i.getAttribute('aria-disabled') !== 'true' ||
|
|
6766
6776
|
i.classList.contains('strct-dd__item--hinted'))
|
|
6767
6777
|
: [];
|
|
6768
6778
|
}
|
|
@@ -23657,7 +23667,7 @@ class StrctSplitButton {
|
|
|
23657
23667
|
}
|
|
23658
23668
|
</strct-dropdown>
|
|
23659
23669
|
</div>
|
|
23660
|
-
`, isInline: true, styles: [".strct-sbt{display:inline-flex;align-items:stretch}.strct-sbt .strct-dd{display:inline-flex;align-self:stretch}.strct-sbt .strct-dd__trigger{display:inline-flex;align-items:stretch}.strct-sbt__chev{align-self:stretch;height:100%}.strct-sbt__main,.strct-sbt__chev{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--acc);background:transparent;color:var(--acc);font-family:var(--font);font-size:13px;font-weight:600;line-height:1;cursor:pointer;padding:var(--space-2) var(--space-4)}.strct-sbt__main{border-start-start-radius:var(--radius-md);border-end-start-radius:var(--radius-md);border-inline-end:0}.strct-sbt__chev{padding:var(--space-2);border-start-end-radius:var(--radius-md);border-end-end-radius:var(--radius-md);border-inline-start:1px solid var(--acc50)}.strct-sbt--solid .strct-sbt__main,.strct-sbt--solid .strct-sbt__chev{background:var(--acc);color:var(--inv)}.strct-sbt--solid .strct-sbt__chev{border-inline-start-color:color-mix(in srgb,var(--inv) 30%,var(--acc))}.strct-sbt__main:hover:not(:disabled),.strct-sbt__chev:hover:not(:disabled){background:var(--acc18)}.strct-sbt--solid .strct-sbt__main:hover:not(:disabled),.strct-sbt--solid .strct-sbt__chev:hover:not(:disabled){filter:brightness(1.08);background:var(--acc)}.strct-sbt__main:disabled,.strct-sbt__chev:disabled{opacity:.5;cursor:default}.strct-sbt__main:focus-visible,.strct-sbt__chev:focus-visible{outline:2px solid var(--acc50);outline-offset:1px;position:relative;z-index:var(--z-base)}\n"], dependencies: [{ kind: "component", type: StrctDropdown, selector: "strct-dropdown", inputs: ["align", "popover", "popoverLabel", "focusable"] }, { kind: "component", type: StrctDropdownDivider, selector: "strct-dropdown-divider" }, { kind: "component", type: StrctDropdownItem, selector: "strct-dropdown-item", inputs: ["selected", "critical", "disabled", "hint"] }, { kind: "directive", type: StrctDropdownTrigger, selector: "[strctDropdownTrigger]" }, { 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 });
|
|
23670
|
+
`, isInline: true, styles: [".strct-sbt{display:inline-flex;align-items:stretch}.strct-sbt .strct-dd{display:inline-flex;align-self:stretch}.strct-sbt .strct-dd__trigger{display:inline-flex;align-items:stretch}.strct-sbt__chev{align-self:stretch;height:100%}.strct-sbt__main,.strct-sbt__chev{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--acc);background:transparent;color:var(--acc);font-family:var(--font);font-size:13px;font-weight:600;line-height:1;cursor:pointer;padding:var(--space-2) var(--space-4)}.strct-sbt__main{border-start-start-radius:var(--radius-md);border-end-start-radius:var(--radius-md);border-inline-end:0}.strct-sbt__chev{padding:var(--space-2);border-start-end-radius:var(--radius-md);border-end-end-radius:var(--radius-md);border-inline-start:1px solid var(--acc50)}.strct-sbt--solid .strct-sbt__main,.strct-sbt--solid .strct-sbt__chev{background:var(--acc);color:var(--inv)}.strct-sbt--solid .strct-sbt__chev{border-inline-start-color:color-mix(in srgb,var(--inv) 30%,var(--acc))}.strct-sbt__main:hover:not(:disabled),.strct-sbt__chev:hover:not(:disabled){background:var(--acc18)}.strct-sbt--solid .strct-sbt__main:hover:not(:disabled),.strct-sbt--solid .strct-sbt__chev:hover:not(:disabled){filter:brightness(1.08);background:var(--acc)}.strct-sbt__main:disabled,.strct-sbt__chev:disabled{opacity:.5;cursor:default}.strct-sbt__main:focus-visible,.strct-sbt__chev:focus-visible{outline:2px solid var(--acc50);outline-offset:1px;position:relative;z-index:var(--z-base)}\n"], dependencies: [{ kind: "component", type: StrctDropdown, selector: "strct-dropdown", inputs: ["align", "popover", "popoverLabel", "focusable"] }, { kind: "component", type: StrctDropdownDivider, selector: "strct-dropdown-divider" }, { kind: "component", type: StrctDropdownItem, selector: "strct-dropdown-item, a[strctDropdownItem]", inputs: ["selected", "critical", "disabled", "hint"] }, { kind: "directive", type: StrctDropdownTrigger, selector: "[strctDropdownTrigger]" }, { 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 });
|
|
23661
23671
|
}
|
|
23662
23672
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctSplitButton, decorators: [{
|
|
23663
23673
|
type: Component,
|
|
@@ -30083,6 +30093,307 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
|
|
|
30083
30093
|
`, host: { class: 'strct-md' }, styles: [".strct-md{display:block;color:var(--t1);font-size:13px;line-height:1.55}.strct-md__p{margin:0 0 var(--space-2)}.strct-md__p:last-child{margin-bottom:0}.strct-md__h{margin:var(--space-3) 0 var(--space-2);font-size:14px;font-weight:600;color:var(--t1)}.strct-md__h:first-child{margin-top:0}.strct-md__list{margin:0 0 var(--space-2);padding-inline-start:20px}.strct-md__list li{margin-block:2px}.strct-md__quote{margin:0 0 var(--space-2);padding-inline-start:var(--space-3);border-inline-start:2px solid var(--b2);color:var(--t2)}.strct-md__rule{border:0;border-block-start:1px solid var(--b1);margin:var(--space-3) 0}.strct-md__codespan{font-family:var(--mono);font-size:.92em;background:var(--bg-2);border-radius:var(--radius-sm);padding:1px 4px}.strct-md__code{margin-block-end:var(--space-2)}.strct-md__link{color:var(--acc)}.strct-md__ext{margin-inline-start:2px;vertical-align:-1px}.strct-md__tablewrap{overflow-x:auto;margin-block-end:var(--space-2)}.strct-md__table{border-collapse:collapse;width:max-content;min-width:100%}.strct-md__table th,.strct-md__table td{border:1px solid var(--b1);padding:4px 8px;text-align:start}.strct-md__table th{background:var(--bg-2);font-weight:600}.strct-md__caret{display:inline-block;width:2px;height:1em;margin-inline-start:2px;vertical-align:-2px;background:var(--acc);animation:strct-md-caret 1s steps(2) infinite}@keyframes strct-md-caret{50%{opacity:0}}@media(prefers-reduced-motion:reduce){.strct-md__caret{animation:none}}\n"] }]
|
|
30084
30094
|
}], propDecorators: { source: [{ type: i0.Input, args: [{ isSignal: true, alias: "source", required: false }] }], tree: [{ type: i0.Input, args: [{ isSignal: true, alias: "tree", required: false }] }], streaming: [{ type: i0.Input, args: [{ isSignal: true, alias: "streaming", required: false }] }], headingOffset: [{ type: i0.Input, args: [{ isSignal: true, alias: "headingOffset", required: false }] }], linkPolicy: [{ type: i0.Input, args: [{ isSignal: true, alias: "linkPolicy", required: false }] }], tokens: [{ type: i0.Input, args: [{ isSignal: true, alias: "tokens", required: false }] }], navigate: [{ type: i0.Output, args: ["navigate"] }], tokenDefs: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => StrctMarkdownToken), { isSignal: true }] }] } });
|
|
30085
30095
|
|
|
30096
|
+
/**
|
|
30097
|
+
* The product switcher every multi-product console grows: a chip beside the
|
|
30098
|
+
* logo saying where you are, opening the products you may use with a line of
|
|
30099
|
+
* health each, and the platform after a divider.
|
|
30100
|
+
*
|
|
30101
|
+
* <strct-product-switcher
|
|
30102
|
+
* [items]="products" [(current)]="productId" [footerItems]="[admin]"
|
|
30103
|
+
* (opened)="loadHealth()" (select)="go($event)" />
|
|
30104
|
+
*
|
|
30105
|
+
* A person offered one product sees a plain chip, not a menu of one.
|
|
30106
|
+
*/
|
|
30107
|
+
class StrctProductSwitcher {
|
|
30108
|
+
/** The products this person may switch to. */
|
|
30109
|
+
items = input([], /* @ts-ignore */
|
|
30110
|
+
...(ngDevMode ? [{ debugName: "items" }] : /* istanbul ignore next */ []));
|
|
30111
|
+
/** Entries after a divider — the shared platform, administration. */
|
|
30112
|
+
footerItems = input([], /* @ts-ignore */
|
|
30113
|
+
...(ngDevMode ? [{ debugName: "footerItems" }] : /* istanbul ignore next */ []));
|
|
30114
|
+
/** Which product you are in, two-way. */
|
|
30115
|
+
current = model(null, /* @ts-ignore */
|
|
30116
|
+
...(ngDevMode ? [{ debugName: "current" }] : /* istanbul ignore next */ []));
|
|
30117
|
+
/**
|
|
30118
|
+
* What the chip is for, after the product's name:
|
|
30119
|
+
* "HyperStruct Backup — switch product".
|
|
30120
|
+
*/
|
|
30121
|
+
switchLabel = input('switch product', /* @ts-ignore */
|
|
30122
|
+
...(ngDevMode ? [{ debugName: "switchLabel" }] : /* istanbul ignore next */ []));
|
|
30123
|
+
/**
|
|
30124
|
+
* Below this width (px) the chip shows each item's `shortLabel` instead of
|
|
30125
|
+
* its label. The full name stays in the accessible name.
|
|
30126
|
+
*/
|
|
30127
|
+
shortLabelWidth = input(600, /* @ts-ignore */
|
|
30128
|
+
...(ngDevMode ? [{ debugName: "shortLabelWidth" }] : /* istanbul ignore next */ []));
|
|
30129
|
+
/** The menu has opened — read the health lines now, not before. */
|
|
30130
|
+
opened = output();
|
|
30131
|
+
/** A product was chosen (plain activation only, as the rail does). */
|
|
30132
|
+
select = output();
|
|
30133
|
+
menu = viewChild('menu', /* @ts-ignore */
|
|
30134
|
+
...(ngDevMode ? [{ debugName: "menu" }] : /* istanbul ignore next */ []));
|
|
30135
|
+
narrow = signal(false, /* @ts-ignore */
|
|
30136
|
+
...(ngDevMode ? [{ debugName: "narrow" }] : /* istanbul ignore next */ []));
|
|
30137
|
+
wasOpen = false;
|
|
30138
|
+
/** With one product and nowhere else to go, there is no menu to open. */
|
|
30139
|
+
hasMenu = computed(() => this.items().length + this.footerItems().length > 1, /* @ts-ignore */
|
|
30140
|
+
...(ngDevMode ? [{ debugName: "hasMenu" }] : /* istanbul ignore next */ []));
|
|
30141
|
+
currentItem = computed(() => [...this.items(), ...this.footerItems()].find((i) => i.id === this.current()) ??
|
|
30142
|
+
this.items()[0] ??
|
|
30143
|
+
null, /* @ts-ignore */
|
|
30144
|
+
...(ngDevMode ? [{ debugName: "currentItem" }] : /* istanbul ignore next */ []));
|
|
30145
|
+
chipText = computed(() => {
|
|
30146
|
+
const item = this.currentItem();
|
|
30147
|
+
if (!item)
|
|
30148
|
+
return '';
|
|
30149
|
+
const full = item.label ?? item.name;
|
|
30150
|
+
return this.narrow() ? (item.shortLabel ?? full) : full;
|
|
30151
|
+
}, /* @ts-ignore */
|
|
30152
|
+
...(ngDevMode ? [{ debugName: "chipText" }] : /* istanbul ignore next */ []));
|
|
30153
|
+
chipAriaLabel = computed(() => {
|
|
30154
|
+
const item = this.currentItem();
|
|
30155
|
+
if (!item)
|
|
30156
|
+
return this.switchLabel();
|
|
30157
|
+
return `${item.name} — ${this.switchLabel()}`;
|
|
30158
|
+
}, /* @ts-ignore */
|
|
30159
|
+
...(ngDevMode ? [{ debugName: "chipAriaLabel" }] : /* istanbul ignore next */ []));
|
|
30160
|
+
constructor() {
|
|
30161
|
+
// The short label is a width question, and a width question the component
|
|
30162
|
+
// has to answer in script: the text it draws changes, not only its size.
|
|
30163
|
+
effect((onCleanup) => {
|
|
30164
|
+
const px = this.shortLabelWidth();
|
|
30165
|
+
if (typeof matchMedia !== 'function')
|
|
30166
|
+
return;
|
|
30167
|
+
const query = matchMedia(`(max-width: ${px}px)`);
|
|
30168
|
+
const update = () => this.narrow.set(query.matches);
|
|
30169
|
+
update();
|
|
30170
|
+
query.addEventListener('change', update);
|
|
30171
|
+
onCleanup(() => query.removeEventListener('change', update));
|
|
30172
|
+
});
|
|
30173
|
+
// (opened) fires once per opening, so an app can fetch the health lines
|
|
30174
|
+
// then — the menu never waits for them.
|
|
30175
|
+
effect(() => {
|
|
30176
|
+
const open = this.menu()?.open() ?? false;
|
|
30177
|
+
if (open && !this.wasOpen)
|
|
30178
|
+
this.opened.emit();
|
|
30179
|
+
this.wasOpen = open;
|
|
30180
|
+
});
|
|
30181
|
+
}
|
|
30182
|
+
pick(item, event) {
|
|
30183
|
+
if (item.disabled)
|
|
30184
|
+
return;
|
|
30185
|
+
// A modified or non-primary click on a link is the browser's — a new tab,
|
|
30186
|
+
// a copied address — and must not switch the product here.
|
|
30187
|
+
if (event &&
|
|
30188
|
+
(item.routerLink != null || item.href) &&
|
|
30189
|
+
(event.button !== 0 || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey)) {
|
|
30190
|
+
return;
|
|
30191
|
+
}
|
|
30192
|
+
this.current.set(item.id);
|
|
30193
|
+
this.select.emit(item);
|
|
30194
|
+
}
|
|
30195
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctProductSwitcher, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
30196
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: StrctProductSwitcher, isStandalone: true, selector: "strct-product-switcher", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, footerItems: { classPropertyName: "footerItems", publicName: "footerItems", isSignal: true, isRequired: false, transformFunction: null }, current: { classPropertyName: "current", publicName: "current", isSignal: true, isRequired: false, transformFunction: null }, switchLabel: { classPropertyName: "switchLabel", publicName: "switchLabel", isSignal: true, isRequired: false, transformFunction: null }, shortLabelWidth: { classPropertyName: "shortLabelWidth", publicName: "shortLabelWidth", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { current: "currentChange", opened: "opened", select: "select" }, host: { classAttribute: "strct-ps" }, viewQueries: [{ propertyName: "menu", first: true, predicate: ["menu"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
30197
|
+
<!-- What a row holds, whichever element carries it. -->
|
|
30198
|
+
<ng-template #rowBody let-item>
|
|
30199
|
+
@if (item.icon) {
|
|
30200
|
+
<strct-icon strctDropdownItemIcon [tone]="item.tone ?? ''" [name]="item.icon" [size]="16" />
|
|
30201
|
+
}
|
|
30202
|
+
<span strctDropdownItemLabel>{{ item.name }}</span>
|
|
30203
|
+
@if (item.description) {
|
|
30204
|
+
<span strctDropdownItemDescription>
|
|
30205
|
+
@if (item.status) {
|
|
30206
|
+
<strct-status-dot [status]="item.status" />
|
|
30207
|
+
}
|
|
30208
|
+
{{ item.description }}
|
|
30209
|
+
</span>
|
|
30210
|
+
}
|
|
30211
|
+
</ng-template>
|
|
30212
|
+
|
|
30213
|
+
<!-- A row is a link where the product has an address, so it can be opened
|
|
30214
|
+
in a new tab — and a menuitemradio either way, checked on the one you
|
|
30215
|
+
are in. -->
|
|
30216
|
+
<ng-template #row let-item>
|
|
30217
|
+
@if (item.routerLink !== null && item.routerLink !== undefined && !item.disabled) {
|
|
30218
|
+
<a
|
|
30219
|
+
strctDropdownItem
|
|
30220
|
+
[routerLink]="item.routerLink"
|
|
30221
|
+
[selected]="item.id === current()"
|
|
30222
|
+
(click)="pick(item, $event)"
|
|
30223
|
+
>
|
|
30224
|
+
<ng-container *ngTemplateOutlet="rowBody; context: { $implicit: item }" />
|
|
30225
|
+
</a>
|
|
30226
|
+
} @else if (item.href && !item.disabled) {
|
|
30227
|
+
<a
|
|
30228
|
+
strctDropdownItem
|
|
30229
|
+
[href]="item.href"
|
|
30230
|
+
[selected]="item.id === current()"
|
|
30231
|
+
(click)="pick(item, $event)"
|
|
30232
|
+
>
|
|
30233
|
+
<ng-container *ngTemplateOutlet="rowBody; context: { $implicit: item }" />
|
|
30234
|
+
</a>
|
|
30235
|
+
} @else {
|
|
30236
|
+
<strct-dropdown-item
|
|
30237
|
+
[selected]="item.id === current()"
|
|
30238
|
+
[disabled]="!!item.disabled"
|
|
30239
|
+
(click)="pick(item)"
|
|
30240
|
+
>
|
|
30241
|
+
<ng-container *ngTemplateOutlet="rowBody; context: { $implicit: item }" />
|
|
30242
|
+
</strct-dropdown-item>
|
|
30243
|
+
}
|
|
30244
|
+
</ng-template>
|
|
30245
|
+
|
|
30246
|
+
@if (hasMenu()) {
|
|
30247
|
+
<strct-dropdown #menu align="start">
|
|
30248
|
+
<button
|
|
30249
|
+
type="button"
|
|
30250
|
+
class="strct-ps__chip"
|
|
30251
|
+
strctDropdownTrigger
|
|
30252
|
+
[attr.aria-label]="chipAriaLabel()"
|
|
30253
|
+
>
|
|
30254
|
+
<ng-container *ngTemplateOutlet="chipBody" />
|
|
30255
|
+
<strct-icon class="strct-ps__chevron" name="chevronDown" [size]="13" />
|
|
30256
|
+
</button>
|
|
30257
|
+
@for (item of items(); track item.id) {
|
|
30258
|
+
<ng-container *ngTemplateOutlet="row; context: { $implicit: item }" />
|
|
30259
|
+
}
|
|
30260
|
+
@if (footerItems().length) {
|
|
30261
|
+
<strct-dropdown-divider />
|
|
30262
|
+
@for (item of footerItems(); track item.id) {
|
|
30263
|
+
<ng-container *ngTemplateOutlet="row; context: { $implicit: item }" />
|
|
30264
|
+
}
|
|
30265
|
+
}
|
|
30266
|
+
</strct-dropdown>
|
|
30267
|
+
} @else {
|
|
30268
|
+
<!-- One product: a chip that says where you are, not a menu of one. -->
|
|
30269
|
+
<span class="strct-ps__chip strct-ps__chip--plain">
|
|
30270
|
+
<ng-container *ngTemplateOutlet="chipBody" />
|
|
30271
|
+
</span>
|
|
30272
|
+
}
|
|
30273
|
+
|
|
30274
|
+
<ng-template #chipBody>
|
|
30275
|
+
@if (currentItem(); as item) {
|
|
30276
|
+
@if (item.icon) {
|
|
30277
|
+
<strct-icon
|
|
30278
|
+
class="strct-ps__icon"
|
|
30279
|
+
[name]="item.icon"
|
|
30280
|
+
[size]="16"
|
|
30281
|
+
[style.color]="item.tone || null"
|
|
30282
|
+
/>
|
|
30283
|
+
}
|
|
30284
|
+
<span class="strct-ps__label">{{ chipText() }}</span>
|
|
30285
|
+
}
|
|
30286
|
+
</ng-template>
|
|
30287
|
+
`, isInline: true, styles: [".strct-ps{display:inline-flex;align-items:center;min-width:0}.strct-ps__chip{display:inline-flex;align-items:center;gap:7px;max-width:100%;padding:5px 8px;border:1px solid var(--b2);border-radius:var(--radius-sm);background:transparent;color:inherit;font:inherit;font-size:13px;font-weight:600;cursor:pointer}.strct-ps__chip:hover{background:#ffffff14}.strct-ps__chip--plain{cursor:default;border-color:transparent}.strct-ps__chip--plain:hover{background:transparent}.strct-ps__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.strct-ps__icon{flex:none}.strct-ps__chevron{flex:none;opacity:.7}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "browserUrl", "routerLink"] }, { 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", "variant"] }, { kind: "component", type: StrctDropdown, selector: "strct-dropdown", inputs: ["align", "popover", "popoverLabel", "focusable"] }, { kind: "directive", type: StrctDropdownTrigger, selector: "[strctDropdownTrigger]" }, { kind: "component", type: StrctDropdownItem, selector: "strct-dropdown-item, a[strctDropdownItem]", inputs: ["selected", "critical", "disabled", "hint"] }, { kind: "directive", type: StrctDropdownItemIcon, selector: "[strctDropdownItemIcon]", inputs: ["tone"] }, { kind: "directive", type: StrctDropdownItemLabel, selector: "[strctDropdownItemLabel]" }, { kind: "directive", type: StrctDropdownItemDescription, selector: "[strctDropdownItemDescription]" }, { kind: "component", type: StrctDropdownDivider, selector: "strct-dropdown-divider" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
30288
|
+
}
|
|
30289
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctProductSwitcher, decorators: [{
|
|
30290
|
+
type: Component,
|
|
30291
|
+
args: [{ selector: 'strct-product-switcher', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [
|
|
30292
|
+
NgTemplateOutlet,
|
|
30293
|
+
RouterLink,
|
|
30294
|
+
StrctIcon,
|
|
30295
|
+
StrctStatusDot,
|
|
30296
|
+
StrctDropdown,
|
|
30297
|
+
StrctDropdownTrigger,
|
|
30298
|
+
StrctDropdownItem,
|
|
30299
|
+
StrctDropdownItemIcon,
|
|
30300
|
+
StrctDropdownItemLabel,
|
|
30301
|
+
StrctDropdownItemDescription,
|
|
30302
|
+
StrctDropdownDivider,
|
|
30303
|
+
], template: `
|
|
30304
|
+
<!-- What a row holds, whichever element carries it. -->
|
|
30305
|
+
<ng-template #rowBody let-item>
|
|
30306
|
+
@if (item.icon) {
|
|
30307
|
+
<strct-icon strctDropdownItemIcon [tone]="item.tone ?? ''" [name]="item.icon" [size]="16" />
|
|
30308
|
+
}
|
|
30309
|
+
<span strctDropdownItemLabel>{{ item.name }}</span>
|
|
30310
|
+
@if (item.description) {
|
|
30311
|
+
<span strctDropdownItemDescription>
|
|
30312
|
+
@if (item.status) {
|
|
30313
|
+
<strct-status-dot [status]="item.status" />
|
|
30314
|
+
}
|
|
30315
|
+
{{ item.description }}
|
|
30316
|
+
</span>
|
|
30317
|
+
}
|
|
30318
|
+
</ng-template>
|
|
30319
|
+
|
|
30320
|
+
<!-- A row is a link where the product has an address, so it can be opened
|
|
30321
|
+
in a new tab — and a menuitemradio either way, checked on the one you
|
|
30322
|
+
are in. -->
|
|
30323
|
+
<ng-template #row let-item>
|
|
30324
|
+
@if (item.routerLink !== null && item.routerLink !== undefined && !item.disabled) {
|
|
30325
|
+
<a
|
|
30326
|
+
strctDropdownItem
|
|
30327
|
+
[routerLink]="item.routerLink"
|
|
30328
|
+
[selected]="item.id === current()"
|
|
30329
|
+
(click)="pick(item, $event)"
|
|
30330
|
+
>
|
|
30331
|
+
<ng-container *ngTemplateOutlet="rowBody; context: { $implicit: item }" />
|
|
30332
|
+
</a>
|
|
30333
|
+
} @else if (item.href && !item.disabled) {
|
|
30334
|
+
<a
|
|
30335
|
+
strctDropdownItem
|
|
30336
|
+
[href]="item.href"
|
|
30337
|
+
[selected]="item.id === current()"
|
|
30338
|
+
(click)="pick(item, $event)"
|
|
30339
|
+
>
|
|
30340
|
+
<ng-container *ngTemplateOutlet="rowBody; context: { $implicit: item }" />
|
|
30341
|
+
</a>
|
|
30342
|
+
} @else {
|
|
30343
|
+
<strct-dropdown-item
|
|
30344
|
+
[selected]="item.id === current()"
|
|
30345
|
+
[disabled]="!!item.disabled"
|
|
30346
|
+
(click)="pick(item)"
|
|
30347
|
+
>
|
|
30348
|
+
<ng-container *ngTemplateOutlet="rowBody; context: { $implicit: item }" />
|
|
30349
|
+
</strct-dropdown-item>
|
|
30350
|
+
}
|
|
30351
|
+
</ng-template>
|
|
30352
|
+
|
|
30353
|
+
@if (hasMenu()) {
|
|
30354
|
+
<strct-dropdown #menu align="start">
|
|
30355
|
+
<button
|
|
30356
|
+
type="button"
|
|
30357
|
+
class="strct-ps__chip"
|
|
30358
|
+
strctDropdownTrigger
|
|
30359
|
+
[attr.aria-label]="chipAriaLabel()"
|
|
30360
|
+
>
|
|
30361
|
+
<ng-container *ngTemplateOutlet="chipBody" />
|
|
30362
|
+
<strct-icon class="strct-ps__chevron" name="chevronDown" [size]="13" />
|
|
30363
|
+
</button>
|
|
30364
|
+
@for (item of items(); track item.id) {
|
|
30365
|
+
<ng-container *ngTemplateOutlet="row; context: { $implicit: item }" />
|
|
30366
|
+
}
|
|
30367
|
+
@if (footerItems().length) {
|
|
30368
|
+
<strct-dropdown-divider />
|
|
30369
|
+
@for (item of footerItems(); track item.id) {
|
|
30370
|
+
<ng-container *ngTemplateOutlet="row; context: { $implicit: item }" />
|
|
30371
|
+
}
|
|
30372
|
+
}
|
|
30373
|
+
</strct-dropdown>
|
|
30374
|
+
} @else {
|
|
30375
|
+
<!-- One product: a chip that says where you are, not a menu of one. -->
|
|
30376
|
+
<span class="strct-ps__chip strct-ps__chip--plain">
|
|
30377
|
+
<ng-container *ngTemplateOutlet="chipBody" />
|
|
30378
|
+
</span>
|
|
30379
|
+
}
|
|
30380
|
+
|
|
30381
|
+
<ng-template #chipBody>
|
|
30382
|
+
@if (currentItem(); as item) {
|
|
30383
|
+
@if (item.icon) {
|
|
30384
|
+
<strct-icon
|
|
30385
|
+
class="strct-ps__icon"
|
|
30386
|
+
[name]="item.icon"
|
|
30387
|
+
[size]="16"
|
|
30388
|
+
[style.color]="item.tone || null"
|
|
30389
|
+
/>
|
|
30390
|
+
}
|
|
30391
|
+
<span class="strct-ps__label">{{ chipText() }}</span>
|
|
30392
|
+
}
|
|
30393
|
+
</ng-template>
|
|
30394
|
+
`, host: { class: 'strct-ps' }, styles: [".strct-ps{display:inline-flex;align-items:center;min-width:0}.strct-ps__chip{display:inline-flex;align-items:center;gap:7px;max-width:100%;padding:5px 8px;border:1px solid var(--b2);border-radius:var(--radius-sm);background:transparent;color:inherit;font:inherit;font-size:13px;font-weight:600;cursor:pointer}.strct-ps__chip:hover{background:#ffffff14}.strct-ps__chip--plain{cursor:default;border-color:transparent}.strct-ps__chip--plain:hover{background:transparent}.strct-ps__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.strct-ps__icon{flex:none}.strct-ps__chevron{flex:none;opacity:.7}\n"] }]
|
|
30395
|
+
}], ctorParameters: () => [], propDecorators: { items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], footerItems: [{ type: i0.Input, args: [{ isSignal: true, alias: "footerItems", required: false }] }], current: [{ type: i0.Input, args: [{ isSignal: true, alias: "current", required: false }] }, { type: i0.Output, args: ["currentChange"] }], switchLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "switchLabel", required: false }] }], shortLabelWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "shortLabelWidth", required: false }] }], opened: [{ type: i0.Output, args: ["opened"] }], select: [{ type: i0.Output, args: ["select"] }], menu: [{ type: i0.ViewChild, args: ['menu', { isSignal: true }] }] } });
|
|
30396
|
+
|
|
30086
30397
|
/**
|
|
30087
30398
|
* Public API surface of the strct UI library.
|
|
30088
30399
|
*/
|
|
@@ -30092,5 +30403,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
|
|
|
30092
30403
|
* Generated bundle index. Do not edit.
|
|
30093
30404
|
*/
|
|
30094
30405
|
|
|
30095
|
-
export { FOCUSABLE_SELECTOR, STRCT_DP_DOW, STRCT_DP_DOW_FULL, STRCT_DP_MONTHS, STRCT_ICONS, STRCT_ICON_GROUPS, STRCT_ICON_NAMES, STRCT_MASKS, STRCT_MD_LIMITS, STRCT_NOTIFICATION_HISTORY_LIMIT, STRCT_PALETTES, STRCT_RAW_ICONS, STRCT_TIME_RANGE_PRESETS, STRCT_WIZARD_DEFAULTS, StrctAccordion, StrctAccordionPanel, StrctAlert, StrctAlertActions, StrctAnnouncer, StrctAvatar, StrctBadge, StrctBreadcrumb, StrctBreadcrumbItem, StrctButton, StrctButtonGroup, StrctBytesPipe, StrctCard, StrctCardBlock, StrctCardFooter, StrctCardHeader, StrctCardHeaderActions, StrctCardHeaderLeading, StrctCardHeaderMeta, StrctCardHeaderNote, StrctCascadeColumn, StrctCascadeHost, StrctCascadeSelect, StrctCellDef, StrctCellStatus, StrctChange, StrctChart, StrctChatAttachment, StrctChatComposer, StrctChatMessage, StrctChatMessageActions, StrctChatThread, StrctCheckbox, StrctChips, StrctCode, StrctCodeInline, StrctColorPicker, StrctCombobox, StrctCommandPalette, StrctConfirmOutlet, StrctConfirmService, StrctContextMenu, StrctContextMenuTrigger, StrctControlDescription, StrctCopy, StrctDatagrid, StrctDatagridActionBar, StrctDatagridActionBarCaption, StrctDatepicker, StrctDatetimePicker, StrctDesc, StrctDescriptionList, StrctDetailPaneActions, StrctDetailPaneMeta, StrctDetailPaneTitle, StrctDiff, StrctDivider, StrctDonut, StrctDrawer, StrctDrawerFooter, StrctDropdown, StrctDropdownDivider, StrctDropdownGroup, StrctDropdownItem, StrctDropdownItemAction, StrctDropdownItemDescription, StrctDropdownItemIcon, StrctDropdownItemLabel, StrctDropdownTrigger, StrctDurationPipe, StrctEmptyState, StrctField, StrctFieldGroup, StrctFieldHint, StrctFieldPrefix, StrctFieldSuffix, StrctFieldValue, StrctFile, StrctFilterBar, StrctFlow, StrctFlowNodeTemplate, StrctFooter, StrctGauge, StrctGroupHeaderDef, StrctHeader, StrctHeaderAction, StrctHeatmap, StrctHero, StrctHotkeysHelp, StrctHotkeysService, StrctIcon, StrctInlineEdit, StrctInput, StrctInputMask, StrctInputOtp, StrctKbd, StrctKnob, StrctLegend, StrctList, StrctListItem, StrctListItemDescription, StrctListItemLeading, StrctListItemMeta, StrctListItemTrailing, StrctLiveIndicator, StrctLogViewer, StrctLogin, StrctMarkdown, StrctMarkdownToken, StrctMediaFrame, StrctMenuPanel, StrctMenuService, StrctMenubar, StrctMetricTile, StrctModal, StrctModalContent, StrctNav, StrctNavItem, StrctNotificationCenter, StrctNumber, StrctOverlay, StrctPageHeader, StrctPageHeaderActions, StrctPageHeaderCrumbs, StrctPageHeaderTitleMeta, StrctPagination, StrctPassword, StrctPopover, StrctPopoverTrigger, StrctProgress, StrctQr, StrctRadio, StrctRadioGroup, StrctRail, StrctRange, StrctRatePipe, StrctRating, StrctReorder, StrctReorderGroup, StrctReorderHandle, StrctReorderItem, StrctResizeHandle, StrctRowDetailDef, StrctSearchbox, StrctSectionHeader, StrctSectionHeaderActions, StrctSectionHeaderMeta, StrctSectionMenu, StrctSegmented, StrctSelect, StrctShell, StrctShellService, StrctSiPipe, StrctSignpost, StrctSignpostTrigger, StrctSkeleton, StrctSparkline, StrctSpeedDial, StrctSpinner, StrctSplitButton, StrctSplitter, StrctStack, StrctStackItem, StrctStatusDot, StrctStep, StrctStepAction, StrctSteps, 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, StrctWindow, StrctWindowDock, StrctWindowDockItem, StrctWindowService, StrctWizard, StrctWizardAside, __qrInternals, focusFirstIn, keepTabInside, lockBodyScroll, parseAnsi, parseInlines, provideStrctWizardDefaults, registerStrctIcon, restoreFocus, saveFocusedElement, strctCheckHostDisplay, strctCheckHostInputs, strctClassifyHref, strctComputeDiff, strctDpPad, strctFormatBytes, strctFormatDuration, strctFormatRate, strctFormatSi, strctParseMarkdown, strctQrMatrix, strctValidationIcon, strctValidationTone, unlockBodyScroll };
|
|
30406
|
+
export { FOCUSABLE_SELECTOR, STRCT_DP_DOW, STRCT_DP_DOW_FULL, STRCT_DP_MONTHS, STRCT_ICONS, STRCT_ICON_GROUPS, STRCT_ICON_NAMES, STRCT_MASKS, STRCT_MD_LIMITS, STRCT_NOTIFICATION_HISTORY_LIMIT, STRCT_PALETTES, STRCT_RAW_ICONS, STRCT_TIME_RANGE_PRESETS, STRCT_WIZARD_DEFAULTS, StrctAccordion, StrctAccordionPanel, StrctAlert, StrctAlertActions, StrctAnnouncer, StrctAvatar, StrctBadge, StrctBreadcrumb, StrctBreadcrumbItem, StrctButton, StrctButtonGroup, StrctBytesPipe, StrctCard, StrctCardBlock, StrctCardFooter, StrctCardHeader, StrctCardHeaderActions, StrctCardHeaderLeading, StrctCardHeaderMeta, StrctCardHeaderNote, StrctCascadeColumn, StrctCascadeHost, StrctCascadeSelect, StrctCellDef, StrctCellStatus, StrctChange, StrctChart, StrctChatAttachment, StrctChatComposer, StrctChatMessage, StrctChatMessageActions, StrctChatThread, StrctCheckbox, StrctChips, StrctCode, StrctCodeInline, StrctColorPicker, StrctCombobox, StrctCommandPalette, StrctConfirmOutlet, StrctConfirmService, StrctContextMenu, StrctContextMenuTrigger, StrctControlDescription, StrctCopy, StrctDatagrid, StrctDatagridActionBar, StrctDatagridActionBarCaption, StrctDatepicker, StrctDatetimePicker, StrctDesc, StrctDescriptionList, StrctDetailPaneActions, StrctDetailPaneMeta, StrctDetailPaneTitle, StrctDiff, StrctDivider, StrctDonut, StrctDrawer, StrctDrawerFooter, StrctDropdown, StrctDropdownDivider, StrctDropdownGroup, StrctDropdownItem, StrctDropdownItemAction, StrctDropdownItemDescription, StrctDropdownItemIcon, StrctDropdownItemLabel, StrctDropdownTrigger, StrctDurationPipe, StrctEmptyState, StrctField, StrctFieldGroup, StrctFieldHint, StrctFieldPrefix, StrctFieldSuffix, StrctFieldValue, StrctFile, StrctFilterBar, StrctFlow, StrctFlowNodeTemplate, StrctFooter, StrctGauge, StrctGroupHeaderDef, StrctHeader, StrctHeaderAction, StrctHeatmap, StrctHero, StrctHotkeysHelp, StrctHotkeysService, StrctIcon, StrctInlineEdit, StrctInput, StrctInputMask, StrctInputOtp, StrctKbd, StrctKnob, StrctLegend, StrctList, StrctListItem, StrctListItemDescription, StrctListItemLeading, StrctListItemMeta, StrctListItemTrailing, StrctLiveIndicator, StrctLogViewer, StrctLogin, StrctMarkdown, StrctMarkdownToken, StrctMediaFrame, StrctMenuPanel, StrctMenuService, StrctMenubar, StrctMetricTile, StrctModal, StrctModalContent, StrctNav, StrctNavItem, StrctNotificationCenter, StrctNumber, StrctOverlay, StrctPageHeader, StrctPageHeaderActions, StrctPageHeaderCrumbs, StrctPageHeaderTitleMeta, StrctPagination, StrctPassword, StrctPopover, StrctPopoverTrigger, StrctProductSwitcher, StrctProgress, StrctQr, StrctRadio, StrctRadioGroup, StrctRail, StrctRange, StrctRatePipe, StrctRating, StrctReorder, StrctReorderGroup, StrctReorderHandle, StrctReorderItem, StrctResizeHandle, StrctRowDetailDef, StrctSearchbox, StrctSectionHeader, StrctSectionHeaderActions, StrctSectionHeaderMeta, StrctSectionMenu, StrctSegmented, StrctSelect, StrctShell, StrctShellService, StrctSiPipe, StrctSignpost, StrctSignpostTrigger, StrctSkeleton, StrctSparkline, StrctSpeedDial, StrctSpinner, StrctSplitButton, StrctSplitter, StrctStack, StrctStackItem, StrctStatusDot, StrctStep, StrctStepAction, StrctSteps, 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, StrctWindow, StrctWindowDock, StrctWindowDockItem, StrctWindowService, StrctWizard, StrctWizardAside, __qrInternals, focusFirstIn, keepTabInside, lockBodyScroll, parseAnsi, parseInlines, provideStrctWizardDefaults, registerStrctIcon, restoreFocus, saveFocusedElement, strctCheckHostDisplay, strctCheckHostInputs, strctClassifyHref, strctComputeDiff, strctDpPad, strctFormatBytes, strctFormatDuration, strctFormatRate, strctFormatSi, strctParseMarkdown, strctQrMatrix, strctValidationIcon, strctValidationTone, unlockBodyScroll };
|
|
30096
30407
|
//# sourceMappingURL=akcelik-strct.mjs.map
|