@bootkit/ng0 0.0.0-alpha.8 → 0.0.0-alpha.9
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/components/nav/index.d.ts +23 -19
- package/components/pagination/index.d.ts +38 -3
- package/components/table/index.d.ts +35 -14
- package/data/index.d.ts +17 -5
- package/fesm2022/bootkit-ng0-common.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-accordion.mjs +13 -13
- package/fesm2022/bootkit-ng0-components-accordion.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-backdrop.mjs +3 -3
- package/fesm2022/bootkit-ng0-components-backdrop.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-button.mjs +11 -11
- package/fesm2022/bootkit-ng0-components-button.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-card.mjs +11 -11
- package/fesm2022/bootkit-ng0-components-card.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-code.mjs +9 -9
- package/fesm2022/bootkit-ng0-components-code.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-collapse.mjs +14 -14
- package/fesm2022/bootkit-ng0-components-collapse.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-confirmation.mjs +13 -13
- package/fesm2022/bootkit-ng0-components-confirmation.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-form-field.mjs +13 -13
- package/fesm2022/bootkit-ng0-components-form-field.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-modal.mjs +12 -12
- package/fesm2022/bootkit-ng0-components-modal.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-nav.mjs +58 -59
- package/fesm2022/bootkit-ng0-components-nav.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-offcanvas.mjs +9 -9
- package/fesm2022/bootkit-ng0-components-offcanvas.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-overlay.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-pagination.mjs +61 -23
- package/fesm2022/bootkit-ng0-components-pagination.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-popover.mjs +10 -10
- package/fesm2022/bootkit-ng0-components-popover.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-sidenav.mjs +18 -18
- package/fesm2022/bootkit-ng0-components-sidenav.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-stepper.mjs +12 -12
- package/fesm2022/bootkit-ng0-components-stepper.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-table.mjs +87 -90
- package/fesm2022/bootkit-ng0-components-table.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-toast.mjs +6 -6
- package/fesm2022/bootkit-ng0-components-toast.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-tooltip.mjs +8 -8
- package/fesm2022/bootkit-ng0-components-tooltip.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-vertical-menu.mjs +24 -24
- package/fesm2022/bootkit-ng0-components-vertical-menu.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-data.mjs +25 -6
- package/fesm2022/bootkit-ng0-data.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-file.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-form.mjs +28 -24
- package/fesm2022/bootkit-ng0-form.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-http.mjs +38 -3
- package/fesm2022/bootkit-ng0-http.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-localization-locales.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-localization.mjs +41 -36
- package/fesm2022/bootkit-ng0-localization.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-platform-browser.mjs +7 -7
- package/fesm2022/bootkit-ng0-platform-browser.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-script.mjs +3 -3
- package/fesm2022/bootkit-ng0-script.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-security.mjs +15 -15
- package/fesm2022/bootkit-ng0-security.mjs.map +1 -1
- package/form/index.d.ts +4 -0
- package/http/index.d.ts +35 -0
- package/localization/index.d.ts +8 -3
- package/package.json +20 -20
|
@@ -61,8 +61,8 @@ class ToastComponent {
|
|
|
61
61
|
this._changeDetectorRef.markForCheck();
|
|
62
62
|
});
|
|
63
63
|
}
|
|
64
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
65
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.
|
|
64
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: ToastComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
65
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: ToastComponent, isStandalone: true, selector: "ng0-toast", host: { properties: { "@host": "this._show" } }, exportAs: ["ng0Toast"], ngImport: i0, template: "<div class=\"toast-header\" *ngIf=\"this._config.header\">\r\n @if(_hasHeaderTemplate) {\r\n <ng-container [ngTemplateOutlet]=\"$any(_config.header)\"></ng-container>\r\n }@else {\r\n <span *ngIf=\"_config.icon\" class=\"me-2\" [ngClass]=\"_config.icon\"></span>\r\n <strong class=\"me-auto\">{{this._config.header}}</strong>\r\n <small *ngIf=\"_config.hint\">{{_config.hint}}</small>\r\n <button *ngIf=\"_config?.closeButton == undefined || _config?.closeButton\"\r\n type=\"button\"\r\n class=\"btn-close\"\r\n aria-label=\"Close\"\r\n (click)=\"toastRef.close()\">\r\n </button>\r\n }\r\n</div>\r\n\r\n<div class=\"toast-body\" *ngIf=\"this._config.body\">\r\n @if(_hasBodyTemplate) {\r\n <ng-container [ngTemplateOutlet]=\"$any(_config.body)\"></ng-container>\r\n }@else {\r\n {{this._config.body}}\r\n }\r\n</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], animations: [
|
|
66
66
|
trigger('host', [
|
|
67
67
|
transition(':enter', [
|
|
68
68
|
style({ opacity: 0, transform: 'scale(.85)' }),
|
|
@@ -75,7 +75,7 @@ class ToastComponent {
|
|
|
75
75
|
]),
|
|
76
76
|
], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
77
77
|
}
|
|
78
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
78
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: ToastComponent, decorators: [{
|
|
79
79
|
type: Component,
|
|
80
80
|
args: [{ selector: 'ng0-toast', exportAs: 'ng0Toast', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
81
81
|
CommonModule,
|
|
@@ -173,10 +173,10 @@ class ToastService {
|
|
|
173
173
|
}, config?.duration ?? 3000);
|
|
174
174
|
return this._toastRef;
|
|
175
175
|
}
|
|
176
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
177
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
176
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: ToastService, deps: [{ token: i1$1.Overlay }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
177
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: ToastService, providedIn: 'root' });
|
|
178
178
|
}
|
|
179
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
179
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: ToastService, decorators: [{
|
|
180
180
|
type: Injectable,
|
|
181
181
|
args: [{
|
|
182
182
|
providedIn: 'root'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootkit-ng0-components-toast.mjs","sources":["../../../projects/ng0/components/toast/toast-ref.ts","../../../projects/ng0/components/toast/toast.component.ts","../../../projects/ng0/components/toast/toast.component.html","../../../projects/ng0/components/toast/toast.service.ts","../../../projects/ng0/components/toast/bootkit-ng0-components-toast.ts"],"sourcesContent":["import { OverlayRef } from \"@angular/cdk/overlay\";\r\nimport { Subject, timer } from \"rxjs\";\r\nimport { ToastConfig } from \"./types\";\r\n\r\nexport class ToastRef {\r\n private _isOpen = true;\r\n private _closedSubject = new Subject<any>();\r\n public closed = this._closedSubject.asObservable();\r\n\r\n constructor(public readonly config: ToastConfig, private overlayRef: OverlayRef) {\r\n }\r\n\r\n public get isOpen() {\r\n return this._isOpen;\r\n }\r\n\r\n public close() {\r\n if (this._isOpen) {\r\n this._closedSubject.next(0);\r\n this._isOpen = false;\r\n\r\n // Wait to ':leave' animation is done and then dispose the overlay\r\n timer(100).subscribe(x => {\r\n this.overlayRef.detach();\r\n this.overlayRef.dispose();\r\n });\r\n }\r\n }\r\n}\r\n","import { trigger, style, transition, animate, state } from '@angular/animations';\r\nimport { Component, OnInit, ChangeDetectionStrategy, DestroyRef, ChangeDetectorRef, HostBinding, Renderer2, ElementRef, TemplateRef } from '@angular/core';\r\nimport { ToastConfig } from './types';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ToastRef } from './toast-ref';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: 'ng0-toast',\r\n exportAs: 'ng0Toast',\r\n templateUrl: 'toast.component.html',\r\n standalone: true,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [\r\n CommonModule,\r\n ],\r\n animations: [\r\n trigger('host', [\r\n transition(':enter', [\r\n style({ opacity: 0, transform: 'scale(.85)' }),\r\n animate('.1s', style({ opacity: '1', transform: 'scale(1)' })),\r\n ]),\r\n state('false', style({ opacity: 0, transform: 'scale(.85)' })),\r\n transition('true => false', [\r\n animate('.1s'),\r\n ]),\r\n ]),\r\n ],\r\n})\r\nexport class ToastComponent implements OnInit {\r\n public toastRef!: ToastRef;\r\n protected _config!: ToastConfig;\r\n @HostBinding('@host') protected _show = true;\r\n protected _hasBodyTemplate!: boolean;\r\n protected _hasHeaderTemplate!: boolean;\r\n\r\n constructor(\r\n private _changeDetectorRef: ChangeDetectorRef,\r\n private _renderer: Renderer2,\r\n private _elementRef: ElementRef,\r\n private _destroyRef: DestroyRef) {\r\n \r\n }\r\n\r\n ngOnInit(): void {\r\n this._config = this.toastRef.config;\r\n this._hasHeaderTemplate = this._config.header instanceof TemplateRef;\r\n this._hasBodyTemplate = this._config.body instanceof TemplateRef;\r\n \r\n let style = this._config.style ?? 'success';\r\n ['toast', 'show', `text-bg-${style}`].forEach(x => this._renderer.addClass(this._elementRef.nativeElement, x));\r\n this.toastRef.closed.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(x => {\r\n this._show = false;\r\n this._changeDetectorRef.markForCheck();\r\n })\r\n }\r\n}\r\n","<div class=\"toast-header\" *ngIf=\"this._config.header\">\r\n @if(_hasHeaderTemplate) {\r\n <ng-container [ngTemplateOutlet]=\"$any(_config.header)\"></ng-container>\r\n }@else {\r\n <span *ngIf=\"_config.icon\" class=\"me-2\" [ngClass]=\"_config.icon\"></span>\r\n <strong class=\"me-auto\">{{this._config.header}}</strong>\r\n <small *ngIf=\"_config.hint\">{{_config.hint}}</small>\r\n <button *ngIf=\"_config?.closeButton == undefined || _config?.closeButton\"\r\n type=\"button\"\r\n class=\"btn-close\"\r\n aria-label=\"Close\"\r\n (click)=\"toastRef.close()\">\r\n </button>\r\n }\r\n</div>\r\n\r\n<div class=\"toast-body\" *ngIf=\"this._config.body\">\r\n @if(_hasBodyTemplate) {\r\n <ng-container [ngTemplateOutlet]=\"$any(_config.body)\"></ng-container>\r\n }@else {\r\n {{this._config.body}}\r\n }\r\n</div>","import { Overlay } from '@angular/cdk/overlay';\r\nimport { ComponentPortal } from '@angular/cdk/portal';\r\nimport { Injectable, Injector } from '@angular/core';\r\nimport { ToastComponent } from './toast.component';\r\nimport { ToastConfig } from './types';\r\nimport { ToastRef } from './toast-ref';\r\n\r\n\r\n/**\r\n * Service for displaying toast notifications in the application.\r\n *\r\n * The `ToastService` provides methods to open toast messages with customizable content,\r\n * header, style, position, and duration. It manages the lifecycle of toast notifications,\r\n * ensuring only one toast is visible at a time.\r\n *\r\n * @example\r\n * // Open a simple toast\r\n * toastService.open('Message body', 'Header', 'success');\r\n *\r\n * @example\r\n * // Open a toast with configuration\r\n * toastService.open({\r\n * body: 'Message body',\r\n * header: 'Header',\r\n * style: 'success',\r\n * verticalPosition: 'bottom',\r\n * horizontalPosition: 'end',\r\n * duration: 5000\r\n * });\r\n *\r\n * @remarks\r\n * - Only one toast can be displayed at a time; opening a new toast closes the previous one.\r\n * - The toast will automatically close after the specified duration (default: 3000ms).\r\n *\r\n * @publicApi\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ToastService {\r\n private _toastRef?: ToastRef;\r\n\r\n constructor(private _overlayService: Overlay, private _injector: Injector) { }\r\n\r\n open(body: string, header?: string, style?: string): ToastRef;\r\n open(config: ToastConfig): ToastRef;\r\n open(p: any): ToastRef {\r\n if (this._toastRef) {\r\n this._toastRef.close();\r\n }\r\n\r\n const config: ToastConfig =\r\n typeof p === 'object' ? p :\r\n { body: arguments[0], header: arguments[1], style: arguments[2] } as ToastConfig;\r\n\r\n var portal = new ComponentPortal(ToastComponent, null, this._injector);\r\n\r\n // Position\r\n var vertical = config.verticalPosition ?? 'top';\r\n var horizontal = config.horizontalPosition ?? 'center';\r\n var posStrategy = this._overlayService.position().global();\r\n const padding = '1rem';\r\n\r\n switch (vertical) {\r\n case 'top':\r\n posStrategy = posStrategy.top(padding)\r\n break;\r\n case 'bottom':\r\n posStrategy = posStrategy.bottom(padding)\r\n break;\r\n }\r\n\r\n switch (horizontal) {\r\n case 'center':\r\n posStrategy = posStrategy.centerHorizontally();\r\n break;\r\n case 'end':\r\n posStrategy = posStrategy.end(padding);\r\n break;\r\n case 'start':\r\n posStrategy = posStrategy.start(padding);\r\n break;\r\n }\r\n\r\n var overlayRef = this._overlayService.create({\r\n positionStrategy: posStrategy,\r\n });\r\n\r\n var componentRef = overlayRef.attach(portal);\r\n componentRef.instance.toastRef = this._toastRef = new ToastRef(config, overlayRef);\r\n\r\n setTimeout(() => {\r\n this._toastRef?.close();\r\n }, config?.duration ?? 3000);\r\n\r\n return this._toastRef;\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":";;;;;;;;;;MAIa,QAAQ,CAAA;AAKW,IAAA,MAAA;AAA6B,IAAA,UAAA;IAJjD,OAAO,GAAG,IAAI;AACd,IAAA,cAAc,GAAG,IAAI,OAAO,EAAO;AACpC,IAAA,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;IAElD,WAA4B,CAAA,MAAmB,EAAU,UAAsB,EAAA;QAAnD,IAAM,CAAA,MAAA,GAAN,MAAM;QAAuB,IAAU,CAAA,UAAA,GAAV,UAAU;;AAGnE,IAAA,IAAW,MAAM,GAAA;QACb,OAAO,IAAI,CAAC,OAAO;;IAGhB,KAAK,GAAA;AACR,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AACd,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3B,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK;;YAGpB,KAAK,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,IAAG;AACrB,gBAAA,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;AACxB,gBAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;AAC7B,aAAC,CAAC;;;AAGb;;MCCY,cAAc,CAAA;AAQX,IAAA,kBAAA;AACA,IAAA,SAAA;AACA,IAAA,WAAA;AACA,IAAA,WAAA;AAVL,IAAA,QAAQ;AACL,IAAA,OAAO;IACe,KAAK,GAAG,IAAI;AAClC,IAAA,gBAAgB;AAChB,IAAA,kBAAkB;AAE5B,IAAA,WAAA,CACY,kBAAqC,EACrC,SAAoB,EACpB,WAAuB,EACvB,WAAuB,EAAA;QAHvB,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB;QAClB,IAAS,CAAA,SAAA,GAAT,SAAS;QACT,IAAW,CAAA,WAAA,GAAX,WAAW;QACX,IAAW,CAAA,WAAA,GAAX,WAAW;;IAIvB,QAAQ,GAAA;QACJ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM;QACnC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,YAAY,WAAW;QACpE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,YAAY,WAAW;QAEhE,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,SAAS;AAC3C,QAAA,CAAC,OAAO,EAAE,MAAM,EAAE,CAAW,QAAA,EAAA,KAAK,CAAE,CAAA,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;AAC9G,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAG;AAC1E,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,YAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;AAC1C,SAAC,CAAC;;uGAzBG,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAd,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,EC7B3B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,YAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,04BAsBM,EDRE,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,EAEJ,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA;YACR,OAAO,CAAC,MAAM,EAAE;gBACZ,UAAU,CAAC,QAAQ,EAAE;oBACjB,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC;AAC9C,oBAAA,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;iBACjE,CAAC;AACF,gBAAA,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC;gBAC9D,UAAU,CAAC,eAAe,EAAE;oBACxB,OAAO,CAAC,KAAK,CAAC;iBACjB,CAAC;aACL,CAAC;AACL,SAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAEQ,cAAc,EAAA,UAAA,EAAA,CAAA;kBAtB1B,SAAS;+BACI,WAAW,EAAA,QAAA,EACX,UAAU,EAER,UAAA,EAAA,IAAI,mBACC,uBAAuB,CAAC,MAAM,EACtC,OAAA,EAAA;wBACL,YAAY;qBACf,EACW,UAAA,EAAA;wBACR,OAAO,CAAC,MAAM,EAAE;4BACZ,UAAU,CAAC,QAAQ,EAAE;gCACjB,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC;AAC9C,gCAAA,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;6BACjE,CAAC;AACF,4BAAA,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC;4BAC9D,UAAU,CAAC,eAAe,EAAE;gCACxB,OAAO,CAAC,KAAK,CAAC;6BACjB,CAAC;yBACL,CAAC;AACL,qBAAA,EAAA,QAAA,EAAA,04BAAA,EAAA;gKAK+B,KAAK,EAAA,CAAA;sBAApC,WAAW;uBAAC,OAAO;;;AExBxB;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BG;MAIU,YAAY,CAAA;AAGH,IAAA,eAAA;AAAkC,IAAA,SAAA;AAF9C,IAAA,SAAS;IAEjB,WAAoB,CAAA,eAAwB,EAAU,SAAmB,EAAA;QAArD,IAAe,CAAA,eAAA,GAAf,eAAe;QAAmB,IAAS,CAAA,SAAA,GAAT,SAAS;;AAI/D,IAAA,IAAI,CAAC,CAAM,EAAA;AACT,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;;QAGxB,MAAM,MAAM,GACV,OAAO,CAAC,KAAK,QAAQ,GAAG,CAAC;YACvB,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAiB;AAEpF,QAAA,IAAI,MAAM,GAAG,IAAI,eAAe,CAAC,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;;AAGtE,QAAA,IAAI,QAAQ,GAAG,MAAM,CAAC,gBAAgB,IAAI,KAAK;AAC/C,QAAA,IAAI,UAAU,GAAG,MAAM,CAAC,kBAAkB,IAAI,QAAQ;QACtD,IAAI,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE;QAC1D,MAAM,OAAO,GAAG,MAAM;QAEtB,QAAQ,QAAQ;AACd,YAAA,KAAK,KAAK;AACR,gBAAA,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC;gBACtC;AACF,YAAA,KAAK,QAAQ;AACX,gBAAA,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC;gBACzC;;QAGJ,QAAQ,UAAU;AAChB,YAAA,KAAK,QAAQ;AACX,gBAAA,WAAW,GAAG,WAAW,CAAC,kBAAkB,EAAE;gBAC9C;AACF,YAAA,KAAK,KAAK;AACR,gBAAA,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC;gBACtC;AACF,YAAA,KAAK,OAAO;AACV,gBAAA,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC;gBACxC;;AAGJ,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;AAC3C,YAAA,gBAAgB,EAAE,WAAW;AAC9B,SAAA,CAAC;QAEF,IAAI,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;AAC5C,QAAA,YAAY,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;QAElF,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE;AACzB,SAAC,EAAE,MAAM,EAAE,QAAQ,IAAI,IAAI,CAAC;QAE5B,OAAO,IAAI,CAAC,SAAS;;uGAxDZ,YAAY,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAZ,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cAFX,MAAM,EAAA,CAAA;;2FAEP,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACtCD;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"bootkit-ng0-components-toast.mjs","sources":["../../../projects/ng0/components/toast/toast-ref.ts","../../../projects/ng0/components/toast/toast.component.ts","../../../projects/ng0/components/toast/toast.component.html","../../../projects/ng0/components/toast/toast.service.ts","../../../projects/ng0/components/toast/bootkit-ng0-components-toast.ts"],"sourcesContent":["import { OverlayRef } from \"@angular/cdk/overlay\";\r\nimport { Subject, timer } from \"rxjs\";\r\nimport { ToastConfig } from \"./types\";\r\n\r\nexport class ToastRef {\r\n private _isOpen = true;\r\n private _closedSubject = new Subject<any>();\r\n public closed = this._closedSubject.asObservable();\r\n\r\n constructor(public readonly config: ToastConfig, private overlayRef: OverlayRef) {\r\n }\r\n\r\n public get isOpen() {\r\n return this._isOpen;\r\n }\r\n\r\n public close() {\r\n if (this._isOpen) {\r\n this._closedSubject.next(0);\r\n this._isOpen = false;\r\n\r\n // Wait to ':leave' animation is done and then dispose the overlay\r\n timer(100).subscribe(x => {\r\n this.overlayRef.detach();\r\n this.overlayRef.dispose();\r\n });\r\n }\r\n }\r\n}\r\n","import { trigger, style, transition, animate, state } from '@angular/animations';\r\nimport { Component, OnInit, ChangeDetectionStrategy, DestroyRef, ChangeDetectorRef, HostBinding, Renderer2, ElementRef, TemplateRef } from '@angular/core';\r\nimport { ToastConfig } from './types';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ToastRef } from './toast-ref';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: 'ng0-toast',\r\n exportAs: 'ng0Toast',\r\n templateUrl: 'toast.component.html',\r\n standalone: true,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [\r\n CommonModule,\r\n ],\r\n animations: [\r\n trigger('host', [\r\n transition(':enter', [\r\n style({ opacity: 0, transform: 'scale(.85)' }),\r\n animate('.1s', style({ opacity: '1', transform: 'scale(1)' })),\r\n ]),\r\n state('false', style({ opacity: 0, transform: 'scale(.85)' })),\r\n transition('true => false', [\r\n animate('.1s'),\r\n ]),\r\n ]),\r\n ],\r\n})\r\nexport class ToastComponent implements OnInit {\r\n public toastRef!: ToastRef;\r\n protected _config!: ToastConfig;\r\n @HostBinding('@host') protected _show = true;\r\n protected _hasBodyTemplate!: boolean;\r\n protected _hasHeaderTemplate!: boolean;\r\n\r\n constructor(\r\n private _changeDetectorRef: ChangeDetectorRef,\r\n private _renderer: Renderer2,\r\n private _elementRef: ElementRef,\r\n private _destroyRef: DestroyRef) {\r\n \r\n }\r\n\r\n ngOnInit(): void {\r\n this._config = this.toastRef.config;\r\n this._hasHeaderTemplate = this._config.header instanceof TemplateRef;\r\n this._hasBodyTemplate = this._config.body instanceof TemplateRef;\r\n \r\n let style = this._config.style ?? 'success';\r\n ['toast', 'show', `text-bg-${style}`].forEach(x => this._renderer.addClass(this._elementRef.nativeElement, x));\r\n this.toastRef.closed.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(x => {\r\n this._show = false;\r\n this._changeDetectorRef.markForCheck();\r\n })\r\n }\r\n}\r\n","<div class=\"toast-header\" *ngIf=\"this._config.header\">\r\n @if(_hasHeaderTemplate) {\r\n <ng-container [ngTemplateOutlet]=\"$any(_config.header)\"></ng-container>\r\n }@else {\r\n <span *ngIf=\"_config.icon\" class=\"me-2\" [ngClass]=\"_config.icon\"></span>\r\n <strong class=\"me-auto\">{{this._config.header}}</strong>\r\n <small *ngIf=\"_config.hint\">{{_config.hint}}</small>\r\n <button *ngIf=\"_config?.closeButton == undefined || _config?.closeButton\"\r\n type=\"button\"\r\n class=\"btn-close\"\r\n aria-label=\"Close\"\r\n (click)=\"toastRef.close()\">\r\n </button>\r\n }\r\n</div>\r\n\r\n<div class=\"toast-body\" *ngIf=\"this._config.body\">\r\n @if(_hasBodyTemplate) {\r\n <ng-container [ngTemplateOutlet]=\"$any(_config.body)\"></ng-container>\r\n }@else {\r\n {{this._config.body}}\r\n }\r\n</div>","import { Overlay } from '@angular/cdk/overlay';\r\nimport { ComponentPortal } from '@angular/cdk/portal';\r\nimport { Injectable, Injector } from '@angular/core';\r\nimport { ToastComponent } from './toast.component';\r\nimport { ToastConfig } from './types';\r\nimport { ToastRef } from './toast-ref';\r\n\r\n\r\n/**\r\n * Service for displaying toast notifications in the application.\r\n *\r\n * The `ToastService` provides methods to open toast messages with customizable content,\r\n * header, style, position, and duration. It manages the lifecycle of toast notifications,\r\n * ensuring only one toast is visible at a time.\r\n *\r\n * @example\r\n * // Open a simple toast\r\n * toastService.open('Message body', 'Header', 'success');\r\n *\r\n * @example\r\n * // Open a toast with configuration\r\n * toastService.open({\r\n * body: 'Message body',\r\n * header: 'Header',\r\n * style: 'success',\r\n * verticalPosition: 'bottom',\r\n * horizontalPosition: 'end',\r\n * duration: 5000\r\n * });\r\n *\r\n * @remarks\r\n * - Only one toast can be displayed at a time; opening a new toast closes the previous one.\r\n * - The toast will automatically close after the specified duration (default: 3000ms).\r\n *\r\n * @publicApi\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ToastService {\r\n private _toastRef?: ToastRef;\r\n\r\n constructor(private _overlayService: Overlay, private _injector: Injector) { }\r\n\r\n open(body: string, header?: string, style?: string): ToastRef;\r\n open(config: ToastConfig): ToastRef;\r\n open(p: any): ToastRef {\r\n if (this._toastRef) {\r\n this._toastRef.close();\r\n }\r\n\r\n const config: ToastConfig =\r\n typeof p === 'object' ? p :\r\n { body: arguments[0], header: arguments[1], style: arguments[2] } as ToastConfig;\r\n\r\n var portal = new ComponentPortal(ToastComponent, null, this._injector);\r\n\r\n // Position\r\n var vertical = config.verticalPosition ?? 'top';\r\n var horizontal = config.horizontalPosition ?? 'center';\r\n var posStrategy = this._overlayService.position().global();\r\n const padding = '1rem';\r\n\r\n switch (vertical) {\r\n case 'top':\r\n posStrategy = posStrategy.top(padding)\r\n break;\r\n case 'bottom':\r\n posStrategy = posStrategy.bottom(padding)\r\n break;\r\n }\r\n\r\n switch (horizontal) {\r\n case 'center':\r\n posStrategy = posStrategy.centerHorizontally();\r\n break;\r\n case 'end':\r\n posStrategy = posStrategy.end(padding);\r\n break;\r\n case 'start':\r\n posStrategy = posStrategy.start(padding);\r\n break;\r\n }\r\n\r\n var overlayRef = this._overlayService.create({\r\n positionStrategy: posStrategy,\r\n });\r\n\r\n var componentRef = overlayRef.attach(portal);\r\n componentRef.instance.toastRef = this._toastRef = new ToastRef(config, overlayRef);\r\n\r\n setTimeout(() => {\r\n this._toastRef?.close();\r\n }, config?.duration ?? 3000);\r\n\r\n return this._toastRef;\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
|
|
@@ -33,10 +33,10 @@ class TooltipWrapperComponent {
|
|
|
33
33
|
this.hasTemplate = content instanceof TemplateRef;
|
|
34
34
|
this.changeDetectorRef.markForCheck();
|
|
35
35
|
}
|
|
36
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
37
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.
|
|
36
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: TooltipWrapperComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
37
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: TooltipWrapperComponent, isStandalone: true, selector: "ng0-tooltip-wrapper", host: { properties: { "class.bs-tooltip-top": "placement == \"top\"", "class.bs-tooltip-bottom": "placement == \"bottom\"", "class.bs-tooltip-start": "placement == \"start\"", "class.bs-tooltip-end": "placement == \"end\"" } }, exportAs: ["ng0TooltipWrapper"], ngImport: i0, template: "<div class=\"tooltip-arrow\"></div>\r\n<div class=\"tooltip-inner\">\r\n @if(hasTemplate) {\r\n <ng-container [ngTemplateOutlet]=\"$any(content)\"></ng-container>\r\n }@else{\r\n {{content}}\r\n }\r\n</div>", styles: [":host{position:relative;padding:var(--bs-tooltip-arrow-height)}:host .tooltip-arrow{position:absolute}:host.bs-tooltip-top .tooltip-arrow{bottom:0;left:calc(50% - var(--bs-tooltip-arrow-width) / 2)}:host.bs-tooltip-bottom .tooltip-arrow{top:0;left:calc(50% - var(--bs-tooltip-arrow-width) / 2)}:host.bs-tooltip-start .tooltip-arrow{right:0;top:calc(50% - var(--bs-tooltip-arrow-width) / 2)}[dir=rtl] :host.bs-tooltip-start .tooltip-arrow{right:unset!important;left:0;transform:rotate(180deg)}:host.bs-tooltip-end .tooltip-arrow{left:0;top:calc(50% - var(--bs-tooltip-arrow-width) / 2)}[dir=rtl] :host.bs-tooltip-end .tooltip-arrow{left:unset!important;right:0;transform:rotate(180deg)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
38
38
|
}
|
|
39
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
39
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: TooltipWrapperComponent, decorators: [{
|
|
40
40
|
type: Component,
|
|
41
41
|
args: [{ selector: 'ng0-tooltip-wrapper', exportAs: 'ng0TooltipWrapper', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule], host: {
|
|
42
42
|
'[class.bs-tooltip-top]': 'placement == "top"',
|
|
@@ -51,8 +51,8 @@ class TooltipDirective {
|
|
|
51
51
|
elementRef;
|
|
52
52
|
destroyRef;
|
|
53
53
|
viewRef;
|
|
54
|
-
content = input(undefined, { alias: 'ng0Tooltip' });
|
|
55
|
-
placement = input('bottom');
|
|
54
|
+
content = input(undefined, ...(ngDevMode ? [{ debugName: "content", alias: 'ng0Tooltip' }] : [{ alias: 'ng0Tooltip' }]));
|
|
55
|
+
placement = input('bottom', ...(ngDevMode ? [{ debugName: "placement" }] : []));
|
|
56
56
|
portal;
|
|
57
57
|
overlayRef;
|
|
58
58
|
constructor(overlayService, elementRef, destroyRef, viewRef) {
|
|
@@ -115,10 +115,10 @@ class TooltipDirective {
|
|
|
115
115
|
ngOnDestroy() {
|
|
116
116
|
this.disposeOverlay();
|
|
117
117
|
}
|
|
118
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
119
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.
|
|
118
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: TooltipDirective, deps: [{ token: i1$1.Overlay }, { token: i0.ElementRef }, { token: i0.DestroyRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
119
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.1.3", type: TooltipDirective, isStandalone: true, selector: "[ng0Tooltip]", inputs: { content: { classPropertyName: "content", publicName: "ng0Tooltip", isSignal: true, isRequired: false, transformFunction: null }, placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()" } }, exportAs: ["ng0Tooltip"], ngImport: i0 });
|
|
120
120
|
}
|
|
121
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
121
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: TooltipDirective, decorators: [{
|
|
122
122
|
type: Directive,
|
|
123
123
|
args: [{
|
|
124
124
|
selector: '[ng0Tooltip]',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootkit-ng0-components-tooltip.mjs","sources":["../../../projects/ng0/components/tooltip/tooltip-wrapper/tooltip-wrapper.component.ts","../../../projects/ng0/components/tooltip/tooltip-wrapper/tooltip-wrapper.component.html","../../../projects/ng0/components/tooltip/tooltip.directive.ts","../../../projects/ng0/components/tooltip/bootkit-ng0-components-tooltip.ts"],"sourcesContent":["import { Component, ElementRef, Renderer2, ChangeDetectionStrategy, OnInit, TemplateRef, ChangeDetectorRef } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TooltipContent, TooltipPlacement } from '../types';\r\n\r\n/**\r\n * @private\r\n */\r\n@Component({\r\n selector: 'ng0-tooltip-wrapper',\r\n exportAs: 'ng0TooltipWrapper',\r\n styleUrls: ['./tooltip-wrapper.component.scss'],\r\n templateUrl: './tooltip-wrapper.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [CommonModule],\r\n host: {\r\n '[class.bs-tooltip-top]': 'placement == \"top\"',\r\n '[class.bs-tooltip-bottom]': 'placement == \"bottom\"',\r\n '[class.bs-tooltip-start]': 'placement == \"start\"',\r\n '[class.bs-tooltip-end]': 'placement == \"end\"',\r\n }\r\n})\r\nexport class TooltipWrapperComponent implements OnInit {\r\n protected placement!: TooltipPlacement;\r\n protected content!: TooltipContent;\r\n protected hasTemplate!: boolean;\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n private renderer: Renderer2,\r\n private changeDetectorRef: ChangeDetectorRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.hasTemplate = this.content instanceof TemplateRef;\r\n const elm = this.elementRef.nativeElement;\r\n this.renderer.setAttribute(elm, 'role', 'tooltip');\r\n ['tooltip', 'fade', 'show'].forEach(c => this.renderer.addClass(elm, c));\r\n }\r\n\r\n public set(content: any, placement: TooltipPlacement) {\r\n this.content = content;\r\n this.placement = placement;\r\n this.hasTemplate = content instanceof TemplateRef;\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n}\r\n","<div class=\"tooltip-arrow\"></div>\r\n<div class=\"tooltip-inner\">\r\n @if(hasTemplate) {\r\n <ng-container [ngTemplateOutlet]=\"$any(content)\"></ng-container>\r\n }@else{\r\n {{content}}\r\n }\r\n</div>","import {\r\n Directive, TemplateRef, ViewContainerRef, OnDestroy, ElementRef, HostListener, OnInit,\r\n input,\r\n DestroyRef\r\n} from '@angular/core';\r\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\r\nimport { ComponentPortal } from '@angular/cdk/portal';\r\nimport { TooltipWrapperComponent } from './tooltip-wrapper/tooltip-wrapper.component';\r\nimport { TooltipPlacement } from './types';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\n@Directive({\r\n selector: '[ng0Tooltip]',\r\n exportAs: 'ng0Tooltip',\r\n standalone: true\r\n})\r\nexport class TooltipDirective implements OnInit, OnDestroy {\r\n public content = input<string | TemplateRef<any> | undefined | null>(undefined, { alias: 'ng0Tooltip' });\r\n public placement = input<TooltipPlacement>('bottom');\r\n private portal!: ComponentPortal<TooltipWrapperComponent>;\r\n private overlayRef?: OverlayRef;\r\n\r\n constructor(\r\n private overlayService: Overlay,\r\n private elementRef: ElementRef,\r\n private destroyRef: DestroyRef,\r\n private viewRef: ViewContainerRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.portal = new ComponentPortal(TooltipWrapperComponent, this.viewRef);\r\n }\r\n\r\n @HostListener('mouseenter') \r\n private onMouseEnter(): void {\r\n this.createOverlay();\r\n }\r\n\r\n @HostListener('mouseleave') \r\n private onMouseLeave(): void {\r\n this.disposeOverlay();\r\n }\r\n\r\n private createOverlay(): void {\r\n let wrapperInstance: TooltipWrapperComponent;\r\n\r\n const scrollStrategy = this.overlayService.scrollStrategies.reposition();\r\n const positionStrategy = this.overlayService.position().flexibleConnectedTo(this.elementRef).withPositions(this.getPositions());\r\n\r\n positionStrategy.positionChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(p => {\r\n wrapperRef.instance.set(this.content(), (p.connectionPair as any).key);\r\n });\r\n\r\n this.overlayRef = this.overlayService.create({ scrollStrategy, positionStrategy });\r\n let wrapperRef = this.overlayRef.attach(this.portal);\r\n wrapperRef.instance.set(this.content(), this.placement());\r\n }\r\n\r\n private disposeOverlay(): void {\r\n if (this.overlayRef) {\r\n this.overlayRef.dispose();\r\n this.overlayRef = undefined;\r\n }\r\n }\r\n\r\n private getPositions(): any[] {\r\n const c = 'center', t = 'top', b = 'bottom', s = 'start', e = 'end';\r\n const top = { key: t, originX: c, originY: t, overlayX: c, overlayY: b, };\r\n const bottom = { key: b, originX: c, originY: b, overlayX: c, overlayY: t, };\r\n const start = { key: s, originX: s, originY: c, overlayX: e, overlayY: c, };\r\n const end = { key: e, originX: e, originY: c, overlayX: s, overlayY: c, };\r\n\r\n let positions: Array<any>;\r\n\r\n switch (this.placement()) {\r\n case 'bottom':\r\n positions = [bottom, top];\r\n break;\r\n case 'start':\r\n positions = [start, start];\r\n break;\r\n case 'end':\r\n positions = [end, start];\r\n break;\r\n case 'top':\r\n positions = [top, bottom];\r\n break;\r\n default:\r\n positions = [bottom, top];\r\n }\r\n\r\n return positions;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.disposeOverlay();\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bootkit-ng0-components-tooltip.mjs","sources":["../../../projects/ng0/components/tooltip/tooltip-wrapper/tooltip-wrapper.component.ts","../../../projects/ng0/components/tooltip/tooltip-wrapper/tooltip-wrapper.component.html","../../../projects/ng0/components/tooltip/tooltip.directive.ts","../../../projects/ng0/components/tooltip/bootkit-ng0-components-tooltip.ts"],"sourcesContent":["import { Component, ElementRef, Renderer2, ChangeDetectionStrategy, OnInit, TemplateRef, ChangeDetectorRef } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TooltipContent, TooltipPlacement } from '../types';\r\n\r\n/**\r\n * @private\r\n */\r\n@Component({\r\n selector: 'ng0-tooltip-wrapper',\r\n exportAs: 'ng0TooltipWrapper',\r\n styleUrls: ['./tooltip-wrapper.component.scss'],\r\n templateUrl: './tooltip-wrapper.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [CommonModule],\r\n host: {\r\n '[class.bs-tooltip-top]': 'placement == \"top\"',\r\n '[class.bs-tooltip-bottom]': 'placement == \"bottom\"',\r\n '[class.bs-tooltip-start]': 'placement == \"start\"',\r\n '[class.bs-tooltip-end]': 'placement == \"end\"',\r\n }\r\n})\r\nexport class TooltipWrapperComponent implements OnInit {\r\n protected placement!: TooltipPlacement;\r\n protected content!: TooltipContent;\r\n protected hasTemplate!: boolean;\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n private renderer: Renderer2,\r\n private changeDetectorRef: ChangeDetectorRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.hasTemplate = this.content instanceof TemplateRef;\r\n const elm = this.elementRef.nativeElement;\r\n this.renderer.setAttribute(elm, 'role', 'tooltip');\r\n ['tooltip', 'fade', 'show'].forEach(c => this.renderer.addClass(elm, c));\r\n }\r\n\r\n public set(content: any, placement: TooltipPlacement) {\r\n this.content = content;\r\n this.placement = placement;\r\n this.hasTemplate = content instanceof TemplateRef;\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n}\r\n","<div class=\"tooltip-arrow\"></div>\r\n<div class=\"tooltip-inner\">\r\n @if(hasTemplate) {\r\n <ng-container [ngTemplateOutlet]=\"$any(content)\"></ng-container>\r\n }@else{\r\n {{content}}\r\n }\r\n</div>","import {\r\n Directive, TemplateRef, ViewContainerRef, OnDestroy, ElementRef, HostListener, OnInit,\r\n input,\r\n DestroyRef\r\n} from '@angular/core';\r\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\r\nimport { ComponentPortal } from '@angular/cdk/portal';\r\nimport { TooltipWrapperComponent } from './tooltip-wrapper/tooltip-wrapper.component';\r\nimport { TooltipPlacement } from './types';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\n@Directive({\r\n selector: '[ng0Tooltip]',\r\n exportAs: 'ng0Tooltip',\r\n standalone: true\r\n})\r\nexport class TooltipDirective implements OnInit, OnDestroy {\r\n public content = input<string | TemplateRef<any> | undefined | null>(undefined, { alias: 'ng0Tooltip' });\r\n public placement = input<TooltipPlacement>('bottom');\r\n private portal!: ComponentPortal<TooltipWrapperComponent>;\r\n private overlayRef?: OverlayRef;\r\n\r\n constructor(\r\n private overlayService: Overlay,\r\n private elementRef: ElementRef,\r\n private destroyRef: DestroyRef,\r\n private viewRef: ViewContainerRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.portal = new ComponentPortal(TooltipWrapperComponent, this.viewRef);\r\n }\r\n\r\n @HostListener('mouseenter') \r\n private onMouseEnter(): void {\r\n this.createOverlay();\r\n }\r\n\r\n @HostListener('mouseleave') \r\n private onMouseLeave(): void {\r\n this.disposeOverlay();\r\n }\r\n\r\n private createOverlay(): void {\r\n let wrapperInstance: TooltipWrapperComponent;\r\n\r\n const scrollStrategy = this.overlayService.scrollStrategies.reposition();\r\n const positionStrategy = this.overlayService.position().flexibleConnectedTo(this.elementRef).withPositions(this.getPositions());\r\n\r\n positionStrategy.positionChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(p => {\r\n wrapperRef.instance.set(this.content(), (p.connectionPair as any).key);\r\n });\r\n\r\n this.overlayRef = this.overlayService.create({ scrollStrategy, positionStrategy });\r\n let wrapperRef = this.overlayRef.attach(this.portal);\r\n wrapperRef.instance.set(this.content(), this.placement());\r\n }\r\n\r\n private disposeOverlay(): void {\r\n if (this.overlayRef) {\r\n this.overlayRef.dispose();\r\n this.overlayRef = undefined;\r\n }\r\n }\r\n\r\n private getPositions(): any[] {\r\n const c = 'center', t = 'top', b = 'bottom', s = 'start', e = 'end';\r\n const top = { key: t, originX: c, originY: t, overlayX: c, overlayY: b, };\r\n const bottom = { key: b, originX: c, originY: b, overlayX: c, overlayY: t, };\r\n const start = { key: s, originX: s, originY: c, overlayX: e, overlayY: c, };\r\n const end = { key: e, originX: e, originY: c, overlayX: s, overlayY: c, };\r\n\r\n let positions: Array<any>;\r\n\r\n switch (this.placement()) {\r\n case 'bottom':\r\n positions = [bottom, top];\r\n break;\r\n case 'start':\r\n positions = [start, start];\r\n break;\r\n case 'end':\r\n positions = [end, start];\r\n break;\r\n case 'top':\r\n positions = [top, bottom];\r\n break;\r\n default:\r\n positions = [bottom, top];\r\n }\r\n\r\n return positions;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.disposeOverlay();\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":";;;;;;;;AAIA;;AAEG;MAgBU,uBAAuB,CAAA;AAMpB,IAAA,UAAA;AACA,IAAA,QAAA;AACA,IAAA,iBAAA;AAPF,IAAA,SAAS;AACT,IAAA,OAAO;AACP,IAAA,WAAW;AAErB,IAAA,WAAA,CACY,UAAsB,EACtB,QAAmB,EACnB,iBAAoC,EAAA;QAFpC,IAAA,CAAA,UAAU,GAAV,UAAU;QACV,IAAA,CAAA,QAAQ,GAAR,QAAQ;QACR,IAAA,CAAA,iBAAiB,GAAjB,iBAAiB;;IAG7B,QAAQ,GAAA;QACJ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,YAAY,WAAW;AACtD,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa;QACzC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC;QAClD,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;;IAGrE,GAAG,CAAC,OAAY,EAAE,SAA2B,EAAA;AAChD,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;AACtB,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS;AAC1B,QAAA,IAAI,CAAC,WAAW,GAAG,OAAO,YAAY,WAAW;AACjD,QAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE;;uGAtBhC,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,yBAAA,EAAA,yBAAA,EAAA,wBAAA,EAAA,wBAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtBpC,+NAOM,EAAA,MAAA,EAAA,CAAA,irBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDOQ,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAQb,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAfnC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,EAAA,QAAA,EACrB,mBAAmB,EAAA,eAAA,EAGZ,uBAAuB,CAAC,MAAM,EAAA,UAAA,EACnC,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,IAAA,EACjB;AACF,wBAAA,wBAAwB,EAAE,oBAAoB;AAC9C,wBAAA,2BAA2B,EAAE,uBAAuB;AACpD,wBAAA,0BAA0B,EAAE,sBAAsB;AAClD,wBAAA,wBAAwB,EAAE,oBAAoB;AACjD,qBAAA,EAAA,QAAA,EAAA,+NAAA,EAAA,MAAA,EAAA,CAAA,irBAAA,CAAA,EAAA;;;MEJQ,gBAAgB,CAAA;AAOb,IAAA,cAAA;AACA,IAAA,UAAA;AACA,IAAA,UAAA;AACA,IAAA,OAAA;AATL,IAAA,OAAO,GAAG,KAAK,CAA+C,SAAS,2CAAI,KAAK,EAAE,YAAY,EAAA,CAAA,GAAA,CAArB,EAAE,KAAK,EAAE,YAAY,EAAE,GAAC;AACjG,IAAA,SAAS,GAAG,KAAK,CAAmB,QAAQ,qDAAC;AAC5C,IAAA,MAAM;AACN,IAAA,UAAU;AAElB,IAAA,WAAA,CACY,cAAuB,EACvB,UAAsB,EACtB,UAAsB,EACtB,OAAyB,EAAA;QAHzB,IAAA,CAAA,cAAc,GAAd,cAAc;QACd,IAAA,CAAA,UAAU,GAAV,UAAU;QACV,IAAA,CAAA,UAAU,GAAV,UAAU;QACV,IAAA,CAAA,OAAO,GAAP,OAAO;;IAGnB,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,eAAe,CAAC,uBAAuB,EAAE,IAAI,CAAC,OAAO,CAAC;;IAIpE,YAAY,GAAA;QAChB,IAAI,CAAC,aAAa,EAAE;;IAIhB,YAAY,GAAA;QAChB,IAAI,CAAC,cAAc,EAAE;;IAGjB,aAAa,GAAA;AACjB,QAAA,IAAI,eAAwC;QAE5C,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,UAAU,EAAE;QACxE,MAAM,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;AAE/H,QAAA,gBAAgB,CAAC,eAAe,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAG;AACrF,YAAA,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,EAAG,CAAC,CAAC,cAAsB,CAAC,GAAG,CAAC;AAC1E,SAAC,CAAC;AAEF,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,cAAc,EAAE,gBAAgB,EAAE,CAAC;AAClF,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;AACpD,QAAA,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;;IAGrD,cAAc,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACjB,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;AACzB,YAAA,IAAI,CAAC,UAAU,GAAG,SAAS;;;IAI3B,YAAY,GAAA;AAChB,QAAA,MAAM,CAAC,GAAG,QAAQ,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,KAAK;QACnE,MAAM,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG;QACzE,MAAM,MAAM,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG;QAC5E,MAAM,KAAK,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG;QAC3E,MAAM,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG;AAEzE,QAAA,IAAI,SAAqB;AAEzB,QAAA,QAAQ,IAAI,CAAC,SAAS,EAAE;AACpB,YAAA,KAAK,QAAQ;AACT,gBAAA,SAAS,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC;gBACzB;AACJ,YAAA,KAAK,OAAO;AACR,gBAAA,SAAS,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC;gBAC1B;AACJ,YAAA,KAAK,KAAK;AACN,gBAAA,SAAS,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC;gBACxB;AACJ,YAAA,KAAK,KAAK;AACN,gBAAA,SAAS,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC;gBACzB;AACJ,YAAA;AACI,gBAAA,SAAS,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC;;AAGjC,QAAA,OAAO,SAAS;;IAGpB,WAAW,GAAA;QACP,IAAI,CAAC,cAAc,EAAE;;uGA/EhB,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAL5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,QAAQ,EAAE,YAAY;AACtB,oBAAA,UAAU,EAAE;AACf,iBAAA;+JAmBW,YAAY,EAAA,CAAA;sBADnB,YAAY;uBAAC,YAAY;gBAMlB,YAAY,EAAA,CAAA;sBADnB,YAAY;uBAAC,YAAY;;;ACtC9B;;AAEG;;;;"}
|
|
@@ -9,10 +9,10 @@ class VerticalMenuArrowDirective {
|
|
|
9
9
|
constructor(templateRef) {
|
|
10
10
|
this.templateRef = templateRef;
|
|
11
11
|
}
|
|
12
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
13
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.
|
|
12
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: VerticalMenuArrowDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
13
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.3", type: VerticalMenuArrowDirective, isStandalone: true, selector: "[ng0VerticalMenuArrow], [ng0VmenuArrow]", exportAs: ["ng0VerticalMenuArrow"], ngImport: i0 });
|
|
14
14
|
}
|
|
15
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: VerticalMenuArrowDirective, decorators: [{
|
|
16
16
|
type: Directive,
|
|
17
17
|
args: [{
|
|
18
18
|
selector: '[ng0VerticalMenuArrow], [ng0VmenuArrow]',
|
|
@@ -22,15 +22,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
|
|
|
22
22
|
}], ctorParameters: () => [{ type: i0.TemplateRef }] });
|
|
23
23
|
|
|
24
24
|
class VerticalMenuComponent {
|
|
25
|
-
toggleByItemClick = input(true);
|
|
26
|
-
collapseTimings = input('0.15s');
|
|
25
|
+
toggleByItemClick = input(true, ...(ngDevMode ? [{ debugName: "toggleByItemClick" }] : []));
|
|
26
|
+
collapseTimings = input('0.15s', ...(ngDevMode ? [{ debugName: "collapseTimings" }] : []));
|
|
27
27
|
arrowDirective;
|
|
28
28
|
constructor() {
|
|
29
29
|
}
|
|
30
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
31
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.
|
|
30
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: VerticalMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
31
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.1.3", type: VerticalMenuComponent, isStandalone: true, selector: "ng0-vertical-menu, ng0-vmenu", inputs: { toggleByItemClick: { classPropertyName: "toggleByItemClick", publicName: "toggleByItemClick", isSignal: true, isRequired: false, transformFunction: null }, collapseTimings: { classPropertyName: "collapseTimings", publicName: "collapseTimings", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "arrowDirective", first: true, predicate: VerticalMenuArrowDirective }], ngImport: i0, template: "<ng-content></ng-content>", styles: [":host{display:block}\n"] });
|
|
32
32
|
}
|
|
33
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
33
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: VerticalMenuComponent, decorators: [{
|
|
34
34
|
type: Component,
|
|
35
35
|
args: [{ selector: 'ng0-vertical-menu, ng0-vmenu', standalone: true, imports: [], template: "<ng-content></ng-content>", styles: [":host{display:block}\n"] }]
|
|
36
36
|
}], ctorParameters: () => [], propDecorators: { arrowDirective: [{
|
|
@@ -41,16 +41,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
|
|
|
41
41
|
class VerticalMenuItemChildrenComponent {
|
|
42
42
|
menuItem;
|
|
43
43
|
_menu;
|
|
44
|
-
expanded = model(false);
|
|
44
|
+
expanded = model(false, ...(ngDevMode ? [{ debugName: "expanded" }] : []));
|
|
45
45
|
_items;
|
|
46
46
|
constructor(menuItem, _menu) {
|
|
47
47
|
this.menuItem = menuItem;
|
|
48
48
|
this._menu = _menu;
|
|
49
49
|
}
|
|
50
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
51
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.
|
|
50
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: VerticalMenuItemChildrenComponent, deps: [{ token: VerticalMenuItemComponent }, { token: VerticalMenuComponent }], target: i0.ɵɵFactoryTarget.Component });
|
|
51
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.1.3", type: VerticalMenuItemChildrenComponent, isStandalone: true, selector: "ng0-vertical-menu-item-children, ng0-vmenu-item-children, ng0-vmenu-children", inputs: { expanded: { classPropertyName: "expanded", publicName: "expanded", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { expanded: "expandedChange" }, host: { properties: { "class.isc-expanded": "expanded()" } }, queries: [{ propertyName: "_items", first: true, predicate: VerticalMenuItemComponent }], exportAs: ["ng0VmenuItemChildren"], ngImport: i0, template: "<div ng0Collapse\r\n [collapsed]=\"!expanded()\"\r\n [timings]=\"_menu.collapseTimings()\">\r\n <ng-content></ng-content>\r\n</div>\r\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: CollapseDirective, selector: "[ng0Collapse]", inputs: ["collapsed", "timings"], exportAs: ["ng0Collapse"] }] });
|
|
52
52
|
}
|
|
53
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
53
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: VerticalMenuItemChildrenComponent, decorators: [{
|
|
54
54
|
type: Component,
|
|
55
55
|
args: [{ selector: 'ng0-vertical-menu-item-children, ng0-vmenu-item-children, ng0-vmenu-children', exportAs: 'ng0VmenuItemChildren', standalone: true, imports: [CommonModule, CollapseDirective], host: {
|
|
56
56
|
'[class.isc-expanded]': 'expanded()'
|
|
@@ -64,8 +64,8 @@ class VerticalMenuItemComponent {
|
|
|
64
64
|
_renderer;
|
|
65
65
|
_el;
|
|
66
66
|
_menu;
|
|
67
|
-
toggleByClick = input(true);
|
|
68
|
-
active = model(false);
|
|
67
|
+
toggleByClick = input(true, ...(ngDevMode ? [{ debugName: "toggleByClick" }] : []));
|
|
68
|
+
active = model(false, ...(ngDevMode ? [{ debugName: "active" }] : []));
|
|
69
69
|
children;
|
|
70
70
|
constructor(_renderer, _el, _menu) {
|
|
71
71
|
this._renderer = _renderer;
|
|
@@ -78,10 +78,10 @@ class VerticalMenuItemComponent {
|
|
|
78
78
|
get isExpanded() {
|
|
79
79
|
return this.children != null && this.children.expanded();
|
|
80
80
|
}
|
|
81
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
82
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.
|
|
81
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: VerticalMenuItemComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: VerticalMenuComponent }], target: i0.ɵɵFactoryTarget.Component });
|
|
82
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.1.3", type: VerticalMenuItemComponent, isStandalone: true, selector: "ng0-vertical-menu-item, ng0-vmenu-item", inputs: { toggleByClick: { classPropertyName: "toggleByClick", publicName: "toggleByClick", isSignal: true, isRequired: false, transformFunction: null }, active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { active: "activeChange" }, host: { properties: { "class.ng0-has-children": "this.hasChildren", "class.ng0-expanded": "this.isExpanded" } }, queries: [{ propertyName: "children", first: true, predicate: VerticalMenuItemChildrenComponent }], ngImport: i0, template: "<ng-content></ng-content>", styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
|
|
83
83
|
}
|
|
84
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
84
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: VerticalMenuItemComponent, decorators: [{
|
|
85
85
|
type: Component,
|
|
86
86
|
args: [{ selector: 'ng0-vertical-menu-item, ng0-vmenu-item', standalone: true, imports: [CommonModule], host: {}, template: "<ng-content></ng-content>", styles: [":host{display:block}\n"] }]
|
|
87
87
|
}], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: VerticalMenuComponent }], propDecorators: { children: [{
|
|
@@ -112,10 +112,10 @@ class VerticalMenuItemContentComponent {
|
|
|
112
112
|
this.menuItem.children?.expanded.update(x => !x);
|
|
113
113
|
}
|
|
114
114
|
}
|
|
115
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
116
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.
|
|
115
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: VerticalMenuItemContentComponent, deps: [{ token: VerticalMenuItemComponent }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: VerticalMenuComponent }], target: i0.ɵɵFactoryTarget.Component });
|
|
116
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: VerticalMenuItemContentComponent, isStandalone: true, selector: "ng0-vertical-menu-item-content, ng0-vmenu-item-content, ng0-vmenu-content", host: { listeners: { "click": "_onClick($event)" } }, ngImport: i0, template: "<ng-content></ng-content>\r\n\r\n@defer {\r\n@if(_menu.arrowDirective && menuItem.hasChildren) {\r\n<ng-container *ngTemplateOutlet=\"_menu.arrowDirective?.templateRef!; context: {$implicit: menuItem}\"></ng-container>\r\n}\r\n}", styles: [":host{display:flex;align-items:center}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], deferBlockDependencies: [() => [i3.NgTemplateOutlet]] });
|
|
117
117
|
}
|
|
118
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
118
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: VerticalMenuItemContentComponent, decorators: [{
|
|
119
119
|
type: Component,
|
|
120
120
|
args: [{ selector: 'ng0-vertical-menu-item-content, ng0-vmenu-item-content, ng0-vmenu-content', standalone: true, imports: [CommonModule], template: "<ng-content></ng-content>\r\n\r\n@defer {\r\n@if(_menu.arrowDirective && menuItem.hasChildren) {\r\n<ng-container *ngTemplateOutlet=\"_menu.arrowDirective?.templateRef!; context: {$implicit: menuItem}\"></ng-container>\r\n}\r\n}", styles: [":host{display:flex;align-items:center}\n"] }]
|
|
121
121
|
}], ctorParameters: () => [{ type: VerticalMenuItemComponent }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: VerticalMenuComponent }], propDecorators: { _onClick: [{
|
|
@@ -131,8 +131,8 @@ const items = [
|
|
|
131
131
|
VerticalMenuArrowDirective,
|
|
132
132
|
];
|
|
133
133
|
class VerticalMenuModule {
|
|
134
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
135
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.
|
|
134
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: VerticalMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
135
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.1.3", ngImport: i0, type: VerticalMenuModule, imports: [VerticalMenuComponent,
|
|
136
136
|
VerticalMenuItemComponent,
|
|
137
137
|
VerticalMenuItemChildrenComponent,
|
|
138
138
|
VerticalMenuItemContentComponent,
|
|
@@ -141,11 +141,11 @@ class VerticalMenuModule {
|
|
|
141
141
|
VerticalMenuItemChildrenComponent,
|
|
142
142
|
VerticalMenuItemContentComponent,
|
|
143
143
|
VerticalMenuArrowDirective] });
|
|
144
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.
|
|
144
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: VerticalMenuModule, imports: [VerticalMenuItemComponent,
|
|
145
145
|
VerticalMenuItemChildrenComponent,
|
|
146
146
|
VerticalMenuItemContentComponent] });
|
|
147
147
|
}
|
|
148
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
148
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: VerticalMenuModule, decorators: [{
|
|
149
149
|
type: NgModule,
|
|
150
150
|
args: [{
|
|
151
151
|
imports: items,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootkit-ng0-components-vertical-menu.mjs","sources":["../../../projects/ng0/components/vertical-menu/item-arrow.directive.ts","../../../projects/ng0/components/vertical-menu/vertical-menu.component.ts","../../../projects/ng0/components/vertical-menu/vertical-menu.component.html","../../../projects/ng0/components/vertical-menu/item-children.component.ts","../../../projects/ng0/components/vertical-menu/item-children.component.html","../../../projects/ng0/components/vertical-menu/item.component.ts","../../../projects/ng0/components/vertical-menu/item.component.html","../../../projects/ng0/components/vertical-menu/item-content.component.ts","../../../projects/ng0/components/vertical-menu/item-content.component.html","../../../projects/ng0/components/vertical-menu/vertical-menu.module.ts","../../../projects/ng0/components/vertical-menu/bootkit-ng0-components-vertical-menu.ts"],"sourcesContent":["import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[ng0VerticalMenuArrow], [ng0VmenuArrow]',\r\n exportAs: 'ng0VerticalMenuArrow',\r\n standalone: true,\r\n})\r\nexport class VerticalMenuArrowDirective {\r\n constructor(public readonly templateRef: TemplateRef<any>) { }\r\n}\r\n","import { Component, ContentChild, input } from '@angular/core';\r\nimport { VerticalMenuArrowDirective } from './item-arrow.directive';\r\n\r\n@Component({\r\n selector: 'ng0-vertical-menu, ng0-vmenu',\r\n templateUrl: './vertical-menu.component.html',\r\n standalone: true,\r\n styles: `:host {display: block}`,\r\n imports: [],\r\n})\r\nexport class VerticalMenuComponent {\r\n public toggleByItemClick = input(true);\r\n \r\n public collapseTimings = input<string | number>('0.15s');\r\n\r\n @ContentChild(VerticalMenuArrowDirective, { descendants: false }) public readonly arrowDirective?: VerticalMenuArrowDirective;\r\n\r\n constructor() {\r\n }\r\n}\r\n\r\n","<ng-content></ng-content>","import { Component, ContentChild, model } from '@angular/core';\r\nimport { VerticalMenuItemComponent } from './item.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { VerticalMenuComponent } from './vertical-menu.component';\r\nimport { CollapseDirective } from '@bootkit/ng0/components/collapse';\r\n\r\n@Component({\r\n selector: 'ng0-vertical-menu-item-children, ng0-vmenu-item-children, ng0-vmenu-children',\r\n templateUrl: './item-children.component.html',\r\n exportAs: 'ng0VmenuItemChildren',\r\n standalone: true,\r\n styles: `:host {display: block}`,\r\n imports: [CommonModule, CollapseDirective],\r\n host: {\r\n '[class.isc-expanded]': 'expanded()'\r\n }\r\n})\r\nexport class VerticalMenuItemChildrenComponent {\r\n public expanded = model(false);\r\n\r\n @ContentChild(VerticalMenuItemComponent, { descendants: false }) protected _items?: VerticalMenuItemComponent;\r\n\r\n constructor(public menuItem: VerticalMenuItemComponent, protected _menu: VerticalMenuComponent,) { }\r\n}\r\n","<div ng0Collapse\r\n [collapsed]=\"!expanded()\"\r\n [timings]=\"_menu.collapseTimings()\">\r\n <ng-content></ng-content>\r\n</div>\r\n","import { Component, ContentChild, ElementRef, HostBinding, input, model, Renderer2 } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { VerticalMenuItemChildrenComponent } from './item-children.component';\r\nimport { VerticalMenuComponent } from './vertical-menu.component';\r\n\r\n@Component({\r\n selector: 'ng0-vertical-menu-item, ng0-vmenu-item',\r\n templateUrl: './item.component.html',\r\n standalone: true,\r\n styles: `:host {display: block}`,\r\n imports: [CommonModule],\r\n host: {\r\n }\r\n})\r\nexport class VerticalMenuItemComponent {\r\n public toggleByClick = input(true);\r\n public active = model(false);\r\n\r\n @ContentChild(VerticalMenuItemChildrenComponent, { descendants: false }) public readonly children?: VerticalMenuItemChildrenComponent;\r\n\r\n constructor(private _renderer: Renderer2, private _el: ElementRef, protected _menu: VerticalMenuComponent) {\r\n }\r\n\r\n @HostBinding('class.ng0-has-children')\r\n public get hasChildren(): boolean {\r\n return this.children != null;\r\n }\r\n\r\n @HostBinding('class.ng0-expanded')\r\n public get isExpanded(): boolean {\r\n return this.children != null && this.children.expanded();\r\n }\r\n}\r\n\r\n","<ng-content></ng-content>","import { Component, ElementRef, HostListener, Renderer2 } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { VerticalMenuComponent } from './vertical-menu.component';\r\nimport { VerticalMenuItemComponent } from './item.component';\r\n\r\n@Component({\r\n selector: 'ng0-vertical-menu-item-content, ng0-vmenu-item-content, ng0-vmenu-content',\r\n templateUrl: './item-content.component.html',\r\n standalone: true,\r\n styles: `:host {display: flex; align-items: center; }`,\r\n imports: [CommonModule]\r\n})\r\nexport class VerticalMenuItemContentComponent {\r\n constructor(\r\n public menuItem: VerticalMenuItemComponent,\r\n private _renderer: Renderer2,\r\n private _el: ElementRef,\r\n protected _menu: VerticalMenuComponent,\r\n ) {\r\n // _renderer.addClass(_el.nativeElement, '')\r\n }\r\n\r\n @HostListener('click', ['$event'])\r\n private _onClick() {\r\n if (this._menu.toggleByItemClick() && this.menuItem.hasChildren) {\r\n this.menuItem.children?.expanded.update(x => !x);\r\n }\r\n }\r\n}\r\n","<ng-content></ng-content>\r\n\r\n@defer {\r\n@if(_menu.arrowDirective && menuItem.hasChildren) {\r\n<ng-container *ngTemplateOutlet=\"_menu.arrowDirective?.templateRef!; context: {$implicit: menuItem}\"></ng-container>\r\n}\r\n}","import { NgModule } from '@angular/core';\r\nimport { VerticalMenuItemComponent } from './item.component';\r\nimport { VerticalMenuComponent } from './vertical-menu.component';\r\nimport { VerticalMenuItemChildrenComponent } from './item-children.component';\r\nimport { VerticalMenuArrowDirective } from './item-arrow.directive';\r\nimport { VerticalMenuItemContentComponent } from './item-content.component';\r\n\r\nconst items = [\r\n VerticalMenuComponent,\r\n VerticalMenuItemComponent,\r\n VerticalMenuItemChildrenComponent,\r\n VerticalMenuItemContentComponent,\r\n VerticalMenuArrowDirective,\r\n];\r\n\r\n@NgModule({\r\n imports: items,\r\n exports: items\r\n})\r\nexport class VerticalMenuModule {\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.VerticalMenuItemComponent","i2.VerticalMenuComponent","i1.VerticalMenuComponent"],"mappings":";;;;;;MAOa,0BAA0B,CAAA;AACP,IAAA,WAAA;AAA5B,IAAA,WAAA,CAA4B,WAA6B,EAAA;QAA7B,IAAW,CAAA,WAAA,GAAX,WAAW;;uGAD9B,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAA1B,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yCAAA,EAAA,QAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBALtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,yCAAyC;AACnD,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA;;;MCIY,qBAAqB,CAAA;AACzB,IAAA,iBAAiB,GAAG,KAAK,CAAC,IAAI,CAAC;AAE/B,IAAA,eAAe,GAAG,KAAK,CAAkB,OAAO,CAAC;AAE0B,IAAA,cAAc;AAEhG,IAAA,WAAA,GAAA;;uGAPW,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAKlB,0BAA0B,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECf1C,2BAAyB,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,CAAA;;2FDUZ,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAPjC,SAAS;+BACE,8BAA8B,EAAA,UAAA,EAE5B,IAAI,EAAA,OAAA,EAEP,EAAE,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA;wDAOuE,cAAc,EAAA,CAAA;sBAA/F,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,0BAA0B,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE;;;MEErD,iCAAiC,CAAA;AAKvB,IAAA,QAAA;AAA+C,IAAA,KAAA;AAJ3D,IAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC;AAE6C,IAAA,MAAM;IAEjF,WAAmB,CAAA,QAAmC,EAAY,KAA4B,EAAA;QAA3E,IAAQ,CAAA,QAAA,GAAR,QAAQ;QAAuC,IAAK,CAAA,KAAA,GAAL,KAAK;;uGAL9D,iCAAiC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,yBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,qBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAjC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iCAAiC,gaAG5B,yBAAyB,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECpB3C,+IAKA,EDOc,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,+BAAE,iBAAiB,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,SAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAKhC,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAX7C,SAAS;+BACI,8EAA8E,EAAA,QAAA,EAE9E,sBAAsB,EAAA,UAAA,EACpB,IAAI,EAAA,OAAA,EAEP,CAAC,YAAY,EAAE,iBAAiB,CAAC,EACpC,IAAA,EAAA;AACF,wBAAA,sBAAsB,EAAE;AAC3B,qBAAA,EAAA,QAAA,EAAA,+IAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA;4HAK0E,MAAM,EAAA,CAAA;sBAAhF,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,yBAAyB,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE;;;MENtD,yBAAyB,CAAA;AAMhB,IAAA,SAAA;AAA8B,IAAA,GAAA;AAA2B,IAAA,KAAA;AALtE,IAAA,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC;AAC3B,IAAA,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;AAE6D,IAAA,QAAQ;AAEjG,IAAA,WAAA,CAAoB,SAAoB,EAAU,GAAe,EAAY,KAA4B,EAAA;QAArF,IAAS,CAAA,SAAA,GAAT,SAAS;QAAqB,IAAG,CAAA,GAAA,GAAH,GAAG;QAAwB,IAAK,CAAA,KAAA,GAAL,KAAK;;AAGlF,IAAA,IACW,WAAW,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,QAAQ,IAAI,IAAI;;AAG9B,IAAA,IACW,UAAU,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;;uGAhB/C,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,qBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAzB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,EAItB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wCAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,cAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,wBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,iCAAiC,EClBjD,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,2BAAyB,+EDUb,YAAY,EAAA,CAAA,EAAA,CAAA;;2FAIX,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBATrC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wCAAwC,cAEtC,IAAI,EAAA,OAAA,EAEP,CAAC,YAAY,CAAC,QACjB,EACL,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA;wIAMwF,QAAQ,EAAA,CAAA;sBAAhG,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,iCAAiC,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE;gBAM5D,WAAW,EAAA,CAAA;sBADrB,WAAW;uBAAC,wBAAwB;gBAM1B,UAAU,EAAA,CAAA;sBADpB,WAAW;uBAAC,oBAAoB;;;MEhBtB,gCAAgC,CAAA;AAElC,IAAA,QAAA;AACC,IAAA,SAAA;AACA,IAAA,GAAA;AACE,IAAA,KAAA;AAJZ,IAAA,WAAA,CACS,QAAmC,EAClC,SAAoB,EACpB,GAAe,EACb,KAA4B,EAAA;QAH/B,IAAQ,CAAA,QAAA,GAAR,QAAQ;QACP,IAAS,CAAA,SAAA,GAAT,SAAS;QACT,IAAG,CAAA,GAAA,GAAH,GAAG;QACD,IAAK,CAAA,KAAA,GAAL,KAAK;;;IAMT,QAAQ,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;AAC/D,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;;;uGAbzC,gCAAgC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAF,yBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,qBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAhC,gCAAgC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,2EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECZ7C,sOAMC,EAAA,MAAA,EAAA,CAAA,0CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDIW,YAAY,EAAA,CAAA,EAAA,sBAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,CAAA;;2FAEX,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAP5C,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,2EAA2E,EAEzE,UAAA,EAAA,IAAI,EAEP,OAAA,EAAA,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,sOAAA,EAAA,MAAA,EAAA,CAAA,0CAAA,CAAA,EAAA;6KAaf,QAAQ,EAAA,CAAA;sBADf,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;;;AEfnC,MAAM,KAAK,GAAG;IACZ,qBAAqB;IACrB,yBAAyB;IACzB,iCAAiC;IACjC,gCAAgC;IAChC,0BAA0B;CAC3B;MAMY,kBAAkB,CAAA;uGAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAlB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAX7B,qBAAqB;YACrB,yBAAyB;YACzB,iCAAiC;YACjC,gCAAgC;AAChC,YAAA,0BAA0B,aAJ1B,qBAAqB;YACrB,yBAAyB;YACzB,iCAAiC;YACjC,gCAAgC;YAChC,0BAA0B,CAAA,EAAA,CAAA;AAOf,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAV7B,yBAAyB;YACzB,iCAAiC;YACjC,gCAAgC,CAAA,EAAA,CAAA;;2FAQrB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAJ9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,OAAO,EAAE;AACV,iBAAA;;;AClBD;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"bootkit-ng0-components-vertical-menu.mjs","sources":["../../../projects/ng0/components/vertical-menu/item-arrow.directive.ts","../../../projects/ng0/components/vertical-menu/vertical-menu.component.ts","../../../projects/ng0/components/vertical-menu/vertical-menu.component.html","../../../projects/ng0/components/vertical-menu/item-children.component.ts","../../../projects/ng0/components/vertical-menu/item-children.component.html","../../../projects/ng0/components/vertical-menu/item.component.ts","../../../projects/ng0/components/vertical-menu/item.component.html","../../../projects/ng0/components/vertical-menu/item-content.component.ts","../../../projects/ng0/components/vertical-menu/item-content.component.html","../../../projects/ng0/components/vertical-menu/vertical-menu.module.ts","../../../projects/ng0/components/vertical-menu/bootkit-ng0-components-vertical-menu.ts"],"sourcesContent":["import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[ng0VerticalMenuArrow], [ng0VmenuArrow]',\r\n exportAs: 'ng0VerticalMenuArrow',\r\n standalone: true,\r\n})\r\nexport class VerticalMenuArrowDirective {\r\n constructor(public readonly templateRef: TemplateRef<any>) { }\r\n}\r\n","import { Component, ContentChild, input } from '@angular/core';\r\nimport { VerticalMenuArrowDirective } from './item-arrow.directive';\r\n\r\n@Component({\r\n selector: 'ng0-vertical-menu, ng0-vmenu',\r\n templateUrl: './vertical-menu.component.html',\r\n standalone: true,\r\n styles: `:host {display: block}`,\r\n imports: [],\r\n})\r\nexport class VerticalMenuComponent {\r\n public toggleByItemClick = input(true);\r\n \r\n public collapseTimings = input<string | number>('0.15s');\r\n\r\n @ContentChild(VerticalMenuArrowDirective, { descendants: false }) public readonly arrowDirective?: VerticalMenuArrowDirective;\r\n\r\n constructor() {\r\n }\r\n}\r\n\r\n","<ng-content></ng-content>","import { Component, ContentChild, model } from '@angular/core';\r\nimport { VerticalMenuItemComponent } from './item.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { VerticalMenuComponent } from './vertical-menu.component';\r\nimport { CollapseDirective } from '@bootkit/ng0/components/collapse';\r\n\r\n@Component({\r\n selector: 'ng0-vertical-menu-item-children, ng0-vmenu-item-children, ng0-vmenu-children',\r\n templateUrl: './item-children.component.html',\r\n exportAs: 'ng0VmenuItemChildren',\r\n standalone: true,\r\n styles: `:host {display: block}`,\r\n imports: [CommonModule, CollapseDirective],\r\n host: {\r\n '[class.isc-expanded]': 'expanded()'\r\n }\r\n})\r\nexport class VerticalMenuItemChildrenComponent {\r\n public expanded = model(false);\r\n\r\n @ContentChild(VerticalMenuItemComponent, { descendants: false }) protected _items?: VerticalMenuItemComponent;\r\n\r\n constructor(public menuItem: VerticalMenuItemComponent, protected _menu: VerticalMenuComponent,) { }\r\n}\r\n","<div ng0Collapse\r\n [collapsed]=\"!expanded()\"\r\n [timings]=\"_menu.collapseTimings()\">\r\n <ng-content></ng-content>\r\n</div>\r\n","import { Component, ContentChild, ElementRef, HostBinding, input, model, Renderer2 } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { VerticalMenuItemChildrenComponent } from './item-children.component';\r\nimport { VerticalMenuComponent } from './vertical-menu.component';\r\n\r\n@Component({\r\n selector: 'ng0-vertical-menu-item, ng0-vmenu-item',\r\n templateUrl: './item.component.html',\r\n standalone: true,\r\n styles: `:host {display: block}`,\r\n imports: [CommonModule],\r\n host: {\r\n }\r\n})\r\nexport class VerticalMenuItemComponent {\r\n public toggleByClick = input(true);\r\n public active = model(false);\r\n\r\n @ContentChild(VerticalMenuItemChildrenComponent, { descendants: false }) public readonly children?: VerticalMenuItemChildrenComponent;\r\n\r\n constructor(private _renderer: Renderer2, private _el: ElementRef, protected _menu: VerticalMenuComponent) {\r\n }\r\n\r\n @HostBinding('class.ng0-has-children')\r\n public get hasChildren(): boolean {\r\n return this.children != null;\r\n }\r\n\r\n @HostBinding('class.ng0-expanded')\r\n public get isExpanded(): boolean {\r\n return this.children != null && this.children.expanded();\r\n }\r\n}\r\n\r\n","<ng-content></ng-content>","import { Component, ElementRef, HostListener, Renderer2 } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { VerticalMenuComponent } from './vertical-menu.component';\r\nimport { VerticalMenuItemComponent } from './item.component';\r\n\r\n@Component({\r\n selector: 'ng0-vertical-menu-item-content, ng0-vmenu-item-content, ng0-vmenu-content',\r\n templateUrl: './item-content.component.html',\r\n standalone: true,\r\n styles: `:host {display: flex; align-items: center; }`,\r\n imports: [CommonModule]\r\n})\r\nexport class VerticalMenuItemContentComponent {\r\n constructor(\r\n public menuItem: VerticalMenuItemComponent,\r\n private _renderer: Renderer2,\r\n private _el: ElementRef,\r\n protected _menu: VerticalMenuComponent,\r\n ) {\r\n // _renderer.addClass(_el.nativeElement, '')\r\n }\r\n\r\n @HostListener('click', ['$event'])\r\n private _onClick() {\r\n if (this._menu.toggleByItemClick() && this.menuItem.hasChildren) {\r\n this.menuItem.children?.expanded.update(x => !x);\r\n }\r\n }\r\n}\r\n","<ng-content></ng-content>\r\n\r\n@defer {\r\n@if(_menu.arrowDirective && menuItem.hasChildren) {\r\n<ng-container *ngTemplateOutlet=\"_menu.arrowDirective?.templateRef!; context: {$implicit: menuItem}\"></ng-container>\r\n}\r\n}","import { NgModule } from '@angular/core';\r\nimport { VerticalMenuItemComponent } from './item.component';\r\nimport { VerticalMenuComponent } from './vertical-menu.component';\r\nimport { VerticalMenuItemChildrenComponent } from './item-children.component';\r\nimport { VerticalMenuArrowDirective } from './item-arrow.directive';\r\nimport { VerticalMenuItemContentComponent } from './item-content.component';\r\n\r\nconst items = [\r\n VerticalMenuComponent,\r\n VerticalMenuItemComponent,\r\n VerticalMenuItemChildrenComponent,\r\n VerticalMenuItemContentComponent,\r\n VerticalMenuArrowDirective,\r\n];\r\n\r\n@NgModule({\r\n imports: items,\r\n exports: items\r\n})\r\nexport class VerticalMenuModule {\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.VerticalMenuItemComponent","i2.VerticalMenuComponent","i1.VerticalMenuComponent"],"mappings":";;;;;;MAOa,0BAA0B,CAAA;AACP,IAAA,WAAA;AAA5B,IAAA,WAAA,CAA4B,WAA6B,EAAA;QAA7B,IAAA,CAAA,WAAW,GAAX,WAAW;;uGAD9B,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAA1B,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yCAAA,EAAA,QAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBALtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,yCAAyC;AACnD,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA;;;MCIY,qBAAqB,CAAA;AACzB,IAAA,iBAAiB,GAAG,KAAK,CAAC,IAAI,6DAAC;AAE/B,IAAA,eAAe,GAAG,KAAK,CAAkB,OAAO,2DAAC;AAE0B,IAAA,cAAc;AAEhG,IAAA,WAAA,GAAA;;uGAPW,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAKlB,0BAA0B,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECf1C,2BAAyB,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,CAAA;;2FDUZ,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAPjC,SAAS;+BACE,8BAA8B,EAAA,UAAA,EAE5B,IAAI,EAAA,OAAA,EAEP,EAAE,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA;wDAOuE,cAAc,EAAA,CAAA;sBAA/F,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,0BAA0B,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE;;;MEErD,iCAAiC,CAAA;AAKvB,IAAA,QAAA;AAA+C,IAAA,KAAA;AAJ3D,IAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,oDAAC;AAE6C,IAAA,MAAM;IAEjF,WAAA,CAAmB,QAAmC,EAAY,KAA4B,EAAA;QAA3E,IAAA,CAAA,QAAQ,GAAR,QAAQ;QAAuC,IAAA,CAAA,KAAK,GAAL,KAAK;;uGAL9D,iCAAiC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,yBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,qBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAjC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iCAAiC,gaAG5B,yBAAyB,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECpB3C,+IAKA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDOc,YAAY,+BAAE,iBAAiB,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,SAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAKhC,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAX7C,SAAS;+BACI,8EAA8E,EAAA,QAAA,EAE9E,sBAAsB,EAAA,UAAA,EACpB,IAAI,EAAA,OAAA,EAEP,CAAC,YAAY,EAAE,iBAAiB,CAAC,EAAA,IAAA,EACpC;AACF,wBAAA,sBAAsB,EAAE;AAC3B,qBAAA,EAAA,QAAA,EAAA,+IAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA;4HAK0E,MAAM,EAAA,CAAA;sBAAhF,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,yBAAyB,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE;;;MENtD,yBAAyB,CAAA;AAMhB,IAAA,SAAA;AAA8B,IAAA,GAAA;AAA2B,IAAA,KAAA;AALtE,IAAA,aAAa,GAAG,KAAK,CAAC,IAAI,yDAAC;AAC3B,IAAA,MAAM,GAAG,KAAK,CAAC,KAAK,kDAAC;AAE6D,IAAA,QAAQ;AAEjG,IAAA,WAAA,CAAoB,SAAoB,EAAU,GAAe,EAAY,KAA4B,EAAA;QAArF,IAAA,CAAA,SAAS,GAAT,SAAS;QAAqB,IAAA,CAAA,GAAG,GAAH,GAAG;QAAwB,IAAA,CAAA,KAAK,GAAL,KAAK;;AAGlF,IAAA,IACW,WAAW,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,QAAQ,IAAI,IAAI;;AAG9B,IAAA,IACW,UAAU,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;;uGAhB/C,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,qBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAzB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wCAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,cAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,wBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAItB,iCAAiC,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EClBjD,2BAAyB,+EDUb,YAAY,EAAA,CAAA,EAAA,CAAA;;2FAIX,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBATrC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wCAAwC,cAEtC,IAAI,EAAA,OAAA,EAEP,CAAC,YAAY,CAAC,QACjB,EACL,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA;wIAMwF,QAAQ,EAAA,CAAA;sBAAhG,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,iCAAiC,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE;gBAM5D,WAAW,EAAA,CAAA;sBADrB,WAAW;uBAAC,wBAAwB;gBAM1B,UAAU,EAAA,CAAA;sBADpB,WAAW;uBAAC,oBAAoB;;;MEhBtB,gCAAgC,CAAA;AAElC,IAAA,QAAA;AACC,IAAA,SAAA;AACA,IAAA,GAAA;AACE,IAAA,KAAA;AAJZ,IAAA,WAAA,CACS,QAAmC,EAClC,SAAoB,EACpB,GAAe,EACb,KAA4B,EAAA;QAH/B,IAAA,CAAA,QAAQ,GAAR,QAAQ;QACP,IAAA,CAAA,SAAS,GAAT,SAAS;QACT,IAAA,CAAA,GAAG,GAAH,GAAG;QACD,IAAA,CAAA,KAAK,GAAL,KAAK;;;IAMT,QAAQ,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;AAC/D,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;;;uGAbzC,gCAAgC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAF,yBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,qBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAhC,gCAAgC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,2EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECZ7C,sOAMC,EAAA,MAAA,EAAA,CAAA,0CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDIW,YAAY,EAAA,CAAA,EAAA,sBAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,CAAA;;2FAEX,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAP5C,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,2EAA2E,EAAA,UAAA,EAEzE,IAAI,EAAA,OAAA,EAEP,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,sOAAA,EAAA,MAAA,EAAA,CAAA,0CAAA,CAAA,EAAA;6KAaf,QAAQ,EAAA,CAAA;sBADf,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;;;AEfnC,MAAM,KAAK,GAAG;IACZ,qBAAqB;IACrB,yBAAyB;IACzB,iCAAiC;IACjC,gCAAgC;IAChC,0BAA0B;CAC3B;MAMY,kBAAkB,CAAA;uGAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAlB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAX7B,qBAAqB;YACrB,yBAAyB;YACzB,iCAAiC;YACjC,gCAAgC;AAChC,YAAA,0BAA0B,aAJ1B,qBAAqB;YACrB,yBAAyB;YACzB,iCAAiC;YACjC,gCAAgC;YAChC,0BAA0B,CAAA,EAAA,CAAA;AAOf,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAV7B,yBAAyB;YACzB,iCAAiC;YACjC,gCAAgC,CAAA,EAAA,CAAA;;2FAQrB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAJ9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,OAAO,EAAE;AACV,iBAAA;;;AClBD;;AAEG;;;;"}
|
|
@@ -13,9 +13,7 @@ class DataRequest {
|
|
|
13
13
|
select;
|
|
14
14
|
computeTotal;
|
|
15
15
|
constructor(options) {
|
|
16
|
-
|
|
17
|
-
this.page = { index: options.pageIndex, size: options.pageSize };
|
|
18
|
-
}
|
|
16
|
+
this.page = options?.page;
|
|
19
17
|
this.filters = options?.filters;
|
|
20
18
|
this.sort = options?.sort;
|
|
21
19
|
this.select = options?.select;
|
|
@@ -73,6 +71,10 @@ class AsyncDataSource extends DataSource {
|
|
|
73
71
|
}
|
|
74
72
|
}
|
|
75
73
|
|
|
74
|
+
/**
|
|
75
|
+
* An implementation of DataSource that uses an array as the data source.
|
|
76
|
+
* This is useful for static data or when you want to manage the data manually.
|
|
77
|
+
*/
|
|
76
78
|
class ArrayDataSource extends DataSource {
|
|
77
79
|
items;
|
|
78
80
|
_insertSubject = new Subject();
|
|
@@ -86,9 +88,26 @@ class ArrayDataSource extends DataSource {
|
|
|
86
88
|
this.items = items;
|
|
87
89
|
}
|
|
88
90
|
load(request) {
|
|
89
|
-
let
|
|
90
|
-
|
|
91
|
-
|
|
91
|
+
let items;
|
|
92
|
+
if (request.page) {
|
|
93
|
+
let startItemIndex = (request.page.zeroBased ? request.page.index : request.page.index - 1) * request.page.size;
|
|
94
|
+
items = this.items.slice(startItemIndex, startItemIndex + request.page.size);
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
items = [...this.items];
|
|
98
|
+
}
|
|
99
|
+
if (request.filters) {
|
|
100
|
+
// Apply filters
|
|
101
|
+
}
|
|
102
|
+
if (request.sort) {
|
|
103
|
+
// Apply sorting
|
|
104
|
+
}
|
|
105
|
+
let result = new DataResult(items, this.items.length);
|
|
106
|
+
// this._loading = true;
|
|
107
|
+
// return of(result).pipe(
|
|
108
|
+
// delay(5000),
|
|
109
|
+
// tap(x => this._loading = false)
|
|
110
|
+
// );
|
|
92
111
|
return of(result);
|
|
93
112
|
}
|
|
94
113
|
remove(item) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootkit-ng0-data.mjs","sources":["../../../projects/ng0/data/data-request.ts","../../../projects/ng0/data/data-result.ts","../../../projects/ng0/data/data-source.ts","../../../projects/ng0/data/async-data-source.ts","../../../projects/ng0/data/array-data-source.ts","../../../projects/ng0/data/data-result-operator.ts","../../../projects/ng0/data/bootkit-ng0-data.ts"],"sourcesContent":["/**\r\n * DataRequest class represents a request for data with pagination, filtering, sorting, and field selection.\r\n * It is used to encapsulate the parameters needed to fetch data from a data source.\r\n * It can be used with various data sources such as HTTP services, in-memory arrays, etc.\r\n * \r\n */\r\nexport class DataRequest {\r\n public page?: DataRequestPage;\r\n public filters?: DataRequestFilter[];\r\n public sort?: DataRequestSort;\r\n public select?: string[];\r\n public computeTotal?: boolean;\r\n\r\n constructor(options?: {\r\n pageIndex?: number,\r\n pageSize?: number,\r\n filters?: DataRequestFilter[],\r\n sort?: DataRequestSort,\r\n select?: string[],\r\n computeTotal?: boolean,\r\n }) {\r\n if (Number.isInteger(options?.pageIndex) && Number.isInteger(options?.pageSize)) {\r\n this.page = { index: options!.pageIndex!, size: options!.pageSize! };\r\n }\r\n\r\n this.filters = options?.filters;\r\n this.sort = options?.sort;\r\n this.select = options?.select;\r\n this.computeTotal = options?.computeTotal;\r\n }\r\n}\r\n\r\n/**\r\n * Represents a page in a DataRequest.\r\n * @property index The index of the page (0-based).\r\n * @property size The size of the page (number of items per page).\r\n */\r\nexport interface DataRequestPage {\r\n index: number;\r\n size: number;\r\n}\r\n\r\n/**\r\n * Represents a sorting option in a DataRequest.\r\n * @property field The field to sort by.\r\n * @property asc Whether to sort in ascending order.\r\n */\r\nexport interface DataRequestSort {\r\n field: string;\r\n asc?: boolean\r\n}\r\n\r\n/**\r\n * Represents a filter in a DataRequest.\r\n * @property field The field to filter by.\r\n * @property value The value to filter by.\r\n * @property operator The operator to use for filtering.\r\n */\r\nexport interface DataRequestFilter {\r\n field: string;\r\n value?: string;\r\n operator: any;\r\n}\r\n\r\n// export enum DataRequestFilterOperator {\r\n// EQ = 0,\r\n// NEQ = 1,\r\n// LT = 2,\r\n// LTE = 3,\r\n// GT = 4,\r\n// GTE = 5,\r\n// LI = 6,\r\n// SW = 7,\r\n// }\r\n","import { DataRequest } from \"./data-request\";\r\n\r\nexport class DataResult<T = any> {\r\n constructor(\r\n public readonly data: T[],\r\n public readonly total?: number) {\r\n }\r\n}\r\n","import { Observable, Subject } from \"rxjs\";\r\nimport { DataRequest } from \"./data-request\";\r\nimport { DataResult } from \"./data-result\";\r\n\r\nexport abstract class DataSource<T=any> {\r\n protected _loading = false;\r\n\r\n constructor() {\r\n }\r\n\r\n get loading() { return this._loading; }\r\n protected setLoading(value: boolean) {\r\n this._loading = value;\r\n }\r\n\r\n // get data() { return this._data; }\r\n // protected set data(value: any[] | undefined) {\r\n // this._data = value;\r\n // }\r\n\r\n // get totallRecords() { return this._totallRecords; }\r\n // protected set totallRecords(value: number | undefined) {\r\n // this._totallRecords= value;\r\n // }\r\n\r\n abstract load(request: DataRequest): Observable<DataResult>;\r\n}\r\n","import { Observable, tap } from \"rxjs\";\r\nimport { DataRequest } from \"./data-request\";\r\nimport { DataResult } from \"./data-result\";\r\nimport { DataSource } from \"./data-source\";\r\n\r\n/**\r\n * DataLoader is a function that takes a DataRequest and returns an Observable of DataResult.\r\n * It is used by AsyncDataSource to load data asynchronously.\r\n */\r\nexport type DataLoader = (request: DataRequest) => Observable<DataResult>;\r\n\r\n\r\n/**\r\n * AsyncDataSource is a DataSource that loads data asynchronously using a DataLoader function.\r\n * It is used to fetch data from a remote source, such as an API.\r\n */\r\nexport class AsyncDataSource extends DataSource {\r\n constructor(private readonly loader: DataLoader) {\r\n super();\r\n\r\n if (typeof loader !== 'function') {\r\n throw 'Invalid data loader';\r\n }\r\n }\r\n\r\n load(request: DataRequest) {\r\n this.setLoading(true);\r\n\r\n return this.loader(request).pipe(\r\n tap(res => {\r\n this.setLoading(false);\r\n })\r\n )\r\n }\r\n}\r\n","import { of, Subject } from \"rxjs\";\r\nimport { DataRequest } from \"./data-request\";\r\nimport { DataResult } from \"./data-result\";\r\nimport { DataSource } from \"./data-source\";\r\n\r\nexport class ArrayDataSource extends DataSource {\r\n private _insertSubject = new Subject<{ items: any[] }>();\r\n private _updateSubject = new Subject<{ item: any, index: number }>();\r\n private _removeSubject = new Subject<{ item: any, index: number }>();\r\n\r\n public readonly inserted = this._insertSubject.asObservable();\r\n public readonly removed = this._removeSubject.asObservable();\r\n public readonly updated = this._updateSubject.asObservable();\r\n\r\n constructor(private items: any[]) {\r\n super();\r\n }\r\n\r\n load(request: DataRequest) {\r\n let startItem = request.page!.index * request.page!.size;\r\n let resultArray = this.items.slice(startItem, startItem + request.page!.size);\r\n let result = new DataResult(resultArray, this.items.length);\r\n return of(result);\r\n }\r\n\r\n public remove(item: any) {\r\n let index = this.items!.findIndex(x => x === item);\r\n if (index > -1) {\r\n this.items.splice(index, 1);\r\n this._removeSubject.next({ item, index });\r\n }\r\n }\r\n\r\n public insert(...items: any[]) {\r\n this.items.push(items);\r\n this._insertSubject.next({ items });\r\n }\r\n\r\n // public set(items: any[]) {\r\n // this.items = items;\r\n // // this._removeSubject.next(0);\r\n // }\r\n}\r\n","import { Observable } from \"rxjs\";\r\nimport { DataResult } from \"./data-result\";\r\nimport { DataRequest } from \"./data-request\";\r\n\r\nexport function toDataResult<T=any>(dr: DataRequest) {\r\n return function (source: Observable<any>): Observable<DataResult<T>> {\r\n return new Observable(subscriber => {\r\n source.subscribe({\r\n next(event) {\r\n subscriber.next(new DataResult(event));\r\n },\r\n error(error) {\r\n subscriber.error(error);\r\n },\r\n complete() {\r\n subscriber.complete();\r\n }\r\n });\r\n });\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bootkit-ng0-data.mjs","sources":["../../../projects/ng0/data/data-request.ts","../../../projects/ng0/data/data-result.ts","../../../projects/ng0/data/data-source.ts","../../../projects/ng0/data/async-data-source.ts","../../../projects/ng0/data/array-data-source.ts","../../../projects/ng0/data/data-result-operator.ts","../../../projects/ng0/data/bootkit-ng0-data.ts"],"sourcesContent":["/**\r\n * DataRequest class represents a request for data with pagination, filtering, sorting, and field selection.\r\n * It is used to encapsulate the parameters needed to fetch data from a data source.\r\n * It can be used with various data sources such as HTTP services, in-memory arrays, etc.\r\n * \r\n */\r\nexport class DataRequest {\r\n public page?: DataRequestPage;\r\n public filters?: DataRequestFilter[];\r\n public sort?: DataRequestSort;\r\n public select?: string[];\r\n public computeTotal?: boolean;\r\n\r\n constructor(options?: {\r\n page?: DataRequestPage,\r\n filters?: DataRequestFilter[],\r\n sort?: DataRequestSort,\r\n select?: string[],\r\n computeTotal?: boolean,\r\n }) {\r\n this.page = options?.page;\r\n this.filters = options?.filters;\r\n this.sort = options?.sort;\r\n this.select = options?.select;\r\n this.computeTotal = options?.computeTotal;\r\n }\r\n}\r\n\r\n/**\r\n * Represents a data request page.\r\n */\r\nexport interface DataRequestPage {\r\n /**\r\n * Index of the page.\r\n * If zeroBased is true, the index starts from 0.\r\n */\r\n index: number;\r\n\r\n /**\r\n * Size of the page, i.e., number of items in each page.\r\n */\r\n size: number;\r\n\r\n /**\r\n * Indicates if the index is zero-based.\r\n */\r\n zeroBased: boolean;\r\n}\r\n\r\n/**\r\n * Represents a sorting option in a DataRequest.\r\n * @property field The field to sort by.\r\n * @property asc Whether to sort in ascending order.\r\n */\r\nexport interface DataRequestSort {\r\n field: string;\r\n asc?: boolean\r\n}\r\n\r\n/**\r\n * Represents a filter in a DataRequest.\r\n * @property field The field to filter by.\r\n * @property value The value to filter by.\r\n * @property operator The operator to use for filtering.\r\n */\r\nexport interface DataRequestFilter {\r\n field: string;\r\n value?: string;\r\n operator: any;\r\n}\r\n\r\n// export enum DataRequestFilterOperator {\r\n// EQ = 0,\r\n// NEQ = 1,\r\n// LT = 2,\r\n// LTE = 3,\r\n// GT = 4,\r\n// GTE = 5,\r\n// LI = 6,\r\n// SW = 7,\r\n// }\r\n","export class DataResult<T = any> {\r\n constructor(\r\n public readonly data: T[],\r\n public readonly total?: number) {\r\n }\r\n}\r\n","import { Observable, Subject } from \"rxjs\";\r\nimport { DataRequest } from \"./data-request\";\r\nimport { DataResult } from \"./data-result\";\r\n\r\nexport abstract class DataSource<T=any> {\r\n protected _loading = false;\r\n\r\n constructor() {\r\n }\r\n\r\n get loading() { return this._loading; }\r\n protected setLoading(value: boolean) {\r\n this._loading = value;\r\n }\r\n\r\n // get data() { return this._data; }\r\n // protected set data(value: any[] | undefined) {\r\n // this._data = value;\r\n // }\r\n\r\n // get totallRecords() { return this._totallRecords; }\r\n // protected set totallRecords(value: number | undefined) {\r\n // this._totallRecords= value;\r\n // }\r\n\r\n abstract load(request: DataRequest): Observable<DataResult>;\r\n}\r\n","import { Observable, tap } from \"rxjs\";\r\nimport { DataRequest } from \"./data-request\";\r\nimport { DataResult } from \"./data-result\";\r\nimport { DataSource } from \"./data-source\";\r\n\r\n/**\r\n * DataLoader is a function that takes a DataRequest and returns an Observable of DataResult.\r\n * It is used by AsyncDataSource to load data asynchronously.\r\n */\r\nexport type DataLoader = (request: DataRequest) => Observable<DataResult>;\r\n\r\n\r\n/**\r\n * AsyncDataSource is a DataSource that loads data asynchronously using a DataLoader function.\r\n * It is used to fetch data from a remote source, such as an API.\r\n */\r\nexport class AsyncDataSource extends DataSource {\r\n constructor(private readonly loader: DataLoader) {\r\n super();\r\n\r\n if (typeof loader !== 'function') {\r\n throw 'Invalid data loader';\r\n }\r\n }\r\n\r\n load(request: DataRequest) {\r\n this.setLoading(true);\r\n\r\n return this.loader(request).pipe(\r\n tap(res => {\r\n this.setLoading(false);\r\n })\r\n )\r\n }\r\n}\r\n","import { delay, of, Subject, tap } from \"rxjs\";\r\nimport { DataRequest } from \"./data-request\";\r\nimport { DataResult } from \"./data-result\";\r\nimport { DataSource } from \"./data-source\";\r\n\r\n/**\r\n * An implementation of DataSource that uses an array as the data source.\r\n * This is useful for static data or when you want to manage the data manually.\r\n */\r\nexport class ArrayDataSource extends DataSource {\r\n private _insertSubject = new Subject<{ items: any[] }>();\r\n private _updateSubject = new Subject<{ item: any, index: number }>();\r\n private _removeSubject = new Subject<{ item: any, index: number }>();\r\n\r\n public readonly inserted = this._insertSubject.asObservable();\r\n public readonly removed = this._removeSubject.asObservable();\r\n public readonly updated = this._updateSubject.asObservable();\r\n\r\n constructor(private items: any[]) {\r\n super();\r\n }\r\n\r\n load(request: DataRequest) {\r\n let items: Array<any>;\r\n\r\n if (request.page) {\r\n let startItemIndex = (request.page.zeroBased ? request.page.index : request.page.index - 1) * request.page.size;\r\n items = this.items.slice(startItemIndex, startItemIndex + request.page.size);\r\n } else {\r\n items = [...this.items];\r\n }\r\n\r\n if (request.filters) {\r\n // Apply filters\r\n }\r\n\r\n if (request.sort) {\r\n // Apply sorting\r\n }\r\n\r\n let result = new DataResult(items, this.items.length);\r\n\r\n // this._loading = true;\r\n // return of(result).pipe(\r\n // delay(5000),\r\n // tap(x => this._loading = false)\r\n // );\r\n return of(result);\r\n }\r\n\r\n public remove(item: any) {\r\n let index = this.items!.findIndex(x => x === item);\r\n if (index > -1) {\r\n this.items.splice(index, 1);\r\n this._removeSubject.next({ item, index });\r\n }\r\n }\r\n\r\n public insert(...items: any[]) {\r\n this.items.push(items);\r\n this._insertSubject.next({ items });\r\n }\r\n\r\n // public set(items: any[]) {\r\n // this.items = items;\r\n // // this._removeSubject.next(0);\r\n // }\r\n}\r\n","import { Observable } from \"rxjs\";\r\nimport { DataResult } from \"./data-result\";\r\nimport { DataRequest } from \"./data-request\";\r\n\r\nexport function toDataResult<T=any>(dr: DataRequest) {\r\n return function (source: Observable<any>): Observable<DataResult<T>> {\r\n return new Observable(subscriber => {\r\n source.subscribe({\r\n next(event) {\r\n subscriber.next(new DataResult(event));\r\n },\r\n error(error) {\r\n subscriber.error(error);\r\n },\r\n complete() {\r\n subscriber.complete();\r\n }\r\n });\r\n });\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;AAAA;;;;;AAKG;MACU,WAAW,CAAA;AACb,IAAA,IAAI;AACJ,IAAA,OAAO;AACP,IAAA,IAAI;AACJ,IAAA,MAAM;AACN,IAAA,YAAY;AAEnB,IAAA,WAAA,CAAY,OAMX,EAAA;AACG,QAAA,IAAI,CAAC,IAAI,GAAG,OAAO,EAAE,IAAI;AACzB,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,EAAE,OAAO;AAC/B,QAAA,IAAI,CAAC,IAAI,GAAG,OAAO,EAAE,IAAI;AACzB,QAAA,IAAI,CAAC,MAAM,GAAG,OAAO,EAAE,MAAM;AAC7B,QAAA,IAAI,CAAC,YAAY,GAAG,OAAO,EAAE,YAAY;;AAEhD;AA6CD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;MChFa,UAAU,CAAA;AAEH,IAAA,IAAA;AACA,IAAA,KAAA;IAFlB,WAAA,CACkB,IAAS,EACT,KAAc,EAAA;QADd,IAAA,CAAA,IAAI,GAAJ,IAAI;QACJ,IAAA,CAAA,KAAK,GAAL,KAAK;;AAExB;;MCDqB,UAAU,CAAA;IACpB,QAAQ,GAAG,KAAK;AAE1B,IAAA,WAAA,GAAA;;IAGA,IAAI,OAAO,KAAK,OAAO,IAAI,CAAC,QAAQ,CAAC;AAC3B,IAAA,UAAU,CAAC,KAAc,EAAA;AACjC,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;;AAcxB;;ACdD;;;AAGG;AACG,MAAO,eAAgB,SAAQ,UAAU,CAAA;AAChB,IAAA,MAAA;AAA7B,IAAA,WAAA,CAA6B,MAAkB,EAAA;AAC7C,QAAA,KAAK,EAAE;QADoB,IAAA,CAAA,MAAM,GAAN,MAAM;AAGjC,QAAA,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE;AAChC,YAAA,MAAM,qBAAqB;;;AAI/B,IAAA,IAAI,CAAC,OAAoB,EAAA;AACvB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;AAErB,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAC9B,GAAG,CAAC,GAAG,IAAG;AACR,YAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;SACvB,CAAC,CACH;;AAEJ;;AC7BD;;;AAGG;AACG,MAAO,eAAgB,SAAQ,UAAU,CAAA;AASzB,IAAA,KAAA;AARZ,IAAA,cAAc,GAAG,IAAI,OAAO,EAAoB;AAChD,IAAA,cAAc,GAAG,IAAI,OAAO,EAAgC;AAC5D,IAAA,cAAc,GAAG,IAAI,OAAO,EAAgC;AAEpD,IAAA,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;AAC7C,IAAA,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;AAC5C,IAAA,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;AAE5D,IAAA,WAAA,CAAoB,KAAY,EAAA;AAC9B,QAAA,KAAK,EAAE;QADW,IAAA,CAAA,KAAK,GAAL,KAAK;;AAIzB,IAAA,IAAI,CAAC,OAAoB,EAAA;AACvB,QAAA,IAAI,KAAiB;AAErB,QAAA,IAAI,OAAO,CAAC,IAAI,EAAE;AAChB,YAAA,IAAI,cAAc,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI;AAC/G,YAAA,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;;aACvE;AACL,YAAA,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;;AAGzB,QAAA,IAAI,OAAO,CAAC,OAAO,EAAE;;;AAIrB,QAAA,IAAI,OAAO,CAAC,IAAI,EAAE;;;AAIlB,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;;;;;;AAOrD,QAAA,OAAO,EAAE,CAAC,MAAM,CAAC;;AAGZ,IAAA,MAAM,CAAC,IAAS,EAAA;AACrB,QAAA,IAAI,KAAK,GAAG,IAAI,CAAC,KAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;AAClD,QAAA,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;YACd,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YAC3B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;;;IAItC,MAAM,CAAC,GAAG,KAAY,EAAA;AAC3B,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;QACtB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC;;AAOtC;;AC/DK,SAAU,YAAY,CAAQ,EAAe,EAAA;AACjD,IAAA,OAAO,UAAU,MAAuB,EAAA;AACtC,QAAA,OAAO,IAAI,UAAU,CAAC,UAAU,IAAG;YACjC,MAAM,CAAC,SAAS,CAAC;AACf,gBAAA,IAAI,CAAC,KAAK,EAAA;oBACR,UAAU,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;iBACvC;AACD,gBAAA,KAAK,CAAC,KAAK,EAAA;AACT,oBAAA,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC;iBACxB;gBACD,QAAQ,GAAA;oBACN,UAAU,CAAC,QAAQ,EAAE;;AAExB,aAAA,CAAC;AACJ,SAAC,CAAC;AACJ,KAAC;AACH;;ACpBA;;AAEG;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootkit-ng0-file.mjs","sources":["../../../projects/ng0/file/utils.ts","../../../projects/ng0/file/bootkit-ng0-file.ts"],"sourcesContent":["\r\n/**\r\n * Saves a Blob as a file in the user's browser.\r\n * This function is only available in browsers that support the Blob API.\r\n * @param blob \r\n * @param fileName \r\n * \r\n */\r\nexport function saveBlob(blob: Blob, fileName: string): void {\r\n const url = window.URL.createObjectURL(blob);\r\n const a = document.createElement('a');\r\n a.href = url;\r\n a.download = fileName;\r\n document.body.appendChild(a);\r\n a.click();\r\n a.remove();\r\n window.URL.revokeObjectURL(url);\r\n}\r\n\r\n/**\r\n * Triggers downloading a file from a given URL.\r\n * @param url \r\n * @param fileName \r\n */\r\nexport function downloadFile(url: string, fileName: string): void {\r\n const a = document.createElement('a');\r\n a.href = url;\r\n a.download = fileName;\r\n document.body.appendChild(a);\r\n a.click();\r\n a.remove();\r\n}\r\n\r\n/**\r\n * Converts a File object to a Base64 string.\r\n * @param file The File object to convert.\r\n * @return A Promise that resolves to the Base64 string representation of the file.\r\n */\r\nexport function convertFileToBase64(file: File): Promise<string | ArrayBuffer | null> {\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = () => resolve(reader.result);\r\n reader.onerror = error => reject(error);\r\n });\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"AACA;;;;;;AAMG;
|
|
1
|
+
{"version":3,"file":"bootkit-ng0-file.mjs","sources":["../../../projects/ng0/file/utils.ts","../../../projects/ng0/file/bootkit-ng0-file.ts"],"sourcesContent":["\r\n/**\r\n * Saves a Blob as a file in the user's browser.\r\n * This function is only available in browsers that support the Blob API.\r\n * @param blob \r\n * @param fileName \r\n * \r\n */\r\nexport function saveBlob(blob: Blob, fileName: string): void {\r\n const url = window.URL.createObjectURL(blob);\r\n const a = document.createElement('a');\r\n a.href = url;\r\n a.download = fileName;\r\n document.body.appendChild(a);\r\n a.click();\r\n a.remove();\r\n window.URL.revokeObjectURL(url);\r\n}\r\n\r\n/**\r\n * Triggers downloading a file from a given URL.\r\n * @param url \r\n * @param fileName \r\n */\r\nexport function downloadFile(url: string, fileName: string): void {\r\n const a = document.createElement('a');\r\n a.href = url;\r\n a.download = fileName;\r\n document.body.appendChild(a);\r\n a.click();\r\n a.remove();\r\n}\r\n\r\n/**\r\n * Converts a File object to a Base64 string.\r\n * @param file The File object to convert.\r\n * @return A Promise that resolves to the Base64 string representation of the file.\r\n */\r\nexport function convertFileToBase64(file: File): Promise<string | ArrayBuffer | null> {\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = () => resolve(reader.result);\r\n reader.onerror = error => reject(error);\r\n });\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"AACA;;;;;;AAMG;AACG,SAAU,QAAQ,CAAC,IAAU,EAAE,QAAgB,EAAA;IACnD,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC;IAC5C,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC;AACrC,IAAA,CAAC,CAAC,IAAI,GAAG,GAAG;AACZ,IAAA,CAAC,CAAC,QAAQ,GAAG,QAAQ;AACrB,IAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAC5B,CAAC,CAAC,KAAK,EAAE;IACT,CAAC,CAAC,MAAM,EAAE;AACV,IAAA,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC;AACjC;AAEA;;;;AAIG;AACG,SAAU,YAAY,CAAC,GAAW,EAAE,QAAgB,EAAA;IACxD,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC;AACrC,IAAA,CAAC,CAAC,IAAI,GAAG,GAAG;AACZ,IAAA,CAAC,CAAC,QAAQ,GAAG,QAAQ;AACrB,IAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAC5B,CAAC,CAAC,KAAK,EAAE;IACT,CAAC,CAAC,MAAM,EAAE;AACZ;AAEA;;;;AAIG;AACG,SAAU,mBAAmB,CAAC,IAAU,EAAA;IAC5C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;AACrC,QAAA,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE;AAC/B,QAAA,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC;AAC1B,QAAA,MAAM,CAAC,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;QAC5C,MAAM,CAAC,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC;AACzC,KAAC,CAAC;AACJ;;AC7CA;;AAEG;;;;"}
|