@ojiepermana/angular-component 22.0.44 → 22.0.46
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/ojiepermana-angular-component-accordion.mjs +9 -11
- package/fesm2022/ojiepermana-angular-component-alert-dialog.mjs +100 -32
- package/fesm2022/ojiepermana-angular-component-alert.mjs +5 -9
- package/fesm2022/ojiepermana-angular-component-aspect-ratio.mjs +2 -3
- package/fesm2022/ojiepermana-angular-component-avatar.mjs +7 -13
- package/fesm2022/ojiepermana-angular-component-badge.mjs +2 -3
- package/fesm2022/ojiepermana-angular-component-breadcrumb.mjs +16 -19
- package/fesm2022/ojiepermana-angular-component-button-group.mjs +4 -7
- package/fesm2022/ojiepermana-angular-component-button.mjs +2 -3
- package/fesm2022/ojiepermana-angular-component-calendar.mjs +7 -5
- package/fesm2022/ojiepermana-angular-component-card.mjs +8 -15
- package/fesm2022/ojiepermana-angular-component-carousel.mjs +15 -18
- package/fesm2022/ojiepermana-angular-component-checkbox.mjs +40 -11
- package/fesm2022/ojiepermana-angular-component-collapsible.mjs +8 -6
- package/fesm2022/ojiepermana-angular-component-combobox.mjs +36 -16
- package/fesm2022/ojiepermana-angular-component-command.mjs +25 -21
- package/fesm2022/ojiepermana-angular-component-composer.mjs +15 -18
- package/fesm2022/ojiepermana-angular-component-date-picker.mjs +36 -11
- package/fesm2022/ojiepermana-angular-component-dialog.mjs +85 -30
- package/fesm2022/ojiepermana-angular-component-dropdown-menu.mjs +31 -26
- package/fesm2022/ojiepermana-angular-component-editor.mjs +37 -28
- package/fesm2022/ojiepermana-angular-component-empty.mjs +7 -13
- package/fesm2022/ojiepermana-angular-component-form.mjs +32 -24
- package/fesm2022/ojiepermana-angular-component-hover-card.mjs +2 -3
- package/fesm2022/ojiepermana-angular-component-icon.mjs +51 -6
- package/fesm2022/ojiepermana-angular-component-input-group.mjs +17 -15
- package/fesm2022/ojiepermana-angular-component-input-otp.mjs +15 -14
- package/fesm2022/ojiepermana-angular-component-input.mjs +2 -3
- package/fesm2022/ojiepermana-angular-component-item.mjs +11 -21
- package/fesm2022/ojiepermana-angular-component-kanban.mjs +27 -26
- package/fesm2022/ojiepermana-angular-component-kbd.mjs +3 -5
- package/fesm2022/ojiepermana-angular-component-label.mjs +2 -3
- package/fesm2022/ojiepermana-angular-component-menubar.mjs +6 -6
- package/fesm2022/ojiepermana-angular-component-native-select.mjs +3 -3
- package/fesm2022/ojiepermana-angular-component-navigation-menu.mjs +25 -12
- package/fesm2022/ojiepermana-angular-component-pagination.mjs +22 -13
- package/fesm2022/ojiepermana-angular-component-pillbox.mjs +70 -36
- package/fesm2022/ojiepermana-angular-component-progress.mjs +7 -5
- package/fesm2022/ojiepermana-angular-component-radio.mjs +21 -10
- package/fesm2022/ojiepermana-angular-component-resizable.mjs +22 -11
- package/fesm2022/ojiepermana-angular-component-scroll-area.mjs +8 -6
- package/fesm2022/ojiepermana-angular-component-select.mjs +29 -17
- package/fesm2022/ojiepermana-angular-component-separator.mjs +2 -3
- package/fesm2022/ojiepermana-angular-component-sheet.mjs +89 -30
- package/fesm2022/ojiepermana-angular-component-skeleton.mjs +2 -3
- package/fesm2022/ojiepermana-angular-component-slider.mjs +25 -13
- package/fesm2022/ojiepermana-angular-component-spinner.mjs +6 -5
- package/fesm2022/ojiepermana-angular-component-switch.mjs +17 -8
- package/fesm2022/ojiepermana-angular-component-table.mjs +9 -17
- package/fesm2022/ojiepermana-angular-component-tabs.mjs +5 -9
- package/fesm2022/ojiepermana-angular-component-textarea.mjs +2 -3
- package/fesm2022/ojiepermana-angular-component-timeline.mjs +22 -17
- package/fesm2022/ojiepermana-angular-component-toggle-group.mjs +12 -6
- package/fesm2022/ojiepermana-angular-component-toggle.mjs +2 -3
- package/fesm2022/ojiepermana-angular-component-tooltip.mjs +7 -6
- package/package.json +10 -1
- package/types/ojiepermana-angular-component-alert-dialog.d.ts +42 -3
- package/types/ojiepermana-angular-component-combobox.d.ts +4 -1
- package/types/ojiepermana-angular-component-command.d.ts +7 -2
- package/types/ojiepermana-angular-component-dialog.d.ts +33 -3
- package/types/ojiepermana-angular-component-form.d.ts +9 -0
- package/types/ojiepermana-angular-component-icon.d.ts +48 -1
- package/types/ojiepermana-angular-component-radio.d.ts +4 -1
- package/types/ojiepermana-angular-component-sheet.d.ts +33 -3
- package/types/ojiepermana-angular-component-timeline.d.ts +2 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { DOCUMENT, NgTemplateOutlet } from '@angular/common';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
|
-
import { inject, TemplateRef, Directive, ElementRef, contentChild, input, booleanAttribute, output, computed,
|
|
3
|
+
import { inject, TemplateRef, Directive, ElementRef, contentChild, input, booleanAttribute, output, computed, Component, numberAttribute, DestroyRef, signal, viewChild, contentChildren, forwardRef } from '@angular/core';
|
|
4
4
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
5
5
|
import { cn, uniqueId } from '@ojiepermana/angular-component/utils';
|
|
6
6
|
|
|
@@ -76,17 +76,17 @@ class PillboxOptionComponent {
|
|
|
76
76
|
stroke="currentColor"
|
|
77
77
|
stroke-width="1.75"
|
|
78
78
|
stroke-linecap="round"
|
|
79
|
-
stroke-linejoin="round"
|
|
79
|
+
stroke-linejoin="round"
|
|
80
|
+
>
|
|
80
81
|
<path d="M20 6 9 17l-5-5" />
|
|
81
82
|
</svg>
|
|
82
83
|
}
|
|
83
|
-
`, isInline: true
|
|
84
|
+
`, isInline: true });
|
|
84
85
|
}
|
|
85
86
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: PillboxOptionComponent, decorators: [{
|
|
86
87
|
type: Component,
|
|
87
88
|
args: [{
|
|
88
89
|
selector: 'PillboxOption, button[PillboxOption]',
|
|
89
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
90
90
|
host: {
|
|
91
91
|
type: 'button',
|
|
92
92
|
'[class]': 'classes()',
|
|
@@ -113,7 +113,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
|
|
|
113
113
|
stroke="currentColor"
|
|
114
114
|
stroke-width="1.75"
|
|
115
115
|
stroke-linecap="round"
|
|
116
|
-
stroke-linejoin="round"
|
|
116
|
+
stroke-linejoin="round"
|
|
117
|
+
>
|
|
117
118
|
<path d="M20 6 9 17l-5-5" />
|
|
118
119
|
</svg>
|
|
119
120
|
}
|
|
@@ -139,13 +140,12 @@ class PillboxOptionCreateComponent {
|
|
|
139
140
|
this.context.chooseCreate(this, event);
|
|
140
141
|
}
|
|
141
142
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: PillboxOptionCreateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
142
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.4", type: PillboxOptionCreateComponent, isStandalone: true, selector: "PillboxOptionCreate, button[PillboxOptionCreate]", inputs: { minLength: { classPropertyName: "minLength", publicName: "minLength", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selected: "selected" }, host: { attributes: { "type": "button" }, listeners: { "click": "handleClick($event)", "keydown.enter": "handleKeydown($any($event))", "keydown.space": "handleKeydown($any($event))" }, properties: { "class": "classes()", "attr.data-slot": "\"pillbox-option-create\"", "attr.role": "\"option\"", "attr.tabindex": "disabled() ? -1 : 0", "attr.aria-disabled": "disabled() ? \"true\" : null", "hidden": "!visible()" } }, ngImport: i0, template: `<ng-content />`, isInline: true
|
|
143
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.4", type: PillboxOptionCreateComponent, isStandalone: true, selector: "PillboxOptionCreate, button[PillboxOptionCreate]", inputs: { minLength: { classPropertyName: "minLength", publicName: "minLength", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selected: "selected" }, host: { attributes: { "type": "button" }, listeners: { "click": "handleClick($event)", "keydown.enter": "handleKeydown($any($event))", "keydown.space": "handleKeydown($any($event))" }, properties: { "class": "classes()", "attr.data-slot": "\"pillbox-option-create\"", "attr.role": "\"option\"", "attr.tabindex": "disabled() ? -1 : 0", "attr.aria-disabled": "disabled() ? \"true\" : null", "hidden": "!visible()" } }, ngImport: i0, template: `<ng-content />`, isInline: true });
|
|
143
144
|
}
|
|
144
145
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: PillboxOptionCreateComponent, decorators: [{
|
|
145
146
|
type: Component,
|
|
146
147
|
args: [{
|
|
147
148
|
selector: 'PillboxOptionCreate, button[PillboxOptionCreate]',
|
|
148
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
149
149
|
host: {
|
|
150
150
|
type: 'button',
|
|
151
151
|
'[class]': 'classes()',
|
|
@@ -176,13 +176,12 @@ class PillboxOptionEmptyComponent {
|
|
|
176
176
|
} @else {
|
|
177
177
|
<ng-content />
|
|
178
178
|
}
|
|
179
|
-
`, isInline: true
|
|
179
|
+
`, isInline: true });
|
|
180
180
|
}
|
|
181
181
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: PillboxOptionEmptyComponent, decorators: [{
|
|
182
182
|
type: Component,
|
|
183
183
|
args: [{
|
|
184
184
|
selector: 'PillboxOptionEmpty',
|
|
185
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
186
185
|
host: {
|
|
187
186
|
'[class]': 'classes()',
|
|
188
187
|
'[attr.data-slot]': '"pillbox-option-empty"',
|
|
@@ -424,7 +423,9 @@ class PillboxComponent extends PillboxContext {
|
|
|
424
423
|
this.disabledFromControl.set(disabled);
|
|
425
424
|
}
|
|
426
425
|
emitValue() {
|
|
427
|
-
const nextValue = this.multiple()
|
|
426
|
+
const nextValue = this.multiple()
|
|
427
|
+
? [...this.selectedValues()]
|
|
428
|
+
: (this.selectedValues()[0] ?? null);
|
|
428
429
|
this.onChange(nextValue);
|
|
429
430
|
this.valueChange.emit(nextValue);
|
|
430
431
|
}
|
|
@@ -444,7 +445,9 @@ class PillboxComponent extends PillboxContext {
|
|
|
444
445
|
return Object.is(left, right);
|
|
445
446
|
}
|
|
446
447
|
focusSearchInput() {
|
|
447
|
-
const searchInput = this.variant() === 'combobox'
|
|
448
|
+
const searchInput = this.variant() === 'combobox'
|
|
449
|
+
? this.inlineSearch()?.nativeElement
|
|
450
|
+
: this.panelSearch()?.nativeElement;
|
|
448
451
|
searchInput?.focus();
|
|
449
452
|
}
|
|
450
453
|
bindOutsideListener() {
|
|
@@ -484,7 +487,8 @@ class PillboxComponent extends PillboxContext {
|
|
|
484
487
|
(keydown.enter)="handleTriggerKeydown($any($event))"
|
|
485
488
|
(keydown.space)="handleTriggerKeydown($any($event))"
|
|
486
489
|
(keydown.arrowDown)="handleTriggerKeydown($any($event))"
|
|
487
|
-
(keydown.escape)="close()"
|
|
490
|
+
(keydown.escape)="close()"
|
|
491
|
+
>
|
|
488
492
|
<div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5">
|
|
489
493
|
@if (selectedItems().length > 0) {
|
|
490
494
|
@for (item of selectedItems(); track item.track) {
|
|
@@ -501,7 +505,8 @@ class PillboxComponent extends PillboxContext {
|
|
|
501
505
|
class="-mr-1 inline-flex size-4 items-center justify-center rounded-full text-muted-foreground hover:bg-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring"
|
|
502
506
|
[attr.aria-label]="'Remove ' + item.label"
|
|
503
507
|
[disabled]="disabledState() || null"
|
|
504
|
-
(click)="removeSelected(item.value, $event)"
|
|
508
|
+
(click)="removeSelected(item.value, $event)"
|
|
509
|
+
>
|
|
505
510
|
<svg
|
|
506
511
|
aria-hidden="true"
|
|
507
512
|
class="size-3"
|
|
@@ -510,7 +515,8 @@ class PillboxComponent extends PillboxContext {
|
|
|
510
515
|
stroke="currentColor"
|
|
511
516
|
stroke-width="2"
|
|
512
517
|
stroke-linecap="round"
|
|
513
|
-
stroke-linejoin="round"
|
|
518
|
+
stroke-linejoin="round"
|
|
519
|
+
>
|
|
514
520
|
<path d="M18 6 6 18" />
|
|
515
521
|
<path d="m6 6 12 12" />
|
|
516
522
|
</svg>
|
|
@@ -523,6 +529,8 @@ class PillboxComponent extends PillboxContext {
|
|
|
523
529
|
<input
|
|
524
530
|
#inlineSearch
|
|
525
531
|
class="min-w-28 flex-1 bg-transparent text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed"
|
|
532
|
+
[attr.aria-label]="ariaLabel() ?? placeholder()"
|
|
533
|
+
[attr.aria-labelledby]="ariaLabelledby()"
|
|
526
534
|
[placeholder]="selectedItems().length === 0 ? placeholder() : ''"
|
|
527
535
|
[value]="query()"
|
|
528
536
|
[disabled]="disabledState() || null"
|
|
@@ -530,7 +538,8 @@ class PillboxComponent extends PillboxContext {
|
|
|
530
538
|
(focus)="open()"
|
|
531
539
|
(input)="handleSearchInput($event)"
|
|
532
540
|
(keydown.backspace)="handleInlineBackspace($any($event))"
|
|
533
|
-
(keydown.escape)="close()"
|
|
541
|
+
(keydown.escape)="close()"
|
|
542
|
+
/>
|
|
534
543
|
} @else if (selectedItems().length === 0) {
|
|
535
544
|
<span class="truncate text-muted-foreground">{{ placeholder() }}</span>
|
|
536
545
|
}
|
|
@@ -541,7 +550,8 @@ class PillboxComponent extends PillboxContext {
|
|
|
541
550
|
type="button"
|
|
542
551
|
class="inline-flex size-5 shrink-0 items-center justify-center rounded-full text-muted-foreground hover:bg-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring"
|
|
543
552
|
aria-label="Clear selected options"
|
|
544
|
-
(click)="clear($event)"
|
|
553
|
+
(click)="clear($event)"
|
|
554
|
+
>
|
|
545
555
|
<svg
|
|
546
556
|
aria-hidden="true"
|
|
547
557
|
class="size-3.5"
|
|
@@ -550,7 +560,8 @@ class PillboxComponent extends PillboxContext {
|
|
|
550
560
|
stroke="currentColor"
|
|
551
561
|
stroke-width="2"
|
|
552
562
|
stroke-linecap="round"
|
|
553
|
-
stroke-linejoin="round"
|
|
563
|
+
stroke-linejoin="round"
|
|
564
|
+
>
|
|
554
565
|
<path d="M18 6 6 18" />
|
|
555
566
|
<path d="m6 6 12 12" />
|
|
556
567
|
</svg>
|
|
@@ -566,7 +577,8 @@ class PillboxComponent extends PillboxContext {
|
|
|
566
577
|
stroke="currentColor"
|
|
567
578
|
stroke-width="1.75"
|
|
568
579
|
stroke-linecap="round"
|
|
569
|
-
stroke-linejoin="round"
|
|
580
|
+
stroke-linejoin="round"
|
|
581
|
+
>
|
|
570
582
|
<path d="m6 9 6 6 6-6" />
|
|
571
583
|
</svg>
|
|
572
584
|
</div>
|
|
@@ -583,23 +595,27 @@ class PillboxComponent extends PillboxContext {
|
|
|
583
595
|
stroke="currentColor"
|
|
584
596
|
stroke-width="1.75"
|
|
585
597
|
stroke-linecap="round"
|
|
586
|
-
stroke-linejoin="round"
|
|
598
|
+
stroke-linejoin="round"
|
|
599
|
+
>
|
|
587
600
|
<circle cx="11" cy="11" r="8" />
|
|
588
601
|
<path d="m21 21-4.35-4.35" />
|
|
589
602
|
</svg>
|
|
590
603
|
<input
|
|
591
604
|
#panelSearch
|
|
592
605
|
class="h-9 min-w-0 flex-1 bg-transparent text-sm outline-none placeholder:text-muted-foreground"
|
|
606
|
+
[attr.aria-label]="searchPlaceholder()"
|
|
593
607
|
[placeholder]="searchPlaceholder()"
|
|
594
608
|
[value]="query()"
|
|
595
609
|
(input)="handleSearchInput($event)"
|
|
596
|
-
(keydown.escape)="close()"
|
|
610
|
+
(keydown.escape)="close()"
|
|
611
|
+
/>
|
|
597
612
|
@if (query().length > 0) {
|
|
598
613
|
<button
|
|
599
614
|
type="button"
|
|
600
615
|
class="inline-flex size-6 shrink-0 items-center justify-center rounded-md text-muted-foreground hover:bg-muted hover:text-foreground"
|
|
601
616
|
aria-label="Clear search"
|
|
602
|
-
(click)="clearSearch($event)"
|
|
617
|
+
(click)="clearSearch($event)"
|
|
618
|
+
>
|
|
603
619
|
<svg
|
|
604
620
|
aria-hidden="true"
|
|
605
621
|
class="size-3.5"
|
|
@@ -608,7 +624,8 @@ class PillboxComponent extends PillboxContext {
|
|
|
608
624
|
stroke="currentColor"
|
|
609
625
|
stroke-width="2"
|
|
610
626
|
stroke-linecap="round"
|
|
611
|
-
stroke-linejoin="round"
|
|
627
|
+
stroke-linejoin="round"
|
|
628
|
+
>
|
|
612
629
|
<path d="M18 6 6 18" />
|
|
613
630
|
<path d="m6 6 12 12" />
|
|
614
631
|
</svg>
|
|
@@ -622,13 +639,12 @@ class PillboxComponent extends PillboxContext {
|
|
|
622
639
|
<ng-content />
|
|
623
640
|
</div>
|
|
624
641
|
</div>
|
|
625
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }]
|
|
642
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
|
|
626
643
|
}
|
|
627
644
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: PillboxComponent, decorators: [{
|
|
628
645
|
type: Component,
|
|
629
646
|
args: [{
|
|
630
647
|
selector: 'Pillbox',
|
|
631
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
632
648
|
imports: [NgTemplateOutlet],
|
|
633
649
|
providers: [
|
|
634
650
|
{ provide: PillboxContext, useExisting: forwardRef(() => PillboxComponent) },
|
|
@@ -660,7 +676,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
|
|
|
660
676
|
(keydown.enter)="handleTriggerKeydown($any($event))"
|
|
661
677
|
(keydown.space)="handleTriggerKeydown($any($event))"
|
|
662
678
|
(keydown.arrowDown)="handleTriggerKeydown($any($event))"
|
|
663
|
-
(keydown.escape)="close()"
|
|
679
|
+
(keydown.escape)="close()"
|
|
680
|
+
>
|
|
664
681
|
<div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5">
|
|
665
682
|
@if (selectedItems().length > 0) {
|
|
666
683
|
@for (item of selectedItems(); track item.track) {
|
|
@@ -677,7 +694,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
|
|
|
677
694
|
class="-mr-1 inline-flex size-4 items-center justify-center rounded-full text-muted-foreground hover:bg-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring"
|
|
678
695
|
[attr.aria-label]="'Remove ' + item.label"
|
|
679
696
|
[disabled]="disabledState() || null"
|
|
680
|
-
(click)="removeSelected(item.value, $event)"
|
|
697
|
+
(click)="removeSelected(item.value, $event)"
|
|
698
|
+
>
|
|
681
699
|
<svg
|
|
682
700
|
aria-hidden="true"
|
|
683
701
|
class="size-3"
|
|
@@ -686,7 +704,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
|
|
|
686
704
|
stroke="currentColor"
|
|
687
705
|
stroke-width="2"
|
|
688
706
|
stroke-linecap="round"
|
|
689
|
-
stroke-linejoin="round"
|
|
707
|
+
stroke-linejoin="round"
|
|
708
|
+
>
|
|
690
709
|
<path d="M18 6 6 18" />
|
|
691
710
|
<path d="m6 6 12 12" />
|
|
692
711
|
</svg>
|
|
@@ -699,6 +718,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
|
|
|
699
718
|
<input
|
|
700
719
|
#inlineSearch
|
|
701
720
|
class="min-w-28 flex-1 bg-transparent text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed"
|
|
721
|
+
[attr.aria-label]="ariaLabel() ?? placeholder()"
|
|
722
|
+
[attr.aria-labelledby]="ariaLabelledby()"
|
|
702
723
|
[placeholder]="selectedItems().length === 0 ? placeholder() : ''"
|
|
703
724
|
[value]="query()"
|
|
704
725
|
[disabled]="disabledState() || null"
|
|
@@ -706,7 +727,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
|
|
|
706
727
|
(focus)="open()"
|
|
707
728
|
(input)="handleSearchInput($event)"
|
|
708
729
|
(keydown.backspace)="handleInlineBackspace($any($event))"
|
|
709
|
-
(keydown.escape)="close()"
|
|
730
|
+
(keydown.escape)="close()"
|
|
731
|
+
/>
|
|
710
732
|
} @else if (selectedItems().length === 0) {
|
|
711
733
|
<span class="truncate text-muted-foreground">{{ placeholder() }}</span>
|
|
712
734
|
}
|
|
@@ -717,7 +739,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
|
|
|
717
739
|
type="button"
|
|
718
740
|
class="inline-flex size-5 shrink-0 items-center justify-center rounded-full text-muted-foreground hover:bg-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring"
|
|
719
741
|
aria-label="Clear selected options"
|
|
720
|
-
(click)="clear($event)"
|
|
742
|
+
(click)="clear($event)"
|
|
743
|
+
>
|
|
721
744
|
<svg
|
|
722
745
|
aria-hidden="true"
|
|
723
746
|
class="size-3.5"
|
|
@@ -726,7 +749,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
|
|
|
726
749
|
stroke="currentColor"
|
|
727
750
|
stroke-width="2"
|
|
728
751
|
stroke-linecap="round"
|
|
729
|
-
stroke-linejoin="round"
|
|
752
|
+
stroke-linejoin="round"
|
|
753
|
+
>
|
|
730
754
|
<path d="M18 6 6 18" />
|
|
731
755
|
<path d="m6 6 12 12" />
|
|
732
756
|
</svg>
|
|
@@ -742,7 +766,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
|
|
|
742
766
|
stroke="currentColor"
|
|
743
767
|
stroke-width="1.75"
|
|
744
768
|
stroke-linecap="round"
|
|
745
|
-
stroke-linejoin="round"
|
|
769
|
+
stroke-linejoin="round"
|
|
770
|
+
>
|
|
746
771
|
<path d="m6 9 6 6 6-6" />
|
|
747
772
|
</svg>
|
|
748
773
|
</div>
|
|
@@ -759,23 +784,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
|
|
|
759
784
|
stroke="currentColor"
|
|
760
785
|
stroke-width="1.75"
|
|
761
786
|
stroke-linecap="round"
|
|
762
|
-
stroke-linejoin="round"
|
|
787
|
+
stroke-linejoin="round"
|
|
788
|
+
>
|
|
763
789
|
<circle cx="11" cy="11" r="8" />
|
|
764
790
|
<path d="m21 21-4.35-4.35" />
|
|
765
791
|
</svg>
|
|
766
792
|
<input
|
|
767
793
|
#panelSearch
|
|
768
794
|
class="h-9 min-w-0 flex-1 bg-transparent text-sm outline-none placeholder:text-muted-foreground"
|
|
795
|
+
[attr.aria-label]="searchPlaceholder()"
|
|
769
796
|
[placeholder]="searchPlaceholder()"
|
|
770
797
|
[value]="query()"
|
|
771
798
|
(input)="handleSearchInput($event)"
|
|
772
|
-
(keydown.escape)="close()"
|
|
799
|
+
(keydown.escape)="close()"
|
|
800
|
+
/>
|
|
773
801
|
@if (query().length > 0) {
|
|
774
802
|
<button
|
|
775
803
|
type="button"
|
|
776
804
|
class="inline-flex size-6 shrink-0 items-center justify-center rounded-md text-muted-foreground hover:bg-muted hover:text-foreground"
|
|
777
805
|
aria-label="Clear search"
|
|
778
|
-
(click)="clearSearch($event)"
|
|
806
|
+
(click)="clearSearch($event)"
|
|
807
|
+
>
|
|
779
808
|
<svg
|
|
780
809
|
aria-hidden="true"
|
|
781
810
|
class="size-3.5"
|
|
@@ -784,7 +813,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
|
|
|
784
813
|
stroke="currentColor"
|
|
785
814
|
stroke-width="2"
|
|
786
815
|
stroke-linecap="round"
|
|
787
|
-
stroke-linejoin="round"
|
|
816
|
+
stroke-linejoin="round"
|
|
817
|
+
>
|
|
788
818
|
<path d="M18 6 6 18" />
|
|
789
819
|
<path d="m6 6 12 12" />
|
|
790
820
|
</svg>
|
|
@@ -800,7 +830,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
|
|
|
800
830
|
</div>
|
|
801
831
|
`,
|
|
802
832
|
}]
|
|
803
|
-
}], ctorParameters: () => [], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], searchPlaceholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchPlaceholder", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], multiple: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiple", required: false }] }], searchable: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchable", required: false }] }], filter: [{ type: i0.Input, args: [{ isSignal: true, alias: "filter", required: false }] }], clearable: [{ type: i0.Input, args: [{ isSignal: true, alias: "clearable", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], invalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "invalid", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], emptyText: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyText", required: false }] }], loadingText: [{ type: i0.Input, args: [{ isSignal: true, alias: "loadingText", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-label", required: false }] }], ariaDescribedby: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-describedby", required: false }] }], ariaLabelledby: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-labelledby", required: false }] }], class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }], searchChange: [{ type: i0.Output, args: ["searchChange"] }], create: [{ type: i0.Output, args: ["create"] }], openedChange: [{ type: i0.Output, args: ["openedChange"] }], trigger: [{ type: i0.ViewChild, args: ['trigger', { isSignal: true }] }], inlineSearch: [{ type: i0.ViewChild, args: ['inlineSearch', { isSignal: true }] }], panelSearch: [{ type: i0.ViewChild, args: ['panelSearch', { isSignal: true }] }], options: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => PillboxOptionComponent), { ...{ descendants: true }, isSignal: true }] }], createOptions: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => PillboxOptionCreateComponent), { ...{
|
|
833
|
+
}], ctorParameters: () => [], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], searchPlaceholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchPlaceholder", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], multiple: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiple", required: false }] }], searchable: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchable", required: false }] }], filter: [{ type: i0.Input, args: [{ isSignal: true, alias: "filter", required: false }] }], clearable: [{ type: i0.Input, args: [{ isSignal: true, alias: "clearable", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], invalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "invalid", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], emptyText: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyText", required: false }] }], loadingText: [{ type: i0.Input, args: [{ isSignal: true, alias: "loadingText", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-label", required: false }] }], ariaDescribedby: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-describedby", required: false }] }], ariaLabelledby: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-labelledby", required: false }] }], class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }], searchChange: [{ type: i0.Output, args: ["searchChange"] }], create: [{ type: i0.Output, args: ["create"] }], openedChange: [{ type: i0.Output, args: ["openedChange"] }], trigger: [{ type: i0.ViewChild, args: ['trigger', { isSignal: true }] }], inlineSearch: [{ type: i0.ViewChild, args: ['inlineSearch', { isSignal: true }] }], panelSearch: [{ type: i0.ViewChild, args: ['panelSearch', { isSignal: true }] }], options: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => PillboxOptionComponent), { ...{ descendants: true }, isSignal: true }] }], createOptions: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => PillboxOptionCreateComponent), { ...{
|
|
834
|
+
descendants: true,
|
|
835
|
+
}, isSignal: true }] }], emptyOptions: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => PillboxOptionEmptyComponent), { ...{
|
|
836
|
+
descendants: true,
|
|
837
|
+
}, isSignal: true }] }] } });
|
|
804
838
|
|
|
805
839
|
/**
|
|
806
840
|
* Generated bundle index. Do not edit.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { input, computed,
|
|
2
|
+
import { input, computed, Component } from '@angular/core';
|
|
3
3
|
import { cn } from '@ojiepermana/angular-component/utils';
|
|
4
4
|
|
|
5
5
|
class ProgressComponent {
|
|
@@ -31,12 +31,13 @@ class ProgressComponent {
|
|
|
31
31
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.4", type: ProgressComponent, isStandalone: true, selector: "ProgressBar", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, indeterminate: { classPropertyName: "indeterminate", publicName: "indeterminate", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledby: { classPropertyName: "ariaLabelledby", publicName: "aria-labelledby", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.role": "\"progressbar\"", "attr.aria-valuemin": "0", "attr.aria-valuemax": "max()", "attr.aria-valuenow": "indeterminate() ? null : clamped()", "attr.aria-label": "ariaLabel()", "attr.aria-labelledby": "ariaLabelledby()", "attr.data-state": "indeterminate() ? \"indeterminate\" : \"determinate\"" } }, ngImport: i0, template: `
|
|
32
32
|
<div
|
|
33
33
|
class="progress-indicator h-full w-full flex-1 bg-primary transition-transform"
|
|
34
|
-
[style.transform]="indicatorTransform()"
|
|
35
|
-
|
|
34
|
+
[style.transform]="indicatorTransform()"
|
|
35
|
+
></div>
|
|
36
|
+
`, isInline: true, styles: [":host{display:block}:host[data-state=indeterminate] .progress-indicator{animation:progress-indeterminate 1.5s cubic-bezier(.65,.815,.735,.395) infinite}@keyframes progress-indeterminate{0%{transform:translate(-100%)}to{transform:translate(100%)}}@media(prefers-reduced-motion:reduce){:host[data-state=indeterminate] .progress-indicator{animation:none}}\n"] });
|
|
36
37
|
}
|
|
37
38
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: ProgressComponent, decorators: [{
|
|
38
39
|
type: Component,
|
|
39
|
-
args: [{ selector: 'ProgressBar',
|
|
40
|
+
args: [{ selector: 'ProgressBar', host: {
|
|
40
41
|
'[class]': 'classes()',
|
|
41
42
|
'[attr.role]': '"progressbar"',
|
|
42
43
|
'[attr.aria-valuemin]': '0',
|
|
@@ -48,7 +49,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
|
|
|
48
49
|
}, template: `
|
|
49
50
|
<div
|
|
50
51
|
class="progress-indicator h-full w-full flex-1 bg-primary transition-transform"
|
|
51
|
-
[style.transform]="indicatorTransform()"
|
|
52
|
+
[style.transform]="indicatorTransform()"
|
|
53
|
+
></div>
|
|
52
54
|
`, styles: [":host{display:block}:host[data-state=indeterminate] .progress-indicator{animation:progress-indeterminate 1.5s cubic-bezier(.65,.815,.735,.395) infinite}@keyframes progress-indeterminate{0%{transform:translate(-100%)}to{transform:translate(100%)}}@media(prefers-reduced-motion:reduce){:host[data-state=indeterminate] .progress-indicator{animation:none}}\n"] }]
|
|
53
55
|
}], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }], indeterminate: [{ type: i0.Input, args: [{ isSignal: true, alias: "indeterminate", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-label", required: false }] }], ariaLabelledby: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-labelledby", required: false }] }], class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
|
|
54
56
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { input, output, contentChildren, forwardRef, signal, computed,
|
|
2
|
+
import { input, output, contentChildren, forwardRef, signal, computed, Component, inject, viewChild } from '@angular/core';
|
|
3
3
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
4
4
|
import { uniqueId, cn } from '@ojiepermana/angular-component/utils';
|
|
5
5
|
|
|
@@ -67,14 +67,17 @@ class RadioGroupComponent {
|
|
|
67
67
|
this.disabled.set(d);
|
|
68
68
|
}
|
|
69
69
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: RadioGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
70
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.0.4", type: RadioGroupComponent, isStandalone: true, selector: "RadioGroup", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledby: { classPropertyName: "ariaLabelledby", publicName: "aria-labelledby", isSignal: true, isRequired: false, transformFunction: null }, ariaDescribedby: { classPropertyName: "ariaDescribedby", publicName: "aria-describedby", isSignal: true, isRequired: false, transformFunction: null }, ariaInvalid: { classPropertyName: "ariaInvalid", publicName: "aria-invalid", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, host: { attributes: { "role": "radiogroup" }, properties: { "class": "classes()", "attr.aria-label": "ariaLabel()", "attr.aria-labelledby": "ariaLabelledby()", "attr.aria-describedby": "ariaDescribedby()", "attr.aria-invalid": "ariaInvalidAttr()" } }, providers: [
|
|
70
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.0.4", type: RadioGroupComponent, isStandalone: true, selector: "RadioGroup", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledby: { classPropertyName: "ariaLabelledby", publicName: "aria-labelledby", isSignal: true, isRequired: false, transformFunction: null }, ariaDescribedby: { classPropertyName: "ariaDescribedby", publicName: "aria-describedby", isSignal: true, isRequired: false, transformFunction: null }, ariaInvalid: { classPropertyName: "ariaInvalid", publicName: "aria-invalid", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, host: { attributes: { "role": "radiogroup" }, properties: { "class": "classes()", "attr.aria-label": "ariaLabel()", "attr.aria-labelledby": "ariaLabelledby()", "attr.aria-describedby": "ariaDescribedby()", "attr.aria-invalid": "ariaInvalidAttr()" } }, providers: [
|
|
71
|
+
{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => RadioGroupComponent), multi: true },
|
|
72
|
+
], queries: [{ propertyName: "radios", predicate: i0.forwardRef(() => RadioComponent), descendants: true, isSignal: true }], ngImport: i0, template: `<ng-content />`, isInline: true });
|
|
71
73
|
}
|
|
72
74
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: RadioGroupComponent, decorators: [{
|
|
73
75
|
type: Component,
|
|
74
76
|
args: [{
|
|
75
77
|
selector: 'RadioGroup',
|
|
76
|
-
|
|
77
|
-
|
|
78
|
+
providers: [
|
|
79
|
+
{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => RadioGroupComponent), multi: true },
|
|
80
|
+
],
|
|
78
81
|
host: {
|
|
79
82
|
role: 'radiogroup',
|
|
80
83
|
'[class]': 'classes()',
|
|
@@ -94,6 +97,9 @@ class RadioComponent {
|
|
|
94
97
|
...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
|
|
95
98
|
class = input('', /* @ts-ignore */
|
|
96
99
|
...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
|
|
100
|
+
/** Accessible name for the radio input when no text is projected into `<Radio>`. */
|
|
101
|
+
ariaLabel = input(null, { ...(ngDevMode ? { debugName: "ariaLabel" } : /* istanbul ignore next */ {}), alias: 'aria-label' });
|
|
102
|
+
ariaLabelledby = input(null, { ...(ngDevMode ? { debugName: "ariaLabelledby" } : /* istanbul ignore next */ {}), alias: 'aria-labelledby' });
|
|
97
103
|
selected = computed(() => this.group.value() === this.value(), /* @ts-ignore */
|
|
98
104
|
...(ngDevMode ? [{ debugName: "selected" }] : /* istanbul ignore next */ []));
|
|
99
105
|
isDisabled = computed(() => this.disabled() || this.group.disabled(), /* @ts-ignore */
|
|
@@ -115,18 +121,21 @@ class RadioComponent {
|
|
|
115
121
|
this.ref().nativeElement.focus();
|
|
116
122
|
}
|
|
117
123
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: RadioComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
118
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.4", type: RadioComponent, isStandalone: true, selector: "Radio", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClasses()" } }, viewQueries: [{ propertyName: "ref", first: true, predicate: ["ref"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
124
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.4", type: RadioComponent, isStandalone: true, selector: "Radio", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledby: { classPropertyName: "ariaLabelledby", publicName: "aria-labelledby", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClasses()" } }, viewQueries: [{ propertyName: "ref", first: true, predicate: ["ref"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
119
125
|
<label [class]="labelClasses()">
|
|
120
126
|
<input
|
|
121
127
|
#ref
|
|
122
128
|
type="radio"
|
|
123
129
|
class="peer sr-only"
|
|
124
130
|
[attr.name]="group.resolvedName()"
|
|
131
|
+
[attr.aria-label]="ariaLabel()"
|
|
132
|
+
[attr.aria-labelledby]="ariaLabelledby()"
|
|
125
133
|
[value]="value()"
|
|
126
134
|
[checked]="selected()"
|
|
127
135
|
[disabled]="isDisabled()"
|
|
128
136
|
(change)="handleChange()"
|
|
129
|
-
(blur)="handleBlur()"
|
|
137
|
+
(blur)="handleBlur()"
|
|
138
|
+
/>
|
|
130
139
|
<span aria-hidden="true" [class]="circleClasses()">
|
|
131
140
|
@if (selected()) {
|
|
132
141
|
<span class="size-2 rounded-full bg-primary"></span>
|
|
@@ -134,13 +143,12 @@ class RadioComponent {
|
|
|
134
143
|
</span>
|
|
135
144
|
<ng-content />
|
|
136
145
|
</label>
|
|
137
|
-
`, isInline: true
|
|
146
|
+
`, isInline: true });
|
|
138
147
|
}
|
|
139
148
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: RadioComponent, decorators: [{
|
|
140
149
|
type: Component,
|
|
141
150
|
args: [{
|
|
142
151
|
selector: 'Radio',
|
|
143
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
144
152
|
host: { '[class]': 'hostClasses()' },
|
|
145
153
|
template: `
|
|
146
154
|
<label [class]="labelClasses()">
|
|
@@ -149,11 +157,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
|
|
|
149
157
|
type="radio"
|
|
150
158
|
class="peer sr-only"
|
|
151
159
|
[attr.name]="group.resolvedName()"
|
|
160
|
+
[attr.aria-label]="ariaLabel()"
|
|
161
|
+
[attr.aria-labelledby]="ariaLabelledby()"
|
|
152
162
|
[value]="value()"
|
|
153
163
|
[checked]="selected()"
|
|
154
164
|
[disabled]="isDisabled()"
|
|
155
165
|
(change)="handleChange()"
|
|
156
|
-
(blur)="handleBlur()"
|
|
166
|
+
(blur)="handleBlur()"
|
|
167
|
+
/>
|
|
157
168
|
<span aria-hidden="true" [class]="circleClasses()">
|
|
158
169
|
@if (selected()) {
|
|
159
170
|
<span class="size-2 rounded-full bg-primary"></span>
|
|
@@ -163,7 +174,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
|
|
|
163
174
|
</label>
|
|
164
175
|
`,
|
|
165
176
|
}]
|
|
166
|
-
}], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: true }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }], ref: [{ type: i0.ViewChild, args: ['ref', { isSignal: true }] }] } });
|
|
177
|
+
}], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: true }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-label", required: false }] }], ariaLabelledby: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-labelledby", required: false }] }], ref: [{ type: i0.ViewChild, args: ['ref', { isSignal: true }] }] } });
|
|
167
178
|
|
|
168
179
|
/**
|
|
169
180
|
* Generated bundle index. Do not edit.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { DOCUMENT } from '@angular/common';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
|
-
import { Directive, inject, ElementRef, input, signal, computed,
|
|
3
|
+
import { Directive, inject, ElementRef, input, signal, computed, Component, booleanAttribute, contentChildren, effect, untracked, forwardRef } from '@angular/core';
|
|
4
4
|
import { uniqueId, cn } from '@ojiepermana/angular-component/utils';
|
|
5
5
|
|
|
6
6
|
class ResizableGroupContextBase {
|
|
@@ -57,13 +57,12 @@ class ResizablePanelComponent {
|
|
|
57
57
|
return this.host.nativeElement;
|
|
58
58
|
}
|
|
59
59
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: ResizablePanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
60
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.4", type: ResizablePanelComponent, isStandalone: true, selector: "ResizablePanel", inputs: { defaultSize: { classPropertyName: "defaultSize", publicName: "defaultSize", isSignal: true, isRequired: false, transformFunction: null }, minSize: { classPropertyName: "minSize", publicName: "minSize", isSignal: true, isRequired: false, transformFunction: null }, maxSize: { classPropertyName: "maxSize", publicName: "maxSize", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.id": "resolvedId()", "style.flex": "flexStyle()" } }, ngImport: i0, template: `<ng-content />`, isInline: true
|
|
60
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.4", type: ResizablePanelComponent, isStandalone: true, selector: "ResizablePanel", inputs: { defaultSize: { classPropertyName: "defaultSize", publicName: "defaultSize", isSignal: true, isRequired: false, transformFunction: null }, minSize: { classPropertyName: "minSize", publicName: "minSize", isSignal: true, isRequired: false, transformFunction: null }, maxSize: { classPropertyName: "maxSize", publicName: "maxSize", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.id": "resolvedId()", "style.flex": "flexStyle()" } }, ngImport: i0, template: `<ng-content />`, isInline: true });
|
|
61
61
|
}
|
|
62
62
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: ResizablePanelComponent, decorators: [{
|
|
63
63
|
type: Component,
|
|
64
64
|
args: [{
|
|
65
65
|
selector: 'ResizablePanel',
|
|
66
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
67
66
|
host: {
|
|
68
67
|
'[class]': 'classes()',
|
|
69
68
|
'[attr.id]': 'resolvedId()',
|
|
@@ -134,7 +133,8 @@ class ResizableHandleComponent {
|
|
|
134
133
|
@if (withHandle()) {
|
|
135
134
|
<span
|
|
136
135
|
aria-hidden="true"
|
|
137
|
-
class="pointer-events-none inline-flex items-center justify-center rounded-sm border border-border bg-background px-1 py-0.5 shadow-sm"
|
|
136
|
+
class="pointer-events-none inline-flex items-center justify-center rounded-sm border border-border bg-background px-1 py-0.5 shadow-sm"
|
|
137
|
+
>
|
|
138
138
|
<svg class="h-3 w-3 text-muted-foreground" viewBox="0 0 24 24" fill="currentColor">
|
|
139
139
|
<circle cx="9" cy="8" r="1.25" />
|
|
140
140
|
<circle cx="15" cy="8" r="1.25" />
|
|
@@ -145,13 +145,12 @@ class ResizableHandleComponent {
|
|
|
145
145
|
</svg>
|
|
146
146
|
</span>
|
|
147
147
|
}
|
|
148
|
-
`, isInline: true
|
|
148
|
+
`, isInline: true });
|
|
149
149
|
}
|
|
150
150
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: ResizableHandleComponent, decorators: [{
|
|
151
151
|
type: Component,
|
|
152
152
|
args: [{
|
|
153
153
|
selector: 'ResizableHandle',
|
|
154
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
155
154
|
host: {
|
|
156
155
|
'[class]': 'classes()',
|
|
157
156
|
role: 'separator',
|
|
@@ -171,7 +170,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
|
|
|
171
170
|
@if (withHandle()) {
|
|
172
171
|
<span
|
|
173
172
|
aria-hidden="true"
|
|
174
|
-
class="pointer-events-none inline-flex items-center justify-center rounded-sm border border-border bg-background px-1 py-0.5 shadow-sm"
|
|
173
|
+
class="pointer-events-none inline-flex items-center justify-center rounded-sm border border-border bg-background px-1 py-0.5 shadow-sm"
|
|
174
|
+
>
|
|
175
175
|
<svg class="h-3 w-3 text-muted-foreground" viewBox="0 0 24 24" fill="currentColor">
|
|
176
176
|
<circle cx="9" cy="8" r="1.25" />
|
|
177
177
|
<circle cx="15" cy="8" r="1.25" />
|
|
@@ -394,14 +394,23 @@ class ResizablePanelGroupComponent extends ResizableGroupContextBase {
|
|
|
394
394
|
return this.orientation() === 'horizontal' ? event.clientX : event.clientY;
|
|
395
395
|
}
|
|
396
396
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: ResizablePanelGroupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
397
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.0.4", type: ResizablePanelGroupComponent, isStandalone: true, selector: "ResizablePanelGroup", inputs: { orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.data-orientation": "orientation()" } }, providers: [
|
|
397
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.0.4", type: ResizablePanelGroupComponent, isStandalone: true, selector: "ResizablePanelGroup", inputs: { orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.data-orientation": "orientation()" } }, providers: [
|
|
398
|
+
{
|
|
399
|
+
provide: ResizableGroupContextBase,
|
|
400
|
+
useExisting: forwardRef(() => ResizablePanelGroupComponent),
|
|
401
|
+
},
|
|
402
|
+
], queries: [{ propertyName: "panels", predicate: ResizablePanelComponent, isSignal: true }, { propertyName: "handles", predicate: ResizableHandleComponent, isSignal: true }], usesInheritance: true, ngImport: i0, template: `<ng-content />`, isInline: true });
|
|
398
403
|
}
|
|
399
404
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: ResizablePanelGroupComponent, decorators: [{
|
|
400
405
|
type: Component,
|
|
401
406
|
args: [{
|
|
402
407
|
selector: 'ResizablePanelGroup',
|
|
403
|
-
|
|
404
|
-
|
|
408
|
+
providers: [
|
|
409
|
+
{
|
|
410
|
+
provide: ResizableGroupContextBase,
|
|
411
|
+
useExisting: forwardRef(() => ResizablePanelGroupComponent),
|
|
412
|
+
},
|
|
413
|
+
],
|
|
405
414
|
host: {
|
|
406
415
|
'[class]': 'classes()',
|
|
407
416
|
'[attr.data-orientation]': 'orientation()',
|
|
@@ -438,7 +447,9 @@ function resolveInitialSizes(preferred, minimums, maximums) {
|
|
|
438
447
|
sizes = preferred.map(() => equalSize);
|
|
439
448
|
}
|
|
440
449
|
else {
|
|
441
|
-
const share = unresolvedIndexes.length
|
|
450
|
+
const share = unresolvedIndexes.length
|
|
451
|
+
? Math.max(100 - specifiedTotal, 0) / unresolvedIndexes.length
|
|
452
|
+
: 0;
|
|
442
453
|
sizes = preferred.map((value) => value ?? share);
|
|
443
454
|
}
|
|
444
455
|
sizes = sizes.map((size, index) => clamp(size, minimums[index], maximums[index]));
|