@akcelik/strct 1.19.0 → 1.20.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.
|
@@ -7469,6 +7469,331 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImpo
|
|
|
7469
7469
|
args: ['document:click', ['$event']]
|
|
7470
7470
|
}] } });
|
|
7471
7471
|
|
|
7472
|
+
let selectCounter = 0;
|
|
7473
|
+
/**
|
|
7474
|
+
* Select-only combobox (APG pattern): a real button trigger wearing the shared
|
|
7475
|
+
* `.strct-control` look, opening a token-styled listbox — so the option list
|
|
7476
|
+
* matches the theme instead of the OS popup a native `<select>` shows.
|
|
7477
|
+
* CVA-compatible; options are non-filterable (reach for `strct-combobox` when
|
|
7478
|
+
* the list needs typing to narrow).
|
|
7479
|
+
*
|
|
7480
|
+
* <strct-field label="Region">
|
|
7481
|
+
* <strct-select [options]="regions" [(ngModel)]="region" placeholder="Pick a region" />
|
|
7482
|
+
* </strct-field>
|
|
7483
|
+
*
|
|
7484
|
+
* Keyboard follows the native select: ArrowDown/Up and Enter/Space open,
|
|
7485
|
+
* arrows move (skipping disabled options), Home/End jump, typing jumps to the
|
|
7486
|
+
* matching label (typeahead), Enter/Space commit, Escape/Tab close without
|
|
7487
|
+
* committing. The selected option carries a leading ✓ and gets the highlight
|
|
7488
|
+
* when reopening — the same select ergonomics as `strct-dropdown-item
|
|
7489
|
+
* [selected]`.
|
|
7490
|
+
*/
|
|
7491
|
+
class StrctSelect {
|
|
7492
|
+
host = inject(ElementRef);
|
|
7493
|
+
listId = `strct-sel-${++selectCounter}`;
|
|
7494
|
+
/** Available options (set `disabled: true` on an option to gray it out). */
|
|
7495
|
+
options = input([], ...(ngDevMode ? [{ debugName: "options" }] : /* istanbul ignore next */ []));
|
|
7496
|
+
/** Muted text shown while no value is selected (localizable). */
|
|
7497
|
+
placeholder = input('Select…', ...(ngDevMode ? [{ debugName: "placeholder" }] : /* istanbul ignore next */ []));
|
|
7498
|
+
/** Accessible name of the listbox (localizable). */
|
|
7499
|
+
listLabel = input('', ...(ngDevMode ? [{ debugName: "listLabel" }] : /* istanbul ignore next */ []));
|
|
7500
|
+
/** Text shown when `options` is empty (localizable). */
|
|
7501
|
+
emptyText = input('No options', ...(ngDevMode ? [{ debugName: "emptyText" }] : /* istanbul ignore next */ []));
|
|
7502
|
+
/** Static disable flag (forms also drive it via setDisabledState). */
|
|
7503
|
+
disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
7504
|
+
value = signal(null, ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
|
|
7505
|
+
open = signal(false, ...(ngDevMode ? [{ debugName: "open" }] : /* istanbul ignore next */ []));
|
|
7506
|
+
activeIndex = signal(0, ...(ngDevMode ? [{ debugName: "activeIndex" }] : /* istanbul ignore next */ []));
|
|
7507
|
+
isDisabled = signal(false, ...(ngDevMode ? [{ debugName: "isDisabled" }] : /* istanbul ignore next */ []));
|
|
7508
|
+
selectedOption = computed(() => this.options().find((o) => o.value === this.value()), ...(ngDevMode ? [{ debugName: "selectedOption" }] : /* istanbul ignore next */ []));
|
|
7509
|
+
/** Typeahead buffer — clears half a second after the last keystroke. */
|
|
7510
|
+
typed = '';
|
|
7511
|
+
typedTimer = null;
|
|
7512
|
+
onChange = () => { };
|
|
7513
|
+
onTouched = () => { };
|
|
7514
|
+
toggle() {
|
|
7515
|
+
if (this.open())
|
|
7516
|
+
this.close();
|
|
7517
|
+
else
|
|
7518
|
+
this.openList();
|
|
7519
|
+
}
|
|
7520
|
+
openList() {
|
|
7521
|
+
if (this.isDisabled() || this.disabled())
|
|
7522
|
+
return;
|
|
7523
|
+
this.open.set(true);
|
|
7524
|
+
this.activeIndex.set(this.initialIndex());
|
|
7525
|
+
this.scrollActiveIntoView();
|
|
7526
|
+
}
|
|
7527
|
+
close() {
|
|
7528
|
+
this.open.set(false);
|
|
7529
|
+
}
|
|
7530
|
+
onKeydown(event) {
|
|
7531
|
+
const key = event.key;
|
|
7532
|
+
const opts = this.options();
|
|
7533
|
+
if (key === 'ArrowDown' || key === 'ArrowUp') {
|
|
7534
|
+
event.preventDefault();
|
|
7535
|
+
if (!this.open())
|
|
7536
|
+
return this.openList();
|
|
7537
|
+
this.move(key === 'ArrowDown' ? 1 : -1);
|
|
7538
|
+
}
|
|
7539
|
+
else if (key === 'Home' || key === 'End') {
|
|
7540
|
+
if (!this.open())
|
|
7541
|
+
return;
|
|
7542
|
+
event.preventDefault();
|
|
7543
|
+
this.moveTo(key === 'Home' ? 0 : opts.length - 1, key === 'Home' ? 1 : -1);
|
|
7544
|
+
}
|
|
7545
|
+
else if (key === 'Enter' || key === ' ') {
|
|
7546
|
+
event.preventDefault();
|
|
7547
|
+
if (!this.open())
|
|
7548
|
+
return this.openList();
|
|
7549
|
+
const opt = opts[this.activeIndex()];
|
|
7550
|
+
if (opt && !opt.disabled)
|
|
7551
|
+
this.commit(opt);
|
|
7552
|
+
}
|
|
7553
|
+
else if (key === 'Escape') {
|
|
7554
|
+
if (this.open()) {
|
|
7555
|
+
event.preventDefault();
|
|
7556
|
+
this.close();
|
|
7557
|
+
}
|
|
7558
|
+
}
|
|
7559
|
+
else if (key === 'Tab') {
|
|
7560
|
+
this.close();
|
|
7561
|
+
}
|
|
7562
|
+
else if (key.length === 1 && !event.ctrlKey && !event.metaKey && !event.altKey) {
|
|
7563
|
+
this.typeahead(key);
|
|
7564
|
+
}
|
|
7565
|
+
}
|
|
7566
|
+
/**
|
|
7567
|
+
* Native-select typeahead: letters accumulate into a prefix that jumps to
|
|
7568
|
+
* the matching label; repeating one letter cycles its matches instead.
|
|
7569
|
+
*/
|
|
7570
|
+
typeahead(char) {
|
|
7571
|
+
const lower = char.toLowerCase();
|
|
7572
|
+
if (this.typedTimer)
|
|
7573
|
+
clearTimeout(this.typedTimer);
|
|
7574
|
+
this.typedTimer = setTimeout(() => (this.typed = ''), 500);
|
|
7575
|
+
const repeatCycle = this.typed.length > 0 && [...this.typed].every((c) => c === lower);
|
|
7576
|
+
this.typed += lower;
|
|
7577
|
+
const prefix = repeatCycle ? lower : this.typed;
|
|
7578
|
+
const opts = this.options();
|
|
7579
|
+
if (!opts.length)
|
|
7580
|
+
return;
|
|
7581
|
+
const wasOpen = this.open();
|
|
7582
|
+
if (!wasOpen)
|
|
7583
|
+
this.openList();
|
|
7584
|
+
const from = this.activeIndex();
|
|
7585
|
+
for (let step = repeatCycle || !wasOpen ? 1 : 0; step <= opts.length; step++) {
|
|
7586
|
+
const i = (from + step) % opts.length;
|
|
7587
|
+
const opt = opts[i];
|
|
7588
|
+
if (!opt.disabled && opt.label.toLowerCase().startsWith(prefix)) {
|
|
7589
|
+
this.activeIndex.set(i);
|
|
7590
|
+
this.scrollActiveIntoView();
|
|
7591
|
+
return;
|
|
7592
|
+
}
|
|
7593
|
+
}
|
|
7594
|
+
}
|
|
7595
|
+
move(delta) {
|
|
7596
|
+
const opts = this.options();
|
|
7597
|
+
if (!opts.length)
|
|
7598
|
+
return;
|
|
7599
|
+
let i = this.activeIndex();
|
|
7600
|
+
let guard = opts.length;
|
|
7601
|
+
do {
|
|
7602
|
+
i = (i + delta + opts.length) % opts.length;
|
|
7603
|
+
} while (opts[i].disabled && --guard > 0);
|
|
7604
|
+
this.activeIndex.set(i);
|
|
7605
|
+
this.scrollActiveIntoView();
|
|
7606
|
+
}
|
|
7607
|
+
/** Jump to `index`, walking `dir` past disabled options. */
|
|
7608
|
+
moveTo(index, dir) {
|
|
7609
|
+
const opts = this.options();
|
|
7610
|
+
let i = index;
|
|
7611
|
+
for (let n = 0; n < opts.length && opts[i]?.disabled; n++) {
|
|
7612
|
+
i = (i + dir + opts.length) % opts.length;
|
|
7613
|
+
}
|
|
7614
|
+
if (opts[i] && !opts[i].disabled) {
|
|
7615
|
+
this.activeIndex.set(i);
|
|
7616
|
+
this.scrollActiveIntoView();
|
|
7617
|
+
}
|
|
7618
|
+
}
|
|
7619
|
+
pick(opt, event) {
|
|
7620
|
+
event.preventDefault(); // keep focus on the trigger button
|
|
7621
|
+
if (opt.disabled)
|
|
7622
|
+
return;
|
|
7623
|
+
this.commit(opt);
|
|
7624
|
+
}
|
|
7625
|
+
commit(opt) {
|
|
7626
|
+
this.value.set(opt.value);
|
|
7627
|
+
this.close();
|
|
7628
|
+
this.onChange(opt.value);
|
|
7629
|
+
this.onTouched();
|
|
7630
|
+
}
|
|
7631
|
+
onBlur() {
|
|
7632
|
+
// Any mousedown inside the list preventDefaults, so focus never leaves
|
|
7633
|
+
// the trigger mid-interaction; outside clicks close via onDocClick and
|
|
7634
|
+
// Tab closes in onKeydown — blur only marks the control touched.
|
|
7635
|
+
this.onTouched();
|
|
7636
|
+
}
|
|
7637
|
+
/** Highlight starts on the selected option — or the first enabled one. */
|
|
7638
|
+
initialIndex() {
|
|
7639
|
+
const opts = this.options();
|
|
7640
|
+
const sel = opts.findIndex((o) => o.value === this.value() && !o.disabled);
|
|
7641
|
+
if (sel >= 0)
|
|
7642
|
+
return sel;
|
|
7643
|
+
const first = opts.findIndex((o) => !o.disabled);
|
|
7644
|
+
return first < 0 ? 0 : first;
|
|
7645
|
+
}
|
|
7646
|
+
scrollActiveIntoView() {
|
|
7647
|
+
setTimeout(() => {
|
|
7648
|
+
document
|
|
7649
|
+
.getElementById(`${this.listId}-${this.activeIndex()}`)
|
|
7650
|
+
?.scrollIntoView({ block: 'nearest' });
|
|
7651
|
+
});
|
|
7652
|
+
}
|
|
7653
|
+
onDocClick(event) {
|
|
7654
|
+
if (this.open() && !this.host.nativeElement.contains(event.target)) {
|
|
7655
|
+
this.close();
|
|
7656
|
+
}
|
|
7657
|
+
}
|
|
7658
|
+
writeValue(value) {
|
|
7659
|
+
this.value.set(value);
|
|
7660
|
+
}
|
|
7661
|
+
registerOnChange(fn) {
|
|
7662
|
+
this.onChange = fn;
|
|
7663
|
+
}
|
|
7664
|
+
registerOnTouched(fn) {
|
|
7665
|
+
this.onTouched = fn;
|
|
7666
|
+
}
|
|
7667
|
+
setDisabledState(isDisabled) {
|
|
7668
|
+
this.isDisabled.set(isDisabled);
|
|
7669
|
+
}
|
|
7670
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: StrctSelect, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7671
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.16", type: StrctSelect, isStandalone: true, selector: "strct-select", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, listLabel: { classPropertyName: "listLabel", publicName: "listLabel", isSignal: true, isRequired: false, transformFunction: null }, emptyText: { classPropertyName: "emptyText", publicName: "emptyText", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "document:click": "onDocClick($event)" }, classAttribute: "strct-sel" }, providers: [
|
|
7672
|
+
{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => StrctSelect), multi: true },
|
|
7673
|
+
], ngImport: i0, template: `
|
|
7674
|
+
<button
|
|
7675
|
+
#btn
|
|
7676
|
+
type="button"
|
|
7677
|
+
strctField
|
|
7678
|
+
class="strct-control strct-sel__btn"
|
|
7679
|
+
role="combobox"
|
|
7680
|
+
aria-haspopup="listbox"
|
|
7681
|
+
[attr.aria-expanded]="open()"
|
|
7682
|
+
[attr.aria-controls]="open() ? listId : null"
|
|
7683
|
+
[attr.aria-activedescendant]="open() ? listId + '-' + activeIndex() : null"
|
|
7684
|
+
[disabled]="isDisabled() || disabled()"
|
|
7685
|
+
(click)="toggle()"
|
|
7686
|
+
(keydown)="onKeydown($event)"
|
|
7687
|
+
(blur)="onBlur()"
|
|
7688
|
+
>
|
|
7689
|
+
<span class="strct-sel__value" [class.strct-sel__value--placeholder]="!selectedOption()">
|
|
7690
|
+
{{ selectedOption()?.label ?? placeholder() }}
|
|
7691
|
+
</span>
|
|
7692
|
+
<strct-icon class="strct-sel__caret" strictName="chevronDown" [size]="14" />
|
|
7693
|
+
</button>
|
|
7694
|
+
@if (open()) {
|
|
7695
|
+
<div
|
|
7696
|
+
class="strct-sel__list"
|
|
7697
|
+
role="listbox"
|
|
7698
|
+
[id]="listId"
|
|
7699
|
+
[attr.aria-label]="listLabel() || null"
|
|
7700
|
+
[strctOverlay]="btn"
|
|
7701
|
+
strctOverlayPlacement="bottom-start"
|
|
7702
|
+
[strctOverlayMatchWidth]="true"
|
|
7703
|
+
(mousedown)="$event.preventDefault()"
|
|
7704
|
+
>
|
|
7705
|
+
@for (opt of options(); track opt.value; let i = $index) {
|
|
7706
|
+
<div
|
|
7707
|
+
class="strct-sel__opt"
|
|
7708
|
+
[id]="listId + '-' + i"
|
|
7709
|
+
[class.strct-sel__opt--highlight]="i === activeIndex()"
|
|
7710
|
+
[class.strct-sel__opt--selected]="opt.value === value()"
|
|
7711
|
+
role="option"
|
|
7712
|
+
[attr.aria-selected]="opt.value === value()"
|
|
7713
|
+
[attr.aria-disabled]="opt.disabled || null"
|
|
7714
|
+
(mousedown)="pick(opt, $event)"
|
|
7715
|
+
(mousemove)="!opt.disabled && activeIndex.set(i)"
|
|
7716
|
+
>
|
|
7717
|
+
<span class="strct-sel__check" aria-hidden="true">
|
|
7718
|
+
@if (opt.value === value()) {
|
|
7719
|
+
<strct-icon strictName="check" [size]="12" [strokeWidth]="1.8" />
|
|
7720
|
+
}
|
|
7721
|
+
</span>
|
|
7722
|
+
{{ opt.label }}
|
|
7723
|
+
</div>
|
|
7724
|
+
} @empty {
|
|
7725
|
+
<div class="strct-sel__empty">{{ emptyText() }}</div>
|
|
7726
|
+
}
|
|
7727
|
+
</div>
|
|
7728
|
+
}
|
|
7729
|
+
`, isInline: true, styles: [".strct-sel{position:relative;display:block;width:100%}.strct-sel__btn{display:flex;align-items:center;gap:8px;text-align:start;cursor:pointer}.strct-sel__btn:disabled{cursor:not-allowed}.strct-sel__value{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.strct-sel__value--placeholder{color:var(--t3)}.strct-sel__caret{flex:none;color:var(--t3)}.strct-sel__list{z-index:200;max-height:240px;overflow-y:auto;padding:4px;background:var(--bg-1);border:1px solid var(--b2);border-radius:7px;box-shadow:var(--shh)}.strct-sel__opt{display:flex;align-items:center;gap:8px;padding:9px 10px;border-radius:5px;cursor:pointer;font-size:13px;color:var(--t1)}.strct-sel__opt--highlight{background:var(--bg-3)}.strct-sel__opt--selected{font-weight:600;background:var(--acc-s)}.strct-sel__opt--selected.strct-sel__opt--highlight{background:var(--acc-m)}.strct-sel__opt[aria-disabled=true]{color:var(--t4);cursor:default}.strct-sel__check{display:inline-flex;width:14px;flex:none;color:var(--acc)}.strct-sel__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"] }, { kind: "directive", type: StrctOverlay, selector: "[strctOverlay]", inputs: ["strctOverlay", "strctOverlayPlacement", "strctOverlayMatchWidth", "strctOverlayGap"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
7730
|
+
}
|
|
7731
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: StrctSelect, decorators: [{
|
|
7732
|
+
type: Component,
|
|
7733
|
+
args: [{ selector: 'strct-select', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [StrctIcon, StrctOverlay], providers: [
|
|
7734
|
+
{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => StrctSelect), multi: true },
|
|
7735
|
+
], template: `
|
|
7736
|
+
<button
|
|
7737
|
+
#btn
|
|
7738
|
+
type="button"
|
|
7739
|
+
strctField
|
|
7740
|
+
class="strct-control strct-sel__btn"
|
|
7741
|
+
role="combobox"
|
|
7742
|
+
aria-haspopup="listbox"
|
|
7743
|
+
[attr.aria-expanded]="open()"
|
|
7744
|
+
[attr.aria-controls]="open() ? listId : null"
|
|
7745
|
+
[attr.aria-activedescendant]="open() ? listId + '-' + activeIndex() : null"
|
|
7746
|
+
[disabled]="isDisabled() || disabled()"
|
|
7747
|
+
(click)="toggle()"
|
|
7748
|
+
(keydown)="onKeydown($event)"
|
|
7749
|
+
(blur)="onBlur()"
|
|
7750
|
+
>
|
|
7751
|
+
<span class="strct-sel__value" [class.strct-sel__value--placeholder]="!selectedOption()">
|
|
7752
|
+
{{ selectedOption()?.label ?? placeholder() }}
|
|
7753
|
+
</span>
|
|
7754
|
+
<strct-icon class="strct-sel__caret" strictName="chevronDown" [size]="14" />
|
|
7755
|
+
</button>
|
|
7756
|
+
@if (open()) {
|
|
7757
|
+
<div
|
|
7758
|
+
class="strct-sel__list"
|
|
7759
|
+
role="listbox"
|
|
7760
|
+
[id]="listId"
|
|
7761
|
+
[attr.aria-label]="listLabel() || null"
|
|
7762
|
+
[strctOverlay]="btn"
|
|
7763
|
+
strctOverlayPlacement="bottom-start"
|
|
7764
|
+
[strctOverlayMatchWidth]="true"
|
|
7765
|
+
(mousedown)="$event.preventDefault()"
|
|
7766
|
+
>
|
|
7767
|
+
@for (opt of options(); track opt.value; let i = $index) {
|
|
7768
|
+
<div
|
|
7769
|
+
class="strct-sel__opt"
|
|
7770
|
+
[id]="listId + '-' + i"
|
|
7771
|
+
[class.strct-sel__opt--highlight]="i === activeIndex()"
|
|
7772
|
+
[class.strct-sel__opt--selected]="opt.value === value()"
|
|
7773
|
+
role="option"
|
|
7774
|
+
[attr.aria-selected]="opt.value === value()"
|
|
7775
|
+
[attr.aria-disabled]="opt.disabled || null"
|
|
7776
|
+
(mousedown)="pick(opt, $event)"
|
|
7777
|
+
(mousemove)="!opt.disabled && activeIndex.set(i)"
|
|
7778
|
+
>
|
|
7779
|
+
<span class="strct-sel__check" aria-hidden="true">
|
|
7780
|
+
@if (opt.value === value()) {
|
|
7781
|
+
<strct-icon strictName="check" [size]="12" [strokeWidth]="1.8" />
|
|
7782
|
+
}
|
|
7783
|
+
</span>
|
|
7784
|
+
{{ opt.label }}
|
|
7785
|
+
</div>
|
|
7786
|
+
} @empty {
|
|
7787
|
+
<div class="strct-sel__empty">{{ emptyText() }}</div>
|
|
7788
|
+
}
|
|
7789
|
+
</div>
|
|
7790
|
+
}
|
|
7791
|
+
`, host: { class: 'strct-sel' }, styles: [".strct-sel{position:relative;display:block;width:100%}.strct-sel__btn{display:flex;align-items:center;gap:8px;text-align:start;cursor:pointer}.strct-sel__btn:disabled{cursor:not-allowed}.strct-sel__value{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.strct-sel__value--placeholder{color:var(--t3)}.strct-sel__caret{flex:none;color:var(--t3)}.strct-sel__list{z-index:200;max-height:240px;overflow-y:auto;padding:4px;background:var(--bg-1);border:1px solid var(--b2);border-radius:7px;box-shadow:var(--shh)}.strct-sel__opt{display:flex;align-items:center;gap:8px;padding:9px 10px;border-radius:5px;cursor:pointer;font-size:13px;color:var(--t1)}.strct-sel__opt--highlight{background:var(--bg-3)}.strct-sel__opt--selected{font-weight:600;background:var(--acc-s)}.strct-sel__opt--selected.strct-sel__opt--highlight{background:var(--acc-m)}.strct-sel__opt[aria-disabled=true]{color:var(--t4);cursor:default}.strct-sel__check{display:inline-flex;width:14px;flex:none;color:var(--acc)}.strct-sel__empty{padding:9px 10px;font-size:13px;color:var(--t3)}\n"] }]
|
|
7792
|
+
}], propDecorators: { options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], listLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "listLabel", required: false }] }], emptyText: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyText", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], onDocClick: [{
|
|
7793
|
+
type: HostListener,
|
|
7794
|
+
args: ['document:click', ['$event']]
|
|
7795
|
+
}] } });
|
|
7796
|
+
|
|
7472
7797
|
const MONTHS = [
|
|
7473
7798
|
'January',
|
|
7474
7799
|
'February',
|
|
@@ -15992,5 +16317,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImpo
|
|
|
15992
16317
|
* Generated bundle index. Do not edit.
|
|
15993
16318
|
*/
|
|
15994
16319
|
|
|
15995
|
-
export { STRCT_ICONS, STRCT_ICON_GROUPS, STRCT_ICON_NAMES, STRCT_MASKS, 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, StrctCascadeHost, StrctCascadeNode, StrctCascadeSelect, StrctCellDef, StrctCellStatus, StrctChart, StrctCheckbox, StrctChips, StrctCode, StrctColorPicker, StrctCombobox, StrctCommandPalette, StrctContextMenu, StrctContextMenuTrigger, StrctCopy, StrctDatagrid, StrctDatagridActionBar, StrctDatepicker, StrctDesc, StrctDescriptionList, StrctDiff, StrctDivider, StrctDonut, StrctDrawer, StrctDrawerFooter, StrctDropdown, StrctDropdownDivider, StrctDropdownItem, StrctDropdownTrigger, StrctDurationPipe, StrctEmptyState, StrctField, StrctFile, StrctFilterBar, StrctFlow, StrctFooter, StrctGauge, StrctHeader, StrctHero, StrctHotkeysHelp, StrctHotkeysService, StrctIcon, StrctInput, StrctInputMask, StrctInputOtp, StrctKbd, StrctKnob, StrctLogViewer, StrctLogin, StrctMenuPanel, StrctMenuService, StrctMenubar, StrctMetricTile, StrctModal, StrctNav, StrctNavItem, StrctOverlay, StrctPageHeader, StrctPageHeaderActions, StrctPageHeaderCrumbs, StrctPagination, StrctPassword, StrctProgress, StrctRadio, StrctRadioGroup, StrctRail, StrctRange, StrctRatePipe, StrctRating, StrctReorder, StrctReorderItem, StrctRowDetailDef, StrctSearchbox, StrctSectionMenu, StrctSegmented, StrctShell, StrctShellService, StrctSiPipe, StrctSignpost, StrctSkeleton, StrctSparkline, StrctSpeedDial, StrctSpinner, StrctSplitButton, StrctSplitter, StrctStack, StrctStackItem, StrctStep, StrctSubmenu, StrctTab, StrctTable, StrctTabs, StrctTag, StrctThemeService, StrctThemeSwitcher, StrctTimeRangePicker, StrctTimeline, StrctTimelineItem, StrctToastOutlet, StrctToastService, StrctToggle, StrctTooltip, StrctTour, StrctTransfer, StrctTree, StrctTreeNode, StrctVerticalNav, StrctWatermark, StrctWizard, StrctWizardAside, parseAnsi, provideStrctWizardDefaults, registerStrctIcon, strctComputeDiff, strctFormatBytes, strctFormatDuration, strctFormatRate, strctFormatSi, strctValidationIcon, strctValidationTone };
|
|
16320
|
+
export { STRCT_ICONS, STRCT_ICON_GROUPS, STRCT_ICON_NAMES, STRCT_MASKS, 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, StrctCascadeHost, StrctCascadeNode, StrctCascadeSelect, StrctCellDef, StrctCellStatus, StrctChart, StrctCheckbox, StrctChips, StrctCode, StrctColorPicker, StrctCombobox, StrctCommandPalette, StrctContextMenu, StrctContextMenuTrigger, StrctCopy, StrctDatagrid, StrctDatagridActionBar, StrctDatepicker, StrctDesc, StrctDescriptionList, StrctDiff, StrctDivider, StrctDonut, StrctDrawer, StrctDrawerFooter, StrctDropdown, StrctDropdownDivider, StrctDropdownItem, StrctDropdownTrigger, StrctDurationPipe, StrctEmptyState, StrctField, StrctFile, StrctFilterBar, StrctFlow, StrctFooter, StrctGauge, StrctHeader, StrctHero, StrctHotkeysHelp, StrctHotkeysService, StrctIcon, StrctInput, StrctInputMask, StrctInputOtp, StrctKbd, StrctKnob, StrctLogViewer, StrctLogin, StrctMenuPanel, StrctMenuService, StrctMenubar, StrctMetricTile, StrctModal, StrctNav, StrctNavItem, StrctOverlay, StrctPageHeader, StrctPageHeaderActions, StrctPageHeaderCrumbs, StrctPagination, StrctPassword, StrctProgress, StrctRadio, StrctRadioGroup, StrctRail, StrctRange, StrctRatePipe, StrctRating, StrctReorder, StrctReorderItem, StrctRowDetailDef, StrctSearchbox, StrctSectionMenu, StrctSegmented, StrctSelect, StrctShell, StrctShellService, StrctSiPipe, StrctSignpost, StrctSkeleton, StrctSparkline, StrctSpeedDial, StrctSpinner, StrctSplitButton, StrctSplitter, StrctStack, StrctStackItem, StrctStep, StrctSubmenu, StrctTab, StrctTable, StrctTabs, StrctTag, StrctThemeService, StrctThemeSwitcher, StrctTimeRangePicker, StrctTimeline, StrctTimelineItem, StrctToastOutlet, StrctToastService, StrctToggle, StrctTooltip, StrctTour, StrctTransfer, StrctTree, StrctTreeNode, StrctVerticalNav, StrctWatermark, StrctWizard, StrctWizardAside, parseAnsi, provideStrctWizardDefaults, registerStrctIcon, strctComputeDiff, strctFormatBytes, strctFormatDuration, strctFormatRate, strctFormatSi, strctValidationIcon, strctValidationTone };
|
|
15996
16321
|
//# sourceMappingURL=akcelik-strct.mjs.map
|