@spartan-ng/brain 0.0.1-alpha.412 → 0.0.1-alpha.413

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.
@@ -3,17 +3,21 @@ import { BrnSelectContentComponent, BrnSelectScrollDownDirective, BrnSelectScrol
3
3
  import { BrnSelectGroupDirective } from './lib/brn-select-group.directive';
4
4
  import { BrnSelectLabelDirective } from './lib/brn-select-label.directive';
5
5
  import { BrnSelectOptionDirective } from './lib/brn-select-option.directive';
6
+ import { BrnSelectPlaceholderDirective } from './lib/brn-select-placeholder.directive';
7
+ import { BrnSelectTriggerDirective } from './lib/brn-select-trigger.directive';
6
8
  import { BrnSelectValueComponent } from './lib/brn-select-value.component';
9
+ import { BrnSelectValueDirective } from './lib/brn-select-value.directive';
7
10
  import { BrnSelectComponent } from './lib/brn-select.component';
8
- import { BrnSelectTriggerDirective } from './lib/brn-select.service';
9
11
  import * as i0 from "@angular/core";
10
12
  export * from './lib/brn-select-content.component';
11
13
  export * from './lib/brn-select-group.directive';
12
14
  export * from './lib/brn-select-label.directive';
13
15
  export * from './lib/brn-select-option.directive';
16
+ export * from './lib/brn-select-placeholder.directive';
17
+ export * from './lib/brn-select-trigger.directive';
14
18
  export * from './lib/brn-select-value.component';
19
+ export * from './lib/brn-select-value.directive';
15
20
  export * from './lib/brn-select.component';
16
- export * from './lib/brn-select.service';
17
21
  export const BrnSelectImports = [
18
22
  BrnSelectComponent,
19
23
  BrnSelectContentComponent,
@@ -24,6 +28,8 @@ export const BrnSelectImports = [
24
28
  BrnSelectScrollUpDirective,
25
29
  BrnSelectGroupDirective,
26
30
  BrnSelectLabelDirective,
31
+ BrnSelectValueDirective,
32
+ BrnSelectPlaceholderDirective,
27
33
  ];
28
34
  export class BrnSelectModule {
29
35
  /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
@@ -35,7 +41,9 @@ export class BrnSelectModule {
35
41
  BrnSelectScrollDownDirective,
36
42
  BrnSelectScrollUpDirective,
37
43
  BrnSelectGroupDirective,
38
- BrnSelectLabelDirective], exports: [BrnSelectComponent,
44
+ BrnSelectLabelDirective,
45
+ BrnSelectValueDirective,
46
+ BrnSelectPlaceholderDirective], exports: [BrnSelectComponent,
39
47
  BrnSelectContentComponent,
40
48
  BrnSelectTriggerDirective,
41
49
  BrnSelectOptionDirective,
@@ -43,7 +51,9 @@ export class BrnSelectModule {
43
51
  BrnSelectScrollDownDirective,
44
52
  BrnSelectScrollUpDirective,
45
53
  BrnSelectGroupDirective,
46
- BrnSelectLabelDirective] });
54
+ BrnSelectLabelDirective,
55
+ BrnSelectValueDirective,
56
+ BrnSelectPlaceholderDirective] });
47
57
  /** @nocollapse */ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnSelectModule, imports: [BrnSelectComponent] });
48
58
  }
49
59
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnSelectModule, decorators: [{
@@ -53,4 +63,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
53
63
  exports: [...BrnSelectImports],
54
64
  }]
55
65
  }] });
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2JyYWluL3NlbGVjdC9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQ04seUJBQXlCLEVBQ3pCLDRCQUE0QixFQUM1QiwwQkFBMEIsR0FDMUIsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFDckUsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYywwQkFBMEIsQ0FBQztBQUV6QyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRztJQUMvQixrQkFBa0I7SUFDbEIseUJBQXlCO0lBQ3pCLHlCQUF5QjtJQUN6Qix3QkFBd0I7SUFDeEIsdUJBQXVCO0lBQ3ZCLDRCQUE0QjtJQUM1QiwwQkFBMEI7SUFDMUIsdUJBQXVCO0lBQ3ZCLHVCQUF1QjtDQUNkLENBQUM7QUFNWCxNQUFNLE9BQU8sZUFBZTswSEFBZixlQUFlOzJIQUFmLGVBQWUsWUFmM0Isa0JBQWtCO1lBQ2xCLHlCQUF5QjtZQUN6Qix5QkFBeUI7WUFDekIsd0JBQXdCO1lBQ3hCLHVCQUF1QjtZQUN2Qiw0QkFBNEI7WUFDNUIsMEJBQTBCO1lBQzFCLHVCQUF1QjtZQUN2Qix1QkFBdUIsYUFSdkIsa0JBQWtCO1lBQ2xCLHlCQUF5QjtZQUN6Qix5QkFBeUI7WUFDekIsd0JBQXdCO1lBQ3hCLHVCQUF1QjtZQUN2Qiw0QkFBNEI7WUFDNUIsMEJBQTBCO1lBQzFCLHVCQUF1QjtZQUN2Qix1QkFBdUI7MkhBT1gsZUFBZSxZQWYzQixrQkFBa0I7OzJGQWVOLGVBQWU7a0JBSjNCLFFBQVE7bUJBQUM7b0JBQ1QsT0FBTyxFQUFFLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQztvQkFDOUIsT0FBTyxFQUFFLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQztpQkFDOUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcblx0QnJuU2VsZWN0Q29udGVudENvbXBvbmVudCxcblx0QnJuU2VsZWN0U2Nyb2xsRG93bkRpcmVjdGl2ZSxcblx0QnJuU2VsZWN0U2Nyb2xsVXBEaXJlY3RpdmUsXG59IGZyb20gJy4vbGliL2Jybi1zZWxlY3QtY29udGVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnJuU2VsZWN0R3JvdXBEaXJlY3RpdmUgfSBmcm9tICcuL2xpYi9icm4tc2VsZWN0LWdyb3VwLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBCcm5TZWxlY3RMYWJlbERpcmVjdGl2ZSB9IGZyb20gJy4vbGliL2Jybi1zZWxlY3QtbGFiZWwuZGlyZWN0aXZlJztcbmltcG9ydCB7IEJyblNlbGVjdE9wdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4vbGliL2Jybi1zZWxlY3Qtb3B0aW9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBCcm5TZWxlY3RWYWx1ZUNvbXBvbmVudCB9IGZyb20gJy4vbGliL2Jybi1zZWxlY3QtdmFsdWUuY29tcG9uZW50JztcbmltcG9ydCB7IEJyblNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vbGliL2Jybi1zZWxlY3QuY29tcG9uZW50JztcbmltcG9ydCB7IEJyblNlbGVjdFRyaWdnZXJEaXJlY3RpdmUgfSBmcm9tICcuL2xpYi9icm4tc2VsZWN0LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYnJuLXNlbGVjdC1jb250ZW50LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9icm4tc2VsZWN0LWdyb3VwLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9icm4tc2VsZWN0LWxhYmVsLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9icm4tc2VsZWN0LW9wdGlvbi5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYnJuLXNlbGVjdC12YWx1ZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYnJuLXNlbGVjdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYnJuLXNlbGVjdC5zZXJ2aWNlJztcblxuZXhwb3J0IGNvbnN0IEJyblNlbGVjdEltcG9ydHMgPSBbXG5cdEJyblNlbGVjdENvbXBvbmVudCxcblx0QnJuU2VsZWN0Q29udGVudENvbXBvbmVudCxcblx0QnJuU2VsZWN0VHJpZ2dlckRpcmVjdGl2ZSxcblx0QnJuU2VsZWN0T3B0aW9uRGlyZWN0aXZlLFxuXHRCcm5TZWxlY3RWYWx1ZUNvbXBvbmVudCxcblx0QnJuU2VsZWN0U2Nyb2xsRG93bkRpcmVjdGl2ZSxcblx0QnJuU2VsZWN0U2Nyb2xsVXBEaXJlY3RpdmUsXG5cdEJyblNlbGVjdEdyb3VwRGlyZWN0aXZlLFxuXHRCcm5TZWxlY3RMYWJlbERpcmVjdGl2ZSxcbl0gYXMgY29uc3Q7XG5cbkBOZ01vZHVsZSh7XG5cdGltcG9ydHM6IFsuLi5Ccm5TZWxlY3RJbXBvcnRzXSxcblx0ZXhwb3J0czogWy4uLkJyblNlbGVjdEltcG9ydHNdLFxufSlcbmV4cG9ydCBjbGFzcyBCcm5TZWxlY3RNb2R1bGUge31cbiJdfQ==
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2JyYWluL3NlbGVjdC9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQ04seUJBQXlCLEVBQ3pCLDRCQUE0QixFQUM1QiwwQkFBMEIsR0FDMUIsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN2RixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFDaEUsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsNEJBQTRCLENBQUM7QUFFM0MsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUc7SUFDL0Isa0JBQWtCO0lBQ2xCLHlCQUF5QjtJQUN6Qix5QkFBeUI7SUFDekIsd0JBQXdCO0lBQ3hCLHVCQUF1QjtJQUN2Qiw0QkFBNEI7SUFDNUIsMEJBQTBCO0lBQzFCLHVCQUF1QjtJQUN2Qix1QkFBdUI7SUFDdkIsdUJBQXVCO0lBQ3ZCLDZCQUE2QjtDQUNwQixDQUFDO0FBTVgsTUFBTSxPQUFPLGVBQWU7MEhBQWYsZUFBZTsySEFBZixlQUFlLFlBakIzQixrQkFBa0I7WUFDbEIseUJBQXlCO1lBQ3pCLHlCQUF5QjtZQUN6Qix3QkFBd0I7WUFDeEIsdUJBQXVCO1lBQ3ZCLDRCQUE0QjtZQUM1QiwwQkFBMEI7WUFDMUIsdUJBQXVCO1lBQ3ZCLHVCQUF1QjtZQUN2Qix1QkFBdUI7WUFDdkIsNkJBQTZCLGFBVjdCLGtCQUFrQjtZQUNsQix5QkFBeUI7WUFDekIseUJBQXlCO1lBQ3pCLHdCQUF3QjtZQUN4Qix1QkFBdUI7WUFDdkIsNEJBQTRCO1lBQzVCLDBCQUEwQjtZQUMxQix1QkFBdUI7WUFDdkIsdUJBQXVCO1lBQ3ZCLHVCQUF1QjtZQUN2Qiw2QkFBNkI7MkhBT2pCLGVBQWUsWUFqQjNCLGtCQUFrQjs7MkZBaUJOLGVBQWU7a0JBSjNCLFFBQVE7bUJBQUM7b0JBQ1QsT0FBTyxFQUFFLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQztvQkFDOUIsT0FBTyxFQUFFLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQztpQkFDOUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcblx0QnJuU2VsZWN0Q29udGVudENvbXBvbmVudCxcblx0QnJuU2VsZWN0U2Nyb2xsRG93bkRpcmVjdGl2ZSxcblx0QnJuU2VsZWN0U2Nyb2xsVXBEaXJlY3RpdmUsXG59IGZyb20gJy4vbGliL2Jybi1zZWxlY3QtY29udGVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnJuU2VsZWN0R3JvdXBEaXJlY3RpdmUgfSBmcm9tICcuL2xpYi9icm4tc2VsZWN0LWdyb3VwLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBCcm5TZWxlY3RMYWJlbERpcmVjdGl2ZSB9IGZyb20gJy4vbGliL2Jybi1zZWxlY3QtbGFiZWwuZGlyZWN0aXZlJztcbmltcG9ydCB7IEJyblNlbGVjdE9wdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4vbGliL2Jybi1zZWxlY3Qtb3B0aW9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBCcm5TZWxlY3RQbGFjZWhvbGRlckRpcmVjdGl2ZSB9IGZyb20gJy4vbGliL2Jybi1zZWxlY3QtcGxhY2Vob2xkZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IEJyblNlbGVjdFRyaWdnZXJEaXJlY3RpdmUgfSBmcm9tICcuL2xpYi9icm4tc2VsZWN0LXRyaWdnZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IEJyblNlbGVjdFZhbHVlQ29tcG9uZW50IH0gZnJvbSAnLi9saWIvYnJuLXNlbGVjdC12YWx1ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnJuU2VsZWN0VmFsdWVEaXJlY3RpdmUgfSBmcm9tICcuL2xpYi9icm4tc2VsZWN0LXZhbHVlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBCcm5TZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL2xpYi9icm4tc2VsZWN0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9icm4tc2VsZWN0LWNvbnRlbnQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Jybi1zZWxlY3QtZ3JvdXAuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Jybi1zZWxlY3QtbGFiZWwuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Jybi1zZWxlY3Qtb3B0aW9uLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9icm4tc2VsZWN0LXBsYWNlaG9sZGVyLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9icm4tc2VsZWN0LXRyaWdnZXIuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Jybi1zZWxlY3QtdmFsdWUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Jybi1zZWxlY3QtdmFsdWUuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Jybi1zZWxlY3QuY29tcG9uZW50JztcblxuZXhwb3J0IGNvbnN0IEJyblNlbGVjdEltcG9ydHMgPSBbXG5cdEJyblNlbGVjdENvbXBvbmVudCxcblx0QnJuU2VsZWN0Q29udGVudENvbXBvbmVudCxcblx0QnJuU2VsZWN0VHJpZ2dlckRpcmVjdGl2ZSxcblx0QnJuU2VsZWN0T3B0aW9uRGlyZWN0aXZlLFxuXHRCcm5TZWxlY3RWYWx1ZUNvbXBvbmVudCxcblx0QnJuU2VsZWN0U2Nyb2xsRG93bkRpcmVjdGl2ZSxcblx0QnJuU2VsZWN0U2Nyb2xsVXBEaXJlY3RpdmUsXG5cdEJyblNlbGVjdEdyb3VwRGlyZWN0aXZlLFxuXHRCcm5TZWxlY3RMYWJlbERpcmVjdGl2ZSxcblx0QnJuU2VsZWN0VmFsdWVEaXJlY3RpdmUsXG5cdEJyblNlbGVjdFBsYWNlaG9sZGVyRGlyZWN0aXZlLFxuXSBhcyBjb25zdDtcblxuQE5nTW9kdWxlKHtcblx0aW1wb3J0czogWy4uLkJyblNlbGVjdEltcG9ydHNdLFxuXHRleHBvcnRzOiBbLi4uQnJuU2VsZWN0SW1wb3J0c10sXG59KVxuZXhwb3J0IGNsYXNzIEJyblNlbGVjdE1vZHVsZSB7fVxuIl19
@@ -1,14 +1,14 @@
1
- import { CdkListbox } from '@angular/cdk/listbox';
2
1
  import { NgTemplateOutlet } from '@angular/common';
