@spartan-ng/brain 0.0.1-alpha.395 → 0.0.1-alpha.397

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.
Files changed (35) hide show
  1. package/command/index.d.ts +19 -24
  2. package/command/lib/brn-command-empty.directive.d.ts +8 -3
  3. package/command/lib/brn-command-group.directive.d.ts +12 -0
  4. package/command/lib/brn-command-item.directive.d.ts +30 -3
  5. package/command/lib/brn-command-item.token.d.ts +4 -0
  6. package/command/lib/brn-command-list.directive.d.ts +8 -0
  7. package/command/lib/brn-command-search-input.directive.d.ts +16 -0
  8. package/command/lib/brn-command-search-input.token.d.ts +4 -0
  9. package/command/lib/brn-command.directive.d.ts +28 -0
  10. package/command/lib/brn-command.token.d.ts +5 -0
  11. package/esm2022/command/index.mjs +26 -42
  12. package/esm2022/command/lib/brn-command-empty.directive.mjs +23 -22
  13. package/esm2022/command/lib/brn-command-group.directive.mjs +29 -0
  14. package/esm2022/command/lib/brn-command-item.directive.mjs +68 -28
  15. package/esm2022/command/lib/brn-command-item.token.mjs +6 -0
  16. package/esm2022/command/lib/brn-command-list.directive.mjs +21 -0
  17. package/esm2022/command/lib/brn-command-search-input.directive.mjs +49 -0
  18. package/esm2022/command/lib/brn-command-search-input.token.mjs +6 -0
  19. package/esm2022/command/lib/brn-command.directive.mjs +63 -0
  20. package/esm2022/command/lib/brn-command.token.mjs +9 -0
  21. package/fesm2022/spartan-ng-brain-command.mjs +233 -213
  22. package/fesm2022/spartan-ng-brain-command.mjs.map +1 -1
  23. package/package.json +1 -13
  24. package/command/lib/brn-command-group.component.d.ts +0 -6
  25. package/command/lib/brn-command-input.directive.d.ts +0 -6
  26. package/command/lib/brn-command-list.component.d.ts +0 -6
  27. package/command/lib/brn-command-loader.directive.d.ts +0 -6
  28. package/command/lib/brn-command-separator.component.d.ts +0 -6
  29. package/command/lib/brn-command.component.d.ts +0 -6
  30. package/esm2022/command/lib/brn-command-group.component.mjs +0 -45
  31. package/esm2022/command/lib/brn-command-input.directive.mjs +0 -29
  32. package/esm2022/command/lib/brn-command-list.component.mjs +0 -35
  33. package/esm2022/command/lib/brn-command-loader.directive.mjs +0 -29
  34. package/esm2022/command/lib/brn-command-separator.component.mjs +0 -30
  35. package/esm2022/command/lib/brn-command.component.mjs +0 -21
