@spartan-ng/brain 0.0.1-alpha.474 → 0.0.1-alpha.476
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/accordion/lib/brn-accordion-content.component.d.ts +5 -1
- package/accordion/lib/brn-accordion.directive.d.ts +18 -1
- package/fesm2022/spartan-ng-brain-accordion.mjs +23 -3
- package/fesm2022/spartan-ng-brain-accordion.mjs.map +1 -1
- package/fesm2022/spartan-ng-brain-input-otp.mjs +8 -3
- package/fesm2022/spartan-ng-brain-input-otp.mjs.map +1 -1
- package/input-otp/index.d.ts +3 -0
- package/input-otp/lib/brn-input-otp-slot.component.d.ts +2 -1
- package/input-otp/lib/brn-input-otp.component.d.ts +6 -2
- package/package.json +1 -5
- package/fesm2022/spartan-ng-brain-table.mjs +0 -507
- package/fesm2022/spartan-ng-brain-table.mjs.map +0 -1
- package/table/README.md +0 -3
- package/table/index.d.ts +0 -26
- package/table/lib/brn-cell-def.directive.d.ts +0 -9
- package/table/lib/brn-column-def.component.d.ts +0 -18
- package/table/lib/brn-column-manager.d.ts +0 -26
- package/table/lib/brn-footer-def.directive.d.ts +0 -9
- package/table/lib/brn-header-def.directive.d.ts +0 -9
- package/table/lib/brn-paginator.directive.d.ts +0 -44
- package/table/lib/brn-table.component.d.ts +0 -37
|
@@ -7,9 +7,13 @@ export declare class BrnAccordionContentComponent implements CustomElementClassS
|
|
|
7
7
|
readonly id: string;
|
|
8
8
|
readonly ariaLabeledBy: string;
|
|
9
9
|
protected readonly _addInert: import("@angular/core").Signal<true | undefined>;
|
|
10
|
+
/**
|
|
11
|
+
* The class to be applied to the content element.
|
|
12
|
+
*/
|
|
13
|
+
readonly contentClass: import("@angular/core").InputSignal<ClassValue>;
|
|
10
14
|
protected readonly _contentClass: import("@angular/core").WritableSignal<ClassValue>;
|
|
11
15
|
constructor();
|
|
12
16
|
setClassToCustomElement(classes: ClassValue): void;
|
|
13
17
|
static ɵfac: i0.ɵɵFactoryDeclaration<BrnAccordionContentComponent, never>;
|
|
14
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<BrnAccordionContentComponent, "brn-accordion-content", never, {}, {}, never, ["*"], true, never>;
|
|
18
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<BrnAccordionContentComponent, "brn-accordion-content", never, { "contentClass": { "alias": "contentClass"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
15
19
|
}
|
|
@@ -1,9 +1,14 @@
|
|
|
1
|
+
import { BooleanInput } from '@angular/cdk/coercion';
|
|
1
2
|
import { type AfterContentInit, type OnDestroy } from '@angular/core';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
3
4
|
export declare class BrnAccordionItemDirective {
|
|
4
5
|
private static _itemIdGenerator;
|
|
5
6
|
private readonly _accordion;
|
|
6
|
-
|
|
7
|
+
/**
|
|
8
|
+
* Whether the accordion item is opened or closed.
|
|
9
|
+
* @default false
|
|
10
|
+
*/
|
|
11
|
+
readonly isOpened: import("@angular/core").InputSignalWithTransform<boolean, BooleanInput>;
|
|
7
12
|
readonly id: number;
|
|
8
13
|
readonly state: import("@angular/core").Signal<"open" | "closed">;
|
|
9
14
|
constructor();
|
|
@@ -32,8 +37,20 @@ export declare class BrnAccordionDirective implements AfterContentInit, OnDestro
|
|
|
32
37
|
readonly openItemIds: import("@angular/core").Signal<number[]>;
|
|
33
38
|
readonly state: import("@angular/core").Signal<"open" | "closed">;
|
|
34
39
|
triggers: import("@angular/core").Signal<readonly BrnAccordionTriggerDirective[]>;
|
|
40
|
+
/**
|
|
41
|
+
* Whether the accordion is in single or multiple mode.
|
|
42
|
+
* @default 'single'
|
|
43
|
+
*/
|
|
35
44
|
readonly type: import("@angular/core").InputSignal<"single" | "multiple">;
|
|
45
|
+
/**
|
|
46
|
+
* The direction of the accordion, either 'ltr' (left-to-right) or 'rtl' (right-to-left).
|
|
47
|
+
* @default null
|
|
48
|
+
*/
|
|
36
49
|
readonly dir: import("@angular/core").InputSignal<"ltr" | "rtl" | null>;
|
|
50
|
+
/**
|
|
51
|
+
* The orientation of the accordion, either 'horizontal' or 'vertical'.
|
|
52
|
+
* @default 'vertical'
|
|
53
|
+
*/
|
|
37
54
|
readonly orientation: import("@angular/core").InputSignal<"horizontal" | "vertical">;
|
|
38
55
|
ngAfterContentInit(): void;
|
|
39
56
|
ngOnDestroy(): void;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { inject, input, computed, effect, untracked, Directive, ElementRef, HostListener, signal, contentChildren, ViewEncapsulation, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
|
|
2
|
+
import { inject, input, computed, effect, untracked, Directive, ElementRef, HostListener, signal, contentChildren, linkedSignal, ViewEncapsulation, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
|
|
3
3
|
import { FocusMonitor, FocusKeyManager } from '@angular/cdk/a11y';
|
|
4
4
|
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
5
5
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
@@ -8,6 +8,10 @@ import { fromEvent } from 'rxjs';
|
|
|
8
8
|
class BrnAccordionItemDirective {
|
|
9
9
|
static _itemIdGenerator = 0;
|
|
10
10
|
_accordion = inject(BrnAccordionDirective);
|
|
11
|
+
/**
|
|
12
|
+
* Whether the accordion item is opened or closed.
|
|
13
|
+
* @default false
|
|
14
|
+
*/
|
|
11
15
|
isOpened = input(false, { transform: coerceBooleanProperty });
|
|
12
16
|
id = BrnAccordionItemDirective._itemIdGenerator++;
|
|
13
17
|
state = computed(() => (this._accordion.openItemIds().includes(this.id) ? 'open' : 'closed'));
|
|
@@ -113,8 +117,20 @@ class BrnAccordionDirective {
|
|
|
113
117
|
openItemIds = this._openItemIds.asReadonly();
|
|
114
118
|
state = computed(() => (this._openItemIds().length > 0 ? 'open' : 'closed'));
|
|
115
119
|
triggers = contentChildren(BrnAccordionTriggerDirective, { descendants: true });
|
|
120
|
+
/**
|
|
121
|
+
* Whether the accordion is in single or multiple mode.
|
|
122
|
+
* @default 'single'
|
|
123
|
+
*/
|
|
116
124
|
type = input('single');
|
|
125
|
+
/**
|
|
126
|
+
* The direction of the accordion, either 'ltr' (left-to-right) or 'rtl' (right-to-left).
|
|
127
|
+
* @default null
|
|
128
|
+
*/
|
|
117
129
|
dir = input(null);
|
|
130
|
+
/**
|
|
131
|
+
* The orientation of the accordion, either 'horizontal' or 'vertical'.
|
|
132
|
+
* @default 'vertical'
|
|
133
|
+
*/
|
|
118
134
|
orientation = input('vertical');
|
|
119
135
|
ngAfterContentInit() {
|
|
120
136
|
this._keyManager = new FocusKeyManager(this.triggers())
|
|
@@ -187,7 +203,11 @@ class BrnAccordionContentComponent {
|
|
|
187
203
|
id = `brn-accordion-content-${this._item.id}`;
|
|
188
204
|
ariaLabeledBy = `brn-accordion-trigger-${this._item.id}`;
|
|
189
205
|
_addInert = computed(() => (this.state() === 'closed' ? true : undefined));
|
|
190
|
-
|
|
206
|
+
/**
|
|
207
|
+
* The class to be applied to the content element.
|
|
208
|
+
*/
|
|
209
|
+
contentClass = input('');
|
|
210
|
+
_contentClass = linkedSignal(() => this.contentClass());
|
|
191
211
|
constructor() {
|
|
192
212
|
if (!this._item) {
|
|
193
213
|
throw Error('Accordion Content can only be used inside an AccordionItem. Add brnAccordionItem to parent.');
|
|
@@ -197,7 +217,7 @@ class BrnAccordionContentComponent {
|
|
|
197
217
|
this._contentClass.set(classes);
|
|
198
218
|
}
|
|
199
219
|
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: BrnAccordionContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
200
|
-
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
220
|
+
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.8", type: BrnAccordionContentComponent, isStandalone: true, selector: "brn-accordion-content", inputs: { contentClass: { classPropertyName: "contentClass", publicName: "contentClass", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "region" }, properties: { "attr.data-state": "state()", "attr.aria-labelledby": "ariaLabeledBy", "id": "id" } }, ngImport: i0, template: `
|
|
201
221
|
<div [attr.inert]="_addInert()" style="overflow: hidden">
|
|
202
222
|
<p [class]="_contentClass()">
|
|
203
223
|
<ng-content />
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spartan-ng-brain-accordion.mjs","sources":["../../../../libs/brain/accordion/src/lib/brn-accordion.directive.ts","../../../../libs/brain/accordion/src/lib/brn-accordion-content.component.ts","../../../../libs/brain/accordion/src/index.ts","../../../../libs/brain/accordion/src/spartan-ng-brain-accordion.ts"],"sourcesContent":["import { FocusKeyManager, FocusMonitor } from '@angular/cdk/a11y';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n\ttype AfterContentInit,\n\tDirective,\n\tElementRef,\n\tHostListener,\n\ttype OnDestroy,\n\tcomputed,\n\tcontentChildren,\n\teffect,\n\tinject,\n\tinput,\n\tsignal,\n\tuntracked,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { fromEvent } from 'rxjs';\n\n@Directive({\n\tselector: '[brnAccordionItem]',\n\thost: {\n\t\t'[attr.data-state]': 'state()',\n\t},\n\texportAs: 'brnAccordionItem',\n})\nexport class BrnAccordionItemDirective {\n\tprivate static _itemIdGenerator = 0;\n\tprivate readonly _accordion = inject(BrnAccordionDirective);\n\tpublic readonly isOpened = input(false, { transform: coerceBooleanProperty });\n\n\tpublic readonly id = BrnAccordionItemDirective._itemIdGenerator++;\n\tpublic readonly state = computed(() => (this._accordion.openItemIds().includes(this.id) ? 'open' : 'closed'));\n\n\tconstructor() {\n\t\tif (!this._accordion) {\n\t\t\tthrow Error('Accordion trigger can only be used inside an Accordion. Add brnAccordion to ancestor.');\n\t\t}\n\t\teffect(() => {\n\t\t\tconst isOpened = this.isOpened();\n\t\t\tuntracked(() => {\n\t\t\t\tif (isOpened) {\n\t\t\t\t\tthis._accordion.openItem(this.id);\n\t\t\t\t} else {\n\t\t\t\t\tthis._accordion.closeItem(this.id);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n}\n\n@Directive({\n\tselector: '[brnAccordionTrigger]',\n\thost: {\n\t\t'[attr.data-state]': 'state()',\n\t\t'[attr.aria-expanded]': 'state() === \"open\"',\n\t\t'[attr.aria-controls]': 'ariaControls',\n\t\trole: 'heading',\n\t\t'aria-level': '3',\n\t\t'[id]': 'id',\n\t},\n})\nexport class BrnAccordionTriggerDirective {\n\tprivate readonly _accordion = inject(BrnAccordionDirective);\n\tprivate readonly _item = inject(BrnAccordionItemDirective);\n\tprivate readonly _elementRef = inject(ElementRef);\n\n\tpublic readonly state = this._item.state;\n\tpublic readonly id = `brn-accordion-trigger-${this._item.id}`;\n\tpublic readonly ariaControls = `brn-accordion-content-${this._item.id}`;\n\n\tconstructor() {\n\t\tif (!this._accordion) {\n\t\t\tthrow Error('Accordion trigger can only be used inside an Accordion. Add brnAccordion to ancestor.');\n\t\t}\n\n\t\tif (!this._item) {\n\t\t\tthrow Error('Accordion trigger can only be used inside an AccordionItem. Add brnAccordionItem to parent.');\n\t\t}\n\n\t\tfromEvent(this._elementRef.nativeElement, 'focus')\n\t\t\t.pipe(takeUntilDestroyed())\n\t\t\t.subscribe(() => {\n\t\t\t\tthis._accordion.setActiveItem(this);\n\t\t\t});\n\t}\n\n\t@HostListener('click', ['$event'])\n\t@HostListener('keyup.space', ['$event'])\n\t@HostListener('keyup.enter', ['$event'])\n\tprotected toggle(event: Event): void {\n\t\tevent.preventDefault();\n\t\tthis._accordion.toggleItem(this._item.id);\n\t}\n\n\tpublic focus() {\n\t\tthis._elementRef.nativeElement.focus();\n\t}\n}\n\nconst HORIZONTAL_KEYS_TO_PREVENT_DEFAULT = [\n\t'ArrowLeft',\n\t'ArrowRight',\n\t'PageDown',\n\t'PageUp',\n\t'Home',\n\t'End',\n\t' ',\n\t'Enter',\n];\nconst VERTICAL_KEYS_TO_PREVENT_DEFAULT = ['ArrowUp', 'ArrowDown', 'PageDown', 'PageUp', 'Home', 'End', ' ', 'Enter'];\n\n@Directive({\n\tselector: '[brnAccordion]',\n\thost: {\n\t\t'[attr.data-state]': 'state()',\n\t\t'[attr.data-orientation]': 'orientation()',\n\t},\n\texportAs: 'brnAccordion',\n})\nexport class BrnAccordionDirective implements AfterContentInit, OnDestroy {\n\tprivate readonly _el = inject(ElementRef);\n\tprivate _keyManager?: FocusKeyManager<BrnAccordionTriggerDirective>;\n\tprivate readonly _focusMonitor = inject(FocusMonitor);\n\n\tprivate readonly _focused = signal<boolean>(false);\n\tprivate readonly _openItemIds = signal<number[]>([]);\n\tpublic readonly openItemIds = this._openItemIds.asReadonly();\n\tpublic readonly state = computed(() => (this._openItemIds().length > 0 ? 'open' : 'closed'));\n\n\tpublic triggers = contentChildren(BrnAccordionTriggerDirective, { descendants: true });\n\n\tpublic readonly type = input<'single' | 'multiple'>('single');\n\tpublic readonly dir = input<'ltr' | 'rtl' | null>(null);\n\tpublic readonly orientation = input<'horizontal' | 'vertical'>('vertical');\n\n\tpublic ngAfterContentInit() {\n\t\tthis._keyManager = new FocusKeyManager<BrnAccordionTriggerDirective>(this.triggers())\n\t\t\t.withHomeAndEnd()\n\t\t\t.withPageUpDown()\n\t\t\t.withWrap();\n\n\t\tif (this.orientation() === 'horizontal') {\n\t\t\tthis._keyManager.withHorizontalOrientation(this.dir() ?? 'ltr').withVerticalOrientation(false);\n\t\t}\n\n\t\tthis._el.nativeElement.addEventListener('keydown', (event: KeyboardEvent) => {\n\t\t\tconst target = event.target as HTMLElement;\n\n\t\t\tif (target.tagName === 'INPUT') return;\n\n\t\t\tthis._keyManager?.onKeydown(event);\n\t\t\tthis.preventDefaultEvents(event);\n\t\t});\n\t\tthis._focusMonitor.monitor(this._el, true).subscribe((origin) => this._focused.set(origin !== null));\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis._focusMonitor.stopMonitoring(this._el);\n\t}\n\n\tpublic setActiveItem(item: BrnAccordionTriggerDirective) {\n\t\tthis._keyManager?.setActiveItem(item);\n\t}\n\n\tpublic toggleItem(id: number) {\n\t\tif (this._openItemIds().includes(id)) {\n\t\t\tthis.closeItem(id);\n\t\t\treturn;\n\t\t}\n\t\tthis.openItem(id);\n\t}\n\n\tpublic openItem(id: number) {\n\t\tif (this.type() === 'single') {\n\t\t\tthis._openItemIds.set([id]);\n\t\t\treturn;\n\t\t}\n\t\tthis._openItemIds.update((ids) => [...ids, id]);\n\t}\n\tpublic closeItem(id: number) {\n\t\tthis._openItemIds.update((ids) => ids.filter((openId) => id !== openId));\n\t}\n\n\tprivate preventDefaultEvents(event: KeyboardEvent) {\n\t\tif (!this._focused()) return;\n\t\tif (!('key' in event)) return;\n\n\t\tconst keys =\n\t\t\tthis.orientation() === 'horizontal' ? HORIZONTAL_KEYS_TO_PREVENT_DEFAULT : VERTICAL_KEYS_TO_PREVENT_DEFAULT;\n\t\tif (keys.includes(event.key) && event.code !== 'NumpadEnter') {\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, computed, inject, signal } from '@angular/core';\nimport type { CustomElementClassSettable } from '@spartan-ng/brain/core';\nimport type { ClassValue } from 'clsx';\nimport { BrnAccordionItemDirective } from './brn-accordion.directive';\n\n@Component({\n\tselector: 'brn-accordion-content',\n\thost: {\n\t\t'[attr.data-state]': 'state()',\n\t\t'[attr.aria-labelledby]': 'ariaLabeledBy',\n\t\trole: 'region',\n\t\t'[id]': 'id',\n\t},\n\ttemplate: `\n\t\t<div [attr.inert]=\"_addInert()\" style=\"overflow: hidden\">\n\t\t\t<p [class]=\"_contentClass()\">\n\t\t\t\t<ng-content />\n\t\t\t</p>\n\t\t</div>\n\t`,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n})\nexport class BrnAccordionContentComponent implements CustomElementClassSettable {\n\tprivate readonly _item = inject(BrnAccordionItemDirective);\n\n\tpublic readonly state = this._item.state;\n\tpublic readonly id = `brn-accordion-content-${this._item.id}`;\n\tpublic readonly ariaLabeledBy = `brn-accordion-trigger-${this._item.id}`;\n\n\tprotected readonly _addInert = computed(() => (this.state() === 'closed' ? true : undefined));\n\tprotected readonly _contentClass = signal<ClassValue>('');\n\n\tconstructor() {\n\t\tif (!this._item) {\n\t\t\tthrow Error('Accordion Content can only be used inside an AccordionItem. Add brnAccordionItem to parent.');\n\t\t}\n\t}\n\n\tpublic setClassToCustomElement(classes: ClassValue) {\n\t\tthis._contentClass.set(classes);\n\t}\n}\n","import { NgModule } from '@angular/core';\n\nimport { BrnAccordionContentComponent } from './lib/brn-accordion-content.component';\nimport {\n\tBrnAccordionDirective,\n\tBrnAccordionItemDirective,\n\tBrnAccordionTriggerDirective,\n} from './lib/brn-accordion.directive';\n\nexport * from './lib/brn-accordion-content.component';\nexport * from './lib/brn-accordion.directive';\n\nexport const BrnAccordionImports = [\n\tBrnAccordionDirective,\n\tBrnAccordionContentComponent,\n\tBrnAccordionItemDirective,\n\tBrnAccordionTriggerDirective,\n] as const;\n\n@NgModule({\n\timports: [...BrnAccordionImports],\n\texports: [...BrnAccordionImports],\n})\nexport class BrnAccordionModule {}\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-accordion.mjs","sources":["../../../../libs/brain/accordion/src/lib/brn-accordion.directive.ts","../../../../libs/brain/accordion/src/lib/brn-accordion-content.component.ts","../../../../libs/brain/accordion/src/index.ts","../../../../libs/brain/accordion/src/spartan-ng-brain-accordion.ts"],"sourcesContent":["import { FocusKeyManager, FocusMonitor } from '@angular/cdk/a11y';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n\ttype AfterContentInit,\n\tDirective,\n\tElementRef,\n\tHostListener,\n\ttype OnDestroy,\n\tcomputed,\n\tcontentChildren,\n\teffect,\n\tinject,\n\tinput,\n\tsignal,\n\tuntracked,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { fromEvent } from 'rxjs';\n\n@Directive({\n\tselector: '[brnAccordionItem]',\n\thost: {\n\t\t'[attr.data-state]': 'state()',\n\t},\n\texportAs: 'brnAccordionItem',\n})\nexport class BrnAccordionItemDirective {\n\tprivate static _itemIdGenerator = 0;\n\tprivate readonly _accordion = inject(BrnAccordionDirective);\n\t/**\n\t * Whether the accordion item is opened or closed.\n\t * @default false\n\t */\n\tpublic readonly isOpened = input<boolean, BooleanInput>(false, { transform: coerceBooleanProperty });\n\n\tpublic readonly id = BrnAccordionItemDirective._itemIdGenerator++;\n\tpublic readonly state = computed(() => (this._accordion.openItemIds().includes(this.id) ? 'open' : 'closed'));\n\n\tconstructor() {\n\t\tif (!this._accordion) {\n\t\t\tthrow Error('Accordion trigger can only be used inside an Accordion. Add brnAccordion to ancestor.');\n\t\t}\n\t\teffect(() => {\n\t\t\tconst isOpened = this.isOpened();\n\t\t\tuntracked(() => {\n\t\t\t\tif (isOpened) {\n\t\t\t\t\tthis._accordion.openItem(this.id);\n\t\t\t\t} else {\n\t\t\t\t\tthis._accordion.closeItem(this.id);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n}\n\n@Directive({\n\tselector: '[brnAccordionTrigger]',\n\thost: {\n\t\t'[attr.data-state]': 'state()',\n\t\t'[attr.aria-expanded]': 'state() === \"open\"',\n\t\t'[attr.aria-controls]': 'ariaControls',\n\t\trole: 'heading',\n\t\t'aria-level': '3',\n\t\t'[id]': 'id',\n\t},\n})\nexport class BrnAccordionTriggerDirective {\n\tprivate readonly _accordion = inject(BrnAccordionDirective);\n\tprivate readonly _item = inject(BrnAccordionItemDirective);\n\tprivate readonly _elementRef = inject(ElementRef);\n\n\tpublic readonly state = this._item.state;\n\tpublic readonly id = `brn-accordion-trigger-${this._item.id}`;\n\tpublic readonly ariaControls = `brn-accordion-content-${this._item.id}`;\n\n\tconstructor() {\n\t\tif (!this._accordion) {\n\t\t\tthrow Error('Accordion trigger can only be used inside an Accordion. Add brnAccordion to ancestor.');\n\t\t}\n\n\t\tif (!this._item) {\n\t\t\tthrow Error('Accordion trigger can only be used inside an AccordionItem. Add brnAccordionItem to parent.');\n\t\t}\n\n\t\tfromEvent(this._elementRef.nativeElement, 'focus')\n\t\t\t.pipe(takeUntilDestroyed())\n\t\t\t.subscribe(() => {\n\t\t\t\tthis._accordion.setActiveItem(this);\n\t\t\t});\n\t}\n\n\t@HostListener('click', ['$event'])\n\t@HostListener('keyup.space', ['$event'])\n\t@HostListener('keyup.enter', ['$event'])\n\tprotected toggle(event: Event): void {\n\t\tevent.preventDefault();\n\t\tthis._accordion.toggleItem(this._item.id);\n\t}\n\n\tpublic focus() {\n\t\tthis._elementRef.nativeElement.focus();\n\t}\n}\n\nconst HORIZONTAL_KEYS_TO_PREVENT_DEFAULT = [\n\t'ArrowLeft',\n\t'ArrowRight',\n\t'PageDown',\n\t'PageUp',\n\t'Home',\n\t'End',\n\t' ',\n\t'Enter',\n];\nconst VERTICAL_KEYS_TO_PREVENT_DEFAULT = ['ArrowUp', 'ArrowDown', 'PageDown', 'PageUp', 'Home', 'End', ' ', 'Enter'];\n\n@Directive({\n\tselector: '[brnAccordion]',\n\thost: {\n\t\t'[attr.data-state]': 'state()',\n\t\t'[attr.data-orientation]': 'orientation()',\n\t},\n\texportAs: 'brnAccordion',\n})\nexport class BrnAccordionDirective implements AfterContentInit, OnDestroy {\n\tprivate readonly _el = inject(ElementRef);\n\tprivate _keyManager?: FocusKeyManager<BrnAccordionTriggerDirective>;\n\tprivate readonly _focusMonitor = inject(FocusMonitor);\n\n\tprivate readonly _focused = signal<boolean>(false);\n\tprivate readonly _openItemIds = signal<number[]>([]);\n\tpublic readonly openItemIds = this._openItemIds.asReadonly();\n\tpublic readonly state = computed(() => (this._openItemIds().length > 0 ? 'open' : 'closed'));\n\n\tpublic triggers = contentChildren(BrnAccordionTriggerDirective, { descendants: true });\n\n\t/**\n\t * Whether the accordion is in single or multiple mode.\n\t * @default 'single'\n\t */\n\tpublic readonly type = input<'single' | 'multiple'>('single');\n\t/**\n\t * The direction of the accordion, either 'ltr' (left-to-right) or 'rtl' (right-to-left).\n\t * @default null\n\t */\n\tpublic readonly dir = input<'ltr' | 'rtl' | null>(null);\n\t/**\n\t * The orientation of the accordion, either 'horizontal' or 'vertical'.\n\t * @default 'vertical'\n\t */\n\tpublic readonly orientation = input<'horizontal' | 'vertical'>('vertical');\n\n\tpublic ngAfterContentInit() {\n\t\tthis._keyManager = new FocusKeyManager<BrnAccordionTriggerDirective>(this.triggers())\n\t\t\t.withHomeAndEnd()\n\t\t\t.withPageUpDown()\n\t\t\t.withWrap();\n\n\t\tif (this.orientation() === 'horizontal') {\n\t\t\tthis._keyManager.withHorizontalOrientation(this.dir() ?? 'ltr').withVerticalOrientation(false);\n\t\t}\n\n\t\tthis._el.nativeElement.addEventListener('keydown', (event: KeyboardEvent) => {\n\t\t\tconst target = event.target as HTMLElement;\n\n\t\t\tif (target.tagName === 'INPUT') return;\n\n\t\t\tthis._keyManager?.onKeydown(event);\n\t\t\tthis.preventDefaultEvents(event);\n\t\t});\n\t\tthis._focusMonitor.monitor(this._el, true).subscribe((origin) => this._focused.set(origin !== null));\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis._focusMonitor.stopMonitoring(this._el);\n\t}\n\n\tpublic setActiveItem(item: BrnAccordionTriggerDirective) {\n\t\tthis._keyManager?.setActiveItem(item);\n\t}\n\n\tpublic toggleItem(id: number) {\n\t\tif (this._openItemIds().includes(id)) {\n\t\t\tthis.closeItem(id);\n\t\t\treturn;\n\t\t}\n\t\tthis.openItem(id);\n\t}\n\n\tpublic openItem(id: number) {\n\t\tif (this.type() === 'single') {\n\t\t\tthis._openItemIds.set([id]);\n\t\t\treturn;\n\t\t}\n\t\tthis._openItemIds.update((ids) => [...ids, id]);\n\t}\n\tpublic closeItem(id: number) {\n\t\tthis._openItemIds.update((ids) => ids.filter((openId) => id !== openId));\n\t}\n\n\tprivate preventDefaultEvents(event: KeyboardEvent) {\n\t\tif (!this._focused()) return;\n\t\tif (!('key' in event)) return;\n\n\t\tconst keys =\n\t\t\tthis.orientation() === 'horizontal' ? HORIZONTAL_KEYS_TO_PREVENT_DEFAULT : VERTICAL_KEYS_TO_PREVENT_DEFAULT;\n\t\tif (keys.includes(event.key) && event.code !== 'NumpadEnter') {\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n}\n","import {\n\tChangeDetectionStrategy,\n\tComponent,\n\tViewEncapsulation,\n\tcomputed,\n\tinject,\n\tinput,\n\tlinkedSignal,\n} from '@angular/core';\nimport type { CustomElementClassSettable } from '@spartan-ng/brain/core';\nimport type { ClassValue } from 'clsx';\nimport { BrnAccordionItemDirective } from './brn-accordion.directive';\n\n@Component({\n\tselector: 'brn-accordion-content',\n\thost: {\n\t\t'[attr.data-state]': 'state()',\n\t\t'[attr.aria-labelledby]': 'ariaLabeledBy',\n\t\trole: 'region',\n\t\t'[id]': 'id',\n\t},\n\ttemplate: `\n\t\t<div [attr.inert]=\"_addInert()\" style=\"overflow: hidden\">\n\t\t\t<p [class]=\"_contentClass()\">\n\t\t\t\t<ng-content />\n\t\t\t</p>\n\t\t</div>\n\t`,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n})\nexport class BrnAccordionContentComponent implements CustomElementClassSettable {\n\tprivate readonly _item = inject(BrnAccordionItemDirective);\n\n\tpublic readonly state = this._item.state;\n\tpublic readonly id = `brn-accordion-content-${this._item.id}`;\n\tpublic readonly ariaLabeledBy = `brn-accordion-trigger-${this._item.id}`;\n\n\tprotected readonly _addInert = computed(() => (this.state() === 'closed' ? true : undefined));\n\t/**\n\t * The class to be applied to the content element.\n\t */\n\tpublic readonly contentClass = input<ClassValue>('');\n\n\tprotected readonly _contentClass = linkedSignal(() => this.contentClass());\n\n\tconstructor() {\n\t\tif (!this._item) {\n\t\t\tthrow Error('Accordion Content can only be used inside an AccordionItem. Add brnAccordionItem to parent.');\n\t\t}\n\t}\n\n\tpublic setClassToCustomElement(classes: ClassValue) {\n\t\tthis._contentClass.set(classes);\n\t}\n}\n","import { NgModule } from '@angular/core';\n\nimport { BrnAccordionContentComponent } from './lib/brn-accordion-content.component';\nimport {\n\tBrnAccordionDirective,\n\tBrnAccordionItemDirective,\n\tBrnAccordionTriggerDirective,\n} from './lib/brn-accordion.directive';\n\nexport * from './lib/brn-accordion-content.component';\nexport * from './lib/brn-accordion.directive';\n\nexport const BrnAccordionImports = [\n\tBrnAccordionDirective,\n\tBrnAccordionContentComponent,\n\tBrnAccordionItemDirective,\n\tBrnAccordionTriggerDirective,\n] as const;\n\n@NgModule({\n\timports: [...BrnAccordionImports],\n\texports: [...BrnAccordionImports],\n})\nexport class BrnAccordionModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,7 @@ function provideBrnInputOtp(inputOtp) {
|
|
|
14
14
|
class BrnInputOtpSlotComponent {
|
|
15
15
|
/** Access the input-otp component */
|
|
16
16
|
inputOtp = injectBrnInputOtp();
|
|
17
|
+
/** The index of the slot to render the char or a fake caret */
|
|
17
18
|
index = input.required({ transform: numberAttribute });
|
|
18
19
|
slot = computed(() => this.inputOtp.context()[this.index()]);
|
|
19
20
|
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: BrnInputOtpSlotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
@@ -51,8 +52,11 @@ const BRN_INPUT_OTP_VALUE_ACCESSOR = {
|
|
|
51
52
|
class BrnInputOtpComponent {
|
|
52
53
|
/** Whether the input has focus. */
|
|
53
54
|
focused = signal(false);
|
|
55
|
+
/** Styles applied to the host element. */
|
|
54
56
|
hostStyles = input('position: relative; cursor: text; user-select: none; pointer-events: none;');
|
|
57
|
+
/** Styles applied to the input element to make it invisible and clickable. */
|
|
55
58
|
inputStyles = input('position: absolute; inset: 0; width: 100%; height: 100%; display: flex; textAlign: left; opacity: 1; color: transparent; pointerEvents: all; background: transparent; caret-color: transparent; border: 0px solid transparent; outline: transparent solid 0px; box-shadow: none; line-height: 1; letter-spacing: -0.5em; font-family: monospace; font-variant-numeric: tabular-nums;');
|
|
59
|
+
/** Styles applied to the container element. */
|
|
56
60
|
containerStyles = input('position: absolute; inset: 0; pointer-events: none;');
|
|
57
61
|
/** Determine if the date picker is disabled. */
|
|
58
62
|
disabled = input(false, {
|
|
@@ -191,6 +195,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImpor
|
|
|
191
195
|
}]
|
|
192
196
|
}] });
|
|
193
197
|
|
|
198
|
+
const BrnInputOtpImports = [BrnInputOtpComponent, BrnInputOtpSlotComponent];
|
|
194
199
|
class BrnInputOtpModule {
|
|
195
200
|
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: BrnInputOtpModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
196
201
|
/** @nocollapse */ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.8", ngImport: i0, type: BrnInputOtpModule, imports: [BrnInputOtpComponent, BrnInputOtpSlotComponent], exports: [BrnInputOtpComponent, BrnInputOtpSlotComponent] });
|
|
@@ -199,8 +204,8 @@ class BrnInputOtpModule {
|
|
|
199
204
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: BrnInputOtpModule, decorators: [{
|
|
200
205
|
type: NgModule,
|
|
201
206
|
args: [{
|
|
202
|
-
imports: [
|
|
203
|
-
exports: [
|
|
207
|
+
imports: [...BrnInputOtpImports],
|
|
208
|
+
exports: [...BrnInputOtpImports],
|
|
204
209
|
}]
|
|
205
210
|
}] });
|
|
206
211
|
|
|
@@ -208,5 +213,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImpor
|
|
|
208
213
|
* Generated bundle index. Do not edit.
|
|
209
214
|
*/
|
|
210
215
|
|
|
211
|
-
export { BRN_INPUT_OTP_VALUE_ACCESSOR, BrnInputOtpComponent, BrnInputOtpModule, BrnInputOtpSlotComponent };
|
|
216
|
+
export { BRN_INPUT_OTP_VALUE_ACCESSOR, BrnInputOtpComponent, BrnInputOtpImports, BrnInputOtpModule, BrnInputOtpSlotComponent };
|
|
212
217
|
//# sourceMappingURL=spartan-ng-brain-input-otp.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spartan-ng-brain-input-otp.mjs","sources":["../../../../libs/brain/input-otp/src/lib/brn-input-otp.token.ts","../../../../libs/brain/input-otp/src/lib/brn-input-otp-slot.component.ts","../../../../libs/brain/input-otp/src/lib/brn-input-otp.component.ts","../../../../libs/brain/input-otp/src/index.ts","../../../../libs/brain/input-otp/src/spartan-ng-brain-input-otp.ts"],"sourcesContent":["import { ExistingProvider, inject, InjectionToken, Type } from '@angular/core';\nimport { BrnInputOtpComponent } from './brn-input-otp.component';\n\nexport const BrnInputOtpToken = new InjectionToken<BrnInputOtpComponent>('BrnInputOtpToken');\n\nexport function injectBrnInputOtp(): BrnInputOtpComponent {\n\treturn inject(BrnInputOtpToken) as BrnInputOtpComponent;\n}\n\nexport function provideBrnInputOtp(inputOtp: Type<BrnInputOtpComponent>): ExistingProvider {\n\treturn { provide: BrnInputOtpToken, useExisting: inputOtp };\n}\n","import { NumberInput } from '@angular/cdk/coercion';\nimport { ChangeDetectionStrategy, Component, computed, input, numberAttribute } from '@angular/core';\nimport { injectBrnInputOtp } from './brn-input-otp.token';\n\n@Component({\n\tselector: 'brn-input-otp-slot',\n\ttemplate: `\n\t\t{{ slot().char }}\n\n\t\t@if (slot().hasFakeCaret) {\n\t\t\t<ng-content />\n\t\t}\n\t`,\n\thost: {\n\t\t'[attr.data-active]': 'slot().isActive',\n\t},\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BrnInputOtpSlotComponent {\n\t/** Access the input-otp component */\n\tprotected readonly inputOtp = injectBrnInputOtp();\n\n\tpublic readonly index = input.required<number, NumberInput>({ transform: numberAttribute });\n\n\tpublic readonly slot = computed(() => this.inputOtp.context()[this.index()]);\n}\n","import { BooleanInput, NumberInput } from '@angular/cdk/coercion';\nimport {\n\tbooleanAttribute,\n\tChangeDetectionStrategy,\n\tComponent,\n\tcomputed,\n\tforwardRef,\n\tinput,\n\tmodel,\n\tnumberAttribute,\n\toutput,\n\tsignal,\n} from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ChangeFn, TouchFn } from '@spartan-ng/brain/forms';\nimport { provideBrnInputOtp } from './brn-input-otp.token';\n\nexport const BRN_INPUT_OTP_VALUE_ACCESSOR = {\n\tprovide: NG_VALUE_ACCESSOR,\n\tuseExisting: forwardRef(() => BrnInputOtpComponent),\n\tmulti: true,\n};\n\nexport type InputMode = 'text' | 'tel' | 'url' | 'email' | 'numeric' | 'decimal' | 'search';\n\n@Component({\n\tselector: 'brn-input-otp',\n\timports: [FormsModule],\n\ttemplate: `\n\t\t<ng-content />\n\t\t<div [style]=\"containerStyles()\">\n\t\t\t<input\n\t\t\t\t[class]=\"inputClass()\"\n\t\t\t\tautocomplete=\"one-time-code\"\n\t\t\t\tdata-slot=\"input-otp\"\n\t\t\t\t[style]=\"inputStyles()\"\n\t\t\t\t[disabled]=\"state().disabled()\"\n\t\t\t\t[inputMode]=\"inputMode()\"\n\t\t\t\t[ngModel]=\"value()\"\n\t\t\t\t(input)=\"onInputChange($event)\"\n\t\t\t\t(paste)=\"onPaste($event)\"\n\t\t\t\t(focus)=\"focused.set(true)\"\n\t\t\t\t(blur)=\"focused.set(false)\"\n\t\t\t/>\n\t\t</div>\n\t`,\n\thost: {\n\t\t'[style]': 'hostStyles()',\n\t\t'data-input-otp-container': 'true',\n\t},\n\tproviders: [BRN_INPUT_OTP_VALUE_ACCESSOR, provideBrnInputOtp(BrnInputOtpComponent)],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BrnInputOtpComponent implements ControlValueAccessor {\n\t/** Whether the input has focus. */\n\tprotected readonly focused = signal<boolean>(false);\n\n\tpublic readonly hostStyles = input<string>(\n\t\t'position: relative; cursor: text; user-select: none; pointer-events: none;',\n\t);\n\n\tpublic readonly inputStyles = input<string>(\n\t\t'position: absolute; inset: 0; width: 100%; height: 100%; display: flex; textAlign: left; opacity: 1; color: transparent; pointerEvents: all; background: transparent; caret-color: transparent; border: 0px solid transparent; outline: transparent solid 0px; box-shadow: none; line-height: 1; letter-spacing: -0.5em; font-family: monospace; font-variant-numeric: tabular-nums;',\n\t);\n\n\tpublic readonly containerStyles = input<string>('position: absolute; inset: 0; pointer-events: none;');\n\n\t/** Determine if the date picker is disabled. */\n\tpublic readonly disabled = input<boolean, BooleanInput>(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\t/** The number of slots. */\n\tpublic readonly maxLength = input.required<number, NumberInput>({ transform: numberAttribute });\n\n\t/** Virtual keyboard appearance on mobile */\n\tpublic readonly inputMode = input<InputMode>('numeric');\n\n\tpublic readonly inputClass = input<string>('');\n\n\t/**\n\t * Defines how the pasted text should be transformed before saving to model/form.\n\t * Allows pasting text which contains extra characters like spaces, dashes, etc. and are longer than the maxLength.\n\t *\n\t * \"XXX-XXX\": (pastedText) => pastedText.replaceAll('-', '')\n\t * \"XXX XXX\": (pastedText) => pastedText.replaceAll(/\\s+/g, '')\n\t */\n\tpublic readonly transformPaste = input<(pastedText: string, maxLength: number) => string>((text) => text);\n\n\t/** The value controlling the input */\n\tpublic readonly value = model('');\n\n\tpublic readonly context = computed(() => {\n\t\tconst value = this.value();\n\t\tconst focused = this.focused();\n\t\tconst maxLength = this.maxLength();\n\t\tconst slots = Array.from({ length: this.maxLength() }).map((_, slotIndex) => {\n\t\t\tconst char = value[slotIndex] !== undefined ? value[slotIndex] : null;\n\n\t\t\tconst isActive =\n\t\t\t\tfocused && (value.length === slotIndex || (value.length === maxLength && slotIndex === maxLength - 1));\n\n\t\t\treturn {\n\t\t\t\tchar,\n\t\t\t\tisActive,\n\t\t\t\thasFakeCaret: isActive && value.length === slotIndex,\n\t\t\t};\n\t\t});\n\n\t\treturn slots;\n\t});\n\n\t/** Emitted when the input is complete, triggered through input or paste. */\n\tpublic readonly completed = output<string>();\n\n\tprotected readonly state = computed(() => ({\n\t\tdisabled: signal(this.disabled()),\n\t}));\n\n\tprotected _onChange?: ChangeFn<string>;\n\tprotected _onTouched?: TouchFn;\n\n\tprotected onInputChange(event: Event) {\n\t\tlet newValue = (event.target as HTMLInputElement).value;\n\t\tconst maxLength = this.maxLength();\n\n\t\tif (newValue.length > maxLength) {\n\t\t\t// Replace the last character when max length is exceeded\n\t\t\tnewValue = newValue.slice(0, maxLength - 1) + newValue.slice(-1);\n\t\t}\n\n\t\tthis.updateValue(newValue, maxLength);\n\t}\n\n\tprotected onPaste(event: ClipboardEvent) {\n\t\tevent.preventDefault();\n\t\tconst clipboardData = event.clipboardData?.getData('text/plain') || '';\n\n\t\tconst maxLength = this.maxLength();\n\n\t\tconst content = this.transformPaste()(clipboardData, maxLength);\n\t\tconst newValue = content.slice(0, maxLength);\n\n\t\tthis.updateValue(newValue, maxLength);\n\t}\n\n\t/** CONTROL VALUE ACCESSOR */\n\twriteValue(value: string | null): void {\n\t\t// optional FormControl is initialized with null value\n\t\tif (value === null) return;\n\n\t\tthis.updateValue(value, this.maxLength());\n\t}\n\n\tregisterOnChange(fn: ChangeFn<string>): void {\n\t\tthis._onChange = fn;\n\t}\n\n\tregisterOnTouched(fn: TouchFn): void {\n\t\tthis._onTouched = fn;\n\t}\n\n\tsetDisabledState(isDisabled: boolean): void {\n\t\tthis.state().disabled.set(isDisabled);\n\t}\n\n\tprivate isCompleted(newValue: string, previousValue: string, maxLength: number) {\n\t\treturn newValue !== previousValue && previousValue.length < maxLength && newValue.length === maxLength;\n\t}\n\n\tprivate updateValue(newValue: string, maxLength: number) {\n\t\tconst previousValue = this.value();\n\n\t\tthis.value.set(newValue);\n\t\tthis._onChange?.(newValue);\n\n\t\tif (this.isCompleted(newValue, previousValue, maxLength)) {\n\t\t\tthis.completed.emit(newValue);\n\t\t}\n\t}\n}\n","import { NgModule } from '@angular/core';\nimport { BrnInputOtpSlotComponent } from './lib/brn-input-otp-slot.component';\nimport { BrnInputOtpComponent } from './lib/brn-input-otp.component';\n\nexport * from './lib/brn-input-otp-slot.component';\nexport * from './lib/brn-input-otp.component';\n\n@NgModule({\n\timports: [BrnInputOtpComponent, BrnInputOtpSlotComponent],\n\texports: [BrnInputOtpComponent, BrnInputOtpSlotComponent],\n})\nexport class BrnInputOtpModule {}\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-input-otp.mjs","sources":["../../../../libs/brain/input-otp/src/lib/brn-input-otp.token.ts","../../../../libs/brain/input-otp/src/lib/brn-input-otp-slot.component.ts","../../../../libs/brain/input-otp/src/lib/brn-input-otp.component.ts","../../../../libs/brain/input-otp/src/index.ts","../../../../libs/brain/input-otp/src/spartan-ng-brain-input-otp.ts"],"sourcesContent":["import { ExistingProvider, inject, InjectionToken, Type } from '@angular/core';\nimport { BrnInputOtpComponent } from './brn-input-otp.component';\n\nexport const BrnInputOtpToken = new InjectionToken<BrnInputOtpComponent>('BrnInputOtpToken');\n\nexport function injectBrnInputOtp(): BrnInputOtpComponent {\n\treturn inject(BrnInputOtpToken) as BrnInputOtpComponent;\n}\n\nexport function provideBrnInputOtp(inputOtp: Type<BrnInputOtpComponent>): ExistingProvider {\n\treturn { provide: BrnInputOtpToken, useExisting: inputOtp };\n}\n","import { NumberInput } from '@angular/cdk/coercion';\nimport { ChangeDetectionStrategy, Component, computed, input, numberAttribute } from '@angular/core';\nimport { injectBrnInputOtp } from './brn-input-otp.token';\n\n@Component({\n\tselector: 'brn-input-otp-slot',\n\ttemplate: `\n\t\t{{ slot().char }}\n\n\t\t@if (slot().hasFakeCaret) {\n\t\t\t<ng-content />\n\t\t}\n\t`,\n\thost: {\n\t\t'[attr.data-active]': 'slot().isActive',\n\t},\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BrnInputOtpSlotComponent {\n\t/** Access the input-otp component */\n\tprotected readonly inputOtp = injectBrnInputOtp();\n\n\t/** The index of the slot to render the char or a fake caret */\n\tpublic readonly index = input.required<number, NumberInput>({ transform: numberAttribute });\n\n\tprotected readonly slot = computed(() => this.inputOtp.context()[this.index()]);\n}\n","import { BooleanInput, NumberInput } from '@angular/cdk/coercion';\nimport {\n\tbooleanAttribute,\n\tChangeDetectionStrategy,\n\tComponent,\n\tcomputed,\n\tforwardRef,\n\tinput,\n\tmodel,\n\tnumberAttribute,\n\toutput,\n\tsignal,\n} from '@angular/core';\nimport { type ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ChangeFn, TouchFn } from '@spartan-ng/brain/forms';\nimport { type ClassValue } from 'clsx';\nimport { provideBrnInputOtp } from './brn-input-otp.token';\n\nexport const BRN_INPUT_OTP_VALUE_ACCESSOR = {\n\tprovide: NG_VALUE_ACCESSOR,\n\tuseExisting: forwardRef(() => BrnInputOtpComponent),\n\tmulti: true,\n};\n\nexport type InputMode = 'text' | 'tel' | 'url' | 'email' | 'numeric' | 'decimal' | 'search';\n\n@Component({\n\tselector: 'brn-input-otp',\n\timports: [FormsModule],\n\ttemplate: `\n\t\t<ng-content />\n\t\t<div [style]=\"containerStyles()\">\n\t\t\t<input\n\t\t\t\t[class]=\"inputClass()\"\n\t\t\t\tautocomplete=\"one-time-code\"\n\t\t\t\tdata-slot=\"input-otp\"\n\t\t\t\t[style]=\"inputStyles()\"\n\t\t\t\t[disabled]=\"state().disabled()\"\n\t\t\t\t[inputMode]=\"inputMode()\"\n\t\t\t\t[ngModel]=\"value()\"\n\t\t\t\t(input)=\"onInputChange($event)\"\n\t\t\t\t(paste)=\"onPaste($event)\"\n\t\t\t\t(focus)=\"focused.set(true)\"\n\t\t\t\t(blur)=\"focused.set(false)\"\n\t\t\t/>\n\t\t</div>\n\t`,\n\thost: {\n\t\t'[style]': 'hostStyles()',\n\t\t'data-input-otp-container': 'true',\n\t},\n\tproviders: [BRN_INPUT_OTP_VALUE_ACCESSOR, provideBrnInputOtp(BrnInputOtpComponent)],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BrnInputOtpComponent implements ControlValueAccessor {\n\t/** Whether the input has focus. */\n\tprotected readonly focused = signal<boolean>(false);\n\n\t/** Styles applied to the host element. */\n\tpublic readonly hostStyles = input<string>(\n\t\t'position: relative; cursor: text; user-select: none; pointer-events: none;',\n\t);\n\n\t/** Styles applied to the input element to make it invisible and clickable. */\n\tpublic readonly inputStyles = input<string>(\n\t\t'position: absolute; inset: 0; width: 100%; height: 100%; display: flex; textAlign: left; opacity: 1; color: transparent; pointerEvents: all; background: transparent; caret-color: transparent; border: 0px solid transparent; outline: transparent solid 0px; box-shadow: none; line-height: 1; letter-spacing: -0.5em; font-family: monospace; font-variant-numeric: tabular-nums;',\n\t);\n\n\t/** Styles applied to the container element. */\n\tpublic readonly containerStyles = input<string>('position: absolute; inset: 0; pointer-events: none;');\n\n\t/** Determine if the date picker is disabled. */\n\tpublic readonly disabled = input<boolean, BooleanInput>(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\t/** The number of slots. */\n\tpublic readonly maxLength = input.required<number, NumberInput>({ transform: numberAttribute });\n\n\t/** Virtual keyboard appearance on mobile */\n\tpublic readonly inputMode = input<InputMode>('numeric');\n\n\tpublic readonly inputClass = input<ClassValue>('');\n\n\t/**\n\t * Defines how the pasted text should be transformed before saving to model/form.\n\t * Allows pasting text which contains extra characters like spaces, dashes, etc. and are longer than the maxLength.\n\t *\n\t * \"XXX-XXX\": (pastedText) => pastedText.replaceAll('-', '')\n\t * \"XXX XXX\": (pastedText) => pastedText.replaceAll(/\\s+/g, '')\n\t */\n\tpublic readonly transformPaste = input<(pastedText: string, maxLength: number) => string>((text) => text);\n\n\t/** The value controlling the input */\n\tpublic readonly value = model<string>('');\n\n\tpublic readonly context = computed(() => {\n\t\tconst value = this.value();\n\t\tconst focused = this.focused();\n\t\tconst maxLength = this.maxLength();\n\t\tconst slots = Array.from({ length: this.maxLength() }).map((_, slotIndex) => {\n\t\t\tconst char = value[slotIndex] !== undefined ? value[slotIndex] : null;\n\n\t\t\tconst isActive =\n\t\t\t\tfocused && (value.length === slotIndex || (value.length === maxLength && slotIndex === maxLength - 1));\n\n\t\t\treturn {\n\t\t\t\tchar,\n\t\t\t\tisActive,\n\t\t\t\thasFakeCaret: isActive && value.length === slotIndex,\n\t\t\t};\n\t\t});\n\n\t\treturn slots;\n\t});\n\n\t/** Emitted when the input is complete, triggered through input or paste. */\n\tpublic readonly completed = output<string>();\n\n\tprotected readonly state = computed(() => ({\n\t\tdisabled: signal(this.disabled()),\n\t}));\n\n\tprotected _onChange?: ChangeFn<string>;\n\tprotected _onTouched?: TouchFn;\n\n\tprotected onInputChange(event: Event) {\n\t\tlet newValue = (event.target as HTMLInputElement).value;\n\t\tconst maxLength = this.maxLength();\n\n\t\tif (newValue.length > maxLength) {\n\t\t\t// Replace the last character when max length is exceeded\n\t\t\tnewValue = newValue.slice(0, maxLength - 1) + newValue.slice(-1);\n\t\t}\n\n\t\tthis.updateValue(newValue, maxLength);\n\t}\n\n\tprotected onPaste(event: ClipboardEvent) {\n\t\tevent.preventDefault();\n\t\tconst clipboardData = event.clipboardData?.getData('text/plain') || '';\n\n\t\tconst maxLength = this.maxLength();\n\n\t\tconst content = this.transformPaste()(clipboardData, maxLength);\n\t\tconst newValue = content.slice(0, maxLength);\n\n\t\tthis.updateValue(newValue, maxLength);\n\t}\n\n\t/** CONTROL VALUE ACCESSOR */\n\twriteValue(value: string | null): void {\n\t\t// optional FormControl is initialized with null value\n\t\tif (value === null) return;\n\n\t\tthis.updateValue(value, this.maxLength());\n\t}\n\n\tregisterOnChange(fn: ChangeFn<string>): void {\n\t\tthis._onChange = fn;\n\t}\n\n\tregisterOnTouched(fn: TouchFn): void {\n\t\tthis._onTouched = fn;\n\t}\n\n\tsetDisabledState(isDisabled: boolean): void {\n\t\tthis.state().disabled.set(isDisabled);\n\t}\n\n\tprivate isCompleted(newValue: string, previousValue: string, maxLength: number) {\n\t\treturn newValue !== previousValue && previousValue.length < maxLength && newValue.length === maxLength;\n\t}\n\n\tprivate updateValue(newValue: string, maxLength: number) {\n\t\tconst previousValue = this.value();\n\n\t\tthis.value.set(newValue);\n\t\tthis._onChange?.(newValue);\n\n\t\tif (this.isCompleted(newValue, previousValue, maxLength)) {\n\t\t\tthis.completed.emit(newValue);\n\t\t}\n\t}\n}\n","import { NgModule } from '@angular/core';\nimport { BrnInputOtpSlotComponent } from './lib/brn-input-otp-slot.component';\nimport { BrnInputOtpComponent } from './lib/brn-input-otp.component';\n\nexport * from './lib/brn-input-otp-slot.component';\nexport * from './lib/brn-input-otp.component';\n\nexport const BrnInputOtpImports = [BrnInputOtpComponent, BrnInputOtpSlotComponent] as const;\n\n@NgModule({\n\timports: [...BrnInputOtpImports],\n\texports: [...BrnInputOtpImports],\n})\nexport class BrnInputOtpModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/input-otp/index.d.ts
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
|
+
import { BrnInputOtpSlotComponent } from './lib/brn-input-otp-slot.component';
|
|
2
|
+
import { BrnInputOtpComponent } from './lib/brn-input-otp.component';
|
|
1
3
|
import * as i0 from "@angular/core";
|
|
2
4
|
import * as i1 from "./lib/brn-input-otp.component";
|
|
3
5
|
import * as i2 from "./lib/brn-input-otp-slot.component";
|
|
4
6
|
export * from './lib/brn-input-otp-slot.component';
|
|
5
7
|
export * from './lib/brn-input-otp.component';
|
|
8
|
+
export declare const BrnInputOtpImports: readonly [typeof BrnInputOtpComponent, typeof BrnInputOtpSlotComponent];
|
|
6
9
|
export declare class BrnInputOtpModule {
|
|
7
10
|
static ɵfac: i0.ɵɵFactoryDeclaration<BrnInputOtpModule, never>;
|
|
8
11
|
static ɵmod: i0.ɵɵNgModuleDeclaration<BrnInputOtpModule, never, [typeof i1.BrnInputOtpComponent, typeof i2.BrnInputOtpSlotComponent], [typeof i1.BrnInputOtpComponent, typeof i2.BrnInputOtpSlotComponent]>;
|
|
@@ -3,8 +3,9 @@ import * as i0 from "@angular/core";
|
|
|
3
3
|
export declare class BrnInputOtpSlotComponent {
|
|
4
4
|
/** Access the input-otp component */
|
|
5
5
|
protected readonly inputOtp: import("@spartan-ng/brain/input-otp").BrnInputOtpComponent;
|
|
6
|
+
/** The index of the slot to render the char or a fake caret */
|
|
6
7
|
readonly index: import("@angular/core").InputSignalWithTransform<number, NumberInput>;
|
|
7
|
-
readonly slot: import("@angular/core").Signal<{
|
|
8
|
+
protected readonly slot: import("@angular/core").Signal<{
|
|
8
9
|
char: string | null;
|
|
9
10
|
isActive: boolean;
|
|
10
11
|
hasFakeCaret: boolean;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { BooleanInput, NumberInput } from '@angular/cdk/coercion';
|
|
2
|
-
import { ControlValueAccessor } from '@angular/forms';
|
|
2
|
+
import { type ControlValueAccessor } from '@angular/forms';
|
|
3
3
|
import { ChangeFn, TouchFn } from '@spartan-ng/brain/forms';
|
|
4
|
+
import { type ClassValue } from 'clsx';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
export declare const BRN_INPUT_OTP_VALUE_ACCESSOR: {
|
|
6
7
|
provide: import("@angular/core").InjectionToken<readonly ControlValueAccessor[]>;
|
|
@@ -11,8 +12,11 @@ export type InputMode = 'text' | 'tel' | 'url' | 'email' | 'numeric' | 'decimal'
|
|
|
11
12
|
export declare class BrnInputOtpComponent implements ControlValueAccessor {
|
|
12
13
|
/** Whether the input has focus. */
|
|
13
14
|
protected readonly focused: import("@angular/core").WritableSignal<boolean>;
|
|
15
|
+
/** Styles applied to the host element. */
|
|
14
16
|
readonly hostStyles: import("@angular/core").InputSignal<string>;
|
|
17
|
+
/** Styles applied to the input element to make it invisible and clickable. */
|
|
15
18
|
readonly inputStyles: import("@angular/core").InputSignal<string>;
|
|
19
|
+
/** Styles applied to the container element. */
|
|
16
20
|
readonly containerStyles: import("@angular/core").InputSignal<string>;
|
|
17
21
|
/** Determine if the date picker is disabled. */
|
|
18
22
|
readonly disabled: import("@angular/core").InputSignalWithTransform<boolean, BooleanInput>;
|
|
@@ -20,7 +24,7 @@ export declare class BrnInputOtpComponent implements ControlValueAccessor {
|
|
|
20
24
|
readonly maxLength: import("@angular/core").InputSignalWithTransform<number, NumberInput>;
|
|
21
25
|
/** Virtual keyboard appearance on mobile */
|
|
22
26
|
readonly inputMode: import("@angular/core").InputSignal<InputMode>;
|
|
23
|
-
readonly inputClass: import("@angular/core").InputSignal<
|
|
27
|
+
readonly inputClass: import("@angular/core").InputSignal<ClassValue>;
|
|
24
28
|
/**
|
|
25
29
|
* Defines how the pasted text should be transformed before saving to model/form.
|
|
26
30
|
* Allows pasting text which contains extra characters like spaces, dashes, etc. and are longer than the maxLength.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@spartan-ng/brain",
|
|
3
|
-
"version": "0.0.1-alpha.
|
|
3
|
+
"version": "0.0.1-alpha.476",
|
|
4
4
|
"sideEffects": false,
|
|
5
5
|
"exports": {
|
|
6
6
|
"./hlm-tailwind-preset": {
|
|
@@ -114,10 +114,6 @@
|
|
|
114
114
|
"types": "./switch/index.d.ts",
|
|
115
115
|
"default": "./fesm2022/spartan-ng-brain-switch.mjs"
|
|
116
116
|
},
|
|
117
|
-
"./table": {
|
|
118
|
-
"types": "./table/index.d.ts",
|
|
119
|
-
"default": "./fesm2022/spartan-ng-brain-table.mjs"
|
|
120
|
-
},
|
|
121
117
|
"./tabs": {
|
|
122
118
|
"types": "./tabs/index.d.ts",
|
|
123
119
|
"default": "./fesm2022/spartan-ng-brain-tabs.mjs"
|
|
@@ -1,507 +0,0 @@
|
|
|
1
|
-
import * as i0 from '@angular/core';
|
|
2
|
-
import { inject, TemplateRef, Directive, input, ContentChild, ViewChild, Input, ViewEncapsulation, ChangeDetectionStrategy, Component, ViewContainerRef, signal, computed, effect, untracked, numberAttribute, EventEmitter, booleanAttribute, ContentChildren, Output, NgModule } from '@angular/core';
|
|
3
|
-
import * as i1 from '@angular/cdk/table';
|
|
4
|
-
import { CdkCellDef, CdkFooterCellDef, CdkHeaderCellDef, CdkTableModule, CdkColumnDef, CdkTable, CdkRowDef } from '@angular/cdk/table';
|
|
5
|
-
import { provideTableClassesSettableExisting } from '@spartan-ng/brain/core';
|
|
6
|
-
|
|
7
|
-
class BrnCellDefDirective extends CdkCellDef {
|
|
8
|
-
template;
|
|
9
|
-
constructor() {
|
|
10
|
-
const template = inject(TemplateRef);
|
|
11
|
-
super(template);
|
|
12
|
-
this.template = template;
|
|
13
|
-
}
|
|
14
|
-
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: BrnCellDefDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
15
|
-
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.8", type: BrnCellDefDirective, isStandalone: true, selector: "[brnCellDef]", exportAs: ["brnCellDef"], usesInheritance: true, ngImport: i0 });
|
|
16
|
-
}
|
|
17
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: BrnCellDefDirective, decorators: [{
|
|
18
|
-
type: Directive,
|
|
19
|
-
args: [{
|
|
20
|
-
selector: '[brnCellDef]',
|
|
21
|
-
exportAs: 'brnCellDef',
|
|
22
|
-
}]
|
|
23
|
-
}], ctorParameters: () => [] });
|
|
24
|
-
|
|
25
|
-
class BrnFooterDefDirective extends CdkFooterCellDef {
|
|
26
|
-
template;
|
|
27
|
-
constructor() {
|
|
28
|
-
const template = inject(TemplateRef);
|
|
29
|
-
super(template);
|
|
30
|
-
this.template = template;
|
|
31
|
-
}
|
|
32
|
-
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: BrnFooterDefDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
33
|
-
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.8", type: BrnFooterDefDirective, isStandalone: true, selector: "[brnFooterDef]", exportAs: ["brnFooterDef"], usesInheritance: true, ngImport: i0 });
|
|
34
|
-
}
|
|
35
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: BrnFooterDefDirective, decorators: [{
|
|
36
|
-
type: Directive,
|
|
37
|
-
args: [{
|
|
38
|
-
selector: '[brnFooterDef]',
|
|
39
|
-
exportAs: 'brnFooterDef',
|
|
40
|
-
}]
|
|
41
|
-
}], ctorParameters: () => [] });
|
|
42
|
-
|
|
43
|
-
class BrnHeaderDefDirective extends CdkHeaderCellDef {
|
|
44
|
-
template;
|
|
45
|
-
constructor() {
|
|
46
|
-
const template = inject(TemplateRef);
|
|
47
|
-
super(template);
|
|
48
|
-
this.template = template;
|
|
49
|
-
}
|
|
50
|
-
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: BrnHeaderDefDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
51
|
-
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.8", type: BrnHeaderDefDirective, isStandalone: true, selector: "[brnHeaderDef]", exportAs: ["brnHeaderDef"], usesInheritance: true, ngImport: i0 });
|
|
52
|
-
}
|
|
53
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: BrnHeaderDefDirective, decorators: [{
|
|
54
|
-
type: Directive,
|
|
55
|
-
args: [{
|
|
56
|
-
selector: '[brnHeaderDef]',
|
|
57
|
-
exportAs: 'brnHeaderDef',
|
|
58
|
-
}]
|
|
59
|
-
}], ctorParameters: () => [] });
|
|
60
|
-
|
|
61
|
-
class BrnColumnDefComponent {
|
|
62
|
-
get columnDef() {
|
|
63
|
-
return this._columnDef;
|
|
64
|
-
}
|
|
65
|
-
get cell() {
|
|
66
|
-
return this._columnDef.cell;
|
|
67
|
-
}
|
|
68
|
-
_name = '';
|
|
69
|
-
get name() {
|
|
70
|
-
return this._name;
|
|
71
|
-
}
|
|
72
|
-
set name(value) {
|
|
73
|
-
this._name = value;
|
|
74
|
-
if (!this._columnDef)
|
|
75
|
-
return;
|
|
76
|
-
this._columnDef.name = value;
|
|
77
|
-
}
|
|
78
|
-
class = input('');
|
|
79
|
-
_columnDef;
|
|
80
|
-
_cellDef;
|
|
81
|
-
_footerCellDef;
|
|
82
|
-
_headerCellDef;
|
|
83
|
-
ngAfterContentChecked() {
|
|
84
|
-
this._columnDef.name = this.name;
|
|
85
|
-
if (this._cellDef) {
|
|
86
|
-
this._columnDef.cell = this._cellDef;
|
|
87
|
-
}
|
|
88
|
-
if (this._headerCellDef) {
|
|
89
|
-
this._columnDef.headerCell = this._headerCellDef;
|
|
90
|
-
}
|
|
91
|
-
if (this._footerCellDef) {
|
|
92
|
-
this._columnDef.footerCell = this._footerCellDef;
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: BrnColumnDefComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
96
|
-
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.8", type: BrnColumnDefComponent, isStandalone: true, selector: "brn-column-def", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: false, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "_cellDef", first: true, predicate: BrnCellDefDirective, descendants: true, static: true }, { propertyName: "_footerCellDef", first: true, predicate: BrnFooterDefDirective, descendants: true, static: true }, { propertyName: "_headerCellDef", first: true, predicate: BrnHeaderDefDirective, descendants: true, static: true }], viewQueries: [{ propertyName: "_columnDef", first: true, predicate: CdkColumnDef, descendants: true, static: true }], ngImport: i0, template: `
|
|
97
|
-
<ng-container [cdkColumnDef]="name">
|
|
98
|
-
<ng-content select="[brnHeaderDef]" />
|
|
99
|
-
<ng-content select="[brnCellDef]" />
|
|
100
|
-
<ng-content select="[brnFooterDef]" />
|
|
101
|
-
</ng-container>
|
|
102
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CdkTableModule }, { kind: "directive", type: i1.CdkColumnDef, selector: "[cdkColumnDef]", inputs: ["cdkColumnDef", "sticky", "stickyEnd"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
103
|
-
}
|
|
104
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: BrnColumnDefComponent, decorators: [{
|
|
105
|
-
type: Component,
|
|
106
|
-
args: [{
|
|
107
|
-
selector: 'brn-column-def',
|
|
108
|
-
imports: [CdkTableModule],
|
|
109
|
-
template: `
|
|
110
|
-
<ng-container [cdkColumnDef]="name">
|
|
111
|
-
<ng-content select="[brnHeaderDef]" />
|
|
112
|
-
<ng-content select="[brnCellDef]" />
|
|
113
|
-
<ng-content select="[brnFooterDef]" />
|
|
114
|
-
</ng-container>
|
|
115
|
-
`,
|
|
116
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
117
|
-
encapsulation: ViewEncapsulation.None,
|
|
118
|
-
}]
|
|
119
|
-
}], propDecorators: { name: [{
|
|
120
|
-
type: Input
|
|
121
|
-
}], _columnDef: [{
|
|
122
|
-
type: ViewChild,
|
|
123
|
-
args: [CdkColumnDef, { static: true }]
|
|
124
|
-
}], _cellDef: [{
|
|
125
|
-
type: ContentChild,
|
|
126
|
-
args: [BrnCellDefDirective, { static: true }]
|
|
127
|
-
}], _footerCellDef: [{
|
|
128
|
-
type: ContentChild,
|
|
129
|
-
args: [BrnFooterDefDirective, { static: true }]
|
|
130
|
-
}], _headerCellDef: [{
|
|
131
|
-
type: ContentChild,
|
|
132
|
-
args: [BrnHeaderDefDirective, { static: true }]
|
|
133
|
-
}] } });
|
|
134
|
-
|
|
135
|
-
class BrnPaginatorDirective {
|
|
136
|
-
static ngTemplateContextGuard(_directive, _context) {
|
|
137
|
-
return true;
|
|
138
|
-
}
|
|
139
|
-
_vcr = inject(ViewContainerRef);
|
|
140
|
-
_template = inject((TemplateRef));
|
|
141
|
-
_state = signal({
|
|
142
|
-
currentPage: 0,
|
|
143
|
-
startIndex: 0,
|
|
144
|
-
endIndex: 0,
|
|
145
|
-
pageSize: 10,
|
|
146
|
-
totalPages: 0,
|
|
147
|
-
totalElements: null,
|
|
148
|
-
});
|
|
149
|
-
_decrementable = computed(() => 0 < this._state().startIndex);
|
|
150
|
-
_incrementable = computed(() => this._state().endIndex < (this._state().totalElements ?? 0) - 1);
|
|
151
|
-
set totalElements(value) {
|
|
152
|
-
this.calculateNewState({ newTotalElements: value, newPage: 0 });
|
|
153
|
-
}
|
|
154
|
-
set currentPage(value) {
|
|
155
|
-
this.calculateNewState({ newPage: value });
|
|
156
|
-
}
|
|
157
|
-
set pageSize(value) {
|
|
158
|
-
this.calculateNewState({ newPageSize: value, newPage: 0 });
|
|
159
|
-
}
|
|
160
|
-
onStateChange;
|
|
161
|
-
constructor() {
|
|
162
|
-
effect(() => {
|
|
163
|
-
const state = this._state();
|
|
164
|
-
untracked(() => {
|
|
165
|
-
Promise.resolve().then(() => {
|
|
166
|
-
if (this.onStateChange) {
|
|
167
|
-
this.onStateChange(state);
|
|
168
|
-
}
|
|
169
|
-
});
|
|
170
|
-
});
|
|
171
|
-
});
|
|
172
|
-
}
|
|
173
|
-
ngOnInit() {
|
|
174
|
-
this._vcr.createEmbeddedView(this._template, {
|
|
175
|
-
$implicit: {
|
|
176
|
-
state: this._state,
|
|
177
|
-
increment: () => this.incrementPage(),
|
|
178
|
-
decrement: () => this.decrementPage(),
|
|
179
|
-
incrementable: this._incrementable,
|
|
180
|
-
decrementable: this._decrementable,
|
|
181
|
-
goToFirstPage: () => this.reset(),
|
|
182
|
-
goToLastPage: () => this.goToLastPage(),
|
|
183
|
-
},
|
|
184
|
-
});
|
|
185
|
-
}
|
|
186
|
-
decrementPage() {
|
|
187
|
-
const { currentPage } = this._state();
|
|
188
|
-
if (0 < currentPage) {
|
|
189
|
-
this.calculateNewState({ newPage: currentPage - 1 });
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
goToLastPage() {
|
|
193
|
-
this.currentPage = this._state().totalPages;
|
|
194
|
-
}
|
|
195
|
-
incrementPage() {
|
|
196
|
-
const { currentPage, totalPages } = this._state();
|
|
197
|
-
if (totalPages > currentPage) {
|
|
198
|
-
this.calculateNewState({ newPage: currentPage + 1 });
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
reset() {
|
|
202
|
-
this.currentPage = 0;
|
|
203
|
-
}
|
|
204
|
-
calculateNewState({ newPage, newPageSize, newTotalElements, }) {
|
|
205
|
-
const previousState = this._state();
|
|
206
|
-
let currentPage = newPage ?? previousState.currentPage;
|
|
207
|
-
const pageSize = newPageSize ?? previousState.pageSize;
|
|
208
|
-
const totalElements = newTotalElements ?? previousState.totalElements ?? 0;
|
|
209
|
-
const newTotalPages = totalElements ? Math.floor(totalElements / pageSize) : 0;
|
|
210
|
-
if (newTotalPages < currentPage - 1) {
|
|
211
|
-
currentPage = newTotalPages - 1;
|
|
212
|
-
}
|
|
213
|
-
const newStartIndex = totalElements === 0 ? 0 : Math.min(totalElements - 1, currentPage * pageSize);
|
|
214
|
-
const newEndIndex = Math.min((currentPage + 1) * pageSize - 1, totalElements - 1);
|
|
215
|
-
const newState = {
|
|
216
|
-
currentPage: currentPage,
|
|
217
|
-
startIndex: newStartIndex,
|
|
218
|
-
endIndex: newEndIndex,
|
|
219
|
-
pageSize: pageSize,
|
|
220
|
-
totalPages: newTotalPages,
|
|
221
|
-
totalElements: totalElements,
|
|
222
|
-
};
|
|
223
|
-
this._state.set(newState);
|
|
224
|
-
}
|
|
225
|
-
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: BrnPaginatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
226
|
-
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "19.2.8", type: BrnPaginatorDirective, isStandalone: true, selector: "[brnPaginator]", inputs: { totalElements: ["brnPaginatorTotalElements", "totalElements"], currentPage: ["brnPaginatorCurrentPage", "currentPage", numberAttribute], pageSize: ["brnPaginatorPageSize", "pageSize", numberAttribute], onStateChange: ["brnPaginatorOnStateChange", "onStateChange"] }, exportAs: ["brnPaginator"], ngImport: i0 });
|
|
227
|
-
}
|
|
228
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: BrnPaginatorDirective, decorators: [{
|
|
229
|
-
type: Directive,
|
|
230
|
-
args: [{
|
|
231
|
-
selector: '[brnPaginator]',
|
|
232
|
-
exportAs: 'brnPaginator',
|
|
233
|
-
}]
|
|
234
|
-
}], ctorParameters: () => [], propDecorators: { totalElements: [{
|
|
235
|
-
type: Input,
|
|
236
|
-
args: [{ alias: 'brnPaginatorTotalElements' }]
|
|
237
|
-
}], currentPage: [{
|
|
238
|
-
type: Input,
|
|
239
|
-
args: [{ alias: 'brnPaginatorCurrentPage', transform: numberAttribute }]
|
|
240
|
-
}], pageSize: [{
|
|
241
|
-
type: Input,
|
|
242
|
-
args: [{ alias: 'brnPaginatorPageSize', transform: numberAttribute }]
|
|
243
|
-
}], onStateChange: [{
|
|
244
|
-
type: Input,
|
|
245
|
-
args: [{ alias: 'brnPaginatorOnStateChange' }]
|
|
246
|
-
}] } });
|
|
247
|
-
|
|
248
|
-
class BrnTableComponent {
|
|
249
|
-
_cdkTable;
|
|
250
|
-
// Cdk Table Inputs / Outputs
|
|
251
|
-
dataSource = [];
|
|
252
|
-
fixedLayout = false;
|
|
253
|
-
multiTemplateDataRows = false;
|
|
254
|
-
displayedColumns = [];
|
|
255
|
-
_trackBy;
|
|
256
|
-
get trackBy() {
|
|
257
|
-
return this._trackBy;
|
|
258
|
-
}
|
|
259
|
-
set trackBy(value) {
|
|
260
|
-
this._trackBy = value;
|
|
261
|
-
if (this._cdkTable) {
|
|
262
|
-
this._cdkTable.trackBy = this._trackBy;
|
|
263
|
-
}
|
|
264
|
-
}
|
|
265
|
-
contentChanged = new EventEmitter();
|
|
266
|
-
// Brn Inputs / Outputs
|
|
267
|
-
customTemplateDataRows = false;
|
|
268
|
-
onRowClick;
|
|
269
|
-
stickyHeader = false;
|
|
270
|
-
tableClasses = '';
|
|
271
|
-
headerRowClasses = '';
|
|
272
|
-
bodyRowClasses = '';
|
|
273
|
-
columnDefComponents;
|
|
274
|
-
rowDefs;
|
|
275
|
-
// after the <ng-content> has been initialized, the column definitions are available.
|
|
276
|
-
// All that's left is to add them to the table ourselves:
|
|
277
|
-
ngAfterContentInit() {
|
|
278
|
-
this.columnDefComponents.forEach((component) => {
|
|
279
|
-
if (!this._cdkTable)
|
|
280
|
-
return;
|
|
281
|
-
if (component.cell) {
|
|
282
|
-
this._cdkTable.addColumnDef(component.columnDef);
|
|
283
|
-
}
|
|
284
|
-
});
|
|
285
|
-
this.rowDefs.forEach((rowDef) => {
|
|
286
|
-
if (!this._cdkTable)
|
|
287
|
-
return;
|
|
288
|
-
this._cdkTable.addRowDef(rowDef);
|
|
289
|
-
});
|
|
290
|
-
}
|
|
291
|
-
setTableClasses({ table, headerRow, bodyRow, }) {
|
|
292
|
-
if (table) {
|
|
293
|
-
this.tableClasses = table;
|
|
294
|
-
}
|
|
295
|
-
if (headerRow) {
|
|
296
|
-
this.headerRowClasses = headerRow;
|
|
297
|
-
}
|
|
298
|
-
if (bodyRow) {
|
|
299
|
-
this.bodyRowClasses = bodyRow;
|
|
300
|
-
}
|
|
301
|
-
}
|
|
302
|
-
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: BrnTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
303
|
-
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.8", type: BrnTableComponent, isStandalone: true, selector: "brn-table", inputs: { dataSource: "dataSource", fixedLayout: ["fixedLayout", "fixedLayout", booleanAttribute], multiTemplateDataRows: ["multiTemplateDataRows", "multiTemplateDataRows", booleanAttribute], displayedColumns: "displayedColumns", trackBy: "trackBy", customTemplateDataRows: ["customTemplateDataRows", "customTemplateDataRows", booleanAttribute], onRowClick: "onRowClick", stickyHeader: ["stickyHeader", "stickyHeader", booleanAttribute], tableClasses: "tableClasses", headerRowClasses: "headerRowClasses", bodyRowClasses: "bodyRowClasses" }, outputs: { contentChanged: "contentChanged" }, providers: [provideTableClassesSettableExisting((() => BrnTableComponent))], queries: [{ propertyName: "columnDefComponents", predicate: BrnColumnDefComponent }, { propertyName: "rowDefs", predicate: CdkRowDef }], viewQueries: [{ propertyName: "_cdkTable", first: true, predicate: ["cdkTable"], descendants: true, read: CdkTable, static: true }], ngImport: i0, template: `
|
|
304
|
-
<cdk-table
|
|
305
|
-
#cdkTable
|
|
306
|
-
[class]="tableClasses"
|
|
307
|
-
[dataSource]="dataSource"
|
|
308
|
-
[fixedLayout]="fixedLayout"
|
|
309
|
-
[multiTemplateDataRows]="multiTemplateDataRows"
|
|
310
|
-
(contentChanged)="contentChanged.emit()"
|
|
311
|
-
>
|
|
312
|
-
<ng-content />
|
|
313
|
-
|
|
314
|
-
<cdk-header-row [class]="headerRowClasses" *cdkHeaderRowDef="displayedColumns; sticky: stickyHeader" />
|
|
315
|
-
@if (!customTemplateDataRows) {
|
|
316
|
-
<cdk-row
|
|
317
|
-
[tabindex]="!!onRowClick ? 0 : -1"
|
|
318
|
-
[attr.role]="!!onRowClick ? 'button' : 'row'"
|
|
319
|
-
[class.row-interactive]="!!onRowClick"
|
|
320
|
-
(keydown.enter)="!!onRowClick && onRowClick(row)"
|
|
321
|
-
(click)="!!onRowClick && onRowClick(row)"
|
|
322
|
-
[class]="bodyRowClasses"
|
|
323
|
-
*cdkRowDef="let row; columns: displayedColumns"
|
|
324
|
-
/>
|
|
325
|
-
}
|
|
326
|
-
|
|
327
|
-
<ng-template cdkNoDataRow>
|
|
328
|
-
<ng-content select="[brnNoDataRow]" />
|
|
329
|
-
</ng-template>
|
|
330
|
-
</cdk-table>
|
|
331
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CdkTableModule }, { kind: "component", type: i1.CdkTable, selector: "cdk-table, table[cdk-table]", inputs: ["trackBy", "dataSource", "multiTemplateDataRows", "fixedLayout"], outputs: ["contentChanged"], exportAs: ["cdkTable"] }, { kind: "directive", type: i1.CdkRowDef, selector: "[cdkRowDef]", inputs: ["cdkRowDefColumns", "cdkRowDefWhen"] }, { kind: "component", type: i1.CdkRow, selector: "cdk-row, tr[cdk-row]" }, { kind: "component", type: i1.CdkHeaderRow, selector: "cdk-header-row, tr[cdk-header-row]" }, { kind: "directive", type: i1.CdkHeaderRowDef, selector: "[cdkHeaderRowDef]", inputs: ["cdkHeaderRowDef", "cdkHeaderRowDefSticky"] }, { kind: "directive", type: i1.CdkNoDataRow, selector: "ng-template[cdkNoDataRow]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
332
|
-
}
|
|
333
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: BrnTableComponent, decorators: [{
|
|
334
|
-
type: Component,
|
|
335
|
-
args: [{
|
|
336
|
-
selector: 'brn-table',
|
|
337
|
-
imports: [CdkTableModule],
|
|
338
|
-
providers: [provideTableClassesSettableExisting((() => BrnTableComponent))],
|
|
339
|
-
template: `
|
|
340
|
-
<cdk-table
|
|
341
|
-
#cdkTable
|
|
342
|
-
[class]="tableClasses"
|
|
343
|
-
[dataSource]="dataSource"
|
|
344
|
-
[fixedLayout]="fixedLayout"
|
|
345
|
-
[multiTemplateDataRows]="multiTemplateDataRows"
|
|
346
|
-
(contentChanged)="contentChanged.emit()"
|
|
347
|
-
>
|
|
348
|
-
<ng-content />
|
|
349
|
-
|
|
350
|
-
<cdk-header-row [class]="headerRowClasses" *cdkHeaderRowDef="displayedColumns; sticky: stickyHeader" />
|
|
351
|
-
@if (!customTemplateDataRows) {
|
|
352
|
-
<cdk-row
|
|
353
|
-
[tabindex]="!!onRowClick ? 0 : -1"
|
|
354
|
-
[attr.role]="!!onRowClick ? 'button' : 'row'"
|
|
355
|
-
[class.row-interactive]="!!onRowClick"
|
|
356
|
-
(keydown.enter)="!!onRowClick && onRowClick(row)"
|
|
357
|
-
(click)="!!onRowClick && onRowClick(row)"
|
|
358
|
-
[class]="bodyRowClasses"
|
|
359
|
-
*cdkRowDef="let row; columns: displayedColumns"
|
|
360
|
-
/>
|
|
361
|
-
}
|
|
362
|
-
|
|
363
|
-
<ng-template cdkNoDataRow>
|
|
364
|
-
<ng-content select="[brnNoDataRow]" />
|
|
365
|
-
</ng-template>
|
|
366
|
-
</cdk-table>
|
|
367
|
-
`,
|
|
368
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
369
|
-
encapsulation: ViewEncapsulation.None,
|
|
370
|
-
}]
|
|
371
|
-
}], propDecorators: { _cdkTable: [{
|
|
372
|
-
type: ViewChild,
|
|
373
|
-
args: ['cdkTable', { read: CdkTable, static: true }]
|
|
374
|
-
}], dataSource: [{
|
|
375
|
-
type: Input
|
|
376
|
-
}], fixedLayout: [{
|
|
377
|
-
type: Input,
|
|
378
|
-
args: [{ transform: booleanAttribute }]
|
|
379
|
-
}], multiTemplateDataRows: [{
|
|
380
|
-
type: Input,
|
|
381
|
-
args: [{ transform: booleanAttribute }]
|
|
382
|
-
}], displayedColumns: [{
|
|
383
|
-
type: Input
|
|
384
|
-
}], trackBy: [{
|
|
385
|
-
type: Input
|
|
386
|
-
}], contentChanged: [{
|
|
387
|
-
type: Output
|
|
388
|
-
}], customTemplateDataRows: [{
|
|
389
|
-
type: Input,
|
|
390
|
-
args: [{ transform: booleanAttribute }]
|
|
391
|
-
}], onRowClick: [{
|
|
392
|
-
type: Input
|
|
393
|
-
}], stickyHeader: [{
|
|
394
|
-
type: Input,
|
|
395
|
-
args: [{ transform: booleanAttribute }]
|
|
396
|
-
}], tableClasses: [{
|
|
397
|
-
type: Input
|
|
398
|
-
}], headerRowClasses: [{
|
|
399
|
-
type: Input
|
|
400
|
-
}], bodyRowClasses: [{
|
|
401
|
-
type: Input
|
|
402
|
-
}], columnDefComponents: [{
|
|
403
|
-
type: ContentChildren,
|
|
404
|
-
args: [BrnColumnDefComponent]
|
|
405
|
-
}], rowDefs: [{
|
|
406
|
-
type: ContentChildren,
|
|
407
|
-
args: [CdkRowDef]
|
|
408
|
-
}] } });
|
|
409
|
-
|
|
410
|
-
class BrnColumnManager {
|
|
411
|
-
_initialColumnVisibility;
|
|
412
|
-
_columnVisibility;
|
|
413
|
-
allColumns;
|
|
414
|
-
columnVisibility;
|
|
415
|
-
displayedColumns = computed(() => {
|
|
416
|
-
return Object.entries(this._columnVisibility())
|
|
417
|
-
.filter(([, value]) => (typeof value === 'boolean' ? value : value.visible))
|
|
418
|
-
.map(([key]) => key);
|
|
419
|
-
});
|
|
420
|
-
constructor(initialColumnVisibility) {
|
|
421
|
-
this._initialColumnVisibility = initialColumnVisibility;
|
|
422
|
-
this._columnVisibility = signal(this._initialColumnVisibility);
|
|
423
|
-
this._columnVisibility.set(this._initialColumnVisibility);
|
|
424
|
-
this.columnVisibility = this._columnVisibility.asReadonly();
|
|
425
|
-
this.allColumns = this.createAllColumns(this._initialColumnVisibility);
|
|
426
|
-
}
|
|
427
|
-
isColumnVisible = (columnName) => {
|
|
428
|
-
const visibilityMap = this.columnVisibility();
|
|
429
|
-
const columnEntry = visibilityMap[columnName];
|
|
430
|
-
return typeof columnEntry === 'boolean' ? columnEntry : columnEntry.visible;
|
|
431
|
-
};
|
|
432
|
-
isColumnDisabled = (columnName) => this.isColumnVisible(columnName) && this.displayedColumns().length === 1;
|
|
433
|
-
toggleVisibility(columnName) {
|
|
434
|
-
const visibilityMap = this._columnVisibility();
|
|
435
|
-
const columnEntry = visibilityMap[columnName];
|
|
436
|
-
const newVisibilityState = typeof columnEntry === 'boolean' ? !columnEntry : { visible: !columnEntry.visible };
|
|
437
|
-
this._columnVisibility.set({ ...visibilityMap, [columnName]: newVisibilityState });
|
|
438
|
-
}
|
|
439
|
-
setVisible(columnName) {
|
|
440
|
-
const visibilityMap = this._columnVisibility();
|
|
441
|
-
const columnEntry = visibilityMap[columnName];
|
|
442
|
-
const newVisibilityState = typeof columnEntry === 'boolean' ? true : { visible: true };
|
|
443
|
-
this._columnVisibility.set({ ...visibilityMap, [columnName]: newVisibilityState });
|
|
444
|
-
}
|
|
445
|
-
setInvisible(columnName) {
|
|
446
|
-
const visibilityMap = this._columnVisibility();
|
|
447
|
-
const columnEntry = visibilityMap[columnName];
|
|
448
|
-
const newVisibilityState = typeof columnEntry === 'boolean' ? false : { visible: false };
|
|
449
|
-
this._columnVisibility.set({ ...visibilityMap, [columnName]: newVisibilityState });
|
|
450
|
-
}
|
|
451
|
-
createAllColumns(initialColumnVisibility) {
|
|
452
|
-
const keys = Object.keys(initialColumnVisibility);
|
|
453
|
-
if (this.isBooleanConfig(initialColumnVisibility)) {
|
|
454
|
-
return keys;
|
|
455
|
-
}
|
|
456
|
-
return keys.map((key) => {
|
|
457
|
-
const values = initialColumnVisibility[key];
|
|
458
|
-
return {
|
|
459
|
-
name: key,
|
|
460
|
-
...values,
|
|
461
|
-
};
|
|
462
|
-
});
|
|
463
|
-
}
|
|
464
|
-
isBooleanConfig(config) {
|
|
465
|
-
return typeof Object.values(config)[0] === 'boolean';
|
|
466
|
-
}
|
|
467
|
-
}
|
|
468
|
-
const useBrnColumnManager = (initialColumnVisibility) => new BrnColumnManager(initialColumnVisibility);
|
|
469
|
-
|
|
470
|
-
const BrnTableImports = [
|
|
471
|
-
BrnCellDefDirective,
|
|
472
|
-
BrnColumnDefComponent,
|
|
473
|
-
BrnFooterDefDirective,
|
|
474
|
-
BrnHeaderDefDirective,
|
|
475
|
-
BrnTableComponent,
|
|
476
|
-
BrnPaginatorDirective,
|
|
477
|
-
];
|
|
478
|
-
class BrnTableModule {
|
|
479
|
-
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: BrnTableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
480
|
-
/** @nocollapse */ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.8", ngImport: i0, type: BrnTableModule, imports: [BrnCellDefDirective,
|
|
481
|
-
BrnColumnDefComponent,
|
|
482
|
-
BrnFooterDefDirective,
|
|
483
|
-
BrnHeaderDefDirective,
|
|
484
|
-
BrnTableComponent,
|
|
485
|
-
BrnPaginatorDirective], exports: [BrnCellDefDirective,
|
|
486
|
-
BrnColumnDefComponent,
|
|
487
|
-
BrnFooterDefDirective,
|
|
488
|
-
BrnHeaderDefDirective,
|
|
489
|
-
BrnTableComponent,
|
|
490
|
-
BrnPaginatorDirective] });
|
|
491
|
-
/** @nocollapse */ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: BrnTableModule, imports: [BrnColumnDefComponent,
|
|
492
|
-
BrnTableComponent] });
|
|
493
|
-
}
|
|
494
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: BrnTableModule, decorators: [{
|
|
495
|
-
type: NgModule,
|
|
496
|
-
args: [{
|
|
497
|
-
imports: [...BrnTableImports],
|
|
498
|
-
exports: [...BrnTableImports],
|
|
499
|
-
}]
|
|
500
|
-
}] });
|
|
501
|
-
|
|
502
|
-
/**
|
|
503
|
-
* Generated bundle index. Do not edit.
|
|
504
|
-
*/
|
|
505
|
-
|
|
506
|
-
export { BrnCellDefDirective, BrnColumnDefComponent, BrnColumnManager, BrnFooterDefDirective, BrnHeaderDefDirective, BrnPaginatorDirective, BrnTableComponent, BrnTableImports, BrnTableModule, useBrnColumnManager };
|
|
507
|
-
//# sourceMappingURL=spartan-ng-brain-table.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"spartan-ng-brain-table.mjs","sources":["../../../../libs/brain/table/src/lib/brn-cell-def.directive.ts","../../../../libs/brain/table/src/lib/brn-footer-def.directive.ts","../../../../libs/brain/table/src/lib/brn-header-def.directive.ts","../../../../libs/brain/table/src/lib/brn-column-def.component.ts","../../../../libs/brain/table/src/lib/brn-paginator.directive.ts","../../../../libs/brain/table/src/lib/brn-table.component.ts","../../../../libs/brain/table/src/lib/brn-column-manager.ts","../../../../libs/brain/table/src/index.ts","../../../../libs/brain/table/src/spartan-ng-brain-table.ts"],"sourcesContent":["import { CdkCellDef } from '@angular/cdk/table';\nimport { Directive, TemplateRef, inject } from '@angular/core';\n\n@Directive({\n\tselector: '[brnCellDef]',\n\texportAs: 'brnCellDef',\n})\nexport class BrnCellDefDirective extends CdkCellDef {\n\tpublic override template: TemplateRef<unknown>;\n\n\tconstructor() {\n\t\tconst template = inject<TemplateRef<unknown>>(TemplateRef);\n\n\t\tsuper(template);\n\t\tthis.template = template;\n\t}\n}\n","import { CdkFooterCellDef } from '@angular/cdk/table';\nimport { Directive, TemplateRef, inject } from '@angular/core';\n\n@Directive({\n\tselector: '[brnFooterDef]',\n\texportAs: 'brnFooterDef',\n})\nexport class BrnFooterDefDirective extends CdkFooterCellDef {\n\tpublic override template: TemplateRef<unknown>;\n\n\tconstructor() {\n\t\tconst template = inject<TemplateRef<unknown>>(TemplateRef);\n\n\t\tsuper(template);\n\t\tthis.template = template;\n\t}\n}\n","import { CdkHeaderCellDef } from '@angular/cdk/table';\nimport { Directive, TemplateRef, inject } from '@angular/core';\n\n@Directive({\n\tselector: '[brnHeaderDef]',\n\texportAs: 'brnHeaderDef',\n})\nexport class BrnHeaderDefDirective extends CdkHeaderCellDef {\n\tpublic override template: TemplateRef<unknown>;\n\n\tconstructor() {\n\t\tconst template = inject<TemplateRef<unknown>>(TemplateRef);\n\n\t\tsuper(template);\n\t\tthis.template = template;\n\t}\n}\n","import {\n\ttype CdkCellDef,\n\tCdkColumnDef,\n\ttype CdkFooterCellDef,\n\ttype CdkHeaderCellDef,\n\tCdkTableModule,\n} from '@angular/cdk/table';\nimport {\n\ttype AfterContentChecked,\n\tChangeDetectionStrategy,\n\tComponent,\n\tContentChild,\n\tInput,\n\tViewChild,\n\tViewEncapsulation,\n\tinput,\n} from '@angular/core';\nimport { BrnCellDefDirective } from './brn-cell-def.directive';\nimport { BrnFooterDefDirective } from './brn-footer-def.directive';\nimport { BrnHeaderDefDirective } from './brn-header-def.directive';\n\n@Component({\n\tselector: 'brn-column-def',\n\timports: [CdkTableModule],\n\ttemplate: `\n\t\t<ng-container [cdkColumnDef]=\"name\">\n\t\t\t<ng-content select=\"[brnHeaderDef]\" />\n\t\t\t<ng-content select=\"[brnCellDef]\" />\n\t\t\t<ng-content select=\"[brnFooterDef]\" />\n\t\t</ng-container>\n\t`,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n})\nexport class BrnColumnDefComponent implements AfterContentChecked {\n\tpublic get columnDef() {\n\t\treturn this._columnDef;\n\t}\n\n\tpublic get cell() {\n\t\treturn this._columnDef.cell;\n\t}\n\n\tprivate _name = '';\n\t@Input()\n\tpublic get name(): string {\n\t\treturn this._name;\n\t}\n\n\tpublic set name(value: string) {\n\t\tthis._name = value;\n\t\tif (!this._columnDef) return;\n\t\tthis._columnDef.name = value;\n\t}\n\n\tpublic readonly class = input('');\n\n\t@ViewChild(CdkColumnDef, { static: true })\n\tprivate readonly _columnDef!: CdkColumnDef;\n\n\t@ContentChild(BrnCellDefDirective, { static: true })\n\tprivate readonly _cellDef?: CdkCellDef;\n\t@ContentChild(BrnFooterDefDirective, { static: true })\n\tprivate readonly _footerCellDef?: CdkFooterCellDef;\n\t@ContentChild(BrnHeaderDefDirective, { static: true })\n\tprivate readonly _headerCellDef?: CdkHeaderCellDef;\n\n\tpublic ngAfterContentChecked(): void {\n\t\tthis._columnDef.name = this.name;\n\t\tif (this._cellDef) {\n\t\t\tthis._columnDef.cell = this._cellDef;\n\t\t}\n\t\tif (this._headerCellDef) {\n\t\t\tthis._columnDef.headerCell = this._headerCellDef;\n\t\t}\n\t\tif (this._footerCellDef) {\n\t\t\tthis._columnDef.footerCell = this._footerCellDef;\n\t\t}\n\t}\n}\n","import {\n\tDirective,\n\tInput,\n\ttype OnInit,\n\ttype Signal,\n\tTemplateRef,\n\tViewContainerRef,\n\tcomputed,\n\teffect,\n\tinject,\n\tnumberAttribute,\n\tsignal,\n\tuntracked,\n} from '@angular/core';\n\nexport type PaginatorState = {\n\tcurrentPage: number;\n\tstartIndex: number;\n\tendIndex: number;\n\tpageSize: number;\n\ttotalPages: number;\n\ttotalElements: number | null | undefined;\n};\n\nexport type PaginatorContext = {\n\t$implicit: {\n\t\tstate: Signal<PaginatorState>;\n\t\tincrementable: Signal<boolean>;\n\t\tdecrementable: Signal<boolean>;\n\t\tincrement: () => void;\n\t\tdecrement: () => void;\n\t\tgoToFirstPage: () => void;\n\t\tgoToLastPage: () => void;\n\t};\n};\n\n@Directive({\n\tselector: '[brnPaginator]',\n\texportAs: 'brnPaginator',\n})\nexport class BrnPaginatorDirective implements OnInit {\n\tstatic ngTemplateContextGuard(_directive: BrnPaginatorDirective, _context: unknown): _context is PaginatorContext {\n\t\treturn true;\n\t}\n\n\tprivate readonly _vcr = inject(ViewContainerRef);\n\tprivate readonly _template = inject(TemplateRef<unknown>);\n\n\tprivate readonly _state = signal<PaginatorState>({\n\t\tcurrentPage: 0,\n\t\tstartIndex: 0,\n\t\tendIndex: 0,\n\t\tpageSize: 10,\n\t\ttotalPages: 0,\n\t\ttotalElements: null,\n\t});\n\tprivate readonly _decrementable = computed(() => 0 < this._state().startIndex);\n\tprivate readonly _incrementable = computed(() => this._state().endIndex < (this._state().totalElements ?? 0) - 1);\n\n\t@Input({ alias: 'brnPaginatorTotalElements' })\n\tpublic set totalElements(value: number | null | undefined) {\n\t\tthis.calculateNewState({ newTotalElements: value, newPage: 0 });\n\t}\n\n\t@Input({ alias: 'brnPaginatorCurrentPage', transform: numberAttribute })\n\tpublic set currentPage(value: number) {\n\t\tthis.calculateNewState({ newPage: value });\n\t}\n\n\t@Input({ alias: 'brnPaginatorPageSize', transform: numberAttribute })\n\tpublic set pageSize(value: number) {\n\t\tthis.calculateNewState({ newPageSize: value, newPage: 0 });\n\t}\n\n\t@Input({ alias: 'brnPaginatorOnStateChange' })\n\tpublic onStateChange?: (state: PaginatorState) => void;\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tconst state = this._state();\n\t\t\tuntracked(() => {\n\t\t\t\tPromise.resolve().then(() => {\n\t\t\t\t\tif (this.onStateChange) {\n\t\t\t\t\t\tthis.onStateChange(state);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n\n\tpublic ngOnInit() {\n\t\tthis._vcr.createEmbeddedView<PaginatorContext>(this._template, {\n\t\t\t$implicit: {\n\t\t\t\tstate: this._state,\n\t\t\t\tincrement: () => this.incrementPage(),\n\t\t\t\tdecrement: () => this.decrementPage(),\n\t\t\t\tincrementable: this._incrementable,\n\t\t\t\tdecrementable: this._decrementable,\n\t\t\t\tgoToFirstPage: () => this.reset(),\n\t\t\t\tgoToLastPage: () => this.goToLastPage(),\n\t\t\t},\n\t\t});\n\t}\n\n\tpublic decrementPage(): void {\n\t\tconst { currentPage } = this._state();\n\t\tif (0 < currentPage) {\n\t\t\tthis.calculateNewState({ newPage: currentPage - 1 });\n\t\t}\n\t}\n\n\tpublic goToLastPage(): void {\n\t\tthis.currentPage = this._state().totalPages;\n\t}\n\n\tpublic incrementPage(): void {\n\t\tconst { currentPage, totalPages } = this._state();\n\t\tif (totalPages > currentPage) {\n\t\t\tthis.calculateNewState({ newPage: currentPage + 1 });\n\t\t}\n\t}\n\n\tpublic reset(): void {\n\t\tthis.currentPage = 0;\n\t}\n\n\tprivate calculateNewState({\n\t\tnewPage,\n\t\tnewPageSize,\n\t\tnewTotalElements,\n\t}: Partial<{\n\t\tnewPage: number;\n\t\tnewPageSize: number;\n\t\tnewTotalElements: number | null | undefined;\n\t}>) {\n\t\tconst previousState = this._state();\n\n\t\tlet currentPage = newPage ?? previousState.currentPage;\n\t\tconst pageSize = newPageSize ?? previousState.pageSize;\n\t\tconst totalElements = newTotalElements ?? previousState.totalElements ?? 0;\n\n\t\tconst newTotalPages = totalElements ? Math.floor(totalElements / pageSize) : 0;\n\n\t\tif (newTotalPages < currentPage - 1) {\n\t\t\tcurrentPage = newTotalPages - 1;\n\t\t}\n\n\t\tconst newStartIndex = totalElements === 0 ? 0 : Math.min(totalElements - 1, currentPage * pageSize);\n\t\tconst newEndIndex = Math.min((currentPage + 1) * pageSize - 1, totalElements - 1);\n\n\t\tconst newState = {\n\t\t\tcurrentPage: currentPage,\n\t\t\tstartIndex: newStartIndex,\n\t\t\tendIndex: newEndIndex,\n\t\t\tpageSize: pageSize,\n\t\t\ttotalPages: newTotalPages,\n\t\t\ttotalElements: totalElements,\n\t\t};\n\n\t\tthis._state.set(newState);\n\t}\n}\n","import { CdkRowDef, CdkTable, type CdkTableDataSourceInput, CdkTableModule } from '@angular/cdk/table';\nimport {\n\ttype AfterContentInit,\n\tChangeDetectionStrategy,\n\tComponent,\n\tContentChildren,\n\tEventEmitter,\n\tInput,\n\tOutput,\n\ttype QueryList,\n\ttype TrackByFunction,\n\tViewChild,\n\tViewEncapsulation,\n\tbooleanAttribute,\n} from '@angular/core';\nimport { type TableClassesSettable, provideTableClassesSettableExisting } from '@spartan-ng/brain/core';\nimport { BrnColumnDefComponent } from './brn-column-def.component';\n\nexport type BrnTableDataSourceInput<T> = CdkTableDataSourceInput<T>;\n\n@Component({\n\tselector: 'brn-table',\n\timports: [CdkTableModule],\n\tproviders: [provideTableClassesSettableExisting(<T>() => BrnTableComponent<T>)],\n\ttemplate: `\n\t\t<cdk-table\n\t\t\t#cdkTable\n\t\t\t[class]=\"tableClasses\"\n\t\t\t[dataSource]=\"dataSource\"\n\t\t\t[fixedLayout]=\"fixedLayout\"\n\t\t\t[multiTemplateDataRows]=\"multiTemplateDataRows\"\n\t\t\t(contentChanged)=\"contentChanged.emit()\"\n\t\t>\n\t\t\t<ng-content />\n\n\t\t\t<cdk-header-row [class]=\"headerRowClasses\" *cdkHeaderRowDef=\"displayedColumns; sticky: stickyHeader\" />\n\t\t\t@if (!customTemplateDataRows) {\n\t\t\t\t<cdk-row\n\t\t\t\t\t[tabindex]=\"!!onRowClick ? 0 : -1\"\n\t\t\t\t\t[attr.role]=\"!!onRowClick ? 'button' : 'row'\"\n\t\t\t\t\t[class.row-interactive]=\"!!onRowClick\"\n\t\t\t\t\t(keydown.enter)=\"!!onRowClick && onRowClick(row)\"\n\t\t\t\t\t(click)=\"!!onRowClick && onRowClick(row)\"\n\t\t\t\t\t[class]=\"bodyRowClasses\"\n\t\t\t\t\t*cdkRowDef=\"let row; columns: displayedColumns\"\n\t\t\t\t/>\n\t\t\t}\n\n\t\t\t<ng-template cdkNoDataRow>\n\t\t\t\t<ng-content select=\"[brnNoDataRow]\" />\n\t\t\t</ng-template>\n\t\t</cdk-table>\n\t`,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n})\nexport class BrnTableComponent<T> implements TableClassesSettable, AfterContentInit {\n\t@ViewChild('cdkTable', { read: CdkTable, static: true })\n\tprivate readonly _cdkTable?: CdkTable<T>;\n\t// Cdk Table Inputs / Outputs\n\t@Input()\n\tpublic dataSource: BrnTableDataSourceInput<T> = [];\n\t@Input({ transform: booleanAttribute })\n\tpublic fixedLayout = false;\n\t@Input({ transform: booleanAttribute })\n\tpublic multiTemplateDataRows = false;\n\t@Input()\n\tpublic displayedColumns: string[] = [];\n\n\tprivate _trackBy?: TrackByFunction<T>;\n\tpublic get trackBy(): TrackByFunction<T> | undefined {\n\t\treturn this._trackBy;\n\t}\n\n\t@Input()\n\tpublic set trackBy(value: TrackByFunction<T>) {\n\t\tthis._trackBy = value;\n\t\tif (this._cdkTable) {\n\t\t\tthis._cdkTable.trackBy = this._trackBy;\n\t\t}\n\t}\n\n\t@Output()\n\tpublic readonly contentChanged: EventEmitter<void> = new EventEmitter<void>();\n\n\t// Brn Inputs / Outputs\n\t@Input({ transform: booleanAttribute })\n\tpublic customTemplateDataRows = false;\n\t@Input()\n\tpublic onRowClick: ((element: T) => void) | undefined;\n\n\t@Input({ transform: booleanAttribute })\n\tpublic stickyHeader = false;\n\t@Input()\n\tpublic tableClasses = '';\n\t@Input()\n\tpublic headerRowClasses = '';\n\t@Input()\n\tpublic bodyRowClasses = '';\n\n\t@ContentChildren(BrnColumnDefComponent) public columnDefComponents!: QueryList<BrnColumnDefComponent>;\n\t@ContentChildren(CdkRowDef) public rowDefs!: QueryList<CdkRowDef<T>>;\n\n\t// after the <ng-content> has been initialized, the column definitions are available.\n\t// All that's left is to add them to the table ourselves:\n\tpublic ngAfterContentInit(): void {\n\t\tthis.columnDefComponents.forEach((component) => {\n\t\t\tif (!this._cdkTable) return;\n\t\t\tif (component.cell) {\n\t\t\t\tthis._cdkTable.addColumnDef(component.columnDef);\n\t\t\t}\n\t\t});\n\t\tthis.rowDefs.forEach((rowDef) => {\n\t\t\tif (!this._cdkTable) return;\n\t\t\tthis._cdkTable.addRowDef(rowDef);\n\t\t});\n\t}\n\n\tpublic setTableClasses({\n\t\ttable,\n\t\theaderRow,\n\t\tbodyRow,\n\t}: Partial<{ table: string; headerRow: string; bodyRow: string }>): void {\n\t\tif (table) {\n\t\t\tthis.tableClasses = table;\n\t\t}\n\t\tif (headerRow) {\n\t\t\tthis.headerRowClasses = headerRow;\n\t\t}\n\t\tif (bodyRow) {\n\t\t\tthis.bodyRowClasses = bodyRow;\n\t\t}\n\t}\n}\n","import { type Signal, computed, signal } from '@angular/core';\n\ntype BrnColumnVisibility = Record<string, boolean> | Record<string, { visible: boolean }>;\n\n// prettier-ignore\ntype AllColumnsPropertyType<T> = T extends Record<string, boolean>\n\t? (keyof T)[]\n\t: T extends Record<string, infer R>\n\t\t? (R extends { visible: boolean } ? { name: keyof T } & R : never)[]\n\t\t: never;\n\nexport class BrnColumnManager<T extends BrnColumnVisibility> {\n\tprivate readonly _initialColumnVisibility: T;\n\tprivate readonly _columnVisibility;\n\n\tpublic readonly allColumns: AllColumnsPropertyType<T>;\n\tpublic readonly columnVisibility;\n\tpublic readonly displayedColumns: Signal<(keyof T)[]> = computed(() => {\n\t\treturn Object.entries(this._columnVisibility())\n\t\t\t.filter(([, value]) => (typeof value === 'boolean' ? value : value.visible))\n\t\t\t.map(([key]) => key);\n\t});\n\n\tconstructor(initialColumnVisibility: T) {\n\t\tthis._initialColumnVisibility = initialColumnVisibility;\n\t\tthis._columnVisibility = signal(this._initialColumnVisibility);\n\t\tthis._columnVisibility.set(this._initialColumnVisibility);\n\t\tthis.columnVisibility = this._columnVisibility.asReadonly();\n\t\tthis.allColumns = this.createAllColumns(this._initialColumnVisibility);\n\t}\n\n\tpublic readonly isColumnVisible = (columnName: string) => {\n\t\tconst visibilityMap = this.columnVisibility();\n\t\tconst columnEntry = visibilityMap[columnName];\n\t\treturn typeof columnEntry === 'boolean' ? columnEntry : columnEntry.visible;\n\t};\n\tpublic readonly isColumnDisabled = (columnName: string) =>\n\t\tthis.isColumnVisible(columnName) && this.displayedColumns().length === 1;\n\n\tpublic toggleVisibility(columnName: keyof T) {\n\t\tconst visibilityMap = this._columnVisibility();\n\t\tconst columnEntry = visibilityMap[columnName];\n\t\tconst newVisibilityState = typeof columnEntry === 'boolean' ? !columnEntry : { visible: !columnEntry.visible };\n\t\tthis._columnVisibility.set({ ...visibilityMap, [columnName]: newVisibilityState });\n\t}\n\tpublic setVisible(columnName: keyof T) {\n\t\tconst visibilityMap = this._columnVisibility();\n\t\tconst columnEntry = visibilityMap[columnName];\n\t\tconst newVisibilityState = typeof columnEntry === 'boolean' ? true : { visible: true };\n\t\tthis._columnVisibility.set({ ...visibilityMap, [columnName]: newVisibilityState });\n\t}\n\tpublic setInvisible(columnName: keyof T) {\n\t\tconst visibilityMap = this._columnVisibility();\n\t\tconst columnEntry = visibilityMap[columnName];\n\t\tconst newVisibilityState = typeof columnEntry === 'boolean' ? false : { visible: false };\n\t\tthis._columnVisibility.set({ ...visibilityMap, [columnName]: newVisibilityState });\n\t}\n\n\tprivate createAllColumns(initialColumnVisibility: T): AllColumnsPropertyType<T> {\n\t\tconst keys = Object.keys(initialColumnVisibility) as (keyof T)[];\n\t\tif (this.isBooleanConfig(initialColumnVisibility)) {\n\t\t\treturn keys as unknown as AllColumnsPropertyType<T>;\n\t\t}\n\t\treturn keys.map((key) => {\n\t\t\tconst values = initialColumnVisibility[key] as { visible: boolean };\n\t\t\treturn {\n\t\t\t\tname: key,\n\t\t\t\t...values,\n\t\t\t};\n\t\t}) as AllColumnsPropertyType<T>;\n\t}\n\n\tprivate isBooleanConfig(config: any): config is Record<string, boolean> {\n\t\treturn typeof Object.values(config)[0] === 'boolean';\n\t}\n}\n\nexport const useBrnColumnManager = <T extends BrnColumnVisibility>(initialColumnVisibility: T) =>\n\tnew BrnColumnManager(initialColumnVisibility);\n","import { NgModule } from '@angular/core';\nimport { BrnCellDefDirective } from './lib/brn-cell-def.directive';\nimport { BrnColumnDefComponent } from './lib/brn-column-def.component';\nimport { BrnFooterDefDirective } from './lib/brn-footer-def.directive';\nimport { BrnHeaderDefDirective } from './lib/brn-header-def.directive';\nimport { BrnPaginatorDirective } from './lib/brn-paginator.directive';\nimport { BrnTableComponent } from './lib/brn-table.component';\n\nexport { BrnCellDefDirective } from './lib/brn-cell-def.directive';\nexport { BrnColumnDefComponent } from './lib/brn-column-def.component';\nexport { BrnColumnManager, useBrnColumnManager } from './lib/brn-column-manager';\nexport { BrnFooterDefDirective } from './lib/brn-footer-def.directive';\nexport { BrnHeaderDefDirective } from './lib/brn-header-def.directive';\nexport { BrnPaginatorDirective, PaginatorContext, PaginatorState } from './lib/brn-paginator.directive';\nexport { BrnTableComponent } from './lib/brn-table.component';\n\nexport const BrnTableImports = [\n\tBrnCellDefDirective,\n\tBrnColumnDefComponent,\n\tBrnFooterDefDirective,\n\tBrnHeaderDefDirective,\n\tBrnTableComponent,\n\tBrnPaginatorDirective,\n] as const;\n\n@NgModule({\n\timports: [...BrnTableImports],\n\texports: [...BrnTableImports],\n})\nexport class BrnTableModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/table/README.md
DELETED
package/table/index.d.ts
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { BrnCellDefDirective } from './lib/brn-cell-def.directive';
|
|
2
|
-
import { BrnColumnDefComponent } from './lib/brn-column-def.component';
|
|
3
|
-
import { BrnFooterDefDirective } from './lib/brn-footer-def.directive';
|
|
4
|
-
import { BrnHeaderDefDirective } from './lib/brn-header-def.directive';
|
|
5
|
-
import { BrnPaginatorDirective } from './lib/brn-paginator.directive';
|
|
6
|
-
import { BrnTableComponent } from './lib/brn-table.component';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "./lib/brn-cell-def.directive";
|
|
9
|
-
import * as i2 from "./lib/brn-column-def.component";
|
|
10
|
-
import * as i3 from "./lib/brn-footer-def.directive";
|
|
11
|
-
import * as i4 from "./lib/brn-header-def.directive";
|
|
12
|
-
import * as i5 from "./lib/brn-table.component";
|
|
13
|
-
import * as i6 from "./lib/brn-paginator.directive";
|
|
14
|
-
export { BrnCellDefDirective } from './lib/brn-cell-def.directive';
|
|
15
|
-
export { BrnColumnDefComponent } from './lib/brn-column-def.component';
|
|
16
|
-
export { BrnColumnManager, useBrnColumnManager } from './lib/brn-column-manager';
|
|
17
|
-
export { BrnFooterDefDirective } from './lib/brn-footer-def.directive';
|
|
18
|
-
export { BrnHeaderDefDirective } from './lib/brn-header-def.directive';
|
|
19
|
-
export { BrnPaginatorDirective, PaginatorContext, PaginatorState } from './lib/brn-paginator.directive';
|
|
20
|
-
export { BrnTableComponent } from './lib/brn-table.component';
|
|
21
|
-
export declare const BrnTableImports: readonly [typeof BrnCellDefDirective, typeof BrnColumnDefComponent, typeof BrnFooterDefDirective, typeof BrnHeaderDefDirective, typeof BrnTableComponent, typeof BrnPaginatorDirective];
|
|
22
|
-
export declare class BrnTableModule {
|
|
23
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<BrnTableModule, never>;
|
|
24
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<BrnTableModule, never, [typeof i1.BrnCellDefDirective, typeof i2.BrnColumnDefComponent, typeof i3.BrnFooterDefDirective, typeof i4.BrnHeaderDefDirective, typeof i5.BrnTableComponent, typeof i6.BrnPaginatorDirective], [typeof i1.BrnCellDefDirective, typeof i2.BrnColumnDefComponent, typeof i3.BrnFooterDefDirective, typeof i4.BrnHeaderDefDirective, typeof i5.BrnTableComponent, typeof i6.BrnPaginatorDirective]>;
|
|
25
|
-
static ɵinj: i0.ɵɵInjectorDeclaration<BrnTableModule>;
|
|
26
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { CdkCellDef } from '@angular/cdk/table';
|
|
2
|
-
import { TemplateRef } from '@angular/core';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export declare class BrnCellDefDirective extends CdkCellDef {
|
|
5
|
-
template: TemplateRef<unknown>;
|
|
6
|
-
constructor();
|
|
7
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<BrnCellDefDirective, never>;
|
|
8
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<BrnCellDefDirective, "[brnCellDef]", ["brnCellDef"], {}, {}, never, never, true, never>;
|
|
9
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { type CdkCellDef, CdkColumnDef } from '@angular/cdk/table';
|
|
2
|
-
import { type AfterContentChecked } from '@angular/core';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export declare class BrnColumnDefComponent implements AfterContentChecked {
|
|
5
|
-
get columnDef(): CdkColumnDef;
|
|
6
|
-
get cell(): CdkCellDef;
|
|
7
|
-
private _name;
|
|
8
|
-
get name(): string;
|
|
9
|
-
set name(value: string);
|
|
10
|
-
readonly class: import("@angular/core").InputSignal<string>;
|
|
11
|
-
private readonly _columnDef;
|
|
12
|
-
private readonly _cellDef?;
|
|
13
|
-
private readonly _footerCellDef?;
|
|
14
|
-
private readonly _headerCellDef?;
|
|
15
|
-
ngAfterContentChecked(): void;
|
|
16
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<BrnColumnDefComponent, never>;
|
|
17
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<BrnColumnDefComponent, "brn-column-def", never, { "name": { "alias": "name"; "required": false; }; "class": { "alias": "class"; "required": false; "isSignal": true; }; }, {}, ["_cellDef", "_footerCellDef", "_headerCellDef"], ["[brnHeaderDef]", "[brnCellDef]", "[brnFooterDef]"], true, never>;
|
|
18
|
-
}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { type Signal } from '@angular/core';
|
|
2
|
-
type BrnColumnVisibility = Record<string, boolean> | Record<string, {
|
|
3
|
-
visible: boolean;
|
|
4
|
-
}>;
|
|
5
|
-
type AllColumnsPropertyType<T> = T extends Record<string, boolean> ? (keyof T)[] : T extends Record<string, infer R> ? (R extends {
|
|
6
|
-
visible: boolean;
|
|
7
|
-
} ? {
|
|
8
|
-
name: keyof T;
|
|
9
|
-
} & R : never)[] : never;
|
|
10
|
-
export declare class BrnColumnManager<T extends BrnColumnVisibility> {
|
|
11
|
-
private readonly _initialColumnVisibility;
|
|
12
|
-
private readonly _columnVisibility;
|
|
13
|
-
readonly allColumns: AllColumnsPropertyType<T>;
|
|
14
|
-
readonly columnVisibility: Signal<T>;
|
|
15
|
-
readonly displayedColumns: Signal<(keyof T)[]>;
|
|
16
|
-
constructor(initialColumnVisibility: T);
|
|
17
|
-
readonly isColumnVisible: (columnName: string) => boolean;
|
|
18
|
-
readonly isColumnDisabled: (columnName: string) => boolean;
|
|
19
|
-
toggleVisibility(columnName: keyof T): void;
|
|
20
|
-
setVisible(columnName: keyof T): void;
|
|
21
|
-
setInvisible(columnName: keyof T): void;
|
|
22
|
-
private createAllColumns;
|
|
23
|
-
private isBooleanConfig;
|
|
24
|
-
}
|
|
25
|
-
export declare const useBrnColumnManager: <T extends BrnColumnVisibility>(initialColumnVisibility: T) => BrnColumnManager<T>;
|
|
26
|
-
export {};
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { CdkFooterCellDef } from '@angular/cdk/table';
|
|
2
|
-
import { TemplateRef } from '@angular/core';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export declare class BrnFooterDefDirective extends CdkFooterCellDef {
|
|
5
|
-
template: TemplateRef<unknown>;
|
|
6
|
-
constructor();
|
|
7
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<BrnFooterDefDirective, never>;
|
|
8
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<BrnFooterDefDirective, "[brnFooterDef]", ["brnFooterDef"], {}, {}, never, never, true, never>;
|
|
9
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { CdkHeaderCellDef } from '@angular/cdk/table';
|
|
2
|
-
import { TemplateRef } from '@angular/core';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export declare class BrnHeaderDefDirective extends CdkHeaderCellDef {
|
|
5
|
-
template: TemplateRef<unknown>;
|
|
6
|
-
constructor();
|
|
7
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<BrnHeaderDefDirective, never>;
|
|
8
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<BrnHeaderDefDirective, "[brnHeaderDef]", ["brnHeaderDef"], {}, {}, never, never, true, never>;
|
|
9
|
-
}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { type OnInit, type Signal } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export type PaginatorState = {
|
|
4
|
-
currentPage: number;
|
|
5
|
-
startIndex: number;
|
|
6
|
-
endIndex: number;
|
|
7
|
-
pageSize: number;
|
|
8
|
-
totalPages: number;
|
|
9
|
-
totalElements: number | null | undefined;
|
|
10
|
-
};
|
|
11
|
-
export type PaginatorContext = {
|
|
12
|
-
$implicit: {
|
|
13
|
-
state: Signal<PaginatorState>;
|
|
14
|
-
incrementable: Signal<boolean>;
|
|
15
|
-
decrementable: Signal<boolean>;
|
|
16
|
-
increment: () => void;
|
|
17
|
-
decrement: () => void;
|
|
18
|
-
goToFirstPage: () => void;
|
|
19
|
-
goToLastPage: () => void;
|
|
20
|
-
};
|
|
21
|
-
};
|
|
22
|
-
export declare class BrnPaginatorDirective implements OnInit {
|
|
23
|
-
static ngTemplateContextGuard(_directive: BrnPaginatorDirective, _context: unknown): _context is PaginatorContext;
|
|
24
|
-
private readonly _vcr;
|
|
25
|
-
private readonly _template;
|
|
26
|
-
private readonly _state;
|
|
27
|
-
private readonly _decrementable;
|
|
28
|
-
private readonly _incrementable;
|
|
29
|
-
set totalElements(value: number | null | undefined);
|
|
30
|
-
set currentPage(value: number);
|
|
31
|
-
set pageSize(value: number);
|
|
32
|
-
onStateChange?: (state: PaginatorState) => void;
|
|
33
|
-
constructor();
|
|
34
|
-
ngOnInit(): void;
|
|
35
|
-
decrementPage(): void;
|
|
36
|
-
goToLastPage(): void;
|
|
37
|
-
incrementPage(): void;
|
|
38
|
-
reset(): void;
|
|
39
|
-
private calculateNewState;
|
|
40
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<BrnPaginatorDirective, never>;
|
|
41
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<BrnPaginatorDirective, "[brnPaginator]", ["brnPaginator"], { "totalElements": { "alias": "brnPaginatorTotalElements"; "required": false; }; "currentPage": { "alias": "brnPaginatorCurrentPage"; "required": false; }; "pageSize": { "alias": "brnPaginatorPageSize"; "required": false; }; "onStateChange": { "alias": "brnPaginatorOnStateChange"; "required": false; }; }, {}, never, never, true, never>;
|
|
42
|
-
static ngAcceptInputType_currentPage: unknown;
|
|
43
|
-
static ngAcceptInputType_pageSize: unknown;
|
|
44
|
-
}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { CdkRowDef, type CdkTableDataSourceInput } from '@angular/cdk/table';
|
|
2
|
-
import { type AfterContentInit, EventEmitter, type QueryList, type TrackByFunction } from '@angular/core';
|
|
3
|
-
import { type TableClassesSettable } from '@spartan-ng/brain/core';
|
|
4
|
-
import { BrnColumnDefComponent } from './brn-column-def.component';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
export type BrnTableDataSourceInput<T> = CdkTableDataSourceInput<T>;
|
|
7
|
-
export declare class BrnTableComponent<T> implements TableClassesSettable, AfterContentInit {
|
|
8
|
-
private readonly _cdkTable?;
|
|
9
|
-
dataSource: BrnTableDataSourceInput<T>;
|
|
10
|
-
fixedLayout: boolean;
|
|
11
|
-
multiTemplateDataRows: boolean;
|
|
12
|
-
displayedColumns: string[];
|
|
13
|
-
private _trackBy?;
|
|
14
|
-
get trackBy(): TrackByFunction<T> | undefined;
|
|
15
|
-
set trackBy(value: TrackByFunction<T>);
|
|
16
|
-
readonly contentChanged: EventEmitter<void>;
|
|
17
|
-
customTemplateDataRows: boolean;
|
|
18
|
-
onRowClick: ((element: T) => void) | undefined;
|
|
19
|
-
stickyHeader: boolean;
|
|
20
|
-
tableClasses: string;
|
|
21
|
-
headerRowClasses: string;
|
|
22
|
-
bodyRowClasses: string;
|
|
23
|
-
columnDefComponents: QueryList<BrnColumnDefComponent>;
|
|
24
|
-
rowDefs: QueryList<CdkRowDef<T>>;
|
|
25
|
-
ngAfterContentInit(): void;
|
|
26
|
-
setTableClasses({ table, headerRow, bodyRow, }: Partial<{
|
|
27
|
-
table: string;
|
|
28
|
-
headerRow: string;
|
|
29
|
-
bodyRow: string;
|
|
30
|
-
}>): void;
|
|
31
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<BrnTableComponent<any>, never>;
|
|
32
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<BrnTableComponent<any>, "brn-table", never, { "dataSource": { "alias": "dataSource"; "required": false; }; "fixedLayout": { "alias": "fixedLayout"; "required": false; }; "multiTemplateDataRows": { "alias": "multiTemplateDataRows"; "required": false; }; "displayedColumns": { "alias": "displayedColumns"; "required": false; }; "trackBy": { "alias": "trackBy"; "required": false; }; "customTemplateDataRows": { "alias": "customTemplateDataRows"; "required": false; }; "onRowClick": { "alias": "onRowClick"; "required": false; }; "stickyHeader": { "alias": "stickyHeader"; "required": false; }; "tableClasses": { "alias": "tableClasses"; "required": false; }; "headerRowClasses": { "alias": "headerRowClasses"; "required": false; }; "bodyRowClasses": { "alias": "bodyRowClasses"; "required": false; }; }, { "contentChanged": "contentChanged"; }, ["columnDefComponents", "rowDefs"], ["*", "[brnNoDataRow]"], true, never>;
|
|
33
|
-
static ngAcceptInputType_fixedLayout: unknown;
|
|
34
|
-
static ngAcceptInputType_multiTemplateDataRows: unknown;
|
|
35
|
-
static ngAcceptInputType_customTemplateDataRows: unknown;
|
|
36
|
-
static ngAcceptInputType_stickyHeader: unknown;
|
|
37
|
-
}
|