@agentsmith.bgd/as-components 21.0.43 → 21.0.48
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.
|
@@ -10,10 +10,10 @@ import flatpickr from 'flatpickr';
|
|
|
10
10
|
import 'flatpickr/dist/flatpickr.css';
|
|
11
11
|
|
|
12
12
|
class AsComponents {
|
|
13
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.
|
|
14
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.
|
|
13
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: AsComponents, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
14
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.2", type: AsComponents, isStandalone: true, selector: "lib-as-components", ngImport: i0, template: ` <p> as-components works! </p> `, isInline: true, styles: [""] });
|
|
15
15
|
}
|
|
16
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: AsComponents, decorators: [{
|
|
17
17
|
type: Component,
|
|
18
18
|
args: [{ selector: 'lib-as-components', imports: [], template: ` <p> as-components works! </p> ` }]
|
|
19
19
|
}] });
|
|
@@ -108,10 +108,10 @@ class ModalContainerComponent {
|
|
|
108
108
|
this.modalRef.dismiss();
|
|
109
109
|
}
|
|
110
110
|
}
|
|
111
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.
|
|
112
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.
|
|
111
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: ModalContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
112
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.2", type: ModalContainerComponent, isStandalone: true, selector: "as-modal-container", outputs: { closed: "closed" }, host: { listeners: { "document:keydown": "handleKeydown($event)" } }, viewQueries: [{ propertyName: "contentHost", first: true, predicate: ["contentHost"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: "<div class=\"as-modal-backdrop\" (click)=\"dismiss()\"></div>\n<div class=\"as-modal\" [ngClass]=\"size()\" role=\"dialog\" aria-modal=\"true\" [style.min-height]=\"minHeight()\">\n\t@if (title() || showClose()) {\n\t\t<div class=\"as-modal-header\">\n\t\t\t<h3 class=\"as-modal-title\">{{ title() }}</h3>\n\t\t\t@if (showClose()) {\n\t\t\t\t<button class=\"btn-close close pull-right\" type=\"button\" (click)=\"dismiss()\"></button>\n\t\t\t}\n\t\t</div>\n\t}\n\t<div class=\"as-modal-body\">\n\t\t<ng-template #contentHost></ng-template>\n\t</div>\n</div>\n", styles: [".as-modal-backdrop{position:fixed;inset:0;background:#00000080;z-index:1000}.as-modal{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:1001;background:#fff;border-radius:4px;max-width:90%;max-height:80vh;display:flex;flex-direction:column}.as-modal.sm{width:300px}.as-modal.md{width:600px}.as-modal.lg{width:900px}.as-modal.xlg{width:1200px}.as-modal.xxlg{width:1600px}.as-modal-header{flex:0 0 auto;display:flex;justify-content:space-between;align-items:center;padding:12px;border-bottom:1px solid #eee}.as-modal-body{flex:1 1 auto;padding:12px;overflow-y:auto}.as-modal-close{background:none;border:0;font-size:20px;cursor:pointer}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
113
113
|
}
|
|
114
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.
|
|
114
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: ModalContainerComponent, decorators: [{
|
|
115
115
|
type: Component,
|
|
116
116
|
args: [{ selector: 'as-modal-container', imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<div class=\"as-modal-backdrop\" (click)=\"dismiss()\"></div>\n<div class=\"as-modal\" [ngClass]=\"size()\" role=\"dialog\" aria-modal=\"true\" [style.min-height]=\"minHeight()\">\n\t@if (title() || showClose()) {\n\t\t<div class=\"as-modal-header\">\n\t\t\t<h3 class=\"as-modal-title\">{{ title() }}</h3>\n\t\t\t@if (showClose()) {\n\t\t\t\t<button class=\"btn-close close pull-right\" type=\"button\" (click)=\"dismiss()\"></button>\n\t\t\t}\n\t\t</div>\n\t}\n\t<div class=\"as-modal-body\">\n\t\t<ng-template #contentHost></ng-template>\n\t</div>\n</div>\n", styles: [".as-modal-backdrop{position:fixed;inset:0;background:#00000080;z-index:1000}.as-modal{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:1001;background:#fff;border-radius:4px;max-width:90%;max-height:80vh;display:flex;flex-direction:column}.as-modal.sm{width:300px}.as-modal.md{width:600px}.as-modal.lg{width:900px}.as-modal.xlg{width:1200px}.as-modal.xxlg{width:1600px}.as-modal-header{flex:0 0 auto;display:flex;justify-content:space-between;align-items:center;padding:12px;border-bottom:1px solid #eee}.as-modal-body{flex:1 1 auto;padding:12px;overflow-y:auto}.as-modal-close{background:none;border:0;font-size:20px;cursor:pointer}\n"] }]
|
|
117
117
|
}], propDecorators: { contentHost: [{
|
|
@@ -146,10 +146,10 @@ class BaseModalComponent {
|
|
|
146
146
|
dismiss() {
|
|
147
147
|
this._dismiss?.();
|
|
148
148
|
}
|
|
149
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.
|
|
150
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.
|
|
149
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: BaseModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
150
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.2", type: BaseModalComponent, isStandalone: true, inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onClose: "onClose" }, ngImport: i0 });
|
|
151
151
|
}
|
|
152
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.
|
|
152
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: BaseModalComponent, decorators: [{
|
|
153
153
|
type: Directive
|
|
154
154
|
}], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], onClose: [{ type: i0.Output, args: ["onClose"] }] } });
|
|
155
155
|
|
|
@@ -259,10 +259,10 @@ class ModalService {
|
|
|
259
259
|
targetInstance[key] = value;
|
|
260
260
|
}
|
|
261
261
|
}
|
|
262
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.
|
|
263
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.
|
|
262
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: ModalService, deps: [{ token: i0.Injector }, { token: i0.ApplicationRef }, { token: i0.EnvironmentInjector }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
263
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: ModalService, providedIn: 'root' });
|
|
264
264
|
}
|
|
265
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.
|
|
265
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: ModalService, decorators: [{
|
|
266
266
|
type: Injectable,
|
|
267
267
|
args: [{ providedIn: 'root' }]
|
|
268
268
|
}], ctorParameters: () => [{ type: i0.Injector }, { type: i0.ApplicationRef }, { type: i0.EnvironmentInjector }] });
|
|
@@ -273,8 +273,8 @@ class TooltipComponent {
|
|
|
273
273
|
text = signal(null, ...(ngDevMode ? [{ debugName: "text" }] : []));
|
|
274
274
|
// Placement signal — set by directive to switch arrow orientation
|
|
275
275
|
placement = signal('bottom', ...(ngDevMode ? [{ debugName: "placement" }] : []));
|
|
276
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.
|
|
277
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.
|
|
276
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: TooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
277
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.2", type: TooltipComponent, isStandalone: true, selector: "as-tooltip", ngImport: i0, template: `
|
|
278
278
|
<div
|
|
279
279
|
class="as-tooltip"
|
|
280
280
|
[class.as-placement-top]="placement() === 'bottom'"
|
|
@@ -290,7 +290,7 @@ class TooltipComponent {
|
|
|
290
290
|
</div>
|
|
291
291
|
`, isInline: true, styles: [":host{display:block}.as-tooltip{position:relative;display:inline-block;background:#616161f2;color:#fff;padding:6px 10px;border-radius:4px;font-size:12px;max-width:240px;box-shadow:0 2px 10px #0003;line-height:1.2}.as-tooltip-arrow{position:absolute;width:0;height:0}.as-placement-bottom .as-tooltip-arrow{left:50%;transform:translate(-50%);top:100%;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid rgba(97,97,97,.95)}.as-placement-top .as-tooltip-arrow{left:50%;transform:translate(-50%);bottom:100%;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid rgba(97,97,97,.95)}.as-placement-left .as-tooltip-arrow{top:50%;transform:translateY(-50%);right:100%;border-top:6px solid transparent;border-bottom:6px solid transparent;border-right:6px solid rgba(97,97,97,.95)}.as-placement-right .as-tooltip-arrow{top:50%;transform:translateY(-50%);left:100%;border-top:6px solid transparent;border-bottom:6px solid transparent;border-left:6px solid rgba(97,97,97,.95)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
292
292
|
}
|
|
293
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.
|
|
293
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: TooltipComponent, decorators: [{
|
|
294
294
|
type: Component,
|
|
295
295
|
args: [{ selector: 'as-tooltip', standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: `
|
|
296
296
|
<div
|
|
@@ -452,10 +452,10 @@ class TooltipDirective {
|
|
|
452
452
|
// fallback
|
|
453
453
|
return 'bottom';
|
|
454
454
|
}
|
|
455
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.
|
|
456
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.
|
|
455
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: TooltipDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
456
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.2", type: TooltipDirective, isStandalone: true, selector: "[asTooltip]", inputs: { asTooltip: { classPropertyName: "asTooltip", publicName: "asTooltip", isSignal: true, isRequired: false, transformFunction: null }, asTooltipPlacement: { classPropertyName: "asTooltipPlacement", publicName: "asTooltipPlacement", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "mouseenter": "show()", "mouseleave": "hide()" } }, ngImport: i0 });
|
|
457
457
|
}
|
|
458
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.
|
|
458
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: TooltipDirective, decorators: [{
|
|
459
459
|
type: Directive,
|
|
460
460
|
args: [{
|
|
461
461
|
selector: '[asTooltip]',
|
|
@@ -495,74 +495,12 @@ class TypeaheadPanelComponent {
|
|
|
495
495
|
if (this.onSelect)
|
|
496
496
|
this.onSelect(item);
|
|
497
497
|
}
|
|
498
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.
|
|
499
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.
|
|
500
|
-
<div
|
|
501
|
-
class="as-typeahead-panel"
|
|
502
|
-
role="listbox"
|
|
503
|
-
[attr.id]="id()"
|
|
504
|
-
[class.as-empty]="items().length === 0"
|
|
505
|
-
[style.max-height.px]="visibleCount() * itemHeight"
|
|
506
|
-
>
|
|
507
|
-
@for (item of items(); track item.key) {
|
|
508
|
-
<div
|
|
509
|
-
role="option"
|
|
510
|
-
[attr.id]="optionId($index)"
|
|
511
|
-
[attr.aria-selected]="$index === activeIndex()"
|
|
512
|
-
class="as-typeahead-option"
|
|
513
|
-
[class.as-active]="$index === activeIndex()"
|
|
514
|
-
(mouseenter)="setActive($index)"
|
|
515
|
-
(mousemove)="setActive($index)"
|
|
516
|
-
(click)="select($index)"
|
|
517
|
-
>
|
|
518
|
-
@if (optionTemplate) {
|
|
519
|
-
<ng-container *ngTemplateOutlet="optionTemplate; context: { $implicit: items()[$index] }"></ng-container>
|
|
520
|
-
} @else {
|
|
521
|
-
{{ displayWith()(item) }}
|
|
522
|
-
}
|
|
523
|
-
</div>
|
|
524
|
-
}
|
|
525
|
-
|
|
526
|
-
@if (items().length === 0) {
|
|
527
|
-
<div class="as-no-results">No results</div>
|
|
528
|
-
}
|
|
529
|
-
</div>
|
|
530
|
-
`, isInline: true, styles: [":host{display:block}.as-typeahead-panel{min-width:160px;overflow:scroll;background:#fff;border:1px solid rgba(0,0,0,.12);box-shadow:0 4px 10px #0000001f;border-radius:4px;padding:4px 0;box-sizing:border-box}.as-typeahead-option{padding:8px 12px;cursor:pointer;-webkit-user-select:none;user-select:none;color:#222;display:block}.as-typeahead-option.as-active{background:#f1f1f1}.as-no-results{padding:8px 12px;color:#00000080}.as-empty{min-width:120px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
498
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: TypeaheadPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
499
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.2", type: TypeaheadPanelComponent, isStandalone: true, selector: "as-typeahead-panel", ngImport: i0, template: "<div\n class=\"as-typeahead-panel\"\n role=\"listbox\"\n [attr.id]=\"id()\"\n [class.as-empty]=\"items().length === 0\"\n [style.max-height.px]=\"visibleCount() * itemHeight\"\n>\n @for (item of items(); track item.key) {\n <div\n role=\"option\"\n [attr.id]=\"optionId($index)\"\n [attr.aria-selected]=\"$index === activeIndex()\"\n class=\"as-typeahead-option\"\n [class.as-active]=\"$index === activeIndex()\"\n (mouseenter)=\"setActive($index)\"\n (mousemove)=\"setActive($index)\"\n (click)=\"select($index)\"\n >\n @if (optionTemplate) {\n <ng-container *ngTemplateOutlet=\"optionTemplate; context: { $implicit: items()[$index] }\"></ng-container>\n } @else {\n {{ displayWith()(item) }}\n }\n </div>\n }\n\n @if (items().length === 0) {\n <div class=\"as-no-results\">No results</div>\n }\n</div>\n", styles: [":host{display:block}.as-typeahead-panel{min-width:160px;overflow:auto;background:#fff;border:1px solid rgba(0,0,0,.12);box-shadow:0 4px 10px #0000001f;border-radius:4px;padding:4px 0;box-sizing:border-box}.as-typeahead-option{padding:8px 12px;cursor:pointer;-webkit-user-select:none;user-select:none;color:#222;display:block}.as-typeahead-option.as-active{background:#f1f1f1}.as-no-results{padding:8px 12px;color:#00000080}.as-empty{min-width:120px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
531
500
|
}
|
|
532
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.
|
|
501
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: TypeaheadPanelComponent, decorators: [{
|
|
533
502
|
type: Component,
|
|
534
|
-
args: [{ selector: 'as-typeahead-panel', standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template:
|
|
535
|
-
<div
|
|
536
|
-
class="as-typeahead-panel"
|
|
537
|
-
role="listbox"
|
|
538
|
-
[attr.id]="id()"
|
|
539
|
-
[class.as-empty]="items().length === 0"
|
|
540
|
-
[style.max-height.px]="visibleCount() * itemHeight"
|
|
541
|
-
>
|
|
542
|
-
@for (item of items(); track item.key) {
|
|
543
|
-
<div
|
|
544
|
-
role="option"
|
|
545
|
-
[attr.id]="optionId($index)"
|
|
546
|
-
[attr.aria-selected]="$index === activeIndex()"
|
|
547
|
-
class="as-typeahead-option"
|
|
548
|
-
[class.as-active]="$index === activeIndex()"
|
|
549
|
-
(mouseenter)="setActive($index)"
|
|
550
|
-
(mousemove)="setActive($index)"
|
|
551
|
-
(click)="select($index)"
|
|
552
|
-
>
|
|
553
|
-
@if (optionTemplate) {
|
|
554
|
-
<ng-container *ngTemplateOutlet="optionTemplate; context: { $implicit: items()[$index] }"></ng-container>
|
|
555
|
-
} @else {
|
|
556
|
-
{{ displayWith()(item) }}
|
|
557
|
-
}
|
|
558
|
-
</div>
|
|
559
|
-
}
|
|
560
|
-
|
|
561
|
-
@if (items().length === 0) {
|
|
562
|
-
<div class="as-no-results">No results</div>
|
|
563
|
-
}
|
|
564
|
-
</div>
|
|
565
|
-
`, styles: [":host{display:block}.as-typeahead-panel{min-width:160px;overflow:scroll;background:#fff;border:1px solid rgba(0,0,0,.12);box-shadow:0 4px 10px #0000001f;border-radius:4px;padding:4px 0;box-sizing:border-box}.as-typeahead-option{padding:8px 12px;cursor:pointer;-webkit-user-select:none;user-select:none;color:#222;display:block}.as-typeahead-option.as-active{background:#f1f1f1}.as-no-results{padding:8px 12px;color:#00000080}.as-empty{min-width:120px}\n"] }]
|
|
503
|
+
args: [{ selector: 'as-typeahead-panel', standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"as-typeahead-panel\"\n role=\"listbox\"\n [attr.id]=\"id()\"\n [class.as-empty]=\"items().length === 0\"\n [style.max-height.px]=\"visibleCount() * itemHeight\"\n>\n @for (item of items(); track item.key) {\n <div\n role=\"option\"\n [attr.id]=\"optionId($index)\"\n [attr.aria-selected]=\"$index === activeIndex()\"\n class=\"as-typeahead-option\"\n [class.as-active]=\"$index === activeIndex()\"\n (mouseenter)=\"setActive($index)\"\n (mousemove)=\"setActive($index)\"\n (click)=\"select($index)\"\n >\n @if (optionTemplate) {\n <ng-container *ngTemplateOutlet=\"optionTemplate; context: { $implicit: items()[$index] }\"></ng-container>\n } @else {\n {{ displayWith()(item) }}\n }\n </div>\n }\n\n @if (items().length === 0) {\n <div class=\"as-no-results\">No results</div>\n }\n</div>\n", styles: [":host{display:block}.as-typeahead-panel{min-width:160px;overflow:auto;background:#fff;border:1px solid rgba(0,0,0,.12);box-shadow:0 4px 10px #0000001f;border-radius:4px;padding:4px 0;box-sizing:border-box}.as-typeahead-option{padding:8px 12px;cursor:pointer;-webkit-user-select:none;user-select:none;color:#222;display:block}.as-typeahead-option.as-active{background:#f1f1f1}.as-no-results{padding:8px 12px;color:#00000080}.as-empty{min-width:120px}\n"] }]
|
|
566
504
|
}] });
|
|
567
505
|
|
|
568
506
|
class TypeaheadDirective {
|
|
@@ -797,8 +735,8 @@ class TypeaheadDirective {
|
|
|
797
735
|
console.log('%c DEBUG ', 'background: gray; color: white; font-weight: bold;', `AS typeahead -> ${value}`, ...rest);
|
|
798
736
|
}
|
|
799
737
|
}
|
|
800
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.
|
|
801
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.
|
|
738
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: TypeaheadDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
739
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.2", type: TypeaheadDirective, isStandalone: true, selector: "[asTypeahead]", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, displayWith: { classPropertyName: "displayWith", publicName: "displayWith", isSignal: true, isRequired: false, transformFunction: null }, filterBy: { classPropertyName: "filterBy", publicName: "filterBy", isSignal: true, isRequired: false, transformFunction: null }, visibleCount: { classPropertyName: "visibleCount", publicName: "visibleCount", isSignal: true, isRequired: false, transformFunction: null }, restrictToList: { classPropertyName: "restrictToList", publicName: "restrictToList", isSignal: true, isRequired: false, transformFunction: null }, asTypeaheadTemplate: { classPropertyName: "asTypeaheadTemplate", publicName: "asTypeaheadTemplate", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, enableLog: { classPropertyName: "enableLog", publicName: "enableLog", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { typeaheadOnSelect: "typeaheadOnSelect" }, host: { listeners: { "focus": "onFocus()", "click": "onFocus()", "input": "onInput($event)", "keydown": "onKeydown($event)", "blur": "onBlur()" } }, providers: [
|
|
802
740
|
{
|
|
803
741
|
provide: NG_VALUE_ACCESSOR,
|
|
804
742
|
useExisting: TypeaheadDirective,
|
|
@@ -806,7 +744,7 @@ class TypeaheadDirective {
|
|
|
806
744
|
},
|
|
807
745
|
], ngImport: i0 });
|
|
808
746
|
}
|
|
809
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.
|
|
747
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: TypeaheadDirective, decorators: [{
|
|
810
748
|
type: Directive,
|
|
811
749
|
args: [{
|
|
812
750
|
selector: '[asTypeahead]',
|
|
@@ -857,10 +795,14 @@ class AsFlatpickrComponent {
|
|
|
857
795
|
onChange = () => { };
|
|
858
796
|
onTouched = () => { };
|
|
859
797
|
disabled = false;
|
|
798
|
+
cvaAttached = false;
|
|
799
|
+
usingCva = false;
|
|
860
800
|
constructor(zone) {
|
|
861
801
|
this.zone = zone;
|
|
862
802
|
/* ---------------- Signal effect for syncing value ---------------- */
|
|
863
803
|
effect(() => {
|
|
804
|
+
if (this.usingCva)
|
|
805
|
+
return; // CVA owns the value, skip signal path
|
|
864
806
|
const val = this.value();
|
|
865
807
|
if (!this.fp)
|
|
866
808
|
return;
|
|
@@ -875,7 +817,7 @@ class AsFlatpickrComponent {
|
|
|
875
817
|
this.fp.setDate(date ?? [], false);
|
|
876
818
|
}
|
|
877
819
|
else {
|
|
878
|
-
this.fp.clear();
|
|
820
|
+
this.fp.clear(false); // suppress events
|
|
879
821
|
}
|
|
880
822
|
});
|
|
881
823
|
});
|
|
@@ -899,18 +841,17 @@ class AsFlatpickrComponent {
|
|
|
899
841
|
onChange: (dates, _str, instance) => this.handleChange(dates, instance),
|
|
900
842
|
onClose: () => this.zone.run(() => this.onTouched()),
|
|
901
843
|
});
|
|
844
|
+
// ✅ Sync initial FormControl value after Flatpickr init
|
|
845
|
+
this.zone.run(() => {
|
|
846
|
+
if (this.formControl?.value) {
|
|
847
|
+
this.writeValue(this.formControl.value);
|
|
848
|
+
}
|
|
849
|
+
});
|
|
902
850
|
// Manual validation for typed input
|
|
903
851
|
this.inputEl.nativeElement.addEventListener('blur', () => {
|
|
904
852
|
const typedValue = this.inputEl.nativeElement.value;
|
|
905
853
|
const parsed = this.parseTypedValue(typedValue);
|
|
906
|
-
this.zone.run(() =>
|
|
907
|
-
if (parsed === null) {
|
|
908
|
-
this.onChange(null);
|
|
909
|
-
}
|
|
910
|
-
else {
|
|
911
|
-
this.onChange(parsed);
|
|
912
|
-
}
|
|
913
|
-
});
|
|
854
|
+
this.zone.run(() => this.safeEmit(parsed));
|
|
914
855
|
});
|
|
915
856
|
});
|
|
916
857
|
}
|
|
@@ -928,11 +869,13 @@ class AsFlatpickrComponent {
|
|
|
928
869
|
this.fp.setDate(date ?? [], false);
|
|
929
870
|
}
|
|
930
871
|
else {
|
|
931
|
-
this.fp.clear();
|
|
872
|
+
this.fp.clear(false); // suppress events during write
|
|
932
873
|
}
|
|
933
874
|
}
|
|
934
875
|
registerOnChange(fn) {
|
|
935
876
|
this.onChange = fn;
|
|
877
|
+
this.cvaAttached = true;
|
|
878
|
+
this.usingCva = true;
|
|
936
879
|
}
|
|
937
880
|
registerOnTouched(fn) {
|
|
938
881
|
this.onTouched = fn;
|
|
@@ -944,12 +887,14 @@ class AsFlatpickrComponent {
|
|
|
944
887
|
}
|
|
945
888
|
/* ---------------- Handle Flatpickr changes ---------------- */
|
|
946
889
|
handleChange(dates, instance) {
|
|
890
|
+
if (!this.cvaAttached)
|
|
891
|
+
return;
|
|
947
892
|
const format = this.dateFormat() ?? this.getDefaultDateFormat();
|
|
948
893
|
let value = null;
|
|
949
894
|
if (this.mode() === 'range') {
|
|
950
|
-
if (dates.length
|
|
951
|
-
|
|
952
|
-
|
|
895
|
+
if (dates.length !== 2)
|
|
896
|
+
return; // only emit full ranges
|
|
897
|
+
value = dates.map(d => flatpickr.formatDate(d, format));
|
|
953
898
|
}
|
|
954
899
|
else if (dates[0]) {
|
|
955
900
|
if (this.enableTime() || this.timeOnly()) {
|
|
@@ -959,13 +904,15 @@ class AsFlatpickrComponent {
|
|
|
959
904
|
else {
|
|
960
905
|
value = flatpickr.formatDate(dates[0], format);
|
|
961
906
|
}
|
|
962
|
-
// ✅ REMOVE automatic close here
|
|
963
|
-
// instance.close();
|
|
964
907
|
}
|
|
965
|
-
this.zone.run(() =>
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
908
|
+
this.zone.run(() => this.safeEmit(value));
|
|
909
|
+
}
|
|
910
|
+
/* ---------------- Safe CVA emission ---------------- */
|
|
911
|
+
safeEmit(value) {
|
|
912
|
+
if (!this.cvaAttached)
|
|
913
|
+
return;
|
|
914
|
+
this.onChange(value);
|
|
915
|
+
this.valueChange.emit(value);
|
|
969
916
|
}
|
|
970
917
|
/* ---------------- Typed input parsing ---------------- */
|
|
971
918
|
parseTypedValue(inputValue) {
|
|
@@ -1000,25 +947,25 @@ class AsFlatpickrComponent {
|
|
|
1000
947
|
return 'Y-m-d';
|
|
1001
948
|
return 'Y-m-d';
|
|
1002
949
|
}
|
|
1003
|
-
/** Combine dateFormat + optional time for display/input */
|
|
1004
950
|
getDisplayFormat() {
|
|
1005
951
|
if (this.timeOnly()) {
|
|
1006
|
-
return this.time24h() ? 'H:i' : 'h:i K';
|
|
952
|
+
return this.time24h() ? 'H:i' : 'h:i K';
|
|
1007
953
|
}
|
|
1008
954
|
const baseFormat = this.dateFormat() ?? 'Y-m-d';
|
|
1009
955
|
if (this.enableTime()) {
|
|
1010
956
|
const timeFormat = this.time24h() ? 'H:i' : 'h:i K';
|
|
1011
|
-
return `${baseFormat} ${timeFormat}`;
|
|
957
|
+
return `${baseFormat} ${timeFormat}`;
|
|
1012
958
|
}
|
|
1013
|
-
return baseFormat;
|
|
959
|
+
return baseFormat;
|
|
1014
960
|
}
|
|
1015
961
|
/* ---------------- Cleanup ---------------- */
|
|
1016
962
|
ngOnDestroy() {
|
|
963
|
+
this.cvaAttached = false;
|
|
1017
964
|
this.fp?.destroy();
|
|
1018
965
|
this.fp = null;
|
|
1019
966
|
}
|
|
1020
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.
|
|
1021
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.1.
|
|
967
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: AsFlatpickrComponent, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
968
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.1.2", type: AsFlatpickrComponent, isStandalone: true, selector: "as-flatpickr", inputs: { mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, enableTime: { classPropertyName: "enableTime", publicName: "enableTime", isSignal: true, isRequired: false, transformFunction: null }, timeOnly: { classPropertyName: "timeOnly", publicName: "timeOnly", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, dateFormat: { classPropertyName: "dateFormat", publicName: "dateFormat", isSignal: true, isRequired: false, transformFunction: null }, elementClass: { classPropertyName: "elementClass", publicName: "elementClass", isSignal: true, isRequired: false, transformFunction: null }, time24h: { classPropertyName: "time24h", publicName: "time24h", isSignal: true, isRequired: false, transformFunction: null }, autocomplete: { classPropertyName: "autocomplete", publicName: "autocomplete", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, providers: [
|
|
1022
969
|
{
|
|
1023
970
|
provide: NG_VALUE_ACCESSOR,
|
|
1024
971
|
useExisting: forwardRef(() => AsFlatpickrComponent),
|
|
@@ -1033,7 +980,7 @@ class AsFlatpickrComponent {
|
|
|
1033
980
|
[id]="id()"
|
|
1034
981
|
/>`, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
1035
982
|
}
|
|
1036
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.
|
|
983
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: AsFlatpickrComponent, decorators: [{
|
|
1037
984
|
type: Component,
|
|
1038
985
|
args: [{
|
|
1039
986
|
selector: 'as-flatpickr',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentsmith.bgd-as-components.mjs","sources":["../../../projects/as-components/src/lib/as-components.ts","../../../projects/as-components/src/lib/modal-container/modal-container.component.ts","../../../projects/as-components/src/lib/modal-container/modal-container.component.html","../../../projects/as-components/src/lib/modal-container/base-modal.component.ts","../../../projects/as-components/src/lib/services/modal-ref.ts","../../../projects/as-components/src/lib/services/modal.service.ts","../../../projects/as-components/src/lib/tooltip/tooltip.component.ts","../../../projects/as-components/src/lib/tooltip/tooltip.directive.ts","../../../projects/as-components/src/lib/typeahead/typeahead-panel.component.ts","../../../projects/as-components/src/lib/typeahead/typeahead.directive.ts","../../../projects/as-components/src/lib/datepicker/as-flatpickr.component.ts","../../../projects/as-components/src/public-api.ts","../../../projects/as-components/src/agentsmith.bgd-as-components.ts"],"sourcesContent":["import { Component } from '@angular/core';\n\n@Component({\n\tselector: 'lib-as-components',\n\timports: [],\n\ttemplate: ` <p> as-components works! </p> `,\n\tstyles: ``,\n})\nexport class AsComponents {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ComponentRef, HostListener,\n output,\n signal,\n Type,\n ViewChild,\n ViewContainerRef, ViewEncapsulation\n} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {ModalRef} from '../services/modal-ref';\n\nexport interface ResultPayload {\n action: string,\n payload?: unknown\n}\n\n@Component({\n selector: 'as-modal-container',\n templateUrl: 'modal-container.component.html',\n styleUrl: 'modal-container.component.scss',\n imports: [CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class ModalContainerComponent {\n @ViewChild('contentHost', {read: ViewContainerRef, static: true}) contentHost!: ViewContainerRef;\n\n // signal-based inputs\n title = signal<string | undefined>(undefined);\n size = signal<'sm' | 'md' | 'lg'>('md');\n showClose = signal<boolean>(true);\n dismissSendEvent = signal<boolean>(false);\n minHeight = signal<string>('200px');\n\n closed = output<ResultPayload>();\n\n modalRef!: ModalRef;\n\n get sizeClass() {\n return this.size(); // template uses size() directly; keep helper for compatibility if needed\n }\n\n /**\n * Create a component inside the container and set inputs.\n * Supports:\n * - assigning to writable signals (calls `.set(...)`)\n * - assigning to plain properties\n * Also handles primitive `inputs` mapping to common names.\n */\n loadComponent<T>(component: Type<T>, inputs?: Partial<T> | any): ComponentRef<T> {\n const compRef = this.contentHost.createComponent<T>(component);\n\n /* 🟡 PRIME every signal (factory → real signal) */\n const inst = compRef.instance as Record<string, any>;\n for (const key in inst) {\n const prop = inst[key];\n if (typeof prop === 'function') {\n // **real consumer read** → forces input() to become WritableSignal\n const value = prop(); // ← Angular input() **must** be called\n }\n }\n\n for (const key in inst) {\n const prop = inst[key];\n if (typeof prop === 'function' && prop.length === 0) {\n // cheap check: call once (forces input() to become WritableSignal)\n prop();\n }\n }\n\n if (inputs !== undefined && inputs !== null) {\n if (typeof inputs === 'object' && !Array.isArray(inputs)) {\n for (const key of Object.keys(inputs)) {\n const prop = (compRef.instance as any)[key];\n this.setInput(compRef.instance as any, key, (inputs as any)[key], compRef);\n }\n } else {\n // primitive mapping\n // const inst = compRef.instance as any;\n const inst = compRef as any;\n if ('message' in inst) this.setInput(inst, 'message', inputs, compRef);\n else if ('data' in inst) this.setInput(inst, 'data', inputs, compRef);\n else this.setInput(inst, 'value', inputs, compRef);\n }\n\n // ensure rendering for OnPush / signal changes\n compRef.changeDetectorRef?.detectChanges();\n }\n\n return compRef;\n }\n\n private setInput(targetInstance: any, key: string, value: any, compRef: ComponentRef<any>) {\n const before = targetInstance[key];\n const target = targetInstance[key];\n\n if (typeof target === 'function' && 'set' in target && typeof target.set === 'function') {\n // ✅ writable signal\n target.set(value);\n } else if (typeof target === 'function') {\n // 🔹 signal is readonly → cannot set\n compRef.setInput(key, value);\n } else {\n // fallback for raw primitive (optional)\n targetInstance[key] = value;\n }\n }\n\n @HostListener('document:keydown', ['$event'])\n handleKeydown(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n this.dismiss();\n }\n }\n\n dismiss() {\n if (this.dismissSendEvent()) {\n this.closed.emit({action: 'dismiss', payload: false});\n } else {\n this.modalRef.dismiss();\n }\n }\n}\n","<div class=\"as-modal-backdrop\" (click)=\"dismiss()\"></div>\n<div class=\"as-modal\" [ngClass]=\"size()\" role=\"dialog\" aria-modal=\"true\" [style.min-height]=\"minHeight()\">\n\t@if (title() || showClose()) {\n\t\t<div class=\"as-modal-header\">\n\t\t\t<h3 class=\"as-modal-title\">{{ title() }}</h3>\n\t\t\t@if (showClose()) {\n\t\t\t\t<button class=\"btn-close close pull-right\" type=\"button\" (click)=\"dismiss()\"></button>\n\t\t\t}\n\t\t</div>\n\t}\n\t<div class=\"as-modal-body\">\n\t\t<ng-template #contentHost></ng-template>\n\t</div>\n</div>\n","import {Directive, input, output} from '@angular/core';\nimport {ResultPayload} from './modal-container.component';\n\n@Directive()\nexport abstract class BaseModalComponent {\n title = input<string>('');\n readonly onClose = output<ResultPayload | undefined>();\n\n // injected by ModalService\n private _dismiss?: () => void;\n\n /** called by ModalService */\n _registerDismiss(fn: () => void) {\n this._dismiss = fn;\n }\n\n /** CONFIRM */\n protected confirm(result: ResultPayload = {action: 'default'}) {\n this.onClose.emit(result);\n }\n\n /** confirm with payload */\n protected confirmWithPayload<T>(payload: T) {\n this.onClose.emit({\n action: 'confirm',\n payload,\n });\n }\n\n /** CANCEL / SILENT */\n protected dismiss() {\n this._dismiss?.();\n }\n}\n","// TypeScript\nimport { ComponentRef } from '@angular/core';\nimport { Subject, Observable } from 'rxjs';\nimport {ResultPayload} from '../modal-container/modal-container.component';\n\nexport class ModalRef {\n private readonly _afterClosed = new Subject<ResultPayload | undefined>();\n\tprivate _onClose = new Subject<ResultPayload>();\n\tonClose: Observable<ResultPayload> = this._onClose.asObservable();\n\n\tconstructor(\n\t\tprivate componentRef: ComponentRef<any>,\n\t\tprivate hostElement: HTMLElement,\n\t) {}\n\n afterClosed(): Observable<ResultPayload | undefined> {\n return this._afterClosed.asObservable();\n }\n\n\tclose(result: ResultPayload) {\n\t\tthis._onClose.next(result);\n\t\tthis._onClose.complete();\n this._afterClosed.next(result);\n this._afterClosed.complete();\n\t\tthis.destroy();\n\t}\n\n dismiss() {\n this._onClose.complete();\n this._afterClosed.next(undefined);\n this._afterClosed.complete();\n this.destroy();\n }\n\n\tprivate destroy() {\n\t\ttry {\n\t\t\tif (this.componentRef) {\n\t\t\t\tthis.componentRef.destroy();\n\t\t\t}\n\t\t} finally {\n\t\t\tif (this.hostElement && this.hostElement.parentNode) {\n\t\t\t\tthis.hostElement.parentNode.removeChild(this.hostElement);\n\t\t\t}\n\t\t}\n\t}\n}\n","import {\n ApplicationRef,\n ComponentRef,\n createComponent,\n EnvironmentInjector,\n Injectable,\n Injector,\n Type,\n} from '@angular/core';\nimport {ModalRef} from './modal-ref';\nimport {ModalContainerComponent, ResultPayload} from '../modal-container/modal-container.component';\nimport {BaseModalComponent} from '../modal-container/base-modal.component';\n\nexport interface ModalConfig {\n id?: string;\n size?: 'sm' | 'md' | 'lg' | 'xlg' | 'xxlg';\n title: string;\n minHeight?: string;\n dismissSendEvent?: boolean\n showClose?: boolean;\n enableLog?: boolean;\n data?: any;\n}\n\n@Injectable({providedIn: 'root'})\nexport class ModalService {\n private modalsById = new Map<string, ModalRef>();\n\n constructor(\n private injector: Injector,\n private appRef: ApplicationRef,\n private envInjector: EnvironmentInjector,\n ) {\n }\n\n getModalCount(): number {\n return this.modalsById.size;\n }\n\n show<T>(component: Type<T>, config: ModalConfig = {title: ''}): ModalRef {\n if (config.id && this.modalsById.has(config.id)) {\n console.log('Modal with id already open:', config.id);\n return this.modalsById.get(config.id)!;\n }\n\n const hostEl = document.createElement('div');\n document.body.appendChild(hostEl);\n\n const compRef: ComponentRef<ModalContainerComponent> = createComponent(ModalContainerComponent, {\n environmentInjector: this.envInjector,\n });\n\n // set container inputs using signal-aware helper\n this.setInput(compRef.instance as any, 'title', config.title);\n this.setInput(compRef.instance as any, 'size', config.size ?? 'lg');\n this.setInput(compRef.instance as any, 'showClose', config.showClose !== false);\n this.setInput(compRef.instance as any, 'enableLog', config.enableLog !== false);\n this.setInput(compRef.instance as any, 'dismissSendEvent', config.dismissSendEvent !== false);\n this.setInput(compRef.instance as any, 'minHeight', config.minHeight);\n\n this.appRef.attachView(compRef.hostView);\n hostEl.appendChild((compRef.hostView as any).rootNodes[0] as HTMLElement);\n\n // the container's loadComponent handles assigning inputs (including signals) to the child\n const childRef: ComponentRef<T> = compRef.instance.loadComponent(component, config.data);\n\n const modalRef = new ModalRef(compRef as any, hostEl);\n if (config.id) {\n this.modalsById.set(config.id, modalRef);\n modalRef.afterClosed().subscribe(() => {\n this.modalsById.delete(config.id!);\n });\n }\n\n (compRef.instance as any).modalRef = modalRef;\n compRef.instance.closed.subscribe((result: ResultPayload) => {\n modalRef.close(result);\n });\n\n const maybeBase = childRef.instance as BaseModalComponent;\n if (maybeBase._registerDismiss) {\n maybeBase._registerDismiss(() => {\n modalRef.dismiss(); // calls ModalRef.dismiss\n });\n }\n\n const maybeEmitter = (childRef.instance as any).onClose;\n if (maybeEmitter && typeof maybeEmitter.subscribe === 'function') {\n maybeEmitter.subscribe((res: any) => modalRef.close(res));\n }\n\n return modalRef;\n }\n\n private setInput(targetInstance: any, key: string, value: any) {\n const target = targetInstance[key];\n if (typeof target === 'function' && target && 'set' in target && typeof (target as any).set === 'function') {\n (target as any).set(value);\n } else {\n targetInstance[key] = value;\n }\n }\n}\n","import { Component, signal, WritableSignal, ChangeDetectionStrategy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n\tselector: 'as-tooltip',\n\tstandalone: true,\n\timports: [CommonModule],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplate: `\n\t\t<div\n\t\t\tclass=\"as-tooltip\"\n\t\t\t[class.as-placement-top]=\"placement() === 'bottom'\"\n\t\t\t[class.as-placement-bottom]=\"placement() === 'top'\"\n\t\t\t[class.as-placement-left]=\"placement() === 'right'\"\n\t\t\t[class.as-placement-right]=\"placement() === 'left'\"\n\t\t\t[attr.id]=\"id()\"\n\t\t\trole=\"tooltip\"\n\t\t\t[attr.aria-hidden]=\"!text()\"\n\t\t>\n\t\t\t{{ text() }}\n\t\t\t<span class=\"as-tooltip-arrow\" aria-hidden=\"true\"></span>\n\t\t</div>\n\t`,\n\tstyles: [\n\t\t`\n\t\t\t:host {\n\t\t\t\tdisplay: block;\n\t\t\t}\n\n\t\t\t.as-tooltip {\n\t\t\t\tposition: relative;\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tbackground: rgba(97, 97, 97, 0.95);\n\t\t\t\tcolor: #fff;\n\t\t\t\tpadding: 6px 10px;\n\t\t\t\tborder-radius: 4px;\n\t\t\t\tfont-size: 12px;\n\t\t\t\tmax-width: 240px;\n\t\t\t\tbox-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);\n\t\t\t\tline-height: 1.2;\n\t\t\t}\n\n\t\t\t/* Arrow base: zero-sized element using borders to form a triangle */\n\t\t\t.as-tooltip-arrow {\n\t\t\t\tposition: absolute;\n\t\t\t\twidth: 0;\n\t\t\t\theight: 0;\n\t\t\t}\n\n\t\t\t/* Bottom placement: tooltip sits above origin, arrow points downwards (at bottom of tooltip) */\n\t\t\t.as-placement-bottom .as-tooltip-arrow {\n\t\t\t\tleft: 50%;\n\t\t\t\ttransform: translateX(-50%);\n\t\t\t\ttop: 100%;\n\t\t\t\tborder-left: 6px solid transparent;\n\t\t\t\tborder-right: 6px solid transparent;\n\t\t\t\tborder-top: 6px solid rgba(97, 97, 97, 0.95);\n\t\t\t}\n\n\t\t\t/* Top placement: tooltip sits below origin, arrow points upwards (at top of tooltip) */\n\t\t\t.as-placement-top .as-tooltip-arrow {\n\t\t\t\tleft: 50%;\n\t\t\t\ttransform: translateX(-50%);\n\t\t\t\tbottom: 100%;\n\t\t\t\tborder-left: 6px solid transparent;\n\t\t\t\tborder-right: 6px solid transparent;\n\t\t\t\tborder-bottom: 6px solid rgba(97, 97, 97, 0.95);\n\t\t\t}\n\n\t\t\t/* Left placement: tooltip sits to the right of origin, arrow points left (at left edge) */\n\t\t\t.as-placement-left .as-tooltip-arrow {\n\t\t\t\ttop: 50%;\n\t\t\t\ttransform: translateY(-50%);\n\t\t\t\tright: 100%;\n\t\t\t\tborder-top: 6px solid transparent;\n\t\t\t\tborder-bottom: 6px solid transparent;\n\t\t\t\tborder-right: 6px solid rgba(97, 97, 97, 0.95);\n\t\t\t}\n\n\t\t\t/* Right placement: tooltip sits to the left of origin, arrow points right (at right edge) */\n\t\t\t.as-placement-right .as-tooltip-arrow {\n\t\t\t\ttop: 50%;\n\t\t\t\ttransform: translateY(-50%);\n\t\t\t\tleft: 100%;\n\t\t\t\tborder-top: 6px solid transparent;\n\t\t\t\tborder-bottom: 6px solid transparent;\n\t\t\t\tborder-left: 6px solid rgba(97, 97, 97, 0.95);\n\t\t\t}\n\t\t`,\n\t],\n})\nexport class TooltipComponent {\n\treadonly id: WritableSignal<string> = signal(`as-tooltip-${Math.random().toString(36).slice(2, 9)}`);\n\n\t// Writable text so directive can update via `.set(...)`\n\treadonly text: WritableSignal<string | null> = signal<string | null>(null);\n\n\t// Placement signal — set by directive to switch arrow orientation\n\treadonly placement: WritableSignal<'top' | 'bottom' | 'left' | 'right'> = signal<'top' | 'bottom' | 'left' | 'right'>('bottom');\n}\n","import { Directive, ElementRef, HostListener, inject, input, signal, computed, OnDestroy, WritableSignal, Injector } from '@angular/core';\nimport { Overlay, OverlayRef, FlexibleConnectedPositionStrategy, ConnectedPosition } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { Subscription } from 'rxjs';\nimport { TooltipComponent } from './tooltip.component';\n\n@Directive({\n\tselector: '[asTooltip]',\n\tstandalone: true,\n})\nexport class TooltipDirective implements OnDestroy {\n\tprivate readonly overlay = inject(Overlay);\n\tprivate readonly injector = inject(Injector);\n\tprivate readonly host = inject(ElementRef<HTMLElement>);\n\n\treadonly asTooltip = input<string | null>(null);\n\treadonly asTooltipPlacement = input<'top' | 'bottom' | 'left' | 'right' | 'auto'>('auto');\n\n\tprivate overlayRef: OverlayRef | null = null;\n\tprivate strategy: FlexibleConnectedPositionStrategy | null = null;\n\tprivate posSub: Subscription | null = null;\n\n\tprivate readonly positions = computed(() => this.buildPositions(this.asTooltipPlacement()));\n\n\t@HostListener('mouseenter')\n\tshow(): void {\n\t\tconst text = this.asTooltip();\n\t\tif (!text) return;\n\n\t\tif (!this.overlayRef) {\n\t\t\tthis.createOverlay();\n\t\t}\n\n\t\tif (!this.overlayRef!.hasAttached()) {\n\t\t\tconst portal = new ComponentPortal(TooltipComponent);\n\t\t\tconst compRef = this.overlayRef!.attach(portal);\n\n\t\t\tcompRef.instance.text.set(text);\n\n\t\t\t// set aria-describedby\n\t\t\tconst id = compRef.instance.id();\n\t\t\tthis.host.nativeElement.setAttribute('aria-describedby', id);\n\n\t\t\t// subscribe to CDK's chosen position and write to tooltip placement signal\n\t\t\tif (this.strategy && !this.posSub) {\n\t\t\t\tthis.posSub = this.strategy.positionChanges.subscribe((change: any) => {\n\t\t\t\t\t// `change` may contain different property names across CDK versions;\n\t\t\t\t\t// try common locations for the resolved connected position.\n\t\t\t\t\tconst pos: ConnectedPosition | undefined =\n\t\t\t\t\t\tchange?.connectionPair ?? change?.connectedPosition ?? change?.lastConnectedPosition ?? change;\n\n\t\t\t\t\tif (pos) {\n\t\t\t\t\t\tconst placement = this.mapPositionToPlacement(pos);\n\t\t\t\t\t\tcompRef.instance.placement.set(placement);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// initial placement hint: map the first position we provided\n\t\t\tconst initial = this.positions()[0];\n\t\t\tcompRef.instance.placement.set(this.mapPositionToPlacement(initial));\n\n\t\t\tthis.overlayRef!.updatePosition();\n\t\t}\n\t}\n\n\t@HostListener('mouseleave')\n\thide(): void {\n\t\tthis.detachOverlay();\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.detachOverlay(true);\n\t}\n\n\tprivate createOverlay(): void {\n\t\tconst strategy = this.overlay\n\t\t\t.position()\n\t\t\t.flexibleConnectedTo(this.host)\n\t\t\t.withPositions(this.positions())\n\t\t\t.withPush(true) as FlexibleConnectedPositionStrategy;\n\n\t\t// store strategy so we can watch positionChanges\n\t\tthis.strategy = strategy;\n\n\t\tstrategy.withDefaultOffsetY(8);\n\t\tstrategy.withDefaultOffsetX(8);\n\n\t\tthis.overlayRef = this.overlay.create({\n\t\t\tpositionStrategy: strategy,\n\t\t\tscrollStrategy: this.overlay.scrollStrategies.reposition(),\n\t\t\tpanelClass: 'as-tooltip-panel',\n\t\t\thasBackdrop: false,\n\t\t});\n\t}\n\n\tprivate detachOverlay(dispose = false): void {\n\t\tif (!this.overlayRef) return;\n\n\t\tif (this.overlayRef.hasAttached()) {\n\t\t\tconst hostEl = this.host.nativeElement;\n\t\t\tif (hostEl.getAttribute('aria-describedby')) {\n\t\t\t\thostEl.removeAttribute('aria-describedby');\n\t\t\t}\n\t\t}\n\n\t\tthis.overlayRef.detach();\n\n\t\tif (this.posSub) {\n\t\t\tthis.posSub.unsubscribe();\n\t\t\tthis.posSub = null;\n\t\t}\n\n\t\tif (dispose) {\n\t\t\tthis.overlayRef.dispose();\n\t\t\tthis.overlayRef = null;\n\t\t\tthis.strategy = null;\n\t\t}\n\t}\n\n\tprivate buildPositions(preferred: 'top' | 'bottom' | 'left' | 'right' | 'auto'): ConnectedPosition[] {\n\t\tconst top: ConnectedPosition = {\n\t\t\toriginX: 'center',\n\t\t\toriginY: 'top',\n\t\t\toverlayX: 'center',\n\t\t\toverlayY: 'bottom',\n\t\t\toffsetY: -8,\n\t\t};\n\t\tconst bottom: ConnectedPosition = {\n\t\t\toriginX: 'center',\n\t\t\toriginY: 'bottom',\n\t\t\toverlayX: 'center',\n\t\t\toverlayY: 'top',\n\t\t\toffsetY: 8,\n\t\t};\n\t\tconst left: ConnectedPosition = {\n\t\t\toriginX: 'start',\n\t\t\toriginY: 'center',\n\t\t\toverlayX: 'end',\n\t\t\toverlayY: 'center',\n\t\t\toffsetX: -8,\n\t\t};\n\t\tconst right: ConnectedPosition = {\n\t\t\toriginX: 'end',\n\t\t\toriginY: 'center',\n\t\t\toverlayX: 'start',\n\t\t\toverlayY: 'center',\n\t\t\toffsetX: 8,\n\t\t};\n\n\t\tif (preferred === 'auto') {\n\t\t\treturn [bottom, top, right, left];\n\t\t}\n\n\t\tswitch (preferred) {\n\t\t\tcase 'top':\n\t\t\t\treturn [top, bottom, right, left];\n\t\t\tcase 'bottom':\n\t\t\t\treturn [bottom, top, right, left];\n\t\t\tcase 'left':\n\t\t\t\treturn [left, right, bottom, top];\n\t\t\tcase 'right':\n\t\t\t\treturn [right, left, bottom, top];\n\t\t\tdefault:\n\t\t\t\treturn [bottom, top, right, left];\n\t\t}\n\t}\n\n\tprivate mapPositionToPlacement(pos: ConnectedPosition): 'top' | 'bottom' | 'left' | 'right' {\n\t\t// Determine placement by comparing origin/overlay alignment used by CDK\n\t\tif (pos.originY === 'top' && pos.overlayY === 'bottom') return 'top';\n\t\tif (pos.originY === 'bottom' && pos.overlayY === 'top') return 'bottom';\n\t\tif (pos.originX === 'start' && pos.overlayX === 'end') return 'left';\n\t\tif (pos.originX === 'end' && pos.overlayX === 'start') return 'right';\n\t\t// fallback\n\t\treturn 'bottom';\n\t}\n}\n","import { Component, signal, WritableSignal, ChangeDetectionStrategy, TemplateRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nexport interface Option {\n\tkey: string;\n\tvalue: string;\n}\n\n@Component({\n\tselector: 'as-typeahead-panel',\n\tstandalone: true,\n\timports: [CommonModule],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplate: `\n\t\t<div\n\t\t\tclass=\"as-typeahead-panel\"\n\t\t\trole=\"listbox\"\n\t\t\t[attr.id]=\"id()\"\n\t\t\t[class.as-empty]=\"items().length === 0\"\n\t\t\t[style.max-height.px]=\"visibleCount() * itemHeight\"\n\t\t>\n\t\t\t@for (item of items(); track item.key) {\n\t\t\t\t<div\n\t\t\t\t\trole=\"option\"\n\t\t\t\t\t[attr.id]=\"optionId($index)\"\n\t\t\t\t\t[attr.aria-selected]=\"$index === activeIndex()\"\n\t\t\t\t\tclass=\"as-typeahead-option\"\n\t\t\t\t\t[class.as-active]=\"$index === activeIndex()\"\n\t\t\t\t\t(mouseenter)=\"setActive($index)\"\n\t\t\t\t\t(mousemove)=\"setActive($index)\"\n\t\t\t\t\t(click)=\"select($index)\"\n\t\t\t\t>\n\t\t\t\t\t@if (optionTemplate) {\n\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"optionTemplate; context: { $implicit: items()[$index] }\"></ng-container>\n\t\t\t\t\t} @else {\n\t\t\t\t\t\t{{ displayWith()(item) }}\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t}\n\n\t\t\t@if (items().length === 0) {\n\t\t\t\t<div class=\"as-no-results\">No results</div>\n\t\t\t}\n\t\t</div>\n\t`,\n\tstyles: [\n\t\t`\n\t\t\t:host {\n\t\t\t\tdisplay: block;\n\t\t\t}\n\t\t\t.as-typeahead-panel {\n\t\t\t\tmin-width: 160px;\n\t\t\t\toverflow: scroll;\n\t\t\t\tbackground: #fff;\n\t\t\t\tborder: 1px solid rgba(0, 0, 0, 0.12);\n\t\t\t\tbox-shadow: 0 4px 10px rgba(0, 0, 0, 0.12);\n\t\t\t\tborder-radius: 4px;\n\t\t\t\tpadding: 4px 0;\n\t\t\t\tbox-sizing: border-box;\n\t\t\t}\n\t\t\t.as-typeahead-option {\n\t\t\t\tpadding: 8px 12px;\n\t\t\t\tcursor: pointer;\n\t\t\t\tuser-select: none;\n\t\t\t\tcolor: #222;\n\t\t\t\tdisplay: block;\n\t\t\t}\n\t\t\t.as-typeahead-option.as-active {\n\t\t\t\tbackground: #f1f1f1;\n\t\t\t}\n\t\t\t.as-no-results {\n\t\t\t\tpadding: 8px 12px;\n\t\t\t\tcolor: rgba(0, 0, 0, 0.5);\n\t\t\t}\n\t\t\t.as-empty {\n\t\t\t\tmin-width: 120px;\n\t\t\t}\n\t\t`,\n\t],\n})\nexport class TypeaheadPanelComponent {\n\treadonly id: WritableSignal<string> = signal(`as-typeahead-panel-${Math.random().toString(36).slice(2, 9)}`);\n\n\treadonly items: WritableSignal<Option[]> = signal<Option[]>([]);\n\t// default shows the `value` field\n\treadonly displayWith: WritableSignal<(item: Option) => string> = signal<(item: Option) => string>((i: Option) => String(i?.value ?? ''));\n\n\treadonly activeIndex: WritableSignal<number | null> = signal<number | null>(null);\n\n\t// visual config: how many items visible before scrollbar (set by directive)\n\treadonly visibleCount: WritableSignal<number> = signal<number>(5);\n\treadonly itemHeight = 40; // px - used to compute maxHeight\n\n\t// optional custom template & callback (set by directive)\n\toptionTemplate: TemplateRef<any> | null = null;\n\tonSelect: ((item: Option) => void) | null = null;\n\n\toptionId(i: number) {\n\t\treturn `${this.id()}-option-${i}`;\n\t}\n\n\tsetActive(i: number | null) {\n\t\tthis.activeIndex.set(i);\n\t}\n\n\tselect(i: number) {\n\t\tconst items = this.items();\n\t\tif (i == null || i < 0 || i >= items.length) return;\n\t\tconst item = items[i];\n\t\tif (this.onSelect) this.onSelect(item);\n\t}\n}\n","import {\n\tDirective,\n\tElementRef,\n\tHostListener,\n\tinject,\n\tinput,\n\tsignal,\n\tcomputed,\n\tOnDestroy,\n\tTemplateRef,\n\tViewContainerRef,\n\teffect,\n\toutput,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Overlay, OverlayRef, FlexibleConnectedPositionStrategy, ConnectedPosition } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { TypeaheadPanelComponent, Option } from './typeahead-panel.component';\n\n@Directive({\n\tselector: '[asTypeahead]',\n\tstandalone: true,\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: TypeaheadDirective,\n\t\t\tmulti: true,\n\t\t},\n\t],\n})\nexport class TypeaheadDirective implements ControlValueAccessor, OnDestroy {\n\t/* ---------------- injections ---------------- */\n\tprivate readonly overlay = inject(Overlay);\n\tprivate readonly host = inject(ElementRef<HTMLInputElement>);\n\tprivate readonly vcr = inject(ViewContainerRef);\n\n\t/* ---------------- inputs ---------------- */\n\treadonly options = input<Option[] | null>(null);\n\treadonly displayWith = input<(item: Option) => string>((it: Option) => String(it?.value ?? ''));\n\treadonly filterBy = input<'key' | 'value'>('value');\n\treadonly visibleCount = input<number>(5);\n\treadonly restrictToList = input<boolean>(false);\n\treadonly asTypeaheadTemplate = input<TemplateRef<any> | null>(null);\n\treadonly disabled = input<boolean>(false);\n\treadonly enableLog = input<boolean>(false);\n\n\t/* ---------------- outputs ---------------- */\n\treadonly typeaheadOnSelect = output<Option | null>();\n\n\t/* ---------------- internal ---------------- */\n\tprivate readonly cvaDisabled = signal(false);\n\tprivate readonly selected = signal<Option | null>(null);\n\n\tprivate overlayRef: OverlayRef | null = null;\n\tprivate panel: TypeaheadPanelComponent | null = null;\n\tprivate destroyed = false;\n\n\tprivate onChange: (value: any) => void = () => {};\n\tprivate onTouched: () => void = () => {};\n\n\tprivate readonly positions = computed(() => this.buildPositions());\n\n\tconstructor() {\n\t\t/* sync initial value -> input text */\n\t\teffect(() => {\n\t\t\tconst sel = this.selected();\n\t\t\tif (!sel) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.log('init select value', sel.key, sel.value);\n\t\t\tthis.host.nativeElement.value = this.displayWith()(sel);\n\t\t});\n\t}\n\n\t/* ---------------- CVA ---------------- */\n\twriteValue(value: any): void {\n\t\tif (value == null) {\n\t\t\tthis.setInternalSelection(null);\n\t\t\tthis.host.nativeElement.value = '';\n\t\t\treturn;\n\t\t}\n\n\t\tconst match = this.options()?.find(o => o.key === value) ?? null;\n\t\tthis.setInternalSelection(match);\n\n\t\tif (match) {\n\t\t\tthis.host.nativeElement.value = this.displayWith()(match);\n\t\t} else {\n\t\t\tthis.host.nativeElement.value = String(value);\n\t\t}\n\t}\n\n\tregisterOnChange(fn: any): void {\n\t\tthis.onChange = fn;\n\t}\n\n\tregisterOnTouched(fn: any): void {\n\t\tthis.onTouched = fn;\n\t}\n\n\tsetDisabledState(isDisabled: boolean): void {\n\t\tthis.log('component disabled', isDisabled);\n\t\tthis.cvaDisabled.set(isDisabled);\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.destroyed = true;\n\t\tthis.detach(true);\n\t}\n\n\t/* ---------------- host events ---------------- */\n\t@HostListener('focus')\n\t@HostListener('click')\n\tonFocus() {\n\t\tif (this.isDisabled()) return;\n\t\tthis.open();\n\t\tthis.showAll();\n\t}\n\n\t@HostListener('input', ['$event'])\n\tonInput(e: Event) {\n\t\tif (this.isDisabled()) return;\n\t\tconst value = (e.target as HTMLInputElement).value;\n\t\tvalue ? this.filter(value) : this.showAll();\n\t}\n\n\t@HostListener('keydown', ['$event'])\n\tonKeydown(e: KeyboardEvent) {\n\t\tif (this.isDisabled() || !this.panel) return;\n\n\t\tconst items = this.panel.items();\n\t\tif (!items.length) return;\n\n\t\tlet idx = this.panel.activeIndex();\n\n\t\tswitch (e.key) {\n\t\t\tcase 'ArrowDown':\n\t\t\t\te.preventDefault();\n\t\t\t\tidx = idx == null ? 0 : Math.min(items.length - 1, idx + 1);\n\t\t\t\tthis.panel.setActive(idx);\n\t\t\t\tbreak;\n\n\t\t\tcase 'ArrowUp':\n\t\t\t\te.preventDefault();\n\t\t\t\tidx = idx == null ? items.length - 1 : Math.max(0, idx - 1);\n\t\t\t\tthis.panel.setActive(idx);\n\t\t\t\tbreak;\n\n\t\t\tcase 'Enter':\n\t\t\t\te.preventDefault();\n\t\t\t\tif (idx != null) this.panel.select(idx);\n\t\t\t\tbreak;\n\n\t\t\tcase 'Escape':\n\t\t\t\tthis.close();\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\t@HostListener('blur')\n\tonBlur() {\n\t\tsetTimeout(() => {\n\t\t\tif (this.destroyed) return;\n\n\t\t\tconst text = this.host.nativeElement.value;\n\t\t\tconst match = this.findMatch(text);\n\n\t\t\tif (this.restrictToList()) {\n\t\t\t\tthis.commitSelection(match);\n\t\t\t\tthis.host.nativeElement.value = match ? this.displayWith()(match) : '';\n\t\t\t} else if (match) {\n\t\t\t\tthis.commitSelection(match);\n\t\t\t} else {\n\t\t\t\tthis.commitSelection(null);\n\t\t\t}\n\n\t\t\tthis.onTouched();\n\t\t\tthis.close();\n\t\t}, 150);\n\t}\n\n\t/* ---------------- overlay ---------------- */\n\tprivate open() {\n\t\tif (!this.overlayRef) this.createOverlay();\n\t\tif (!this.overlayRef!.hasAttached()) {\n\t\t\tconst portal = new ComponentPortal(TypeaheadPanelComponent, this.vcr);\n\t\t\tconst ref = this.overlayRef!.attach(portal);\n\t\t\tthis.panel = ref.instance;\n\n\t\t\tthis.panel.displayWith.set(this.displayWith());\n\t\t\tthis.panel.optionTemplate = this.asTypeaheadTemplate();\n\t\t\tthis.panel.visibleCount.set(this.visibleCount());\n\t\t\tthis.panel.onSelect = (it: Option) => this.select(it);\n\t\t}\n\t}\n\n\tprivate close() {\n\t\tthis.detach();\n\t}\n\n\tprivate detach(dispose = false) {\n\t\tif (!this.overlayRef) return;\n\t\tif (this.overlayRef.hasAttached()) this.overlayRef.detach();\n\t\tif (dispose) {\n\t\t\tthis.overlayRef.dispose();\n\t\t\tthis.overlayRef = null;\n\t\t\tthis.panel = null;\n\t\t}\n\t}\n\n\tprivate createOverlay() {\n\t\tconst strategy = this.overlay\n\t\t\t.position()\n\t\t\t.flexibleConnectedTo(this.host)\n\t\t\t.withPositions(this.positions())\n\t\t\t.withPush(true) as FlexibleConnectedPositionStrategy;\n\n\t\tstrategy.withDefaultOffsetY(4);\n\n\t\tthis.overlayRef = this.overlay.create({\n\t\t\tpositionStrategy: strategy,\n\t\t\tscrollStrategy: this.overlay.scrollStrategies.reposition(),\n\t\t});\n\t}\n\n\t/* ---------------- helpers ---------------- */\n\tprivate showAll() {\n\t\tthis.open();\n\t\tthis.panel?.items.set(this.options() ?? []);\n\t\tthis.panel?.setActive(null);\n\t}\n\n\tprivate filter(q: string) {\n\t\tconst key = q.toLowerCase();\n\t\tconst list = this.options() ?? [];\n\t\tconst filtered = list.filter(it => {\n\t\t\tconst target = this.filterBy() === 'key' ? String(it.key) : String(it.value);\n\t\t\treturn target.toLowerCase().includes(key);\n\t\t});\n\n\t\tthis.open();\n\t\tthis.panel?.items.set(filtered);\n\t\tthis.panel?.setActive(filtered.length ? 0 : null);\n\t}\n\n\tprivate select(item: Option) {\n\t\tthis.commitSelection(item);\n\t\tthis.host.nativeElement.value = this.displayWith()(item);\n\t\tthis.close();\n\t\tthis.host.nativeElement.focus();\n\t}\n\n\tprivate findMatch(text: string): Option | null {\n\t\tconst list = this.options() ?? [];\n\t\treturn list.find(it => this.displayWith()(it) === text) ?? list.find(it => String(it.key) === text) ?? null;\n\t}\n\n\tprivate isDisabled(): boolean {\n\t\treturn this.disabled() || this.cvaDisabled();\n\t}\n\n\tprivate buildPositions(): ConnectedPosition[] {\n\t\treturn [\n\t\t\t{\n\t\t\t\toriginX: 'start',\n\t\t\t\toriginY: 'bottom',\n\t\t\t\toverlayX: 'start',\n\t\t\t\toverlayY: 'top',\n\t\t\t\toffsetY: 4,\n\t\t\t},\n\t\t\t{\n\t\t\t\toriginX: 'start',\n\t\t\t\toriginY: 'top',\n\t\t\t\toverlayX: 'start',\n\t\t\t\toverlayY: 'bottom',\n\t\t\t\toffsetY: -4,\n\t\t\t},\n\t\t];\n\t}\n\n\tprivate commitSelection(sel: Option | null) {\n\t\tthis.selected.set(sel);\n\t\tthis.log('Set value and emit', sel);\n\n\t\t// CVA\n\t\tthis.onChange(sel?.key ?? null);\n\n\t\t// OUTPUT\n\t\tthis.typeaheadOnSelect.emit(sel);\n\t}\n\n\tprivate setInternalSelection(sel: Option | null) {\n\t\tthis.log('Set value only', sel);\n\t\tthis.selected.set(sel);\n\t}\n\n\tlog(value: any, ...rest: any[]): void {\n\t\tif (this.enableLog() || localStorage.getItem('loggerEnable')) {\n\t\t\tconsole.log('%c DEBUG ', 'background: gray; color: white; font-weight: bold;', `AS typeahead -> ${value}`, ...rest);\n\t\t}\n\t}\n}\n","import { AfterViewInit, Component, effect, ElementRef, forwardRef, input, NgZone, OnDestroy, output, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport flatpickr from 'flatpickr';\nimport 'flatpickr/dist/flatpickr.css';\nimport { NgClass } from '@angular/common';\n\nimport { FlatpickrDateFormat, FlatpickrMode, FlatpickrValue } from './flatpickr.types';\n\n@Component({\n\tselector: 'as-flatpickr',\n\tstandalone: true,\n\ttemplate: `<input\n\t\t#input\n\t\ttype=\"text\"\n\t\t[attr.placeholder]=\"placeholder()\"\n\t\t[ngClass]=\"elementClass()\"\n\t\t[autocomplete]=\"autocomplete()\"\n\t\t[id]=\"id()\"\n\t/>`,\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: forwardRef(() => AsFlatpickrComponent),\n\t\t\tmulti: true,\n\t\t},\n\t],\n\timports: [NgClass],\n})\nexport class AsFlatpickrComponent implements ControlValueAccessor, AfterViewInit, OnDestroy {\n\t/* ---------------- Inputs ---------------- */\n\tmode = input<FlatpickrMode>('single');\n\tenableTime = input(false);\n\ttimeOnly = input(false);\n\tplaceholder = input<string | null>(null);\n\tid = input<string | null>(null);\n\tdateFormat = input<FlatpickrDateFormat>('Y-m-d');\n\telementClass = input<string>('form-control form-icon-calendar');\n\ttime24h = input(true);\n\tautocomplete = input<'on' | 'off'>('off');\n\n\t/* External value (string-based now) */\n\tvalue = input<FlatpickrValue>(null);\n\tvalueChange = output<FlatpickrValue>();\n\n\t/* ---------------- Internals ---------------- */\n\t@ViewChild('input', { static: true }) private inputEl!: ElementRef<HTMLInputElement>;\n\tprivate fp: flatpickr.Instance | null = null;\n\n\tprivate onChange: (value: FlatpickrValue) => void = () => {};\n\tprivate onTouched: () => void = () => {};\n\tprivate disabled = false;\n\n\tconstructor(private zone: NgZone) {\n\t\t/* ---------------- Signal effect for syncing value ---------------- */\n\t\teffect(() => {\n\t\t\tconst val = this.value();\n\t\t\tif (!this.fp) return;\n\n\t\t\tthis.zone.runOutsideAngular(() => {\n\t\t\t\tconst displayFormat = this.getDisplayFormat();\n\t\t\t\tif (Array.isArray(val)) {\n\t\t\t\t\tconst dates = val.map(v => flatpickr.parseDate(v, displayFormat));\n\t\t\t\t\tthis.fp!.setDate(dates as Date[], false);\n\t\t\t\t} else if (val) {\n\t\t\t\t\tconst date = flatpickr.parseDate(val, displayFormat);\n\t\t\t\t\tthis.fp!.setDate(date ?? [], false);\n\t\t\t\t} else {\n\t\t\t\t\tthis.fp!.clear();\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\tprivate handleOpen = () => {\n\t\tif (this.disabled) {\n\t\t\tthis.fp?.close();\n\t\t}\n\t};\n\n\t/* ---------------- Initialize Flatpickr ---------------- */\n\tngAfterViewInit() {\n\t\tthis.zone.runOutsideAngular(() => {\n\t\t\tthis.fp = flatpickr(this.inputEl.nativeElement, {\n\t\t\t\tmode: this.mode(),\n\t\t\t\tenableTime: this.enableTime() || this.timeOnly(),\n\t\t\t\tnoCalendar: this.timeOnly(),\n\t\t\t\tallowInput: true,\n\t\t\t\ttime_24hr: this.time24h(),\n\t\t\t\tdateFormat: this.getDisplayFormat(),\n\t\t\t\tonOpen: this.handleOpen,\n\t\t\t\tonChange: (dates, _str, instance) => this.handleChange(dates, instance),\n\t\t\t\tonClose: () => this.zone.run(() => this.onTouched()),\n\t\t\t});\n\n\t\t\t// Manual validation for typed input\n\t\t\tthis.inputEl.nativeElement.addEventListener('blur', () => {\n\t\t\t\tconst typedValue = this.inputEl.nativeElement.value;\n\t\t\t\tconst parsed = this.parseTypedValue(typedValue);\n\n\t\t\t\tthis.zone.run(() => {\n\t\t\t\t\tif (parsed === null) {\n\t\t\t\t\t\tthis.onChange(null);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.onChange(parsed);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n\n\t/* ---------------- CVA Implementation ---------------- */\n\twriteValue(value: FlatpickrValue): void {\n\t\tif (!this.fp) return;\n\t\tconst displayFormat = this.getDisplayFormat();\n\t\tif (Array.isArray(value)) {\n\t\t\tconst dates = value.map(v => flatpickr.parseDate(v, displayFormat));\n\t\t\tthis.fp.setDate(dates as Date[], false);\n\t\t} else if (value) {\n\t\t\tconst date = flatpickr.parseDate(value, displayFormat);\n\t\t\tthis.fp.setDate(date ?? [], false);\n\t\t} else {\n\t\t\tthis.fp.clear();\n\t\t}\n\t}\n\n\tregisterOnChange(fn: (value: FlatpickrValue) => void): void {\n\t\tthis.onChange = fn;\n\t}\n\n\tregisterOnTouched(fn: () => void): void {\n\t\tthis.onTouched = fn;\n\t}\n\n\tsetDisabledState(disabled: boolean): void {\n\t\tthis.disabled = disabled;\n\t\tif (this.inputEl) this.inputEl.nativeElement.disabled = disabled;\n\t}\n\n\t/* ---------------- Handle Flatpickr changes ---------------- */\n\tprivate handleChange(dates: Date[], instance: flatpickr.Instance) {\n\t\tconst format = this.dateFormat() ?? this.getDefaultDateFormat();\n\t\tlet value: FlatpickrValue = null;\n\n\t\tif (this.mode() === 'range') {\n\t\t\tif (dates.length === 2) {\n\t\t\t\tvalue = dates.map(d => flatpickr.formatDate(d, format)) as [string, string];\n\t\t\t}\n\t\t} else if (dates[0]) {\n\t\t\tif (this.enableTime() || this.timeOnly()) {\n\t\t\t\tconst timeFormat = this.time24h() ? 'H:i' : 'h:i K';\n\t\t\t\tvalue = flatpickr.formatDate(dates[0], `${format} ${timeFormat}`);\n\t\t\t} else {\n\t\t\t\tvalue = flatpickr.formatDate(dates[0], format);\n\t\t\t}\n\n\t\t\t// ✅ REMOVE automatic close here\n\t\t\t// instance.close();\n\t\t}\n\n\t\tthis.zone.run(() => {\n\t\t\tthis.onChange(value);\n\t\t\tthis.valueChange.emit(value);\n\t\t});\n\t}\n\n\t/* ---------------- Typed input parsing ---------------- */\n\tprivate parseTypedValue(inputValue: string): FlatpickrValue {\n\t\ttry {\n\t\t\tconst displayFormat = this.getDisplayFormat();\n\t\t\tif (!inputValue) return null;\n\n\t\t\tif (this.mode() === 'range') {\n\t\t\t\tconst parts = inputValue.split(' to ').map(s => s.trim());\n\t\t\t\tif (parts.length !== 2) return null;\n\n\t\t\t\tconst start = flatpickr.parseDate(parts[0], displayFormat);\n\t\t\t\tconst end = flatpickr.parseDate(parts[1], displayFormat);\n\t\t\t\tif (!start || !end || start > end) return null;\n\n\t\t\t\treturn [flatpickr.formatDate(start, displayFormat), flatpickr.formatDate(end, displayFormat)];\n\t\t\t} else {\n\t\t\t\tconst parsed = flatpickr.parseDate(inputValue, displayFormat);\n\t\t\t\treturn parsed ? flatpickr.formatDate(parsed, displayFormat) : null;\n\t\t\t}\n\t\t} catch {\n\t\t\treturn null;\n\t\t}\n\t}\n\n\t/* ---------------- Format helpers ---------------- */\n\tprivate getDefaultDateFormat(): string {\n\t\tif (this.timeOnly()) return 'H:i';\n\t\tif (this.enableTime()) return 'Y-m-d';\n\t\treturn 'Y-m-d';\n\t}\n\n\t/** Combine dateFormat + optional time for display/input */\n\tprivate getDisplayFormat(): string {\n\t\tif (this.timeOnly()) {\n\t\t\treturn this.time24h() ? 'H:i' : 'h:i K'; // time only\n\t\t}\n\t\tconst baseFormat = this.dateFormat() ?? 'Y-m-d';\n\t\tif (this.enableTime()) {\n\t\t\tconst timeFormat = this.time24h() ? 'H:i' : 'h:i K';\n\t\t\treturn `${baseFormat} ${timeFormat}`; // date + time\n\t\t}\n\t\treturn baseFormat; // date only\n\t}\n\n\t/* ---------------- Cleanup ---------------- */\n\tngOnDestroy() {\n\t\tthis.fp?.destroy();\n\t\tthis.fp = null;\n\t}\n}\n","/*\n * Public API Surface of as-components\n */\n\nexport * from './lib/as-components';\nexport * from './lib/modal-container/modal-container.component';\nexport * from './lib/modal-container/base-modal.component';\nexport * from './lib/services/modal-ref';\nexport * from './lib/services/modal.service';\nexport * from './lib/tooltip/tooltip.directive';\nexport * from './lib/tooltip/tooltip.component';\nexport * from './lib/typeahead/typeahead.directive';\nexport * from './lib/typeahead/typeahead-panel.component';\nexport * from './lib/datepicker/as-flatpickr.component';\nexport * from './lib/datepicker/flatpickr.types';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agentsmith.bgd-as-components.mjs","sources":["../../../projects/as-components/src/lib/as-components.ts","../../../projects/as-components/src/lib/modal-container/modal-container.component.ts","../../../projects/as-components/src/lib/modal-container/modal-container.component.html","../../../projects/as-components/src/lib/modal-container/base-modal.component.ts","../../../projects/as-components/src/lib/services/modal-ref.ts","../../../projects/as-components/src/lib/services/modal.service.ts","../../../projects/as-components/src/lib/tooltip/tooltip.component.ts","../../../projects/as-components/src/lib/tooltip/tooltip.directive.ts","../../../projects/as-components/src/lib/typeahead/typeahead-panel.component.ts","../../../projects/as-components/src/lib/typeahead/typeahead-panel.component.html","../../../projects/as-components/src/lib/typeahead/typeahead.directive.ts","../../../projects/as-components/src/lib/datepicker/as-flatpickr.component.ts","../../../projects/as-components/src/public-api.ts","../../../projects/as-components/src/agentsmith.bgd-as-components.ts"],"sourcesContent":["import { Component } from '@angular/core';\n\n@Component({\n\tselector: 'lib-as-components',\n\timports: [],\n\ttemplate: ` <p> as-components works! </p> `,\n\tstyles: ``,\n})\nexport class AsComponents {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ComponentRef, HostListener,\n output,\n signal,\n Type,\n ViewChild,\n ViewContainerRef, ViewEncapsulation\n} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {ModalRef} from '../services/modal-ref';\n\nexport interface ResultPayload {\n action: string,\n payload?: unknown\n}\n\n@Component({\n selector: 'as-modal-container',\n templateUrl: 'modal-container.component.html',\n styleUrl: 'modal-container.component.scss',\n imports: [CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class ModalContainerComponent {\n @ViewChild('contentHost', {read: ViewContainerRef, static: true}) contentHost!: ViewContainerRef;\n\n // signal-based inputs\n title = signal<string | undefined>(undefined);\n size = signal<'sm' | 'md' | 'lg'>('md');\n showClose = signal<boolean>(true);\n dismissSendEvent = signal<boolean>(false);\n minHeight = signal<string>('200px');\n\n closed = output<ResultPayload>();\n\n modalRef!: ModalRef;\n\n get sizeClass() {\n return this.size(); // template uses size() directly; keep helper for compatibility if needed\n }\n\n /**\n * Create a component inside the container and set inputs.\n * Supports:\n * - assigning to writable signals (calls `.set(...)`)\n * - assigning to plain properties\n * Also handles primitive `inputs` mapping to common names.\n */\n loadComponent<T>(component: Type<T>, inputs?: Partial<T> | any): ComponentRef<T> {\n const compRef = this.contentHost.createComponent<T>(component);\n\n /* 🟡 PRIME every signal (factory → real signal) */\n const inst = compRef.instance as Record<string, any>;\n for (const key in inst) {\n const prop = inst[key];\n if (typeof prop === 'function') {\n // **real consumer read** → forces input() to become WritableSignal\n const value = prop(); // ← Angular input() **must** be called\n }\n }\n\n for (const key in inst) {\n const prop = inst[key];\n if (typeof prop === 'function' && prop.length === 0) {\n // cheap check: call once (forces input() to become WritableSignal)\n prop();\n }\n }\n\n if (inputs !== undefined && inputs !== null) {\n if (typeof inputs === 'object' && !Array.isArray(inputs)) {\n for (const key of Object.keys(inputs)) {\n const prop = (compRef.instance as any)[key];\n this.setInput(compRef.instance as any, key, (inputs as any)[key], compRef);\n }\n } else {\n // primitive mapping\n // const inst = compRef.instance as any;\n const inst = compRef as any;\n if ('message' in inst) this.setInput(inst, 'message', inputs, compRef);\n else if ('data' in inst) this.setInput(inst, 'data', inputs, compRef);\n else this.setInput(inst, 'value', inputs, compRef);\n }\n\n // ensure rendering for OnPush / signal changes\n compRef.changeDetectorRef?.detectChanges();\n }\n\n return compRef;\n }\n\n private setInput(targetInstance: any, key: string, value: any, compRef: ComponentRef<any>) {\n const before = targetInstance[key];\n const target = targetInstance[key];\n\n if (typeof target === 'function' && 'set' in target && typeof target.set === 'function') {\n // ✅ writable signal\n target.set(value);\n } else if (typeof target === 'function') {\n // 🔹 signal is readonly → cannot set\n compRef.setInput(key, value);\n } else {\n // fallback for raw primitive (optional)\n targetInstance[key] = value;\n }\n }\n\n @HostListener('document:keydown', ['$event'])\n handleKeydown(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n this.dismiss();\n }\n }\n\n dismiss() {\n if (this.dismissSendEvent()) {\n this.closed.emit({action: 'dismiss', payload: false});\n } else {\n this.modalRef.dismiss();\n }\n }\n}\n","<div class=\"as-modal-backdrop\" (click)=\"dismiss()\"></div>\n<div class=\"as-modal\" [ngClass]=\"size()\" role=\"dialog\" aria-modal=\"true\" [style.min-height]=\"minHeight()\">\n\t@if (title() || showClose()) {\n\t\t<div class=\"as-modal-header\">\n\t\t\t<h3 class=\"as-modal-title\">{{ title() }}</h3>\n\t\t\t@if (showClose()) {\n\t\t\t\t<button class=\"btn-close close pull-right\" type=\"button\" (click)=\"dismiss()\"></button>\n\t\t\t}\n\t\t</div>\n\t}\n\t<div class=\"as-modal-body\">\n\t\t<ng-template #contentHost></ng-template>\n\t</div>\n</div>\n","import {Directive, input, output} from '@angular/core';\nimport {ResultPayload} from './modal-container.component';\n\n@Directive()\nexport abstract class BaseModalComponent {\n title = input<string>('');\n readonly onClose = output<ResultPayload | undefined>();\n\n // injected by ModalService\n private _dismiss?: () => void;\n\n /** called by ModalService */\n _registerDismiss(fn: () => void) {\n this._dismiss = fn;\n }\n\n /** CONFIRM */\n protected confirm(result: ResultPayload = {action: 'default'}) {\n this.onClose.emit(result);\n }\n\n /** confirm with payload */\n protected confirmWithPayload<T>(payload: T) {\n this.onClose.emit({\n action: 'confirm',\n payload,\n });\n }\n\n /** CANCEL / SILENT */\n protected dismiss() {\n this._dismiss?.();\n }\n}\n","// TypeScript\nimport { ComponentRef } from '@angular/core';\nimport { Subject, Observable } from 'rxjs';\nimport {ResultPayload} from '../modal-container/modal-container.component';\n\nexport class ModalRef {\n private readonly _afterClosed = new Subject<ResultPayload | undefined>();\n\tprivate _onClose = new Subject<ResultPayload>();\n\tonClose: Observable<ResultPayload> = this._onClose.asObservable();\n\n\tconstructor(\n\t\tprivate componentRef: ComponentRef<any>,\n\t\tprivate hostElement: HTMLElement,\n\t) {}\n\n afterClosed(): Observable<ResultPayload | undefined> {\n return this._afterClosed.asObservable();\n }\n\n\tclose(result: ResultPayload) {\n\t\tthis._onClose.next(result);\n\t\tthis._onClose.complete();\n this._afterClosed.next(result);\n this._afterClosed.complete();\n\t\tthis.destroy();\n\t}\n\n dismiss() {\n this._onClose.complete();\n this._afterClosed.next(undefined);\n this._afterClosed.complete();\n this.destroy();\n }\n\n\tprivate destroy() {\n\t\ttry {\n\t\t\tif (this.componentRef) {\n\t\t\t\tthis.componentRef.destroy();\n\t\t\t}\n\t\t} finally {\n\t\t\tif (this.hostElement && this.hostElement.parentNode) {\n\t\t\t\tthis.hostElement.parentNode.removeChild(this.hostElement);\n\t\t\t}\n\t\t}\n\t}\n}\n","import {\n ApplicationRef,\n ComponentRef,\n createComponent,\n EnvironmentInjector,\n Injectable,\n Injector,\n Type,\n} from '@angular/core';\nimport {ModalRef} from './modal-ref';\nimport {ModalContainerComponent, ResultPayload} from '../modal-container/modal-container.component';\nimport {BaseModalComponent} from '../modal-container/base-modal.component';\n\nexport interface ModalConfig {\n id?: string;\n size?: 'sm' | 'md' | 'lg' | 'xlg' | 'xxlg';\n title: string;\n minHeight?: string;\n dismissSendEvent?: boolean\n showClose?: boolean;\n enableLog?: boolean;\n data?: any;\n}\n\n@Injectable({providedIn: 'root'})\nexport class ModalService {\n private modalsById = new Map<string, ModalRef>();\n\n constructor(\n private injector: Injector,\n private appRef: ApplicationRef,\n private envInjector: EnvironmentInjector,\n ) {\n }\n\n getModalCount(): number {\n return this.modalsById.size;\n }\n\n show<T>(component: Type<T>, config: ModalConfig = {title: ''}): ModalRef {\n if (config.id && this.modalsById.has(config.id)) {\n console.log('Modal with id already open:', config.id);\n return this.modalsById.get(config.id)!;\n }\n\n const hostEl = document.createElement('div');\n document.body.appendChild(hostEl);\n\n const compRef: ComponentRef<ModalContainerComponent> = createComponent(ModalContainerComponent, {\n environmentInjector: this.envInjector,\n });\n\n // set container inputs using signal-aware helper\n this.setInput(compRef.instance as any, 'title', config.title);\n this.setInput(compRef.instance as any, 'size', config.size ?? 'lg');\n this.setInput(compRef.instance as any, 'showClose', config.showClose !== false);\n this.setInput(compRef.instance as any, 'enableLog', config.enableLog !== false);\n this.setInput(compRef.instance as any, 'dismissSendEvent', config.dismissSendEvent !== false);\n this.setInput(compRef.instance as any, 'minHeight', config.minHeight);\n\n this.appRef.attachView(compRef.hostView);\n hostEl.appendChild((compRef.hostView as any).rootNodes[0] as HTMLElement);\n\n // the container's loadComponent handles assigning inputs (including signals) to the child\n const childRef: ComponentRef<T> = compRef.instance.loadComponent(component, config.data);\n\n const modalRef = new ModalRef(compRef as any, hostEl);\n if (config.id) {\n this.modalsById.set(config.id, modalRef);\n modalRef.afterClosed().subscribe(() => {\n this.modalsById.delete(config.id!);\n });\n }\n\n (compRef.instance as any).modalRef = modalRef;\n compRef.instance.closed.subscribe((result: ResultPayload) => {\n modalRef.close(result);\n });\n\n const maybeBase = childRef.instance as BaseModalComponent;\n if (maybeBase._registerDismiss) {\n maybeBase._registerDismiss(() => {\n modalRef.dismiss(); // calls ModalRef.dismiss\n });\n }\n\n const maybeEmitter = (childRef.instance as any).onClose;\n if (maybeEmitter && typeof maybeEmitter.subscribe === 'function') {\n maybeEmitter.subscribe((res: any) => modalRef.close(res));\n }\n\n return modalRef;\n }\n\n private setInput(targetInstance: any, key: string, value: any) {\n const target = targetInstance[key];\n if (typeof target === 'function' && target && 'set' in target && typeof (target as any).set === 'function') {\n (target as any).set(value);\n } else {\n targetInstance[key] = value;\n }\n }\n}\n","import { Component, signal, WritableSignal, ChangeDetectionStrategy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n\tselector: 'as-tooltip',\n\tstandalone: true,\n\timports: [CommonModule],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplate: `\n\t\t<div\n\t\t\tclass=\"as-tooltip\"\n\t\t\t[class.as-placement-top]=\"placement() === 'bottom'\"\n\t\t\t[class.as-placement-bottom]=\"placement() === 'top'\"\n\t\t\t[class.as-placement-left]=\"placement() === 'right'\"\n\t\t\t[class.as-placement-right]=\"placement() === 'left'\"\n\t\t\t[attr.id]=\"id()\"\n\t\t\trole=\"tooltip\"\n\t\t\t[attr.aria-hidden]=\"!text()\"\n\t\t>\n\t\t\t{{ text() }}\n\t\t\t<span class=\"as-tooltip-arrow\" aria-hidden=\"true\"></span>\n\t\t</div>\n\t`,\n\tstyles: [\n\t\t`\n\t\t\t:host {\n\t\t\t\tdisplay: block;\n\t\t\t}\n\n\t\t\t.as-tooltip {\n\t\t\t\tposition: relative;\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tbackground: rgba(97, 97, 97, 0.95);\n\t\t\t\tcolor: #fff;\n\t\t\t\tpadding: 6px 10px;\n\t\t\t\tborder-radius: 4px;\n\t\t\t\tfont-size: 12px;\n\t\t\t\tmax-width: 240px;\n\t\t\t\tbox-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);\n\t\t\t\tline-height: 1.2;\n\t\t\t}\n\n\t\t\t/* Arrow base: zero-sized element using borders to form a triangle */\n\t\t\t.as-tooltip-arrow {\n\t\t\t\tposition: absolute;\n\t\t\t\twidth: 0;\n\t\t\t\theight: 0;\n\t\t\t}\n\n\t\t\t/* Bottom placement: tooltip sits above origin, arrow points downwards (at bottom of tooltip) */\n\t\t\t.as-placement-bottom .as-tooltip-arrow {\n\t\t\t\tleft: 50%;\n\t\t\t\ttransform: translateX(-50%);\n\t\t\t\ttop: 100%;\n\t\t\t\tborder-left: 6px solid transparent;\n\t\t\t\tborder-right: 6px solid transparent;\n\t\t\t\tborder-top: 6px solid rgba(97, 97, 97, 0.95);\n\t\t\t}\n\n\t\t\t/* Top placement: tooltip sits below origin, arrow points upwards (at top of tooltip) */\n\t\t\t.as-placement-top .as-tooltip-arrow {\n\t\t\t\tleft: 50%;\n\t\t\t\ttransform: translateX(-50%);\n\t\t\t\tbottom: 100%;\n\t\t\t\tborder-left: 6px solid transparent;\n\t\t\t\tborder-right: 6px solid transparent;\n\t\t\t\tborder-bottom: 6px solid rgba(97, 97, 97, 0.95);\n\t\t\t}\n\n\t\t\t/* Left placement: tooltip sits to the right of origin, arrow points left (at left edge) */\n\t\t\t.as-placement-left .as-tooltip-arrow {\n\t\t\t\ttop: 50%;\n\t\t\t\ttransform: translateY(-50%);\n\t\t\t\tright: 100%;\n\t\t\t\tborder-top: 6px solid transparent;\n\t\t\t\tborder-bottom: 6px solid transparent;\n\t\t\t\tborder-right: 6px solid rgba(97, 97, 97, 0.95);\n\t\t\t}\n\n\t\t\t/* Right placement: tooltip sits to the left of origin, arrow points right (at right edge) */\n\t\t\t.as-placement-right .as-tooltip-arrow {\n\t\t\t\ttop: 50%;\n\t\t\t\ttransform: translateY(-50%);\n\t\t\t\tleft: 100%;\n\t\t\t\tborder-top: 6px solid transparent;\n\t\t\t\tborder-bottom: 6px solid transparent;\n\t\t\t\tborder-left: 6px solid rgba(97, 97, 97, 0.95);\n\t\t\t}\n\t\t`,\n\t],\n})\nexport class TooltipComponent {\n\treadonly id: WritableSignal<string> = signal(`as-tooltip-${Math.random().toString(36).slice(2, 9)}`);\n\n\t// Writable text so directive can update via `.set(...)`\n\treadonly text: WritableSignal<string | null> = signal<string | null>(null);\n\n\t// Placement signal — set by directive to switch arrow orientation\n\treadonly placement: WritableSignal<'top' | 'bottom' | 'left' | 'right'> = signal<'top' | 'bottom' | 'left' | 'right'>('bottom');\n}\n","import { Directive, ElementRef, HostListener, inject, input, signal, computed, OnDestroy, WritableSignal, Injector } from '@angular/core';\nimport { Overlay, OverlayRef, FlexibleConnectedPositionStrategy, ConnectedPosition } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { Subscription } from 'rxjs';\nimport { TooltipComponent } from './tooltip.component';\n\n@Directive({\n\tselector: '[asTooltip]',\n\tstandalone: true,\n})\nexport class TooltipDirective implements OnDestroy {\n\tprivate readonly overlay = inject(Overlay);\n\tprivate readonly injector = inject(Injector);\n\tprivate readonly host = inject(ElementRef<HTMLElement>);\n\n\treadonly asTooltip = input<string | null>(null);\n\treadonly asTooltipPlacement = input<'top' | 'bottom' | 'left' | 'right' | 'auto'>('auto');\n\n\tprivate overlayRef: OverlayRef | null = null;\n\tprivate strategy: FlexibleConnectedPositionStrategy | null = null;\n\tprivate posSub: Subscription | null = null;\n\n\tprivate readonly positions = computed(() => this.buildPositions(this.asTooltipPlacement()));\n\n\t@HostListener('mouseenter')\n\tshow(): void {\n\t\tconst text = this.asTooltip();\n\t\tif (!text) return;\n\n\t\tif (!this.overlayRef) {\n\t\t\tthis.createOverlay();\n\t\t}\n\n\t\tif (!this.overlayRef!.hasAttached()) {\n\t\t\tconst portal = new ComponentPortal(TooltipComponent);\n\t\t\tconst compRef = this.overlayRef!.attach(portal);\n\n\t\t\tcompRef.instance.text.set(text);\n\n\t\t\t// set aria-describedby\n\t\t\tconst id = compRef.instance.id();\n\t\t\tthis.host.nativeElement.setAttribute('aria-describedby', id);\n\n\t\t\t// subscribe to CDK's chosen position and write to tooltip placement signal\n\t\t\tif (this.strategy && !this.posSub) {\n\t\t\t\tthis.posSub = this.strategy.positionChanges.subscribe((change: any) => {\n\t\t\t\t\t// `change` may contain different property names across CDK versions;\n\t\t\t\t\t// try common locations for the resolved connected position.\n\t\t\t\t\tconst pos: ConnectedPosition | undefined =\n\t\t\t\t\t\tchange?.connectionPair ?? change?.connectedPosition ?? change?.lastConnectedPosition ?? change;\n\n\t\t\t\t\tif (pos) {\n\t\t\t\t\t\tconst placement = this.mapPositionToPlacement(pos);\n\t\t\t\t\t\tcompRef.instance.placement.set(placement);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// initial placement hint: map the first position we provided\n\t\t\tconst initial = this.positions()[0];\n\t\t\tcompRef.instance.placement.set(this.mapPositionToPlacement(initial));\n\n\t\t\tthis.overlayRef!.updatePosition();\n\t\t}\n\t}\n\n\t@HostListener('mouseleave')\n\thide(): void {\n\t\tthis.detachOverlay();\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.detachOverlay(true);\n\t}\n\n\tprivate createOverlay(): void {\n\t\tconst strategy = this.overlay\n\t\t\t.position()\n\t\t\t.flexibleConnectedTo(this.host)\n\t\t\t.withPositions(this.positions())\n\t\t\t.withPush(true) as FlexibleConnectedPositionStrategy;\n\n\t\t// store strategy so we can watch positionChanges\n\t\tthis.strategy = strategy;\n\n\t\tstrategy.withDefaultOffsetY(8);\n\t\tstrategy.withDefaultOffsetX(8);\n\n\t\tthis.overlayRef = this.overlay.create({\n\t\t\tpositionStrategy: strategy,\n\t\t\tscrollStrategy: this.overlay.scrollStrategies.reposition(),\n\t\t\tpanelClass: 'as-tooltip-panel',\n\t\t\thasBackdrop: false,\n\t\t});\n\t}\n\n\tprivate detachOverlay(dispose = false): void {\n\t\tif (!this.overlayRef) return;\n\n\t\tif (this.overlayRef.hasAttached()) {\n\t\t\tconst hostEl = this.host.nativeElement;\n\t\t\tif (hostEl.getAttribute('aria-describedby')) {\n\t\t\t\thostEl.removeAttribute('aria-describedby');\n\t\t\t}\n\t\t}\n\n\t\tthis.overlayRef.detach();\n\n\t\tif (this.posSub) {\n\t\t\tthis.posSub.unsubscribe();\n\t\t\tthis.posSub = null;\n\t\t}\n\n\t\tif (dispose) {\n\t\t\tthis.overlayRef.dispose();\n\t\t\tthis.overlayRef = null;\n\t\t\tthis.strategy = null;\n\t\t}\n\t}\n\n\tprivate buildPositions(preferred: 'top' | 'bottom' | 'left' | 'right' | 'auto'): ConnectedPosition[] {\n\t\tconst top: ConnectedPosition = {\n\t\t\toriginX: 'center',\n\t\t\toriginY: 'top',\n\t\t\toverlayX: 'center',\n\t\t\toverlayY: 'bottom',\n\t\t\toffsetY: -8,\n\t\t};\n\t\tconst bottom: ConnectedPosition = {\n\t\t\toriginX: 'center',\n\t\t\toriginY: 'bottom',\n\t\t\toverlayX: 'center',\n\t\t\toverlayY: 'top',\n\t\t\toffsetY: 8,\n\t\t};\n\t\tconst left: ConnectedPosition = {\n\t\t\toriginX: 'start',\n\t\t\toriginY: 'center',\n\t\t\toverlayX: 'end',\n\t\t\toverlayY: 'center',\n\t\t\toffsetX: -8,\n\t\t};\n\t\tconst right: ConnectedPosition = {\n\t\t\toriginX: 'end',\n\t\t\toriginY: 'center',\n\t\t\toverlayX: 'start',\n\t\t\toverlayY: 'center',\n\t\t\toffsetX: 8,\n\t\t};\n\n\t\tif (preferred === 'auto') {\n\t\t\treturn [bottom, top, right, left];\n\t\t}\n\n\t\tswitch (preferred) {\n\t\t\tcase 'top':\n\t\t\t\treturn [top, bottom, right, left];\n\t\t\tcase 'bottom':\n\t\t\t\treturn [bottom, top, right, left];\n\t\t\tcase 'left':\n\t\t\t\treturn [left, right, bottom, top];\n\t\t\tcase 'right':\n\t\t\t\treturn [right, left, bottom, top];\n\t\t\tdefault:\n\t\t\t\treturn [bottom, top, right, left];\n\t\t}\n\t}\n\n\tprivate mapPositionToPlacement(pos: ConnectedPosition): 'top' | 'bottom' | 'left' | 'right' {\n\t\t// Determine placement by comparing origin/overlay alignment used by CDK\n\t\tif (pos.originY === 'top' && pos.overlayY === 'bottom') return 'top';\n\t\tif (pos.originY === 'bottom' && pos.overlayY === 'top') return 'bottom';\n\t\tif (pos.originX === 'start' && pos.overlayX === 'end') return 'left';\n\t\tif (pos.originX === 'end' && pos.overlayX === 'start') return 'right';\n\t\t// fallback\n\t\treturn 'bottom';\n\t}\n}\n","import { Component, signal, WritableSignal, ChangeDetectionStrategy, TemplateRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nexport interface Option {\n\tkey: string;\n\tvalue: string;\n}\n\n@Component({\n\tselector: 'as-typeahead-panel',\n\tstandalone: true,\n\timports: [CommonModule],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplateUrl: './typeahead-panel.component.html',\n styleUrl: './typeahead-panel.component.scss',\n})\nexport class TypeaheadPanelComponent {\n\treadonly id: WritableSignal<string> = signal(`as-typeahead-panel-${Math.random().toString(36).slice(2, 9)}`);\n\n\treadonly items: WritableSignal<Option[]> = signal<Option[]>([]);\n\t// default shows the `value` field\n\treadonly displayWith: WritableSignal<(item: Option) => string> = signal<(item: Option) => string>((i: Option) => String(i?.value ?? ''));\n\n\treadonly activeIndex: WritableSignal<number | null> = signal<number | null>(null);\n\n\t// visual config: how many items visible before scrollbar (set by directive)\n\treadonly visibleCount: WritableSignal<number> = signal<number>(5);\n\treadonly itemHeight = 40; // px - used to compute maxHeight\n\n\t// optional custom template & callback (set by directive)\n\toptionTemplate: TemplateRef<any> | null = null;\n\tonSelect: ((item: Option) => void) | null = null;\n\n\toptionId(i: number) {\n\t\treturn `${this.id()}-option-${i}`;\n\t}\n\n\tsetActive(i: number | null) {\n\t\tthis.activeIndex.set(i);\n\t}\n\n\tselect(i: number) {\n\t\tconst items = this.items();\n\t\tif (i == null || i < 0 || i >= items.length) return;\n\t\tconst item = items[i];\n\t\tif (this.onSelect) this.onSelect(item);\n\t}\n}\n","<div\n class=\"as-typeahead-panel\"\n role=\"listbox\"\n [attr.id]=\"id()\"\n [class.as-empty]=\"items().length === 0\"\n [style.max-height.px]=\"visibleCount() * itemHeight\"\n>\n @for (item of items(); track item.key) {\n <div\n role=\"option\"\n [attr.id]=\"optionId($index)\"\n [attr.aria-selected]=\"$index === activeIndex()\"\n class=\"as-typeahead-option\"\n [class.as-active]=\"$index === activeIndex()\"\n (mouseenter)=\"setActive($index)\"\n (mousemove)=\"setActive($index)\"\n (click)=\"select($index)\"\n >\n @if (optionTemplate) {\n <ng-container *ngTemplateOutlet=\"optionTemplate; context: { $implicit: items()[$index] }\"></ng-container>\n } @else {\n {{ displayWith()(item) }}\n }\n </div>\n }\n\n @if (items().length === 0) {\n <div class=\"as-no-results\">No results</div>\n }\n</div>\n","import {\n\tDirective,\n\tElementRef,\n\tHostListener,\n\tinject,\n\tinput,\n\tsignal,\n\tcomputed,\n\tOnDestroy,\n\tTemplateRef,\n\tViewContainerRef,\n\teffect,\n\toutput,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Overlay, OverlayRef, FlexibleConnectedPositionStrategy, ConnectedPosition } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { TypeaheadPanelComponent, Option } from './typeahead-panel.component';\n\n@Directive({\n\tselector: '[asTypeahead]',\n\tstandalone: true,\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: TypeaheadDirective,\n\t\t\tmulti: true,\n\t\t},\n\t],\n})\nexport class TypeaheadDirective implements ControlValueAccessor, OnDestroy {\n\t/* ---------------- injections ---------------- */\n\tprivate readonly overlay = inject(Overlay);\n\tprivate readonly host = inject(ElementRef<HTMLInputElement>);\n\tprivate readonly vcr = inject(ViewContainerRef);\n\n\t/* ---------------- inputs ---------------- */\n\treadonly options = input<Option[] | null>(null);\n\treadonly displayWith = input<(item: Option) => string>((it: Option) => String(it?.value ?? ''));\n\treadonly filterBy = input<'key' | 'value'>('value');\n\treadonly visibleCount = input<number>(5);\n\treadonly restrictToList = input<boolean>(false);\n\treadonly asTypeaheadTemplate = input<TemplateRef<any> | null>(null);\n\treadonly disabled = input<boolean>(false);\n\treadonly enableLog = input<boolean>(false);\n\n\t/* ---------------- outputs ---------------- */\n\treadonly typeaheadOnSelect = output<Option | null>();\n\n\t/* ---------------- internal ---------------- */\n\tprivate readonly cvaDisabled = signal(false);\n\tprivate readonly selected = signal<Option | null>(null);\n\n\tprivate overlayRef: OverlayRef | null = null;\n\tprivate panel: TypeaheadPanelComponent | null = null;\n\tprivate destroyed = false;\n\n\tprivate onChange: (value: any) => void = () => {};\n\tprivate onTouched: () => void = () => {};\n\n\tprivate readonly positions = computed(() => this.buildPositions());\n\n\tconstructor() {\n\t\t/* sync initial value -> input text */\n\t\teffect(() => {\n\t\t\tconst sel = this.selected();\n\t\t\tif (!sel) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.log('init select value', sel.key, sel.value);\n\t\t\tthis.host.nativeElement.value = this.displayWith()(sel);\n\t\t});\n\t}\n\n\t/* ---------------- CVA ---------------- */\n\twriteValue(value: any): void {\n\t\tif (value == null) {\n\t\t\tthis.setInternalSelection(null);\n\t\t\tthis.host.nativeElement.value = '';\n\t\t\treturn;\n\t\t}\n\n\t\tconst match = this.options()?.find(o => o.key === value) ?? null;\n\t\tthis.setInternalSelection(match);\n\n\t\tif (match) {\n\t\t\tthis.host.nativeElement.value = this.displayWith()(match);\n\t\t} else {\n\t\t\tthis.host.nativeElement.value = String(value);\n\t\t}\n\t}\n\n\tregisterOnChange(fn: any): void {\n\t\tthis.onChange = fn;\n\t}\n\n\tregisterOnTouched(fn: any): void {\n\t\tthis.onTouched = fn;\n\t}\n\n\tsetDisabledState(isDisabled: boolean): void {\n\t\tthis.log('component disabled', isDisabled);\n\t\tthis.cvaDisabled.set(isDisabled);\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.destroyed = true;\n\t\tthis.detach(true);\n\t}\n\n\t/* ---------------- host events ---------------- */\n\t@HostListener('focus')\n\t@HostListener('click')\n\tonFocus() {\n\t\tif (this.isDisabled()) return;\n\t\tthis.open();\n\t\tthis.showAll();\n\t}\n\n\t@HostListener('input', ['$event'])\n\tonInput(e: Event) {\n\t\tif (this.isDisabled()) return;\n\t\tconst value = (e.target as HTMLInputElement).value;\n\t\tvalue ? this.filter(value) : this.showAll();\n\t}\n\n\t@HostListener('keydown', ['$event'])\n\tonKeydown(e: KeyboardEvent) {\n\t\tif (this.isDisabled() || !this.panel) return;\n\n\t\tconst items = this.panel.items();\n\t\tif (!items.length) return;\n\n\t\tlet idx = this.panel.activeIndex();\n\n\t\tswitch (e.key) {\n\t\t\tcase 'ArrowDown':\n\t\t\t\te.preventDefault();\n\t\t\t\tidx = idx == null ? 0 : Math.min(items.length - 1, idx + 1);\n\t\t\t\tthis.panel.setActive(idx);\n\t\t\t\tbreak;\n\n\t\t\tcase 'ArrowUp':\n\t\t\t\te.preventDefault();\n\t\t\t\tidx = idx == null ? items.length - 1 : Math.max(0, idx - 1);\n\t\t\t\tthis.panel.setActive(idx);\n\t\t\t\tbreak;\n\n\t\t\tcase 'Enter':\n\t\t\t\te.preventDefault();\n\t\t\t\tif (idx != null) this.panel.select(idx);\n\t\t\t\tbreak;\n\n\t\t\tcase 'Escape':\n\t\t\t\tthis.close();\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\t@HostListener('blur')\n\tonBlur() {\n\t\tsetTimeout(() => {\n\t\t\tif (this.destroyed) return;\n\n\t\t\tconst text = this.host.nativeElement.value;\n\t\t\tconst match = this.findMatch(text);\n\n\t\t\tif (this.restrictToList()) {\n\t\t\t\tthis.commitSelection(match);\n\t\t\t\tthis.host.nativeElement.value = match ? this.displayWith()(match) : '';\n\t\t\t} else if (match) {\n\t\t\t\tthis.commitSelection(match);\n\t\t\t} else {\n\t\t\t\tthis.commitSelection(null);\n\t\t\t}\n\n\t\t\tthis.onTouched();\n\t\t\tthis.close();\n\t\t}, 150);\n\t}\n\n\t/* ---------------- overlay ---------------- */\n\tprivate open() {\n\t\tif (!this.overlayRef) this.createOverlay();\n\t\tif (!this.overlayRef!.hasAttached()) {\n\t\t\tconst portal = new ComponentPortal(TypeaheadPanelComponent, this.vcr);\n\t\t\tconst ref = this.overlayRef!.attach(portal);\n\t\t\tthis.panel = ref.instance;\n\n\t\t\tthis.panel.displayWith.set(this.displayWith());\n\t\t\tthis.panel.optionTemplate = this.asTypeaheadTemplate();\n\t\t\tthis.panel.visibleCount.set(this.visibleCount());\n\t\t\tthis.panel.onSelect = (it: Option) => this.select(it);\n\t\t}\n\t}\n\n\tprivate close() {\n\t\tthis.detach();\n\t}\n\n\tprivate detach(dispose = false) {\n\t\tif (!this.overlayRef) return;\n\t\tif (this.overlayRef.hasAttached()) this.overlayRef.detach();\n\t\tif (dispose) {\n\t\t\tthis.overlayRef.dispose();\n\t\t\tthis.overlayRef = null;\n\t\t\tthis.panel = null;\n\t\t}\n\t}\n\n\tprivate createOverlay() {\n\t\tconst strategy = this.overlay\n\t\t\t.position()\n\t\t\t.flexibleConnectedTo(this.host)\n\t\t\t.withPositions(this.positions())\n\t\t\t.withPush(true) as FlexibleConnectedPositionStrategy;\n\n\t\tstrategy.withDefaultOffsetY(4);\n\n\t\tthis.overlayRef = this.overlay.create({\n\t\t\tpositionStrategy: strategy,\n\t\t\tscrollStrategy: this.overlay.scrollStrategies.reposition(),\n\t\t});\n\t}\n\n\t/* ---------------- helpers ---------------- */\n\tprivate showAll() {\n\t\tthis.open();\n\t\tthis.panel?.items.set(this.options() ?? []);\n\t\tthis.panel?.setActive(null);\n\t}\n\n\tprivate filter(q: string) {\n\t\tconst key = q.toLowerCase();\n\t\tconst list = this.options() ?? [];\n\t\tconst filtered = list.filter(it => {\n\t\t\tconst target = this.filterBy() === 'key' ? String(it.key) : String(it.value);\n\t\t\treturn target.toLowerCase().includes(key);\n\t\t});\n\n\t\tthis.open();\n\t\tthis.panel?.items.set(filtered);\n\t\tthis.panel?.setActive(filtered.length ? 0 : null);\n\t}\n\n\tprivate select(item: Option) {\n\t\tthis.commitSelection(item);\n\t\tthis.host.nativeElement.value = this.displayWith()(item);\n\t\tthis.close();\n\t\tthis.host.nativeElement.focus();\n\t}\n\n\tprivate findMatch(text: string): Option | null {\n\t\tconst list = this.options() ?? [];\n\t\treturn list.find(it => this.displayWith()(it) === text) ?? list.find(it => String(it.key) === text) ?? null;\n\t}\n\n\tprivate isDisabled(): boolean {\n\t\treturn this.disabled() || this.cvaDisabled();\n\t}\n\n\tprivate buildPositions(): ConnectedPosition[] {\n\t\treturn [\n\t\t\t{\n\t\t\t\toriginX: 'start',\n\t\t\t\toriginY: 'bottom',\n\t\t\t\toverlayX: 'start',\n\t\t\t\toverlayY: 'top',\n\t\t\t\toffsetY: 4,\n\t\t\t},\n\t\t\t{\n\t\t\t\toriginX: 'start',\n\t\t\t\toriginY: 'top',\n\t\t\t\toverlayX: 'start',\n\t\t\t\toverlayY: 'bottom',\n\t\t\t\toffsetY: -4,\n\t\t\t},\n\t\t];\n\t}\n\n\tprivate commitSelection(sel: Option | null) {\n\t\tthis.selected.set(sel);\n\t\tthis.log('Set value and emit', sel);\n\n\t\t// CVA\n\t\tthis.onChange(sel?.key ?? null);\n\n\t\t// OUTPUT\n\t\tthis.typeaheadOnSelect.emit(sel);\n\t}\n\n\tprivate setInternalSelection(sel: Option | null) {\n\t\tthis.log('Set value only', sel);\n\t\tthis.selected.set(sel);\n\t}\n\n\tlog(value: any, ...rest: any[]): void {\n\t\tif (this.enableLog() || localStorage.getItem('loggerEnable')) {\n\t\t\tconsole.log('%c DEBUG ', 'background: gray; color: white; font-weight: bold;', `AS typeahead -> ${value}`, ...rest);\n\t\t}\n\t}\n}\n","import { AfterViewInit, Component, effect, ElementRef, forwardRef, input, NgZone, OnDestroy, output, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport flatpickr from 'flatpickr';\nimport 'flatpickr/dist/flatpickr.css';\nimport { NgClass } from '@angular/common';\n\nimport { FlatpickrDateFormat, FlatpickrMode, FlatpickrValue } from './flatpickr.types';\n\n@Component({\n\tselector: 'as-flatpickr',\n\tstandalone: true,\n\ttemplate: `<input\n\t\t#input\n\t\ttype=\"text\"\n\t\t[attr.placeholder]=\"placeholder()\"\n\t\t[ngClass]=\"elementClass()\"\n\t\t[autocomplete]=\"autocomplete()\"\n\t\t[id]=\"id()\"\n\t/>`,\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: forwardRef(() => AsFlatpickrComponent),\n\t\t\tmulti: true,\n\t\t},\n\t],\n\timports: [NgClass],\n})\nexport class AsFlatpickrComponent implements ControlValueAccessor, AfterViewInit, OnDestroy {\n\t/* ---------------- Inputs ---------------- */\n\tmode = input<FlatpickrMode>('single');\n\tenableTime = input(false);\n\ttimeOnly = input(false);\n\tplaceholder = input<string | null>(null);\n\tid = input<string | null>(null);\n\tdateFormat = input<FlatpickrDateFormat>('Y-m-d');\n\telementClass = input<string>('form-control form-icon-calendar');\n\ttime24h = input(true);\n\tautocomplete = input<'on' | 'off'>('off');\n\n\t/* External value (string-based now) */\n\tvalue = input<FlatpickrValue>(null);\n\tvalueChange = output<FlatpickrValue>();\n\n\t/* ---------------- Internals ---------------- */\n\t@ViewChild('input', { static: true }) private inputEl!: ElementRef<HTMLInputElement>;\n\tprivate fp: flatpickr.Instance | null = null;\n\n\tprivate onChange: (value: FlatpickrValue) => void = () => {};\n\tprivate onTouched: () => void = () => {};\n\tprivate disabled = false;\n\tprivate cvaAttached = false;\n\tprivate usingCva = false;\n\n\tconstructor(private zone: NgZone) {\n\t\t/* ---------------- Signal effect for syncing value ---------------- */\n\t\teffect(() => {\n\t\t\tif (this.usingCva) return; // CVA owns the value, skip signal path\n\n\t\t\tconst val = this.value();\n\t\t\tif (!this.fp) return;\n\n\t\t\tthis.zone.runOutsideAngular(() => {\n\t\t\t\tconst displayFormat = this.getDisplayFormat();\n\n\t\t\t\tif (Array.isArray(val)) {\n\t\t\t\t\tconst dates = val.map(v => flatpickr.parseDate(v, displayFormat));\n\t\t\t\t\tthis.fp!.setDate(dates as Date[], false);\n\t\t\t\t} else if (val) {\n\t\t\t\t\tconst date = flatpickr.parseDate(val, displayFormat);\n\t\t\t\t\tthis.fp!.setDate(date ?? [], false);\n\t\t\t\t} else {\n\t\t\t\t\tthis.fp!.clear(false); // suppress events\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\tprivate handleOpen = () => {\n\t\tif (this.disabled) {\n\t\t\tthis.fp?.close();\n\t\t}\n\t};\n\n\t/* ---------------- Initialize Flatpickr ---------------- */\n\tngAfterViewInit() {\n\t\tthis.zone.runOutsideAngular(() => {\n\t\t\tthis.fp = flatpickr(this.inputEl.nativeElement, {\n\t\t\t\tmode: this.mode(),\n\t\t\t\tenableTime: this.enableTime() || this.timeOnly(),\n\t\t\t\tnoCalendar: this.timeOnly(),\n\t\t\t\tallowInput: true,\n\t\t\t\ttime_24hr: this.time24h(),\n\t\t\t\tdateFormat: this.getDisplayFormat(),\n\t\t\t\tonOpen: this.handleOpen,\n\t\t\t\tonChange: (dates, _str, instance) => this.handleChange(dates, instance),\n\t\t\t\tonClose: () => this.zone.run(() => this.onTouched()),\n\t\t\t});\n\n // ✅ Sync initial FormControl value after Flatpickr init\n this.zone.run(() => {\n if ((this as any).formControl?.value) {\n this.writeValue((this as any).formControl.value);\n }\n });\n\n // Manual validation for typed input\n\t\t\tthis.inputEl.nativeElement.addEventListener('blur', () => {\n\t\t\t\tconst typedValue = this.inputEl.nativeElement.value;\n\t\t\t\tconst parsed = this.parseTypedValue(typedValue);\n\t\t\t\tthis.zone.run(() => this.safeEmit(parsed));\n\t\t\t});\n\t\t});\n\t}\n\n\t/* ---------------- CVA Implementation ---------------- */\n\twriteValue(value: FlatpickrValue): void {\n\t\tif (!this.fp) return;\n\n\t\tconst displayFormat = this.getDisplayFormat();\n\n\t\tif (Array.isArray(value)) {\n\t\t\tconst dates = value.map(v => flatpickr.parseDate(v, displayFormat));\n\t\t\tthis.fp.setDate(dates as Date[], false);\n\t\t} else if (value) {\n\t\t\tconst date = flatpickr.parseDate(value, displayFormat);\n\t\t\tthis.fp.setDate(date ?? [], false);\n\t\t} else {\n\t\t\tthis.fp.clear(false); // suppress events during write\n\t\t}\n\t}\n\n\tregisterOnChange(fn: (value: FlatpickrValue) => void): void {\n\t\tthis.onChange = fn;\n\t\tthis.cvaAttached = true;\n\t\tthis.usingCva = true;\n\t}\n\n\tregisterOnTouched(fn: () => void): void {\n\t\tthis.onTouched = fn;\n\t}\n\n\tsetDisabledState(disabled: boolean): void {\n\t\tthis.disabled = disabled;\n\t\tif (this.inputEl) this.inputEl.nativeElement.disabled = disabled;\n\t}\n\n\t/* ---------------- Handle Flatpickr changes ---------------- */\n\tprivate handleChange(dates: Date[], instance: flatpickr.Instance) {\n\t\tif (!this.cvaAttached) return;\n\n\t\tconst format = this.dateFormat() ?? this.getDefaultDateFormat();\n\t\tlet value: FlatpickrValue = null;\n\n\t\tif (this.mode() === 'range') {\n\t\t\tif (dates.length !== 2) return; // only emit full ranges\n\t\t\tvalue = dates.map(d => flatpickr.formatDate(d, format)) as [string, string];\n\t\t} else if (dates[0]) {\n\t\t\tif (this.enableTime() || this.timeOnly()) {\n\t\t\t\tconst timeFormat = this.time24h() ? 'H:i' : 'h:i K';\n\t\t\t\tvalue = flatpickr.formatDate(dates[0], `${format} ${timeFormat}`);\n\t\t\t} else {\n\t\t\t\tvalue = flatpickr.formatDate(dates[0], format);\n\t\t\t}\n\t\t}\n\n\t\tthis.zone.run(() => this.safeEmit(value));\n\t}\n\n\t/* ---------------- Safe CVA emission ---------------- */\n\tprivate safeEmit(value: FlatpickrValue) {\n\t\tif (!this.cvaAttached) return;\n\t\tthis.onChange(value);\n\t\tthis.valueChange.emit(value);\n\t}\n\n\t/* ---------------- Typed input parsing ---------------- */\n\tprivate parseTypedValue(inputValue: string): FlatpickrValue {\n\t\ttry {\n\t\t\tconst displayFormat = this.getDisplayFormat();\n\t\t\tif (!inputValue) return null;\n\n\t\t\tif (this.mode() === 'range') {\n\t\t\t\tconst parts = inputValue.split(' to ').map(s => s.trim());\n\t\t\t\tif (parts.length !== 2) return null;\n\n\t\t\t\tconst start = flatpickr.parseDate(parts[0], displayFormat);\n\t\t\t\tconst end = flatpickr.parseDate(parts[1], displayFormat);\n\t\t\t\tif (!start || !end || start > end) return null;\n\n\t\t\t\treturn [flatpickr.formatDate(start, displayFormat), flatpickr.formatDate(end, displayFormat)];\n\t\t\t} else {\n\t\t\t\tconst parsed = flatpickr.parseDate(inputValue, displayFormat);\n\t\t\t\treturn parsed ? flatpickr.formatDate(parsed, displayFormat) : null;\n\t\t\t}\n\t\t} catch {\n\t\t\treturn null;\n\t\t}\n\t}\n\n\t/* ---------------- Format helpers ---------------- */\n\tprivate getDefaultDateFormat(): string {\n\t\tif (this.timeOnly()) return 'H:i';\n\t\tif (this.enableTime()) return 'Y-m-d';\n\t\treturn 'Y-m-d';\n\t}\n\n\tprivate getDisplayFormat(): string {\n\t\tif (this.timeOnly()) {\n\t\t\treturn this.time24h() ? 'H:i' : 'h:i K';\n\t\t}\n\t\tconst baseFormat = this.dateFormat() ?? 'Y-m-d';\n\t\tif (this.enableTime()) {\n\t\t\tconst timeFormat = this.time24h() ? 'H:i' : 'h:i K';\n\t\t\treturn `${baseFormat} ${timeFormat}`;\n\t\t}\n\t\treturn baseFormat;\n\t}\n\n\t/* ---------------- Cleanup ---------------- */\n\tngOnDestroy() {\n\t\tthis.cvaAttached = false;\n\t\tthis.fp?.destroy();\n\t\tthis.fp = null;\n\t}\n}\n","/*\n * Public API Surface of as-components\n */\n\nexport * from './lib/as-components';\nexport * from './lib/modal-container/modal-container.component';\nexport * from './lib/modal-container/base-modal.component';\nexport * from './lib/services/modal-ref';\nexport * from './lib/services/modal.service';\nexport * from './lib/tooltip/tooltip.directive';\nexport * from './lib/tooltip/tooltip.component';\nexport * from './lib/typeahead/typeahead.directive';\nexport * from './lib/typeahead/typeahead-panel.component';\nexport * from './lib/datepicker/as-flatpickr.component';\nexport * from './lib/datepicker/flatpickr.types';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -208,6 +208,8 @@ declare class AsFlatpickrComponent implements ControlValueAccessor, AfterViewIni
|
|
|
208
208
|
private onChange;
|
|
209
209
|
private onTouched;
|
|
210
210
|
private disabled;
|
|
211
|
+
private cvaAttached;
|
|
212
|
+
private usingCva;
|
|
211
213
|
constructor(zone: NgZone);
|
|
212
214
|
private handleOpen;
|
|
213
215
|
ngAfterViewInit(): void;
|
|
@@ -216,9 +218,9 @@ declare class AsFlatpickrComponent implements ControlValueAccessor, AfterViewIni
|
|
|
216
218
|
registerOnTouched(fn: () => void): void;
|
|
217
219
|
setDisabledState(disabled: boolean): void;
|
|
218
220
|
private handleChange;
|
|
221
|
+
private safeEmit;
|
|
219
222
|
private parseTypedValue;
|
|
220
223
|
private getDefaultDateFormat;
|
|
221
|
-
/** Combine dateFormat + optional time for display/input */
|
|
222
224
|
private getDisplayFormat;
|
|
223
225
|
ngOnDestroy(): void;
|
|
224
226
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AsFlatpickrComponent, never>;
|