@@ -0,0 +1,49 @@
1
+ import { Directive, ElementRef, HostListener, inject, signal } from '@angular/core';
2
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
3
+ import { startWith } from 'rxjs/operators';
4
+ import { provideBrnCommandSearchInput } from './brn-command-search-input.token';
5
+ import { injectBrnCommand } from './brn-command.token';
6
+ import * as i0 from "@angular/core";
7
+ export class BrnCommandSearchInputDirective {
8
+ _command = injectBrnCommand();
9
+ _elementRef = inject(ElementRef);
10
+ /** @internal Expose the current text value */
11
+ value = signal('');
12
+ /** The id of the active option */
13
+ _activeDescendant = signal(undefined);
14
+ constructor() {
15
+ this._command.keyManager.change
16
+ .pipe(startWith(this._command.keyManager.activeItemIndex), takeUntilDestroyed())
17
+ .subscribe(() => this._activeDescendant.set(this._command.keyManager.activeItem?.id()));
18
+ }
19
+ /** Listen for changes to the input value */
20
+ onInput() {
21
+ this.value.set(this._elementRef.nativeElement.value);
22
+ }
23
+ /** Listen for keydown events */
24
+ onKeyDown(event) {
25
+ this._command.keyManager.onKeydown(event);
26
+ }
27
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnCommandSearchInputDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
28
+ /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.5", type: BrnCommandSearchInputDirective, isStandalone: true, selector: "input[brnCommandSearchInput]", host: { attributes: { "role": "combobox", "aria-autocomplete": "list" }, listeners: { "input": "onInput()", "keydown": "onKeyDown($event)" }, properties: { "attr.aria-activedescendant": "_activeDescendant()" } }, providers: [provideBrnCommandSearchInput(BrnCommandSearchInputDirective)], ngImport: i0 });
29
+ }
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnCommandSearchInputDirective, decorators: [{
31
+ type: Directive,
32
+ args: [{
33
+ selector: 'input[brnCommandSearchInput]',
34
+ standalone: true,
35
+ providers: [provideBrnCommandSearchInput(BrnCommandSearchInputDirective)],
36
+ host: {
37
+ role: 'combobox',
38
+ 'aria-autocomplete': 'list',
39
+ '[attr.aria-activedescendant]': '_activeDescendant()',
40
+ },
41
+ }]
42
+ }], ctorParameters: () => [], propDecorators: { onInput: [{
43
+ type: HostListener,
44
+ args: ['input']
45
+ }], onKeyDown: [{
46
+ type: HostListener,
47
+ args: ['keydown', ['$event']]
48
+ }] } });
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLWNvbW1hbmQtc2VhcmNoLWlucHV0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYnJhaW4vY29tbWFuZC9zcmMvbGliL2Jybi1jb21tYW5kLXNlYXJjaC1pbnB1dC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQVl2RCxNQUFNLE9BQU8sOEJBQThCO0lBQ3pCLFFBQVEsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzlCLFdBQVcsR0FBRyxNQUFNLENBQStCLFVBQVUsQ0FBQyxDQUFDO0lBRWhGLDhDQUE4QztJQUM5QixLQUFLLEdBQUcsTUFBTSxDQUFTLEVBQUUsQ0FBQyxDQUFDO0lBRTNDLGtDQUFrQztJQUNmLGlCQUFpQixHQUFHLE1BQU0sQ0FBcUIsU0FBUyxDQUFDLENBQUM7SUFFN0U7UUFDQyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxNQUFNO2FBQzdCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQzthQUMvRSxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzFGLENBQUM7SUFFRCw0Q0FBNEM7SUFFbEMsT0FBTztRQUNoQixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsZ0NBQWdDO0lBRXRCLFNBQVMsQ0FBQyxLQUFvQjtRQUN2QyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0MsQ0FBQzswSEExQlcsOEJBQThCOzhHQUE5Qiw4QkFBOEIsZ1NBUC9CLENBQUMsNEJBQTRCLENBQUMsOEJBQThCLENBQUMsQ0FBQzs7MkZBTzdELDhCQUE4QjtrQkFWMUMsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsOEJBQThCO29CQUN4QyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsU0FBUyxFQUFFLENBQUMsNEJBQTRCLGdDQUFnQyxDQUFDO29CQUN6RSxJQUFJLEVBQUU7d0JBQ0wsSUFBSSxFQUFFLFVBQVU7d0JBQ2hCLG1CQUFtQixFQUFFLE1BQU07d0JBQzNCLDhCQUE4QixFQUFFLHFCQUFxQjtxQkFDckQ7aUJBQ0Q7d0RBbUJVLE9BQU87c0JBRGhCLFlBQVk7dUJBQUMsT0FBTztnQkFPWCxTQUFTO3NCQURsQixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBpbmplY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgc3RhcnRXaXRoIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgcHJvdmlkZUJybkNvbW1hbmRTZWFyY2hJbnB1dCB9IGZyb20gJy4vYnJuLWNvbW1hbmQtc2VhcmNoLWlucHV0LnRva2VuJztcbmltcG9ydCB7IGluamVjdEJybkNvbW1hbmQgfSBmcm9tICcuL2Jybi1jb21tYW5kLnRva2VuJztcblxuQERpcmVjdGl2ZSh7XG5cdHNlbGVjdG9yOiAnaW5wdXRbYnJuQ29tbWFuZFNlYXJjaElucHV0XScsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHByb3ZpZGVyczogW3Byb3ZpZGVCcm5Db21tYW5kU2VhcmNoSW5wdXQoQnJuQ29tbWFuZFNlYXJjaElucHV0RGlyZWN0aXZlKV0sXG5cdGhvc3Q6IHtcblx0XHRyb2xlOiAnY29tYm9ib3gnLFxuXHRcdCdhcmlhLWF1dG9jb21wbGV0ZSc6ICdsaXN0Jyxcblx0XHQnW2F0dHIuYXJpYS1hY3RpdmVkZXNjZW5kYW50XSc6ICdfYWN0aXZlRGVzY2VuZGFudCgpJyxcblx0fSxcbn0pXG5leHBvcnQgY2xhc3MgQnJuQ29tbWFuZFNlYXJjaElucHV0RGlyZWN0aXZlIHtcblx0cHJpdmF0ZSByZWFkb25seSBfY29tbWFuZCA9IGluamVjdEJybkNvbW1hbmQoKTtcblx0cHJpdmF0ZSByZWFkb25seSBfZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+PihFbGVtZW50UmVmKTtcblxuXHQvKiogQGludGVybmFsIEV4cG9zZSB0aGUgY3VycmVudCB0ZXh0IHZhbHVlICovXG5cdHB1YmxpYyByZWFkb25seSB2YWx1ZSA9IHNpZ25hbDxzdHJpbmc+KCcnKTtcblxuXHQvKiogVGhlIGlkIG9mIHRoZSBhY3RpdmUgb3B0aW9uICovXG5cdHByb3RlY3RlZCByZWFkb25seSBfYWN0aXZlRGVzY2VuZGFudCA9IHNpZ25hbDxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0dGhpcy5fY29tbWFuZC5rZXlNYW5hZ2VyLmNoYW5nZVxuXHRcdFx0LnBpcGUoc3RhcnRXaXRoKHRoaXMuX2NvbW1hbmQua2V5TWFuYWdlci5hY3RpdmVJdGVtSW5kZXgpLCB0YWtlVW50aWxEZXN0cm95ZWQoKSlcblx0XHRcdC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5fYWN0aXZlRGVzY2VuZGFudC5zZXQodGhpcy5fY29tbWFuZC5rZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0/LmlkKCkpKTtcblx0fVxuXG5cdC8qKiBMaXN0ZW4gZm9yIGNoYW5nZXMgdG8gdGhlIGlucHV0IHZhbHVlICovXG5cdEBIb3N0TGlzdGVuZXIoJ2lucHV0Jylcblx0cHJvdGVjdGVkIG9uSW5wdXQoKTogdm9pZCB7XG5cdFx0dGhpcy52YWx1ZS5zZXQodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlKTtcblx0fVxuXG5cdC8qKiBMaXN0ZW4gZm9yIGtleWRvd24gZXZlbnRzICovXG5cdEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuXHRwcm90ZWN0ZWQgb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG5cdFx0dGhpcy5fY29tbWFuZC5rZXlNYW5hZ2VyLm9uS2V5ZG93bihldmVudCk7XG5cdH1cbn1cbiJdfQ==
@@ -0,0 +1,6 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ export const BrnCommandSearchInputToken = new InjectionToken('BrnCommandSearchInputToken');
3
+ export function provideBrnCommandSearchInput(command) {
4
+ return { provide: BrnCommandSearchInputToken, useExisting: command };
5
+ }
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLWNvbW1hbmQtc2VhcmNoLWlucHV0LnRva2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9icmFpbi9jb21tYW5kL3NyYy9saWIvYnJuLWNvbW1hbmQtc2VhcmNoLWlucHV0LnRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0IsY0FBYyxFQUFRLE1BQU0sZUFBZSxDQUFDO0FBR3ZFLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLElBQUksY0FBYyxDQUMzRCw0QkFBNEIsQ0FDNUIsQ0FBQztBQUVGLE1BQU0sVUFBVSw0QkFBNEIsQ0FBQyxPQUE2QztJQUN6RixPQUFPLEVBQUUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsQ0FBQztBQUN0RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXhpc3RpbmdQcm92aWRlciwgSW5qZWN0aW9uVG9rZW4sIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHsgQnJuQ29tbWFuZFNlYXJjaElucHV0RGlyZWN0aXZlIH0gZnJvbSAnLi9icm4tY29tbWFuZC1zZWFyY2gtaW5wdXQuZGlyZWN0aXZlJztcblxuZXhwb3J0IGNvbnN0IEJybkNvbW1hbmRTZWFyY2hJbnB1dFRva2VuID0gbmV3IEluamVjdGlvblRva2VuPEJybkNvbW1hbmRTZWFyY2hJbnB1dERpcmVjdGl2ZT4oXG5cdCdCcm5Db21tYW5kU2VhcmNoSW5wdXRUb2tlbicsXG4pO1xuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUJybkNvbW1hbmRTZWFyY2hJbnB1dChjb21tYW5kOiBUeXBlPEJybkNvbW1hbmRTZWFyY2hJbnB1dERpcmVjdGl2ZT4pOiBFeGlzdGluZ1Byb3ZpZGVyIHtcblx0cmV0dXJuIHsgcHJvdmlkZTogQnJuQ29tbWFuZFNlYXJjaElucHV0VG9rZW4sIHVzZUV4aXN0aW5nOiBjb21tYW5kIH07XG59XG4iXX0=
@@ -0,0 +1,63 @@
1
+ import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';
2
+ import { isPlatformBrowser } from '@angular/common';
3
+ import { computed, contentChild, contentChildren, Directive, HostListener, inject, Injector, input, PLATFORM_ID, } from '@angular/core';
4
+ import { BrnCommandItemToken } from './brn-command-item.token';
5
+ import { BrnCommandSearchInputDirective } from './brn-command-search-input.directive';
6
+ import { provideBrnCommand } from './brn-command.token';
7
+ import * as i0 from "@angular/core";
8
+ export class BrnCommandDirective {
9
+ static _id = 0;
10
+ _platform = inject(PLATFORM_ID);
11
+ _injector = inject(Injector);
12
+ /** The id of the command */
13
+ id = input(`brn-command-${BrnCommandDirective._id++}`);
14
+ /** The default filter function */
15
+ _defaultFilter = (value, search) => value.toLowerCase().includes(search.toLowerCase());
16
+ /** A custom filter function to use when searching. */
17
+ filter = input(this._defaultFilter);
18
+ /** @internal The search query */
19
+ search = computed(() => this._searchInput()?.value() ?? '');
20
+ /** Access the search input if present */
21
+ _searchInput = contentChild(BrnCommandSearchInputDirective, {
22
+ descendants: true,
23
+ });
24
+ /** @internal Access all the items within the commmand */
25
+ items = contentChildren(BrnCommandItemToken, {
26
+ descendants: true,
27
+ });
28
+ /** @internal The key manager for managing active descendant */
29
+ keyManager = new ActiveDescendantKeyManager(this.items, this._injector);
30
+ constructor() {
31
+ this.keyManager
32
+ .withVerticalOrientation()
33
+ .withHomeAndEnd()
34
+ .withWrap()
35
+ .withTypeAhead()
36
+ .skipPredicate((item) => item.disabled || !item.visible());
37
+ }
38
+ ngAfterViewInit() {
39
+ if (isPlatformBrowser(this._platform) && this.items().length) {
40
+ this.keyManager.setActiveItem(0);
41
+ }
42
+ }
43
+ selectActiveItem() {
44
+ this.keyManager.activeItem?.selected.emit();
45
+ }
46
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnCommandDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
47
+ /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "18.2.5", type: BrnCommandDirective, isStandalone: true, selector: "[brnCommand]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, filter: { classPropertyName: "filter", publicName: "filter", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "keydown.enter": "selectActiveItem()" }, properties: { "id": "id()" } }, providers: [provideBrnCommand(BrnCommandDirective)], queries: [{ propertyName: "_searchInput", first: true, predicate: BrnCommandSearchInputDirective, descendants: true, isSignal: true }, { propertyName: "items", predicate: BrnCommandItemToken, descendants: true, isSignal: true }], ngImport: i0 });
48
+ }
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnCommandDirective, decorators: [{
50
+ type: Directive,
51
+ args: [{
52
+ selector: '[brnCommand]',
53
+ standalone: true,
54
+ providers: [provideBrnCommand(BrnCommandDirective)],
55
+ host: {
56
+ '[id]': 'id()',
57
+ },
58
+ }]
59
+ }], ctorParameters: () => [], propDecorators: { selectActiveItem: [{
60
+ type: HostListener,
61
+ args: ['keydown.enter']
62
+ }] } });
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLWNvbW1hbmQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9icmFpbi9jb21tYW5kL3NyYy9saWIvYnJuLWNvbW1hbmQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFFTixRQUFRLEVBQ1IsWUFBWSxFQUNaLGVBQWUsRUFDZixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxFQUNMLFdBQVcsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN0RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFVeEQsTUFBTSxPQUFPLG1CQUFtQjtJQUN2QixNQUFNLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztJQUVOLFNBQVMsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFaEMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUU5Qyw0QkFBNEI7SUFDWixFQUFFLEdBQUcsS0FBSyxDQUFTLGVBQWUsbUJBQW1CLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRS9FLGtDQUFrQztJQUNqQixjQUFjLEdBQUcsQ0FBQyxLQUFhLEVBQUUsTUFBYyxFQUFFLEVBQUUsQ0FDbkUsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUVwRCxzREFBc0Q7SUFDdEMsTUFBTSxHQUFHLEtBQUssQ0FBZ0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBRW5FLGlDQUFpQztJQUNqQixNQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUU1RSx5Q0FBeUM7SUFDeEIsWUFBWSxHQUFHLFlBQVksQ0FBQyw4QkFBOEIsRUFBRTtRQUM1RSxXQUFXLEVBQUUsSUFBSTtLQUNqQixDQUFDLENBQUM7SUFFSCx5REFBeUQ7SUFDekMsS0FBSyxHQUFHLGVBQWUsQ0FBQyxtQkFBbUIsRUFBRTtRQUM1RCxXQUFXLEVBQUUsSUFBSTtLQUNqQixDQUFDLENBQUM7SUFFSCwrREFBK0Q7SUFDL0MsVUFBVSxHQUFHLElBQUksMEJBQTBCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFeEY7UUFDQyxJQUFJLENBQUMsVUFBVTthQUNiLHVCQUF1QixFQUFFO2FBQ3pCLGNBQWMsRUFBRTthQUNoQixRQUFRLEVBQUU7YUFDVixhQUFhLEVBQUU7YUFDZixhQUFhLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsZUFBZTtRQUNkLElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM5RCxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsQyxDQUFDO0lBQ0YsQ0FBQztJQUdTLGdCQUFnQjtRQUN6QixJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDN0MsQ0FBQzswSEFuRFcsbUJBQW1COzhHQUFuQixtQkFBbUIsK1lBTHBCLENBQUMsaUJBQWlCLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxvRUEwQk4sOEJBQThCLDJFQUtuQyxtQkFBbUI7OzJGQTFCL0MsbUJBQW1CO2tCQVIvQixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxjQUFjO29CQUN4QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsU0FBUyxFQUFFLENBQUMsaUJBQWlCLHFCQUFxQixDQUFDO29CQUNuRCxJQUFJLEVBQUU7d0JBQ0wsTUFBTSxFQUFFLE1BQU07cUJBQ2Q7aUJBQ0Q7d0RBa0RVLGdCQUFnQjtzQkFEekIsWUFBWTt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuXHRBZnRlclZpZXdJbml0LFxuXHRjb21wdXRlZCxcblx0Y29udGVudENoaWxkLFxuXHRjb250ZW50Q2hpbGRyZW4sXG5cdERpcmVjdGl2ZSxcblx0SG9zdExpc3RlbmVyLFxuXHRpbmplY3QsXG5cdEluamVjdG9yLFxuXHRpbnB1dCxcblx0UExBVEZPUk1fSUQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnJuQ29tbWFuZEl0ZW1Ub2tlbiB9IGZyb20gJy4vYnJuLWNvbW1hbmQtaXRlbS50b2tlbic7XG5pbXBvcnQgeyBCcm5Db21tYW5kU2VhcmNoSW5wdXREaXJlY3RpdmUgfSBmcm9tICcuL2Jybi1jb21tYW5kLXNlYXJjaC1pbnB1dC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgcHJvdmlkZUJybkNvbW1hbmQgfSBmcm9tICcuL2Jybi1jb21tYW5kLnRva2VuJztcblxuQERpcmVjdGl2ZSh7XG5cdHNlbGVjdG9yOiAnW2JybkNvbW1hbmRdJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0cHJvdmlkZXJzOiBbcHJvdmlkZUJybkNvbW1hbmQoQnJuQ29tbWFuZERpcmVjdGl2ZSldLFxuXHRob3N0OiB7XG5cdFx0J1tpZF0nOiAnaWQoKScsXG5cdH0sXG59KVxuZXhwb3J0IGNsYXNzIEJybkNvbW1hbmREaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcblx0cHJpdmF0ZSBzdGF0aWMgX2lkID0gMDtcblxuXHRwcml2YXRlIHJlYWRvbmx5IF9wbGF0Zm9ybSA9IGluamVjdChQTEFURk9STV9JRCk7XG5cblx0cHJpdmF0ZSByZWFkb25seSBfaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuXG5cdC8qKiBUaGUgaWQgb2YgdGhlIGNvbW1hbmQgKi9cblx0cHVibGljIHJlYWRvbmx5IGlkID0gaW5wdXQ8c3RyaW5nPihgYnJuLWNvbW1hbmQtJHtCcm5Db21tYW5kRGlyZWN0aXZlLl9pZCsrfWApO1xuXG5cdC8qKiBUaGUgZGVmYXVsdCBmaWx0ZXIgZnVuY3Rpb24gKi9cblx0cHJpdmF0ZSByZWFkb25seSBfZGVmYXVsdEZpbHRlciA9ICh2YWx1ZTogc3RyaW5nLCBzZWFyY2g6IHN0cmluZykgPT5cblx0XHR2YWx1ZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaC50b0xvd2VyQ2FzZSgpKTtcblxuXHQvKiogQSBjdXN0b20gZmlsdGVyIGZ1bmN0aW9uIHRvIHVzZSB3aGVuIHNlYXJjaGluZy4gKi9cblx0cHVibGljIHJlYWRvbmx5IGZpbHRlciA9IGlucHV0PENvbW1hbmRGaWx0ZXI+KHRoaXMuX2RlZmF1bHRGaWx0ZXIpO1xuXG5cdC8qKiBAaW50ZXJuYWwgVGhlIHNlYXJjaCBxdWVyeSAqL1xuXHRwdWJsaWMgcmVhZG9ubHkgc2VhcmNoID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5fc2VhcmNoSW5wdXQoKT8udmFsdWUoKSA/PyAnJyk7XG5cblx0LyoqIEFjY2VzcyB0aGUgc2VhcmNoIGlucHV0IGlmIHByZXNlbnQgKi9cblx0cHJpdmF0ZSByZWFkb25seSBfc2VhcmNoSW5wdXQgPSBjb250ZW50Q2hpbGQoQnJuQ29tbWFuZFNlYXJjaElucHV0RGlyZWN0aXZlLCB7XG5cdFx0ZGVzY2VuZGFudHM6IHRydWUsXG5cdH0pO1xuXG5cdC8qKiBAaW50ZXJuYWwgQWNjZXNzIGFsbCB0aGUgaXRlbXMgd2l0aGluIHRoZSBjb21tbWFuZCAqL1xuXHRwdWJsaWMgcmVhZG9ubHkgaXRlbXMgPSBjb250ZW50Q2hpbGRyZW4oQnJuQ29tbWFuZEl0ZW1Ub2tlbiwge1xuXHRcdGRlc2NlbmRhbnRzOiB0cnVlLFxuXHR9KTtcblxuXHQvKiogQGludGVybmFsIFRoZSBrZXkgbWFuYWdlciBmb3IgbWFuYWdpbmcgYWN0aXZlIGRlc2NlbmRhbnQgKi9cblx0cHVibGljIHJlYWRvbmx5IGtleU1hbmFnZXIgPSBuZXcgQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIodGhpcy5pdGVtcywgdGhpcy5faW5qZWN0b3IpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdHRoaXMua2V5TWFuYWdlclxuXHRcdFx0LndpdGhWZXJ0aWNhbE9yaWVudGF0aW9uKClcblx0XHRcdC53aXRoSG9tZUFuZEVuZCgpXG5cdFx0XHQud2l0aFdyYXAoKVxuXHRcdFx0LndpdGhUeXBlQWhlYWQoKVxuXHRcdFx0LnNraXBQcmVkaWNhdGUoKGl0ZW0pID0+IGl0ZW0uZGlzYWJsZWQgfHwgIWl0ZW0udmlzaWJsZSgpKTtcblx0fVxuXG5cdG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcblx0XHRpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5fcGxhdGZvcm0pICYmIHRoaXMuaXRlbXMoKS5sZW5ndGgpIHtcblx0XHRcdHRoaXMua2V5TWFuYWdlci5zZXRBY3RpdmVJdGVtKDApO1xuXHRcdH1cblx0fVxuXG5cdEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uZW50ZXInKVxuXHRwcm90ZWN0ZWQgc2VsZWN0QWN0aXZlSXRlbSgpOiB2b2lkIHtcblx0XHR0aGlzLmtleU1hbmFnZXIuYWN0aXZlSXRlbT8uc2VsZWN0ZWQuZW1pdCgpO1xuXHR9XG59XG5cbmV4cG9ydCB0eXBlIENvbW1hbmRGaWx0ZXIgPSAodmFsdWU6IHN0cmluZywgc2VhcmNoOiBzdHJpbmcpID0+IGJvb2xlYW47XG4iXX0=
@@ -0,0 +1,9 @@
1
+ import { inject, InjectionToken } from '@angular/core';
2
+ export const BrnCommandToken = new InjectionToken('BrnCommandToken');
3
+ export function provideBrnCommand(command) {
4
+ return { provide: BrnCommandToken, useExisting: command };
5
+ }
6
+ export function injectBrnCommand() {
7
+ return inject(BrnCommandToken);
8
+ }
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLWNvbW1hbmQudG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2JyYWluL2NvbW1hbmQvc3JjL2xpYi9icm4tY29tbWFuZC50b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9CLE1BQU0sRUFBRSxjQUFjLEVBQVEsTUFBTSxlQUFlLENBQUM7QUFHL0UsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLElBQUksY0FBYyxDQUFzQixpQkFBaUIsQ0FBQyxDQUFDO0FBRTFGLE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxPQUFrQztJQUNuRSxPQUFPLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLENBQUM7QUFDM0QsQ0FBQztBQUVELE1BQU0sVUFBVSxnQkFBZ0I7SUFDL0IsT0FBTyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7QUFDaEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV4aXN0aW5nUHJvdmlkZXIsIGluamVjdCwgSW5qZWN0aW9uVG9rZW4sIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHsgQnJuQ29tbWFuZERpcmVjdGl2ZSB9IGZyb20gJy4vYnJuLWNvbW1hbmQuZGlyZWN0aXZlJztcblxuZXhwb3J0IGNvbnN0IEJybkNvbW1hbmRUb2tlbiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxCcm5Db21tYW5kRGlyZWN0aXZlPignQnJuQ29tbWFuZFRva2VuJyk7XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlQnJuQ29tbWFuZChjb21tYW5kOiBUeXBlPEJybkNvbW1hbmREaXJlY3RpdmU+KTogRXhpc3RpbmdQcm92aWRlciB7XG5cdHJldHVybiB7IHByb3ZpZGU6IEJybkNvbW1hbmRUb2tlbiwgdXNlRXhpc3Rpbmc6IGNvbW1hbmQgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdEJybkNvbW1hbmQoKTogQnJuQ29tbWFuZERpcmVjdGl2ZSB7XG5cdHJldHVybiBpbmplY3QoQnJuQ29tbWFuZFRva2VuKTtcbn1cbiJdfQ==