3
- import { ChangeDetectionStrategy, Component, DestroyRef, ElementRef, contentChild, contentChildren, effect, inject, signal, viewChild, } from '@angular/core';
4
- import { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';
2
+ import { ChangeDetectionStrategy, Component, DestroyRef, ElementRef, Injector, afterNextRender, contentChild, contentChildren, effect, inject, signal, untracked, viewChild, } from '@angular/core';
3
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
5
4
  import { BrnSelectOptionDirective } from './brn-select-option.directive';
6
- import { BrnSelectService } from './brn-select.service';
5
+ import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';
7
6
  import { Directive } from '@angular/core';
8
7
  import { Subject, fromEvent, interval } from 'rxjs';
9
8
  import { takeUntil } from 'rxjs/operators';
9
+ import { provideBrnSelectContent } from './brn-select-content.token';
10
+ import { injectBrnSelect } from './brn-select.token';
10
11
  import * as i0 from "@angular/core";
11
- import * as i1 from "@angular/cdk/listbox";
12
12
  const SCROLLBY_PIXELS = 100;
13
13
  export class BrnSelectScrollUpDirective {
14
14
  _el = inject(ElementRef);
@@ -67,51 +67,47 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
67
67
  }]
68
68
  }] });
69
69
  export class BrnSelectContentComponent {
70
- _el = inject(ElementRef);
71
- _cdkListbox = inject(CdkListbox, { host: true });
72
- _destroyRef = inject(DestroyRef);
73
- _selectService = inject(BrnSelectService);
74
- labelledBy = this._selectService.labelId;
75
- id = this._selectService.id;
70
+ _elementRef = inject(ElementRef);
71
+ _injector = inject(Injector);
72
+ _select = injectBrnSelect();
76
73
  canScrollUp = signal(false);
77
74
  canScrollDown = signal(false);
78
- initialSelectedOptions$ = toObservable(this._selectService.selectedOptions);
79
75
  viewport = viewChild.required('viewport');
80
76
  scrollUpBtn = contentChild(BrnSelectScrollUpDirective);
81
77
  scrollDownBtn = contentChild(BrnSelectScrollDownDirective);
82
78
  _options = contentChildren(BrnSelectOptionDirective, { descendants: true });
79
+ /** @internal */
80
+ keyManager = null;
83
81
  constructor() {
84
- this._cdkListbox.valueChange
85
- .asObservable()
86
- .pipe(takeUntilDestroyed())
87
- .subscribe((val) => this._selectService.listBoxValueChangeEvent$.next(val));
88
82
  effect(() => {
89
- this._cdkListbox.multiple = this._selectService.multiple();
90
- this._selectService.isExpanded() && setTimeout(() => this.updateArrowDisplay());
83
+ this._select.open() && afterNextRender(() => this.updateArrowDisplay(), { injector: this._injector });
91
84
  });
92
85
  }
93
- ngAfterViewInit() {
94
- this.setInitiallySelectedOptions();
95
- }
96
- setInitiallySelectedOptions() {
97
- this.initialSelectedOptions$.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((selectedOptions) => {
98
- // Reapplying cdkLibstbox multiple because seems this is running before effect that
99
- // updates cdklistbox, reapplying multiple true so we can set the multiple initial options
100
- if (this._selectService.multiple()) {
101
- this._cdkListbox.multiple = true;
86
+ ngAfterContentInit() {
87
+ this.keyManager = new ActiveDescendantKeyManager(this._options, this._injector)
88
+ .withHomeAndEnd()
89
+ .withVerticalOrientation()
90
+ .withTypeAhead()
91
+ .withAllowedModifierKeys(['shiftKey'])
92
+ .withWrap()
93
+ .skipPredicate((option) => option._disabled());
94
+ effect(() => {
95
+ // any time the select is opened, we need to focus the first selected option or the first option
96
+ const open = this._select.open();
97
+ const options = this._options();
98
+ if (!open || !options.length) {
99
+ return;
102
100
  }
103
- for (const cdkOption of this._selectService.possibleOptions()) {
104
- if (selectedOptions.includes(cdkOption)) {
105
- cdkOption?.select();
101
+ untracked(() => {
102
+ const selectedOption = options.find((option) => option.selected());
103
+ if (selectedOption) {
104
+ this.keyManager?.setActiveItem(selectedOption);
106
105
  }
107
106
  else {
108
- cdkOption?.deselect();
107
+ this.keyManager?.setFirstItemActive();
109
108
  }
110
- }
111
- for (const cdkOption of selectedOptions) {
112
- cdkOption?.select();
113
- }
114
- });
109
+ });
110
+ }, { injector: this._injector });
115
111
  }
116
112
  updateArrowDisplay() {
117
113
  const { scrollTop, scrollHeight, clientHeight } = this.viewport().nativeElement;
@@ -123,7 +119,7 @@ export class BrnSelectContentComponent {
123
119
  this.updateArrowDisplay();
124
120
  }
125
121
  focusList() {
126
- this._cdkListbox.focus();
122
+ this._elementRef.nativeElement.focus();
127
123
  }
128
124
  moveFocusUp() {
129
125
  this.viewport().nativeElement.scrollBy({ top: -SCROLLBY_PIXELS, behavior: 'smooth' });
@@ -133,15 +129,29 @@ export class BrnSelectContentComponent {
133
129
  }
134
130
  moveFocusDown() {
135
131
  this.viewport().nativeElement.scrollBy({ top: SCROLLBY_PIXELS, behavior: 'smooth' });
136
- const viewportSize = this._el.nativeElement.scrollHeight;
132
+ const viewportSize = this._elementRef.nativeElement.scrollHeight;
137
133
  const viewportScrollPosition = this.viewport().nativeElement.scrollTop;
138
134
  if (viewportSize + viewportScrollPosition + SCROLLBY_PIXELS >
139
135
  this.viewport().nativeElement.scrollHeight + SCROLLBY_PIXELS / 2) {
140
136
  this.scrollDownBtn()?.stopEmittingEvents();
141
137
  }
142
138
  }
139
+ setActiveOption(option) {
140
+ const index = this._options().findIndex((o) => o === option);
141
+ if (index === -1) {
142
+ return;
143
+ }
144
+ this.keyManager?.setActiveItem(index);
145
+ }
146
+ selectActiveItem(event) {
147
+ event.preventDefault();
148
+ const activeOption = this.keyManager?.activeItem;
149
+ if (activeOption) {
150
+ this._select.selectOption(activeOption.value());
151
+ }
152
+ }
143
153
  /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnSelectContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
144
- /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.5", type: BrnSelectContentComponent, isStandalone: true, selector: "brn-select-content, hlm-select-content:not(noHlm)", host: { properties: { "attr.aria-labelledBy": "labelledBy()", "attr.aria-controlledBy": "id() +'--trigger'", "id": "id() + '--content'", "attr.dir": "_selectService.dir()" } }, queries: [{ propertyName: "scrollUpBtn", first: true, predicate: BrnSelectScrollUpDirective, descendants: true, isSignal: true }, { propertyName: "scrollDownBtn", first: true, predicate: BrnSelectScrollDownDirective, descendants: true, isSignal: true }, { propertyName: "_options", predicate: BrnSelectOptionDirective, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "viewport", first: true, predicate: ["viewport"], descendants: true, isSignal: true }], hostDirectives: [{ directive: i1.CdkListbox }], ngImport: i0, template: `
154
+ /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.5", type: BrnSelectContentComponent, isStandalone: true, selector: "brn-select-content, hlm-select-content:not(noHlm)", host: { attributes: { "role": "listbox", "tabindex": "0", "aria-orientation": "vertical" }, listeners: { "keydown": "keyManager?.onKeydown($event)", "keydown.enter": "selectActiveItem($event)", "keydown.space": "selectActiveItem($event)" }, properties: { "attr.aria-multiselectable": "_select.multiple()", "attr.aria-disabled": "_select.disabled() || _select._formDisabled()", "attr.aria-activedescendant": "keyManager?.activeItem?.id()", "attr.aria-labelledBy": "_select.labelId()", "attr.aria-controlledBy": "_select.id() +'--trigger'", "id": "_select.id() + '--content'", "attr.dir": "_select.dir()" } }, providers: [provideBrnSelectContent(BrnSelectContentComponent)], queries: [{ propertyName: "scrollUpBtn", first: true, predicate: BrnSelectScrollUpDirective, descendants: true, isSignal: true }, { propertyName: "scrollDownBtn", first: true, predicate: BrnSelectScrollDownDirective, descendants: true, isSignal: true }, { propertyName: "_options", predicate: BrnSelectOptionDirective, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "viewport", first: true, predicate: ["viewport"], descendants: true, isSignal: true }], ngImport: i0, template: `
145
155
  <ng-template #scrollUp>
146
156
  <ng-content select="hlm-select-scroll-up" />
147
157
  <ng-content select="brnSelectScrollUp" />
@@ -170,11 +180,20 @@ export class BrnSelectContentComponent {
170
180
  }
171
181
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnSelectContentComponent, decorators: [{
172
182
  type: Component,
173
- args: [{ selector: 'brn-select-content, hlm-select-content:not(noHlm)', standalone: true, imports: [BrnSelectScrollUpDirective, BrnSelectScrollDownDirective, NgTemplateOutlet], hostDirectives: [CdkListbox], changeDetection: ChangeDetectionStrategy.OnPush, host: {
174
- '[attr.aria-labelledBy]': 'labelledBy()',
175
- '[attr.aria-controlledBy]': "id() +'--trigger'",
176
- '[id]': "id() + '--content'",
177
- '[attr.dir]': '_selectService.dir()',
183
+ args: [{ standalone: true, selector: 'brn-select-content, hlm-select-content:not(noHlm)', imports: [NgTemplateOutlet], providers: [provideBrnSelectContent(BrnSelectContentComponent)], changeDetection: ChangeDetectionStrategy.OnPush, host: {
184
+ role: 'listbox',
185
+ tabindex: '0',
186
+ '[attr.aria-multiselectable]': '_select.multiple()',
187
+ '[attr.aria-disabled]': '_select.disabled() || _select._formDisabled()',
188
+ 'aria-orientation': 'vertical',
189
+ '[attr.aria-activedescendant]': 'keyManager?.activeItem?.id()',
190
+ '[attr.aria-labelledBy]': '_select.labelId()',
191
+ '[attr.aria-controlledBy]': "_select.id() +'--trigger'",
192
+ '[id]': "_select.id() + '--content'",
193
+ '[attr.dir]': '_select.dir()',
194
+ '(keydown)': 'keyManager?.onKeydown($event)',
195
+ '(keydown.enter)': 'selectActiveItem($event)',
196
+ '(keydown.space)': 'selectActiveItem($event)',
178
197
  }, template: `
179
198
  <ng-template #scrollUp>
180
199
  <ng-content select="hlm-select-scroll-up" />
@@ -202,4 +221,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
202
221
  <ng-container *ngTemplateOutlet="canScrollDown() && scrollDownBtn() ? scrollDown : null" />
203
222
  `, styles: [":host{display:flex;box-sizing:border-box;flex-direction:column;outline:none;pointer-events:auto}[data-brn-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch}[data-brn-select-viewport]::-webkit-scrollbar{display:none}\n"] }]
204
223
  }], ctorParameters: () => [] });
205
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLXNlbGVjdC1jb250ZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYnJhaW4vc2VsZWN0L3NyYy9saWIvYnJuLXNlbGVjdC1jb250ZW50LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFnQyxNQUFNLHNCQUFzQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFFTix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixVQUFVLEVBQ1YsWUFBWSxFQUNaLGVBQWUsRUFDZixNQUFNLEVBQ04sTUFBTSxFQUNOLE1BQU0sRUFDTixTQUFTLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzlFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXhELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBRTNDLE1BQU0sZUFBZSxHQUFHLEdBQUcsQ0FBQztBQVU1QixNQUFNLE9BQU8sMEJBQTBCO0lBQ3JCLEdBQUcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDekIsY0FBYyxHQUFHLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBRW5ELFdBQVcsR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO0lBQ3JDLFdBQVcsR0FBRyxNQUFNLENBQUMsVUFB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O3dCQUM1QixZQUFZLEVBQUUsc0JBQXNCO3FCQUNwQyxZQXNCUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQXlCVCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka0xpc3Rib3gsIHR5cGUgTGlzdGJveFZhbHVlQ2hhbmdlRXZlbnQgfSBmcm9tICdAYW5ndWxhci9jZGsvbGlzdGJveCc7XG5pbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG5cdHR5cGUgQWZ0ZXJWaWV3SW5pdCxcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENvbXBvbmVudCxcblx0RGVzdHJveVJlZixcblx0RWxlbWVudFJlZixcblx0Y29udGVudENoaWxkLFxuXHRjb250ZW50Q2hpbGRyZW4sXG5cdGVmZmVjdCxcblx0aW5qZWN0LFxuXHRzaWduYWwsXG5cdHZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQsIHRvT2JzZXJ2YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IEJyblNlbGVjdE9wdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4vYnJuLXNlbGVjdC1vcHRpb24uZGlyZWN0aXZlJztcbmltcG9ydCB7IEJyblNlbGVjdFNlcnZpY2UgfSBmcm9tICcuL2Jybi1zZWxlY3Quc2VydmljZSc7XG5cbmltcG9ydCB7IERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCwgZnJvbUV2ZW50LCBpbnRlcnZhbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5jb25zdCBTQ1JPTExCWV9QSVhFTFMgPSAxMDA7XG5cbkBEaXJlY3RpdmUoe1xuXHRzZWxlY3RvcjogJ1ticm5TZWxlY3RTY3JvbGxVcF0sIGJybi1zZWxlY3Qtc2Nyb2xsLXVwLCBobG0tc2VsZWN0LXNjcm9sbC11cDpub3Qobm9IbG0pJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0aG9zdDoge1xuXHRcdCdhcmlhLWhpZGRlbic6ICd0cnVlJyxcblx0XHQnKG1vdXNlZW50ZXIpJzogJ3N0YXJ0RW1pdHRpbmdFdmVudHMoKScsXG5cdH0sXG59KVxuZXhwb3J0IGNsYXNzIEJyblNlbGVjdFNjcm9sbFVwRGlyZWN0aXZlIHtcblx0cHJpdmF0ZSByZWFkb25seSBfZWwgPSBpbmplY3QoRWxlbWVudFJlZik7XG5cdHByaXZhdGUgcmVhZG9ubHkgX3NlbGVjdENvbnRlbnQgPSBpbmplY3QoQnJuU2VsZWN0Q29udGVudENvbXBvbmVudCk7XG5cblx0cHJpdmF0ZSByZWFkb25seSBfZW5kUmVhY2hlZCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cdHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cblx0cHVibGljIHN0YXJ0RW1pdHRpbmdFdmVudHMoKTogdm9pZCB7XG5cdFx0Y29uc3QgbW91c2VMZWF2ZSQgPSBmcm9tRXZlbnQodGhpcy5fZWwubmF0aXZlRWxlbWVudCwgJ21vdXNlbGVhdmUnKTtcblxuXHRcdGludGVydmFsKDEwMClcblx0XHRcdC5waXBlKHRha2VVbnRpbChtb3VzZUxlYXZlJCksIHRha2VVbnRpbCh0aGlzLl9lbmRSZWFjaGVkKSwgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpKVxuXHRcdFx0LnN1YnNjcmliZSgoKSA9PiB0aGlzLl9zZWxlY3RDb250ZW50Lm1vdmVGb2N1c1VwKCkpO1xuXHR9XG5cblx0cHVibGljIHN0b3BFbWl0dGluZ0V2ZW50cygpOiB2b2lkIHtcblx0XHR0aGlzLl9lbmRSZWFjaGVkLm5leHQodHJ1ZSk7XG5cdH1cbn1cblxuQERpcmVjdGl2ZSh7XG5cdHNlbGVjdG9yOiAnW2JyblNlbGVjdFNjcm9sbERvd25dLCBicm4tc2VsZWN0LXNjcm9sbC1kb3duLCBobG0tc2VsZWN0LXNjcm9sbC1kb3duOm5vdChub0hsbSknLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRob3N0OiB7XG5cdFx0J2FyaWEtaGlkZGVuJzogJ3RydWUnLFxuXHRcdCcobW91c2VlbnRlciknOiAnc3RhcnRFbWl0dGluZ0V2ZW50cygpJyxcblx0fSxcbn0pXG5leHBvcnQgY2xhc3MgQnJuU2VsZWN0U2Nyb2xsRG93bkRpcmVjdGl2ZSB7XG5cdHByaXZhdGUgcmVhZG9ubHkgX2VsID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuXHRwcml2YXRlIHJlYWRvbmx5IF9zZWxlY3RDb250ZW50ID0gaW5qZWN0KEJyblNlbGVjdENvbnRlbnRDb21wb25lbnQpO1xuXG5cdHByaXZhdGUgcmVhZG9ubHkgX2VuZFJlYWNoZWQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXHRwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG5cdHB1YmxpYyBzdGFydEVtaXR0aW5nRXZlbnRzKCk6IHZvaWQge1xuXHRcdGNvbnN0IG1vdXNlTGVhdmUkID0gZnJvbUV2ZW50KHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQsICdtb3VzZWxlYXZlJyk7XG5cblx0XHRpbnRlcnZhbCgxMDApXG5cdFx0XHQucGlwZSh0YWtlVW50aWwobW91c2VMZWF2ZSQpLCB0YWtlVW50aWwodGhpcy5fZW5kUmVhY2hlZCksIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSlcblx0XHRcdC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5fc2VsZWN0Q29udGVudC5tb3ZlRm9jdXNEb3duKCkpO1xuXHR9XG5cblx0cHVibGljIHN0b3BFbWl0dGluZ0V2ZW50cygpOiB2b2lkIHtcblx0XHR0aGlzLl9lbmRSZWFjaGVkLm5leHQodHJ1ZSk7XG5cdH1cbn1cblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnYnJuLXNlbGVjdC1jb250ZW50LCBobG0tc2VsZWN0LWNvbnRlbnQ6bm90KG5vSGxtKScsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdGltcG9ydHM6IFtCcm5TZWxlY3RTY3JvbGxVcERpcmVjdGl2ZSwgQnJuU2VsZWN0U2Nyb2xsRG93bkRpcmVjdGl2ZSwgTmdUZW1wbGF0ZU91dGxldF0sXG5cdGhvc3REaXJlY3RpdmVzOiBbQ2RrTGlzdGJveF0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRob3N0OiB7XG5cdFx0J1thdHRyLmFyaWEtbGFiZWxsZWRCeV0nOiAnbGFiZWxsZWRCeSgpJyxcblx0XHQnW2F0dHIuYXJpYS1jb250cm9sbGVkQnldJzogXCJpZCgpICsnLS10cmlnZ2VyJ1wiLFxuXHRcdCdbaWRdJzogXCJpZCgpICsgJy0tY29udGVudCdcIixcblx0XHQnW2F0dHIuZGlyXSc6ICdfc2VsZWN0U2VydmljZS5kaXIoKScsXG5cdH0sXG5cdHN0eWxlczogW1xuXHRcdGBcblx0XHRcdDpob3N0IHtcblx0XHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHRcdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0XHRcdFx0b3V0bGluZTogbm9uZTtcblx0XHRcdFx0cG9pbnRlci1ldmVudHM6IGF1dG87XG5cdFx0XHR9XG5cblx0XHRcdFtkYXRhLWJybi1zZWxlY3Qtdmlld3BvcnRdIHtcblx0XHRcdFx0c2Nyb2xsYmFyLXdpZHRoOiBub25lO1xuXHRcdFx0XHQtbXMtb3ZlcmZsb3ctc3R5bGU6IG5vbmU7XG5cdFx0XHRcdC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcblx0XHRcdH1cblxuXHRcdFx0W2RhdGEtYnJuLXNlbGVjdC12aWV3cG9ydF06Oi13ZWJraXQtc2Nyb2xsYmFyIHtcblx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdH1cblx0XHRgLFxuXHRdLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZy10ZW1wbGF0ZSAjc2Nyb2xsVXA+XG5cdFx0XHQ8bmctY29udGVudCBzZWxlY3Q9XCJobG0tc2VsZWN0LXNjcm9sbC11cFwiIC8+XG5cdFx0XHQ8bmctY29udGVudCBzZWxlY3Q9XCJicm5TZWxlY3RTY3JvbGxVcFwiIC8+XG5cdFx0PC9uZy10ZW1wbGF0ZT5cblx0XHQ8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2FuU2Nyb2xsVXAoKSAmJiBzY3JvbGxVcEJ0bigpID8gc2Nyb2xsVXAgOiBudWxsXCIgLz5cblx0XHQ8ZGl2XG5cdFx0XHRkYXRhLWJybi1zZWxlY3Qtdmlld3BvcnRcblx0XHRcdCN2aWV3cG9ydFxuXHRcdFx0KHNjcm9sbCk9XCJoYW5kbGVTY3JvbGwoKVwiXG5cdFx0XHRzdHlsZT1cImZsZXg6IDEgMSAwJTtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdHdpZHRoOjEwMCU7XG5cdFx0XHRvdmVyZmxvdzphdXRvO1xuXHRcdFx0bWluLWhlaWdodDogMzZweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAycHg7XG4gICAgICBtYXJnaW4tYm90dG9tOiAtMnB4O1wiXG5cdFx0PlxuXHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHQ8L2Rpdj5cblx0XHQ8bmctdGVtcGxhdGUgI3Njcm9sbERvd24+XG5cdFx0XHQ8bmctY29udGVudCBzZWxlY3Q9XCJicm5TZWxlY3RTY3JvbGxEb3duXCIgLz5cblx0XHRcdDxuZy1jb250ZW50IHNlbGVjdD1cImhsbS1zZWxlY3Qtc2Nyb2xsLWRvd25cIiAvPlxuXHRcdDwvbmctdGVtcGxhdGU+XG5cdFx0PG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNhblNjcm9sbERvd24oKSAmJiBzY3JvbGxEb3duQnRuKCkgPyBzY3JvbGxEb3duIDogbnVsbFwiIC8+XG5cdGAsXG59KVxuZXhwb3J0IGNsYXNzIEJyblNlbGVjdENvbnRlbnRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcblx0cHJpdmF0ZSByZWFkb25seSBfZWw6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+ID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuXHRwcml2YXRlIHJlYWRvbmx5IF9jZGtMaXN0Ym94ID0gaW5qZWN0KENka0xpc3Rib3gsIHsgaG9zdDogdHJ1ZSB9KTtcblx0cHJpdmF0ZSByZWFkb25seSBfZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblx0cHJvdGVjdGVkIHJlYWRvbmx5IF9zZWxlY3RTZXJ2aWNlID0gaW5qZWN0KEJyblNlbGVjdFNlcnZpY2UpO1xuXG5cdHByb3RlY3RlZCByZWFkb25seSBsYWJlbGxlZEJ5ID0gdGhpcy5fc2VsZWN0U2VydmljZS5sYWJlbElkO1xuXHRwcm90ZWN0ZWQgcmVhZG9ubHkgaWQgPSB0aGlzLl9zZWxlY3RTZXJ2aWNlLmlkO1xuXHRwcm90ZWN0ZWQgcmVhZG9ubHkgY2FuU2Nyb2xsVXAgPSBzaWduYWwoZmFsc2UpO1xuXHRwcm90ZWN0ZWQgcmVhZG9ubHkgY2FuU2Nyb2xsRG93biA9IHNpZ25hbChmYWxzZSk7XG5cblx0cHJvdGVjdGVkIGluaXRpYWxTZWxlY3RlZE9wdGlvbnMkID0gdG9PYnNlcnZhYmxlKHRoaXMuX3NlbGVjdFNlcnZpY2Uuc2VsZWN0ZWRPcHRpb25zKTtcblxuXHRwcm90ZWN0ZWQgdmlld3BvcnQgPSB2aWV3Q2hpbGQucmVxdWlyZWQ8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KCd2aWV3cG9ydCcpO1xuXG5cdHByb3RlY3RlZCBzY3JvbGxVcEJ0biA9IGNvbnRlbnRDaGlsZChCcm5TZWxlY3RTY3JvbGxVcERpcmVjdGl2ZSk7XG5cblx0cHJvdGVjdGVkIHNjcm9sbERvd25CdG4gPSBjb250ZW50Q2hpbGQoQnJuU2VsZWN0U2Nyb2xsRG93bkRpcmVjdGl2ZSk7XG5cblx0cHJvdGVjdGVkIF9vcHRpb25zID0gY29udGVudENoaWxkcmVuKEJyblNlbGVjdE9wdGlvbkRpcmVjdGl2ZSwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHR0aGlzLl9jZGtMaXN0Ym94LnZhbHVlQ2hhbmdlXG5cdFx0XHQuYXNPYnNlcnZhYmxlKClcblx0XHRcdC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKVxuXHRcdFx0LnN1YnNjcmliZSgodmFsOiBMaXN0Ym94VmFsdWVDaGFuZ2VFdmVudDx1bmtub3duPikgPT4gdGhpcy5fc2VsZWN0U2VydmljZS5saXN0Qm94VmFsdWVDaGFuZ2VFdmVudCQubmV4dCh2YWwpKTtcblxuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHR0aGlzLl9jZGtMaXN0Ym94Lm11bHRpcGxlID0gdGhpcy5fc2VsZWN0U2VydmljZS5tdWx0aXBsZSgpO1xuXHRcdFx0dGhpcy5fc2VsZWN0U2VydmljZS5pc0V4cGFuZGVkKCkgJiYgc2V0VGltZW91dCgoKSA9PiB0aGlzLnVwZGF0ZUFycm93RGlzcGxheSgpKTtcblx0XHR9KTtcblx0fVxuXG5cdG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcblx0XHR0aGlzLnNldEluaXRpYWxseVNlbGVjdGVkT3B0aW9ucygpO1xuXHR9XG5cblx0cHJpdmF0ZSBzZXRJbml0aWFsbHlTZWxlY3RlZE9wdGlvbnMoKSB7XG5cdFx0dGhpcy5pbml0aWFsU2VsZWN0ZWRPcHRpb25zJC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSkuc3Vic2NyaWJlKChzZWxlY3RlZE9wdGlvbnMpID0+IHtcblx0XHRcdC8vIFJlYXBwbHlpbmcgY2RrTGlic3Rib3ggbXVsdGlwbGUgYmVjYXVzZSBzZWVtcyB0aGlzIGlzIHJ1bm5pbmcgYmVmb3JlIGVmZmVjdCB0aGF0XG5cdFx0XHQvLyB1cGRhdGVzIGNka2xpc3Rib3gsIHJlYXBwbHlpbmcgbXVsdGlwbGUgdHJ1ZSBzbyB3ZSBjYW4gc2V0IHRoZSBtdWx0aXBsZSBpbml0aWFsIG9wdGlvbnNcblx0XHRcdGlmICh0aGlzLl9zZWxlY3RTZXJ2aWNlLm11bHRpcGxlKCkpIHtcblx0XHRcdFx0dGhpcy5fY2RrTGlzdGJveC5tdWx0aXBsZSA9IHRydWU7XG5cdFx0XHR9XG5cblx0XHRcdGZvciAoY29uc3QgY2RrT3B0aW9uIG9mIHRoaXMuX3NlbGVjdFNlcnZpY2UucG9zc2libGVPcHRpb25zKCkpIHtcblx0XHRcdFx0aWYgKHNlbGVjdGVkT3B0aW9ucy5pbmNsdWRlcyhjZGtPcHRpb24pKSB7XG5cdFx0XHRcdFx0Y2RrT3B0aW9uPy5zZWxlY3QoKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRjZGtPcHRpb24/LmRlc2VsZWN0KCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Zm9yIChjb25zdCBjZGtPcHRpb24gb2Ygc2VsZWN0ZWRPcHRpb25zKSB7XG5cdFx0XHRcdGNka09wdGlvbj8uc2VsZWN0KCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRwdWJsaWMgdXBkYXRlQXJyb3dEaXNwbGF5KCk6IHZvaWQge1xuXHRcdGNvbnN0IHsgc2Nyb2xsVG9wLCBzY3JvbGxIZWlnaHQsIGNsaWVudEhlaWdodCB9ID0gdGhpcy52aWV3cG9ydCgpLm5hdGl2ZUVsZW1lbnQ7XG5cdFx0dGhpcy5jYW5TY3JvbGxVcC5zZXQoc2Nyb2xsVG9wID4gMCk7XG5cdFx0Y29uc3QgbWF4U2Nyb2xsID0gc2Nyb2xsSGVpZ2h0IC0gY2xpZW50SGVpZ2h0O1xuXHRcdHRoaXMuY2FuU2Nyb2xsRG93bi5zZXQoTWF0aC5jZWlsKHNjcm9sbFRvcCkgPCBtYXhTY3JvbGwpO1xuXHR9XG5cblx0cHVibGljIGhhbmRsZVNjcm9sbCgpIHtcblx0XHR0aGlzLnVwZGF0ZUFycm93RGlzcGxheSgpO1xuXHR9XG5cblx0cHVibGljIGZvY3VzTGlzdCgpOiB2b2lkIHtcblx0XHR0aGlzLl9jZGtMaXN0Ym94LmZvY3VzKCk7XG5cdH1cblxuXHRwdWJsaWMgbW92ZUZvY3VzVXAoKSB7XG5cdFx0dGhpcy52aWV3cG9ydCgpLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsQnkoeyB0b3A6IC1TQ1JPTExCWV9QSVhFTFMsIGJlaGF2aW9yOiAnc21vb3RoJyB9KTtcblx0XHRpZiAodGhpcy52aWV3cG9ydCgpLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wID09PSAwKSB7XG5cdFx0XHR0aGlzLnNjcm9sbFVwQnRuKCk/LnN0b3BFbWl0dGluZ0V2ZW50cygpO1xuXHRcdH1cblx0fVxuXG5cdHB1YmxpYyBtb3ZlRm9jdXNEb3duKCkge1xuXHRcdHRoaXMudmlld3BvcnQoKS5uYXRpdmVFbGVtZW50LnNjcm9sbEJ5KHsgdG9wOiBTQ1JPTExCWV9QSVhFTFMsIGJlaGF2aW9yOiAnc21vb3RoJyB9KTtcblx0XHRjb25zdCB2aWV3cG9ydFNpemUgPSB0aGlzLl9lbC5uYXRpdmVFbGVtZW50LnNjcm9sbEhlaWdodDtcblx0XHRjb25zdCB2aWV3cG9ydFNjcm9sbFBvc2l0aW9uID0gdGhpcy52aWV3cG9ydCgpLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wO1xuXHRcdGlmIChcblx0XHRcdHZpZXdwb3J0U2l6ZSArIHZpZXdwb3J0U2Nyb2xsUG9zaXRpb24gKyBTQ1JPTExCWV9QSVhFTFMgPlxuXHRcdFx0dGhpcy52aWV3cG9ydCgpLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSGVpZ2h0ICsgU0NST0xMQllfUElYRUxTIC8gMlxuXHRcdCkge1xuXHRcdFx0dGhpcy5zY3JvbGxEb3duQnRuKCk/LnN0b3BFbWl0dGluZ0V2ZW50cygpO1xuXHRcdH1cblx0fVxufVxuIl19
224
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLXNlbGVjdC1jb250ZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYnJhaW4vc2VsZWN0L3NyYy9saWIvYnJuLXNlbGVjdC1jb250ZW50LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBRU4sdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsVUFBVSxFQUNWLFFBQVEsRUFDUixlQUFlLEVBQ2YsWUFBWSxFQUNaLGVBQWUsRUFDZixNQUFNLEVBQ04sTUFBTSxFQUNOLE1BQU0sRUFDTixTQUFTLEVBQ1QsU0FBUyxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRXpFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBRXJELE1BQU0sZUFBZSxHQUFHLEdBQUcsQ0FBQztBQVU1QixNQUFNLE9BQU8sMEJBQTBCO0lBQ3JCLEdBQUcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDekIsY0FBYyxHQUFHLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBRW5ELFdBQVcsR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO0lBQ3JDLFdBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFM0MsbUJBQW1CO1FBQ3pCLE1BQU0sV0FBVyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUVwRSxRQUFRLENBQUMsR0FBRyxDQUFDO2FBQ1gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLGtCQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUMvRixTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFTSxrQkFBa0I7UUFDeEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQzswSEFqQlcsMEJBQTBCOzhHQUExQiwwQkFBMEI7OzJGQUExQiwwQkFBMEI7a0JBUnRDLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLDRFQUE0RTtvQkFDdEYsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLElBQUksRUFBRTt3QkFDTCxhQUFhLEVBQUUsTUFBTTt3QkFDckIsY0FBYyxFQUFFLHVCQUF1QjtxQkFDdkM7aUJBQ0Q7O0FBNkJELE1BQU0sT0FBTyw0QkFBNEI7SUFDdkIsR0FBRyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN6QixjQUFjLEdBQUcsTUFBTSxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFFbkQsV0FBVyxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7SUFDckMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUUzQyxtQkFBbUI7UUFDekIsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBRXBFLFFBQVEsQ0FBQyxHQUFHLENBQUM7YUFDWCxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2FBQy9GLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVNLGtCQUFrQjtRQUN4QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QixDQUFDOzBIQWpCVyw0QkFBNEI7OEdBQTVCLDRCQUE0Qjs7MkZBQTVCLDRCQUE0QjtrQkFSeEMsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsa0ZBQWtGO29CQUM1RixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsSUFBSSxFQUFFO3dCQUNMLGFBQWEsRUFBRSxNQUFNO3dCQUNyQixjQUFjLEVBQUUsdUJBQXVCO3FCQUN2QztpQkFDRDs7QUEwRkQsTUFBTSxPQUFPLHlCQUF5QjtJQUNwQixXQUFXLEdBQTRCLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMxRCxTQUFTLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzNCLE9BQU8sR0FBRyxlQUFlLEVBQUssQ0FBQztJQUMvQixXQUFXLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLGFBQWEsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsUUFBUSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQTBCLFVBQVUsQ0FBQyxDQUFDO0lBQ25FLFdBQVcsR0FBRyxZQUFZLENBQUMsMEJBQTBCLENBQUMsQ0FBQztJQUN2RCxhQUFhLEdBQUcsWUFBWSxDQUFDLDRCQUE0QixDQUFDLENBQUM7SUFDN0QsUUFBUSxHQUFHLGVBQWUsQ0FBQyx3QkFBd0IsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBRTdGLGdCQUFnQjtJQUNULFVBQVUsR0FBbUUsSUFBSSxDQUFDO0lBRXpGO1FBQ0MsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksZUFBZSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZHLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELGtCQUFrQjtRQUNqQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksMEJBQTBCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDO2FBQzdFLGNBQWMsRUFBRTthQUNoQix1QkFBdUIsRUFBRTthQUN6QixhQUFhLEVBQUU7YUFDZix1QkFBdUIsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ3JDLFFBQVEsRUFBRTthQUNWLGFBQWEsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFFaEQsTUFBTSxDQUNMLEdBQUcsRUFBRTtZQUNKLGdHQUFnRztZQUNoRyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2pDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUVoQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUM5QixPQUFPO1lBQ1IsQ0FBQztZQUVELFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7Z0JBRW5FLElBQUksY0FBYyxFQUFFLENBQUM7b0JBQ3BCLElBQUksQ0FBQyxVQUFVLEVBQUUsYUFBYSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUNoRCxDQUFDO3FCQUFNLENBQUM7b0JBQ1AsSUFBSSxDQUFDLFVBQVUsRUFBRSxrQkFBa0IsRUFBRSxDQUFDO2dCQUN2QyxDQUFDO1lBQ0YsQ0FBQyxDQUFDLENBQUM7UUFDSixDQUFDLEVBQ0QsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUM1QixDQUFDO0lBQ0gsQ0FBQztJQUVNLGtCQUFrQjtRQUN4QixNQUFNLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsYUFBYSxDQUFDO1FBQ2hGLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNwQyxNQUFNLFNBQVMsR0FBRyxZQUFZLEdBQUcsWUFBWSxDQUFDO1FBQzlDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVNLFlBQVk7UUFDbEIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVNLFNBQVM7UUFDZixJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRU0sV0FBVztRQUNqQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLGVBQWUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUN0RixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxhQUFhLENBQUMsU0FBUyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ25ELElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxrQkFBa0IsRUFBRSxDQUFDO1FBQzFDLENBQUM7SUFDRixDQUFDO0lBRU0sYUFBYTtRQUNuQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEdBQUcsRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDckYsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDO1FBQ2pFLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUM7UUFDdkUsSUFDQyxZQUFZLEdBQUcsc0JBQXNCLEdBQUcsZUFBZTtZQUN2RCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsYUFBYSxDQUFDLFlBQVksR0FBRyxlQUFlLEdBQUcsQ0FBQyxFQUMvRCxDQUFDO1lBQ0YsSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLGtCQUFrQixFQUFFLENBQUM7UUFDNUMsQ0FBQztJQUNGLENBQUM7SUFFRCxlQUFlLENBQUMsTUFBbUM7UUFDbEQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxDQUFDO1FBRTdELElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDbEIsT0FBTztRQUNSLENBQUM7UUFFRCxJQUFJLENBQUMsVUFBVSxFQUFFLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRVMsZ0JBQWdCLENBQUMsS0FBb0I7UUFDOUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBRXZCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDO1FBRWpELElBQUksWUFBWSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRyxDQUFDLENBQUM7UUFDbEQsQ0FBQztJQUNGLENBQUM7MEhBekdXLHlCQUF5Qjs4R0FBekIseUJBQXlCLGdzQkFqRTFCLENBQUMsdUJBQXVCLENBQUMseUJBQXlCLENBQUMsQ0FBQyxtRUF3RWpCLDBCQUEwQixnR0FDeEIsNEJBQTRCLDhFQUNoQyx3QkFBd0Isc0xBcEMxRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQXlCVCxnVkFoRVMsZ0JBQWdCOzsyRkFrRWQseUJBQXlCO2tCQXJFckMsU0FBUztpQ0FDRyxJQUFJLFlBQ04sbURBQW1ELFdBQ3BELENBQUMsZ0JBQWdCLENBQUMsYUFDaEIsQ0FBQyx1QkFBdUIsMkJBQTJCLENBQUMsbUJBQzlDLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0wsSUFBSSxFQUFFLFNBQVM7d0JBQ2YsUUFBUSxFQUFFLEdBQUc7d0JBQ2IsNkJBQTZCLEVBQUUsb0JBQW9CO3dCQUNuRCxzQkFBc0IsRUFBRSwrQ0FBK0M7d0JBQ3ZFLGtCQUFrQixFQUFFLFVBQVU7d0JBQzlCLDhCQUE4QixFQUFFLDhCQUE4Qjt3QkFDOUQsd0JBQXdCLEVBQUUsbUJBQW1CO3dCQUM3QywwQkFBMEIsRUFBRSwyQkFBMkI7d0JBQ3ZELE1BQU0sRUFBRSw0QkFBNEI7d0JBQ3BDLFlBQVksRUFBRSxlQUFlO3dCQUM3QixXQUFXLEVBQUUsK0JBQStCO3dCQUM1QyxpQkFBaUIsRUFBRSwwQkFBMEI7d0JBQzdDLGlCQUFpQixFQUFFLDBCQUEwQjtxQkFDN0MsWUFzQlM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUF5QlQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG5cdEFmdGVyQ29udGVudEluaXQsXG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuXHRDb21wb25lbnQsXG5cdERlc3Ryb3lSZWYsXG5cdEVsZW1lbnRSZWYsXG5cdEluamVjdG9yLFxuXHRhZnRlck5leHRSZW5kZXIsXG5cdGNvbnRlbnRDaGlsZCxcblx0Y29udGVudENoaWxkcmVuLFxuXHRlZmZlY3QsXG5cdGluamVjdCxcblx0c2lnbmFsLFxuXHR1bnRyYWNrZWQsXG5cdHZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBCcm5TZWxlY3RPcHRpb25EaXJlY3RpdmUgfSBmcm9tICcuL2Jybi1zZWxlY3Qtb3B0aW9uLmRpcmVjdGl2ZSc7XG5cbmltcG9ydCB7IEFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0LCBmcm9tRXZlbnQsIGludGVydmFsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBwcm92aWRlQnJuU2VsZWN0Q29udGVudCB9IGZyb20gJy4vYnJuLXNlbGVjdC1jb250ZW50LnRva2VuJztcbmltcG9ydCB7IGluamVjdEJyblNlbGVjdCB9IGZyb20gJy4vYnJuLXNlbGVjdC50b2tlbic7XG5cbmNvbnN0IFNDUk9MTEJZX1BJWEVMUyA9IDEwMDtcblxuQERpcmVjdGl2ZSh7XG5cdHNlbGVjdG9yOiAnW2JyblNlbGVjdFNjcm9sbFVwXSwgYnJuLXNlbGVjdC1zY3JvbGwtdXAsIGhsbS1zZWxlY3Qtc2Nyb2xsLXVwOm5vdChub0hsbSknLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRob3N0OiB7XG5cdFx0J2FyaWEtaGlkZGVuJzogJ3RydWUnLFxuXHRcdCcobW91c2VlbnRlciknOiAnc3RhcnRFbWl0dGluZ0V2ZW50cygpJyxcblx0fSxcbn0pXG5leHBvcnQgY2xhc3MgQnJuU2VsZWN0U2Nyb2xsVXBEaXJlY3RpdmUge1xuXHRwcml2YXRlIHJlYWRvbmx5IF9lbCA9IGluamVjdChFbGVtZW50UmVmKTtcblx0cHJpdmF0ZSByZWFkb25seSBfc2VsZWN0Q29udGVudCA9IGluamVjdChCcm5TZWxlY3RDb250ZW50Q29tcG9uZW50KTtcblxuXHRwcml2YXRlIHJlYWRvbmx5IF9lbmRSZWFjaGVkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblx0cHJpdmF0ZSByZWFkb25seSBfZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuXHRwdWJsaWMgc3RhcnRFbWl0dGluZ0V2ZW50cygpOiB2b2lkIHtcblx0XHRjb25zdCBtb3VzZUxlYXZlJCA9IGZyb21FdmVudCh0aGlzLl9lbC5uYXRpdmVFbGVtZW50LCAnbW91c2VsZWF2ZScpO1xuXG5cdFx0aW50ZXJ2YWwoMTAwKVxuXHRcdFx0LnBpcGUodGFrZVVudGlsKG1vdXNlTGVhdmUkKSwgdGFrZVVudGlsKHRoaXMuX2VuZFJlYWNoZWQpLCB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZikpXG5cdFx0XHQuc3Vic2NyaWJlKCgpID0+IHRoaXMuX3NlbGVjdENvbnRlbnQubW92ZUZvY3VzVXAoKSk7XG5cdH1cblxuXHRwdWJsaWMgc3RvcEVtaXR0aW5nRXZlbnRzKCk6IHZvaWQge1xuXHRcdHRoaXMuX2VuZFJlYWNoZWQubmV4dCh0cnVlKTtcblx0fVxufVxuXG5ARGlyZWN0aXZlKHtcblx0c2VsZWN0b3I6ICdbYnJuU2VsZWN0U2Nyb2xsRG93bl0sIGJybi1zZWxlY3Qtc2Nyb2xsLWRvd24sIGhsbS1zZWxlY3Qtc2Nyb2xsLWRvd246bm90KG5vSGxtKScsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdGhvc3Q6IHtcblx0XHQnYXJpYS1oaWRkZW4nOiAndHJ1ZScsXG5cdFx0Jyhtb3VzZWVudGVyKSc6ICdzdGFydEVtaXR0aW5nRXZlbnRzKCknLFxuXHR9LFxufSlcbmV4cG9ydCBjbGFzcyBCcm5TZWxlY3RTY3JvbGxEb3duRGlyZWN0aXZlIHtcblx0cHJpdmF0ZSByZWFkb25seSBfZWwgPSBpbmplY3QoRWxlbWVudFJlZik7XG5cdHByaXZhdGUgcmVhZG9ubHkgX3NlbGVjdENvbnRlbnQgPSBpbmplY3QoQnJuU2VsZWN0Q29udGVudENvbXBvbmVudCk7XG5cblx0cHJpdmF0ZSByZWFkb25seSBfZW5kUmVhY2hlZCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cdHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cblx0cHVibGljIHN0YXJ0RW1pdHRpbmdFdmVudHMoKTogdm9pZCB7XG5cdFx0Y29uc3QgbW91c2VMZWF2ZSQgPSBmcm9tRXZlbnQodGhpcy5fZWwubmF0aXZlRWxlbWVudCwgJ21vdXNlbGVhdmUnKTtcblxuXHRcdGludGVydmFsKDEwMClcblx0XHRcdC5waXBlKHRha2VVbnRpbChtb3VzZUxlYXZlJCksIHRha2VVbnRpbCh0aGlzLl9lbmRSZWFjaGVkKSwgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpKVxuXHRcdFx0LnN1YnNjcmliZSgoKSA9PiB0aGlzLl9zZWxlY3RDb250ZW50Lm1vdmVGb2N1c0Rvd24oKSk7XG5cdH1cblxuXHRwdWJsaWMgc3RvcEVtaXR0aW5nRXZlbnRzKCk6IHZvaWQge1xuXHRcdHRoaXMuX2VuZFJlYWNoZWQubmV4dCh0cnVlKTtcblx0fVxufVxuXG5AQ29tcG9uZW50KHtcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0c2VsZWN0b3I6ICdicm4tc2VsZWN0LWNvbnRlbnQsIGhsbS1zZWxlY3QtY29udGVudDpub3Qobm9IbG0pJyxcblx0aW1wb3J0czogW05nVGVtcGxhdGVPdXRsZXRdLFxuXHRwcm92aWRlcnM6IFtwcm92aWRlQnJuU2VsZWN0Q29udGVudChCcm5TZWxlY3RDb250ZW50Q29tcG9uZW50KV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRob3N0OiB7XG5cdFx0cm9sZTogJ2xpc3Rib3gnLFxuXHRcdHRhYmluZGV4OiAnMCcsXG5cdFx0J1thdHRyLmFyaWEtbXVsdGlzZWxlY3RhYmxlXSc6ICdfc2VsZWN0Lm11bHRpcGxlKCknLFxuXHRcdCdbYXR0ci5hcmlhLWRpc2FibGVkXSc6ICdfc2VsZWN0LmRpc2FibGVkKCkgfHwgX3NlbGVjdC5fZm9ybURpc2FibGVkKCknLFxuXHRcdCdhcmlhLW9yaWVudGF0aW9uJzogJ3ZlcnRpY2FsJyxcblx0XHQnW2F0dHIuYXJpYS1hY3RpdmVkZXNjZW5kYW50XSc6ICdrZXlNYW5hZ2VyPy5hY3RpdmVJdGVtPy5pZCgpJyxcblx0XHQnW2F0dHIuYXJpYS1sYWJlbGxlZEJ5XSc6ICdfc2VsZWN0LmxhYmVsSWQoKScsXG5cdFx0J1thdHRyLmFyaWEtY29udHJvbGxlZEJ5XSc6IFwiX3NlbGVjdC5pZCgpICsnLS10cmlnZ2VyJ1wiLFxuXHRcdCdbaWRdJzogXCJfc2VsZWN0LmlkKCkgKyAnLS1jb250ZW50J1wiLFxuXHRcdCdbYXR0ci5kaXJdJzogJ19zZWxlY3QuZGlyKCknLFxuXHRcdCcoa2V5ZG93biknOiAna2V5TWFuYWdlcj8ub25LZXlkb3duKCRldmVudCknLFxuXHRcdCcoa2V5ZG93bi5lbnRlciknOiAnc2VsZWN0QWN0aXZlSXRlbSgkZXZlbnQpJyxcblx0XHQnKGtleWRvd24uc3BhY2UpJzogJ3NlbGVjdEFjdGl2ZUl0ZW0oJGV2ZW50KScsXG5cdH0sXG5cdHN0eWxlczogW1xuXHRcdGBcblx0XHRcdDpob3N0IHtcblx0XHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHRcdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0XHRcdFx0b3V0bGluZTogbm9uZTtcblx0XHRcdFx0cG9pbnRlci1ldmVudHM6IGF1dG87XG5cdFx0XHR9XG5cblx0XHRcdFtkYXRhLWJybi1zZWxlY3Qtdmlld3BvcnRdIHtcblx0XHRcdFx0c2Nyb2xsYmFyLXdpZHRoOiBub25lO1xuXHRcdFx0XHQtbXMtb3ZlcmZsb3ctc3R5bGU6IG5vbmU7XG5cdFx0XHRcdC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcblx0XHRcdH1cblxuXHRcdFx0W2RhdGEtYnJuLXNlbGVjdC12aWV3cG9ydF06Oi13ZWJraXQtc2Nyb2xsYmFyIHtcblx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdH1cblx0XHRgLFxuXHRdLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZy10ZW1wbGF0ZSAjc2Nyb2xsVXA+XG5cdFx0XHQ8bmctY29udGVudCBzZWxlY3Q9XCJobG0tc2VsZWN0LXNjcm9sbC11cFwiIC8+XG5cdFx0XHQ8bmctY29udGVudCBzZWxlY3Q9XCJicm5TZWxlY3RTY3JvbGxVcFwiIC8+XG5cdFx0PC9uZy10ZW1wbGF0ZT5cblx0XHQ8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2FuU2Nyb2xsVXAoKSAmJiBzY3JvbGxVcEJ0bigpID8gc2Nyb2xsVXAgOiBudWxsXCIgLz5cblx0XHQ8ZGl2XG5cdFx0XHRkYXRhLWJybi1zZWxlY3Qtdmlld3BvcnRcblx0XHRcdCN2aWV3cG9ydFxuXHRcdFx0KHNjcm9sbCk9XCJoYW5kbGVTY3JvbGwoKVwiXG5cdFx0XHRzdHlsZT1cImZsZXg6IDEgMSAwJTtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdHdpZHRoOjEwMCU7XG5cdFx0XHRvdmVyZmxvdzphdXRvO1xuXHRcdFx0bWluLWhlaWdodDogMzZweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAycHg7XG4gICAgICBtYXJnaW4tYm90dG9tOiAtMnB4O1wiXG5cdFx0PlxuXHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHQ8L2Rpdj5cblx0XHQ8bmctdGVtcGxhdGUgI3Njcm9sbERvd24+XG5cdFx0XHQ8bmctY29udGVudCBzZWxlY3Q9XCJicm5TZWxlY3RTY3JvbGxEb3duXCIgLz5cblx0XHRcdDxuZy1jb250ZW50IHNlbGVjdD1cImhsbS1zZWxlY3Qtc2Nyb2xsLWRvd25cIiAvPlxuXHRcdDwvbmctdGVtcGxhdGU+XG5cdFx0PG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNhblNjcm9sbERvd24oKSAmJiBzY3JvbGxEb3duQnRuKCkgPyBzY3JvbGxEb3duIDogbnVsbFwiIC8+XG5cdGAsXG59KVxuZXhwb3J0IGNsYXNzIEJyblNlbGVjdENvbnRlbnRDb21wb25lbnQ8VD4gaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0IHtcblx0cHJpdmF0ZSByZWFkb25seSBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4gPSBpbmplY3QoRWxlbWVudFJlZik7XG5cdHByaXZhdGUgcmVhZG9ubHkgX2luamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcblx0cHJvdGVjdGVkIHJlYWRvbmx5IF9zZWxlY3QgPSBpbmplY3RCcm5TZWxlY3Q8VD4oKTtcblx0cHJvdGVjdGVkIHJlYWRvbmx5IGNhblNjcm9sbFVwID0gc2lnbmFsKGZhbHNlKTtcblx0cHJvdGVjdGVkIHJlYWRvbmx5IGNhblNjcm9sbERvd24gPSBzaWduYWwoZmFsc2UpO1xuXHRwcm90ZWN0ZWQgcmVhZG9ubHkgdmlld3BvcnQgPSB2aWV3Q2hpbGQucmVxdWlyZWQ8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KCd2aWV3cG9ydCcpO1xuXHRwcm90ZWN0ZWQgcmVhZG9ubHkgc2Nyb2xsVXBCdG4gPSBjb250ZW50Q2hpbGQoQnJuU2VsZWN0U2Nyb2xsVXBEaXJlY3RpdmUpO1xuXHRwcm90ZWN0ZWQgcmVhZG9ubHkgc2Nyb2xsRG93bkJ0biA9IGNvbnRlbnRDaGlsZChCcm5TZWxlY3RTY3JvbGxEb3duRGlyZWN0aXZlKTtcblx0cHJpdmF0ZSByZWFkb25seSBfb3B0aW9ucyA9IGNvbnRlbnRDaGlsZHJlbihCcm5TZWxlY3RPcHRpb25EaXJlY3RpdmUsIHsgZGVzY2VuZGFudHM6IHRydWUgfSk7XG5cblx0LyoqIEBpbnRlcm5hbCAqL1xuXHRwdWJsaWMga2V5TWFuYWdlcjogQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXI8QnJuU2VsZWN0T3B0aW9uRGlyZWN0aXZlPFQ+PiB8IG51bGwgPSBudWxsO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHR0aGlzLl9zZWxlY3Qub3BlbigpICYmIGFmdGVyTmV4dFJlbmRlcigoKSA9PiB0aGlzLnVwZGF0ZUFycm93RGlzcGxheSgpLCB7IGluamVjdG9yOiB0aGlzLl9pbmplY3RvciB9KTtcblx0XHR9KTtcblx0fVxuXG5cdG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcblx0XHR0aGlzLmtleU1hbmFnZXIgPSBuZXcgQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIodGhpcy5fb3B0aW9ucywgdGhpcy5faW5qZWN0b3IpXG5cdFx0XHQud2l0aEhvbWVBbmRFbmQoKVxuXHRcdFx0LndpdGhWZXJ0aWNhbE9yaWVudGF0aW9uKClcblx0XHRcdC53aXRoVHlwZUFoZWFkKClcblx0XHRcdC53aXRoQWxsb3dlZE1vZGlmaWVyS2V5cyhbJ3NoaWZ0S2V5J10pXG5cdFx0XHQud2l0aFdyYXAoKVxuXHRcdFx0LnNraXBQcmVkaWNhdGUoKG9wdGlvbikgPT4gb3B0aW9uLl9kaXNhYmxlZCgpKTtcblxuXHRcdGVmZmVjdChcblx0XHRcdCgpID0+IHtcblx0XHRcdFx0Ly8gYW55IHRpbWUgdGhlIHNlbGVjdCBpcyBvcGVuZWQsIHdlIG5lZWQgdG8gZm9jdXMgdGhlIGZpcnN0IHNlbGVjdGVkIG9wdGlvbiBvciB0aGUgZmlyc3Qgb3B0aW9uXG5cdFx0XHRcdGNvbnN0IG9wZW4gPSB0aGlzLl9zZWxlY3Qub3BlbigpO1xuXHRcdFx0XHRjb25zdCBvcHRpb25zID0gdGhpcy5fb3B0aW9ucygpO1xuXG5cdFx0XHRcdGlmICghb3BlbiB8fCAhb3B0aW9ucy5sZW5ndGgpIHtcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblxuXHRcdFx0XHR1bnRyYWNrZWQoKCkgPT4ge1xuXHRcdFx0XHRcdGNvbnN0IHNlbGVjdGVkT3B0aW9uID0gb3B0aW9ucy5maW5kKChvcHRpb24pID0+IG9wdGlvbi5zZWxlY3RlZCgpKTtcblxuXHRcdFx0XHRcdGlmIChzZWxlY3RlZE9wdGlvbikge1xuXHRcdFx0XHRcdFx0dGhpcy5rZXlNYW5hZ2VyPy5zZXRBY3RpdmVJdGVtKHNlbGVjdGVkT3B0aW9uKTtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0dGhpcy5rZXlNYW5hZ2VyPy5zZXRGaXJzdEl0ZW1BY3RpdmUoKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSxcblx0XHRcdHsgaW5qZWN0b3I6IHRoaXMuX2luamVjdG9yIH0sXG5cdFx0KTtcblx0fVxuXG5cdHB1YmxpYyB1cGRhdGVBcnJvd0Rpc3BsYXkoKTogdm9pZCB7XG5cdFx0Y29uc3QgeyBzY3JvbGxUb3AsIHNjcm9sbEhlaWdodCwgY2xpZW50SGVpZ2h0IH0gPSB0aGlzLnZpZXdwb3J0KCkubmF0aXZlRWxlbWVudDtcblx0XHR0aGlzLmNhblNjcm9sbFVwLnNldChzY3JvbGxUb3AgPiAwKTtcblx0XHRjb25zdCBtYXhTY3JvbGwgPSBzY3JvbGxIZWlnaHQgLSBjbGllbnRIZWlnaHQ7XG5cdFx0dGhpcy5jYW5TY3JvbGxEb3duLnNldChNYXRoLmNlaWwoc2Nyb2xsVG9wKSA8IG1heFNjcm9sbCk7XG5cdH1cblxuXHRwdWJsaWMgaGFuZGxlU2Nyb2xsKCk6IHZvaWQge1xuXHRcdHRoaXMudXBkYXRlQXJyb3dEaXNwbGF5KCk7XG5cdH1cblxuXHRwdWJsaWMgZm9jdXNMaXN0KCk6IHZvaWQge1xuXHRcdHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuXHR9XG5cblx0cHVibGljIG1vdmVGb2N1c1VwKCk6IHZvaWQge1xuXHRcdHRoaXMudmlld3BvcnQoKS5uYXRpdmVFbGVtZW50LnNjcm9sbEJ5KHsgdG9wOiAtU0NST0xMQllfUElYRUxTLCBiZWhhdmlvcjogJ3Ntb290aCcgfSk7XG5cdFx0aWYgKHRoaXMudmlld3BvcnQoKS5uYXRpdmVFbGVtZW50LnNjcm9sbFRvcCA9PT0gMCkge1xuXHRcdFx0dGhpcy5zY3JvbGxVcEJ0bigpPy5zdG9wRW1pdHRpbmdFdmVudHMoKTtcblx0XHR9XG5cdH1cblxuXHRwdWJsaWMgbW92ZUZvY3VzRG93bigpOiB2b2lkIHtcblx0XHR0aGlzLnZpZXdwb3J0KCkubmF0aXZlRWxlbWVudC5zY3JvbGxCeSh7IHRvcDogU0NST0xMQllfUElYRUxTLCBiZWhhdmlvcjogJ3Ntb290aCcgfSk7XG5cdFx0Y29uc3Qgdmlld3BvcnRTaXplID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnNjcm9sbEhlaWdodDtcblx0XHRjb25zdCB2aWV3cG9ydFNjcm9sbFBvc2l0aW9uID0gdGhpcy52aWV3cG9ydCgpLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wO1xuXHRcdGlmIChcblx0XHRcdHZpZXdwb3J0U2l6ZSArIHZpZXdwb3J0U2Nyb2xsUG9zaXRpb24gKyBTQ1JPTExCWV9QSVhFTFMgPlxuXHRcdFx0dGhpcy52aWV3cG9ydCgpLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSGVpZ2h0ICsgU0NST0xMQllfUElYRUxTIC8gMlxuXHRcdCkge1xuXHRcdFx0dGhpcy5zY3JvbGxEb3duQnRuKCk/LnN0b3BFbWl0dGluZ0V2ZW50cygpO1xuXHRcdH1cblx0fVxuXG5cdHNldEFjdGl2ZU9wdGlvbihvcHRpb246IEJyblNlbGVjdE9wdGlvbkRpcmVjdGl2ZTxUPik6IHZvaWQge1xuXHRcdGNvbnN0IGluZGV4ID0gdGhpcy5fb3B0aW9ucygpLmZpbmRJbmRleCgobykgPT4gbyA9PT0gb3B0aW9uKTtcblxuXHRcdGlmIChpbmRleCA9PT0gLTEpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHR0aGlzLmtleU1hbmFnZXI/LnNldEFjdGl2ZUl0ZW0oaW5kZXgpO1xuXHR9XG5cblx0cHJvdGVjdGVkIHNlbGVjdEFjdGl2ZUl0ZW0oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcblx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG5cdFx0Y29uc3QgYWN0aXZlT3B0aW9uID0gdGhpcy5rZXlNYW5hZ2VyPy5hY3RpdmVJdGVtO1xuXG5cdFx0aWYgKGFjdGl2ZU9wdGlvbikge1xuXHRcdFx0dGhpcy5fc2VsZWN0LnNlbGVjdE9wdGlvbihhY3RpdmVPcHRpb24udmFsdWUoKSEpO1xuXHRcdH1cblx0fVxufVxuIl19
@@ -0,0 +1,9 @@
1
+ import { inject, InjectionToken } from '@angular/core';
2
+ const BrnSelectContentToken = new InjectionToken('BrnSelectContentToken');
3
+ export function injectBrnSelectContent() {
4
+ return inject(BrnSelectContentToken);
5
+ }
6
+ export function provideBrnSelectContent(select) {
7
+ return { provide: BrnSelectContentToken, useExisting: select };
8
+ }
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLXNlbGVjdC1jb250ZW50LnRva2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9icmFpbi9zZWxlY3Qvc3JjL2xpYi9icm4tc2VsZWN0LWNvbnRlbnQudG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFvQixNQUFNLEVBQUUsY0FBYyxFQUFRLE1BQU0sZUFBZSxDQUFDO0FBRy9FLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxjQUFjLENBQXFDLHVCQUF1QixDQUFDLENBQUM7QUFFOUcsTUFBTSxVQUFVLHNCQUFzQjtJQUNyQyxPQUFPLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBaUMsQ0FBQztBQUN0RSxDQUFDO0FBRUQsTUFBTSxVQUFVLHVCQUF1QixDQUFDLE1BQWdEO0lBQ3ZGLE9BQU8sRUFBRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxDQUFDO0FBQ2hFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFeGlzdGluZ1Byb3ZpZGVyLCBpbmplY3QsIEluamVjdGlvblRva2VuLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgdHlwZSB7IEJyblNlbGVjdENvbnRlbnRDb21wb25lbnQgfSBmcm9tICcuL2Jybi1zZWxlY3QtY29udGVudC5jb21wb25lbnQnO1xuXG5jb25zdCBCcm5TZWxlY3RDb250ZW50VG9rZW4gPSBuZXcgSW5qZWN0aW9uVG9rZW48QnJuU2VsZWN0Q29udGVudENvbXBvbmVudDx1bmtub3duPj4oJ0JyblNlbGVjdENvbnRlbnRUb2tlbicpO1xuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0QnJuU2VsZWN0Q29udGVudDxUPigpOiBCcm5TZWxlY3RDb250ZW50Q29tcG9uZW50PFQ+IHtcblx0cmV0dXJuIGluamVjdChCcm5TZWxlY3RDb250ZW50VG9rZW4pIGFzIEJyblNlbGVjdENvbnRlbnRDb21wb25lbnQ8VD47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlQnJuU2VsZWN0Q29udGVudChzZWxlY3Q6IFR5cGU8QnJuU2VsZWN0Q29udGVudENvbXBvbmVudDx1bmtub3duPj4pOiBFeGlzdGluZ1Byb3ZpZGVyIHtcblx0cmV0dXJuIHsgcHJvdmlkZTogQnJuU2VsZWN0Q29udGVudFRva2VuLCB1c2VFeGlzdGluZzogc2VsZWN0IH07XG59XG4iXX0=
@@ -1,65 +1,69 @@
1
- import { CdkOption } from '@angular/cdk/listbox';
2
- import { Directive, ElementRef, booleanAttribute, computed, effect, inject, input, signal, } from '@angular/core';
3
- import { BrnSelectService } from './brn-select.service';
1
+ import { Directive, ElementRef, booleanAttribute, computed, inject, input, signal } from '@angular/core';
2
+ import { injectBrnSelectContent } from './brn-select-content.token';
3
+ import { injectBrnSelect } from './brn-select.token';
4
4
  import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/cdk/listbox";
5
+ let nextId = 0;
6
6
  export class BrnSelectOptionDirective {
7
- _cdkSelectOption = inject(CdkOption, { host: true });
8
- _selectService = inject(BrnSelectService);
9
- _focused = signal(false);
7
+ _select = injectBrnSelect();
8
+ _content = injectBrnSelectContent();
10
9
  elementRef = inject(ElementRef);
11
- selected = computed(() => {
12
- if (Array.isArray(this._selectService.value())) {
13
- const itemFound = this._selectService.value().find((val) => val === this._cdkSelectOption.value);
14
- return !!itemFound;
15
- }
16
- return this._cdkSelectOption.value === this._selectService.value();
10
+ id = input(`brn-option-${nextId++}`);
11
+ value = input();
12
+ // we use "_disabled" here because disabled is already defined in the Highlightable interface
13
+ _disabled = input(false, {
14
+ alias: 'disabled',
15
+ transform: booleanAttribute,
17
16
  });
18
- focused = computed(() => this._focused());
17
+ get disabled() {
18
+ return this._disabled();
19
+ }
20
+ selected = computed(() => this.value() !== undefined && this._select.isSelected(this.value()));
21
+ _active = signal(false);
19
22
  checkedState = computed(() => (this.selected() ? 'checked' : 'unchecked'));
20
- dir = computed(() => this._selectService.dir());
21
- constructor() {
22
- effect(() => {
23
- this._cdkSelectOption.value = this.value();
24
- });
25
- effect(() => {
26
- this._cdkSelectOption.disabled = this.disabledSignal();
27
- });
23
+ dir = this._select.dir;
24
+ select() {
25
+ if (this._disabled()) {
26
+ return;
27
+ }
28
+ this._select.selectOption(this.value());
28
29
  }
29
- ngAfterContentChecked() {
30
- this._cdkSelectOption.value = this.value();
30
+ /** Get the label for this element which is required by the FocusableOption interface. */
31
+ getLabel() {
32
+ return this.elementRef.nativeElement.textContent?.trim() ?? '';
31
33
  }
32
- value = input(null);
33
- // we use "disabledSignal" here because disabled is already defined in the FocusableOption interface
34
- disabledSignal = input(false, {
35
- alias: 'disabled',
36
- transform: booleanAttribute,
37
- });
38
- hover() {
39
- this.focus();
34
+ setActiveStyles() {
35
+ this._active.set(true);
36
+ // scroll the option into view if it is not visible
37
+ this.elementRef.nativeElement.scrollIntoView({ block: 'nearest' });
40
38
  }
41
- focus() {
42
- this._cdkSelectOption.focus();
43
- this._focused.set(true);
39
+ setInactiveStyles() {
40
+ this._active.set(false);
44
41
  }
45
- blur() {
46
- this._focused.set(false);
42
+ activate() {
43
+ if (this._disabled()) {
44
+ return;
45
+ }
46
+ this._content.setActiveOption(this);
47
47
  }
48
48
  /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnSelectOptionDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
49
- /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.5", type: BrnSelectOptionDirective, isStandalone: true, selector: "[brnOption]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, disabledSignal: { classPropertyName: "disabledSignal", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "mouseenter": "hover()", "blur": "blur()" }, properties: { "attr.dir": "_selectService.dir()", "attr.data-disabled": "disabledSignal() ? '' : undefined" } }, hostDirectives: [{ directive: i1.CdkOption }], ngImport: i0 });
49
+ /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.5", type: BrnSelectOptionDirective, isStandalone: true, selector: "[brnOption]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, _disabled: { classPropertyName: "_disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "option" }, listeners: { "click": "select()", "mouseenter": "activate()" }, properties: { "id": "id()", "attr.aria-selected": "selected()", "attr.aria-disabled": "_disabled()", "attr.dir": "_select.dir()", "attr.data-active": "_active() ? '' : undefined", "attr.data-disabled": "_disabled() ? '' : undefined" } }, ngImport: i0 });
50
50
  }
51
51
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnSelectOptionDirective, decorators: [{
52
52
  type: Directive,
53
53
  args: [{
54
54
  selector: '[brnOption]',
55
55
  standalone: true,
56
- hostDirectives: [CdkOption],
57
56
  host: {
58
- '(mouseenter)': 'hover()',
59
- '(blur)': 'blur()',
60
- '[attr.dir]': '_selectService.dir()',
61
- '[attr.data-disabled]': "disabledSignal() ? '' : undefined",
57
+ role: 'option',
58
+ '[id]': 'id()',
59
+ '[attr.aria-selected]': 'selected()',
60
+ '[attr.aria-disabled]': '_disabled()',
61
+ '(click)': 'select()',
62
+ '[attr.dir]': '_select.dir()',
63
+ '[attr.data-active]': "_active() ? '' : undefined",
64
+ '[attr.data-disabled]': "_disabled() ? '' : undefined",
65
+ '(mouseenter)': 'activate()',
62
66
  },
63
67
  }]
64
- }], ctorParameters: () => [] });
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLXNlbGVjdC1vcHRpb24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9icmFpbi9zZWxlY3Qvc3JjL2xpYi9icm4tc2VsZWN0LW9wdGlvbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pELE9BQU8sRUFFTixTQUFTLEVBQ1QsVUFBVSxFQUNWLGdCQUFnQixFQUNoQixRQUFRLEVBQ1IsTUFBTSxFQUNOLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxHQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7QUFheEQsTUFBTSxPQUFPLHdCQUF3QjtJQUNuQixnQkFBZ0IsR0FBRyxNQUFNLENBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDbkQsY0FBYyxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBRTVDLFFBQVEsR0FBRyxNQUFNLENBQVUsS0FBSyxDQUFDLENBQUM7SUFDbkMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUVoQyxRQUFRLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtRQUN4QyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDaEQsTUFBTSxTQUFTLEdBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQXFCLENBQUMsSUFBSSxDQUNyRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQzVDLENBQUM7WUFDRixPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDcEIsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3BFLENBQUMsQ0FBQyxDQUFDO0lBQ2EsT0FBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUMxQyxZQUFZLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDM0UsR0FBRyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFFaEU7UUFDQyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1gsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDNUMsQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1gsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDeEQsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBQ0QscUJBQXFCO1FBQ3BCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFFTSxLQUFLLEdBQUcsS0FBSyxDQUFpQixJQUFJLENBQUMsQ0FBQztJQUUzQyxvR0FBb0c7SUFDcEYsY0FBYyxHQUFHLEtBQUssQ0FBd0IsS0FBSyxFQUFFO1FBQ3BFLEtBQUssRUFBRSxVQUFVO1FBQ2pCLFNBQVMsRUFBRSxnQkFBZ0I7S0FDM0IsQ0FBQyxDQUFDO0lBRU8sS0FBSztRQUNkLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFTSxLQUFLO1FBQ1gsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFTSxJQUFJO1FBQ1YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUIsQ0FBQzswSEFuRFcsd0JBQXdCOzhHQUF4Qix3QkFBd0I7OzJGQUF4Qix3QkFBd0I7a0JBWHBDLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLGFBQWE7b0JBQ3ZCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixjQUFjLEVBQUUsQ0FBQyxTQUFTLENBQUM7b0JBQzNCLElBQUksRUFBRTt3QkFDTCxjQUFjLEVBQUUsU0FBUzt3QkFDekIsUUFBUSxFQUFFLFFBQVE7d0JBQ2xCLFlBQVksRUFBRSxzQkFBc0I7d0JBQ3BDLHNCQUFzQixFQUFFLG1DQUFtQztxQkFDM0Q7aUJBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEZvY3VzYWJsZU9wdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBDZGtPcHRpb24gfSBmcm9tICdAYW5ndWxhci9jZGsvbGlzdGJveCc7XG5pbXBvcnQge1xuXHRBZnRlckNvbnRlbnRDaGVja2VkLFxuXHREaXJlY3RpdmUsXG5cdEVsZW1lbnRSZWYsXG5cdGJvb2xlYW5BdHRyaWJ1dGUsXG5cdGNvbXB1dGVkLFxuXHRlZmZlY3QsXG5cdGluamVjdCxcblx0aW5wdXQsXG5cdHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCcm5TZWxlY3RTZXJ2aWNlIH0gZnJvbSAnLi9icm4tc2VsZWN0LnNlcnZpY2UnO1xuXG5ARGlyZWN0aXZlKHtcblx0c2VsZWN0b3I6ICdbYnJuT3B0aW9uXScsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdGhvc3REaXJlY3RpdmVzOiBbQ2RrT3B0aW9uXSxcblx0aG9zdDoge1xuXHRcdCcobW91c2VlbnRlciknOiAnaG92ZXIoKScsXG5cdFx0JyhibHVyKSc6ICdibHVyKCknLFxuXHRcdCdbYXR0ci5kaXJdJzogJ19zZWxlY3RTZXJ2aWNlLmRpcigpJyxcblx0XHQnW2F0dHIuZGF0YS1kaXNhYmxlZF0nOiBcImRpc2FibGVkU2lnbmFsKCkgPyAnJyA6IHVuZGVmaW5lZFwiLFxuXHR9LFxufSlcbmV4cG9ydCBjbGFzcyBCcm5TZWxlY3RPcHRpb25EaXJlY3RpdmUgaW1wbGVtZW50cyBGb2N1c2FibGVPcHRpb24sIEFmdGVyQ29udGVudENoZWNrZWQge1xuXHRwcml2YXRlIHJlYWRvbmx5IF9jZGtTZWxlY3RPcHRpb24gPSBpbmplY3QoQ2RrT3B0aW9uLCB7IGhvc3Q6IHRydWUgfSk7XG5cdHByb3RlY3RlZCByZWFkb25seSBfc2VsZWN0U2VydmljZSA9IGluamVjdChCcm5TZWxlY3RTZXJ2aWNlKTtcblxuXHRwcml2YXRlIHJlYWRvbmx5IF9mb2N1c2VkID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcblx0cHVibGljIHJlYWRvbmx5IGVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG5cblx0cHVibGljIHJlYWRvbmx5IHNlbGVjdGVkID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGlmIChBcnJheS5pc0FycmF5KHRoaXMuX3NlbGVjdFNlcnZpY2UudmFsdWUoKSkpIHtcblx0XHRcdGNvbnN0IGl0ZW1Gb3VuZCA9ICh0aGlzLl9zZWxlY3RTZXJ2aWNlLnZhbHVlKCkgYXMgQXJyYXk8dW5rbm93bj4pLmZpbmQoXG5cdFx0XHRcdCh2YWwpID0+IHZhbCA9PT0gdGhpcy5fY2RrU2VsZWN0T3B0aW9uLnZhbHVlLFxuXHRcdFx0KTtcblx0XHRcdHJldHVybiAhIWl0ZW1Gb3VuZDtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXMuX2Nka1NlbGVjdE9wdGlvbi52YWx1ZSA9PT0gdGhpcy5fc2VsZWN0U2VydmljZS52YWx1ZSgpO1xuXHR9KTtcblx0cHVibGljIHJlYWRvbmx5IGZvY3VzZWQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLl9mb2N1c2VkKCkpO1xuXHRwdWJsaWMgcmVhZG9ubHkgY2hlY2tlZFN0YXRlID0gY29tcHV0ZWQoKCkgPT4gKHRoaXMuc2VsZWN0ZWQoKSA/ICdjaGVja2VkJyA6ICd1bmNoZWNrZWQnKSk7XG5cdHB1YmxpYyByZWFkb25seSBkaXIgPSBjb21wdXRlZCgoKSA9PiB0aGlzLl9zZWxlY3RTZXJ2aWNlLmRpcigpKTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0dGhpcy5fY2RrU2VsZWN0T3B0aW9uLnZhbHVlID0gdGhpcy52YWx1ZSgpO1xuXHRcdH0pO1xuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHR0aGlzLl9jZGtTZWxlY3RPcHRpb24uZGlzYWJsZWQgPSB0aGlzLmRpc2FibGVkU2lnbmFsKCk7XG5cdFx0fSk7XG5cdH1cblx0bmdBZnRlckNvbnRlbnRDaGVja2VkKCk6IHZvaWQge1xuXHRcdHRoaXMuX2Nka1NlbGVjdE9wdGlvbi52YWx1ZSA9IHRoaXMudmFsdWUoKTtcblx0fVxuXG5cdHB1YmxpYyB2YWx1ZSA9IGlucHV0PHVua25vd24gfCBudWxsPihudWxsKTtcblxuXHQvLyB3ZSB1c2UgXCJkaXNhYmxlZFNpZ25hbFwiIGhlcmUgYmVjYXVzZSBkaXNhYmxlZCBpcyBhbHJlYWR5IGRlZmluZWQgaW4gdGhlIEZvY3VzYWJsZU9wdGlvbiBpbnRlcmZhY2Vcblx0cHVibGljIHJlYWRvbmx5IGRpc2FibGVkU2lnbmFsID0gaW5wdXQ8Ym9vbGVhbiwgQm9vbGVhbklucHV0PihmYWxzZSwge1xuXHRcdGFsaWFzOiAnZGlzYWJsZWQnLFxuXHRcdHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSxcblx0fSk7XG5cblx0cHJvdGVjdGVkIGhvdmVyKCk6IHZvaWQge1xuXHRcdHRoaXMuZm9jdXMoKTtcblx0fVxuXG5cdHB1YmxpYyBmb2N1cygpOiB2b2lkIHtcblx0XHR0aGlzLl9jZGtTZWxlY3RPcHRpb24uZm9jdXMoKTtcblx0XHR0aGlzLl9mb2N1c2VkLnNldCh0cnVlKTtcblx0fVxuXG5cdHB1YmxpYyBibHVyKCk6IHZvaWQge1xuXHRcdHRoaXMuX2ZvY3VzZWQuc2V0KGZhbHNlKTtcblx0fVxufVxuIl19
68
+ }] });
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLXNlbGVjdC1vcHRpb24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9icmFpbi9zZWxlY3Qvc3JjL2xpYi9icm4tc2VsZWN0LW9wdGlvbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFFckQsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBaUJmLE1BQU0sT0FBTyx3QkFBd0I7SUFDakIsT0FBTyxHQUFHLGVBQWUsRUFBRSxDQUFDO0lBQzVCLFFBQVEsR0FBRyxzQkFBc0IsRUFBSyxDQUFDO0lBQzFDLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDaEMsRUFBRSxHQUFHLEtBQUssQ0FBQyxjQUFjLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNyQyxLQUFLLEdBQUcsS0FBSyxFQUFLLENBQUM7SUFFbkMsNkZBQTZGO0lBQzdFLFNBQVMsR0FBRyxLQUFLLENBQXdCLEtBQUssRUFBRTtRQUMvRCxLQUFLLEVBQUUsVUFBVTtRQUNqQixTQUFTLEVBQUUsZ0JBQWdCO0tBQzNCLENBQUMsQ0FBQztJQUVILElBQVcsUUFBUTtRQUNsQixPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRWUsUUFBUSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDNUYsT0FBTyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixZQUFZLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDM0UsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO0lBRWhDLE1BQU07UUFDWixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDO1lBQ3RCLE9BQU87UUFDUixDQUFDO1FBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELHlGQUF5RjtJQUN6RixRQUFRO1FBQ1AsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQ2hFLENBQUM7SUFFRCxlQUFlO1FBQ2QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdkIsbURBQW1EO1FBQ25ELElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRCxpQkFBaUI7UUFDaEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVTLFFBQVE7UUFDakIsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQztZQUN0QixPQUFPO1FBQ1IsQ0FBQztRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JDLENBQUM7MEhBbkRXLHdCQUF3Qjs4R0FBeEIsd0JBQXdCOzsyRkFBeEIsd0JBQXdCO2tCQWZwQyxTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxhQUFhO29CQUN2QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsSUFBSSxFQUFFO3dCQUNMLElBQUksRUFBRSxRQUFRO3dCQUNkLE1BQU0sRUFBRSxNQUFNO3dCQUNkLHNCQUFzQixFQUFFLFlBQVk7d0JBQ3BDLHNCQUFzQixFQUFFLGFBQWE7d0JBQ3JDLFNBQVMsRUFBRSxVQUFVO3dCQUNyQixZQUFZLEVBQUUsZUFBZTt3QkFDN0Isb0JBQW9CLEVBQUUsNEJBQTRCO3dCQUNsRCxzQkFBc0IsRUFBRSw4QkFBOEI7d0JBQ3RELGNBQWMsRUFBRSxZQUFZO3FCQUM1QjtpQkFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgSGlnaGxpZ2h0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGJvb2xlYW5BdHRyaWJ1dGUsIGNvbXB1dGVkLCBpbmplY3QsIGlucHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGluamVjdEJyblNlbGVjdENvbnRlbnQgfSBmcm9tICcuL2Jybi1zZWxlY3QtY29udGVudC50b2tlbic7XG5pbXBvcnQgeyBpbmplY3RCcm5TZWxlY3QgfSBmcm9tICcuL2Jybi1zZWxlY3QudG9rZW4nO1xuXG5sZXQgbmV4dElkID0gMDtcblxuQERpcmVjdGl2ZSh7XG5cdHNlbGVjdG9yOiAnW2Jybk9wdGlvbl0nLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRob3N0OiB7XG5cdFx0cm9sZTogJ29wdGlvbicsXG5cdFx0J1tpZF0nOiAnaWQoKScsXG5cdFx0J1thdHRyLmFyaWEtc2VsZWN0ZWRdJzogJ3NlbGVjdGVkKCknLFxuXHRcdCdbYXR0ci5hcmlhLWRpc2FibGVkXSc6ICdfZGlzYWJsZWQoKScsXG5cdFx0JyhjbGljayknOiAnc2VsZWN0KCknLFxuXHRcdCdbYXR0ci5kaXJdJzogJ19zZWxlY3QuZGlyKCknLFxuXHRcdCdbYXR0ci5kYXRhLWFjdGl2ZV0nOiBcIl9hY3RpdmUoKSA/ICcnIDogdW5kZWZpbmVkXCIsXG5cdFx0J1thdHRyLmRhdGEtZGlzYWJsZWRdJzogXCJfZGlzYWJsZWQoKSA/ICcnIDogdW5kZWZpbmVkXCIsXG5cdFx0Jyhtb3VzZWVudGVyKSc6ICdhY3RpdmF0ZSgpJyxcblx0fSxcbn0pXG5leHBvcnQgY2xhc3MgQnJuU2VsZWN0T3B0aW9uRGlyZWN0aXZlPFQ+IGltcGxlbWVudHMgSGlnaGxpZ2h0YWJsZSB7XG5cdHByb3RlY3RlZCByZWFkb25seSBfc2VsZWN0ID0gaW5qZWN0QnJuU2VsZWN0KCk7XG5cdHByb3RlY3RlZCByZWFkb25seSBfY29udGVudCA9IGluamVjdEJyblNlbGVjdENvbnRlbnQ8VD4oKTtcblx0cHVibGljIHJlYWRvbmx5IGVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG5cdHB1YmxpYyByZWFkb25seSBpZCA9IGlucHV0KGBicm4tb3B0aW9uLSR7bmV4dElkKyt9YCk7XG5cdHB1YmxpYyByZWFkb25seSB2YWx1ZSA9IGlucHV0PFQ+KCk7XG5cblx0Ly8gd2UgdXNlIFwiX2Rpc2FibGVkXCIgaGVyZSBiZWNhdXNlIGRpc2FibGVkIGlzIGFscmVhZHkgZGVmaW5lZCBpbiB0aGUgSGlnaGxpZ2h0YWJsZSBpbnRlcmZhY2Vcblx0cHVibGljIHJlYWRvbmx5IF9kaXNhYmxlZCA9IGlucHV0PGJvb2xlYW4sIEJvb2xlYW5JbnB1dD4oZmFsc2UsIHtcblx0XHRhbGlhczogJ2Rpc2FibGVkJyxcblx0XHR0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUsXG5cdH0pO1xuXG5cdHB1YmxpYyBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIHRoaXMuX2Rpc2FibGVkKCk7XG5cdH1cblxuXHRwdWJsaWMgcmVhZG9ubHkgc2VsZWN0ZWQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnZhbHVlKCkgIT09IHVuZGVmaW5lZCAmJiB0aGlzLl9zZWxlY3QuaXNTZWxlY3RlZCh0aGlzLnZhbHVlKCkpKTtcblx0cHJvdGVjdGVkIHJlYWRvbmx5IF9hY3RpdmUgPSBzaWduYWwoZmFsc2UpO1xuXHRwdWJsaWMgcmVhZG9ubHkgY2hlY2tlZFN0YXRlID0gY29tcHV0ZWQoKCkgPT4gKHRoaXMuc2VsZWN0ZWQoKSA/ICdjaGVja2VkJyA6ICd1bmNoZWNrZWQnKSk7XG5cdHB1YmxpYyByZWFkb25seSBkaXIgPSB0aGlzLl9zZWxlY3QuZGlyO1xuXG5cdHB1YmxpYyBzZWxlY3QoKTogdm9pZCB7XG5cdFx0aWYgKHRoaXMuX2Rpc2FibGVkKCkpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHR0aGlzLl9zZWxlY3Quc2VsZWN0T3B0aW9uKHRoaXMudmFsdWUoKSk7XG5cdH1cblxuXHQvKiogR2V0IHRoZSBsYWJlbCBmb3IgdGhpcyBlbGVtZW50IHdoaWNoIGlzIHJlcXVpcmVkIGJ5IHRoZSBGb2N1c2FibGVPcHRpb24gaW50ZXJmYWNlLiAqL1xuXHRnZXRMYWJlbCgpOiBzdHJpbmcge1xuXHRcdHJldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC50ZXh0Q29udGVudD8udHJpbSgpID8/ICcnO1xuXHR9XG5cblx0c2V0QWN0aXZlU3R5bGVzKCk6IHZvaWQge1xuXHRcdHRoaXMuX2FjdGl2ZS5zZXQodHJ1ZSk7XG5cblx0XHQvLyBzY3JvbGwgdGhlIG9wdGlvbiBpbnRvIHZpZXcgaWYgaXQgaXMgbm90IHZpc2libGVcblx0XHR0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zY3JvbGxJbnRvVmlldyh7IGJsb2NrOiAnbmVhcmVzdCcgfSk7XG5cdH1cblxuXHRzZXRJbmFjdGl2ZVN0eWxlcygpOiB2b2lkIHtcblx0XHR0aGlzLl9hY3RpdmUuc2V0KGZhbHNlKTtcblx0fVxuXG5cdHByb3RlY3RlZCBhY3RpdmF0ZSgpOiB2b2lkIHtcblx0XHRpZiAodGhpcy5fZGlzYWJsZWQoKSkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHR0aGlzLl9jb250ZW50LnNldEFjdGl2ZU9wdGlvbih0aGlzKTtcblx0fVxufVxuIl19
@@ -0,0 +1,16 @@
1
+ import { Directive, inject, TemplateRef } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class BrnSelectPlaceholderDirective {
4
+ /** @internale */
5
+ templateRef = inject(TemplateRef);
6
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnSelectPlaceholderDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
7
+ /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.5", type: BrnSelectPlaceholderDirective, isStandalone: true, selector: "[brnSelectPlaceholder], [hlmSelectPlaceholder]", ngImport: i0 });
8
+ }
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnSelectPlaceholderDirective, decorators: [{
10
+ type: Directive,
11
+ args: [{
12
+ standalone: true,
13
+ selector: '[brnSelectPlaceholder], [hlmSelectPlaceholder]',
14
+ }]
15
+ }] });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLXNlbGVjdC1wbGFjZWhvbGRlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2JyYWluL3NlbGVjdC9zcmMvbGliL2Jybi1zZWxlY3QtcGxhY2Vob2xkZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNL0QsTUFBTSxPQUFPLDZCQUE2QjtJQUN6QyxpQkFBaUI7SUFDRCxXQUFXLEdBQUcsTUFBTSxDQUFvQixXQUFXLENBQUMsQ0FBQzswSEFGekQsNkJBQTZCOzhHQUE3Qiw2QkFBNkI7OzJGQUE3Qiw2QkFBNkI7a0JBSnpDLFNBQVM7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxnREFBZ0Q7aUJBQzFEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBpbmplY3QsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRzZWxlY3RvcjogJ1ticm5TZWxlY3RQbGFjZWhvbGRlcl0sIFtobG1TZWxlY3RQbGFjZWhvbGRlcl0nLFxufSlcbmV4cG9ydCBjbGFzcyBCcm5TZWxlY3RQbGFjZWhvbGRlckRpcmVjdGl2ZSB7XG5cdC8qKiBAaW50ZXJuYWxlICovXG5cdHB1YmxpYyByZWFkb25seSB0ZW1wbGF0ZVJlZiA9IGluamVjdDxUZW1wbGF0ZVJlZjx2b2lkPj4oVGVtcGxhdGVSZWYpO1xufVxuIl19
@@ -0,0 +1,67 @@
1
+ import { isPlatformBrowser } from '@angular/common';
2
+ import { Directive, ElementRef, PLATFORM_ID, computed, inject } from '@angular/core';
3
+ import { NgControl } from '@angular/forms';
4
+ import { injectBrnSelect } from './brn-select.token';
5
+ import * as i0 from "@angular/core";
6
+ export class BrnSelectTriggerDirective {
7
+ _elementRef = inject(ElementRef);
8
+ _select = injectBrnSelect();
9
+ _ngControl = inject(NgControl, { optional: true });
10
+ _platform = inject(PLATFORM_ID);
11
+ _triggerId = computed(() => `${this._select.id()}--trigger`);
12
+ _contentId = computed(() => `${this._select.id()}--content`);
13
+ _disabled = computed(() => this._select.disabled() || this._select._formDisabled());
14
+ _labelledBy = computed(() => {
15
+ const value = this._select.value();
16
+ if (Array.isArray(value) && value.length > 0) {
17
+ return `${this._select.labelId()} ${this._select.id()}--value`;
18
+ }
19
+ return this._select.labelId();
20
+ });
21
+ _resizeObserver;
22
+ constructor() {
23
+ this._select.trigger.set(this);
24
+ }
25
+ ngAfterViewInit() {
26
+ this._select.triggerWidth.set(this._elementRef.nativeElement.offsetWidth);
27
+ // if we are on the client, listen for element resize events
28
+ if (isPlatformBrowser(this._platform)) {
29
+ this._resizeObserver = new ResizeObserver(() => this._select.triggerWidth.set(this._elementRef.nativeElement.offsetWidth));
30
+ this._resizeObserver.observe(this._elementRef.nativeElement);
31
+ }
32
+ }
33
+ ngOnDestroy() {
34
+ this._resizeObserver?.disconnect();
35
+ }
36
+ focus() {
37
+ this._elementRef.nativeElement.focus();
38
+ }
39
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnSelectTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
40
+ /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.5", type: BrnSelectTriggerDirective, isStandalone: true, selector: "[brnSelectTrigger]", host: { attributes: { "type": "button", "role": "combobox", "aria-autocomplete": "none" }, listeners: { "keydown.ArrowDown": "_select.show()" }, properties: { "attr.id": "_triggerId()", "disabled": "_disabled()", "attr.aria-expanded": "_select.open()", "attr.aria-controls": "_contentId()", "attr.aria-labelledBy": "_labelledBy()", "attr.dir": "_select.dir()", "class.ng-invalid": "_ngControl?.invalid || null", "class.ng-dirty": "_ngControl?.dirty || null", "class.ng-valid": "_ngControl?.valid || null", "class.ng-touched": "_ngControl?.touched || null", "class.ng-untouched": "_ngControl?.untouched || null", "class.ng-pristine": "_ngControl?.pristine || null" } }, ngImport: i0 });
41
+ }
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnSelectTriggerDirective, decorators: [{
43
+ type: Directive,
44
+ args: [{
45
+ selector: '[brnSelectTrigger]',
46
+ standalone: true,
47
+ host: {
48
+ type: 'button',
49
+ role: 'combobox',
50
+ '[attr.id]': '_triggerId()',
51
+ '[disabled]': '_disabled()',
52
+ '[attr.aria-expanded]': '_select.open()',
53
+ '[attr.aria-controls]': '_contentId()',
54
+ '[attr.aria-labelledBy]': '_labelledBy()',
55
+ 'aria-autocomplete': 'none',
56
+ '[attr.dir]': '_select.dir()',
57
+ '[class.ng-invalid]': '_ngControl?.invalid || null',
58
+ '[class.ng-dirty]': '_ngControl?.dirty || null',
59
+ '[class.ng-valid]': '_ngControl?.valid || null',
60
+ '[class.ng-touched]': '_ngControl?.touched || null',
61
+ '[class.ng-untouched]': '_ngControl?.untouched || null',
62
+ '[class.ng-pristine]': '_ngControl?.pristine || null',
63
+ '(keydown.ArrowDown)': '_select.show()',
64
+ },
65
+ }]
66
+ }], ctorParameters: () => [] });
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLXNlbGVjdC10cmlnZ2VyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYnJhaW4vc2VsZWN0L3NyYy9saWIvYnJuLXNlbGVjdC10cmlnZ2VyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQXNCLFNBQVMsRUFBRSxVQUFVLEVBQWEsV0FBVyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEgsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUF3QnJELE1BQU0sT0FBTyx5QkFBeUI7SUFDcEIsV0FBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMvQixPQUFPLEdBQUcsZUFBZSxFQUFLLENBQUM7SUFDL0IsVUFBVSxHQUFHLE1BQU0sQ0FBQyxTQUFTLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNyRCxTQUFTLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzlCLFVBQVUsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUM3RCxVQUFVLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDN0QsU0FBUyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztJQUNwRixXQUFXLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtRQUM5QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRW5DLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzlDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLFNBQVMsQ0FBQztRQUNoRSxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQy9CLENBQUMsQ0FBQyxDQUFDO0lBRUssZUFBZSxDQUFrQjtJQUV6QztRQUNDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsZUFBZTtRQUNkLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUUxRSw0REFBNEQ7UUFDNUQsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUN2QyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksY0FBYyxDQUFDLEdBQUcsRUFBRSxDQUM5QyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQ3pFLENBQUM7WUFFRixJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzlELENBQUM7SUFDRixDQUFDO0lBRUQsV0FBVztRQUNWLElBQUksQ0FBQyxlQUFlLEVBQUUsVUFBVSxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVELEtBQUs7UUFDSixJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN4QyxDQUFDOzBIQTFDVyx5QkFBeUI7OEdBQXpCLHlCQUF5Qjs7MkZBQXpCLHlCQUF5QjtrQkF0QnJDLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLElBQUksRUFBRTt3QkFDTCxJQUFJLEVBQUUsUUFBUTt3QkFDZCxJQUFJLEVBQUUsVUFBVTt3QkFDaEIsV0FBVyxFQUFFLGNBQWM7d0JBQzNCLFlBQVksRUFBRSxhQUFhO3dCQUMzQixzQkFBc0IsRUFBRSxnQkFBZ0I7d0JBQ3hDLHNCQUFzQixFQUFFLGNBQWM7d0JBQ3RDLHdCQUF3QixFQUFFLGVBQWU7d0JBQ3pDLG1CQUFtQixFQUFFLE1BQU07d0JBQzNCLFlBQVksRUFBRSxlQUFlO3dCQUM3QixvQkFBb0IsRUFBRSw2QkFBNkI7d0JBQ25ELGtCQUFrQixFQUFFLDJCQUEyQjt3QkFDL0Msa0JBQWtCLEVBQUUsMkJBQTJCO3dCQUMvQyxvQkFBb0IsRUFBRSw2QkFBNkI7d0JBQ25ELHNCQUFzQixFQUFFLCtCQUErQjt3QkFDdkQscUJBQXFCLEVBQUUsOEJBQThCO3dCQUNyRCxxQkFBcUIsRUFBRSxnQkFBZ0I7cUJBQ3ZDO2lCQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgdHlwZSBBZnRlclZpZXdJbml0LCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIE9uRGVzdHJveSwgUExBVEZPUk1fSUQsIGNvbXB1dGVkLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGluamVjdEJyblNlbGVjdCB9IGZyb20gJy4vYnJuLXNlbGVjdC50b2tlbic7XG5cbkBEaXJlY3RpdmUoe1xuXHRzZWxlY3RvcjogJ1ticm5TZWxlY3RUcmlnZ2VyXScsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdGhvc3Q6IHtcblx0XHR0eXBlOiAnYnV0dG9uJyxcblx0XHRyb2xlOiAnY29tYm9ib3gnLFxuXHRcdCdbYXR0ci5pZF0nOiAnX3RyaWdnZXJJZCgpJyxcblx0XHQnW2Rpc2FibGVkXSc6ICdfZGlzYWJsZWQoKScsXG5cdFx0J1thdHRyLmFyaWEtZXhwYW5kZWRdJzogJ19zZWxlY3Qub3BlbigpJyxcblx0XHQnW2F0dHIuYXJpYS1jb250cm9sc10nOiAnX2NvbnRlbnRJZCgpJyxcblx0XHQnW2F0dHIuYXJpYS1sYWJlbGxlZEJ5XSc6ICdfbGFiZWxsZWRCeSgpJyxcblx0XHQnYXJpYS1hdXRvY29tcGxldGUnOiAnbm9uZScsXG5cdFx0J1thdHRyLmRpcl0nOiAnX3NlbGVjdC5kaXIoKScsXG5cdFx0J1tjbGFzcy5uZy1pbnZhbGlkXSc6ICdfbmdDb250cm9sPy5pbnZhbGlkIHx8IG51bGwnLFxuXHRcdCdbY2xhc3MubmctZGlydHldJzogJ19uZ0NvbnRyb2w/LmRpcnR5IHx8IG51bGwnLFxuXHRcdCdbY2xhc3MubmctdmFsaWRdJzogJ19uZ0NvbnRyb2w/LnZhbGlkIHx8IG51bGwnLFxuXHRcdCdbY2xhc3MubmctdG91Y2hlZF0nOiAnX25nQ29udHJvbD8udG91Y2hlZCB8fCBudWxsJyxcblx0XHQnW2NsYXNzLm5nLXVudG91Y2hlZF0nOiAnX25nQ29udHJvbD8udW50b3VjaGVkIHx8IG51bGwnLFxuXHRcdCdbY2xhc3MubmctcHJpc3RpbmVdJzogJ19uZ0NvbnRyb2w/LnByaXN0aW5lIHx8IG51bGwnLFxuXHRcdCcoa2V5ZG93bi5BcnJvd0Rvd24pJzogJ19zZWxlY3Quc2hvdygpJyxcblx0fSxcbn0pXG5leHBvcnQgY2xhc3MgQnJuU2VsZWN0VHJpZ2dlckRpcmVjdGl2ZTxUPiBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cdHByaXZhdGUgcmVhZG9ubHkgX2VsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG5cdHByb3RlY3RlZCByZWFkb25seSBfc2VsZWN0ID0gaW5qZWN0QnJuU2VsZWN0PFQ+KCk7XG5cdHByb3RlY3RlZCByZWFkb25seSBfbmdDb250cm9sID0gaW5qZWN0KE5nQ29udHJvbCwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblx0cHJpdmF0ZSByZWFkb25seSBfcGxhdGZvcm0gPSBpbmplY3QoUExBVEZPUk1fSUQpO1xuXHRwcm90ZWN0ZWQgcmVhZG9ubHkgX3RyaWdnZXJJZCA9IGNvbXB1dGVkKCgpID0+IGAke3RoaXMuX3NlbGVjdC5pZCgpfS0tdHJpZ2dlcmApO1xuXHRwcm90ZWN0ZWQgcmVhZG9ubHkgX2NvbnRlbnRJZCA9IGNvbXB1dGVkKCgpID0+IGAke3RoaXMuX3NlbGVjdC5pZCgpfS0tY29udGVudGApO1xuXHRwcm90ZWN0ZWQgcmVhZG9ubHkgX2Rpc2FibGVkID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5fc2VsZWN0LmRpc2FibGVkKCkgfHwgdGhpcy5fc2VsZWN0Ll9mb3JtRGlzYWJsZWQoKSk7XG5cdHByb3RlY3RlZCByZWFkb25seSBfbGFiZWxsZWRCeSA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCB2YWx1ZSA9IHRoaXMuX3NlbGVjdC52YWx1ZSgpO1xuXG5cdFx0aWYgKEFycmF5LmlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmxlbmd0aCA+IDApIHtcblx0XHRcdHJldHVybiBgJHt0aGlzLl9zZWxlY3QubGFiZWxJZCgpfSAke3RoaXMuX3NlbGVjdC5pZCgpfS0tdmFsdWVgO1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcy5fc2VsZWN0LmxhYmVsSWQoKTtcblx0fSk7XG5cblx0cHJpdmF0ZSBfcmVzaXplT2JzZXJ2ZXI/OiBSZXNpemVPYnNlcnZlcjtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHR0aGlzLl9zZWxlY3QudHJpZ2dlci5zZXQodGhpcyk7XG5cdH1cblxuXHRuZ0FmdGVyVmlld0luaXQoKSB7XG5cdFx0dGhpcy5fc2VsZWN0LnRyaWdnZXJXaWR0aC5zZXQodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoKTtcblxuXHRcdC8vIGlmIHdlIGFyZSBvbiB0aGUgY2xpZW50LCBsaXN0ZW4gZm9yIGVsZW1lbnQgcmVzaXplIGV2ZW50c1xuXHRcdGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLl9wbGF0Zm9ybSkpIHtcblx0XHRcdHRoaXMuX3Jlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKCgpID0+XG5cdFx0XHRcdHRoaXMuX3NlbGVjdC50cmlnZ2VyV2lkdGguc2V0KHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCksXG5cdFx0XHQpO1xuXG5cdFx0XHR0aGlzLl9yZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG5cdFx0fVxuXHR9XG5cblx0bmdPbkRlc3Ryb3koKTogdm9pZCB7XG5cdFx0dGhpcy5fcmVzaXplT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcblx0fVxuXG5cdGZvY3VzKCk6IHZvaWQge1xuXHRcdHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuXHR9XG59XG4iXX0=