@spartan-ng/brain 0.0.1-alpha.403 → 0.0.1-alpha.405
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/command/lib/brn-command-item.directive.d.ts +2 -0
- package/command/lib/brn-command-search-input.directive.d.ts +15 -7
- package/esm2022/command/lib/brn-command-item.directive.mjs +8 -4
- package/esm2022/command/lib/brn-command-search-input.directive.mjs +50 -18
- package/esm2022/command/lib/brn-command.directive.mjs +12 -10
- package/fesm2022/spartan-ng-brain-command.mjs +66 -28
- package/fesm2022/spartan-ng-brain-command.mjs.map +1 -1
- package/hlm-tailwind-preset.css +43 -0
- package/package.json +2 -1
|
@@ -26,6 +26,8 @@ export declare class BrnCommandItemDirective implements Highlightable, OnInit {
|
|
|
26
26
|
readonly selected: import("@angular/core").OutputEmitterRef<void>;
|
|
27
27
|
/** @internal Determine if this item is visible based on the current search query */
|
|
28
28
|
readonly visible: import("@angular/core").Signal<boolean>;
|
|
29
|
+
/** @internal Get the value of the item, with check if it has been initialized to avoid errors */
|
|
30
|
+
safeValue: import("@angular/core").Signal<string>;
|
|
29
31
|
/** @internal Get the display value */
|
|
30
32
|
getLabel(): string;
|
|
31
33
|
/** @internal */
|
|
@@ -1,16 +1,24 @@
|
|
|
1
|
+
import { ElementRef, Renderer2 } from '@angular/core';
|
|
2
|
+
import { DefaultValueAccessor } from '@angular/forms';
|
|
1
3
|
import * as i0 from "@angular/core";
|
|
2
|
-
export declare class BrnCommandSearchInputDirective {
|
|
4
|
+
export declare class BrnCommandSearchInputDirective extends DefaultValueAccessor {
|
|
5
|
+
private readonly elementRef;
|
|
3
6
|
private readonly _command;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
+
/** The initial value of the search input */
|
|
8
|
+
readonly value: import("@angular/core").InputSignal<string>;
|
|
9
|
+
/** @internal The mutable value of the search input */
|
|
10
|
+
readonly mutableValue: import("@angular/core").Signal<import("@angular/core").WritableSignal<string>>;
|
|
11
|
+
/** @internal The "real" value of the search input */
|
|
12
|
+
readonly valueState: import("@angular/core").Signal<string>;
|
|
7
13
|
/** The id of the active option */
|
|
8
14
|
protected readonly _activeDescendant: import("@angular/core").WritableSignal<string | undefined>;
|
|
9
|
-
constructor();
|
|
15
|
+
constructor(renderer: Renderer2, elementRef: ElementRef, compositionMode: boolean);
|
|
10
16
|
/** Listen for changes to the input value */
|
|
11
17
|
protected onInput(): void;
|
|
12
18
|
/** Listen for keydown events */
|
|
13
19
|
protected onKeyDown(event: KeyboardEvent): void;
|
|
14
|
-
|
|
15
|
-
|
|
20
|
+
/** CONROL VALUE ACCESSOR */
|
|
21
|
+
writeValue(value: string | null): void;
|
|
22
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<BrnCommandSearchInputDirective, [null, null, { optional: true; }]>;
|
|
23
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<BrnCommandSearchInputDirective, "input[brnCommandSearchInput]", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
16
24
|
}
|
|
@@ -32,14 +32,18 @@ export class BrnCommandItemDirective {
|
|
|
32
32
|
selected = output();
|
|
33
33
|
/** @internal Determine if this item is visible based on the current search query */
|
|
34
34
|
visible = computed(() => {
|
|
35
|
+
return this._command.filter()(this.safeValue(), this._command.search());
|
|
36
|
+
});
|
|
37
|
+
/** @internal Get the value of the item, with check if it has been initialized to avoid errors */
|
|
38
|
+
safeValue = computed(() => {
|
|
35
39
|
if (!this._initialized()) {
|
|
36
|
-
return
|
|
40
|
+
return '';
|
|
37
41
|
}
|
|
38
|
-
return this.
|
|
42
|
+
return this.value();
|
|
39
43
|
});
|
|
40
44
|
/** @internal Get the display value */
|
|
41
45
|
getLabel() {
|
|
42
|
-
return this.
|
|
46
|
+
return this.safeValue();
|
|
43
47
|
}
|
|
44
48
|
/** @internal */
|
|
45
49
|
setActiveStyles() {
|
|
@@ -85,4 +89,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
|
|
|
85
89
|
type: HostListener,
|
|
86
90
|
args: ['click']
|
|
87
91
|
}] } });
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLWNvbW1hbmQtaXRlbS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2JyYWluL2NvbW1hbmQvc3JjL2xpYi9icm4tY29tbWFuZC1pdGVtLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQ04sZ0JBQWdCLEVBQ2hCLFFBQVEsRUFDUixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUVMLE1BQU0sRUFDTixXQUFXLEVBQ1gsTUFBTSxHQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQWtCdkQsTUFBTSxPQUFPLHVCQUF1QjtJQUMzQixNQUFNLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztJQUVOLFNBQVMsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFaEMsV0FBVyxHQUFHLE1BQU0sQ0FBMEIsVUFBVSxDQUFDLENBQUM7SUFFM0UsbUNBQW1DO0lBQ2xCLFFBQVEsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO0lBRS9DLCtCQUErQjtJQUNmLEVBQUUsR0FBRyxLQUFLLENBQUMsb0JBQW9CLHVCQUF1QixDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUVoRixzQ0FBc0M7SUFDdEIsS0FBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQztJQUVqRCxvQ0FBb0M7SUFDcEIsU0FBUyxHQUFHLEtBQUssQ0FBd0IsS0FBSyxFQUFFO1FBQy9ELEtBQUssRUFBRSxVQUFVO1FBQ2pCLFNBQVMsRUFBRSxnQkFBZ0I7S0FDM0IsQ0FBQyxDQUFDO0lBRUgsdUVBQXVFO0lBQ3ZFLElBQVcsUUFBUTtRQUNsQixPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQ7O09BRUc7SUFDYyxZQUFZLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRTlDLG9DQUFvQztJQUNqQixNQUFNLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRTFDLHVDQUF1QztJQUN2QixRQUFRLEdBQUcsTUFBTSxFQUFRLENBQUM7SUFFMUMsb0ZBQW9GO0lBQ3BFLE9BQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3pFLENBQUMsQ0FBQyxDQUFDO0lBRUgsaUdBQWlHO0lBQzFGLFNBQVMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1FBQ2hDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQztZQUMxQixPQUFPLEVBQUUsQ0FBQztRQUNYLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNyQixDQUFDLENBQUMsQ0FBQztJQUVILHNDQUFzQztJQUMvQixRQUFRO1FBQ2QsT0FBTyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELGdCQUFnQjtJQUNoQixlQUFlO1FBQ2QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdEIsNkJBQTZCO1FBQzdCLElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDdkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDckUsQ0FBQztJQUNGLENBQUM7SUFFRCxnQkFBZ0I7SUFDaEIsaUJBQWlCO1FBQ2hCLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFHUyxPQUFPO1FBQ2hCLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxRQUFRO1FBQ1AsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQzswSEEvRVcsdUJBQXVCOzhHQUF2Qix1QkFBdUIsMHpCQWJ4QixDQUFDLHFCQUFxQixDQUFDLHVCQUF1QixDQUFDLENBQUM7OzJGQWEvQyx1QkFBdUI7a0JBaEJuQyxTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixTQUFTLEVBQUUsQ0FBQyxxQkFBcUIseUJBQXlCLENBQUM7b0JBQzNELElBQUksRUFBRTt3QkFDTCxJQUFJLEVBQUUsUUFBUTt3QkFDZCxJQUFJLEVBQUUsUUFBUTt3QkFDZCxRQUFRLEVBQUUsSUFBSTt3QkFDZCxNQUFNLEVBQUUsTUFBTTt3QkFDZCxpQkFBaUIsRUFBRSwyQkFBMkI7d0JBQzlDLG1CQUFtQixFQUFFLFNBQVM7d0JBQzlCLG9CQUFvQixFQUFFLHdCQUF3Qjt3QkFDOUMsc0JBQXNCLEVBQUUsVUFBVTt3QkFDbEMsc0JBQXNCLEVBQUUsc0JBQXNCO3FCQUM5QztpQkFDRDs4QkF5RVUsT0FBTztzQkFEaEIsWUFBWTt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSGlnaGxpZ2h0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuXHRib29sZWFuQXR0cmlidXRlLFxuXHRjb21wdXRlZCxcblx0RGlyZWN0aXZlLFxuXHRFbGVtZW50UmVmLFxuXHRIb3N0TGlzdGVuZXIsXG5cdGluamVjdCxcblx0aW5wdXQsXG5cdE9uSW5pdCxcblx0b3V0cHV0LFxuXHRQTEFURk9STV9JRCxcblx0c2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHByb3ZpZGVCcm5Db21tYW5kSXRlbSB9IGZyb20gJy4vYnJuLWNvbW1hbmQtaXRlbS50b2tlbic7XG5pbXBvcnQgeyBpbmplY3RCcm5Db21tYW5kIH0gZnJvbSAnLi9icm4tY29tbWFuZC50b2tlbic7XG5cbkBEaXJlY3RpdmUoe1xuXHRzZWxlY3RvcjogJ2J1dHRvblticm5Db21tYW5kSXRlbV0nLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRwcm92aWRlcnM6IFtwcm92aWRlQnJuQ29tbWFuZEl0ZW0oQnJuQ29tbWFuZEl0ZW1EaXJlY3RpdmUpXSxcblx0aG9zdDoge1xuXHRcdHR5cGU6ICdidXR0b24nLFxuXHRcdHJvbGU6ICdvcHRpb24nLFxuXHRcdHRhYkluZGV4OiAnLTEnLFxuXHRcdCdbaWRdJzogJ2lkKCknLFxuXHRcdCdbYXR0ci5kaXNhYmxlZF0nOiAnX2Rpc2FibGVkKCkgPyB0cnVlIDogbnVsbCcsXG5cdFx0J1thdHRyLmRhdGEtdmFsdWVdJzogJ3ZhbHVlKCknLFxuXHRcdCdbYXR0ci5kYXRhLWhpZGRlbl0nOiBcIiF2aXNpYmxlKCkgPyAnJyA6IG51bGxcIixcblx0XHQnW2F0dHIuYXJpYS1zZWxlY3RlZF0nOiAnYWN0aXZlKCknLFxuXHRcdCdbYXR0ci5kYXRhLXNlbGVjdGVkXSc6IFwiYWN0aXZlKCkgPyAnJyA6IG51bGxcIixcblx0fSxcbn0pXG5leHBvcnQgY2xhc3MgQnJuQ29tbWFuZEl0ZW1EaXJlY3RpdmUgaW1wbGVtZW50cyBIaWdobGlnaHRhYmxlLCBPbkluaXQge1xuXHRwcml2YXRlIHN0YXRpYyBfaWQgPSAwO1xuXG5cdHByaXZhdGUgcmVhZG9ubHkgX3BsYXRmb3JtID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcblxuXHRwcml2YXRlIHJlYWRvbmx5IF9lbGVtZW50UmVmID0gaW5qZWN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PihFbGVtZW50UmVmKTtcblxuXHQvKiogQWNjZXNzIHRoZSBjb21tYW5kIGNvbXBvbmVudCAqL1xuXHRwcml2YXRlIHJlYWRvbmx5IF9jb21tYW5kID0gaW5qZWN0QnJuQ29tbWFuZCgpO1xuXG5cdC8qKiBBIHVuaXF1ZSBpZCBmb3IgdGhlIGl0ZW0gKi9cblx0cHVibGljIHJlYWRvbmx5IGlkID0gaW5wdXQoYGJybi1jb21tYW5kLWl0ZW0tJHtCcm5Db21tYW5kSXRlbURpcmVjdGl2ZS5faWQrK31gKTtcblxuXHQvKiogVGhlIHZhbHVlIHRoaXMgaXRlbSByZXByZXNlbnRzLiAqL1xuXHRwdWJsaWMgcmVhZG9ubHkgdmFsdWUgPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmc+KCk7XG5cblx0LyoqIFdoZXRoZXIgdGhlIGl0ZW0gaXMgZGlzYWJsZWQuICovXG5cdHB1YmxpYyByZWFkb25seSBfZGlzYWJsZWQgPSBpbnB1dDxib29sZWFuLCBCb29sZWFuSW5wdXQ+KGZhbHNlLCB7XG5cdFx0YWxpYXM6ICdkaXNhYmxlZCcsXG5cdFx0dHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlLFxuXHR9KTtcblxuXHQvKiogRXhwb3NlIGRpc2FibGVkIGFzIGEgdmFsdWUgLSB1c2VkIGJ5IHRoZSBIaWdobGlnaHRhYmxlIGludGVyZmFjZSAqL1xuXHRwdWJsaWMgZ2V0IGRpc2FibGVkKCkge1xuXHRcdHJldHVybiB0aGlzLl9kaXNhYmxlZCgpO1xuXHR9XG5cblx0LyoqIFdoZXRoZXIgdGhlIGl0ZW0gaXMgaW5pdGlhbGl6ZWQsIHRoaXMgaXMgdG8gcHJldmVudCBhY2Nlc3NpbmcgdGhlIHZhbHVlLWlucHV0IGJlZm9yZSB0aGUgY29tcG9uZW50IGlzIGluaXRpYWxpemVkLlxuXHQgKiBUaGUgYnJuLWNvbW1hbmQtZW1wdHkgZGlyZWN0aXZlIGFjY2Vzc2VzIHRoZSB2YWx1ZSBiZWZvcmUgdGhlIGNvbXBvbmVudCBpcyBpbml0aWFsaXplZCwgd2hpY2ggY2F1c2VzIGFuIGVycm9yLlxuXHQgKi9cblx0cHJpdmF0ZSByZWFkb25seSBfaW5pdGlhbGl6ZWQgPSBzaWduYWwoZmFsc2UpO1xuXG5cdC8qKiBXaGV0aGVyIHRoZSBpdGVtIGlzIHNlbGVjdGVkLiAqL1xuXHRwcm90ZWN0ZWQgcmVhZG9ubHkgYWN0aXZlID0gc2lnbmFsKGZhbHNlKTtcblxuXHQvKiogRW1pdHMgd2hlbiB0aGUgaXRlbSBpcyBzZWxlY3RlZC4gKi9cblx0cHVibGljIHJlYWRvbmx5IHNlbGVjdGVkID0gb3V0cHV0PHZvaWQ+KCk7XG5cblx0LyoqIEBpbnRlcm5hbCBEZXRlcm1pbmUgaWYgdGhpcyBpdGVtIGlzIHZpc2libGUgYmFzZWQgb24gdGhlIGN1cnJlbnQgc2VhcmNoIHF1ZXJ5ICovXG5cdHB1YmxpYyByZWFkb25seSB2aXNpYmxlID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdHJldHVybiB0aGlzLl9jb21tYW5kLmZpbHRlcigpKHRoaXMuc2FmZVZhbHVlKCksIHRoaXMuX2NvbW1hbmQuc2VhcmNoKCkpO1xuXHR9KTtcblxuXHQvKiogQGludGVybmFsIEdldCB0aGUgdmFsdWUgb2YgdGhlIGl0ZW0sIHdpdGggY2hlY2sgaWYgaXQgaGFzIGJlZW4gaW5pdGlhbGl6ZWQgdG8gYXZvaWQgZXJyb3JzICovXG5cdHB1YmxpYyBzYWZlVmFsdWUgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0aWYgKCF0aGlzLl9pbml0aWFsaXplZCgpKSB7XG5cdFx0XHRyZXR1cm4gJyc7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzLnZhbHVlKCk7XG5cdH0pO1xuXG5cdC8qKiBAaW50ZXJuYWwgR2V0IHRoZSBkaXNwbGF5IHZhbHVlICovXG5cdHB1YmxpYyBnZXRMYWJlbCgpOiBzdHJpbmcge1xuXHRcdHJldHVybiB0aGlzLnNhZmVWYWx1ZSgpO1xuXHR9XG5cblx0LyoqIEBpbnRlcm5hbCAqL1xuXHRzZXRBY3RpdmVTdHlsZXMoKTogdm9pZCB7XG5cdFx0dGhpcy5hY3RpdmUuc2V0KHRydWUpO1xuXG5cdFx0Ly8gZW5zdXJlIHRoZSBpdGVtIGlzIGluIHZpZXdcblx0XHRpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5fcGxhdGZvcm0pKSB7XG5cdFx0XHR0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoeyBibG9jazogJ25lYXJlc3QnIH0pO1xuXHRcdH1cblx0fVxuXG5cdC8qKiBAaW50ZXJuYWwgKi9cblx0c2V0SW5hY3RpdmVTdHlsZXMoKTogdm9pZCB7XG5cdFx0dGhpcy5hY3RpdmUuc2V0KGZhbHNlKTtcblx0fVxuXG5cdEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcblx0cHJvdGVjdGVkIG9uQ2xpY2soKTogdm9pZCB7XG5cdFx0dGhpcy5fY29tbWFuZC5rZXlNYW5hZ2VyLnNldEFjdGl2ZUl0ZW0odGhpcyk7XG5cdFx0dGhpcy5zZWxlY3RlZC5lbWl0KCk7XG5cdH1cblxuXHRuZ09uSW5pdCgpOiB2b2lkIHtcblx0XHR0aGlzLl9pbml0aWFsaXplZC5zZXQodHJ1ZSk7XG5cdH1cbn1cbiJdfQ==
|
|
@@ -1,49 +1,81 @@
|
|
|
1
|
-
import { Directive, ElementRef,
|
|
1
|
+
import { computed, Directive, effect, ElementRef, Inject, input, Optional, Renderer2, signal } from '@angular/core';
|
|
2
2
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
3
|
+
import { COMPOSITION_BUFFER_MODE, DefaultValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
4
|
import { startWith } from 'rxjs/operators';
|
|
4
5
|
import { provideBrnCommandSearchInput } from './brn-command-search-input.token';
|
|
5
6
|
import { injectBrnCommand } from './brn-command.token';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
|
-
export class BrnCommandSearchInputDirective {
|
|
8
|
+
export class BrnCommandSearchInputDirective extends DefaultValueAccessor {
|
|
9
|
+
elementRef;
|
|
8
10
|
_command = injectBrnCommand();
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
value
|
|
11
|
+
/** The initial value of the search input */
|
|
12
|
+
value = input('');
|
|
13
|
+
/** @internal The mutable value of the search input */
|
|
14
|
+
mutableValue = computed(() => signal(this.value()));
|
|
15
|
+
/** @internal The "real" value of the search input */
|
|
16
|
+
valueState = computed(() => this.mutableValue()());
|
|
12
17
|
/** The id of the active option */
|
|
13
18
|
_activeDescendant = signal(undefined);
|
|
14
|
-
constructor() {
|
|
19
|
+
constructor(renderer, elementRef, compositionMode) {
|
|
20
|
+
super(renderer, elementRef, compositionMode);
|
|
21
|
+
this.elementRef = elementRef;
|
|
15
22
|
this._command.keyManager.change
|
|
16
23
|
.pipe(startWith(this._command.keyManager.activeItemIndex), takeUntilDestroyed())
|
|
17
24
|
.subscribe(() => this._activeDescendant.set(this._command.keyManager.activeItem?.id()));
|
|
25
|
+
effect(() => {
|
|
26
|
+
this.elementRef.nativeElement.value = this.valueState();
|
|
27
|
+
});
|
|
18
28
|
}
|
|
19
29
|
/** Listen for changes to the input value */
|
|
20
30
|
onInput() {
|
|
21
|
-
this.
|
|
31
|
+
this.mutableValue().set(this.elementRef.nativeElement.value);
|
|
22
32
|
}
|
|
23
33
|
/** Listen for keydown events */
|
|
24
34
|
onKeyDown(event) {
|
|
25
35
|
this._command.keyManager.onKeydown(event);
|
|
26
36
|
}
|
|
27
|
-
/**
|
|
28
|
-
|
|
37
|
+
/** CONROL VALUE ACCESSOR */
|
|
38
|
+
writeValue(value) {
|
|
39
|
+
super.writeValue(value);
|
|
40
|
+
if (value) {
|
|
41
|
+
this.mutableValue().set(value);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnCommandSearchInputDirective, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: COMPOSITION_BUFFER_MODE, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
45
|
+
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.5", type: BrnCommandSearchInputDirective, isStandalone: true, selector: "input[brnCommandSearchInput]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "combobox", "aria-autocomplete": "list" }, listeners: { "keydown": "onKeyDown($event)", "input": "onInput()" }, properties: { "attr.aria-activedescendant": "_activeDescendant()" } }, providers: [
|
|
46
|
+
provideBrnCommandSearchInput(BrnCommandSearchInputDirective),
|
|
47
|
+
{
|
|
48
|
+
provide: NG_VALUE_ACCESSOR,
|
|
49
|
+
useExisting: BrnCommandSearchInputDirective,
|
|
50
|
+
multi: true,
|
|
51
|
+
},
|
|
52
|
+
], usesInheritance: true, ngImport: i0 });
|
|
29
53
|
}
|
|
30
54
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnCommandSearchInputDirective, decorators: [{
|
|
31
55
|
type: Directive,
|
|
32
56
|
args: [{
|
|
33
57
|
selector: 'input[brnCommandSearchInput]',
|
|
34
58
|
standalone: true,
|
|
35
|
-
providers: [
|
|
59
|
+
providers: [
|
|
60
|
+
provideBrnCommandSearchInput(BrnCommandSearchInputDirective),
|
|
61
|
+
{
|
|
62
|
+
provide: NG_VALUE_ACCESSOR,
|
|
63
|
+
useExisting: BrnCommandSearchInputDirective,
|
|
64
|
+
multi: true,
|
|
65
|
+
},
|
|
66
|
+
],
|
|
36
67
|
host: {
|
|
37
68
|
role: 'combobox',
|
|
38
69
|
'aria-autocomplete': 'list',
|
|
39
70
|
'[attr.aria-activedescendant]': '_activeDescendant()',
|
|
71
|
+
'(keydown)': 'onKeyDown($event)',
|
|
72
|
+
'(input)': 'onInput()',
|
|
40
73
|
},
|
|
41
74
|
}]
|
|
42
|
-
}], ctorParameters: () => [
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLWNvbW1hbmQtc2VhcmNoLWlucHV0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYnJhaW4vY29tbWFuZC9zcmMvbGliL2Jybi1jb21tYW5kLXNlYXJjaC1pbnB1dC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQVl2RCxNQUFNLE9BQU8sOEJBQThCO0lBQ3pCLFFBQVEsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzlCLFdBQVcsR0FBRyxNQUFNLENBQStCLFVBQVUsQ0FBQyxDQUFDO0lBRWhGLDhDQUE4QztJQUM5QixLQUFLLEdBQUcsTUFBTSxDQUFTLEVBQUUsQ0FBQyxDQUFDO0lBRTNDLGtDQUFrQztJQUNmLGlCQUFpQixHQUFHLE1BQU0sQ0FBcUIsU0FBUyxDQUFDLENBQUM7SUFFN0U7UUFDQyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxNQUFNO2FBQzdCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQzthQUMvRSxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzFGLENBQUM7SUFFRCw0Q0FBNEM7SUFFbEMsT0FBTztRQUNoQixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsZ0NBQWdDO0lBRXRCLFNBQVMsQ0FBQyxLQUFvQjtRQUN2QyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0MsQ0FBQzswSEExQlcsOEJBQThCOzhHQUE5Qiw4QkFBOEIsZ1NBUC9CLENBQUMsNEJBQTRCLENBQUMsOEJBQThCLENBQUMsQ0FBQzs7MkZBTzdELDhCQUE4QjtrQkFWMUMsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsOEJBQThCO29CQUN4QyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsU0FBUyxFQUFFLENBQUMsNEJBQTRCLGdDQUFnQyxDQUFDO29CQUN6RSxJQUFJLEVBQUU7d0JBQ0wsSUFBSSxFQUFFLFVBQVU7d0JBQ2hCLG1CQUFtQixFQUFFLE1BQU07d0JBQzNCLDhCQUE4QixFQUFFLHFCQUFxQjtxQkFDckQ7aUJBQ0Q7d0RBbUJVLE9BQU87c0JBRGhCLFlBQVk7dUJBQUMsT0FBTztnQkFPWCxTQUFTO3NCQURsQixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBpbmplY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgc3RhcnRXaXRoIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgcHJvdmlkZUJybkNvbW1hbmRTZWFyY2hJbnB1dCB9IGZyb20gJy4vYnJuLWNvbW1hbmQtc2VhcmNoLWlucHV0LnRva2VuJztcbmltcG9ydCB7IGluamVjdEJybkNvbW1hbmQgfSBmcm9tICcuL2Jybi1jb21tYW5kLnRva2VuJztcblxuQERpcmVjdGl2ZSh7XG5cdHNlbGVjdG9yOiAnaW5wdXRbYnJuQ29tbWFuZFNlYXJjaElucHV0XScsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHByb3ZpZGVyczogW3Byb3ZpZGVCcm5Db21tYW5kU2VhcmNoSW5wdXQoQnJuQ29tbWFuZFNlYXJjaElucHV0RGlyZWN0aXZlKV0sXG5cdGhvc3Q6IHtcblx0XHRyb2xlOiAnY29tYm9ib3gnLFxuXHRcdCdhcmlhLWF1dG9jb21wbGV0ZSc6ICdsaXN0Jyxcblx0XHQnW2F0dHIuYXJpYS1hY3RpdmVkZXNjZW5kYW50XSc6ICdfYWN0aXZlRGVzY2VuZGFudCgpJyxcblx0fSxcbn0pXG5leHBvcnQgY2xhc3MgQnJuQ29tbWFuZFNlYXJjaElucHV0RGlyZWN0aXZlIHtcblx0cHJpdmF0ZSByZWFkb25seSBfY29tbWFuZCA9IGluamVjdEJybkNvbW1hbmQoKTtcblx0cHJpdmF0ZSByZWFkb25seSBfZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+PihFbGVtZW50UmVmKTtcblxuXHQvKiogQGludGVybmFsIEV4cG9zZSB0aGUgY3VycmVudCB0ZXh0IHZhbHVlICovXG5cdHB1YmxpYyByZWFkb25seSB2YWx1ZSA9IHNpZ25hbDxzdHJpbmc+KCcnKTtcblxuXHQvKiogVGhlIGlkIG9mIHRoZSBhY3RpdmUgb3B0aW9uICovXG5cdHByb3RlY3RlZCByZWFkb25seSBfYWN0aXZlRGVzY2VuZGFudCA9IHNpZ25hbDxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0dGhpcy5fY29tbWFuZC5rZXlNYW5hZ2VyLmNoYW5nZVxuXHRcdFx0LnBpcGUoc3RhcnRXaXRoKHRoaXMuX2NvbW1hbmQua2V5TWFuYWdlci5hY3RpdmVJdGVtSW5kZXgpLCB0YWtlVW50aWxEZXN0cm95ZWQoKSlcblx0XHRcdC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5fYWN0aXZlRGVzY2VuZGFudC5zZXQodGhpcy5fY29tbWFuZC5rZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0/LmlkKCkpKTtcblx0fVxuXG5cdC8qKiBMaXN0ZW4gZm9yIGNoYW5nZXMgdG8gdGhlIGlucHV0IHZhbHVlICovXG5cdEBIb3N0TGlzdGVuZXIoJ2lucHV0Jylcblx0cHJvdGVjdGVkIG9uSW5wdXQoKTogdm9pZCB7XG5cdFx0dGhpcy52YWx1ZS5zZXQodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlKTtcblx0fVxuXG5cdC8qKiBMaXN0ZW4gZm9yIGtleWRvd24gZXZlbnRzICovXG5cdEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuXHRwcm90ZWN0ZWQgb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG5cdFx0dGhpcy5fY29tbWFuZC5rZXlNYW5hZ2VyLm9uS2V5ZG93bihldmVudCk7XG5cdH1cbn1cbiJdfQ==
|
|
75
|
+
}], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: undefined, decorators: [{
|
|
76
|
+
type: Optional
|
|
77
|
+
}, {
|
|
78
|
+
type: Inject,
|
|
79
|
+
args: [COMPOSITION_BUFFER_MODE]
|
|
80
|
+
}] }] });
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLWNvbW1hbmQtc2VhcmNoLWlucHV0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYnJhaW4vY29tbWFuZC9zcmMvbGliL2Jybi1jb21tYW5kLXNlYXJjaC1pbnB1dC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BILE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxvQkFBb0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNoRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFxQnZELE1BQU0sT0FBTyw4QkFBK0IsU0FBUSxvQkFBb0I7SUFpQnJEO0lBaEJELFFBQVEsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO0lBRS9DLDRDQUE0QztJQUM1QixLQUFLLEdBQUcsS0FBSyxDQUFTLEVBQUUsQ0FBQyxDQUFDO0lBRTFDLHNEQUFzRDtJQUN0QyxZQUFZLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRXBFLHFEQUFxRDtJQUNyQyxVQUFVLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFbkUsa0NBQWtDO0lBQ2YsaUJBQWlCLEdBQUcsTUFBTSxDQUFxQixTQUFTLENBQUMsQ0FBQztJQUU3RSxZQUNDLFFBQW1CLEVBQ0YsVUFBc0IsRUFDTSxlQUF3QjtRQUVyRSxLQUFLLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxlQUFlLENBQUMsQ0FBQztRQUg1QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBSXZDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLE1BQU07YUFDN0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsRUFBRSxrQkFBa0IsRUFBRSxDQUFDO2FBQy9FLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDekYsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDekQsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBQ0QsNENBQTRDO0lBQ2xDLE9BQU87UUFDaEIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQsZ0NBQWdDO0lBQ3RCLFNBQVMsQ0FBQyxLQUFvQjtRQUN2QyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELDRCQUE0QjtJQUNuQixVQUFVLENBQUMsS0FBb0I7UUFDdkMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QixJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1gsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoQyxDQUFDO0lBQ0YsQ0FBQzswSEE1Q1csOEJBQThCLHFFQWtCckIsdUJBQXVCOzhHQWxCaEMsOEJBQThCLG9hQWhCL0I7WUFDViw0QkFBNEIsQ0FBQyw4QkFBOEIsQ0FBQztZQUM1RDtnQkFDQyxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsOEJBQThCO2dCQUMzQyxLQUFLLEVBQUUsSUFBSTthQUNYO1NBQ0Q7OzJGQVNXLDhCQUE4QjtrQkFuQjFDLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLDhCQUE4QjtvQkFDeEMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFNBQVMsRUFBRTt3QkFDViw0QkFBNEIsZ0NBQWdDO3dCQUM1RDs0QkFDQyxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLGdDQUFnQzs0QkFDM0MsS0FBSyxFQUFFLElBQUk7eUJBQ1g7cUJBQ0Q7b0JBQ0QsSUFBSSxFQUFFO3dCQUNMLElBQUksRUFBRSxVQUFVO3dCQUNoQixtQkFBbUIsRUFBRSxNQUFNO3dCQUMzQiw4QkFBOEIsRUFBRSxxQkFBcUI7d0JBQ3JELFdBQVcsRUFBRSxtQkFBbUI7d0JBQ2hDLFNBQVMsRUFBRSxXQUFXO3FCQUN0QjtpQkFDRDs7MEJBbUJFLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tcHV0ZWQsIERpcmVjdGl2ZSwgZWZmZWN0LCBFbGVtZW50UmVmLCBJbmplY3QsIGlucHV0LCBPcHRpb25hbCwgUmVuZGVyZXIyLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IENPTVBPU0lUSU9OX0JVRkZFUl9NT0RFLCBEZWZhdWx0VmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBzdGFydFdpdGggfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBwcm92aWRlQnJuQ29tbWFuZFNlYXJjaElucHV0IH0gZnJvbSAnLi9icm4tY29tbWFuZC1zZWFyY2gtaW5wdXQudG9rZW4nO1xuaW1wb3J0IHsgaW5qZWN0QnJuQ29tbWFuZCB9IGZyb20gJy4vYnJuLWNvbW1hbmQudG9rZW4nO1xuXG5ARGlyZWN0aXZlKHtcblx0c2VsZWN0b3I6ICdpbnB1dFticm5Db21tYW5kU2VhcmNoSW5wdXRdJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0cHJvdmlkZXJzOiBbXG5cdFx0cHJvdmlkZUJybkNvbW1hbmRTZWFyY2hJbnB1dChCcm5Db21tYW5kU2VhcmNoSW5wdXREaXJlY3RpdmUpLFxuXHRcdHtcblx0XHRcdHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuXHRcdFx0dXNlRXhpc3Rpbmc6IEJybkNvbW1hbmRTZWFyY2hJbnB1dERpcmVjdGl2ZSxcblx0XHRcdG11bHRpOiB0cnVlLFxuXHRcdH0sXG5cdF0sXG5cdGhvc3Q6IHtcblx0XHRyb2xlOiAnY29tYm9ib3gnLFxuXHRcdCdhcmlhLWF1dG9jb21wbGV0ZSc6ICdsaXN0Jyxcblx0XHQnW2F0dHIuYXJpYS1hY3RpdmVkZXNjZW5kYW50XSc6ICdfYWN0aXZlRGVzY2VuZGFudCgpJyxcblx0XHQnKGtleWRvd24pJzogJ29uS2V5RG93bigkZXZlbnQpJyxcblx0XHQnKGlucHV0KSc6ICdvbklucHV0KCknLFxuXHR9LFxufSlcbmV4cG9ydCBjbGFzcyBCcm5Db21tYW5kU2VhcmNoSW5wdXREaXJlY3RpdmUgZXh0ZW5kcyBEZWZhdWx0VmFsdWVBY2Nlc3NvciB7XG5cdHByaXZhdGUgcmVhZG9ubHkgX2NvbW1hbmQgPSBpbmplY3RCcm5Db21tYW5kKCk7XG5cblx0LyoqIFRoZSBpbml0aWFsIHZhbHVlIG9mIHRoZSBzZWFyY2ggaW5wdXQgKi9cblx0cHVibGljIHJlYWRvbmx5IHZhbHVlID0gaW5wdXQ8c3RyaW5nPignJyk7XG5cblx0LyoqIEBpbnRlcm5hbCBUaGUgbXV0YWJsZSB2YWx1ZSBvZiB0aGUgc2VhcmNoIGlucHV0ICovXG5cdHB1YmxpYyByZWFkb25seSBtdXRhYmxlVmFsdWUgPSBjb21wdXRlZCgoKSA9PiBzaWduYWwodGhpcy52YWx1ZSgpKSk7XG5cblx0LyoqIEBpbnRlcm5hbCBUaGUgXCJyZWFsXCIgdmFsdWUgb2YgdGhlIHNlYXJjaCBpbnB1dCAqL1xuXHRwdWJsaWMgcmVhZG9ubHkgdmFsdWVTdGF0ZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMubXV0YWJsZVZhbHVlKCkoKSk7XG5cblx0LyoqIFRoZSBpZCBvZiB0aGUgYWN0aXZlIG9wdGlvbiAqL1xuXHRwcm90ZWN0ZWQgcmVhZG9ubHkgX2FjdGl2ZURlc2NlbmRhbnQgPSBzaWduYWw8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG5cdGNvbnN0cnVjdG9yKFxuXHRcdHJlbmRlcmVyOiBSZW5kZXJlcjIsXG5cdFx0cHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuXHRcdEBPcHRpb25hbCgpIEBJbmplY3QoQ09NUE9TSVRJT05fQlVGRkVSX01PREUpIGNvbXBvc2l0aW9uTW9kZTogYm9vbGVhbixcblx0KSB7XG5cdFx0c3VwZXIocmVuZGVyZXIsIGVsZW1lbnRSZWYsIGNvbXBvc2l0aW9uTW9kZSk7XG5cdFx0dGhpcy5fY29tbWFuZC5rZXlNYW5hZ2VyLmNoYW5nZVxuXHRcdFx0LnBpcGUoc3RhcnRXaXRoKHRoaXMuX2NvbW1hbmQua2V5TWFuYWdlci5hY3RpdmVJdGVtSW5kZXgpLCB0YWtlVW50aWxEZXN0cm95ZWQoKSlcblx0XHRcdC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5fYWN0aXZlRGVzY2VuZGFudC5zZXQodGhpcy5fY29tbWFuZC5rZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0/LmlkKCkpKTtcblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0dGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB0aGlzLnZhbHVlU3RhdGUoKTtcblx0XHR9KTtcblx0fVxuXHQvKiogTGlzdGVuIGZvciBjaGFuZ2VzIHRvIHRoZSBpbnB1dCB2YWx1ZSAqL1xuXHRwcm90ZWN0ZWQgb25JbnB1dCgpOiB2b2lkIHtcblx0XHR0aGlzLm11dGFibGVWYWx1ZSgpLnNldCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC52YWx1ZSk7XG5cdH1cblxuXHQvKiogTGlzdGVuIGZvciBrZXlkb3duIGV2ZW50cyAqL1xuXHRwcm90ZWN0ZWQgb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG5cdFx0dGhpcy5fY29tbWFuZC5rZXlNYW5hZ2VyLm9uS2V5ZG93bihldmVudCk7XG5cdH1cblxuXHQvKiogQ09OUk9MIFZBTFVFIEFDQ0VTU09SICovXG5cdG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZyB8IG51bGwpOiB2b2lkIHtcblx0XHRzdXBlci53cml0ZVZhbHVlKHZhbHVlKTtcblx0XHRpZiAodmFsdWUpIHtcblx0XHRcdHRoaXMubXV0YWJsZVZhbHVlKCkuc2V0KHZhbHVlKTtcblx0XHR9XG5cdH1cbn1cbiJdfQ==
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';
|
|
2
2
|
import { isPlatformBrowser } from '@angular/common';
|
|
3
|
-
import { computed, contentChild, contentChildren, Directive, effect, HostListener, inject, Injector, input, output, PLATFORM_ID, } from '@angular/core';
|
|
3
|
+
import { computed, contentChild, contentChildren, Directive, effect, HostListener, inject, Injector, input, output, PLATFORM_ID, untracked, } from '@angular/core';
|
|
4
4
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
5
5
|
import { BrnCommandItemToken } from './brn-command-item.token';
|
|
6
6
|
import { BrnCommandSearchInputDirective } from './brn-command-search-input.directive';
|
|
@@ -19,7 +19,7 @@ export class BrnCommandDirective {
|
|
|
19
19
|
/** when the selection has changed */
|
|
20
20
|
valueChange = output();
|
|
21
21
|
/** @internal The search query */
|
|
22
|
-
search = computed(() => this._searchInput()?.
|
|
22
|
+
search = computed(() => this._searchInput()?.valueState() ?? '');
|
|
23
23
|
/** Access the search input if present */
|
|
24
24
|
_searchInput = contentChild(BrnCommandSearchInputDirective, {
|
|
25
25
|
descendants: true,
|
|
@@ -35,17 +35,19 @@ export class BrnCommandDirective {
|
|
|
35
35
|
.withVerticalOrientation()
|
|
36
36
|
.withHomeAndEnd()
|
|
37
37
|
.withWrap()
|
|
38
|
-
.withTypeAhead()
|
|
39
38
|
.skipPredicate((item) => item.disabled || !item.visible());
|
|
40
39
|
// When clearing the search input we also want to reset the active item to the first one
|
|
41
40
|
effect(() => {
|
|
42
|
-
const searchInput = this.
|
|
43
|
-
|
|
44
|
-
this.keyManager.
|
|
45
|
-
|
|
46
|
-
|
|
41
|
+
const searchInput = this.search();
|
|
42
|
+
untracked(() => {
|
|
43
|
+
const activeItemIsVisible = this.keyManager.activeItem?.visible();
|
|
44
|
+
if ((searchInput !== undefined && searchInput.length === 0) || !activeItemIsVisible) {
|
|
45
|
+
this.keyManager.setFirstItemActive();
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
});
|
|
47
49
|
this.keyManager.change.pipe(takeUntilDestroyed()).subscribe(() => {
|
|
48
|
-
const value = this.keyManager.activeItem?.
|
|
50
|
+
const value = this.keyManager.activeItem?.safeValue();
|
|
49
51
|
if (value) {
|
|
50
52
|
this.valueChange.emit(value);
|
|
51
53
|
}
|
|
@@ -76,4 +78,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
|
|
|
76
78
|
type: HostListener,
|
|
77
79
|
args: ['keydown.enter']
|
|
78
80
|
}] } });
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLWNvbW1hbmQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9icmFpbi9jb21tYW5kL3NyYy9saWIvYnJuLWNvbW1hbmQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFFTixRQUFRLEVBQ1IsWUFBWSxFQUNaLGVBQWUsRUFDZixTQUFTLEVBQ1QsTUFBTSxFQUNOLFlBQVksRUFDWixNQUFNLEVBQ04sUUFBUSxFQUNSLEtBQUssRUFDTCxNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN0RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFVeEQsTUFBTSxPQUFPLG1CQUFtQjtJQUN2QixNQUFNLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztJQUVOLFNBQVMsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFaEMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUU5Qyw0QkFBNEI7SUFDWixFQUFFLEdBQUcsS0FBSyxDQUFTLGVBQWUsbUJBQW1CLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRS9FLGtDQUFrQztJQUNqQixjQUFjLEdBQUcsQ0FBQyxLQUFhLEVBQUUsTUFBYyxFQUFFLEVBQUUsQ0FDbkUsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFD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O29CQUNuRCxJQUFJLEVBQUU7d0JBQ0wsTUFBTSxFQUFFLE1BQU07cUJBQ2Q7aUJBQ0Q7d0RBc0VVLGdCQUFnQjtzQkFEekIsWUFBWTt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuXHRBZnRlclZpZXdJbml0LFxuXHRjb21wdXRlZCxcblx0Y29udGVudENoaWxkLFxuXHRjb250ZW50Q2hpbGRyZW4sXG5cdERpcmVjdGl2ZSxcblx0ZWZmZWN0LFxuXHRIb3N0TGlzdGVuZXIsXG5cdGluamVjdCxcblx0SW5qZWN0b3IsXG5cdGlucHV0LFxuXHRvdXRwdXQsXG5cdFBMQVRGT1JNX0lELFxuXHR1bnRyYWNrZWQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgQnJuQ29tbWFuZEl0ZW1Ub2tlbiB9IGZyb20gJy4vYnJuLWNvbW1hbmQtaXRlbS50b2tlbic7XG5pbXBvcnQgeyBCcm5Db21tYW5kU2VhcmNoSW5wdXREaXJlY3RpdmUgfSBmcm9tICcuL2Jybi1jb21tYW5kLXNlYXJjaC1pbnB1dC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgcHJvdmlkZUJybkNvbW1hbmQgfSBmcm9tICcuL2Jybi1jb21tYW5kLnRva2VuJztcblxuQERpcmVjdGl2ZSh7XG5cdHNlbGVjdG9yOiAnW2JybkNvbW1hbmRdJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0cHJvdmlkZXJzOiBbcHJvdmlkZUJybkNvbW1hbmQoQnJuQ29tbWFuZERpcmVjdGl2ZSldLFxuXHRob3N0OiB7XG5cdFx0J1tpZF0nOiAnaWQoKScsXG5cdH0sXG59KVxuZXhwb3J0IGNsYXNzIEJybkNvbW1hbmREaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcblx0cHJpdmF0ZSBzdGF0aWMgX2lkID0gMDtcblxuXHRwcml2YXRlIHJlYWRvbmx5IF9wbGF0Zm9ybSA9IGluamVjdChQTEFURk9STV9JRCk7XG5cblx0cHJpdmF0ZSByZWFkb25seSBfaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuXG5cdC8qKiBUaGUgaWQgb2YgdGhlIGNvbW1hbmQgKi9cblx0cHVibGljIHJlYWRvbmx5IGlkID0gaW5wdXQ8c3RyaW5nPihgYnJuLWNvbW1hbmQtJHtCcm5Db21tYW5kRGlyZWN0aXZlLl9pZCsrfWApO1xuXG5cdC8qKiBUaGUgZGVmYXVsdCBmaWx0ZXIgZnVuY3Rpb24gKi9cblx0cHJpdmF0ZSByZWFkb25seSBfZGVmYXVsdEZpbHRlciA9ICh2YWx1ZTogc3RyaW5nLCBzZWFyY2g6IHN0cmluZykgPT5cblx0XHR2YWx1ZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaC50b0xvd2VyQ2FzZSgpKTtcblxuXHQvKiogQSBjdXN0b20gZmlsdGVyIGZ1bmN0aW9uIHRvIHVzZSB3aGVuIHNlYXJjaGluZy4gKi9cblx0cHVibGljIHJlYWRvbmx5IGZpbHRlciA9IGlucHV0PENvbW1hbmRGaWx0ZXI+KHRoaXMuX2RlZmF1bHRGaWx0ZXIpO1xuXG5cdC8qKiB3aGVuIHRoZSBzZWxlY3Rpb24gaGFzIGNoYW5nZWQgKi9cblx0cHVibGljIHJlYWRvbmx5IHZhbHVlQ2hhbmdlID0gb3V0cHV0PHN0cmluZz4oKTtcblxuXHQvKiogQGludGVybmFsIFRoZSBzZWFyY2ggcXVlcnkgKi9cblx0cHVibGljIHJlYWRvbmx5IHNlYXJjaCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX3NlYXJjaElucHV0KCk/LnZhbHVlU3RhdGUoKSA/PyAnJyk7XG5cblx0LyoqIEFjY2VzcyB0aGUgc2VhcmNoIGlucHV0IGlmIHByZXNlbnQgKi9cblx0cHJpdmF0ZSByZWFkb25seSBfc2VhcmNoSW5wdXQgPSBjb250ZW50Q2hpbGQoQnJuQ29tbWFuZFNlYXJjaElucHV0RGlyZWN0aXZlLCB7XG5cdFx0ZGVzY2VuZGFudHM6IHRydWUsXG5cdH0pO1xuXG5cdC8qKiBAaW50ZXJuYWwgQWNjZXNzIGFsbCB0aGUgaXRlbXMgd2l0aGluIHRoZSBjb21tbWFuZCAqL1xuXHRwdWJsaWMgcmVhZG9ubHkgaXRlbXMgPSBjb250ZW50Q2hpbGRyZW4oQnJuQ29tbWFuZEl0ZW1Ub2tlbiwge1xuXHRcdGRlc2NlbmRhbnRzOiB0cnVlLFxuXHR9KTtcblxuXHQvKiogQGludGVybmFsIFRoZSBrZXkgbWFuYWdlciBmb3IgbWFuYWdpbmcgYWN0aXZlIGRlc2NlbmRhbnQgKi9cblx0cHVibGljIHJlYWRvbmx5IGtleU1hbmFnZXIgPSBuZXcgQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIodGhpcy5pdGVtcywgdGhpcy5faW5qZWN0b3IpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdHRoaXMua2V5TWFuYWdlclxuXHRcdFx0LndpdGhWZXJ0aWNhbE9yaWVudGF0aW9uKClcblx0XHRcdC53aXRoSG9tZUFuZEVuZCgpXG5cdFx0XHQud2l0aFdyYXAoKVxuXHRcdFx0LnNraXBQcmVkaWNhdGUoKGl0ZW0pID0+IGl0ZW0uZGlzYWJsZWQgfHwgIWl0ZW0udmlzaWJsZSgpKTtcblxuXHRcdC8vIFdoZW4gY2xlYXJpbmcgdGhlIHNlYXJjaCBpbnB1dCB3ZSBhbHNvIHdhbnQgdG8gcmVzZXQgdGhlIGFjdGl2ZSBpdGVtIHRvIHRoZSBmaXJzdCBvbmVcblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0Y29uc3Qgc2VhcmNoSW5wdXQgPSB0aGlzLnNlYXJjaCgpO1xuXHRcdFx0dW50cmFja2VkKCgpID0+IHtcblx0XHRcdFx0Y29uc3QgYWN0aXZlSXRlbUlzVmlzaWJsZSA9IHRoaXMua2V5TWFuYWdlci5hY3RpdmVJdGVtPy52aXNpYmxlKCk7XG5cdFx0XHRcdGlmICgoc2VhcmNoSW5wdXQgIT09IHVuZGVmaW5lZCAmJiBzZWFyY2hJbnB1dC5sZW5ndGggPT09IDApIHx8ICFhY3RpdmVJdGVtSXNWaXNpYmxlKSB7XG5cdFx0XHRcdFx0dGhpcy5rZXlNYW5hZ2VyLnNldEZpcnN0SXRlbUFjdGl2ZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9KTtcblxuXHRcdHRoaXMua2V5TWFuYWdlci5jaGFuZ2UucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoKSkuc3Vic2NyaWJlKCgpID0+IHtcblx0XHRcdGNvbnN0IHZhbHVlID0gdGhpcy5rZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0/LnNhZmVWYWx1ZSgpO1xuXHRcdFx0aWYgKHZhbHVlKSB7XG5cdFx0XHRcdHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh2YWx1ZSk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG5cdFx0aWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMuX3BsYXRmb3JtKSAmJiB0aGlzLml0ZW1zKCkubGVuZ3RoKSB7XG5cdFx0XHR0aGlzLmtleU1hbmFnZXIuc2V0QWN0aXZlSXRlbSgwKTtcblx0XHR9XG5cdH1cblxuXHRASG9zdExpc3RlbmVyKCdrZXlkb3duLmVudGVyJylcblx0cHJvdGVjdGVkIHNlbGVjdEFjdGl2ZUl0ZW0oKTogdm9pZCB7XG5cdFx0dGhpcy5rZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0/LnNlbGVjdGVkLmVtaXQoKTtcblx0fVxufVxuXG5leHBvcnQgdHlwZSBDb21tYW5kRmlsdGVyID0gKHZhbHVlOiBzdHJpbmcsIHNlYXJjaDogc3RyaW5nKSA9PiBib29sZWFuO1xuIl19
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { InjectionToken, inject, TemplateRef, ViewContainerRef, computed, effect, Directive, input, contentChildren, PLATFORM_ID, ElementRef, booleanAttribute, signal, output, HostListener, Injector, contentChild, NgModule } from '@angular/core';
|
|
2
|
+
import { InjectionToken, inject, TemplateRef, ViewContainerRef, computed, effect, Directive, input, contentChildren, PLATFORM_ID, ElementRef, booleanAttribute, signal, output, HostListener, Optional, Inject, Injector, contentChild, untracked, NgModule } from '@angular/core';
|
|
3
3
|
import { isPlatformBrowser } from '@angular/common';
|
|
4
4
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
5
|
+
import { DefaultValueAccessor, COMPOSITION_BUFFER_MODE, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
5
6
|
import { startWith } from 'rxjs/operators';
|
|
6
7
|
import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';
|
|
7
8
|
|
|
@@ -100,14 +101,18 @@ class BrnCommandItemDirective {
|
|
|
100
101
|
selected = output();
|
|
101
102
|
/** @internal Determine if this item is visible based on the current search query */
|
|
102
103
|
visible = computed(() => {
|
|
104
|
+
return this._command.filter()(this.safeValue(), this._command.search());
|
|
105
|
+
});
|
|
106
|
+
/** @internal Get the value of the item, with check if it has been initialized to avoid errors */
|
|
107
|
+
safeValue = computed(() => {
|
|
103
108
|
if (!this._initialized()) {
|
|
104
|
-
return
|
|
109
|
+
return '';
|
|
105
110
|
}
|
|
106
|
-
return this.
|
|
111
|
+
return this.value();
|
|
107
112
|
});
|
|
108
113
|
/** @internal Get the display value */
|
|
109
114
|
getLabel() {
|
|
110
|
-
return this.
|
|
115
|
+
return this.safeValue();
|
|
111
116
|
}
|
|
112
117
|
/** @internal */
|
|
113
118
|
setActiveStyles() {
|
|
@@ -178,48 +183,79 @@ function provideBrnCommandSearchInput(command) {
|
|
|
178
183
|
return { provide: BrnCommandSearchInputToken, useExisting: command };
|
|
179
184
|
}
|
|
180
185
|
|
|
181
|
-
class BrnCommandSearchInputDirective {
|
|
186
|
+
class BrnCommandSearchInputDirective extends DefaultValueAccessor {
|
|
187
|
+
elementRef;
|
|
182
188
|
_command = injectBrnCommand();
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
value
|
|
189
|
+
/** The initial value of the search input */
|
|
190
|
+
value = input('');
|
|
191
|
+
/** @internal The mutable value of the search input */
|
|
192
|
+
mutableValue = computed(() => signal(this.value()));
|
|
193
|
+
/** @internal The "real" value of the search input */
|
|
194
|
+
valueState = computed(() => this.mutableValue()());
|
|
186
195
|
/** The id of the active option */
|
|
187
196
|
_activeDescendant = signal(undefined);
|
|
188
|
-
constructor() {
|
|
197
|
+
constructor(renderer, elementRef, compositionMode) {
|
|
198
|
+
super(renderer, elementRef, compositionMode);
|
|
199
|
+
this.elementRef = elementRef;
|
|
189
200
|
this._command.keyManager.change
|
|
190
201
|
.pipe(startWith(this._command.keyManager.activeItemIndex), takeUntilDestroyed())
|
|
191
202
|
.subscribe(() => this._activeDescendant.set(this._command.keyManager.activeItem?.id()));
|
|
203
|
+
effect(() => {
|
|
204
|
+
this.elementRef.nativeElement.value = this.valueState();
|
|
205
|
+
});
|
|
192
206
|
}
|
|
193
207
|
/** Listen for changes to the input value */
|
|
194
208
|
onInput() {
|
|
195
|
-
this.
|
|
209
|
+
this.mutableValue().set(this.elementRef.nativeElement.value);
|
|
196
210
|
}
|
|
197
211
|
/** Listen for keydown events */
|
|
198
212
|
onKeyDown(event) {
|
|
199
213
|
this._command.keyManager.onKeydown(event);
|
|
200
214
|
}
|
|
201
|
-
/**
|
|
202
|
-
|
|
215
|
+
/** CONROL VALUE ACCESSOR */
|
|
216
|
+
writeValue(value) {
|
|
217
|
+
super.writeValue(value);
|
|
218
|
+
if (value) {
|
|
219
|
+
this.mutableValue().set(value);
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnCommandSearchInputDirective, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: COMPOSITION_BUFFER_MODE, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
223
|
+
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.5", type: BrnCommandSearchInputDirective, isStandalone: true, selector: "input[brnCommandSearchInput]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "combobox", "aria-autocomplete": "list" }, listeners: { "keydown": "onKeyDown($event)", "input": "onInput()" }, properties: { "attr.aria-activedescendant": "_activeDescendant()" } }, providers: [
|
|
224
|
+
provideBrnCommandSearchInput(BrnCommandSearchInputDirective),
|
|
225
|
+
{
|
|
226
|
+
provide: NG_VALUE_ACCESSOR,
|
|
227
|
+
useExisting: BrnCommandSearchInputDirective,
|
|
228
|
+
multi: true,
|
|
229
|
+
},
|
|
230
|
+
], usesInheritance: true, ngImport: i0 });
|
|
203
231
|
}
|
|
204
232
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnCommandSearchInputDirective, decorators: [{
|
|
205
233
|
type: Directive,
|
|
206
234
|
args: [{
|
|
207
235
|
selector: 'input[brnCommandSearchInput]',
|
|
208
236
|
standalone: true,
|
|
209
|
-
providers: [
|
|
237
|
+
providers: [
|
|
238
|
+
provideBrnCommandSearchInput(BrnCommandSearchInputDirective),
|
|
239
|
+
{
|
|
240
|
+
provide: NG_VALUE_ACCESSOR,
|
|
241
|
+
useExisting: BrnCommandSearchInputDirective,
|
|
242
|
+
multi: true,
|
|
243
|
+
},
|
|
244
|
+
],
|
|
210
245
|
host: {
|
|
211
246
|
role: 'combobox',
|
|
212
247
|
'aria-autocomplete': 'list',
|
|
213
248
|
'[attr.aria-activedescendant]': '_activeDescendant()',
|
|
249
|
+
'(keydown)': 'onKeyDown($event)',
|
|
250
|
+
'(input)': 'onInput()',
|
|
214
251
|
},
|
|
215
252
|
}]
|
|
216
|
-
}], ctorParameters: () => [
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
}] } });
|
|
253
|
+
}], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: undefined, decorators: [{
|
|
254
|
+
type: Optional
|
|
255
|
+
}, {
|
|
256
|
+
type: Inject,
|
|
257
|
+
args: [COMPOSITION_BUFFER_MODE]
|
|
258
|
+
}] }] });
|
|
223
259
|
|
|
224
260
|
class BrnCommandDirective {
|
|
225
261
|
static _id = 0;
|
|
@@ -234,7 +270,7 @@ class BrnCommandDirective {
|
|
|
234
270
|
/** when the selection has changed */
|
|
235
271
|
valueChange = output();
|
|
236
272
|
/** @internal The search query */
|
|
237
|
-
search = computed(() => this._searchInput()?.
|
|
273
|
+
search = computed(() => this._searchInput()?.valueState() ?? '');
|
|
238
274
|
/** Access the search input if present */
|
|
239
275
|
_searchInput = contentChild(BrnCommandSearchInputDirective, {
|
|
240
276
|
descendants: true,
|
|
@@ -250,17 +286,19 @@ class BrnCommandDirective {
|
|
|
250
286
|
.withVerticalOrientation()
|
|
251
287
|
.withHomeAndEnd()
|
|
252
288
|
.withWrap()
|
|
253
|
-
.withTypeAhead()
|
|
254
289
|
.skipPredicate((item) => item.disabled || !item.visible());
|
|
255
290
|
// When clearing the search input we also want to reset the active item to the first one
|
|
256
291
|
effect(() => {
|
|
257
|
-
const searchInput = this.
|
|
258
|
-
|
|
259
|
-
this.keyManager.
|
|
260
|
-
|
|
261
|
-
|
|
292
|
+
const searchInput = this.search();
|
|
293
|
+
untracked(() => {
|
|
294
|
+
const activeItemIsVisible = this.keyManager.activeItem?.visible();
|
|
295
|
+
if ((searchInput !== undefined && searchInput.length === 0) || !activeItemIsVisible) {
|
|
296
|
+
this.keyManager.setFirstItemActive();
|
|
297
|
+
}
|
|
298
|
+
});
|
|
299
|
+
});
|
|
262
300
|
this.keyManager.change.pipe(takeUntilDestroyed()).subscribe(() => {
|
|
263
|
-
const value = this.keyManager.activeItem?.
|
|
301
|
+
const value = this.keyManager.activeItem?.safeValue();
|
|
264
302
|
if (value) {
|
|
265
303
|
this.valueChange.emit(value);
|
|
266
304
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spartan-ng-brain-command.mjs","sources":["../../../../libs/brain/command/src/lib/brn-command.token.ts","../../../../libs/brain/command/src/lib/brn-command-empty.directive.ts","../../../../libs/brain/command/src/lib/brn-command-item.token.ts","../../../../libs/brain/command/src/lib/brn-command-group.directive.ts","../../../../libs/brain/command/src/lib/brn-command-item.directive.ts","../../../../libs/brain/command/src/lib/brn-command-list.directive.ts","../../../../libs/brain/command/src/lib/brn-command-search-input.token.ts","../../../../libs/brain/command/src/lib/brn-command-search-input.directive.ts","../../../../libs/brain/command/src/lib/brn-command.directive.ts","../../../../libs/brain/command/src/index.ts","../../../../libs/brain/command/src/spartan-ng-brain-command.ts"],"sourcesContent":["import { ExistingProvider, inject, InjectionToken, Type } from '@angular/core';\nimport type { BrnCommandDirective } from './brn-command.directive';\n\nexport const BrnCommandToken = new InjectionToken<BrnCommandDirective>('BrnCommandToken');\n\nexport function provideBrnCommand(command: Type<BrnCommandDirective>): ExistingProvider {\n\treturn { provide: BrnCommandToken, useExisting: command };\n}\n\nexport function injectBrnCommand(): BrnCommandDirective {\n\treturn inject(BrnCommandToken);\n}\n","import { computed, Directive, effect, inject, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { injectBrnCommand } from './brn-command.token';\n\n@Directive({\n\tstandalone: true,\n\tselector: '[brnCommandEmpty]',\n})\nexport class BrnCommandEmptyDirective {\n\tprivate readonly _templateRef = inject<TemplateRef<void>>(TemplateRef);\n\tprivate readonly _viewContainerRef = inject(ViewContainerRef);\n\tprivate readonly _command = injectBrnCommand();\n\n\t/** Determine if the command has any visible items */\n\tprivate readonly _visible = computed(() => this._command.items().some((item) => item.visible()));\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tif (this._visible()) {\n\t\t\t\tthis._viewContainerRef.clear();\n\t\t\t} else {\n\t\t\t\tthis._viewContainerRef.createEmbeddedView(this._templateRef);\n\t\t\t}\n\t\t});\n\t}\n}\n","import { ExistingProvider, InjectionToken, Type } from '@angular/core';\nimport type { BrnCommandItemDirective } from './brn-command-item.directive';\n\nexport const BrnCommandItemToken = new InjectionToken<BrnCommandItemDirective>('BrnCommandItemToken');\n\nexport function provideBrnCommandItem(command: Type<BrnCommandItemDirective>): ExistingProvider {\n\treturn { provide: BrnCommandItemToken, useExisting: command };\n}\n","import { computed, contentChildren, Directive, input } from '@angular/core';\nimport { BrnCommandItemToken } from './brn-command-item.token';\n\n@Directive({\n\tselector: '[brnCommandGroup]',\n\tstandalone: true,\n\thost: {\n\t\trole: 'group',\n\t\t'[attr.data-hidden]': '!visible() ? \"\" : null',\n\t\t'[id]': 'id()',\n\t},\n})\nexport class BrnCommandGroupDirective {\n\tprivate static _id = 0;\n\n\t/** The id of the command list */\n\tpublic readonly id = input<string>(`brn-command-group-${BrnCommandGroupDirective._id++}`);\n\n\t/** Get the items in the group */\n\tprivate readonly _items = contentChildren(BrnCommandItemToken, {\n\t\tdescendants: true,\n\t});\n\n\t/** Determine if there are any visible items in the group */\n\tprotected readonly visible = computed(() => this._items().some((item) => item.visible()));\n}\n","import { Highlightable } from '@angular/cdk/a11y';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n\tbooleanAttribute,\n\tcomputed,\n\tDirective,\n\tElementRef,\n\tHostListener,\n\tinject,\n\tinput,\n\tOnInit,\n\toutput,\n\tPLATFORM_ID,\n\tsignal,\n} from '@angular/core';\nimport { provideBrnCommandItem } from './brn-command-item.token';\nimport { injectBrnCommand } from './brn-command.token';\n\n@Directive({\n\tselector: 'button[brnCommandItem]',\n\tstandalone: true,\n\tproviders: [provideBrnCommandItem(BrnCommandItemDirective)],\n\thost: {\n\t\ttype: 'button',\n\t\trole: 'option',\n\t\ttabIndex: '-1',\n\t\t'[id]': 'id()',\n\t\t'[attr.disabled]': '_disabled() ? true : null',\n\t\t'[attr.data-value]': 'value()',\n\t\t'[attr.data-hidden]': \"!visible() ? '' : null\",\n\t\t'[attr.aria-selected]': 'active()',\n\t\t'[attr.data-selected]': \"active() ? '' : null\",\n\t},\n})\nexport class BrnCommandItemDirective implements Highlightable, OnInit {\n\tprivate static _id = 0;\n\n\tprivate readonly _platform = inject(PLATFORM_ID);\n\n\tprivate readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n\t/** Access the command component */\n\tprivate readonly _command = injectBrnCommand();\n\n\t/** A unique id for the item */\n\tpublic readonly id = input(`brn-command-item-${BrnCommandItemDirective._id++}`);\n\n\t/** The value this item represents. */\n\tpublic readonly value = input.required<string>();\n\n\t/** Whether the item is disabled. */\n\tpublic readonly _disabled = input<boolean, BooleanInput>(false, {\n\t\talias: 'disabled',\n\t\ttransform: booleanAttribute,\n\t});\n\n\t/** Expose disabled as a value - used by the Highlightable interface */\n\tpublic get disabled() {\n\t\treturn this._disabled();\n\t}\n\n\t/** Whether the item is initialized, this is to prevent accessing the value-input before the component is initialized.\n\t * The brn-command-empty directive accesses the value before the component is initialized, which causes an error.\n\t */\n\tprivate readonly _initialized = signal(false);\n\n\t/** Whether the item is selected. */\n\tprotected readonly active = signal(false);\n\n\t/** Emits when the item is selected. */\n\tpublic readonly selected = output<void>();\n\n\t/** @internal Determine if this item is visible based on the current search query */\n\tpublic readonly visible = computed(() => {\n\t\tif (!this._initialized()) {\n\t\t\treturn false;\n\t\t}\n\t\treturn this._command.filter()(this.value(), this._command.search());\n\t});\n\n\t/** @internal Get the display value */\n\tpublic getLabel(): string {\n\t\treturn this.value();\n\t}\n\n\t/** @internal */\n\tsetActiveStyles(): void {\n\t\tthis.active.set(true);\n\n\t\t// ensure the item is in view\n\t\tif (isPlatformBrowser(this._platform)) {\n\t\t\tthis._elementRef.nativeElement.scrollIntoView({ block: 'nearest' });\n\t\t}\n\t}\n\n\t/** @internal */\n\tsetInactiveStyles(): void {\n\t\tthis.active.set(false);\n\t}\n\n\t@HostListener('click')\n\tprotected onClick(): void {\n\t\tthis._command.keyManager.setActiveItem(this);\n\t\tthis.selected.emit();\n\t}\n\n\tngOnInit(): void {\n\t\tthis._initialized.set(true);\n\t}\n}\n","import { Directive, input } from '@angular/core';\n\n@Directive({\n\tstandalone: true,\n\tselector: '[brnCommandList]',\n\thost: {\n\t\trole: 'listbox',\n\t\t'[id]': 'id()',\n\t},\n})\nexport class BrnCommandListDirective {\n\tprivate static _id = 0;\n\n\t/** The id of the command list */\n\tpublic readonly id = input<string>(`brn-command-list-${BrnCommandListDirective._id++}`);\n}\n","import { ExistingProvider, InjectionToken, Type } from '@angular/core';\nimport type { BrnCommandSearchInputDirective } from './brn-command-search-input.directive';\n\nexport const BrnCommandSearchInputToken = new InjectionToken<BrnCommandSearchInputDirective>(\n\t'BrnCommandSearchInputToken',\n);\n\nexport function provideBrnCommandSearchInput(command: Type<BrnCommandSearchInputDirective>): ExistingProvider {\n\treturn { provide: BrnCommandSearchInputToken, useExisting: command };\n}\n","import { Directive, ElementRef, HostListener, inject, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { startWith } from 'rxjs/operators';\nimport { provideBrnCommandSearchInput } from './brn-command-search-input.token';\nimport { injectBrnCommand } from './brn-command.token';\n\n@Directive({\n\tselector: 'input[brnCommandSearchInput]',\n\tstandalone: true,\n\tproviders: [provideBrnCommandSearchInput(BrnCommandSearchInputDirective)],\n\thost: {\n\t\trole: 'combobox',\n\t\t'aria-autocomplete': 'list',\n\t\t'[attr.aria-activedescendant]': '_activeDescendant()',\n\t},\n})\nexport class BrnCommandSearchInputDirective {\n\tprivate readonly _command = injectBrnCommand();\n\tprivate readonly _elementRef = inject<ElementRef<HTMLInputElement>>(ElementRef);\n\n\t/** @internal Expose the current text value */\n\tpublic readonly value = signal<string>('');\n\n\t/** The id of the active option */\n\tprotected readonly _activeDescendant = signal<string | undefined>(undefined);\n\n\tconstructor() {\n\t\tthis._command.keyManager.change\n\t\t\t.pipe(startWith(this._command.keyManager.activeItemIndex), takeUntilDestroyed())\n\t\t\t.subscribe(() => this._activeDescendant.set(this._command.keyManager.activeItem?.id()));\n\t}\n\n\t/** Listen for changes to the input value */\n\t@HostListener('input')\n\tprotected onInput(): void {\n\t\tthis.value.set(this._elementRef.nativeElement.value);\n\t}\n\n\t/** Listen for keydown events */\n\t@HostListener('keydown', ['$event'])\n\tprotected onKeyDown(event: KeyboardEvent): void {\n\t\tthis._command.keyManager.onKeydown(event);\n\t}\n}\n","import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n\tAfterViewInit,\n\tcomputed,\n\tcontentChild,\n\tcontentChildren,\n\tDirective,\n\teffect,\n\tHostListener,\n\tinject,\n\tInjector,\n\tinput,\n\toutput,\n\tPLATFORM_ID,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { BrnCommandItemToken } from './brn-command-item.token';\nimport { BrnCommandSearchInputDirective } from './brn-command-search-input.directive';\nimport { provideBrnCommand } from './brn-command.token';\n\n@Directive({\n\tselector: '[brnCommand]',\n\tstandalone: true,\n\tproviders: [provideBrnCommand(BrnCommandDirective)],\n\thost: {\n\t\t'[id]': 'id()',\n\t},\n})\nexport class BrnCommandDirective implements AfterViewInit {\n\tprivate static _id = 0;\n\n\tprivate readonly _platform = inject(PLATFORM_ID);\n\n\tprivate readonly _injector = inject(Injector);\n\n\t/** The id of the command */\n\tpublic readonly id = input<string>(`brn-command-${BrnCommandDirective._id++}`);\n\n\t/** The default filter function */\n\tprivate readonly _defaultFilter = (value: string, search: string) =>\n\t\tvalue.toLowerCase().includes(search.toLowerCase());\n\n\t/** A custom filter function to use when searching. */\n\tpublic readonly filter = input<CommandFilter>(this._defaultFilter);\n\n\t/** when the selection has changed */\n\tpublic readonly valueChange = output<string>();\n\n\t/** @internal The search query */\n\tpublic readonly search = computed(() => this._searchInput()?.value() ?? '');\n\n\t/** Access the search input if present */\n\tprivate readonly _searchInput = contentChild(BrnCommandSearchInputDirective, {\n\t\tdescendants: true,\n\t});\n\n\t/** @internal Access all the items within the commmand */\n\tpublic readonly items = contentChildren(BrnCommandItemToken, {\n\t\tdescendants: true,\n\t});\n\n\t/** @internal The key manager for managing active descendant */\n\tpublic readonly keyManager = new ActiveDescendantKeyManager(this.items, this._injector);\n\n\tconstructor() {\n\t\tthis.keyManager\n\t\t\t.withVerticalOrientation()\n\t\t\t.withHomeAndEnd()\n\t\t\t.withWrap()\n\t\t\t.withTypeAhead()\n\t\t\t.skipPredicate((item) => item.disabled || !item.visible());\n\n\t\t// When clearing the search input we also want to reset the active item to the first one\n\t\teffect(\n\t\t\t() => {\n\t\t\t\tconst searchInput = this._searchInput()?.value();\n\t\t\t\tif (searchInput !== undefined && searchInput.length === 0) {\n\t\t\t\t\tthis.keyManager.setActiveItem(0);\n\t\t\t\t}\n\t\t\t},\n\t\t\t{ allowSignalWrites: true },\n\t\t);\n\n\t\tthis.keyManager.change.pipe(takeUntilDestroyed()).subscribe(() => {\n\t\t\tconst value = this.keyManager.activeItem?.value();\n\t\t\tif (value) {\n\t\t\t\tthis.valueChange.emit(value);\n\t\t\t}\n\t\t});\n\t}\n\n\tngAfterViewInit(): void {\n\t\tif (isPlatformBrowser(this._platform) && this.items().length) {\n\t\t\tthis.keyManager.setActiveItem(0);\n\t\t}\n\t}\n\n\t@HostListener('keydown.enter')\n\tprotected selectActiveItem(): void {\n\t\tthis.keyManager.activeItem?.selected.emit();\n\t}\n}\n\nexport type CommandFilter = (value: string, search: string) => boolean;\n","import { NgModule } from '@angular/core';\nimport { BrnCommandEmptyDirective } from './lib/brn-command-empty.directive';\nimport { BrnCommandGroupDirective } from './lib/brn-command-group.directive';\nimport { BrnCommandItemDirective } from './lib/brn-command-item.directive';\nimport { BrnCommandListDirective } from './lib/brn-command-list.directive';\nimport { BrnCommandSearchInputDirective } from './lib/brn-command-search-input.directive';\nimport { BrnCommandDirective } from './lib/brn-command.directive';\n\nexport * from './lib/brn-command-empty.directive';\nexport * from './lib/brn-command-group.directive';\nexport * from './lib/brn-command-item.directive';\nexport * from './lib/brn-command-item.token';\nexport * from './lib/brn-command-list.directive';\nexport * from './lib/brn-command-search-input.directive';\nexport * from './lib/brn-command-search-input.token';\nexport * from './lib/brn-command.directive';\nexport * from './lib/brn-command.token';\n\nexport const BrnCommandImports = [\n\tBrnCommandEmptyDirective,\n\tBrnCommandGroupDirective,\n\tBrnCommandItemDirective,\n\tBrnCommandListDirective,\n\tBrnCommandSearchInputDirective,\n\tBrnCommandDirective,\n] as const;\n\n@NgModule({\n\timports: [...BrnCommandImports],\n\texports: [...BrnCommandImports],\n})\nexport class BrnCommandModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"spartan-ng-brain-command.mjs","sources":["../../../../libs/brain/command/src/lib/brn-command.token.ts","../../../../libs/brain/command/src/lib/brn-command-empty.directive.ts","../../../../libs/brain/command/src/lib/brn-command-item.token.ts","../../../../libs/brain/command/src/lib/brn-command-group.directive.ts","../../../../libs/brain/command/src/lib/brn-command-item.directive.ts","../../../../libs/brain/command/src/lib/brn-command-list.directive.ts","../../../../libs/brain/command/src/lib/brn-command-search-input.token.ts","../../../../libs/brain/command/src/lib/brn-command-search-input.directive.ts","../../../../libs/brain/command/src/lib/brn-command.directive.ts","../../../../libs/brain/command/src/index.ts","../../../../libs/brain/command/src/spartan-ng-brain-command.ts"],"sourcesContent":["import { ExistingProvider, inject, InjectionToken, Type } from '@angular/core';\nimport type { BrnCommandDirective } from './brn-command.directive';\n\nexport const BrnCommandToken = new InjectionToken<BrnCommandDirective>('BrnCommandToken');\n\nexport function provideBrnCommand(command: Type<BrnCommandDirective>): ExistingProvider {\n\treturn { provide: BrnCommandToken, useExisting: command };\n}\n\nexport function injectBrnCommand(): BrnCommandDirective {\n\treturn inject(BrnCommandToken);\n}\n","import { computed, Directive, effect, inject, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { injectBrnCommand } from './brn-command.token';\n\n@Directive({\n\tstandalone: true,\n\tselector: '[brnCommandEmpty]',\n})\nexport class BrnCommandEmptyDirective {\n\tprivate readonly _templateRef = inject<TemplateRef<void>>(TemplateRef);\n\tprivate readonly _viewContainerRef = inject(ViewContainerRef);\n\tprivate readonly _command = injectBrnCommand();\n\n\t/** Determine if the command has any visible items */\n\tprivate readonly _visible = computed(() => this._command.items().some((item) => item.visible()));\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tif (this._visible()) {\n\t\t\t\tthis._viewContainerRef.clear();\n\t\t\t} else {\n\t\t\t\tthis._viewContainerRef.createEmbeddedView(this._templateRef);\n\t\t\t}\n\t\t});\n\t}\n}\n","import { ExistingProvider, InjectionToken, Type } from '@angular/core';\nimport type { BrnCommandItemDirective } from './brn-command-item.directive';\n\nexport const BrnCommandItemToken = new InjectionToken<BrnCommandItemDirective>('BrnCommandItemToken');\n\nexport function provideBrnCommandItem(command: Type<BrnCommandItemDirective>): ExistingProvider {\n\treturn { provide: BrnCommandItemToken, useExisting: command };\n}\n","import { computed, contentChildren, Directive, input } from '@angular/core';\nimport { BrnCommandItemToken } from './brn-command-item.token';\n\n@Directive({\n\tselector: '[brnCommandGroup]',\n\tstandalone: true,\n\thost: {\n\t\trole: 'group',\n\t\t'[attr.data-hidden]': '!visible() ? \"\" : null',\n\t\t'[id]': 'id()',\n\t},\n})\nexport class BrnCommandGroupDirective {\n\tprivate static _id = 0;\n\n\t/** The id of the command list */\n\tpublic readonly id = input<string>(`brn-command-group-${BrnCommandGroupDirective._id++}`);\n\n\t/** Get the items in the group */\n\tprivate readonly _items = contentChildren(BrnCommandItemToken, {\n\t\tdescendants: true,\n\t});\n\n\t/** Determine if there are any visible items in the group */\n\tprotected readonly visible = computed(() => this._items().some((item) => item.visible()));\n}\n","import { Highlightable } from '@angular/cdk/a11y';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n\tbooleanAttribute,\n\tcomputed,\n\tDirective,\n\tElementRef,\n\tHostListener,\n\tinject,\n\tinput,\n\tOnInit,\n\toutput,\n\tPLATFORM_ID,\n\tsignal,\n} from '@angular/core';\nimport { provideBrnCommandItem } from './brn-command-item.token';\nimport { injectBrnCommand } from './brn-command.token';\n\n@Directive({\n\tselector: 'button[brnCommandItem]',\n\tstandalone: true,\n\tproviders: [provideBrnCommandItem(BrnCommandItemDirective)],\n\thost: {\n\t\ttype: 'button',\n\t\trole: 'option',\n\t\ttabIndex: '-1',\n\t\t'[id]': 'id()',\n\t\t'[attr.disabled]': '_disabled() ? true : null',\n\t\t'[attr.data-value]': 'value()',\n\t\t'[attr.data-hidden]': \"!visible() ? '' : null\",\n\t\t'[attr.aria-selected]': 'active()',\n\t\t'[attr.data-selected]': \"active() ? '' : null\",\n\t},\n})\nexport class BrnCommandItemDirective implements Highlightable, OnInit {\n\tprivate static _id = 0;\n\n\tprivate readonly _platform = inject(PLATFORM_ID);\n\n\tprivate readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n\t/** Access the command component */\n\tprivate readonly _command = injectBrnCommand();\n\n\t/** A unique id for the item */\n\tpublic readonly id = input(`brn-command-item-${BrnCommandItemDirective._id++}`);\n\n\t/** The value this item represents. */\n\tpublic readonly value = input.required<string>();\n\n\t/** Whether the item is disabled. */\n\tpublic readonly _disabled = input<boolean, BooleanInput>(false, {\n\t\talias: 'disabled',\n\t\ttransform: booleanAttribute,\n\t});\n\n\t/** Expose disabled as a value - used by the Highlightable interface */\n\tpublic get disabled() {\n\t\treturn this._disabled();\n\t}\n\n\t/** Whether the item is initialized, this is to prevent accessing the value-input before the component is initialized.\n\t * The brn-command-empty directive accesses the value before the component is initialized, which causes an error.\n\t */\n\tprivate readonly _initialized = signal(false);\n\n\t/** Whether the item is selected. */\n\tprotected readonly active = signal(false);\n\n\t/** Emits when the item is selected. */\n\tpublic readonly selected = output<void>();\n\n\t/** @internal Determine if this item is visible based on the current search query */\n\tpublic readonly visible = computed(() => {\n\t\treturn this._command.filter()(this.safeValue(), this._command.search());\n\t});\n\n\t/** @internal Get the value of the item, with check if it has been initialized to avoid errors */\n\tpublic safeValue = computed(() => {\n\t\tif (!this._initialized()) {\n\t\t\treturn '';\n\t\t}\n\t\treturn this.value();\n\t});\n\n\t/** @internal Get the display value */\n\tpublic getLabel(): string {\n\t\treturn this.safeValue();\n\t}\n\n\t/** @internal */\n\tsetActiveStyles(): void {\n\t\tthis.active.set(true);\n\n\t\t// ensure the item is in view\n\t\tif (isPlatformBrowser(this._platform)) {\n\t\t\tthis._elementRef.nativeElement.scrollIntoView({ block: 'nearest' });\n\t\t}\n\t}\n\n\t/** @internal */\n\tsetInactiveStyles(): void {\n\t\tthis.active.set(false);\n\t}\n\n\t@HostListener('click')\n\tprotected onClick(): void {\n\t\tthis._command.keyManager.setActiveItem(this);\n\t\tthis.selected.emit();\n\t}\n\n\tngOnInit(): void {\n\t\tthis._initialized.set(true);\n\t}\n}\n","import { Directive, input } from '@angular/core';\n\n@Directive({\n\tstandalone: true,\n\tselector: '[brnCommandList]',\n\thost: {\n\t\trole: 'listbox',\n\t\t'[id]': 'id()',\n\t},\n})\nexport class BrnCommandListDirective {\n\tprivate static _id = 0;\n\n\t/** The id of the command list */\n\tpublic readonly id = input<string>(`brn-command-list-${BrnCommandListDirective._id++}`);\n}\n","import { ExistingProvider, InjectionToken, Type } from '@angular/core';\nimport type { BrnCommandSearchInputDirective } from './brn-command-search-input.directive';\n\nexport const BrnCommandSearchInputToken = new InjectionToken<BrnCommandSearchInputDirective>(\n\t'BrnCommandSearchInputToken',\n);\n\nexport function provideBrnCommandSearchInput(command: Type<BrnCommandSearchInputDirective>): ExistingProvider {\n\treturn { provide: BrnCommandSearchInputToken, useExisting: command };\n}\n","import { computed, Directive, effect, ElementRef, Inject, input, Optional, Renderer2, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { COMPOSITION_BUFFER_MODE, DefaultValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { startWith } from 'rxjs/operators';\nimport { provideBrnCommandSearchInput } from './brn-command-search-input.token';\nimport { injectBrnCommand } from './brn-command.token';\n\n@Directive({\n\tselector: 'input[brnCommandSearchInput]',\n\tstandalone: true,\n\tproviders: [\n\t\tprovideBrnCommandSearchInput(BrnCommandSearchInputDirective),\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: BrnCommandSearchInputDirective,\n\t\t\tmulti: true,\n\t\t},\n\t],\n\thost: {\n\t\trole: 'combobox',\n\t\t'aria-autocomplete': 'list',\n\t\t'[attr.aria-activedescendant]': '_activeDescendant()',\n\t\t'(keydown)': 'onKeyDown($event)',\n\t\t'(input)': 'onInput()',\n\t},\n})\nexport class BrnCommandSearchInputDirective extends DefaultValueAccessor {\n\tprivate readonly _command = injectBrnCommand();\n\n\t/** The initial value of the search input */\n\tpublic readonly value = input<string>('');\n\n\t/** @internal The mutable value of the search input */\n\tpublic readonly mutableValue = computed(() => signal(this.value()));\n\n\t/** @internal The \"real\" value of the search input */\n\tpublic readonly valueState = computed(() => this.mutableValue()());\n\n\t/** The id of the active option */\n\tprotected readonly _activeDescendant = signal<string | undefined>(undefined);\n\n\tconstructor(\n\t\trenderer: Renderer2,\n\t\tprivate readonly elementRef: ElementRef,\n\t\t@Optional() @Inject(COMPOSITION_BUFFER_MODE) compositionMode: boolean,\n\t) {\n\t\tsuper(renderer, elementRef, compositionMode);\n\t\tthis._command.keyManager.change\n\t\t\t.pipe(startWith(this._command.keyManager.activeItemIndex), takeUntilDestroyed())\n\t\t\t.subscribe(() => this._activeDescendant.set(this._command.keyManager.activeItem?.id()));\n\t\teffect(() => {\n\t\t\tthis.elementRef.nativeElement.value = this.valueState();\n\t\t});\n\t}\n\t/** Listen for changes to the input value */\n\tprotected onInput(): void {\n\t\tthis.mutableValue().set(this.elementRef.nativeElement.value);\n\t}\n\n\t/** Listen for keydown events */\n\tprotected onKeyDown(event: KeyboardEvent): void {\n\t\tthis._command.keyManager.onKeydown(event);\n\t}\n\n\t/** CONROL VALUE ACCESSOR */\n\toverride writeValue(value: string | null): void {\n\t\tsuper.writeValue(value);\n\t\tif (value) {\n\t\t\tthis.mutableValue().set(value);\n\t\t}\n\t}\n}\n","import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n\tAfterViewInit,\n\tcomputed,\n\tcontentChild,\n\tcontentChildren,\n\tDirective,\n\teffect,\n\tHostListener,\n\tinject,\n\tInjector,\n\tinput,\n\toutput,\n\tPLATFORM_ID,\n\tuntracked,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { BrnCommandItemToken } from './brn-command-item.token';\nimport { BrnCommandSearchInputDirective } from './brn-command-search-input.directive';\nimport { provideBrnCommand } from './brn-command.token';\n\n@Directive({\n\tselector: '[brnCommand]',\n\tstandalone: true,\n\tproviders: [provideBrnCommand(BrnCommandDirective)],\n\thost: {\n\t\t'[id]': 'id()',\n\t},\n})\nexport class BrnCommandDirective implements AfterViewInit {\n\tprivate static _id = 0;\n\n\tprivate readonly _platform = inject(PLATFORM_ID);\n\n\tprivate readonly _injector = inject(Injector);\n\n\t/** The id of the command */\n\tpublic readonly id = input<string>(`brn-command-${BrnCommandDirective._id++}`);\n\n\t/** The default filter function */\n\tprivate readonly _defaultFilter = (value: string, search: string) =>\n\t\tvalue.toLowerCase().includes(search.toLowerCase());\n\n\t/** A custom filter function to use when searching. */\n\tpublic readonly filter = input<CommandFilter>(this._defaultFilter);\n\n\t/** when the selection has changed */\n\tpublic readonly valueChange = output<string>();\n\n\t/** @internal The search query */\n\tpublic readonly search = computed(() => this._searchInput()?.valueState() ?? '');\n\n\t/** Access the search input if present */\n\tprivate readonly _searchInput = contentChild(BrnCommandSearchInputDirective, {\n\t\tdescendants: true,\n\t});\n\n\t/** @internal Access all the items within the commmand */\n\tpublic readonly items = contentChildren(BrnCommandItemToken, {\n\t\tdescendants: true,\n\t});\n\n\t/** @internal The key manager for managing active descendant */\n\tpublic readonly keyManager = new ActiveDescendantKeyManager(this.items, this._injector);\n\n\tconstructor() {\n\t\tthis.keyManager\n\t\t\t.withVerticalOrientation()\n\t\t\t.withHomeAndEnd()\n\t\t\t.withWrap()\n\t\t\t.skipPredicate((item) => item.disabled || !item.visible());\n\n\t\t// When clearing the search input we also want to reset the active item to the first one\n\t\teffect(() => {\n\t\t\tconst searchInput = this.search();\n\t\t\tuntracked(() => {\n\t\t\t\tconst activeItemIsVisible = this.keyManager.activeItem?.visible();\n\t\t\t\tif ((searchInput !== undefined && searchInput.length === 0) || !activeItemIsVisible) {\n\t\t\t\t\tthis.keyManager.setFirstItemActive();\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t\tthis.keyManager.change.pipe(takeUntilDestroyed()).subscribe(() => {\n\t\t\tconst value = this.keyManager.activeItem?.safeValue();\n\t\t\tif (value) {\n\t\t\t\tthis.valueChange.emit(value);\n\t\t\t}\n\t\t});\n\t}\n\n\tngAfterViewInit(): void {\n\t\tif (isPlatformBrowser(this._platform) && this.items().length) {\n\t\t\tthis.keyManager.setActiveItem(0);\n\t\t}\n\t}\n\n\t@HostListener('keydown.enter')\n\tprotected selectActiveItem(): void {\n\t\tthis.keyManager.activeItem?.selected.emit();\n\t}\n}\n\nexport type CommandFilter = (value: string, search: string) => boolean;\n","import { NgModule } from '@angular/core';\nimport { BrnCommandEmptyDirective } from './lib/brn-command-empty.directive';\nimport { BrnCommandGroupDirective } from './lib/brn-command-group.directive';\nimport { BrnCommandItemDirective } from './lib/brn-command-item.directive';\nimport { BrnCommandListDirective } from './lib/brn-command-list.directive';\nimport { BrnCommandSearchInputDirective } from './lib/brn-command-search-input.directive';\nimport { BrnCommandDirective } from './lib/brn-command.directive';\n\nexport * from './lib/brn-command-empty.directive';\nexport * from './lib/brn-command-group.directive';\nexport * from './lib/brn-command-item.directive';\nexport * from './lib/brn-command-item.token';\nexport * from './lib/brn-command-list.directive';\nexport * from './lib/brn-command-search-input.directive';\nexport * from './lib/brn-command-search-input.token';\nexport * from './lib/brn-command.directive';\nexport * from './lib/brn-command.token';\n\nexport const BrnCommandImports = [\n\tBrnCommandEmptyDirective,\n\tBrnCommandGroupDirective,\n\tBrnCommandItemDirective,\n\tBrnCommandListDirective,\n\tBrnCommandSearchInputDirective,\n\tBrnCommandDirective,\n] as const;\n\n@NgModule({\n\timports: [...BrnCommandImports],\n\texports: [...BrnCommandImports],\n})\nexport class BrnCommandModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;MAGa,eAAe,GAAG,IAAI,cAAc,CAAsB,iBAAiB;AAElF,SAAU,iBAAiB,CAAC,OAAkC,EAAA;IACnE,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,OAAO,EAAE;AAC1D;SAEgB,gBAAgB,GAAA;AAC/B,IAAA,OAAO,MAAM,CAAC,eAAe,CAAC;AAC/B;;MCJa,wBAAwB,CAAA;AACnB,IAAA,YAAY,GAAG,MAAM,CAAoB,WAAW,CAAC;AACrD,IAAA,iBAAiB,GAAG,MAAM,CAAC,gBAAgB,CAAC;IAC5C,QAAQ,GAAG,gBAAgB,EAAE;;IAG7B,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;AAEhG,IAAA,WAAA,GAAA;QACC,MAAM,CAAC,MAAK;AACX,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;AACpB,gBAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE;;iBACxB;gBACN,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC;;AAE9D,SAAC,CAAC;;0HAfS,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;8GAAxB,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAJpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,iBAAA;;;MCHY,mBAAmB,GAAG,IAAI,cAAc,CAA0B,qBAAqB;AAE9F,SAAU,qBAAqB,CAAC,OAAsC,EAAA;IAC3E,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,OAAO,EAAE;AAC9D;;MCKa,wBAAwB,CAAA;AAC5B,IAAA,OAAO,GAAG,GAAG,CAAC;;IAGN,EAAE,GAAG,KAAK,CAAS,CAAqB,kBAAA,EAAA,wBAAwB,CAAC,GAAG,EAAE,CAAE,CAAA,CAAC;;AAGxE,IAAA,MAAM,GAAG,eAAe,CAAC,mBAAmB,EAAE;AAC9D,QAAA,WAAW,EAAE,IAAI;AACjB,KAAA,CAAC;;IAGiB,OAAO,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;0HAZ7E,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAxB,uBAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,wVAOM,mBAAmB,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAPjD,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBATpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE;AACL,wBAAA,IAAI,EAAE,OAAO;AACb,wBAAA,oBAAoB,EAAE,wBAAwB;AAC9C,wBAAA,MAAM,EAAE,MAAM;AACd,qBAAA;AACD,iBAAA;;;MCwBY,uBAAuB,CAAA;AAC3B,IAAA,OAAO,GAAG,GAAG,CAAC;AAEL,IAAA,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC;AAE/B,IAAA,WAAW,GAAG,MAAM,CAA0B,UAAU,CAAC;;IAGzD,QAAQ,GAAG,gBAAgB,EAAE;;IAG9B,EAAE,GAAG,KAAK,CAAC,CAAoB,iBAAA,EAAA,uBAAuB,CAAC,GAAG,EAAE,CAAE,CAAA,CAAC;;AAG/D,IAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAU;;AAGhC,IAAA,SAAS,GAAG,KAAK,CAAwB,KAAK,EAAE;AAC/D,QAAA,KAAK,EAAE,UAAU;AACjB,QAAA,SAAS,EAAE,gBAAgB;AAC3B,KAAA,CAAC;;AAGF,IAAA,IAAW,QAAQ,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,SAAS,EAAE;;AAGxB;;AAEG;AACc,IAAA,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC;;AAG1B,IAAA,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC;;IAGzB,QAAQ,GAAG,MAAM,EAAQ;;AAGzB,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAK;AACvC,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;AACxE,KAAC,CAAC;;AAGK,IAAA,SAAS,GAAG,QAAQ,CAAC,MAAK;AAChC,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE;AACzB,YAAA,OAAO,EAAE;;AAEV,QAAA,OAAO,IAAI,CAAC,KAAK,EAAE;AACpB,KAAC,CAAC;;IAGK,QAAQ,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,SAAS,EAAE;;;IAIxB,eAAe,GAAA;AACd,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;;AAGrB,QAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;AACtC,YAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;;;;IAKrE,iBAAiB,GAAA;AAChB,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;;IAIb,OAAO,GAAA;QAChB,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC;AAC5C,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;;IAGrB,QAAQ,GAAA;AACP,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;;0HA9EhB,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAvB,uBAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,0zBAbxB,CAAC,qBAAqB,CAAC,uBAAuB,CAAC,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAa/C,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAhBnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,wBAAwB;AAClC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,SAAS,EAAE,CAAC,qBAAqB,CAAA,uBAAA,CAAyB,CAAC;AAC3D,oBAAA,IAAI,EAAE;AACL,wBAAA,IAAI,EAAE,QAAQ;AACd,wBAAA,IAAI,EAAE,QAAQ;AACd,wBAAA,QAAQ,EAAE,IAAI;AACd,wBAAA,MAAM,EAAE,MAAM;AACd,wBAAA,iBAAiB,EAAE,2BAA2B;AAC9C,wBAAA,mBAAmB,EAAE,SAAS;AAC9B,wBAAA,oBAAoB,EAAE,wBAAwB;AAC9C,wBAAA,sBAAsB,EAAE,UAAU;AAClC,wBAAA,sBAAsB,EAAE,sBAAsB;AAC9C,qBAAA;AACD,iBAAA;8BAyEU,OAAO,EAAA,CAAA;sBADhB,YAAY;uBAAC,OAAO;;;MChGT,uBAAuB,CAAA;AAC3B,IAAA,OAAO,GAAG,GAAG,CAAC;;IAGN,EAAE,GAAG,KAAK,CAAS,CAAoB,iBAAA,EAAA,uBAAuB,CAAC,GAAG,EAAE,CAAE,CAAA,CAAC;0HAJ3E,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;8GAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,SAAA,EAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBARnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,IAAI,EAAE;AACL,wBAAA,IAAI,EAAE,SAAS;AACf,wBAAA,MAAM,EAAE,MAAM;AACd,qBAAA;AACD,iBAAA;;;MCNY,0BAA0B,GAAG,IAAI,cAAc,CAC3D,4BAA4B;AAGvB,SAAU,4BAA4B,CAAC,OAA6C,EAAA;IACzF,OAAO,EAAE,OAAO,EAAE,0BAA0B,EAAE,WAAW,EAAE,OAAO,EAAE;AACrE;;ACiBM,MAAO,8BAA+B,SAAQ,oBAAoB,CAAA;AAiBrD,IAAA,UAAA;IAhBD,QAAQ,GAAG,gBAAgB,EAAE;;AAG9B,IAAA,KAAK,GAAG,KAAK,CAAS,EAAE,CAAC;;AAGzB,IAAA,YAAY,GAAG,QAAQ,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;;AAGnD,IAAA,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;;AAG/C,IAAA,iBAAiB,GAAG,MAAM,CAAqB,SAAS,CAAC;AAE5E,IAAA,WAAA,CACC,QAAmB,EACF,UAAsB,EACM,eAAwB,EAAA;AAErE,QAAA,KAAK,CAAC,QAAQ,EAAE,UAAU,EAAE,eAAe,CAAC;QAH3B,IAAU,CAAA,UAAA,GAAV,UAAU;AAI3B,QAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;AACvB,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,kBAAkB,EAAE;aAC9E,SAAS,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;QACxF,MAAM,CAAC,MAAK;YACX,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE;AACxD,SAAC,CAAC;;;IAGO,OAAO,GAAA;AAChB,QAAA,IAAI,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC;;;AAInD,IAAA,SAAS,CAAC,KAAoB,EAAA;QACvC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC;;;AAIjC,IAAA,UAAU,CAAC,KAAoB,EAAA;AACvC,QAAA,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC;QACvB,IAAI,KAAK,EAAE;YACV,IAAI,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;;;AA1CpB,uBAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,8BAA8B,qEAkBrB,uBAAuB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAlBhC,uBAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,8BAA8B,EAhB/B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,OAAA,EAAA,WAAA,EAAA,EAAA,UAAA,EAAA,EAAA,4BAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,SAAA,EAAA;YACV,4BAA4B,CAAC,8BAA8B,CAAC;AAC5D,YAAA;AACC,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,8BAA8B;AAC3C,gBAAA,KAAK,EAAE,IAAI;AACX,aAAA;AACD,SAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FASW,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAnB1C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,8BAA8B;AACxC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,SAAS,EAAE;AACV,wBAAA,4BAA4B,CAAgC,8BAAA,CAAA;AAC5D,wBAAA;AACC,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAgC,8BAAA;AAC3C,4BAAA,KAAK,EAAE,IAAI;AACX,yBAAA;AACD,qBAAA;AACD,oBAAA,IAAI,EAAE;AACL,wBAAA,IAAI,EAAE,UAAU;AAChB,wBAAA,mBAAmB,EAAE,MAAM;AAC3B,wBAAA,8BAA8B,EAAE,qBAAqB;AACrD,wBAAA,WAAW,EAAE,mBAAmB;AAChC,wBAAA,SAAS,EAAE,WAAW;AACtB,qBAAA;AACD,iBAAA;;0BAmBE;;0BAAY,MAAM;2BAAC,uBAAuB;;;MCdhC,mBAAmB,CAAA;AACvB,IAAA,OAAO,GAAG,GAAG,CAAC;AAEL,IAAA,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC;AAE/B,IAAA,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;;IAG7B,EAAE,GAAG,KAAK,CAAS,CAAe,YAAA,EAAA,mBAAmB,CAAC,GAAG,EAAE,CAAE,CAAA,CAAC;;IAG7D,cAAc,GAAG,CAAC,KAAa,EAAE,MAAc,KAC/D,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;;AAGnC,IAAA,MAAM,GAAG,KAAK,CAAgB,IAAI,CAAC,cAAc,CAAC;;IAGlD,WAAW,GAAG,MAAM,EAAU;;AAG9B,IAAA,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;;AAG/D,IAAA,YAAY,GAAG,YAAY,CAAC,8BAA8B,EAAE;AAC5E,QAAA,WAAW,EAAE,IAAI;AACjB,KAAA,CAAC;;AAGc,IAAA,KAAK,GAAG,eAAe,CAAC,mBAAmB,EAAE;AAC5D,QAAA,WAAW,EAAE,IAAI;AACjB,KAAA,CAAC;;AAGc,IAAA,UAAU,GAAG,IAAI,0BAA0B,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC;AAEvF,IAAA,WAAA,GAAA;AACC,QAAA,IAAI,CAAC;AACH,aAAA,uBAAuB;AACvB,aAAA,cAAc;AACd,aAAA,QAAQ;AACR,aAAA,aAAa,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;;QAG3D,MAAM,CAAC,MAAK;AACX,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE;YACjC,SAAS,CAAC,MAAK;gBACd,MAAM,mBAAmB,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,EAAE;AACjE,gBAAA,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,KAAK,CAAC,mBAAmB,EAAE;AACpF,oBAAA,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE;;AAEtC,aAAC,CAAC;AACH,SAAC,CAAC;AAEF,QAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,SAAS,CAAC,MAAK;YAChE,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,SAAS,EAAE;YACrD,IAAI,KAAK,EAAE;AACV,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;;AAE9B,SAAC,CAAC;;IAGH,eAAe,GAAA;AACd,QAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE;AAC7D,YAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;;;IAKxB,gBAAgB,GAAA;QACzB,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAE;;0HAtEhC,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;8GAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,EAAA,SAAA,EALpB,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EA6BN,8BAA8B,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAKnC,mBAAmB,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FA7B/C,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAR/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,SAAS,EAAE,CAAC,iBAAiB,CAAA,mBAAA,CAAqB,CAAC;AACnD,oBAAA,IAAI,EAAE;AACL,wBAAA,MAAM,EAAE,MAAM;AACd,qBAAA;AACD,iBAAA;wDAsEU,gBAAgB,EAAA,CAAA;sBADzB,YAAY;uBAAC,eAAe;;;AChFjB,MAAA,iBAAiB,GAAG;IAChC,wBAAwB;IACxB,wBAAwB;IACxB,uBAAuB;IACvB,uBAAuB;IACvB,8BAA8B;IAC9B,mBAAmB;;MAOP,gBAAgB,CAAA;0HAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAhB,uBAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,YAZ5B,wBAAwB;YACxB,wBAAwB;YACxB,uBAAuB;YACvB,uBAAuB;YACvB,8BAA8B;AAC9B,YAAA,mBAAmB,aALnB,wBAAwB;YACxB,wBAAwB;YACxB,uBAAuB;YACvB,uBAAuB;YACvB,8BAA8B;YAC9B,mBAAmB,CAAA,EAAA,CAAA;2HAOP,gBAAgB,EAAA,CAAA;;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAJ5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,OAAO,EAAE,CAAC,GAAG,iBAAiB,CAAC;AAC/B,oBAAA,OAAO,EAAE,CAAC,GAAG,iBAAiB,CAAC;AAC/B,iBAAA;;;AC9BD;;AAEG;;;;"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
@plugin "tailwindcss-animate";
|
|
2
|
+
|
|
3
|
+
@theme {
|
|
4
|
+
--color-border: hsl(var(--border));
|
|
5
|
+
--color-input: hsl(var(--input));
|
|
6
|
+
--color-ring: hsl(var(--ring));
|
|
7
|
+
--color-background: hsl(var(--background));
|
|
8
|
+
--color-foreground: hsl(var(--foreground));
|
|
9
|
+
--color-primary: hsl(var(--primary));
|
|
10
|
+
--color-primary-foreground: hsl(var(--primary-foreground));
|
|
11
|
+
--color-secondary: hsl(var(--secondary));
|
|
12
|
+
--color-secondary-foreground: hsl(var(--secondary-foreground));
|
|
13
|
+
--color-destructive: hsl(var(--destructive));
|
|
14
|
+
--color-destructive-foreground: hsl(var(--destructive-foreground));
|
|
15
|
+
--color-muted: hsl(var(--muted));
|
|
16
|
+
--color-muted-foreground: hsl(var(--muted-foreground));
|
|
17
|
+
--color-accent: hsl(var(--accent));
|
|
18
|
+
--color-accent-foreground: hsl(var(--accent-foreground));
|
|
19
|
+
--color-popover: hsl(var(--popover));
|
|
20
|
+
--color-popover-foreground: hsl(var(--popover-foreground));
|
|
21
|
+
--color-card: hsl(var(--card));
|
|
22
|
+
--color-card-foreground: hsl(var(--card-foreground));
|
|
23
|
+
|
|
24
|
+
--radius-lg: var(--radius);
|
|
25
|
+
--radius-md: calc(var(--radius) - 2px);
|
|
26
|
+
--radius-sm: calc(var(--radius) - 4px);
|
|
27
|
+
|
|
28
|
+
--animation-indeterminate: indeterminate 4s ease-in-out;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
@keyframes indeterminate {
|
|
32
|
+
0% {
|
|
33
|
+
transform: translateX(-100%) scaleX(0.5);
|
|
34
|
+
}
|
|
35
|
+
100% {
|
|
36
|
+
transform: translateX(100%) scaleX(0.5);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
@utility container {
|
|
41
|
+
margin-inline: auto;
|
|
42
|
+
padding-inline: 2rem;
|
|
43
|
+
}
|
package/package.json
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@spartan-ng/brain",
|
|
3
|
-
"version": "0.0.1-alpha.
|
|
3
|
+
"version": "0.0.1-alpha.405",
|
|
4
4
|
"sideEffects": false,
|
|
5
5
|
"exports": {
|
|
6
6
|
"./hlm-tailwind-preset": {
|
|
7
7
|
"default": "./hlm-tailwind-preset.js"
|
|
8
8
|
},
|
|
9
|
+
"./hlm-tailwind-preset.css": "./hlm-tailwind-preset.css",
|
|
9
10
|
"./package.json": {
|
|
10
11
|
"default": "./package.json"
|
|
11
12
|
},
|