uni-component-tw 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/README.md +25 -0
  2. package/esm2022/index.mjs +5 -0
  3. package/esm2022/uni-article/index.mjs +2 -0
  4. package/esm2022/uni-article/src/uni-article.component.mjs +109 -0
  5. package/esm2022/uni-article/uni-component-tw-uni-article.mjs +5 -0
  6. package/esm2022/uni-component-tw.mjs +5 -0
  7. package/esm2022/uni-header/index.mjs +2 -0
  8. package/esm2022/uni-header/src/uni-header.component.mjs +66 -0
  9. package/esm2022/uni-header/uni-component-tw-uni-header.mjs +5 -0
  10. package/esm2022/uni-login-modal/index.mjs +2 -0
  11. package/esm2022/uni-login-modal/src/uni-login-modal.component.mjs +146 -0
  12. package/esm2022/uni-login-modal/uni-component-tw-uni-login-modal.mjs +5 -0
  13. package/esm2022/uni-pie-chart/index.mjs +2 -0
  14. package/esm2022/uni-pie-chart/src/uni-pie-chart.component.mjs +159 -0
  15. package/esm2022/uni-pie-chart/uni-component-tw-uni-pie-chart.mjs +5 -0
  16. package/esm2022/uni-side-menu/index.mjs +2 -0
  17. package/esm2022/uni-side-menu/src/uni-side-menu.component.mjs +249 -0
  18. package/esm2022/uni-side-menu/uni-component-tw-uni-side-menu.mjs +5 -0
  19. package/esm2022/uni-wrapper-chart/index.mjs +2 -0
  20. package/esm2022/uni-wrapper-chart/src/uni-wrapper-chart.component.mjs +36 -0
  21. package/esm2022/uni-wrapper-chart/uni-component-tw-uni-wrapper-chart.mjs +5 -0
  22. package/fesm2022/uni-component-tw-uni-article.mjs +116 -0
  23. package/fesm2022/uni-component-tw-uni-article.mjs.map +1 -0
  24. package/fesm2022/uni-component-tw-uni-header.mjs +73 -0
  25. package/fesm2022/uni-component-tw-uni-header.mjs.map +1 -0
  26. package/fesm2022/uni-component-tw-uni-login-modal.mjs +152 -0
  27. package/fesm2022/uni-component-tw-uni-login-modal.mjs.map +1 -0
  28. package/fesm2022/uni-component-tw-uni-pie-chart.mjs +166 -0
  29. package/fesm2022/uni-component-tw-uni-pie-chart.mjs.map +1 -0
  30. package/fesm2022/uni-component-tw-uni-side-menu.mjs +256 -0
  31. package/fesm2022/uni-component-tw-uni-side-menu.mjs.map +1 -0
  32. package/fesm2022/uni-component-tw-uni-wrapper-chart.mjs +43 -0
  33. package/fesm2022/uni-component-tw-uni-wrapper-chart.mjs.map +1 -0
  34. package/fesm2022/uni-component-tw.mjs +11 -0
  35. package/fesm2022/uni-component-tw.mjs.map +1 -0
  36. package/index.d.ts +1 -0
  37. package/package.json +63 -0
  38. package/uni-article/index.d.ts +1 -0
  39. package/uni-article/src/uni-article.component.d.ts +16 -0
  40. package/uni-header/index.d.ts +1 -0
  41. package/uni-header/src/uni-header.component.d.ts +11 -0
  42. package/uni-login-modal/index.d.ts +1 -0
  43. package/uni-login-modal/src/uni-login-modal.component.d.ts +30 -0
  44. package/uni-pie-chart/index.d.ts +1 -0
  45. package/uni-pie-chart/src/uni-pie-chart.component.d.ts +32 -0
  46. package/uni-side-menu/index.d.ts +1 -0
  47. package/uni-side-menu/src/uni-side-menu.component.d.ts +49 -0
  48. package/uni-wrapper-chart/index.d.ts +1 -0
  49. package/uni-wrapper-chart/src/uni-wrapper-chart.component.d.ts +13 -0
