valtech-components 2.0.451 → 2.0.453

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 (61) hide show
  1. package/esm2022/lib/components/organisms/tabbed-content/tabbed-content.component.mjs +170 -0
  2. package/esm2022/lib/components/organisms/tabbed-content/types.mjs +2 -0
  3. package/esm2022/lib/components/templates/page-content/page-content.component.mjs +11 -11
  4. package/esm2022/lib/components/templates/page-template/page-template.component.mjs +3 -5
  5. package/esm2022/lib/services/auth/auth-state.service.mjs +173 -0
  6. package/esm2022/lib/services/auth/auth.service.mjs +454 -0
  7. package/esm2022/lib/services/auth/config.mjs +76 -0
  8. package/esm2022/lib/services/auth/guards.mjs +194 -0
  9. package/esm2022/lib/services/auth/index.mjs +70 -0
  10. package/esm2022/lib/services/auth/interceptor.mjs +98 -0
  11. package/esm2022/lib/services/auth/storage.service.mjs +141 -0
  12. package/esm2022/lib/services/auth/sync.service.mjs +149 -0
  13. package/esm2022/lib/services/auth/token.service.mjs +113 -0
  14. package/esm2022/lib/services/auth/types.mjs +29 -0
  15. package/esm2022/lib/services/firebase/config.mjs +108 -0
  16. package/esm2022/lib/services/firebase/firebase.service.mjs +288 -0
  17. package/esm2022/lib/services/firebase/firestore-collection.mjs +254 -0
  18. package/esm2022/lib/services/firebase/firestore.service.mjs +509 -0
  19. package/esm2022/lib/services/firebase/index.mjs +49 -0
  20. package/esm2022/lib/services/firebase/messaging.service.mjs +512 -0
  21. package/esm2022/lib/services/firebase/shared-config.mjs +138 -0
  22. package/esm2022/lib/services/firebase/storage.service.mjs +422 -0
  23. package/esm2022/lib/services/firebase/types.mjs +8 -0
  24. package/esm2022/lib/services/firebase/utils/path-builder.mjs +195 -0
  25. package/esm2022/lib/services/firebase/utils/query-builder.mjs +302 -0
  26. package/esm2022/lib/services/link-processor.service.mjs +61 -43
  27. package/esm2022/lib/services/modal/modal.service.mjs +8 -9
  28. package/esm2022/lib/services/navigation.service.mjs +11 -11
  29. package/esm2022/public-api.mjs +23 -4
  30. package/fesm2022/valtech-components.mjs +4599 -102
  31. package/fesm2022/valtech-components.mjs.map +1 -1
  32. package/lib/components/organisms/tabbed-content/tabbed-content.component.d.ts +65 -0
  33. package/lib/components/organisms/tabbed-content/types.d.ts +53 -0
  34. package/lib/components/templates/page-content/page-content.component.d.ts +3 -0
  35. package/lib/services/auth/auth-state.service.d.ts +85 -0
  36. package/lib/services/auth/auth.service.d.ts +146 -0
  37. package/lib/services/auth/config.d.ts +38 -0
  38. package/lib/services/auth/guards.d.ts +123 -0
  39. package/lib/services/auth/index.d.ts +63 -0
  40. package/lib/services/auth/interceptor.d.ts +22 -0
  41. package/lib/services/auth/storage.service.d.ts +48 -0
  42. package/lib/services/auth/sync.service.d.ts +49 -0
  43. package/lib/services/auth/token.service.d.ts +51 -0
  44. package/lib/services/auth/types.d.ts +315 -0
  45. package/lib/services/firebase/config.d.ts +49 -0
  46. package/lib/services/firebase/firebase.service.d.ts +140 -0
  47. package/lib/services/firebase/firestore-collection.d.ts +175 -0
  48. package/lib/services/firebase/firestore.service.d.ts +304 -0
  49. package/lib/services/firebase/index.d.ts +39 -0
  50. package/lib/services/firebase/messaging.service.d.ts +263 -0
  51. package/lib/services/firebase/shared-config.d.ts +126 -0
  52. package/lib/services/firebase/storage.service.d.ts +206 -0
  53. package/lib/services/firebase/types.d.ts +281 -0
  54. package/lib/services/firebase/utils/path-builder.d.ts +132 -0
  55. package/lib/services/firebase/utils/query-builder.d.ts +210 -0
  56. package/lib/services/modal/modal.service.d.ts +2 -0
  57. package/lib/services/navigation.service.d.ts +4 -4
  58. package/package.json +3 -1
  59. package/public-api.d.ts +9 -0
  60. package/fesm2022/valtech-components-simple-modal-content.component-DQhEgUmS.mjs +0 -136
  61. package/fesm2022/valtech-components-simple-modal-content.component-DQhEgUmS.mjs.map +0 -1
