@agentsmith.bgd/as-components 21.0.26 → 21.0.29

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.
@@ -11,19 +11,11 @@ import 'flatpickr/dist/flatpickr.css';
11
11
 
12
12
  class AsComponents {
13
13
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: AsComponents, deps: [], target: i0.ɵɵFactoryTarget.Component });
14
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.0", type: AsComponents, isStandalone: true, selector: "lib-as-components", ngImport: i0, template: `
15
- <p>
16
- as-components works!
17
- </p>
18
- `, isInline: true, styles: [""] });
14
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.0", type: AsComponents, isStandalone: true, selector: "lib-as-components", ngImport: i0, template: ` <p> as-components works! </p> `, isInline: true, styles: [""] });
19
15
  }
20
16
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: AsComponents, decorators: [{
21
17
  type: Component,
22
- args: [{ selector: 'lib-as-components', imports: [], template: `
23
- <p>
24
- as-components works!
25
- </p>
26
- ` }]
18
+ args: [{ selector: 'lib-as-components', imports: [], template: ` <p> as-components works! </p> ` }]
27
19
  }] });
28
20
 
29
21
  class ModalContainerComponent {
@@ -122,11 +114,11 @@ class ModalContainerComponent {
122
114
  this.closed.emit(result);
123
115
  }
124
116
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ModalContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
125
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.0", type: ModalContainerComponent, isStandalone: true, selector: "as-modal-container", outputs: { closed: "closed" }, viewQueries: [{ propertyName: "contentHost", first: true, predicate: ["contentHost"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: "\n <div class=\"as-modal-backdrop\" (click)=\"backdropClick()\"></div>\n <div class=\"as-modal\" [ngClass]=\"size()\" role=\"dialog\" aria-modal=\"true\">\n @if (title() || showClose()) {\n <div class=\"as-modal-header\">\n <h3 class=\"as-modal-title\">{{ title() }}</h3>\n @if (showClose()) {\n <button class=\"btn-close close pull-right\" type=\"button\" (click)=\"backdropClick()\"></button>\n }\n </div>\n }\n <div class=\"as-modal-body\">\n <ng-template #contentHost></ng-template>\n </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%}.as-modal.sm{width:300px}.as-modal.md{width:600px}.as-modal.lg{width:900px}.as-modal-header{display:flex;justify-content:space-between;align-items:center;padding:12px;border-bottom:1px solid #eee}.as-modal-body{padding:12px}.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 });
117
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.0", type: ModalContainerComponent, isStandalone: true, selector: "as-modal-container", outputs: { closed: "closed" }, viewQueries: [{ propertyName: "contentHost", first: true, predicate: ["contentHost"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: "<div class=\"as-modal-backdrop\" (click)=\"backdropClick()\"></div>\n<div class=\"as-modal\" [ngClass]=\"size()\" role=\"dialog\" aria-modal=\"true\">\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)=\"backdropClick()\"></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%}.as-modal.sm{width:300px}.as-modal.md{width:600px}.as-modal.lg{width:900px}.as-modal-header{display:flex;justify-content:space-between;align-items:center;padding:12px;border-bottom:1px solid #eee}.as-modal-body{padding:12px}.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 });
126
118
  }
127
119
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ModalContainerComponent, decorators: [{
128
120
  type: Component,
129
- args: [{ selector: 'as-modal-container', imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "\n <div class=\"as-modal-backdrop\" (click)=\"backdropClick()\"></div>\n <div class=\"as-modal\" [ngClass]=\"size()\" role=\"dialog\" aria-modal=\"true\">\n @if (title() || showClose()) {\n <div class=\"as-modal-header\">\n <h3 class=\"as-modal-title\">{{ title() }}</h3>\n @if (showClose()) {\n <button class=\"btn-close close pull-right\" type=\"button\" (click)=\"backdropClick()\"></button>\n }\n </div>\n }\n <div class=\"as-modal-body\">\n <ng-template #contentHost></ng-template>\n </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%}.as-modal.sm{width:300px}.as-modal.md{width:600px}.as-modal.lg{width:900px}.as-modal-header{display:flex;justify-content:space-between;align-items:center;padding:12px;border-bottom:1px solid #eee}.as-modal-body{padding:12px}.as-modal-close{background:none;border:0;font-size:20px;cursor:pointer}\n"] }]
121
+ args: [{ selector: 'as-modal-container', imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<div class=\"as-modal-backdrop\" (click)=\"backdropClick()\"></div>\n<div class=\"as-modal\" [ngClass]=\"size()\" role=\"dialog\" aria-modal=\"true\">\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)=\"backdropClick()\"></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%}.as-modal.sm{width:300px}.as-modal.md{width:600px}.as-modal.lg{width:900px}.as-modal-header{display:flex;justify-content:space-between;align-items:center;padding:12px;border-bottom:1px solid #eee}.as-modal-body{padding:12px}.as-modal-close{background:none;border:0;font-size:20px;cursor:pointer}\n"] }]
130
122
  }], propDecorators: { contentHost: [{
131
123
  type: ViewChild,
132
124
  args: ['contentHost', { read: ViewContainerRef, static: true }]
@@ -186,7 +178,7 @@ class ModalService {
186
178
  const hostEl = document.createElement('div');
187
179
  document.body.appendChild(hostEl);
188
180
  const compRef = createComponent(ModalContainerComponent, {
189
- environmentInjector: this.envInjector
181
+ environmentInjector: this.envInjector,
190
182
  });
191
183
  // set container inputs using signal-aware helper
192
184
  this.setInput(compRef.instance, 'title', config.title);
@@ -234,38 +226,38 @@ class TooltipComponent {
234
226
  placement = signal('bottom', ...(ngDevMode ? [{ debugName: "placement" }] : []));
235
227
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: TooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
236
228
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.0", type: TooltipComponent, isStandalone: true, selector: "as-tooltip", ngImport: i0, template: `
237
- <div
238
- class="as-tooltip"
239
- [class.as-placement-top]="placement() === 'bottom'"
240
- [class.as-placement-bottom]="placement() === 'top'"
241
- [class.as-placement-left]="placement() === 'right'"
242
- [class.as-placement-right]="placement() === 'left'"
243
- [attr.id]="id()"
244
- role="tooltip"
245
- [attr.aria-hidden]="!text()"
246
- >
247
- {{ text() }}
248
- <span class="as-tooltip-arrow" aria-hidden="true"></span>
249
- </div>
250
- `, 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 });
229
+ <div
230
+ class="as-tooltip"
231
+ [class.as-placement-top]="placement() === 'bottom'"
232
+ [class.as-placement-bottom]="placement() === 'top'"
233
+ [class.as-placement-left]="placement() === 'right'"
234
+ [class.as-placement-right]="placement() === 'left'"
235
+ [attr.id]="id()"
236
+ role="tooltip"
237
+ [attr.aria-hidden]="!text()"
238
+ >
239
+ {{ text() }}
240
+ <span class="as-tooltip-arrow" aria-hidden="true"></span>
241
+ </div>
242
+ `, 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 });
251
243
  }