package/README.md ADDED
@@ -0,0 +1,25 @@
1
+ # UniComponent
2
+
3
+ This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 18.0.0.
4
+
5
+ ## Code scaffolding
6
+
7
+ Run `ng generate component component-name --project uni-component-tw` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project uni-component-tw`.
8
+
9
+ > Note: Don't forget to add `--project uni-component-tw` or else it will be added to the default project in your `angular.json` file.
10
+
11
+ ## Build
12
+
13
+ Run `ng build uni-component-tw` to build the project. The build artifacts will be stored in the `dist/` directory.
14
+
15
+ ## Publishing
16
+
17
+ After building your library with `ng build uni-component-tw`, go to the dist folder `cd dist/uni-component-tw` and run `npm publish`.
18
+
19
+ ## Running unit tests
20
+
21
+ Run `ng test uni-component-tw` to execute the unit tests via [Karma](https://karma-runner.github.io).
22
+
23
+ ## Further help
24
+
25
+ To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.dev/tools/cli) page.
@@ -0,0 +1,5 @@
1
+ /*
2
+ * Public API Surface of component
3
+ */
4
+ export const UNI_COMPONENT = 'uni-component-tw';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy91bmktY29tcG9uZW50LXR3L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGNvbXBvbmVudFxyXG4gKi9cclxuXHJcbmV4cG9ydCBjb25zdCBVTklfQ09NUE9ORU5UID0gJ3VuaS1jb21wb25lbnQtdHcnO1xyXG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './src/uni-article.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy91bmktY29tcG9uZW50LXR3L3VuaS1hcnRpY2xlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNkJBQTZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3NyYy91bmktYXJ0aWNsZS5jb21wb25lbnQnO1xyXG4iXX0=
@@ -0,0 +1,109 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { ChangeDetectionStrategy, Component, computed, input, signal, } from '@angular/core';
3
+ import { DxButtonModule } from 'devextreme-angular/ui/button';
4
+ import { FaIconComponent } from '@fortawesome/angular-fontawesome';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "devextreme-angular/ui/button";
7
+ export class UniArticleComponent {
8
+ constructor() {
9
+ /* Inputs */
10
+ this.color = input.required(); // Colore di base dell'articolo
11
+ this.title = input(); // Titolo opzionale dell'articolo
12
+ this.icon = input(); // Icona opzionale per l'intestazione
13
+ this.setIsOpen = input(); // Stato iniziale di apertura
14
+ this.headerCloseButton = input(false); // Se mostrare il button per chiudere article
15
+ /* Variables */
16
+ this.isOpen = signal(true);
17
+ this.isHeader = computed(() => this.icon() || this.title() || this.headerCloseButton());
18
+ }
19
+ /* ----------------------- Lifecycle Hook --------------------------- */
20
+ ngOnChanges(changes) {
21
+ const { setIsOpen } = changes;
22
+ // Verifica se 'setIsOpen' è cambiato e non è il primo cambiamento
23
+ if (setIsOpen && !setIsOpen.firstChange && setIsOpen.currentValue !== undefined) {
24
+ this.isOpen.set(setIsOpen.currentValue);
25
+ }
26
+ }
27
+ /* ----------------------- Metodi --------------------------- */
28
+ toggleIsOpen() {
29
+ // Inverte lo stato di apertura/chiusura
30
+ this.isOpen.update((val) => !val);
31
+ }
32
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: UniArticleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
33
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.3", type: UniArticleComponent, isStandalone: true, selector: "uni-article", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: true, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, setIsOpen: { classPropertyName: "setIsOpen", publicName: "setIsOpen", isSignal: true, isRequired: false, transformFunction: null }, headerCloseButton: { classPropertyName: "headerCloseButton", publicName: "headerCloseButton", isSignal: true, isRequired: false, transformFunction: null } }, usesOnChanges: true, ngImport: i0, template: `
34
+ <article
35
+ class="uni_article flex flex-col p-4 border-2 rounded"
36
+ [style.height]="isOpen() ? '100%' : 'auto'"
37
+ [style.backgroundColor]="color() + '26'"
38
+ [style.borderColor]="color() + '33'">
39
+ <!-- Title -->
40
+ @if (isHeader()) {
41
+ <div class="uni_article_header flex items-center gap-4 mb-4">
42
+ <!-- Icona nella testata, se presente -->
43
+ @if (icon(); as icon) {
44
+ <fa-icon class="uni-article-header-icon" [icon]="icon"></fa-icon>
45
+ }
46
+
47
+ <!-- Titolo nella testata, se presente -->
48
+ @if (title(); as title) {
49
+ <h5 class="uni_article_header_title uppercase truncate">{{ title }}</h5>
50
+ }
51
+
52
+ <!-- Bottone per aprire/chiudere l'articolo, se presente -->
53
+ @if (headerCloseButton()) {
54
+ <dx-button
55
+ class="uni_article_header_button ml-auto"
56
+ [icon]="isOpen() ? 'close' : 'expandform'"
57
+ (onClick)="toggleIsOpen()">
58
+ </dx-button>
59
+ }
60
+ </div>
61
+ }
62
+
63
+ <!-- Contenuto dell'articolo, visibile solo se aperto -->
64
+ @if (isOpen()) {
65
+ <ng-content></ng-content>
66
+ }
67
+ </article>
68
+ `, isInline: true, styles: [":host{height:100%;display:block;overflow:hidden}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: DxButtonModule }, { kind: "component", type: i1.DxButtonComponent, selector: "dx-button", inputs: ["accessKey", "activeStateEnabled", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "icon", "rtlEnabled", "stylingMode", "tabIndex", "template", "text", "type", "useSubmitBehavior", "validationGroup", "visible", "width"], outputs: ["onClick", "onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "accessKeyChange", "activeStateEnabledChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "iconChange", "rtlEnabledChange", "stylingModeChange", "tabIndexChange", "templateChange", "textChange", "typeChange", "useSubmitBehaviorChange", "validationGroupChange", "visibleChange", "widthChange"] }, { kind: "component", type: FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
69
+ }
70
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: UniArticleComponent, decorators: [{
71
+ type: Component,
72
+ args: [{ selector: 'uni-article', standalone: true, imports: [CommonModule, DxButtonModule, FaIconComponent], template: `
73
+ <article
74
+ class="uni_article flex flex-col p-4 border-2 rounded"
75
+ [style.height]="isOpen() ? '100%' : 'auto'"
76
+ [style.backgroundColor]="color() + '26'"
77
+ [style.borderColor]="color() + '33'">
78
+ <!-- Title -->
79
+ @if (isHeader()) {
80
+ <div class="uni_article_header flex items-center gap-4 mb-4">
81
+ <!-- Icona nella testata, se presente -->
82
+ @if (icon(); as icon) {
83
+ <fa-icon class="uni-article-header-icon" [icon]="icon"></fa-icon>
84
+ }
85
+
86
+ <!-- Titolo nella testata, se presente -->
87
+ @if (title(); as title) {
88
+ <h5 class="uni_article_header_title uppercase truncate">{{ title }}</h5>
89
+ }
90
+
91
+ <!-- Bottone per aprire/chiudere l'articolo, se presente -->
92
+ @if (headerCloseButton()) {
93
+ <dx-button
94
+ class="uni_article_header_button ml-auto"
95
+ [icon]="isOpen() ? 'close' : 'expandform'"
96
+ (onClick)="toggleIsOpen()">
97
+ </dx-button>
98
+ }
99
+ </div>
100
+ }
101
+
102
+ <!-- Contenuto dell'articolo, visibile solo se aperto -->
103
+ @if (isOpen()) {
104
+ <ng-content></ng-content>
105
+ }
106
+ </article>
107
+ `, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{height:100%;display:block;overflow:hidden}\n"] }]
108
+ }] });
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5pLWFydGljbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdW5pLWNvbXBvbmVudC10dy91bmktYXJ0aWNsZS9zcmMvdW5pLWFydGljbGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsS0FBSyxFQUNMLE1BQU0sR0FHUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7QUFzRG5FLE1BQU0sT0FBTyxtQkFBbUI7SUFuRGhDO1FBb0RFLFlBQVk7UUFDSCxVQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVSxDQUFDLENBQUMsK0JBQStCO1FBQ2pFLFVBQUssR0FBRyxLQUFLLEVBQVUsQ0FBQyxDQUFDLGlDQUFpQztRQUMxRCxTQUFJLEdBQUcsS0FBSyxFQUFrQixDQUFDLENBQUMscUNBQXFDO1FBQ3JFLGNBQVMsR0FBRyxLQUFLLEVBQXVCLENBQUMsQ0FBQyw2QkFBNkI7UUFDdkUsc0JBQWlCLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDLENBQUMsNkNBQTZDO1FBRWpHLGVBQWU7UUFDZixXQUFNLEdBQUcsTUFBTSxDQUFVLElBQUksQ0FBQyxDQUFDO1FBQy9CLGFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO0tBZ0JwRjtJQWRDLHdFQUF3RTtJQUN4RSxXQUFXLENBQUMsT0FBc0I7UUFDaEMsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUM5QixrRUFBa0U7UUFDbEUsSUFBSSxTQUFTLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxJQUFJLFNBQVMsQ0FBQyxZQUFZLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDaEYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzFDLENBQUM7SUFDSCxDQUFDO0lBRUQsZ0VBQWdFO0lBQ3RELFlBQVk7UUFDcEIsd0NBQXdDO1FBQ3hDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7OEdBekJVLG1CQUFtQjtrR0FBbkIsbUJBQW1CLDR1QkEvQ3BCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1DVCwySEFwQ1MsWUFBWSw4QkFBRSxjQUFjLHMwQkFBRSxlQUFlOzsyRkFnRDVDLG1CQUFtQjtrQkFuRC9CLFNBQVM7K0JBQ0UsYUFBYSxjQUNYLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxjQUFjLEVBQUUsZUFBZSxDQUFDLFlBQzlDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1DVCxtQkFVZ0IsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ29tcG9uZW50LFxyXG4gIGNvbXB1dGVkLFxyXG4gIGlucHV0LFxyXG4gIHNpZ25hbCxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIE9uQ2hhbmdlcyxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRHhCdXR0b25Nb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvYnV0dG9uJztcclxuaW1wb3J0IHsgRmFJY29uQ29tcG9uZW50IH0gZnJvbSAnQGZvcnRhd2Vzb21lL2FuZ3VsYXItZm9udGF3ZXNvbWUnO1xyXG5pbXBvcnQgeyBJY29uRGVmaW5pdGlvbiB9IGZyb20gJ0Bmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29ucyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3VuaS1hcnRpY2xlJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIER4QnV0dG9uTW9kdWxlLCBGYUljb25Db21wb25lbnRdLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8YXJ0aWNsZVxyXG4gICAgICBjbGFzcz1cInVuaV9hcnRpY2xlIGZsZXggZmxleC1jb2wgcC00IGJvcmRlci0yIHJvdW5kZWRcIlxyXG4gICAgICBbc3R5bGUuaGVpZ2h0XT1cImlzT3BlbigpID8gJzEwMCUnIDogJ2F1dG8nXCJcclxuICAgICAgW3N0eWxlLmJhY2tncm91bmRDb2xvcl09XCJjb2xvcigpICsgJzI2J1wiXHJcbiAgICAgIFtzdHlsZS5ib3JkZXJDb2xvcl09XCJjb2xvcigpICsgJzMzJ1wiPlxyXG4gICAgICA8IS0tIFRpdGxlIC0tPlxyXG4gICAgICBAaWYgKGlzSGVhZGVyKCkpIHtcclxuICAgICAgICA8ZGl2IGNsYXNzPVwidW5pX2FydGljbGVfaGVhZGVyIGZsZXggaXRlbXMtY2VudGVyIGdhcC00IG1iLTRcIj5cclxuICAgICAgICAgIDwhLS0gSWNvbmEgbmVsbGEgdGVzdGF0YSwgc2UgcHJlc2VudGUgLS0+XHJcbiAgICAgICAgICBAaWYgKGljb24oKTsgYXMgaWNvbikge1xyXG4gICAgICAgICAgICA8ZmEtaWNvbiBjbGFzcz1cInVuaS1hcnRpY2xlLWhlYWRlci1pY29uXCIgW2ljb25dPVwiaWNvblwiPjwvZmEtaWNvbj5cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICA8IS0tIFRpdG9sbyBuZWxsYSB0ZXN0YXRhLCBzZSBwcmVzZW50ZSAtLT5cclxuICAgICAgICAgIEBpZiAodGl0bGUoKTsgYXMgdGl0bGUpIHtcclxuICAgICAgICAgICAgPGg1IGNsYXNzPVwidW5pX2FydGljbGVfaGVhZGVyX3RpdGxlIHVwcGVyY2FzZSB0cnVuY2F0ZVwiPnt7IHRpdGxlIH19PC9oNT5cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICA8IS0tIEJvdHRvbmUgcGVyIGFwcmlyZS9jaGl1ZGVyZSBsJ2FydGljb2xvLCBzZSBwcmVzZW50ZSAtLT5cclxuICAgICAgICAgIEBpZiAoaGVhZGVyQ2xvc2VCdXR0b24oKSkge1xyXG4gICAgICAgICAgICA8ZHgtYnV0dG9uXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJ1bmlfYXJ0aWNsZV9oZWFkZXJfYnV0dG9uIG1sLWF1dG9cIlxyXG4gICAgICAgICAgICAgIFtpY29uXT1cImlzT3BlbigpID8gJ2Nsb3NlJyA6ICdleHBhbmRmb3JtJ1wiXHJcbiAgICAgICAgICAgICAgKG9uQ2xpY2spPVwidG9nZ2xlSXNPcGVuKClcIj5cclxuICAgICAgICAgICAgPC9keC1idXR0b24+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIDwhLS0gQ29udGVudXRvIGRlbGwnYXJ0aWNvbG8sIHZpc2liaWxlIHNvbG8gc2UgYXBlcnRvIC0tPlxyXG4gICAgICBAaWYgKGlzT3BlbigpKSB7XHJcbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gICAgICB9XHJcbiAgICA8L2FydGljbGU+XHJcbiAgYCxcclxuICBzdHlsZXM6IFtcclxuICAgIGBcclxuICAgICAgOmhvc3Qge1xyXG4gICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICB9XHJcbiAgICBgLFxyXG4gIF0sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVbmlBcnRpY2xlQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuICAvKiBJbnB1dHMgKi9cclxuICByZWFkb25seSBjb2xvciA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTsgLy8gQ29sb3JlIGRpIGJhc2UgZGVsbCdhcnRpY29sb1xyXG4gIHJlYWRvbmx5IHRpdGxlID0gaW5wdXQ8c3RyaW5nPigpOyAvLyBUaXRvbG8gb3B6aW9uYWxlIGRlbGwnYXJ0aWNvbG9cclxuICByZWFkb25seSBpY29uID0gaW5wdXQ8SWNvbkRlZmluaXRpb24+KCk7IC8vIEljb25hIG9wemlvbmFsZSBwZXIgbCdpbnRlc3RhemlvbmVcclxuICByZWFkb25seSBzZXRJc09wZW4gPSBpbnB1dDxib29sZWFuIHwgdW5kZWZpbmVkPigpOyAvLyBTdGF0byBpbml6aWFsZSBkaSBhcGVydHVyYVxyXG4gIHJlYWRvbmx5IGhlYWRlckNsb3NlQnV0dG9uID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpOyAvLyBTZSBtb3N0cmFyZSBpbCBidXR0b24gcGVyIGNoaXVkZXJlIGFydGljbGVcclxuXHJcbiAgLyogVmFyaWFibGVzICovXHJcbiAgaXNPcGVuID0gc2lnbmFsPGJvb2xlYW4+KHRydWUpO1xyXG4gIGlzSGVhZGVyID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5pY29uKCkgfHwgdGhpcy50aXRsZSgpIHx8IHRoaXMuaGVhZGVyQ2xvc2VCdXR0b24oKSk7XHJcblxyXG4gIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIExpZmVjeWNsZSBIb29rIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGNvbnN0IHsgc2V0SXNPcGVuIH0gPSBjaGFuZ2VzO1xyXG4gICAgLy8gVmVyaWZpY2Egc2UgJ3NldElzT3Blbicgw6ggY2FtYmlhdG8gZSBub24gw6ggaWwgcHJpbW8gY2FtYmlhbWVudG9cclxuICAgIGlmIChzZXRJc09wZW4gJiYgIXNldElzT3Blbi5maXJzdENoYW5nZSAmJiBzZXRJc09wZW4uY3VycmVudFZhbHVlICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5pc09wZW4uc2V0KHNldElzT3Blbi5jdXJyZW50VmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gTWV0b2RpIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xyXG4gIHByb3RlY3RlZCB0b2dnbGVJc09wZW4oKTogdm9pZCB7XHJcbiAgICAvLyBJbnZlcnRlIGxvIHN0YXRvIGRpIGFwZXJ0dXJhL2NoaXVzdXJhXHJcbiAgICB0aGlzLmlzT3Blbi51cGRhdGUoKHZhbCkgPT4gIXZhbCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5pLWNvbXBvbmVudC10dy11bmktYXJ0aWNsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VuaS1jb21wb25lbnQtdHcvdW5pLWFydGljbGUvdW5pLWNvbXBvbmVudC10dy11bmktYXJ0aWNsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5pLWNvbXBvbmVudC10dy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3VuaS1jb21wb25lbnQtdHcvdW5pLWNvbXBvbmVudC10dy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './src/uni-header.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy91bmktY29tcG9uZW50LXR3L3VuaS1oZWFkZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw0QkFBNEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc3JjL3VuaS1oZWFkZXIuY29tcG9uZW50JztcclxuIl19
@@ -0,0 +1,66 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { ChangeDetectionStrategy, Component, input, output } from '@angular/core';
3
+ import { DxButtonModule } from 'devextreme-angular/ui/button';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "devextreme-angular/ui/button";
6
+ export class UniHeaderComponent {
7
+ constructor() {
8
+ /* Input */
9
+ this.title = input.required();
10
+ this.version = input.required();
11
+ this.pathBrandLogo = input.required();
12
+ this.pathAppLogo = input(undefined);
13
+ this.sideMenu = input(false);
14
+ /* Output */
15
+ this.evtToggleMenu = output();
16
+ }
17
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: UniHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
18
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.3", type: UniHeaderComponent, isStandalone: true, selector: "uni-header", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null }, version: { classPropertyName: "version", publicName: "version", isSignal: true, isRequired: true, transformFunction: null }, pathBrandLogo: { classPropertyName: "pathBrandLogo", publicName: "pathBrandLogo", isSignal: true, isRequired: true, transformFunction: null }, pathAppLogo: { classPropertyName: "pathAppLogo", publicName: "pathAppLogo", isSignal: true, isRequired: false, transformFunction: null }, sideMenu: { classPropertyName: "sideMenu", publicName: "sideMenu", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { evtToggleMenu: "evtToggleMenu" }, ngImport: i0, template: `<header id="uni-header">
19
+ <div>
20
+ <!-- app logo -->
21
+ @if (pathAppLogo(); as pathAppLogo) {
22
+ <img id="header-img-app" [src]="pathAppLogo" alt="App logo" />
23
+ }
24
+
25
+ <!-- info -->
26
+ <div id="header-info">
27
+ <p>{{ title() }}</p>
28
+ <p>{{ version() }}</p>
29
+ </div>
30
+
31
+ <!-- brand logo -->
32
+ <img id="header-img-brand" [src]="pathBrandLogo()" alt="Brand logo" />
33
+
34
+ <!-- button menu -->
35
+ @if (sideMenu()) {
36
+ <dx-button [icon]="'menu'" (onClick)="evtToggleMenu.emit(true)"></dx-button>
37
+ }
38
+ </div>
39
+ </header>`, isInline: true, styles: [":host{display:block}#uni-header{position:fixed;top:0;left:0;height:calc(60px + var(--padding-m));width:100%;padding:var(--padding-m);background-color:#36363f;overflow:hidden;z-index:999}#uni-header>div{display:grid;grid-template-rows:1fr;grid-template-columns:40px 1fr auto min-content;align-items:center;gap:1rem;padding:calc(var(--padding-m) / 2);background-color:#52525b99;border-radius:.25rem;box-shadow:#00000059 0 5px 5px}#uni-header>div #header-info{display:flex;flex-direction:column;justify-content:center;text-wrap:nowrap}#uni-header>div #header-info p:first-child{font-size:20px;line-height:28px;font-weight:500;text-transform:uppercase}#uni-header>div #header-info p:last-child{font-size:12px;line-height:12px;opacity:.65}#uni-header>div #header-img-app,#uni-header>div #header-img-brand{height:40px;object-fit:contain}@media (max-resolution: 1dppx){#uni-header>div{grid-template-columns:30px 1fr auto min-content}#uni-header>div #header-img-app,#uni-header>div #header-img-brand{height:31px}#uni-header>div #header-info p:first-child{font-size:16px;line-height:21px}#uni-header>div #header-info p:last-child{font-size:10px;line-height:10px}}::ng-deep .theme-light #uni-header{background-color:#0284c70d}::ng-deep .theme-light #uni-header>div{background-color:#0284c799!important;box-shadow:#0284c759 0 5px 5px!important}::ng-deep .theme-light #uni-header>div,::ng-deep .theme-light #uni-header>div i:before{color:#fff}:host ::ng-deep .dx-button{height:23px;min-width:23px;background-color:transparent}:host ::ng-deep .dx-button .dx-icon{font-size:23px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: DxButtonModule }, { kind: "component", type: i1.DxButtonComponent, selector: "dx-button", inputs: ["accessKey", "activeStateEnabled", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "icon", "rtlEnabled", "stylingMode", "tabIndex", "template", "text", "type", "useSubmitBehavior", "validationGroup", "visible", "width"], outputs: ["onClick", "onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "accessKeyChange", "activeStateEnabledChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "iconChange", "rtlEnabledChange", "stylingModeChange", "tabIndexChange", "templateChange", "textChange", "typeChange", "useSubmitBehaviorChange", "validationGroupChange", "visibleChange", "widthChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
40
+ }
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: UniHeaderComponent, decorators: [{
42
+ type: Component,
43
+ args: [{ selector: 'uni-header', standalone: true, imports: [CommonModule, DxButtonModule], template: `<header id="uni-header">
44
+ <div>
45
+ <!-- app logo -->
46
+ @if (pathAppLogo(); as pathAppLogo) {
47
+ <img id="header-img-app" [src]="pathAppLogo" alt="App logo" />
48
+ }
49
+
50
+ <!-- info -->
51
+ <div id="header-info">
52
+ <p>{{ title() }}</p>
53
+ <p>{{ version() }}</p>
54
+ </div>
55
+
56
+ <!-- brand logo -->
57
+ <img id="header-img-brand" [src]="pathBrandLogo()" alt="Brand logo" />
58
+
59
+ <!-- button menu -->
60
+ @if (sideMenu()) {
61
+ <dx-button [icon]="'menu'" (onClick)="evtToggleMenu.emit(true)"></dx-button>
62
+ }
63
+ </div>
64
+ </header>`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:block}#uni-header{position:fixed;top:0;left:0;height:calc(60px + var(--padding-m));width:100%;padding:var(--padding-m);background-color:#36363f;overflow:hidden;z-index:999}#uni-header>div{display:grid;grid-template-rows:1fr;grid-template-columns:40px 1fr auto min-content;align-items:center;gap:1rem;padding:calc(var(--padding-m) / 2);background-color:#52525b99;border-radius:.25rem;box-shadow:#00000059 0 5px 5px}#uni-header>div #header-info{display:flex;flex-direction:column;justify-content:center;text-wrap:nowrap}#uni-header>div #header-info p:first-child{font-size:20px;line-height:28px;font-weight:500;text-transform:uppercase}#uni-header>div #header-info p:last-child{font-size:12px;line-height:12px;opacity:.65}#uni-header>div #header-img-app,#uni-header>div #header-img-brand{height:40px;object-fit:contain}@media (max-resolution: 1dppx){#uni-header>div{grid-template-columns:30px 1fr auto min-content}#uni-header>div #header-img-app,#uni-header>div #header-img-brand{height:31px}#uni-header>div #header-info p:first-child{font-size:16px;line-height:21px}#uni-header>div #header-info p:last-child{font-size:10px;line-height:10px}}::ng-deep .theme-light #uni-header{background-color:#0284c70d}::ng-deep .theme-light #uni-header>div{background-color:#0284c799!important;box-shadow:#0284c759 0 5px 5px!important}::ng-deep .theme-light #uni-header>div,::ng-deep .theme-light #uni-header>div i:before{color:#fff}:host ::ng-deep .dx-button{height:23px;min-width:23px;background-color:transparent}:host ::ng-deep .dx-button .dx-icon{font-size:23px}\n"] }]
65
+ }] });
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5pLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91bmktY29tcG9uZW50LXR3L3VuaS1oZWFkZXIvc3JjL3VuaS1oZWFkZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7QUErQjlELE1BQU0sT0FBTyxrQkFBa0I7SUE3Qi9CO1FBOEJFLFdBQVc7UUFDWCxVQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVSxDQUFDO1FBQ2pDLFlBQU8sR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFVLENBQUM7UUFDbkMsa0JBQWEsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFVLENBQUM7UUFDekMsZ0JBQVcsR0FBRyxLQUFLLENBQXFCLFNBQVMsQ0FBQyxDQUFDO1FBQ25ELGFBQVEsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFFakMsWUFBWTtRQUNaLGtCQUFhLEdBQUcsTUFBTSxFQUFRLENBQUM7S0FDaEM7OEdBVlksa0JBQWtCO2tHQUFsQixrQkFBa0IsNndCQXpCbkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztZQXFCQSx3bURBdEJBLFlBQVksOEJBQUUsY0FBYzs7MkZBMEIzQixrQkFBa0I7a0JBN0I5QixTQUFTOytCQUNFLFlBQVksY0FDVixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsY0FBYyxDQUFDLFlBQzdCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7WUFxQkEsbUJBRU8sdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGlucHV0LCBvdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRHhCdXR0b25Nb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvYnV0dG9uJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndW5pLWhlYWRlcicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBEeEJ1dHRvbk1vZHVsZV0sXHJcbiAgdGVtcGxhdGU6IGA8aGVhZGVyIGlkPVwidW5pLWhlYWRlclwiPlxyXG4gICAgPGRpdj5cclxuICAgICAgPCEtLSBhcHAgbG9nbyAgLS0+XHJcbiAgICAgIEBpZiAocGF0aEFwcExvZ28oKTsgYXMgcGF0aEFwcExvZ28pIHtcclxuICAgICAgICA8aW1nIGlkPVwiaGVhZGVyLWltZy1hcHBcIiBbc3JjXT1cInBhdGhBcHBMb2dvXCIgYWx0PVwiQXBwIGxvZ29cIiAvPlxyXG4gICAgICB9XHJcblxyXG4gICAgICA8IS0tIGluZm8gIC0tPlxyXG4gICAgICA8ZGl2IGlkPVwiaGVhZGVyLWluZm9cIj5cclxuICAgICAgICA8cD57eyB0aXRsZSgpIH19PC9wPlxyXG4gICAgICAgIDxwPnt7IHZlcnNpb24oKSB9fTwvcD5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8IS0tIGJyYW5kIGxvZ28gIC0tPlxyXG4gICAgICA8aW1nIGlkPVwiaGVhZGVyLWltZy1icmFuZFwiIFtzcmNdPVwicGF0aEJyYW5kTG9nbygpXCIgYWx0PVwiQnJhbmQgbG9nb1wiIC8+XHJcblxyXG4gICAgICA8IS0tIGJ1dHRvbiBtZW51ICAtLT5cclxuICAgICAgQGlmIChzaWRlTWVudSgpKSB7XHJcbiAgICAgICAgPGR4LWJ1dHRvbiBbaWNvbl09XCInbWVudSdcIiAob25DbGljayk9XCJldnRUb2dnbGVNZW51LmVtaXQodHJ1ZSlcIj48L2R4LWJ1dHRvbj5cclxuICAgICAgfVxyXG4gICAgPC9kaXY+XHJcbiAgPC9oZWFkZXI+YCxcclxuICBzdHlsZVVybDogJy4vdW5pLWhlYWRlci5jb21wb25lbnQuc2NzcycsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVbmlIZWFkZXJDb21wb25lbnQge1xyXG4gIC8qIElucHV0ICovXHJcbiAgdGl0bGUgPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmc+KCk7XHJcbiAgdmVyc2lvbiA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTtcclxuICBwYXRoQnJhbmRMb2dvID0gaW5wdXQucmVxdWlyZWQ8c3RyaW5nPigpO1xyXG4gIHBhdGhBcHBMb2dvID0gaW5wdXQ8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xyXG4gIHNpZGVNZW51ID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuICAvKiBPdXRwdXQgKi9cclxuICBldnRUb2dnbGVNZW51ID0gb3V0cHV0PHRydWU+KCk7XHJcbn1cclxuIl19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5pLWNvbXBvbmVudC10dy11bmktaGVhZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdW5pLWNvbXBvbmVudC10dy91bmktaGVhZGVyL3VuaS1jb21wb25lbnQtdHctdW5pLWhlYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './src/uni-login-modal.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy91bmktY29tcG9uZW50LXR3L3VuaS1sb2dpbi1tb2RhbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlDQUFpQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zcmMvdW5pLWxvZ2luLW1vZGFsLmNvbXBvbmVudCc7XHJcbiJdfQ==
@@ -0,0 +1,146 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { ChangeDetectionStrategy, Component, inject, input } from '@angular/core';
3
+ import { Router } from '@angular/router';
4
+ import { Location } from '@angular/common';
5
+ import { FormControl, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms';
6
+ import { DxButtonModule, DxPopupModule, DxTextBoxModule } from 'devextreme-angular';
7
+ import { UNIAuthService } from 'uni-service/auth';
8
+ import { UNIToastService } from 'uni-service/toast';
9
+ import { UNITranslateService } from 'uni-service/translate';
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "devextreme-angular";
12
+ import * as i2 from "@angular/forms";
13
+ export class UNILoginModalComponent {
14
+ constructor() {
15
+ /* Service */
16
+ this.router = inject(Router);
17
+ this.location = inject(Location);
18
+ this.authService = inject(UNIAuthService);
19
+ this.toastService = inject(UNIToastService);
20
+ this.translateService = inject(UNITranslateService);
21
+ /* Input & output */
22
+ this.visibile = input(true);
23
+ this.routeHome = input();
24
+ this.enableGoBack = input.required();
25
+ /* Form */
26
+ this.loginForm = new FormGroup({
27
+ username: new FormControl('', { nonNullable: true, validators: Validators.required }),
28
+ password: new FormControl('', { nonNullable: true, validators: Validators.required }),
29
+ });
30
+ }
31
+ /* ------------------------ Methods ------------------------ */
32
+ login() {
33
+ this.authService.login$(this.loginForm.getRawValue()).subscribe(() => {
34
+ if (this.routeHome())
35
+ this.router.navigate([this.routeHome]);
36
+ });
37
+ }
38
+ logout() {
39
+ this.authService.logout$().subscribe();
40
+ }
41
+ onHiding() {
42
+ if (this.enableGoBack())
43
+ this.location.back();
44
+ }
45
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: UNILoginModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
46
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.3", type: UNILoginModalComponent, isStandalone: true, selector: "uni-login-modal", inputs: { visibile: { classPropertyName: "visibile", publicName: "visibile", isSignal: true, isRequired: false, transformFunction: null }, routeHome: { classPropertyName: "routeHome", publicName: "routeHome", isSignal: true, isRequired: false, transformFunction: null }, enableGoBack: { classPropertyName: "enableGoBack", publicName: "enableGoBack", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
47
+ <dx-popup
48
+ [wrapperAttr]="{ id: 'loginPopup' }"
49
+ [width]="'40%'"
50
+ [minWidth]="400"
51
+ [maxWidth]="700"
52
+ [height]="500"
53
+ [visible]="visibile()"
54
+ [showTitle]="true"
55
+ [title]="'Login'"
56
+ [dragEnabled]="false"
57
+ [showCloseButton]="true"
58
+ [hideOnOutsideClick]="false"
59
+ (onHiding)="onHiding()">
60
+ <section>
61
+ <img src="../../../assets/images/logo/logo_trasparente.png" alt="Logo" />
62
+ <p>UNITEC</p>
63
+ @if (authService.user(); as user) {
64
+ <div>Utente: {{ user.username }}</div>
65
+ <dx-button
66
+ id="logoutButton"
67
+ stylingMode="contained"
68
+ [text]="'Logout'"
69
+ (onClick)="logout()"></dx-button>
70
+ } @else {
71
+ <form [formGroup]="loginForm" (ngSubmit)="login()">
72
+ <dx-text-box
73
+ [placeholder]="'User'"
74
+ stylingMode="outlined"
75
+ formControlName="username"
76
+ [inputAttr]="{ 'aria-label': 'User' }"></dx-text-box>
77
+ <dx-text-box
78
+ [placeholder]="'Password'"
79
+ mode="password"
80
+ stylingMode="outlined"
81
+ formControlName="password"
82
+ [inputAttr]="{ 'aria-label': 'Password' }"></dx-text-box>
83
+ <dx-button
84
+ id="loginSubmitButton"
85
+ stylingMode="contained"
86
+ [text]="'Login'"
87
+ [useSubmitBehavior]="true"
88
+ [disabled]="loginForm.invalid"></dx-button>
89
+ </form>
90
+ }
91
+ </section>
92
+ </dx-popup>
93
+ `, isInline: true, styles: [":host{display:block}::ng-deep #loginPopup .dx-popup-content{display:flex;justify-content:center;align-items:center}section{width:60%;display:flex;align-items:center;flex-direction:column;gap:1.5rem}img{height:8rem}form{width:100%;display:flex;flex-direction:column;gap:1rem}form dx-button{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: DxPopupModule }, { kind: "component", type: i1.DxPopupComponent, selector: "dx-popup", inputs: ["accessKey", "animation", "closeOnOutsideClick", "container", "contentTemplate", "deferRendering", "disabled", "dragAndResizeArea", "dragEnabled", "dragOutsideBoundary", "enableBodyScroll", "focusStateEnabled", "fullScreen", "height", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "maxHeight", "maxWidth", "minHeight", "minWidth", "position", "resizeEnabled", "restorePosition", "rtlEnabled", "shading", "shadingColor", "showCloseButton", "showTitle", "tabIndex", "title", "titleTemplate", "toolbarItems", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onResize", "onResizeEnd", "onResizeStart", "onShowing", "onShown", "onTitleRendered", "accessKeyChange", "animationChange", "closeOnOutsideClickChange", "containerChange", "contentTemplateChange", "deferRenderingChange", "disabledChange", "dragAndResizeAreaChange", "dragEnabledChange", "dragOutsideBoundaryChange", "enableBodyScrollChange", "focusStateEnabledChange", "fullScreenChange", "heightChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "maxHeightChange", "maxWidthChange", "minHeightChange", "minWidthChange", "positionChange", "resizeEnabledChange", "restorePositionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showCloseButtonChange", "showTitleChange", "tabIndexChange", "titleChange", "titleTemplateChange", "toolbarItemsChange", "visibleChange", "widthChange", "wrapperAttrChange"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: DxTextBoxModule }, { kind: "component", type: i1.DxTextBoxComponent, selector: "dx-text-box", inputs: ["accessKey", "activeStateEnabled", "buttons", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "inputAttr", "isDirty", "isValid", "label", "labelMode", "mask", "maskChar", "maskInvalidMessage", "maskRules", "maxLength", "mode", "name", "placeholder", "readOnly", "rtlEnabled", "showClearButton", "showMaskMode", "spellcheck", "stylingMode", "tabIndex", "text", "useMaskedValue", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "visible", "width"], outputs: ["onChange", "onContentReady", "onCopy", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onKeyDown", "onKeyUp", "onOptionChanged", "onPaste", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isDirtyChange", "isValidChange", "labelChange", "labelModeChange", "maskChange", "maskCharChange", "maskInvalidMessageChange", "maskRulesChange", "maxLengthChange", "modeChange", "nameChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "showClearButtonChange", "showMaskModeChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useMaskedValueChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "visibleChange", "widthChange", "onBlur"] }, { kind: "ngmodule", type: DxButtonModule }, { kind: "component", type: i1.DxButtonComponent, selector: "dx-button", inputs: ["accessKey", "activeStateEnabled", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "icon", "rtlEnabled", "stylingMode", "tabIndex", "template", "text", "type", "useSubmitBehavior", "validationGroup", "visible", "width"], outputs: ["onClick", "onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "accessKeyChange", "activeStateEnabledChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "iconChange", "rtlEnabledChange", "stylingModeChange", "tabIndexChange", "templateChange", "textChange", "typeChange", "useSubmitBehaviorChange", "validationGroupChange", "visibleChange", "widthChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
94
+ }
95
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: UNILoginModalComponent, decorators: [{
96
+ type: Component,
97
+ args: [{ selector: 'uni-login-modal', standalone: true, imports: [CommonModule, DxPopupModule, ReactiveFormsModule, DxTextBoxModule, DxButtonModule], template: `
98
+ <dx-popup
99
+ [wrapperAttr]="{ id: 'loginPopup' }"
100
+ [width]="'40%'"
101
+ [minWidth]="400"
102
+ [maxWidth]="700"
103
+ [height]="500"
104
+ [visible]="visibile()"
105
+ [showTitle]="true"
106
+ [title]="'Login'"
107
+ [dragEnabled]="false"
108
+ [showCloseButton]="true"
109
+ [hideOnOutsideClick]="false"
110
+ (onHiding)="onHiding()">
111
+ <section>
112
+ <img src="../../../assets/images/logo/logo_trasparente.png" alt="Logo" />
113
+ <p>UNITEC</p>
114
+ @if (authService.user(); as user) {
115
+ <div>Utente: {{ user.username }}</div>
116
+ <dx-button
117
+ id="logoutButton"
118
+ stylingMode="contained"
119
+ [text]="'Logout'"
120
+ (onClick)="logout()"></dx-button>
121
+ } @else {
122
+ <form [formGroup]="loginForm" (ngSubmit)="login()">
123
+ <dx-text-box
124
+ [placeholder]="'User'"
125
+ stylingMode="outlined"
126
+ formControlName="username"
127
+ [inputAttr]="{ 'aria-label': 'User' }"></dx-text-box>
128
+ <dx-text-box
129
+ [placeholder]="'Password'"
130
+ mode="password"
131
+ stylingMode="outlined"
132
+ formControlName="password"
133
+ [inputAttr]="{ 'aria-label': 'Password' }"></dx-text-box>
134
+ <dx-button
135
+ id="loginSubmitButton"
136
+ stylingMode="contained"
137
+ [text]="'Login'"
138
+ [useSubmitBehavior]="true"
139
+ [disabled]="loginForm.invalid"></dx-button>
140
+ </form>
141
+ }
142
+ </section>
143
+ </dx-popup>
144
+ `, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:block}::ng-deep #loginPopup .dx-popup-content{display:flex;justify-content:center;align-items:center}section{width:60%;display:flex;align-items:center;flex-direction:column;gap:1.5rem}img{height:8rem}form{width:100%;display:flex;flex-direction:column;gap:1rem}form dx-button{width:100%}\n"] }]
145
+ }] });
146
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5pLWxvZ2luLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VuaS1jb21wb25lbnQtdHcvdW5pLWxvZ2luLW1vZGFsL3NyYy91bmktbG9naW4tbW9kYWwuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEYsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RixPQUFPLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7O0FBOEQ1RCxNQUFNLE9BQU8sc0JBQXNCO0lBdkRuQztRQXdERSxhQUFhO1FBQ0osV0FBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4QixhQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzVCLGdCQUFXLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3JDLGlCQUFZLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3ZDLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBRXhELG9CQUFvQjtRQUNwQixhQUFRLEdBQUcsS0FBSyxDQUFVLElBQUksQ0FBQyxDQUFDO1FBQ2hDLGNBQVMsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUM1QixpQkFBWSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVcsQ0FBQztRQUV6QyxVQUFVO1FBQ00sY0FBUyxHQUFHLElBQUksU0FBUyxDQUF3RDtZQUMvRixRQUFRLEVBQUUsSUFBSSxXQUFXLENBQUMsRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3JGLFFBQVEsRUFBRSxJQUFJLFdBQVcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDdEYsQ0FBQyxDQUFDO0tBZ0JKO0lBZEMsK0RBQStEO0lBQ3hELEtBQUs7UUFDVixJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNuRSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7Z0JBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUMvRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxNQUFNO1FBQ1gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDaEQsQ0FBQzs4R0FoQ1Usc0JBQXNCO2tHQUF0QixzQkFBc0Isd2VBbkR2Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErQ1QsdVhBaERTLFlBQVksOEJBQUUsYUFBYSw2bkRBQUUsbUJBQW1CLDRyQkFBRSxlQUFlLDZzREFBRSxjQUFjOzsyRkFvRGhGLHNCQUFzQjtrQkF2RGxDLFNBQVM7K0JBQ0UsaUJBQWlCLGNBQ2YsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGFBQWEsRUFBRSxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsY0FBYyxDQUFDLFlBQ2xGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQStDVCxtQkFFZ0IsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBEeEJ1dHRvbk1vZHVsZSwgRHhQb3B1cE1vZHVsZSwgRHhUZXh0Qm94TW9kdWxlIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyJztcclxuaW1wb3J0IHsgVU5JQXV0aFNlcnZpY2UgfSBmcm9tICd1bmktc2VydmljZS9hdXRoJztcclxuaW1wb3J0IHsgVU5JVG9hc3RTZXJ2aWNlIH0gZnJvbSAndW5pLXNlcnZpY2UvdG9hc3QnO1xyXG5pbXBvcnQgeyBVTklUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAndW5pLXNlcnZpY2UvdHJhbnNsYXRlJztcclxuXHJcbmV4cG9ydCB0eXBlIExvZ2luRm9ybSA9IHtcclxuICB1c2VybmFtZTogc3RyaW5nO1xyXG4gIHBhc3N3b3JkOiBzdHJpbmc7XHJcbn07XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3VuaS1sb2dpbi1tb2RhbCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBEeFBvcHVwTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBEeFRleHRCb3hNb2R1bGUsIER4QnV0dG9uTW9kdWxlXSxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGR4LXBvcHVwXHJcbiAgICAgIFt3cmFwcGVyQXR0cl09XCJ7IGlkOiAnbG9naW5Qb3B1cCcgfVwiXHJcbiAgICAgIFt3aWR0aF09XCInNDAlJ1wiXHJcbiAgICAgIFttaW5XaWR0aF09XCI0MDBcIlxyXG4gICAgICBbbWF4V2lkdGhdPVwiNzAwXCJcclxuICAgICAgW2hlaWdodF09XCI1MDBcIlxyXG4gICAgICBbdmlzaWJsZV09XCJ2aXNpYmlsZSgpXCJcclxuICAgICAgW3Nob3dUaXRsZV09XCJ0cnVlXCJcclxuICAgICAgW3RpdGxlXT1cIidMb2dpbidcIlxyXG4gICAgICBbZHJhZ0VuYWJsZWRdPVwiZmFsc2VcIlxyXG4gICAgICBbc2hvd0Nsb3NlQnV0dG9uXT1cInRydWVcIlxyXG4gICAgICBbaGlkZU9uT3V0c2lkZUNsaWNrXT1cImZhbHNlXCJcclxuICAgICAgKG9uSGlkaW5nKT1cIm9uSGlkaW5nKClcIj5cclxuICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgPGltZyBzcmM9XCIuLi8uLi8uLi9hc3NldHMvaW1hZ2VzL2xvZ28vbG9nb190cmFzcGFyZW50ZS5wbmdcIiBhbHQ9XCJMb2dvXCIgLz5cclxuICAgICAgICA8cD5VTklURUM8L3A+XHJcbiAgICAgICAgQGlmIChhdXRoU2VydmljZS51c2VyKCk7IGFzIHVzZXIpIHtcclxuICAgICAgICAgIDxkaXY+VXRlbnRlOiB7eyB1c2VyLnVzZXJuYW1lIH19PC9kaXY+XHJcbiAgICAgICAgICA8ZHgtYnV0dG9uXHJcbiAgICAgICAgICAgIGlkPVwibG9nb3V0QnV0dG9uXCJcclxuICAgICAgICAgICAgc3R5bGluZ01vZGU9XCJjb250YWluZWRcIlxyXG4gICAgICAgICAgICBbdGV4dF09XCInTG9nb3V0J1wiXHJcbiAgICAgICAgICAgIChvbkNsaWNrKT1cImxvZ291dCgpXCI+PC9keC1idXR0b24+XHJcbiAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImxvZ2luRm9ybVwiIChuZ1N1Ym1pdCk9XCJsb2dpbigpXCI+XHJcbiAgICAgICAgICAgIDxkeC10ZXh0LWJveFxyXG4gICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInVXNlcidcIlxyXG4gICAgICAgICAgICAgIHN0eWxpbmdNb2RlPVwib3V0bGluZWRcIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInVzZXJuYW1lXCJcclxuICAgICAgICAgICAgICBbaW5wdXRBdHRyXT1cInsgJ2FyaWEtbGFiZWwnOiAnVXNlcicgfVwiPjwvZHgtdGV4dC1ib3g+XHJcbiAgICAgICAgICAgIDxkeC10ZXh0LWJveFxyXG4gICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInUGFzc3dvcmQnXCJcclxuICAgICAgICAgICAgICBtb2RlPVwicGFzc3dvcmRcIlxyXG4gICAgICAgICAgICAgIHN0eWxpbmdNb2RlPVwib3V0bGluZWRcIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInBhc3N3b3JkXCJcclxuICAgICAgICAgICAgICBbaW5wdXRBdHRyXT1cInsgJ2FyaWEtbGFiZWwnOiAnUGFzc3dvcmQnIH1cIj48L2R4LXRleHQtYm94PlxyXG4gICAgICAgICAgICA8ZHgtYnV0dG9uXHJcbiAgICAgICAgICAgICAgaWQ9XCJsb2dpblN1Ym1pdEJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgc3R5bGluZ01vZGU9XCJjb250YWluZWRcIlxyXG4gICAgICAgICAgICAgIFt0ZXh0XT1cIidMb2dpbidcIlxyXG4gICAgICAgICAgICAgIFt1c2VTdWJtaXRCZWhhdmlvcl09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwibG9naW5Gb3JtLmludmFsaWRcIj48L2R4LWJ1dHRvbj5cclxuICAgICAgICAgIDwvZm9ybT5cclxuICAgICAgICB9XHJcbiAgICAgIDwvc2VjdGlvbj5cclxuICAgIDwvZHgtcG9wdXA+XHJcbiAgYCxcclxuICBzdHlsZVVybHM6IFsnLi91bmktbG9naW4tbW9kYWwuY29tcG9uZW50LnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIFVOSUxvZ2luTW9kYWxDb21wb25lbnQge1xyXG4gIC8qIFNlcnZpY2UgKi9cclxuICByZWFkb25seSByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcclxuICByZWFkb25seSBsb2NhdGlvbiA9IGluamVjdChMb2NhdGlvbik7XHJcbiAgcmVhZG9ubHkgYXV0aFNlcnZpY2UgPSBpbmplY3QoVU5JQXV0aFNlcnZpY2UpO1xyXG4gIHJlYWRvbmx5IHRvYXN0U2VydmljZSA9IGluamVjdChVTklUb2FzdFNlcnZpY2UpO1xyXG4gIHJlYWRvbmx5IHRyYW5zbGF0ZVNlcnZpY2UgPSBpbmplY3QoVU5JVHJhbnNsYXRlU2VydmljZSk7XHJcblxyXG4gIC8qIElucHV0ICYgb3V0cHV0ICovXHJcbiAgdmlzaWJpbGUgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcclxuICByb3V0ZUhvbWUgPSBpbnB1dDxzdHJpbmc+KCk7XHJcbiAgZW5hYmxlR29CYWNrID0gaW5wdXQucmVxdWlyZWQ8Ym9vbGVhbj4oKTtcclxuXHJcbiAgLyogRm9ybSAqL1xyXG4gIHB1YmxpYyByZWFkb25seSBsb2dpbkZvcm0gPSBuZXcgRm9ybUdyb3VwPHsgW0sgaW4ga2V5b2YgTG9naW5Gb3JtXTogRm9ybUNvbnRyb2w8TG9naW5Gb3JtW0tdPiB9Pih7XHJcbiAgICB1c2VybmFtZTogbmV3IEZvcm1Db250cm9sKCcnLCB7IG5vbk51bGxhYmxlOiB0cnVlLCB2YWxpZGF0b3JzOiBWYWxpZGF0b3JzLnJlcXVpcmVkIH0pLFxyXG4gICAgcGFzc3dvcmQ6IG5ldyBGb3JtQ29udHJvbCgnJywgeyBub25OdWxsYWJsZTogdHJ1ZSwgdmFsaWRhdG9yczogVmFsaWRhdG9ycy5yZXF1aXJlZCB9KSxcclxuICB9KTtcclxuXHJcbiAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIE1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXHJcbiAgcHVibGljIGxvZ2luKCk6IHZvaWQge1xyXG4gICAgdGhpcy5hdXRoU2VydmljZS5sb2dpbiQodGhpcy5sb2dpbkZvcm0uZ2V0UmF3VmFsdWUoKSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgaWYgKHRoaXMucm91dGVIb21lKCkpIHRoaXMucm91dGVyLm5hdmlnYXRlKFt0aGlzLnJvdXRlSG9tZV0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbG9nb3V0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5hdXRoU2VydmljZS5sb2dvdXQkKCkuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25IaWRpbmcoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5lbmFibGVHb0JhY2soKSkgdGhpcy5sb2NhdGlvbi5iYWNrKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5pLWNvbXBvbmVudC10dy11bmktbG9naW4tbW9kYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy91bmktY29tcG9uZW50LXR3L3VuaS1sb2dpbi1tb2RhbC91bmktY29tcG9uZW50LXR3LXVuaS1sb2dpbi1tb2RhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './src/uni-pie-chart.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy91bmktY29tcG9uZW50LXR3L3VuaS1waWUtY2hhcnQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywrQkFBK0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc3JjL3VuaS1waWUtY2hhcnQuY29tcG9uZW50JztcclxuIl19