package/public-api.d.ts CHANGED
@@ -44,13 +44,16 @@ export * from './lib/components/molecules/card/card.component';
44
44
  export * from './lib/components/molecules/card/types';
45
45
  export * from './lib/components/molecules/check-input/check-input.component';
46
46
  export * from './lib/components/molecules/comment-input/comment-input.component';
47
+ export * from './lib/components/molecules/comment-input/types';
47
48
  export * from './lib/components/molecules/content-loader/content-loader.component';
48
49
  export * from './lib/components/molecules/content-loader/types';
49
50
  export * from './lib/components/molecules/date-input/date-input.component';
51
+ export * from './lib/components/molecules/date-input/types';
50
52
  export * from './lib/components/molecules/email-input/email-input.component';
51
53
  export * from './lib/components/molecules/expandable-text/expandable-text.component';
52
54
  export * from './lib/components/molecules/expandable-text/types';
53
55
  export * from './lib/components/molecules/file-input/file-input.component';
56
+ export * from './lib/components/molecules/file-input/types';
54
57
  export * from './lib/components/molecules/hint/hint.component';
55
58
  export * from './lib/components/molecules/hour-input/hour-input.component';
56
59
  export * from './lib/components/molecules/language-selector/language-selector.component';
@@ -65,8 +68,10 @@ export * from './lib/components/molecules/notes-box/notes-box.component';
65
68
  export * from './lib/components/molecules/notes-box/types';
66
69
  export * from './lib/components/molecules/number-input/number-input.component';
67
70
  export * from './lib/components/molecules/number-from-to/number-from-to.component';
71
+ export * from './lib/components/molecules/number-from-to/types';
68
72
  export * from './lib/components/molecules/password-input/password-input.component';
69
73
  export * from './lib/components/molecules/pin-input/pin-input.component';
74
+ export * from './lib/components/molecules/pin-input/types';
70
75
  export * from './lib/components/molecules/popover-selector/popover-selector.component';
71
76
  export * from './lib/components/molecules/popover-selector/types';
72
77
  export * from './lib/components/molecules/progress-status/progress-status.component';
@@ -185,6 +190,8 @@ export * from './lib/components/organisms/company-footer/company-footer.componen
185
190
  export * from './lib/components/organisms/company-footer/types';
186
191
  export * from './lib/components/organisms/menu/menu.component';
187
192
  export * from './lib/components/organisms/menu/types';
193
+ export * from './lib/components/organisms/tabbed-content/tabbed-content.component';
194
+ export * from './lib/components/organisms/tabbed-content/types';
188
195
  export * from './lib/components/templates/layout/layout.component';
189
196
  export * from './lib/components/templates/simple/simple.component';
190
197
  export * from './lib/components/templates/simple/types';
@@ -210,6 +217,8 @@ export * from './lib/services/qr-generator/qr-generator.service';
210
217
  export * from './lib/services/qr-generator/types';
211
218
  export * from './lib/services/modal/modal.service';
212
219
  export * from './lib/services/modal/types';
220
+ export * from './lib/services/firebase';
221
+ export * from './lib/services/auth';
213
222
  export * from './lib/components/types';
214
223
  export * from './lib/shared/pipes/process-links.pipe';
215
224
  export * from './lib/shared/utils/dom';