252
244
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: TooltipComponent, decorators: [{
253
245
  type: Component,
254
246
  args: [{ selector: 'as-tooltip', standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: `
255
- <div
256
- class="as-tooltip"
257
- [class.as-placement-top]="placement() === 'bottom'"
258
- [class.as-placement-bottom]="placement() === 'top'"
259
- [class.as-placement-left]="placement() === 'right'"
260
- [class.as-placement-right]="placement() === 'left'"
261
- [attr.id]="id()"
262
- role="tooltip"
263
- [attr.aria-hidden]="!text()"
264
- >
265
- {{ text() }}
266
- <span class="as-tooltip-arrow" aria-hidden="true"></span>
267
- </div>
268
- `, 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"] }]
247
+ <div
248
+ class="as-tooltip"
249
+ [class.as-placement-top]="placement() === 'bottom'"
250
+ [class.as-placement-bottom]="placement() === 'top'"
251
+ [class.as-placement-left]="placement() === 'right'"
252
+ [class.as-placement-right]="placement() === 'left'"
253
+ [attr.id]="id()"
254
+ role="tooltip"
255
+ [attr.aria-hidden]="!text()"
256
+ >
257
+ {{ text() }}
258
+ <span class="as-tooltip-arrow" aria-hidden="true"></span>
259
+ </div>
260
+ `, 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"] }]
269
261
  }] });
270
262
 
271
263
  class TooltipDirective {
@@ -317,7 +309,8 @@ class TooltipDirective {
317
309
  this.detachOverlay(true);
318
310
  }
319
311
  createOverlay() {
320
- const strategy = this.overlay.position()
312
+ const strategy = this.overlay
313
+ .position()
321
314
  .flexibleConnectedTo(this.host)
322
315
  .withPositions(this.positions())
323
316
  .withPush(true);
@@ -354,34 +347,47 @@ class TooltipDirective {
354
347
  }
355
348
  buildPositions(preferred) {
356
349
  const top = {
357
- originX: 'center', originY: 'top',
358
- overlayX: 'center', overlayY: 'bottom',
359
- offsetY: -8
350
+ originX: 'center',
351
+ originY: 'top',
352
+ overlayX: 'center',
353
+ overlayY: 'bottom',
354
+ offsetY: -8,
360
355
  };
361
356
  const bottom = {
362
- originX: 'center', originY: 'bottom',
363
- overlayX: 'center', overlayY: 'top',
364
- offsetY: 8
357
+ originX: 'center',
358
+ originY: 'bottom',
359
+ overlayX: 'center',
360
+ overlayY: 'top',
361
+ offsetY: 8,
365
362
  };
366
363
  const left = {
367
- originX: 'start', originY: 'center',
368
- overlayX: 'end', overlayY: 'center',
369
- offsetX: -8
364
+ originX: 'start',
365
+ originY: 'center',
366
+ overlayX: 'end',
367
+ overlayY: 'center',
368
+ offsetX: -8,
370
369
  };
371
370
  const right = {
372
- originX: 'end', originY: 'center',
373
- overlayX: 'start', overlayY: 'center',
374
- offsetX: 8
371
+ originX: 'end',
372
+ originY: 'center',
373
+ overlayX: 'start',
374
+ overlayY: 'center',
375
+ offsetX: 8,
375
376
  };
376
377
  if (preferred === 'auto') {
377
378
  return [bottom, top, right, left];
378
379
  }
379
380
  switch (preferred) {
380
- case 'top': return [top, bottom, right, left];
381
- case 'bottom': return [bottom, top, right, left];
382
- case 'left': return [left, right, bottom, top];
383
- case 'right': return [right, left, bottom, top];
384
- default: return [bottom, top, right, left];
381
+ case 'top':
382
+ return [top, bottom, right, left];
383
+ case 'bottom':
384
+ return [bottom, top, right, left];
385
+ case 'left':
386
+ return [left, right, bottom, top];
387
+ case 'right':
388
+ return [right, left, bottom, top];
389
+ default:
390
+ return [bottom, top, right, left];
385
391
  }
386
392
  }
387
393
  mapPositionToPlacement(pos) {
@@ -443,78 +449,72 @@ class TypeaheadPanelComponent {
443
449
  }
444
450
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: TypeaheadPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
445
451
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.0", type: TypeaheadPanelComponent, isStandalone: true, selector: "as-typeahead-panel", ngImport: i0, template: `
446
- <div
447
- class="as-typeahead-panel"
448
- role="listbox"
449
- [attr.id]="id()"
450
- [class.as-empty]="items().length === 0"
451
- [style.max-height.px]="visibleCount() * itemHeight"
452
- >
453
- @for (item of items(); track item.key) {
454
- <div
455
- role="option"
456
- [attr.id]="optionId($index)"
457
- [attr.aria-selected]="$index === activeIndex()"
458
- class="as-typeahead-option"
459
- [class.as-active]="$index === activeIndex()"
460
- (mouseenter)="setActive($index)"
461
- (mousemove)="setActive($index)"
462
- (click)="select($index)"
463
- >
464
- @if (optionTemplate) {
465
- <ng-container
466
- *ngTemplateOutlet="optionTemplate; context: { $implicit: items()[$index] }"
467
- ></ng-container>
468
- }
469
- @else {
470
- {{ displayWith()(item) }}
471
- }
472
- </div>
473
- }
452
+ <div
453
+ class="as-typeahead-panel"
454
+ role="listbox"
455
+ [attr.id]="id()"
456
+ [class.as-empty]="items().length === 0"
457
+ [style.max-height.px]="visibleCount() * itemHeight"
458
+ >
459
+ @for (item of items(); track item.key) {
460
+ <div
461
+ role="option"
462
+ [attr.id]="optionId($index)"
463
+ [attr.aria-selected]="$index === activeIndex()"
464
+ class="as-typeahead-option"
465
+ [class.as-active]="$index === activeIndex()"
466
+ (mouseenter)="setActive($index)"
467
+ (mousemove)="setActive($index)"
468
+ (click)="select($index)"
469
+ >
470
+ @if (optionTemplate) {
471
+ <ng-container *ngTemplateOutlet="optionTemplate; context: { $implicit: items()[$index] }"></ng-container>
472
+ } @else {
473
+ {{ displayWith()(item) }}
474
+ }
475
+ </div>
476
+ }
474
477
 
475
- @if (items().length === 0) {
476
- <div class="as-no-results">No results</div>
477
- }
478
- </div>
479
- `, 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 });
478
+ @if (items().length === 0) {
479
+ <div class="as-no-results">No results</div>
480
+ }
481
+ </div>
482
+ `, 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 });
480
483
  }
481
484
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: TypeaheadPanelComponent, decorators: [{
482
485
  type: Component,
483
486
  args: [{ selector: 'as-typeahead-panel', standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: `
484
- <div
485
- class="as-typeahead-panel"
486
- role="listbox"
487
- [attr.id]="id()"
488
- [class.as-empty]="items().length === 0"
489
- [style.max-height.px]="visibleCount() * itemHeight"
490
- >
491
- @for (item of items(); track item.key) {
492
- <div
493
- role="option"
494
- [attr.id]="optionId($index)"
495
- [attr.aria-selected]="$index === activeIndex()"
496
- class="as-typeahead-option"
497
- [class.as-active]="$index === activeIndex()"
498
- (mouseenter)="setActive($index)"
499
- (mousemove)="setActive($index)"
500
- (click)="select($index)"
501
- >
502
- @if (optionTemplate) {
503
- <ng-container
504
- *ngTemplateOutlet="optionTemplate; context: { $implicit: items()[$index] }"
505
- ></ng-container>
506
- }
507
- @else {
508
- {{ displayWith()(item) }}
509
- }
510
- </div>
511
- }
487
+ <div
488
+ class="as-typeahead-panel"
489
+ role="listbox"
490
+ [attr.id]="id()"
491
+ [class.as-empty]="items().length === 0"
492
+ [style.max-height.px]="visibleCount() * itemHeight"
493
+ >
494
+ @for (item of items(); track item.key) {
495
+ <div
496
+ role="option"
497
+ [attr.id]="optionId($index)"
498
+ [attr.aria-selected]="$index === activeIndex()"
499
+ class="as-typeahead-option"
500
+ [class.as-active]="$index === activeIndex()"
501
+ (mouseenter)="setActive($index)"
502
+ (mousemove)="setActive($index)"
503
+ (click)="select($index)"
504
+ >
505
+ @if (optionTemplate) {
506
+ <ng-container *ngTemplateOutlet="optionTemplate; context: { $implicit: items()[$index] }"></ng-container>
507
+ } @else {
508
+ {{ displayWith()(item) }}
509
+ }
510
+ </div>
511
+ }
512
512
 
513
- @if (items().length === 0) {
514
- <div class="as-no-results">No results</div>
515
- }
516
- </div>
517
- `, 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"] }]
513
+ @if (items().length === 0) {
514
+ <div class="as-no-results">No results</div>
515
+ }
516
+ </div>
517
+ `, 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"] }]
518
518
  }] });
519
519
 
520
520
  class TypeaheadDirective {
@@ -632,9 +632,7 @@ class TypeaheadDirective {
632
632
  const match = this.findMatch(text);
633
633
  if (this.restrictToList()) {
634
634
  this.commitSelection(match);
635
- this.host.nativeElement.value = match
636
- ? this.displayWith()(match)
637
- : '';
635
+ this.host.nativeElement.value = match ? this.displayWith()(match) : '';
638
636
  }
639
637
  else if (match) {
640
638
  this.commitSelection(match);
@@ -675,7 +673,8 @@ class TypeaheadDirective {
675
673
  }
676
674
  }
677
675
  createOverlay() {
678
- const strategy = this.overlay.position()
676
+ const strategy = this.overlay
677
+ .position()
679
678
  .flexibleConnectedTo(this.host)
680
679
  .withPositions(this.positions())
681
680
  .withPush(true);
@@ -695,9 +694,7 @@ class TypeaheadDirective {
695
694
  const key = q.toLowerCase();
696
695
  const list = this.options() ?? [];
697
696
  const filtered = list.filter(it => {
698
- const target = this.filterBy() === 'key'
699
- ? String(it.key)
700
- : String(it.value);
697
+ const target = this.filterBy() === 'key' ? String(it.key) : String(it.value);
701
698
  return target.toLowerCase().includes(key);
702
699
  });
703
700
  this.open();
@@ -712,9 +709,7 @@ class TypeaheadDirective {
712
709
  }
713
710
  findMatch(text) {
714
711
  const list = this.options() ?? [];
715
- return (list.find(it => this.displayWith()(it) === text) ??
716
- list.find(it => String(it.key) === text) ??
717
- null);
712
+ return list.find(it => this.displayWith()(it) === text) ?? list.find(it => String(it.key) === text) ?? null;
718
713
  }
719
714
  isDisabled() {
720
715
  return this.disabled() || this.cvaDisabled();
@@ -981,14 +976,28 @@ class AsFlatpickrComponent {
981
976
  useExisting: forwardRef(() => AsFlatpickrComponent),
982
977
  multi: true,
983
978
  },
984
- ], viewQueries: [{ propertyName: "inputEl", first: true, predicate: ["input"], descendants: true, static: true }], ngImport: i0, template: `<input #input type="text" [attr.placeholder]="placeholder()" [ngClass]="elementClass()" [autocomplete]="autocomplete()" [id]="id()"/>`, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
979
+ ], viewQueries: [{ propertyName: "inputEl", first: true, predicate: ["input"], descendants: true, static: true }], ngImport: i0, template: `<input
980
+ #input
981
+ type="text"
982
+ [attr.placeholder]="placeholder()"
983
+ [ngClass]="elementClass()"
984
+ [autocomplete]="autocomplete()"
985
+ [id]="id()"
986
+ />`, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
985
987
  }
986
988
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: AsFlatpickrComponent, decorators: [{
987
989
  type: Component,
988
990
  args: [{
989
991
  selector: 'as-flatpickr',
990
992
  standalone: true,
991
- template: `<input #input type="text" [attr.placeholder]="placeholder()" [ngClass]="elementClass()" [autocomplete]="autocomplete()" [id]="id()"/>`,
993
+ template: `<input
994
+ #input
995
+ type="text"
996
+ [attr.placeholder]="placeholder()"
997
+ [ngClass]="elementClass()"
998
+ [autocomplete]="autocomplete()"
999
+ [id]="id()"
1000
+ />`,
992
1001
  providers: [
993
1002
  {
994
1003
  provide: NG_VALUE_ACCESSOR,
@@ -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 selector: 'lib-as-components',\n imports: [],\n template: `\n <p>\n as-components works!\n </p>\n `,\n styles: ``,\n})\nexport class AsComponents {\n\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ComponentRef,\n output,\n signal,\n Type,\n ViewChild,\n ViewContainerRef, ViewEncapsulation\n} from '@angular/core';\nimport {CommonModule} from '@angular/common';\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\n closed = output<ResultPayload | undefined>();\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 //console.log('prop check', { key, prop, typeofProp: typeof prop });\n if (typeof prop === 'function') {\n // **real consumer read** → forces input() to become WritableSignal\n const value = prop(); // ← Angular input() **must** be called\n //console.log('>>> primed', { key, value, constructor: prop?.constructor?.name, proto: Object.prototype.toString.call(prop) });\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 // console.log('>>> setInput dump', {\n // key,\n // prop,\n // typeofProp: typeof prop,\n // isFunction: typeof prop === 'function',\n // hasSet: prop?.set !== undefined,\n // constructor: prop?.constructor?.name,\n // proto: Object.prototype.toString.call(prop)\n // });\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 //console.log('>>> inside setInput BEFORE', key, before);\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 //console.log(`setInput: signal .set() called for ${key}`, targetInstance[key]);\n } else if (typeof target === 'function') {\n // 🔹 signal is readonly → cannot set\n compRef.setInput(key, value);\n //console.log(`setInput: target ${key} is a readonly signal!`, targetInstance[key]);\n } else {\n // fallback for raw primitive (optional)\n targetInstance[key] = value;\n //console.log(`setInput: raw assign for ${key}`, targetInstance[key]);\n }\n }\n\n backdropClick() {\n this.close();\n }\n\n close(result?: ResultPayload) {\n this.closed.emit(result);\n }\n}\n","\n <div class=\"as-modal-backdrop\" (click)=\"backdropClick()\"></div>\n <div class=\"as-modal\" [ngClass]=\"size()\" role=\"dialog\" aria-modal=\"true\">\n @if (title() || showClose()) {\n <div class=\"as-modal-header\">\n <h3 class=\"as-modal-title\">{{ title() }}</h3>\n @if (showClose()) {\n <button class=\"btn-close close pull-right\" type=\"button\" (click)=\"backdropClick()\"></button>\n }\n </div>\n }\n <div class=\"as-modal-body\">\n <ng-template #contentHost></ng-template>\n </div>\n </div>\n","import {Directive, EventEmitter, output} from '@angular/core';\nimport {ResultPayload} from './modal-container.component';\n\n@Directive()\nexport abstract class BaseModalComponent {\n readonly onClose = output<ResultPayload | undefined>();\n\n protected sendEvent(result: ResultPayload | undefined = undefined) {\n this.onClose.emit(result);\n }\n}\n","// TypeScript\nimport { ComponentRef } from '@angular/core';\nimport { Subject, Observable } from 'rxjs';\n\nexport class ModalRef {\n private _onClose = new Subject<any>();\n onClose: Observable<any> = this._onClose.asObservable();\n\n constructor(private componentRef: ComponentRef<any>, private hostElement: HTMLElement) {}\n\n close(result?: any) {\n this._onClose.next(result);\n this._onClose.complete();\n this.destroy();\n }\n\n private destroy() {\n try {\n if (this.componentRef) {\n this.componentRef.destroy();\n }\n } finally {\n if (this.hostElement && this.hostElement.parentNode) {\n this.hostElement.parentNode.removeChild(this.hostElement);\n }\n }\n }\n}\n","// TypeScript\nimport {\n Injectable,\n ApplicationRef,\n Injector,\n Type,\n ComponentRef,\n createComponent,\n EnvironmentInjector,\n isSignal, WritableSignal\n} from '@angular/core';\nimport { ModalRef } from './modal-ref';\nimport {ModalContainerComponent, ResultPayload} from '../modal-container/modal-container.component';\n\nexport interface ModalConfig {\n id?: string;\n size?: 'sm' | 'md' | 'lg';\n title?: string;\n showClose?: boolean;\n data?: any;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ModalService {\n constructor(\n private injector: Injector,\n private appRef: ApplicationRef,\n private envInjector: EnvironmentInjector\n ) {}\n\n show<T>(component: Type<T>, config: ModalConfig = {}): ModalRef {\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 ?? 'md');\n this.setInput(compRef.instance as any, 'showClose', config.showClose !== false);\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\n compRef.instance.closed.subscribe((result: ResultPayload | undefined) => {\n modalRef.close(result);\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 private isWritableSignal<T>(s: unknown): s is WritableSignal<T> {\n return isSignal(s) && typeof (s as WritableSignal<T>).set === 'function';\n }\n}\n","\nimport { Component, signal, WritableSignal, ChangeDetectionStrategy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'as-tooltip',\n standalone: true,\n imports: [CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <div\n class=\"as-tooltip\"\n [class.as-placement-top]=\"placement() === 'bottom'\"\n [class.as-placement-bottom]=\"placement() === 'top'\"\n [class.as-placement-left]=\"placement() === 'right'\"\n [class.as-placement-right]=\"placement() === 'left'\"\n [attr.id]=\"id()\"\n role=\"tooltip\"\n [attr.aria-hidden]=\"!text()\"\n >\n {{ text() }}\n <span class=\"as-tooltip-arrow\" aria-hidden=\"true\"></span>\n </div>\n `,\n styles: [\n `\n :host { display: block; }\n\n .as-tooltip {\n position: relative;\n display: inline-block;\n background: rgba(97, 97, 97, 0.95);\n color: #fff;\n padding: 6px 10px;\n border-radius: 4px;\n font-size: 12px;\n max-width: 240px;\n box-shadow: 0 2px 10px rgba(0,0,0,0.2);\n line-height: 1.2;\n }\n\n /* Arrow base: zero-sized element using borders to form a triangle */\n .as-tooltip-arrow {\n position: absolute;\n width: 0;\n height: 0;\n }\n\n /* Bottom placement: tooltip sits above origin, arrow points downwards (at bottom of tooltip) */\n .as-placement-bottom .as-tooltip-arrow {\n left: 50%;\n transform: translateX(-50%);\n top: 100%;\n border-left: 6px solid transparent;\n border-right: 6px solid transparent;\n border-top: 6px solid rgba(97, 97, 97, 0.95);\n }\n\n /* Top placement: tooltip sits below origin, arrow points upwards (at top of tooltip) */\n .as-placement-top .as-tooltip-arrow {\n left: 50%;\n transform: translateX(-50%);\n bottom: 100%;\n border-left: 6px solid transparent;\n border-right: 6px solid transparent;\n border-bottom: 6px solid rgba(97, 97, 97, 0.95);\n }\n\n /* Left placement: tooltip sits to the right of origin, arrow points left (at left edge) */\n .as-placement-left .as-tooltip-arrow {\n top: 50%;\n transform: translateY(-50%);\n right: 100%;\n border-top: 6px solid transparent;\n border-bottom: 6px solid transparent;\n border-right: 6px solid rgba(97, 97, 97, 0.95);\n }\n\n /* Right placement: tooltip sits to the left of origin, arrow points right (at right edge) */\n .as-placement-right .as-tooltip-arrow {\n top: 50%;\n transform: translateY(-50%);\n left: 100%;\n border-top: 6px solid transparent;\n border-bottom: 6px solid transparent;\n border-left: 6px solid rgba(97, 97, 97, 0.95);\n }\n `\n ]\n})\nexport class TooltipComponent {\n readonly id: WritableSignal<string> = signal(`as-tooltip-${Math.random().toString(36).slice(2, 9)}`);\n\n // Writable text so directive can update via `.set(...)`\n readonly text: WritableSignal<string | null> = signal<string | null>(null);\n\n // Placement signal — set by directive to switch arrow orientation\n readonly placement: WritableSignal<'top' | 'bottom' | 'left' | 'right'> =\n signal<'top' | 'bottom' | 'left' | 'right'>('bottom');\n}\n","import {\n Directive,\n ElementRef,\n HostListener,\n inject,\n input,\n signal,\n computed,\n OnDestroy,\n WritableSignal,\n Injector\n} 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 selector: '[asTooltip]',\n standalone: true,\n})\nexport class TooltipDirective implements OnDestroy {\n private readonly overlay = inject(Overlay);\n private readonly injector = inject(Injector);\n private readonly host = inject(ElementRef<HTMLElement>);\n\n readonly asTooltip = input<string | null>(null);\n readonly asTooltipPlacement= input<'top' | 'bottom' | 'left' | 'right' | 'auto'>('auto');\n\n private overlayRef: OverlayRef | null = null;\n private strategy: FlexibleConnectedPositionStrategy | null = null;\n private posSub: Subscription | null = null;\n\n private readonly positions = computed(() => this.buildPositions(this.asTooltipPlacement()));\n\n @HostListener('mouseenter')\n show(): void {\n const text = this.asTooltip();\n if (!text) return;\n\n if (!this.overlayRef) {\n this.createOverlay();\n }\n\n if (!this.overlayRef!.hasAttached()) {\n const portal = new ComponentPortal(TooltipComponent);\n const compRef = this.overlayRef!.attach(portal);\n\n compRef.instance.text.set(text);\n\n // set aria-describedby\n const id = compRef.instance.id();\n this.host.nativeElement.setAttribute('aria-describedby', id);\n\n // subscribe to CDK's chosen position and write to tooltip placement signal\n if (this.strategy && !this.posSub) {\n this.posSub = this.strategy.positionChanges.subscribe((change: any) => {\n // `change` may contain different property names across CDK versions;\n // try common locations for the resolved connected position.\n const pos: ConnectedPosition | undefined =\n change?.connectionPair ?? change?.connectedPosition ?? change?.lastConnectedPosition ?? change;\n\n if (pos) {\n const placement = this.mapPositionToPlacement(pos);\n compRef.instance.placement.set(placement);\n }\n });\n }\n\n // initial placement hint: map the first position we provided\n const initial = this.positions()[0];\n compRef.instance.placement.set(this.mapPositionToPlacement(initial));\n\n this.overlayRef!.updatePosition();\n }\n }\n\n @HostListener('mouseleave')\n hide(): void {\n this.detachOverlay();\n }\n\n ngOnDestroy(): void {\n this.detachOverlay(true);\n }\n\n private createOverlay(): void {\n const strategy = this.overlay.position()\n .flexibleConnectedTo(this.host)\n .withPositions(this.positions())\n .withPush(true) as FlexibleConnectedPositionStrategy;\n\n // store strategy so we can watch positionChanges\n this.strategy = strategy;\n\n strategy.withDefaultOffsetY(8);\n strategy.withDefaultOffsetX(8);\n\n this.overlayRef = this.overlay.create({\n positionStrategy: strategy,\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n panelClass: 'as-tooltip-panel',\n hasBackdrop: false,\n });\n }\n\n private detachOverlay(dispose = false): void {\n if (!this.overlayRef) return;\n\n if (this.overlayRef.hasAttached()) {\n const hostEl = this.host.nativeElement;\n if (hostEl.getAttribute('aria-describedby')) {\n hostEl.removeAttribute('aria-describedby');\n }\n }\n\n this.overlayRef.detach();\n\n if (this.posSub) {\n this.posSub.unsubscribe();\n this.posSub = null;\n }\n\n if (dispose) {\n this.overlayRef.dispose();\n this.overlayRef = null;\n this.strategy = null;\n }\n }\n\n private buildPositions(preferred: 'top' | 'bottom' | 'left' | 'right' | 'auto'): ConnectedPosition[] {\n const top: ConnectedPosition = {\n originX: 'center', originY: 'top',\n overlayX: 'center', overlayY: 'bottom',\n offsetY: -8\n };\n const bottom: ConnectedPosition = {\n originX: 'center', originY: 'bottom',\n overlayX: 'center', overlayY: 'top',\n offsetY: 8\n };\n const left: ConnectedPosition = {\n originX: 'start', originY: 'center',\n overlayX: 'end', overlayY: 'center',\n offsetX: -8\n };\n const right: ConnectedPosition = {\n originX: 'end', originY: 'center',\n overlayX: 'start', overlayY: 'center',\n offsetX: 8\n };\n\n if (preferred === 'auto') {\n return [bottom, top, right, left];\n }\n\n switch (preferred) {\n case 'top': return [top, bottom, right, left];\n case 'bottom': return [bottom, top, right, left];\n case 'left': return [left, right, bottom, top];\n case 'right': return [right, left, bottom, top];\n default: return [bottom, top, right, left];\n }\n }\n\n private mapPositionToPlacement(pos: ConnectedPosition): 'top' | 'bottom' | 'left' | 'right' {\n // Determine placement by comparing origin/overlay alignment used by CDK\n if (pos.originY === 'top' && pos.overlayY === 'bottom') return 'top';\n if (pos.originY === 'bottom' && pos.overlayY === 'top') return 'bottom';\n if (pos.originX === 'start' && pos.overlayX === 'end') return 'left';\n if (pos.originX === 'end' && pos.overlayX === 'start') return 'right';\n // fallback\n return 'bottom';\n }\n}\n","// typescript\nimport { Component, signal, WritableSignal, ChangeDetectionStrategy, TemplateRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nexport interface Option {\n key: string;\n value: string;\n}\n\n@Component({\n selector: 'as-typeahead-panel',\n standalone: true,\n imports: [CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\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\n *ngTemplateOutlet=\"optionTemplate; context: { $implicit: items()[$index] }\"\n ></ng-container>\n }\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 `,\n styles: [\n `\n :host { display:block; }\n .as-typeahead-panel {\n min-width: 160px;\n overflow: scroll;\n background: #fff;\n border: 1px solid rgba(0,0,0,0.12);\n box-shadow: 0 4px 10px rgba(0,0,0,0.12);\n border-radius: 4px;\n padding: 4px 0;\n box-sizing: border-box;\n }\n .as-typeahead-option {\n padding: 8px 12px;\n cursor: pointer;\n user-select: none;\n color: #222;\n display: block;\n }\n .as-typeahead-option.as-active {\n background: #f1f1f1;\n }\n .as-no-results {\n padding: 8px 12px;\n color: rgba(0,0,0,0.5);\n }\n .as-empty { min-width: 120px; }\n `\n ]\n})\nexport class TypeaheadPanelComponent {\n readonly id: WritableSignal<string> = signal(`as-typeahead-panel-${Math.random().toString(36).slice(2,9)}`);\n\n readonly items: WritableSignal<Option[]> = signal<Option[]>([]);\n // default shows the `value` field\n readonly displayWith: WritableSignal<(item: Option) => string> =\n signal<(item: Option) => string>((i: Option) => String(i?.value ?? ''));\n\n readonly activeIndex: WritableSignal<number | null> = signal<number | null>(null);\n\n // visual config: how many items visible before scrollbar (set by directive)\n readonly visibleCount: WritableSignal<number> = signal<number>(5);\n readonly itemHeight = 40; // px - used to compute maxHeight\n\n // optional custom template & callback (set by directive)\n optionTemplate: TemplateRef<any> | null = null;\n onSelect: ((item: Option) => void) | null = null;\n\n optionId(i: number) {\n return `${this.id()}-option-${i}`;\n }\n\n setActive(i: number | null) {\n this.activeIndex.set(i);\n }\n\n select(i: number) {\n const items = this.items();\n if (i == null || i < 0 || i >= items.length) return;\n const item = items[i];\n if (this.onSelect) this.onSelect(item);\n }\n}\n","import {\n Directive,\n ElementRef,\n HostListener,\n inject,\n input,\n signal,\n computed,\n OnDestroy,\n TemplateRef,\n ViewContainerRef,\n effect,\n output,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n NG_VALUE_ACCESSOR,\n} from '@angular/forms';\nimport {\n Overlay,\n OverlayRef,\n FlexibleConnectedPositionStrategy,\n ConnectedPosition,\n} from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { TypeaheadPanelComponent, Option } from './typeahead-panel.component';\n\n@Directive({\n selector: '[asTypeahead]',\n standalone: true,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: TypeaheadDirective,\n multi: true,\n },\n ],\n})\nexport class TypeaheadDirective\n implements ControlValueAccessor, OnDestroy {\n\n /* ---------------- injections ---------------- */\n private readonly overlay = inject(Overlay);\n private readonly host = inject(ElementRef<HTMLInputElement>);\n private readonly vcr = inject(ViewContainerRef);\n\n /* ---------------- inputs ---------------- */\n readonly options = input<Option[] | null>(null);\n readonly displayWith = input<(item: Option) => string>(\n (it: Option) => String(it?.value ?? '')\n );\n readonly filterBy = input<'key' | 'value'>('value');\n readonly visibleCount = input<number>(5);\n readonly restrictToList = input<boolean>(false);\n readonly asTypeaheadTemplate = input<TemplateRef<any> | null>(null);\n readonly disabled = input<boolean>(false);\n readonly enableLog = input<boolean>(false);\n\n /* ---------------- outputs ---------------- */\n readonly typeaheadOnSelect = output<Option | null>();\n\n /* ---------------- internal ---------------- */\n private readonly cvaDisabled = signal(false);\n private readonly selected = signal<Option | null>(null);\n\n private overlayRef: OverlayRef | null = null;\n private panel: TypeaheadPanelComponent | null = null;\n private destroyed = false;\n\n private onChange: (value: any) => void = () => {};\n private onTouched: () => void = () => {};\n\n private readonly positions = computed(() => this.buildPositions());\n\n constructor() {\n\n /* sync initial value -> input text */\n effect(() => {\n const sel = this.selected();\n if (!sel) {\n return;\n }\n this.log('init select value', sel.key, sel.value)\n this.host.nativeElement.value = this.displayWith()(sel);\n });\n }\n\n /* ---------------- CVA ---------------- */\n writeValue(value: any): void {\n if (value == null) {\n this.setInternalSelection(null);\n this.host.nativeElement.value = '';\n return;\n }\n\n const match = this.options()?.find(o => o.key === value) ?? null;\n this.setInternalSelection(match);\n\n if (match) {\n this.host.nativeElement.value = this.displayWith()(match);\n } else {\n this.host.nativeElement.value = String(value);\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.log('component disabled', isDisabled)\n this.cvaDisabled.set(isDisabled);\n }\n\n ngOnDestroy(): void {\n this.destroyed = true;\n this.detach(true);\n }\n\n /* ---------------- host events ---------------- */\n @HostListener('focus')\n @HostListener('click')\n onFocus() {\n if (this.isDisabled()) return;\n this.open();\n this.showAll();\n }\n\n @HostListener('input', ['$event'])\n onInput(e: Event) {\n if (this.isDisabled()) return;\n const value = (e.target as HTMLInputElement).value;\n value ? this.filter(value) : this.showAll();\n }\n\n @HostListener('keydown', ['$event'])\n onKeydown(e: KeyboardEvent) {\n if (this.isDisabled() || !this.panel) return;\n\n const items = this.panel.items();\n if (!items.length) return;\n\n let idx = this.panel.activeIndex();\n\n switch (e.key) {\n case 'ArrowDown':\n e.preventDefault();\n idx = idx == null ? 0 : Math.min(items.length - 1, idx + 1);\n this.panel.setActive(idx);\n break;\n\n case 'ArrowUp':\n e.preventDefault();\n idx = idx == null ? items.length - 1 : Math.max(0, idx - 1);\n this.panel.setActive(idx);\n break;\n\n case 'Enter':\n e.preventDefault();\n if (idx != null) this.panel.select(idx);\n break;\n\n case 'Escape':\n this.close();\n break;\n }\n }\n\n @HostListener('blur')\n onBlur() {\n setTimeout(() => {\n if (this.destroyed) return;\n\n const text = this.host.nativeElement.value;\n const match = this.findMatch(text);\n\n if (this.restrictToList()) {\n this.commitSelection(match);\n this.host.nativeElement.value = match\n ? this.displayWith()(match)\n : '';\n } else if (match) {\n this.commitSelection(match);\n } else {\n this.commitSelection(null);\n }\n\n this.onTouched();\n this.close();\n }, 150);\n }\n\n /* ---------------- overlay ---------------- */\n private open() {\n if (!this.overlayRef) this.createOverlay();\n if (!this.overlayRef!.hasAttached()) {\n const portal = new ComponentPortal(TypeaheadPanelComponent, this.vcr);\n const ref = this.overlayRef!.attach(portal);\n this.panel = ref.instance;\n\n this.panel.displayWith.set(this.displayWith());\n this.panel.optionTemplate = this.asTypeaheadTemplate();\n this.panel.visibleCount.set(this.visibleCount());\n this.panel.onSelect = (it: Option) => this.select(it);\n }\n }\n\n private close() {\n this.detach();\n }\n\n private detach(dispose = false) {\n if (!this.overlayRef) return;\n if (this.overlayRef.hasAttached()) this.overlayRef.detach();\n if (dispose) {\n this.overlayRef.dispose();\n this.overlayRef = null;\n this.panel = null;\n }\n }\n\n private createOverlay() {\n const strategy = this.overlay.position()\n .flexibleConnectedTo(this.host)\n .withPositions(this.positions())\n .withPush(true) as FlexibleConnectedPositionStrategy;\n\n strategy.withDefaultOffsetY(4);\n\n this.overlayRef = this.overlay.create({\n positionStrategy: strategy,\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n });\n }\n\n /* ---------------- helpers ---------------- */\n private showAll() {\n this.open();\n this.panel?.items.set(this.options() ?? []);\n this.panel?.setActive(null);\n }\n\n private filter(q: string) {\n const key = q.toLowerCase();\n const list = this.options() ?? [];\n const filtered = list.filter(it => {\n const target =\n this.filterBy() === 'key'\n ? String(it.key)\n : String(it.value);\n return target.toLowerCase().includes(key);\n });\n\n this.open();\n this.panel?.items.set(filtered);\n this.panel?.setActive(filtered.length ? 0 : null);\n }\n\n private select(item: Option) {\n this.commitSelection(item);\n this.host.nativeElement.value = this.displayWith()(item);\n this.close();\n this.host.nativeElement.focus();\n }\n\n private findMatch(text: string): Option | null {\n const list = this.options() ?? [];\n return (\n list.find(it => this.displayWith()(it) === text) ??\n list.find(it => String(it.key) === text) ??\n null\n );\n }\n\n private isDisabled(): boolean {\n return this.disabled() || this.cvaDisabled();\n }\n\n private buildPositions(): ConnectedPosition[] {\n return [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: 4,\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetY: -4,\n },\n ];\n }\n\n private commitSelection(sel: Option | null) {\n this.selected.set(sel);\n this.log('Set value and emit', sel)\n\n // CVA\n this.onChange(sel?.key ?? null);\n\n // OUTPUT\n this.typeaheadOnSelect.emit(sel);\n }\n\n private setInternalSelection(sel: Option | null) {\n this.log('Set value only', sel)\n this.selected.set(sel);\n }\n\n log(value: any, ...rest: any[]): void {\n if (this.enableLog() || localStorage.getItem('loggerEnable')) {\n console.log('%c DEBUG ', 'background: gray; color: white; font-weight: bold;', `AS typeahead -> ${value}`, ...rest);\n }\n }\n\n}\n","import {\n Component,\n ElementRef,\n ViewChild,\n AfterViewInit,\n effect,\n input,\n output,\n signal,\n NgZone,\n OnDestroy,\n forwardRef,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n NG_VALUE_ACCESSOR,\n} from '@angular/forms';\n\nimport flatpickr from 'flatpickr';\nimport 'flatpickr/dist/flatpickr.css';\nimport { NgClass } from '@angular/common';\n\nimport { FlatpickrValue, FlatpickrMode, FlatpickrDateFormat } from './flatpickr.types';\n\n@Component({\n selector: 'as-flatpickr',\n standalone: true,\n template: `<input #input type=\"text\" [attr.placeholder]=\"placeholder()\" [ngClass]=\"elementClass()\" [autocomplete]=\"autocomplete()\" [id]=\"id()\"/>`,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AsFlatpickrComponent),\n multi: true,\n },\n ],\n imports: [NgClass],\n})\nexport class AsFlatpickrComponent implements ControlValueAccessor, AfterViewInit, OnDestroy {\n /* ---------------- Inputs ---------------- */\n mode = input<FlatpickrMode>('single');\n enableTime = input(false);\n timeOnly = input(false);\n placeholder = input<string | null>(null);\n id = input<string | null>(null);\n dateFormat = input<FlatpickrDateFormat>('Y-m-d');\n elementClass = input<string>('form-control form-icon-calendar');\n time24h = input(true);\n autocomplete = input<'on' | 'off'>('off');\n\n /* External value (string-based now) */\n value = input<FlatpickrValue>(null);\n valueChange = output<FlatpickrValue>();\n\n /* ---------------- Internals ---------------- */\n @ViewChild('input', { static: true }) private inputEl!: ElementRef<HTMLInputElement>;\n private fp: flatpickr.Instance | null = null;\n\n private onChange: (value: FlatpickrValue) => void = () => {};\n private onTouched: () => void = () => {};\n private disabled = false;\n\n constructor(private zone: NgZone) {\n /* ---------------- Signal effect for syncing value ---------------- */\n effect(() => {\n const val = this.value();\n if (!this.fp) return;\n\n this.zone.runOutsideAngular(() => {\n const displayFormat = this.getDisplayFormat();\n if (Array.isArray(val)) {\n const dates = val.map(v => flatpickr.parseDate(v, displayFormat));\n this.fp!.setDate(dates as Date[], false);\n } else if (val) {\n const date = flatpickr.parseDate(val, displayFormat);\n this.fp!.setDate(date ?? [], false);\n } else {\n this.fp!.clear();\n }\n });\n });\n }\n\n private handleOpen = () => {\n if (this.disabled) {\n this.fp?.close();\n }\n };\n\n /* ---------------- Initialize Flatpickr ---------------- */\n ngAfterViewInit() {\n this.zone.runOutsideAngular(() => {\n this.fp = flatpickr(this.inputEl.nativeElement, {\n mode: this.mode(),\n enableTime: this.enableTime() || this.timeOnly(),\n noCalendar: this.timeOnly(),\n allowInput: true,\n time_24hr: this.time24h(),\n dateFormat: this.getDisplayFormat(),\n onOpen: this.handleOpen,\n onChange: (dates, _str, instance) => this.handleChange(dates, instance),\n onClose: () => this.zone.run(() => this.onTouched()),\n });\n\n // Manual validation for typed input\n this.inputEl.nativeElement.addEventListener('blur', () => {\n const typedValue = this.inputEl.nativeElement.value;\n const parsed = this.parseTypedValue(typedValue);\n\n this.zone.run(() => {\n if (parsed === null) {\n this.onChange(null);\n } else {\n this.onChange(parsed);\n }\n });\n });\n });\n }\n\n /* ---------------- CVA Implementation ---------------- */\n writeValue(value: FlatpickrValue): void {\n if (!this.fp) return;\n const displayFormat = this.getDisplayFormat();\n if (Array.isArray(value)) {\n const dates = value.map(v => flatpickr.parseDate(v, displayFormat));\n this.fp.setDate(dates as Date[], false);\n } else if (value) {\n const date = flatpickr.parseDate(value, displayFormat);\n this.fp.setDate(date ?? [], false);\n } else {\n this.fp.clear();\n }\n }\n\n registerOnChange(fn: (value: FlatpickrValue) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(disabled: boolean): void {\n this.disabled = disabled;\n if (this.inputEl) this.inputEl.nativeElement.disabled = disabled;\n }\n\n /* ---------------- Handle Flatpickr changes ---------------- */\n private handleChange(dates: Date[], instance: flatpickr.Instance) {\n const format = this.dateFormat() ?? this.getDefaultDateFormat();\n let value: FlatpickrValue = null;\n\n if (this.mode() === 'range') {\n if (dates.length === 2) {\n value = dates.map(d => flatpickr.formatDate(d, format)) as [string, string];\n }\n } else if (dates[0]) {\n if (this.enableTime() || this.timeOnly()) {\n const timeFormat = this.time24h() ? 'H:i' : 'h:i K';\n value = flatpickr.formatDate(dates[0], `${format} ${timeFormat}`);\n } else {\n value = flatpickr.formatDate(dates[0], format);\n }\n\n // ✅ REMOVE automatic close here\n // instance.close();\n }\n\n this.zone.run(() => {\n this.onChange(value);\n this.valueChange.emit(value);\n });\n }\n\n /* ---------------- Typed input parsing ---------------- */\n private parseTypedValue(inputValue: string): FlatpickrValue {\n try {\n const displayFormat = this.getDisplayFormat();\n if (!inputValue) return null;\n\n if (this.mode() === 'range') {\n const parts = inputValue.split(' to ').map(s => s.trim());\n if (parts.length !== 2) return null;\n\n const start = flatpickr.parseDate(parts[0], displayFormat);\n const end = flatpickr.parseDate(parts[1], displayFormat);\n if (!start || !end || start > end) return null;\n\n return [flatpickr.formatDate(start, displayFormat), flatpickr.formatDate(end, displayFormat)];\n } else {\n const parsed = flatpickr.parseDate(inputValue, displayFormat);\n return parsed ? flatpickr.formatDate(parsed, displayFormat) : null;\n }\n } catch {\n return null;\n }\n }\n\n /* ---------------- Format helpers ---------------- */\n private getDefaultDateFormat(): string {\n if (this.timeOnly()) return 'H:i';\n if (this.enableTime()) return 'Y-m-d';\n return 'Y-m-d';\n }\n\n /** Combine dateFormat + optional time for display/input */\n private getDisplayFormat(): string {\n if (this.timeOnly()) {\n return this.time24h() ? 'H:i' : 'h:i K'; // time only\n }\n const baseFormat = this.dateFormat() ?? 'Y-m-d';\n if (this.enableTime()) {\n const timeFormat = this.time24h() ? 'H:i' : 'h:i K';\n return `${baseFormat} ${timeFormat}`; // date + time\n }\n return baseFormat; // date only\n }\n\n /* ---------------- Cleanup ---------------- */\n ngOnDestroy() {\n this.fp?.destroy();\n this.fp = null;\n }\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.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\tChangeDetectionStrategy,\n\tComponent,\n\tComponentRef,\n\toutput,\n\tsignal,\n\tType,\n\tViewChild,\n\tViewContainerRef,\n\tViewEncapsulation,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nexport interface ResultPayload {\n\taction: string;\n\tpayload?: unknown;\n}\n\n@Component({\n\tselector: 'as-modal-container',\n\ttemplateUrl: 'modal-container.component.html',\n\tstyleUrl: 'modal-container.component.scss',\n\timports: [CommonModule],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstandalone: true,\n})\nexport class ModalContainerComponent {\n\t@ViewChild('contentHost', { read: ViewContainerRef, static: true }) contentHost!: ViewContainerRef;\n\n\t// signal-based inputs\n\ttitle = signal<string | undefined>(undefined);\n\tsize = signal<'sm' | 'md' | 'lg'>('md');\n\tshowClose = signal<boolean>(true);\n\n\tclosed = output<ResultPayload | undefined>();\n\n\tget sizeClass() {\n\t\treturn this.size(); // template uses size() directly; keep helper for compatibility if needed\n\t}\n\n\t/**\n\t * Create a component inside the container and set inputs.\n\t * Supports:\n\t * - assigning to writable signals (calls `.set(...)`)\n\t * - assigning to plain properties\n\t * Also handles primitive `inputs` mapping to common names.\n\t */\n\tloadComponent<T>(component: Type<T>, inputs?: Partial<T> | any): ComponentRef<T> {\n\t\tconst compRef = this.contentHost.createComponent<T>(component);\n\n\t\t/* 🟡 PRIME every signal (factory → real signal) */\n\t\tconst inst = compRef.instance as Record<string, any>;\n\t\tfor (const key in inst) {\n\t\t\tconst prop = inst[key];\n\t\t\t//console.log('prop check', { key, prop, typeofProp: typeof prop });\n\t\t\tif (typeof prop === 'function') {\n\t\t\t\t// **real consumer read** → forces input() to become WritableSignal\n\t\t\t\tconst value = prop(); // ← Angular input() **must** be called\n\t\t\t\t//console.log('>>> primed', { key, value, constructor: prop?.constructor?.name, proto: Object.prototype.toString.call(prop) });\n\t\t\t}\n\t\t}\n\n\t\tfor (const key in inst) {\n\t\t\tconst prop = inst[key];\n\t\t\tif (typeof prop === 'function' && prop.length === 0) {\n\t\t\t\t// cheap check: call once (forces input() to become WritableSignal)\n\t\t\t\tprop();\n\t\t\t}\n\t\t}\n\n\t\tif (inputs !== undefined && inputs !== null) {\n\t\t\tif (typeof inputs === 'object' && !Array.isArray(inputs)) {\n\t\t\t\tfor (const key of Object.keys(inputs)) {\n\t\t\t\t\tconst prop = (compRef.instance as any)[key];\n\t\t\t\t\t// console.log('>>> setInput dump', {\n\t\t\t\t\t// key,\n\t\t\t\t\t// prop,\n\t\t\t\t\t// typeofProp: typeof prop,\n\t\t\t\t\t// isFunction: typeof prop === 'function',\n\t\t\t\t\t// hasSet: prop?.set !== undefined,\n\t\t\t\t\t// constructor: prop?.constructor?.name,\n\t\t\t\t\t// proto: Object.prototype.toString.call(prop)\n\t\t\t\t\t// });\n\t\t\t\t\tthis.setInput(compRef.instance as any, key, (inputs as any)[key], compRef);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// primitive mapping\n\t\t\t\t// const inst = compRef.instance as any;\n\t\t\t\tconst inst = compRef as any;\n\t\t\t\tif ('message' in inst) this.setInput(inst, 'message', inputs, compRef);\n\t\t\t\telse if ('data' in inst) this.setInput(inst, 'data', inputs, compRef);\n\t\t\t\telse this.setInput(inst, 'value', inputs, compRef);\n\t\t\t}\n\n\t\t\t// ensure rendering for OnPush / signal changes\n\t\t\tcompRef.changeDetectorRef?.detectChanges();\n\t\t}\n\n\t\treturn compRef;\n\t}\n\n\tprivate setInput(targetInstance: any, key: string, value: any, compRef: ComponentRef<any>) {\n\t\tconst before = targetInstance[key];\n\t\t//console.log('>>> inside setInput BEFORE', key, before);\n\t\tconst target = targetInstance[key];\n\n\t\tif (typeof target === 'function' && 'set' in target && typeof target.set === 'function') {\n\t\t\t// ✅ writable signal\n\t\t\ttarget.set(value);\n\t\t\t//console.log(`setInput: signal .set() called for ${key}`, targetInstance[key]);\n\t\t} else if (typeof target === 'function') {\n\t\t\t// 🔹 signal is readonly → cannot set\n\t\t\tcompRef.setInput(key, value);\n\t\t\t//console.log(`setInput: target ${key} is a readonly signal!`, targetInstance[key]);\n\t\t} else {\n\t\t\t// fallback for raw primitive (optional)\n\t\t\ttargetInstance[key] = value;\n\t\t\t//console.log(`setInput: raw assign for ${key}`, targetInstance[key]);\n\t\t}\n\t}\n\n\tbackdropClick() {\n\t\tthis.close();\n\t}\n\n\tclose(result?: ResultPayload) {\n\t\tthis.closed.emit(result);\n\t}\n}\n","<div class=\"as-modal-backdrop\" (click)=\"backdropClick()\"></div>\n<div class=\"as-modal\" [ngClass]=\"size()\" role=\"dialog\" aria-modal=\"true\">\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)=\"backdropClick()\"></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, EventEmitter, output } from '@angular/core';\nimport { ResultPayload } from './modal-container.component';\n\n@Directive()\nexport abstract class BaseModalComponent {\n\treadonly onClose = output<ResultPayload | undefined>();\n\n\tprotected sendEvent(result: ResultPayload | undefined = undefined) {\n\t\tthis.onClose.emit(result);\n\t}\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\tprivate _onClose = new Subject<ResultPayload | undefined>();\n\tonClose: Observable<ResultPayload | undefined> = this._onClose.asObservable();\n\n\tconstructor(\n\t\tprivate componentRef: ComponentRef<any>,\n\t\tprivate hostElement: HTMLElement,\n\t) {}\n\n\tclose(result?: ResultPayload | undefined) {\n\t\tthis._onClose.next(result);\n\t\tthis._onClose.complete();\n\t\tthis.destroy();\n\t}\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","// TypeScript\nimport {\n\tInjectable,\n\tApplicationRef,\n\tInjector,\n\tType,\n\tComponentRef,\n\tcreateComponent,\n\tEnvironmentInjector,\n\tisSignal,\n\tWritableSignal,\n} from '@angular/core';\nimport { ModalRef } from './modal-ref';\nimport { ModalContainerComponent, ResultPayload } from '../modal-container/modal-container.component';\n\nexport interface ModalConfig {\n\tid?: string;\n\tsize?: 'sm' | 'md' | 'lg';\n\ttitle?: string;\n\tshowClose?: boolean;\n\tdata?: any;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ModalService {\n\tconstructor(\n\t\tprivate injector: Injector,\n\t\tprivate appRef: ApplicationRef,\n\t\tprivate envInjector: EnvironmentInjector,\n\t) {}\n\n\tshow<T>(component: Type<T>, config: ModalConfig = {}): ModalRef {\n\t\tconst hostEl = document.createElement('div');\n\t\tdocument.body.appendChild(hostEl);\n\n\t\tconst compRef: ComponentRef<ModalContainerComponent> = createComponent(ModalContainerComponent, {\n\t\t\tenvironmentInjector: this.envInjector,\n\t\t});\n\n\t\t// set container inputs using signal-aware helper\n\t\tthis.setInput(compRef.instance as any, 'title', config.title);\n\t\tthis.setInput(compRef.instance as any, 'size', config.size ?? 'md');\n\t\tthis.setInput(compRef.instance as any, 'showClose', config.showClose !== false);\n\n\t\tthis.appRef.attachView(compRef.hostView);\n\t\thostEl.appendChild((compRef.hostView as any).rootNodes[0] as HTMLElement);\n\n\t\t// the container's loadComponent handles assigning inputs (including signals) to the child\n\t\tconst childRef: ComponentRef<T> = compRef.instance.loadComponent(component, config.data);\n\n\t\tconst modalRef = new ModalRef(compRef as any, hostEl);\n\n\t\tcompRef.instance.closed.subscribe((result: ResultPayload | undefined) => {\n\t\t\tmodalRef.close(result);\n\t\t});\n\n\t\tconst maybeEmitter = (childRef.instance as any).onClose;\n\t\tif (maybeEmitter && typeof maybeEmitter.subscribe === 'function') {\n\t\t\tmaybeEmitter.subscribe((res: any) => modalRef.close(res));\n\t\t}\n\n\t\treturn modalRef;\n\t}\n\n\tprivate setInput(targetInstance: any, key: string, value: any) {\n\t\tconst target = targetInstance[key];\n\t\tif (typeof target === 'function' && target && 'set' in target && typeof (target as any).set === 'function') {\n\t\t\t(target as any).set(value);\n\t\t} else {\n\t\t\ttargetInstance[key] = value;\n\t\t}\n\t}\n\tprivate isWritableSignal<T>(s: unknown): s is WritableSignal<T> {\n\t\treturn isSignal(s) && typeof (s as WritableSignal<T>).set === 'function';\n\t}\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","// typescript\nimport { 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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentsmith.bgd/as-components",
3
- "version": "21.0.26",
3
+ "version": "21.0.29",
4
4
  "peerDependencies": {
5
5
  "@angular/cdk": "^21.1.0",
6
6
  "@angular/common": "^21.1.0",
@@ -45,9 +45,9 @@ declare class ModalRef {
45
45
  private componentRef;
46
46
  private hostElement;
47
47
  private _onClose;
48
- onClose: Observable<any>;
48
+ onClose: Observable<ResultPayload | undefined>;
49
49
  constructor(componentRef: ComponentRef<any>, hostElement: HTMLElement);
50
- close(result?: any): void;
50
+ close(result?: ResultPayload | undefined): void;
51
51
  private destroy;
52
52
  }
53
53
 
@@ -75,7 +75,7 @@ declare class TooltipDirective implements OnDestroy {
75
75
  private readonly injector;
76
76
  private readonly host;
77
77
  readonly asTooltip: _angular_core.InputSignal<string | null>;
78
- readonly asTooltipPlacement: _angular_core.InputSignal<"bottom" | "top" | "left" | "right" | "auto">;
78
+ readonly asTooltipPlacement: _angular_core.InputSignal<"top" | "bottom" | "left" | "right" | "auto">;
79
79
  private overlayRef;
80
80
  private strategy;
81
81
  private posSub;
@@ -125,7 +125,7 @@ declare class TypeaheadDirective implements ControlValueAccessor, OnDestroy {
125
125
  private readonly vcr;
126
126
  readonly options: _angular_core.InputSignal<Option[] | null>;
127
127
  readonly displayWith: _angular_core.InputSignal<(item: Option) => string>;
128
- readonly filterBy: _angular_core.InputSignal<"key" | "value">;
128
+ readonly filterBy: _angular_core.InputSignal<"value" | "key">;
129
129
  readonly visibleCount: _angular_core.InputSignal<number>;
130
130
  readonly restrictToList: _angular_core.InputSignal<boolean>;
131
131
  readonly asTypeaheadTemplate: _angular_core.InputSignal<TemplateRef<any> | null>;