@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.
@@ -1,46 +1,68 @@
1
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, computed, inject, input } from '@angular/core';
2
- import { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';
3
- import { BrnSelectService } from './brn-select.service';
1
+ import { NgTemplateOutlet } from '@angular/common';
2
+ import { ChangeDetectionStrategy, Component, computed, contentChild, input } from '@angular/core';
3
+ import { BrnSelectPlaceholderDirective } from './brn-select-placeholder.directive';
4
+ import { BrnSelectValueDirective } from './brn-select-value.directive';
5
+ import { injectBrnSelect } from './brn-select.token';
4
6
  import * as i0 from "@angular/core";
5
7
  export class BrnSelectValueComponent {
6
- _selectService = inject(BrnSelectService);
7
- id = computed(() => `${this._selectService.id()}--value`);
8
- placeholder = computed(() => this._selectService.placeholder());
9
- value = null;
8
+ _select = injectBrnSelect();
9
+ id = computed(() => `${this._select.id()}--value`);
10
+ placeholder = computed(() => this._select.placeholder());
11
+ _showPlaceholder = computed(() => this.value() === null || this.value() === undefined || this.value() === '');
12
+ /** Allow a custom value template */
13
+ customValueTemplate = contentChild(BrnSelectValueDirective, { descendants: true });
14
+ customPlaceholderTemplate = contentChild(BrnSelectPlaceholderDirective, { descendants: true });
15
+ value = computed(() => {
16
+ const value = this._values();
17
+ if (value.length === 0) {
18
+ return null;
19
+ }
20
+ // remove any selected values that are not in the options list
21
+ const existingOptions = value.filter((val) => this._select.options().some((option) => option.value() === val));
22
+ const selectedOption = existingOptions.map((val) => this._select.options().find((option) => option.value() === val));
23
+ if (selectedOption.length === 0) {
24
+ return null;
25
+ }
26
+ const selectedLabels = selectedOption.map((option) => option?.getLabel());
27
+ if (this._select.dir() === 'rtl') {
28
+ selectedLabels.reverse();
29
+ }
30
+ return this.transformFn()(selectedLabels);
31
+ });
32
+ /** Normalize the values as an array */
33
+ _values = computed(() => Array.isArray(this._select.value()) ? this._select.value() : [this._select.value()]);
10
34
  transformFn = input((values) => (values ?? []).join(', '));
11
- constructor() {
12
- const cdr = inject(ChangeDetectorRef);
13
- // In certain cases (when using a computed signal for value) where the value of the select and the options are
14
- // changed dynamically, the template does not update until the next frame. To work around this we can use a simple
15
- // string variable in the template and manually trigger change detection when we update it.
16
- toObservable(this._selectService.selectedOptions)
17
- .pipe(takeUntilDestroyed())
18
- .subscribe((value) => {
19
- if (value.length === 0) {
20
- this.value = null;
21
- cdr.detectChanges();
22
- return;
23
- }
24
- const selectedLabels = value.map((selectedOption) => selectedOption?.getLabel());
25
- if (this._selectService.dir() === 'rtl') {
26
- selectedLabels.reverse();
27
- }
28
- const result = this.transformFn()(selectedLabels);
29
- this.value = result;
30
- cdr.detectChanges();
31
- });
32
- }
33
35
  /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnSelectValueComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
34
- /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.5", type: BrnSelectValueComponent, isStandalone: true, selector: "brn-select-value, hlm-select-value", inputs: { transformFn: { classPropertyName: "transformFn", publicName: "transformFn", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "id": "id()" } }, ngImport: i0, template: `
35
- {{ value || placeholder() }}
36
- `, isInline: true, styles: [":host{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;white-space:nowrap;pointer-events:none}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
36
+ /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: BrnSelectValueComponent, isStandalone: true, selector: "brn-select-value, hlm-select-value", inputs: { transformFn: { classPropertyName: "transformFn", publicName: "transformFn", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "id": "id()" } }, queries: [{ propertyName: "customValueTemplate", first: true, predicate: BrnSelectValueDirective, descendants: true, isSignal: true }, { propertyName: "customPlaceholderTemplate", first: true, predicate: BrnSelectPlaceholderDirective, descendants: true, isSignal: true }], ngImport: i0, template: `
37
+ @if (_showPlaceholder()) {
38
+ <ng-container [ngTemplateOutlet]="customPlaceholderTemplate()?.templateRef ?? defaultPlaceholderTemplate" />
39
+ } @else {
40
+ <ng-container
41
+ [ngTemplateOutlet]="customValueTemplate()?.templateRef ?? defaultValueTemplate"
42
+ [ngTemplateOutletContext]="{ $implicit: _select.value() }"
43
+ />
44
+ }
45
+
46
+ <ng-template #defaultValueTemplate>{{ value() }}</ng-template>
47
+ <ng-template #defaultPlaceholderTemplate>{{ placeholder() }}</ng-template>
48
+ `, isInline: true, styles: [":host{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;white-space:nowrap;pointer-events:none}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
37
49
  }
38
50
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnSelectValueComponent, decorators: [{
39
51
  type: Component,
40
- args: [{ selector: 'brn-select-value, hlm-select-value', template: `
41
- {{ value || placeholder() }}
52
+ args: [{ selector: 'brn-select-value, hlm-select-value', imports: [NgTemplateOutlet], template: `
53
+ @if (_showPlaceholder()) {
54
+ <ng-container [ngTemplateOutlet]="customPlaceholderTemplate()?.templateRef ?? defaultPlaceholderTemplate" />
55
+ } @else {
56
+ <ng-container
57
+ [ngTemplateOutlet]="customValueTemplate()?.templateRef ?? defaultValueTemplate"
58
+ [ngTemplateOutletContext]="{ $implicit: _select.value() }"
59
+ />
60
+ }
61
+
62
+ <ng-template #defaultValueTemplate>{{ value() }}</ng-template>
63
+ <ng-template #defaultPlaceholderTemplate>{{ placeholder() }}</ng-template>
42
64
  `, host: {
43
65
  '[id]': 'id()',
44
66
  }, standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;white-space:nowrap;pointer-events:none}\n"] }]
45
- }], ctorParameters: () => [] });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLXNlbGVjdC12YWx1ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2JyYWluL3NlbGVjdC9zcmMvbGliL2Jybi1zZWxlY3QtdmFsdWUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0csT0FBTyxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzlFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQXdCeEQsTUFBTSxPQUFPLHVCQUF1QjtJQUNsQixjQUFjLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFFM0MsRUFBRSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzFELFdBQVcsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ3pFLEtBQUssR0FBa0IsSUFBSSxDQUFDO0lBRW5CLFdBQVcsR0FBRyxLQUFLLENBQTBDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUVwSDtRQUNDLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRXRDLDhHQUE4RztRQUM5RyxrSEFBa0g7UUFDbEgsMkZBQTJGO1FBQzNGLFlBQVksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQzthQUMvQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQzthQUMxQixTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNwQixJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO2dCQUNsQixHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ3BCLE9BQU87WUFDUixDQUFDO1lBQ0QsTUFBTSxjQUFjLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQUMsY0FBYyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFFakYsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxLQUFLLEtBQUssRUFBRSxDQUFDO2dCQUN6QyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDMUIsQ0FBQztZQUNELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUNsRCxJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQztZQUNwQixHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzBIQWhDVyx1QkFBdUI7OEdBQXZCLHVCQUF1Qiw0UkFwQnpCOztFQUVUOzsyRkFrQlcsdUJBQXVCO2tCQXRCbkMsU0FBUzsrQkFDQyxvQ0FBb0MsWUFDcEM7O0VBRVQsUUFDSzt3QkFDTCxNQUFNLEVBQUUsTUFBTTtxQkFDZCxjQVlXLElBQUksbUJBQ0MsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkLCB0b09ic2VydmFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBCcm5TZWxlY3RTZXJ2aWNlIH0gZnJvbSAnLi9icm4tc2VsZWN0LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdicm4tc2VsZWN0LXZhbHVlLCBobG0tc2VsZWN0LXZhbHVlJyxcblx0dGVtcGxhdGU6IGBcblx0XHR7eyB2YWx1ZSB8fCBwbGFjZWhvbGRlcigpIH19XG5cdGAsXG5cdGhvc3Q6IHtcblx0XHQnW2lkXSc6ICdpZCgpJyxcblx0fSxcblx0c3R5bGVzOiBbXG5cdFx0YFxuXHRcdFx0Omhvc3Qge1xuXHRcdFx0XHRkaXNwbGF5OiAtd2Via2l0LWJveDtcblx0XHRcdFx0LXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcblx0XHRcdFx0LXdlYmtpdC1saW5lLWNsYW1wOiAxO1xuXHRcdFx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHRcdFx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0XHRcdH1cblx0XHRgLFxuXHRdLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQnJuU2VsZWN0VmFsdWVDb21wb25lbnQge1xuXHRwcml2YXRlIHJlYWRvbmx5IF9zZWxlY3RTZXJ2aWNlID0gaW5qZWN0KEJyblNlbGVjdFNlcnZpY2UpO1xuXG5cdHB1YmxpYyByZWFkb25seSBpZCA9IGNvbXB1dGVkKCgpID0+IGAke3RoaXMuX3NlbGVjdFNlcnZpY2UuaWQoKX0tLXZhbHVlYCk7XG5cdHB1YmxpYyByZWFkb25seSBwbGFjZWhvbGRlciA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX3NlbGVjdFNlcnZpY2UucGxhY2Vob2xkZXIoKSk7XG5cdHB1YmxpYyB2YWx1ZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cblx0cHVibGljIHJlYWRvbmx5IHRyYW5zZm9ybUZuID0gaW5wdXQ8KHZhbHVlczogKHN0cmluZyB8IHVuZGVmaW5lZClbXSkgPT4gYW55PigodmFsdWVzKSA9PiAodmFsdWVzID8/IFtdKS5qb2luKCcsICcpKTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRjb25zdCBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG5cdFx0Ly8gSW4gY2VydGFpbiBjYXNlcyAod2hlbiB1c2luZyBhIGNvbXB1dGVkIHNpZ25hbCBmb3IgdmFsdWUpIHdoZXJlIHRoZSB2YWx1ZSBvZiB0aGUgc2VsZWN0IGFuZCB0aGUgb3B0aW9ucyBhcmVcblx0XHQvLyBjaGFuZ2VkIGR5bmFtaWNhbGx5LCB0aGUgdGVtcGxhdGUgZG9lcyBub3QgdXBkYXRlIHVudGlsIHRoZSBuZXh0IGZyYW1lLiBUbyB3b3JrIGFyb3VuZCB0aGlzIHdlIGNhbiB1c2UgYSBzaW1wbGVcblx0XHQvLyBzdHJpbmcgdmFyaWFibGUgaW4gdGhlIHRlbXBsYXRlIGFuZCBtYW51YWxseSB0cmlnZ2VyIGNoYW5nZSBkZXRlY3Rpb24gd2hlbiB3ZSB1cGRhdGUgaXQuXG5cdFx0dG9PYnNlcnZhYmxlKHRoaXMuX3NlbGVjdFNlcnZpY2Uuc2VsZWN0ZWRPcHRpb25zKVxuXHRcdFx0LnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpXG5cdFx0XHQuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRpZiAodmFsdWUubGVuZ3RoID09PSAwKSB7XG5cdFx0XHRcdFx0dGhpcy52YWx1ZSA9IG51bGw7XG5cdFx0XHRcdFx0Y2RyLmRldGVjdENoYW5nZXMoKTtcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblx0XHRcdFx0Y29uc3Qgc2VsZWN0ZWRMYWJlbHMgPSB2YWx1ZS5tYXAoKHNlbGVjdGVkT3B0aW9uKSA9PiBzZWxlY3RlZE9wdGlvbj8uZ2V0TGFiZWwoKSk7XG5cblx0XHRcdFx0aWYgKHRoaXMuX3NlbGVjdFNlcnZpY2UuZGlyKCkgPT09ICdydGwnKSB7XG5cdFx0XHRcdFx0c2VsZWN0ZWRMYWJlbHMucmV2ZXJzZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGNvbnN0IHJlc3VsdCA9IHRoaXMudHJhbnNmb3JtRm4oKShzZWxlY3RlZExhYmVscyk7XG5cdFx0XHRcdHRoaXMudmFsdWUgPSByZXN1bHQ7XG5cdFx0XHRcdGNkci5kZXRlY3RDaGFuZ2VzKCk7XG5cdFx0XHR9KTtcblx0fVxufVxuIl19
67
+ }] });
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLXNlbGVjdC12YWx1ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2JyYWluL3NlbGVjdC9zcmMvbGliL2Jybi1zZWxlY3QtdmFsdWUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEcsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbkYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQW1DckQsTUFBTSxPQUFPLHVCQUF1QjtJQUNoQixPQUFPLEdBQUcsZUFBZSxFQUFLLENBQUM7SUFDbEMsRUFBRSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ25ELFdBQVcsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBRXRELGdCQUFnQixHQUFHLFFBQVEsQ0FDN0MsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQ2hGLENBQUM7SUFFRixvQ0FBb0M7SUFDakIsbUJBQW1CLEdBQUcsWUFBWSxDQUFDLHVCQUF1QixFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDbkYseUJBQXlCLEdBQUcsWUFBWSxDQUFDLDZCQUE2QixFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFFL0YsS0FBSyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7UUFDeEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRTdCLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN4QixPQUFPLElBQUksQ0FBQztRQUNiLENBQUM7UUFFRCw4REFBOEQ7UUFDOUQsTUFBTSxlQUFlLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQy9HLE1BQU0sY0FBYyxHQUFHLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUNsRCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxLQUFLLEdBQUcsQ0FBQyxDQUMvRCxDQUFDO1FBRUYsSUFBSSxjQUFjLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2pDLE9BQU8sSUFBSSxDQUFDO1FBQ2IsQ0FBQztRQUVELE1BQU0sY0FBYyxHQUFHLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBRTFFLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUNsQyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDMUIsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzNDLENBQUMsQ0FBQyxDQUFDO0lBRUgsdUNBQXVDO0lBQ3BCLE9BQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQzFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBVSxDQUFDLENBQUMsQ0FBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQVMsQ0FDckcsQ0FBQztJQUVjLFdBQVcsR0FBRyxLQUFLLENBQTBDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQzswSEEzQ3hHLHVCQUF1Qjs4R0FBdkIsdUJBQXVCLDZVQVVtQix1QkFBdUIsNEdBQ2pCLDZCQUE2QixnRUF6Qy9FOzs7Ozs7Ozs7Ozs7RUFZVCw4TEFiUyxnQkFBZ0I7OzJGQStCZCx1QkFBdUI7a0JBakNuQyxTQUFTOytCQUNDLG9DQUFvQyxXQUNyQyxDQUFDLGdCQUFnQixDQUFDLFlBQ2pCOzs7Ozs7Ozs7Ozs7RUFZVCxRQUNLO3dCQUNMLE1BQU0sRUFBRSxNQUFNO3FCQUNkLGNBWVcsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgY29udGVudENoaWxkLCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnJuU2VsZWN0UGxhY2Vob2xkZXJEaXJlY3RpdmUgfSBmcm9tICcuL2Jybi1zZWxlY3QtcGxhY2Vob2xkZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IEJyblNlbGVjdFZhbHVlRGlyZWN0aXZlIH0gZnJvbSAnLi9icm4tc2VsZWN0LXZhbHVlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBpbmplY3RCcm5TZWxlY3QgfSBmcm9tICcuL2Jybi1zZWxlY3QudG9rZW4nO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdicm4tc2VsZWN0LXZhbHVlLCBobG0tc2VsZWN0LXZhbHVlJyxcblx0aW1wb3J0czogW05nVGVtcGxhdGVPdXRsZXRdLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdEBpZiAoX3Nob3dQbGFjZWhvbGRlcigpKSB7XG5cdFx0XHQ8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImN1c3RvbVBsYWNlaG9sZGVyVGVtcGxhdGUoKT8udGVtcGxhdGVSZWYgPz8gZGVmYXVsdFBsYWNlaG9sZGVyVGVtcGxhdGVcIiAvPlxuXHRcdH0gQGVsc2Uge1xuXHRcdFx0PG5nLWNvbnRhaW5lclxuXHRcdFx0XHRbbmdUZW1wbGF0ZU91dGxldF09XCJjdXN0b21WYWx1ZVRlbXBsYXRlKCk/LnRlbXBsYXRlUmVmID8/IGRlZmF1bHRWYWx1ZVRlbXBsYXRlXCJcblx0XHRcdFx0W25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBfc2VsZWN0LnZhbHVlKCkgfVwiXG5cdFx0XHQvPlxuXHRcdH1cblxuXHRcdDxuZy10ZW1wbGF0ZSAjZGVmYXVsdFZhbHVlVGVtcGxhdGU+e3sgdmFsdWUoKSB9fTwvbmctdGVtcGxhdGU+XG5cdFx0PG5nLXRlbXBsYXRlICNkZWZhdWx0UGxhY2Vob2xkZXJUZW1wbGF0ZT57eyBwbGFjZWhvbGRlcigpIH19PC9uZy10ZW1wbGF0ZT5cblx0YCxcblx0aG9zdDoge1xuXHRcdCdbaWRdJzogJ2lkKCknLFxuXHR9LFxuXHRzdHlsZXM6IFtcblx0XHRgXG5cdFx0XHQ6aG9zdCB7XG5cdFx0XHRcdGRpc3BsYXk6IC13ZWJraXQtYm94O1xuXHRcdFx0XHQtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuXHRcdFx0XHQtd2Via2l0LWxpbmUtY2xhbXA6IDE7XG5cdFx0XHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdFx0XHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdFx0fVxuXHRcdGAsXG5cdF0sXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBCcm5TZWxlY3RWYWx1ZUNvbXBvbmVudDxUPiB7XG5cdHByb3RlY3RlZCByZWFkb25seSBfc2VsZWN0ID0gaW5qZWN0QnJuU2VsZWN0PFQ+KCk7XG5cdHB1YmxpYyByZWFkb25seSBpZCA9IGNvbXB1dGVkKCgpID0+IGAke3RoaXMuX3NlbGVjdC5pZCgpfS0tdmFsdWVgKTtcblx0cHVibGljIHJlYWRvbmx5IHBsYWNlaG9sZGVyID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5fc2VsZWN0LnBsYWNlaG9sZGVyKCkpO1xuXG5cdHByb3RlY3RlZCByZWFkb25seSBfc2hvd1BsYWNlaG9sZGVyID0gY29tcHV0ZWQoXG5cdFx0KCkgPT4gdGhpcy52YWx1ZSgpID09PSBudWxsIHx8IHRoaXMudmFsdWUoKSA9PT0gdW5kZWZpbmVkIHx8IHRoaXMudmFsdWUoKSA9PT0gJycsXG5cdCk7XG5cblx0LyoqIEFsbG93IGEgY3VzdG9tIHZhbHVlIHRlbXBsYXRlICovXG5cdHByb3RlY3RlZCByZWFkb25seSBjdXN0b21WYWx1ZVRlbXBsYXRlID0gY29udGVudENoaWxkKEJyblNlbGVjdFZhbHVlRGlyZWN0aXZlLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pO1xuXHRwcm90ZWN0ZWQgcmVhZG9ubHkgY3VzdG9tUGxhY2Vob2xkZXJUZW1wbGF0ZSA9IGNvbnRlbnRDaGlsZChCcm5TZWxlY3RQbGFjZWhvbGRlckRpcmVjdGl2ZSwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KTtcblxuXHRwcm90ZWN0ZWQgcmVhZG9ubHkgdmFsdWUgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0Y29uc3QgdmFsdWUgPSB0aGlzLl92YWx1ZXMoKTtcblxuXHRcdGlmICh2YWx1ZS5sZW5ndGggPT09IDApIHtcblx0XHRcdHJldHVybiBudWxsO1xuXHRcdH1cblxuXHRcdC8vIHJlbW92ZSBhbnkgc2VsZWN0ZWQgdmFsdWVzIHRoYXQgYXJlIG5vdCBpbiB0aGUgb3B0aW9ucyBsaXN0XG5cdFx0Y29uc3QgZXhpc3RpbmdPcHRpb25zID0gdmFsdWUuZmlsdGVyKCh2YWwpID0+IHRoaXMuX3NlbGVjdC5vcHRpb25zKCkuc29tZSgob3B0aW9uKSA9PiBvcHRpb24udmFsdWUoKSA9PT0gdmFsKSk7XG5cdFx0Y29uc3Qgc2VsZWN0ZWRPcHRpb24gPSBleGlzdGluZ09wdGlvbnMubWFwKCh2YWwpID0+XG5cdFx0XHR0aGlzLl9zZWxlY3Qub3B0aW9ucygpLmZpbmQoKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlKCkgPT09IHZhbCksXG5cdFx0KTtcblxuXHRcdGlmIChzZWxlY3RlZE9wdGlvbi5sZW5ndGggPT09IDApIHtcblx0XHRcdHJldHVybiBudWxsO1xuXHRcdH1cblxuXHRcdGNvbnN0IHNlbGVjdGVkTGFiZWxzID0gc2VsZWN0ZWRPcHRpb24ubWFwKChvcHRpb24pID0+IG9wdGlvbj8uZ2V0TGFiZWwoKSk7XG5cblx0XHRpZiAodGhpcy5fc2VsZWN0LmRpcigpID09PSAncnRsJykge1xuXHRcdFx0c2VsZWN0ZWRMYWJlbHMucmV2ZXJzZSgpO1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcy50cmFuc2Zvcm1GbigpKHNlbGVjdGVkTGFiZWxzKTtcblx0fSk7XG5cblx0LyoqIE5vcm1hbGl6ZSB0aGUgdmFsdWVzIGFzIGFuIGFycmF5ICovXG5cdHByb3RlY3RlZCByZWFkb25seSBfdmFsdWVzID0gY29tcHV0ZWQoKCkgPT5cblx0XHRBcnJheS5pc0FycmF5KHRoaXMuX3NlbGVjdC52YWx1ZSgpKSA/ICh0aGlzLl9zZWxlY3QudmFsdWUoKSBhcyBUW10pIDogKFt0aGlzLl9zZWxlY3QudmFsdWUoKV0gYXMgVFtdKSxcblx0KTtcblxuXHRwdWJsaWMgcmVhZG9ubHkgdHJhbnNmb3JtRm4gPSBpbnB1dDwodmFsdWVzOiAoc3RyaW5nIHwgdW5kZWZpbmVkKVtdKSA9PiBhbnk+KCh2YWx1ZXMpID0+ICh2YWx1ZXMgPz8gW10pLmpvaW4oJywgJykpO1xufVxuIl19
@@ -0,0 +1,16 @@
1
+ import { Directive, inject, TemplateRef } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class BrnSelectValueDirective {
4
+ /** @internale */
5
+ templateRef = inject(TemplateRef);
6
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnSelectValueDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
7
+ /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.5", type: BrnSelectValueDirective, isStandalone: true, selector: "[brnSelectValue], [hlmSelectValue]", ngImport: i0 });
8
+ }
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnSelectValueDirective, decorators: [{
10
+ type: Directive,
11
+ args: [{
12
+ standalone: true,
13
+ selector: '[brnSelectValue], [hlmSelectValue]',
14
+ }]
15
+ }] });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLXNlbGVjdC12YWx1ZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2JyYWluL3NlbGVjdC9zcmMvbGliL2Jybi1zZWxlY3QtdmFsdWUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNL0QsTUFBTSxPQUFPLHVCQUF1QjtJQUNuQyxpQkFBaUI7SUFDRCxXQUFXLEdBQUcsTUFBTSxDQUF3QyxXQUFXLENBQUMsQ0FBQzswSEFGN0UsdUJBQXVCOzhHQUF2Qix1QkFBdUI7OzJGQUF2Qix1QkFBdUI7a0JBSm5DLFNBQVM7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxvQ0FBb0M7aUJBQzlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBpbmplY3QsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRzZWxlY3RvcjogJ1ticm5TZWxlY3RWYWx1ZV0sIFtobG1TZWxlY3RWYWx1ZV0nLFxufSlcbmV4cG9ydCBjbGFzcyBCcm5TZWxlY3RWYWx1ZURpcmVjdGl2ZTxUPiB7XG5cdC8qKiBAaW50ZXJuYWxlICovXG5cdHB1YmxpYyByZWFkb25seSB0ZW1wbGF0ZVJlZiA9IGluamVjdDxUZW1wbGF0ZVJlZjxCcm5TZWxlY3RWYWx1ZUNvbnRleHQ8VD4+PihUZW1wbGF0ZVJlZik7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnJuU2VsZWN0VmFsdWVDb250ZXh0PFQ+IHtcblx0JGltcGxpY2l0OiBUIHwgVFtdO1xufVxuIl19