@@ -1,136 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import * as i0 from '@angular/core';
3
- import { Component, Input } from '@angular/core';
4
- import { IonHeader, IonToolbar, IonTitle, IonButtons, IonButton, IonIcon, IonContent, IonFooter, IonSpinner } from '@ionic/angular/standalone';
5
- import { addIcons } from 'ionicons';
6
- import { closeOutline } from 'ionicons/icons';
7
-
8
- addIcons({ closeOutline });
9
- /**
10
- * Internal component for simple content modals.
11
- * Used by ModalService.openSimple()
12
- */
13
- class SimpleModalContentComponent {
14
- constructor() {
15
- this.title = '';
16
- this.content = '';
17
- this.buttons = [];
18
- this.showCloseButton = true;
19
- }
20
- async onButtonClick(button) {
21
- if (button.handler) {
22
- const result = await button.handler();
23
- // If handler returns false, don't dismiss
24
- if (result === false) {
25
- return;
26
- }
27
- }
28
- this._modalRef?.dismiss(undefined, button.role || 'confirm');
29
- }
30
- onDismiss(role) {
31
- this._modalRef?.dismiss(undefined, role);
32
- }
33
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SimpleModalContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
34
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: SimpleModalContentComponent, isStandalone: true, selector: "val-simple-modal-content", inputs: { title: "title", content: "content", buttons: "buttons", showCloseButton: "showCloseButton", _modalRef: "_modalRef" }, ngImport: i0, template: `
35
- <ion-header>
36
- <ion-toolbar>
37
- <ion-title>{{ title }}</ion-title>
38
- @if (showCloseButton) {
39
- <ion-buttons slot="end">
40
- <ion-button (click)="onDismiss('close')">
41
- <ion-icon slot="icon-only" name="close-outline"></ion-icon>
42
- </ion-button>
43
- </ion-buttons>
44
- }
45
- </ion-toolbar>
46
- </ion-header>
47
-
48
- <ion-content class="ion-padding">
49
- <div [innerHTML]="content"></div>
50
- </ion-content>
51
-
52
- @if (buttons && buttons.length > 0) {
53
- <ion-footer>
54
- <ion-toolbar>
55
- <div class="button-container">
56
- @for (button of buttons; track button.text) {
57
- <ion-button
58
- [color]="button.color || 'medium'"
59
- [fill]="button.fill || 'solid'"
60
- [size]="button.size || 'default'"
61
- [disabled]="button.disabled || button.loading"
62
- [class]="button.cssClass"
63
- (click)="onButtonClick(button)"
64
- >
65
- @if (button.loading) {
66
- <ion-spinner name="crescent"></ion-spinner>
67
- } @else {
68
- {{ button.text }}
69
- }
70
- </ion-button>
71
- }
72
- </div>
73
- </ion-toolbar>
74
- </ion-footer>
75
- }
76
- `, isInline: true, styles: [".button-container{display:flex;justify-content:flex-end;gap:8px;padding:8px 0}ion-content{--padding-top: 16px;--padding-bottom: 16px}ion-footer ion-toolbar{--padding-start: 16px;--padding-end: 16px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonFooter, selector: "ion-footer", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }] }); }
77
- }
78
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SimpleModalContentComponent, decorators: [{
79
- type: Component,
80
- args: [{ selector: 'val-simple-modal-content', standalone: true, imports: [CommonModule, IonHeader, IonToolbar, IonTitle, IonButtons, IonButton, IonIcon, IonContent, IonFooter, IonSpinner], template: `
81
- <ion-header>
82
- <ion-toolbar>
83
- <ion-title>{{ title }}</ion-title>
84
- @if (showCloseButton) {
85
- <ion-buttons slot="end">
86
- <ion-button (click)="onDismiss('close')">
87
- <ion-icon slot="icon-only" name="close-outline"></ion-icon>
88
- </ion-button>
89
- </ion-buttons>
90
- }
91
- </ion-toolbar>
92
- </ion-header>
93
-
94
- <ion-content class="ion-padding">
95
- <div [innerHTML]="content"></div>
96
- </ion-content>
97
-
98
- @if (buttons && buttons.length > 0) {
99
- <ion-footer>
100
- <ion-toolbar>
101
- <div class="button-container">
102
- @for (button of buttons; track button.text) {
103
- <ion-button
104
- [color]="button.color || 'medium'"
105
- [fill]="button.fill || 'solid'"
106
- [size]="button.size || 'default'"
107
- [disabled]="button.disabled || button.loading"
108
- [class]="button.cssClass"
109
- (click)="onButtonClick(button)"
110
- >
111
- @if (button.loading) {
112
- <ion-spinner name="crescent"></ion-spinner>
113
- } @else {
114
- {{ button.text }}
115
- }
116
- </ion-button>
117
- }
118
- </div>
119
- </ion-toolbar>
120
- </ion-footer>
121
- }
122
- `, styles: [".button-container{display:flex;justify-content:flex-end;gap:8px;padding:8px 0}ion-content{--padding-top: 16px;--padding-bottom: 16px}ion-footer ion-toolbar{--padding-start: 16px;--padding-end: 16px}\n"] }]
123
- }], propDecorators: { title: [{
124
- type: Input
125
- }], content: [{
126
- type: Input
127
- }], buttons: [{
128
- type: Input
129
- }], showCloseButton: [{
130
- type: Input
131
- }], _modalRef: [{
132
- type: Input
133
- }] } });
134
-
135
- export { SimpleModalContentComponent };
136
- //# sourceMappingURL=valtech-components-simple-modal-content.component-DQhEgUmS.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"valtech-components-simple-modal-content.component-DQhEgUmS.mjs","sources":["../../../src/lib/services/modal/simple-modal-content.component.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { IonHeader, IonToolbar, IonTitle, IonButtons, IonButton, IonIcon, IonContent, IonFooter, IonSpinner } from '@ionic/angular/standalone';\nimport { addIcons } from 'ionicons';\nimport { closeOutline } from 'ionicons/icons';\nimport { ModalButton } from './types';\n\naddIcons({ closeOutline });\n\n/**\n * Internal component for simple content modals.\n * Used by ModalService.openSimple()\n */\n@Component({\n selector: 'val-simple-modal-content',\n standalone: true,\n imports: [CommonModule, IonHeader, IonToolbar, IonTitle, IonButtons, IonButton, IonIcon, IonContent, IonFooter, IonSpinner],\n template: `\n <ion-header>\n <ion-toolbar>\n <ion-title>{{ title }}</ion-title>\n @if (showCloseButton) {\n <ion-buttons slot=\"end\">\n <ion-button (click)=\"onDismiss('close')\">\n <ion-icon slot=\"icon-only\" name=\"close-outline\"></ion-icon>\n </ion-button>\n </ion-buttons>\n }\n </ion-toolbar>\n </ion-header>\n\n <ion-content class=\"ion-padding\">\n <div [innerHTML]=\"content\"></div>\n </ion-content>\n\n @if (buttons && buttons.length > 0) {\n <ion-footer>\n <ion-toolbar>\n <div class=\"button-container\">\n @for (button of buttons; track button.text) {\n <ion-button\n [color]=\"button.color || 'medium'\"\n [fill]=\"button.fill || 'solid'\"\n [size]=\"button.size || 'default'\"\n [disabled]=\"button.disabled || button.loading\"\n [class]=\"button.cssClass\"\n (click)=\"onButtonClick(button)\"\n >\n @if (button.loading) {\n <ion-spinner name=\"crescent\"></ion-spinner>\n } @else {\n {{ button.text }}\n }\n </ion-button>\n }\n </div>\n </ion-toolbar>\n </ion-footer>\n }\n `,\n styles: [`\n .button-container {\n display: flex;\n justify-content: flex-end;\n gap: 8px;\n padding: 8px 0;\n }\n\n ion-content {\n --padding-top: 16px;\n --padding-bottom: 16px;\n }\n\n ion-footer ion-toolbar {\n --padding-start: 16px;\n --padding-end: 16px;\n }\n `],\n})\nexport class SimpleModalContentComponent {\n @Input() title: string = '';\n @Input() content: string = '';\n @Input() buttons: ModalButton[] = [];\n @Input() showCloseButton: boolean = true;\n\n // Injected by ModalService\n @Input() _modalRef: { dismiss: (data?: any, role?: string) => Promise<boolean> };\n\n async onButtonClick(button: ModalButton): Promise<void> {\n if (button.handler) {\n const result = await button.handler();\n // If handler returns false, don't dismiss\n if (result === false) {\n return;\n }\n }\n\n this._modalRef?.dismiss(undefined, button.role || 'confirm');\n }\n\n onDismiss(role: string): void {\n this._modalRef?.dismiss(undefined, role);\n }\n}\n"],"names":[],"mappings":"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"}