valtech-components 2.0.1014 → 2.0.1016
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/esm2022/lib/components/molecules/content-reaction/content-reaction.component.mjs +16 -4
- package/esm2022/lib/components/molecules/content-reaction/types.mjs +1 -1
- package/esm2022/lib/components/organisms/about-view/about-view.component.mjs +32 -5
- package/esm2022/lib/components/organisms/about-view/types.mjs +1 -1
- package/esm2022/lib/components/organisms/org-info-sheet/org-info-sheet.component.mjs +52 -40
- package/esm2022/lib/components/organisms/organization-view/organization-view.component.mjs +38 -15
- package/esm2022/lib/components/organisms/organization-view/organization-view.i18n.mjs +11 -3
- package/esm2022/lib/components/organisms/settings-hub/settings-menu.mjs +2 -2
- package/esm2022/lib/components/templates/docs-page/docs-page.component.mjs +1 -1
- package/esm2022/lib/version.mjs +2 -2
- package/fesm2022/valtech-components.mjs +144 -64
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/molecules/content-reaction/content-reaction.component.d.ts +12 -1
- package/lib/components/molecules/content-reaction/types.d.ts +8 -0
- package/lib/components/organisms/about-view/about-view.component.d.ts +1 -0
- package/lib/components/organisms/about-view/types.d.ts +9 -0
- package/lib/components/organisms/org-info-sheet/org-info-sheet.component.d.ts +7 -1
- package/lib/components/organisms/organization-view/organization-view.component.d.ts +1 -0
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
- package/src/lib/assets/fonts/Khula/khula-300-latin-ext.woff2 +0 -0
- package/src/lib/assets/fonts/Khula/khula-300-latin.woff2 +0 -0
- package/src/lib/assets/fonts/Khula/khula-400-latin-ext.woff2 +0 -0
- package/src/lib/assets/fonts/Khula/khula-400-latin.woff2 +0 -0
- package/src/lib/assets/fonts/Khula/khula-600-latin-ext.woff2 +0 -0
- package/src/lib/assets/fonts/Khula/khula-600-latin.woff2 +0 -0
- package/src/lib/assets/fonts/Khula/khula-700-latin-ext.woff2 +0 -0
- package/src/lib/assets/fonts/Khula/khula-700-latin.woff2 +0 -0
- package/src/lib/assets/fonts/Khula/khula-800-latin-ext.woff2 +0 -0
- package/src/lib/assets/fonts/Khula/khula-800-latin.woff2 +0 -0
- package/src/lib/services/firebase/firebase-messaging-sw.js +145 -0
- package/styles/fonts.scss +35 -3
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
export const VALTECH_SETTINGS_MENU_LINKS = [
|
|
2
2
|
{ textKey: 'menuGeneral', route: ['/app/settings/general'] },
|
|
3
3
|
{ textKey: 'menuAccount', route: ['/app/settings/account'] },
|
|
4
|
+
{ textKey: 'menuOrganization', route: ['/app/settings/organization'] },
|
|
4
5
|
{ textKey: 'menuProfile', route: ['/app/settings/profile'] },
|
|
5
6
|
{ textKey: 'menuSettingsNotifications', route: ['/app/settings/notifications'] },
|
|
6
7
|
{ textKey: 'menuSecurity', route: ['/app/settings/security'] },
|
|
7
|
-
{ textKey: 'menuOrganization', route: ['/app/settings/organization'] },
|
|
8
8
|
];
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MtbWVudS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvc2V0dGluZ3MtaHViL3NldHRpbmdzLW1lbnUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBcUJBLE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUF1QjtJQUM3RCxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLENBQUMsdUJBQXVCLENBQUMsRUFBRTtJQUM1RCxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLENBQUMsdUJBQXVCLENBQUMsRUFBRTtJQUM1RCxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsQ0FBQyw0QkFBNEIsQ0FBQyxFQUFFO0lBQ3RFLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFO0lBQzVELEVBQUUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLEtBQUssRUFBRSxDQUFDLDZCQUE2QixDQUFDLEVBQUU7SUFDaEYsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxDQUFDLHdCQUF3QixDQUFDLEVBQUU7Q0FDL0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogTGlua3MgY2Fuw7NuaWNvcyBkZWwgc3VibWVuw7ogXCJQcmVmZXJlbmNpYXNcIiBkZWwgc2lkZS1tZW51IGRlbCBmYWN0b3J5LlxuICpcbiAqIE1pc21hIGZ1ZW50ZSBkZSB2ZXJkYWQgcXVlIGxhcyBjYXJkcyBkZWwgSFVCIChgdmFsLXNldHRpbmdzLWh1YmApOiBUT0RBUyBsYXNcbiAqIGFwcHMgZGVsIGZhY3RvcnkgY29uc3VtZW4gZXN0YSBsaXN0YSBlbiBzdSBtZW7DuiBsYXRlcmFsIHBhcmEgcXVlIGVsIHN1Ym1lbsO6IGRlXG4gKiBwcmVmZXJlbmNpYXMgc2VhIElEw4lOVElDTyBlbnRyZSBhcHBzIChzaG93Y2FzZSwgYmluZ28sIOKApikgeSBjb25zaXN0ZW50ZSBjb24gZWxcbiAqIGh1Yi4gTG8gw7puaWNvIGFwcC1zcGVjaWZpYyBzb24gbGFzIGxhYmVscyAoaTE4biBuYW1lc3BhY2UgYE1lbnVgLCBxdWUgY2FkYSBhcHBcbiAqIHJlZ2lzdHJhKSDigJQgbGEgZXN0cnVjdHVyYS9ydXRhcyB2aWVuZW4gZGUgbGEgbGliLlxuICpcbiAqIE5vIGluY2x1eWUgYGFib3V0YCAoZXMgdW4gw610ZW0gdG9wLWxldmVsIGRlbCBtZW7Duiwgbm8gZGVsIHN1Ym1lbsO6KSwgbmkgYGxvZ291dGBcbiAqIChubyBlcyBsaW5rKSwgbmkgYHByZWZlcmVuY2VzYCAoZXMgZWwgaHViIG1pc21vKS4gU8OtIGluY2x1eWUgYGdlbmVyYWxgICg9IGxhXG4gKiB2aXN0YSBkZSBwcmVmZXJlbmNpYXMgVUkpLCBhY2NvdW50LCBwcm9maWxlLCBub3RpZmljYXRpb25zLCBzZWN1cml0eSB5XG4gKiBvcmdhbml6YXRpb24gKHNlY2Npw7NuIGNvcmUsIHZlciBzZXR0aW5ncy1zZWN0aW9ucy50cykuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2V0dGluZ3NNZW51TGluayB7XG4gIC8qKiBpMThuIGtleSBkZSBsYSBsYWJlbCAobmFtZXNwYWNlIGBNZW51YCBkZSBsYSBhcHApLiAqL1xuICB0ZXh0S2V5OiBzdHJpbmc7XG4gIC8qKiBSdXRhIGRlIG5hdmVnYWNpw7NuIChiYWpvIGVsIHNoZWxsIGAvYXBwYCkuICovXG4gIHJvdXRlOiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGNvbnN0IFZBTFRFQ0hfU0VUVElOR1NfTUVOVV9MSU5LUzogU2V0dGluZ3NNZW51TGlua1tdID0gW1xuICB7IHRleHRLZXk6ICdtZW51R2VuZXJhbCcsIHJvdXRlOiBbJy9hcHAvc2V0dGluZ3MvZ2VuZXJhbCddIH0sXG4gIHsgdGV4dEtleTogJ21lbnVBY2NvdW50Jywgcm91dGU6IFsnL2FwcC9zZXR0aW5ncy9hY2NvdW50J10gfSxcbiAgeyB0ZXh0S2V5OiAnbWVudU9yZ2FuaXphdGlvbicsIHJvdXRlOiBbJy9hcHAvc2V0dGluZ3Mvb3JnYW5pemF0aW9uJ10gfSxcbiAgeyB0ZXh0S2V5OiAnbWVudVByb2ZpbGUnLCByb3V0ZTogWycvYXBwL3NldHRpbmdzL3Byb2ZpbGUnXSB9LFxuICB7IHRleHRLZXk6ICdtZW51U2V0dGluZ3NOb3RpZmljYXRpb25zJywgcm91dGU6IFsnL2FwcC9zZXR0aW5ncy9ub3RpZmljYXRpb25zJ10gfSxcbiAgeyB0ZXh0S2V5OiAnbWVudVNlY3VyaXR5Jywgcm91dGU6IFsnL2FwcC9zZXR0aW5ncy9zZWN1cml0eSddIH0sXG5dO1xuIl19
|
|
@@ -194,7 +194,7 @@ export class DocsPageComponent {
|
|
|
194
194
|
</aside>
|
|
195
195
|
}
|
|
196
196
|
</div>
|
|
197
|
-
`, isInline: true, styles: [".docs-page{display:grid;grid-template-columns:1fr;gap:2rem;max-width:1400px;margin:0 auto;padding:2rem 1.5rem}@media (min-width: 1200px){.docs-page{grid-template-columns:1fr 220px;padding:2rem}}.docs-page__content{min-width:0;max-width:900px}val-docs-breadcrumb{display:block;margin-bottom:1rem}.docs-page__header{margin-bottom:2rem}.docs-page__title-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.docs-page__title{margin:0;font-size:2rem;font-weight:700;color:var(--ion-text-color, #1a1a1a);line-height:1.2}@media (min-width: 768px){.docs-page__title{font-size:2.5rem}}.docs-page__badge{display:inline-flex;align-items:center;padding:.25rem .5rem;font-size:.6875rem;font-weight:500;text-transform:uppercase;letter-spacing:.03em;border-radius:4px;background:#0000000a;color:#888}.docs-page__badge--success{background:#0000000a;color:#888}.docs-page__badge--warning{background:var(--ion-color-warning-tint, #fff3e0);color:var(--ion-color-warning-shade, #e65100)}.docs-page__badge--danger{background:var(--ion-color-danger-tint, #ffebee);color:var(--ion-color-danger-shade, #c62828)}.docs-page__lead{margin:1rem 0 0;font-size:1.125rem;line-height:1.7;color:var(--ion-color-medium, #666)}.docs-page__sections>*:last-child{margin-bottom:0}.docs-page__feedback{margin-top:3rem;padding-top:2rem;border-top:1px solid rgba(0,0,0,.08);display:flex;justify-content:center}.docs-page__toc{display:none}@media (min-width: 1200px){.docs-page__toc{display:block;position:sticky;top:2rem;height:fit-content;max-height:calc(100vh - 4rem);overflow-y:auto}}.docs-page__sections h2{font-size:1.5rem;font-weight:600;margin:0 0 1rem;color:var(--ion-text-color, #1a1a1a);scroll-margin-top:2rem}.docs-page__sections h3{font-size:1.125rem;font-weight:600;margin:1.5rem 0 1rem;color:var(--ion-text-color, #1a1a1a)}.docs-page__sections h4{font-size:1rem;font-weight:600;margin:1.25rem 0 .75rem;color:var(--ion-text-color, #1a1a1a)}.docs-page__sections p{line-height:1.7;color:var(--ion-text-color, #1a1a1a);margin:0 0 1rem}.docs-page__sections ul,.docs-page__sections ol{padding-left:1.5rem;margin:0 0 1rem}.docs-page__sections li{margin-bottom:.5rem;line-height:1.6;color:var(--ion-text-color, #1a1a1a)}.docs-page__sections a{color:var(--ion-color-primary, #3880ff);text-decoration:none}.docs-page__sections a:hover{text-decoration:underline}.docs-page__sections code:not([class*=language-]){background:#0000000f;padding:.125rem .375rem;border-radius:4px;font-family:SF Mono,Fira Code,Consolas,monospace;font-size:.875em}.docs-page__sections pre:not([class*=language-]){background:#0000000a;padding:1rem;border-radius:8px;overflow-x:auto;margin:0 0 1rem}.docs-page__sections pre:not([class*=language-]) code{background:none;padding:0}.docs-page__sections table{width:100%;border-collapse:collapse;margin:0 0 1rem;font-size:.875rem}.docs-page__sections th,.docs-page__sections td{padding:.75rem;text-align:left;border-bottom:1px solid rgba(0,0,0,.1)}.docs-page__sections th{font-weight:600;background:#00000005}.docs-page__sections blockquote{margin:0 0 1rem;padding:1rem 1.5rem;border-left:4px solid var(--ion-color-primary, #3880ff);background:#00000005;border-radius:0 8px 8px 0}.docs-page__sections blockquote p:last-child{margin-bottom:0}.docs-page__sections img{max-width:100%;height:auto;border-radius:8px}.docs-page__sections hr{border:none;border-top:1px solid rgba(0,0,0,.1);margin:2rem 0}.docs-page__sections strong{font-weight:600}.docs-page__sections section{margin-bottom:2rem}:host-context(.dark) .docs-page__badge,:host-context([color-scheme=\"dark\"]) .docs-page__badge{background:#ffffff0f;color:#999}:host-context(.dark) .docs-page__badge--success,:host-context([color-scheme=\"dark\"]) .docs-page__badge--success{background:#ffffff0f;color:#999}:host-context(.dark) .docs-page__badge--warning,:host-context([color-scheme=\"dark\"]) .docs-page__badge--warning{background:#e6510033;color:#ffb74d}:host-context(.dark) .docs-page__badge--danger,:host-context([color-scheme=\"dark\"]) .docs-page__badge--danger{background:#c6282833;color:#e57373}:host-context(.dark) .docs-page__sections code:not([class*=language-]),:host-context([color-scheme=\"dark\"]) .docs-page__sections code:not([class*=language-]){background:#ffffff1a}:host-context(.dark) .docs-page__sections pre:not([class*=language-]),:host-context([color-scheme=\"dark\"]) .docs-page__sections pre:not([class*=language-]){background:#ffffff0f}:host-context(.dark) .docs-page__sections th,:host-context([color-scheme=\"dark\"]) .docs-page__sections th{background:#ffffff0a}:host-context(.dark) .docs-page__sections th,:host-context(.dark) .docs-page__sections td,:host-context([color-scheme=\"dark\"]) .docs-page__sections th,:host-context([color-scheme=\"dark\"]) .docs-page__sections td{border-color:#ffffff1a}:host-context(.dark) .docs-page__sections blockquote,:host-context([color-scheme=\"dark\"]) .docs-page__sections blockquote{background:#ffffff0a}:host-context(.dark) .docs-page__sections hr,:host-context([color-scheme=\"dark\"]) .docs-page__sections hr{border-color:#ffffff1a}:host-context(.dark) .docs-page__feedback,:host-context([color-scheme=\"dark\"]) .docs-page__feedback{border-color:#ffffff1a}@media (max-width: 768px){.docs-page__feedback{margin-top:2rem;padding-top:1.5rem}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DocsBreadcrumbComponent, selector: "val-docs-breadcrumb", inputs: ["props"], outputs: ["navigate"] }, { kind: "component", type: DocsNavLinksComponent, selector: "val-docs-nav-links", inputs: ["props"], outputs: ["navigate"] }, { kind: "component", type: DocsTocComponent, selector: "val-docs-toc", inputs: ["props"], outputs: ["sectionChange"] }, { kind: "component", type: ContentReactionComponent, selector: "val-content-reaction", inputs: ["props"], outputs: ["reactionSubmit", "reactionChange"] }] }); }
|
|
197
|
+
`, isInline: true, styles: [".docs-page{display:grid;grid-template-columns:1fr;gap:2rem;max-width:1400px;margin:0 auto;padding:2rem 1.5rem}@media (min-width: 1200px){.docs-page{grid-template-columns:1fr 220px;padding:2rem}}.docs-page__content{min-width:0;max-width:900px}val-docs-breadcrumb{display:block;margin-bottom:1rem}.docs-page__header{margin-bottom:2rem}.docs-page__title-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.docs-page__title{margin:0;font-size:2rem;font-weight:700;color:var(--ion-text-color, #1a1a1a);line-height:1.2}@media (min-width: 768px){.docs-page__title{font-size:2.5rem}}.docs-page__badge{display:inline-flex;align-items:center;padding:.25rem .5rem;font-size:.6875rem;font-weight:500;text-transform:uppercase;letter-spacing:.03em;border-radius:4px;background:#0000000a;color:#888}.docs-page__badge--success{background:#0000000a;color:#888}.docs-page__badge--warning{background:var(--ion-color-warning-tint, #fff3e0);color:var(--ion-color-warning-shade, #e65100)}.docs-page__badge--danger{background:var(--ion-color-danger-tint, #ffebee);color:var(--ion-color-danger-shade, #c62828)}.docs-page__lead{margin:1rem 0 0;font-size:1.125rem;line-height:1.7;color:var(--ion-color-medium, #666)}.docs-page__sections>*:last-child{margin-bottom:0}.docs-page__feedback{margin-top:3rem;padding-top:2rem;border-top:1px solid rgba(0,0,0,.08);display:flex;justify-content:center}.docs-page__toc{display:none}@media (min-width: 1200px){.docs-page__toc{display:block;position:sticky;top:2rem;height:fit-content;max-height:calc(100vh - 4rem);overflow-y:auto}}.docs-page__sections h2{font-size:1.5rem;font-weight:600;margin:0 0 1rem;color:var(--ion-text-color, #1a1a1a);scroll-margin-top:2rem}.docs-page__sections h3{font-size:1.125rem;font-weight:600;margin:1.5rem 0 1rem;color:var(--ion-text-color, #1a1a1a)}.docs-page__sections h4{font-size:1rem;font-weight:600;margin:1.25rem 0 .75rem;color:var(--ion-text-color, #1a1a1a)}.docs-page__sections p{line-height:1.7;color:var(--ion-text-color, #1a1a1a);margin:0 0 1rem}.docs-page__sections ul,.docs-page__sections ol{padding-left:1.5rem;margin:0 0 1rem}.docs-page__sections li{margin-bottom:.5rem;line-height:1.6;color:var(--ion-text-color, #1a1a1a)}.docs-page__sections a{color:var(--ion-color-primary, #3880ff);text-decoration:none}.docs-page__sections a:hover{text-decoration:underline}.docs-page__sections code:not([class*=language-]){background:#0000000f;padding:.125rem .375rem;border-radius:4px;font-family:SF Mono,Fira Code,Consolas,monospace;font-size:.875em}.docs-page__sections pre:not([class*=language-]){background:#0000000a;padding:1rem;border-radius:8px;overflow-x:auto;margin:0 0 1rem}.docs-page__sections pre:not([class*=language-]) code{background:none;padding:0}.docs-page__sections table{width:100%;border-collapse:collapse;margin:0 0 1rem;font-size:.875rem}.docs-page__sections th,.docs-page__sections td{padding:.75rem;text-align:left;border-bottom:1px solid rgba(0,0,0,.1)}.docs-page__sections th{font-weight:600;background:#00000005}.docs-page__sections blockquote{margin:0 0 1rem;padding:1rem 1.5rem;border-left:4px solid var(--ion-color-primary, #3880ff);background:#00000005;border-radius:0 8px 8px 0}.docs-page__sections blockquote p:last-child{margin-bottom:0}.docs-page__sections img{max-width:100%;height:auto;border-radius:8px}.docs-page__sections hr{border:none;border-top:1px solid rgba(0,0,0,.1);margin:2rem 0}.docs-page__sections strong{font-weight:600}.docs-page__sections section{margin-bottom:2rem}:host-context(.dark) .docs-page__badge,:host-context([color-scheme=\"dark\"]) .docs-page__badge{background:#ffffff0f;color:#999}:host-context(.dark) .docs-page__badge--success,:host-context([color-scheme=\"dark\"]) .docs-page__badge--success{background:#ffffff0f;color:#999}:host-context(.dark) .docs-page__badge--warning,:host-context([color-scheme=\"dark\"]) .docs-page__badge--warning{background:#e6510033;color:#ffb74d}:host-context(.dark) .docs-page__badge--danger,:host-context([color-scheme=\"dark\"]) .docs-page__badge--danger{background:#c6282833;color:#e57373}:host-context(.dark) .docs-page__sections code:not([class*=language-]),:host-context([color-scheme=\"dark\"]) .docs-page__sections code:not([class*=language-]){background:#ffffff1a}:host-context(.dark) .docs-page__sections pre:not([class*=language-]),:host-context([color-scheme=\"dark\"]) .docs-page__sections pre:not([class*=language-]){background:#ffffff0f}:host-context(.dark) .docs-page__sections th,:host-context([color-scheme=\"dark\"]) .docs-page__sections th{background:#ffffff0a}:host-context(.dark) .docs-page__sections th,:host-context(.dark) .docs-page__sections td,:host-context([color-scheme=\"dark\"]) .docs-page__sections th,:host-context([color-scheme=\"dark\"]) .docs-page__sections td{border-color:#ffffff1a}:host-context(.dark) .docs-page__sections blockquote,:host-context([color-scheme=\"dark\"]) .docs-page__sections blockquote{background:#ffffff0a}:host-context(.dark) .docs-page__sections hr,:host-context([color-scheme=\"dark\"]) .docs-page__sections hr{border-color:#ffffff1a}:host-context(.dark) .docs-page__feedback,:host-context([color-scheme=\"dark\"]) .docs-page__feedback{border-color:#ffffff1a}@media (max-width: 768px){.docs-page__feedback{margin-top:2rem;padding-top:1.5rem}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DocsBreadcrumbComponent, selector: "val-docs-breadcrumb", inputs: ["props"], outputs: ["navigate"] }, { kind: "component", type: DocsNavLinksComponent, selector: "val-docs-nav-links", inputs: ["props"], outputs: ["navigate"] }, { kind: "component", type: DocsTocComponent, selector: "val-docs-toc", inputs: ["props"], outputs: ["sectionChange"] }, { kind: "component", type: ContentReactionComponent, selector: "val-content-reaction", inputs: ["props", "_modalRef"], outputs: ["reactionSubmit", "reactionChange"] }] }); }
|
|
198
198
|
}
|
|
199
199
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DocsPageComponent, decorators: [{
|
|
200
200
|
type: Component,
|
package/esm2022/lib/version.mjs
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
* Current version of valtech-components.
|
|
3
3
|
* This is automatically updated during the publish process.
|
|
4
4
|
*/
|
|
5
|
-
export const VERSION = '2.0.
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
export const VERSION = '2.0.1016';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzIuMC4xMDE2JztcbiJdfQ==
|
|
@@ -54,7 +54,7 @@ import 'prismjs/components/prism-json';
|
|
|
54
54
|
* Current version of valtech-components.
|
|
55
55
|
* This is automatically updated during the publish process.
|
|
56
56
|
*/
|
|
57
|
-
const VERSION = '2.0.
|
|
57
|
+
const VERSION = '2.0.1016';
|
|
58
58
|
|
|
59
59
|
// Control de estado de refresco (singleton a nivel de módulo)
|
|
60
60
|
let isRefreshing = false;
|
|
@@ -43466,10 +43466,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
43466
43466
|
const VALTECH_SETTINGS_MENU_LINKS = [
|
|
43467
43467
|
{ textKey: 'menuGeneral', route: ['/app/settings/general'] },
|
|
43468
43468
|
{ textKey: 'menuAccount', route: ['/app/settings/account'] },
|
|
43469
|
+
{ textKey: 'menuOrganization', route: ['/app/settings/organization'] },
|
|
43469
43470
|
{ textKey: 'menuProfile', route: ['/app/settings/profile'] },
|
|
43470
43471
|
{ textKey: 'menuSettingsNotifications', route: ['/app/settings/notifications'] },
|
|
43471
43472
|
{ textKey: 'menuSecurity', route: ['/app/settings/security'] },
|
|
43472
|
-
{ textKey: 'menuOrganization', route: ['/app/settings/organization'] },
|
|
43473
43473
|
];
|
|
43474
43474
|
|
|
43475
43475
|
addIcons({ shieldCheckmarkOutline, checkmarkCircleOutline });
|
|
@@ -46129,6 +46129,12 @@ class OrgInfoSheetComponent {
|
|
|
46129
46129
|
this.body = '';
|
|
46130
46130
|
/** Label del botón cerrar (resuelto por el consumer). Fallback al namespace propio. */
|
|
46131
46131
|
this.closeLabel = '';
|
|
46132
|
+
/**
|
|
46133
|
+
* Muestra las 3 feature-cards de organizaciones (colaboración / cambio rápido /
|
|
46134
|
+
* invitaciones). `false` → sheet article-style (solo título + subtítulo + cuerpo),
|
|
46135
|
+
* reusable como explainer genérico (ej. integraciones / API keys). Default `true`.
|
|
46136
|
+
*/
|
|
46137
|
+
this.showFeatures = true;
|
|
46132
46138
|
/** Props del botón cerrar del footer (el consumer puede pasar custom). */
|
|
46133
46139
|
this.closeProps = {
|
|
46134
46140
|
text: 'Cerrar',
|
|
@@ -46158,7 +46164,7 @@ class OrgInfoSheetComponent {
|
|
|
46158
46164
|
return this.i18n.t(key, DEFAULT_NAMESPACE$d);
|
|
46159
46165
|
}
|
|
46160
46166
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: OrgInfoSheetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
46161
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: OrgInfoSheetComponent, isStandalone: true, selector: "val-org-info-sheet", inputs: { title: "title", subtitle: "subtitle", body: "body", closeLabel: "closeLabel", closeProps: "closeProps", _modalRef: "_modalRef" }, ngImport: i0, template: `
|
|
46167
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: OrgInfoSheetComponent, isStandalone: true, selector: "val-org-info-sheet", inputs: { title: "title", subtitle: "subtitle", body: "body", closeLabel: "closeLabel", showFeatures: "showFeatures", closeProps: "closeProps", _modalRef: "_modalRef" }, ngImport: i0, template: `
|
|
46162
46168
|
<ion-header>
|
|
46163
46169
|
<ion-toolbar>
|
|
46164
46170
|
<ion-buttons slot="end">
|
|
@@ -46173,29 +46179,31 @@ class OrgInfoSheetComponent {
|
|
|
46173
46179
|
<val-display [props]="{ content: resolvedTitle(), size: 'small', color: 'dark' }" />
|
|
46174
46180
|
<val-title [props]="{ content: resolvedSubtitle(), size: 'large', color: '', bold: false }" />
|
|
46175
46181
|
|
|
46176
|
-
|
|
46177
|
-
<div class="info-
|
|
46178
|
-
<
|
|
46179
|
-
|
|
46180
|
-
<div
|
|
46181
|
-
|
|
46182
|
+
@if (showFeatures) {
|
|
46183
|
+
<div class="info-features">
|
|
46184
|
+
<div class="info-feature">
|
|
46185
|
+
<ion-icon name="people-outline" class="info-feature__icon" />
|
|
46186
|
+
<div>
|
|
46187
|
+
<div class="info-feature__title">{{ tt('featureCollabTitle') }}</div>
|
|
46188
|
+
<div class="info-feature__desc">{{ tt('featureCollabDesc') }}</div>
|
|
46189
|
+
</div>
|
|
46182
46190
|
</div>
|
|
46183
|
-
|
|
46184
|
-
|
|
46185
|
-
|
|
46186
|
-
|
|
46187
|
-
|
|
46188
|
-
|
|
46191
|
+
<div class="info-feature">
|
|
46192
|
+
<ion-icon name="swap-horizontal-outline" class="info-feature__icon" />
|
|
46193
|
+
<div>
|
|
46194
|
+
<div class="info-feature__title">{{ tt('featureSwitchTitle') }}</div>
|
|
46195
|
+
<div class="info-feature__desc">{{ tt('featureSwitchDesc') }}</div>
|
|
46196
|
+
</div>
|
|
46189
46197
|
</div>
|
|
46190
|
-
|
|
46191
|
-
|
|
46192
|
-
|
|
46193
|
-
|
|
46194
|
-
|
|
46195
|
-
|
|
46198
|
+
<div class="info-feature">
|
|
46199
|
+
<ion-icon name="mail-outline" class="info-feature__icon" />
|
|
46200
|
+
<div>
|
|
46201
|
+
<div class="info-feature__title">{{ tt('featureInviteTitle') }}</div>
|
|
46202
|
+
<div class="info-feature__desc">{{ tt('featureInviteDesc') }}</div>
|
|
46203
|
+
</div>
|
|
46196
46204
|
</div>
|
|
46197
46205
|
</div>
|
|
46198
|
-
|
|
46206
|
+
}
|
|
46199
46207
|
|
|
46200
46208
|
@for (para of paragraphs(); track $index) {
|
|
46201
46209
|
<val-text
|
|
@@ -46242,29 +46250,31 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
46242
46250
|
<val-display [props]="{ content: resolvedTitle(), size: 'small', color: 'dark' }" />
|
|
46243
46251
|
<val-title [props]="{ content: resolvedSubtitle(), size: 'large', color: '', bold: false }" />
|
|
46244
46252
|
|
|
46245
|
-
|
|
46246
|
-
<div class="info-
|
|
46247
|
-
<
|
|
46248
|
-
|
|
46249
|
-
<div
|
|
46250
|
-
|
|
46253
|
+
@if (showFeatures) {
|
|
46254
|
+
<div class="info-features">
|
|
46255
|
+
<div class="info-feature">
|
|
46256
|
+
<ion-icon name="people-outline" class="info-feature__icon" />
|
|
46257
|
+
<div>
|
|
46258
|
+
<div class="info-feature__title">{{ tt('featureCollabTitle') }}</div>
|
|
46259
|
+
<div class="info-feature__desc">{{ tt('featureCollabDesc') }}</div>
|
|
46260
|
+
</div>
|
|
46251
46261
|
</div>
|
|
46252
|
-
|
|
46253
|
-
|
|
46254
|
-
|
|
46255
|
-
|
|
46256
|
-
|
|
46257
|
-
|
|
46262
|
+
<div class="info-feature">
|
|
46263
|
+
<ion-icon name="swap-horizontal-outline" class="info-feature__icon" />
|
|
46264
|
+
<div>
|
|
46265
|
+
<div class="info-feature__title">{{ tt('featureSwitchTitle') }}</div>
|
|
46266
|
+
<div class="info-feature__desc">{{ tt('featureSwitchDesc') }}</div>
|
|
46267
|
+
</div>
|
|
46258
46268
|
</div>
|
|
46259
|
-
|
|
46260
|
-
|
|
46261
|
-
|
|
46262
|
-
|
|
46263
|
-
|
|
46264
|
-
|
|
46269
|
+
<div class="info-feature">
|
|
46270
|
+
<ion-icon name="mail-outline" class="info-feature__icon" />
|
|
46271
|
+
<div>
|
|
46272
|
+
<div class="info-feature__title">{{ tt('featureInviteTitle') }}</div>
|
|
46273
|
+
<div class="info-feature__desc">{{ tt('featureInviteDesc') }}</div>
|
|
46274
|
+
</div>
|
|
46265
46275
|
</div>
|
|
46266
46276
|
</div>
|
|
46267
|
-
|
|
46277
|
+
}
|
|
46268
46278
|
|
|
46269
46279
|
@for (para of paragraphs(); track $index) {
|
|
46270
46280
|
<val-text
|
|
@@ -46290,6 +46300,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
46290
46300
|
type: Input
|
|
46291
46301
|
}], closeLabel: [{
|
|
46292
46302
|
type: Input
|
|
46303
|
+
}], showFeatures: [{
|
|
46304
|
+
type: Input
|
|
46293
46305
|
}], closeProps: [{
|
|
46294
46306
|
type: Input
|
|
46295
46307
|
}], _modalRef: [{
|
|
@@ -49823,7 +49835,11 @@ const ORGANIZATION_VIEW_I18N = {
|
|
|
49823
49835
|
apiKeysSectionTitle: 'Integraciones (API Keys)',
|
|
49824
49836
|
apiKeysSectionHint: 'También puedes operar tu organización vía API: crea una Client API Key org-scopeada para integraciones máquina-a-máquina (por ejemplo, dar de alta miembros en masa desde tu propio sistema).',
|
|
49825
49837
|
apiKeysMoreInfo: 'Más información',
|
|
49826
|
-
|
|
49838
|
+
apiKeysInfoTitle: 'Integraciones por API',
|
|
49839
|
+
apiKeysInfoSubtitle: 'Opera tu organización máquina-a-máquina',
|
|
49840
|
+
apiKeysInfoContent: 'Una API Key te permite operar tu organización desde tus propios sistemas, sin entrar a la app: dar de alta usuarios, asignar roles, leer datos y automatizar flujos.\n\nCada key es org-scopeada y lleva solo los permisos que le asignes — concede el mínimo necesario. Puedes revocarla en cualquier momento.\n\nEl secreto se muestra una sola vez al crearla: guárdalo en un lugar seguro. Si lo pierdes, genera una nueva key y revoca la anterior.',
|
|
49841
|
+
apiKeysInfoClose: 'Entendido',
|
|
49842
|
+
orgsMoreInfo: 'Aprender más sobre organizaciones',
|
|
49827
49843
|
orgsInfoTitle: '¿Qué son las organizaciones?',
|
|
49828
49844
|
orgsInfoSubtitle: 'Todo lo que necesitas saber',
|
|
49829
49845
|
orgsInfoClose: 'Cerrar',
|
|
@@ -49902,7 +49918,11 @@ const ORGANIZATION_VIEW_I18N = {
|
|
|
49902
49918
|
apiKeysSectionTitle: 'Integrations (API Keys)',
|
|
49903
49919
|
apiKeysSectionHint: 'You can also operate your organization via API: create an org-scoped Client API Key for machine-to-machine integrations (for example, bulk-provisioning members from your own system).',
|
|
49904
49920
|
apiKeysMoreInfo: 'More information',
|
|
49905
|
-
|
|
49921
|
+
apiKeysInfoTitle: 'API integrations',
|
|
49922
|
+
apiKeysInfoSubtitle: 'Operate your organization machine-to-machine',
|
|
49923
|
+
apiKeysInfoContent: 'An API Key lets you operate your organization from your own systems, without opening the app: provision users, assign roles, read data, and automate flows.\n\nEach key is org-scoped and carries only the permissions you assign — grant the minimum needed. You can revoke it at any time.\n\nThe secret is shown only once at creation: store it somewhere safe. If you lose it, create a new key and revoke the old one.',
|
|
49924
|
+
apiKeysInfoClose: 'Got it',
|
|
49925
|
+
orgsMoreInfo: 'Learn more about organizations',
|
|
49906
49926
|
orgsInfoTitle: 'What are organizations?',
|
|
49907
49927
|
orgsInfoSubtitle: 'Everything you need to know',
|
|
49908
49928
|
orgsInfoClose: 'Close',
|
|
@@ -50291,6 +50311,31 @@ class OrganizationViewComponent {
|
|
|
50291
50311
|
backdropDismiss: true,
|
|
50292
50312
|
});
|
|
50293
50313
|
}
|
|
50314
|
+
// "Más información" de la sección Integraciones — abre un sheet EXPLICATIVO
|
|
50315
|
+
// (article-style, sin las feature-cards de org), NO el modal de gestión de API
|
|
50316
|
+
// keys. La gestión se abre con el botón "Gestionar" (onOpenApiKeys).
|
|
50317
|
+
onApiKeysInfo() {
|
|
50318
|
+
void this.modalService.open({
|
|
50319
|
+
component: OrgInfoSheetComponent,
|
|
50320
|
+
componentProps: {
|
|
50321
|
+
showFeatures: false,
|
|
50322
|
+
title: this.tt('apiKeysInfoTitle'),
|
|
50323
|
+
subtitle: this.tt('apiKeysInfoSubtitle'),
|
|
50324
|
+
body: this.tt('apiKeysInfoContent'),
|
|
50325
|
+
closeLabel: this.tt('apiKeysInfoClose'),
|
|
50326
|
+
closeProps: {
|
|
50327
|
+
text: this.tt('apiKeysInfoClose'),
|
|
50328
|
+
fill: 'outline',
|
|
50329
|
+
color: 'dark',
|
|
50330
|
+
size: 'default',
|
|
50331
|
+
expand: 'block',
|
|
50332
|
+
type: 'button',
|
|
50333
|
+
},
|
|
50334
|
+
},
|
|
50335
|
+
breakpoints: { breakpoints: [0, 0.85], initialBreakpoint: 0.85, showHandle: true },
|
|
50336
|
+
backdropDismiss: true,
|
|
50337
|
+
});
|
|
50338
|
+
}
|
|
50294
50339
|
onViewPermissions() {
|
|
50295
50340
|
this.nav.navigateByUrl(this.resolvedConfig().viewPermissionsRoute);
|
|
50296
50341
|
}
|
|
@@ -50517,6 +50562,11 @@ class OrganizationViewComponent {
|
|
|
50517
50562
|
content: pageDescription(),
|
|
50518
50563
|
}"
|
|
50519
50564
|
/>
|
|
50565
|
+
<!-- "Aprender más sobre organizaciones" — bajo el título+subtítulo
|
|
50566
|
+
principal de la vista (abre el explainer org-info-sheet). -->
|
|
50567
|
+
<button class="org-more-info-link" type="button" (click)="onOrgInfo()">
|
|
50568
|
+
{{ tt('orgsMoreInfo') }}
|
|
50569
|
+
</button>
|
|
50520
50570
|
</header>
|
|
50521
50571
|
|
|
50522
50572
|
@if (resolvedConfig().showInfo) {
|
|
@@ -50536,12 +50586,6 @@ class OrganizationViewComponent {
|
|
|
50536
50586
|
}
|
|
50537
50587
|
</div>
|
|
50538
50588
|
|
|
50539
|
-
<!-- "Más información" sobre organizaciones — disponible siempre (todo
|
|
50540
|
-
user tiene org por defecto y no ve el empty-state de account). -->
|
|
50541
|
-
<button class="org-more-info-link" type="button" (click)="onOrgInfo()">
|
|
50542
|
-
{{ tt('orgsMoreInfo') }}
|
|
50543
|
-
</button>
|
|
50544
|
-
|
|
50545
50589
|
<div class="section-body">
|
|
50546
50590
|
@if (loading()) {
|
|
50547
50591
|
<val-skeleton-layout [props]="{ preset: 'detail', rows: 4 }" />
|
|
@@ -50694,7 +50738,7 @@ class OrganizationViewComponent {
|
|
|
50694
50738
|
<div class="invite-cta__text">
|
|
50695
50739
|
<val-title [props]="{ size: 'medium', color: 'dark', bold: true, content: tt('apiKeysSectionTitle') }" />
|
|
50696
50740
|
<val-text [props]="{ size: 'medium', color: 'dark', bold: false, content: tt('apiKeysSectionHint') }" />
|
|
50697
|
-
<button class="org-more-info-link" type="button" (click)="
|
|
50741
|
+
<button class="org-more-info-link" type="button" (click)="onApiKeysInfo()">
|
|
50698
50742
|
{{ tt('apiKeysMoreInfo') }}
|
|
50699
50743
|
</button>
|
|
50700
50744
|
</div>
|
|
@@ -50821,6 +50865,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
50821
50865
|
content: pageDescription(),
|
|
50822
50866
|
}"
|
|
50823
50867
|
/>
|
|
50868
|
+
<!-- "Aprender más sobre organizaciones" — bajo el título+subtítulo
|
|
50869
|
+
principal de la vista (abre el explainer org-info-sheet). -->
|
|
50870
|
+
<button class="org-more-info-link" type="button" (click)="onOrgInfo()">
|
|
50871
|
+
{{ tt('orgsMoreInfo') }}
|
|
50872
|
+
</button>
|
|
50824
50873
|
</header>
|
|
50825
50874
|
|
|
50826
50875
|
@if (resolvedConfig().showInfo) {
|
|
@@ -50840,12 +50889,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
50840
50889
|
}
|
|
50841
50890
|
</div>
|
|
50842
50891
|
|
|
50843
|
-
<!-- "Más información" sobre organizaciones — disponible siempre (todo
|
|
50844
|
-
user tiene org por defecto y no ve el empty-state de account). -->
|
|
50845
|
-
<button class="org-more-info-link" type="button" (click)="onOrgInfo()">
|
|
50846
|
-
{{ tt('orgsMoreInfo') }}
|
|
50847
|
-
</button>
|
|
50848
|
-
|
|
50849
50892
|
<div class="section-body">
|
|
50850
50893
|
@if (loading()) {
|
|
50851
50894
|
<val-skeleton-layout [props]="{ preset: 'detail', rows: 4 }" />
|
|
@@ -50998,7 +51041,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
50998
51041
|
<div class="invite-cta__text">
|
|
50999
51042
|
<val-title [props]="{ size: 'medium', color: 'dark', bold: true, content: tt('apiKeysSectionTitle') }" />
|
|
51000
51043
|
<val-text [props]="{ size: 'medium', color: 'dark', bold: false, content: tt('apiKeysSectionHint') }" />
|
|
51001
|
-
<button class="org-more-info-link" type="button" (click)="
|
|
51044
|
+
<button class="org-more-info-link" type="button" (click)="onApiKeysInfo()">
|
|
51002
51045
|
{{ tt('apiKeysMoreInfo') }}
|
|
51003
51046
|
</button>
|
|
51004
51047
|
</div>
|
|
@@ -53589,6 +53632,7 @@ const CONTENT_REACTION_I18N = {
|
|
|
53589
53632
|
positiveLabel: 'Sí, mucho',
|
|
53590
53633
|
negativeLabel: 'No tanto',
|
|
53591
53634
|
negativeFeedbackTitle: '¿Cuéntanos qué no te gustó?',
|
|
53635
|
+
close: 'Cerrar',
|
|
53592
53636
|
},
|
|
53593
53637
|
en: {
|
|
53594
53638
|
question: 'Was this content helpful?',
|
|
@@ -53601,6 +53645,7 @@ const CONTENT_REACTION_I18N = {
|
|
|
53601
53645
|
positiveLabel: 'Yes, a lot',
|
|
53602
53646
|
negativeLabel: 'Not really',
|
|
53603
53647
|
negativeFeedbackTitle: "Tell us what you didn't like?",
|
|
53648
|
+
close: 'Close',
|
|
53604
53649
|
},
|
|
53605
53650
|
};
|
|
53606
53651
|
/**
|
|
@@ -53655,6 +53700,7 @@ class ContentReactionComponent {
|
|
|
53655
53700
|
readonly: this.props.readonly ?? false,
|
|
53656
53701
|
// Variante: 'emoji' cuando se declara explícitamente o cuando se pasan emojis custom.
|
|
53657
53702
|
variant: this.props.variant ?? (this.props.emojis ? 'emoji' : 'buttons'),
|
|
53703
|
+
showCloseButton: this.props.showCloseButton ?? false,
|
|
53658
53704
|
}));
|
|
53659
53705
|
this.activeReactionValues = computed(() => this.resolvedProps().emojis.length === 2 ? ['negative', 'positive'] : ['negative', 'neutral', 'positive']);
|
|
53660
53706
|
this.showCommentField = computed(() => {
|
|
@@ -53667,6 +53713,7 @@ class ContentReactionComponent {
|
|
|
53667
53713
|
return this.resolvedProps().showComment;
|
|
53668
53714
|
});
|
|
53669
53715
|
this.canSubmit = computed(() => this.state().selectedValue !== null && !this.state().isLoading);
|
|
53716
|
+
addIcons({ closeOutline });
|
|
53670
53717
|
// Auto-registro de defaults i18n (es/en) si el consumer no proveyó el
|
|
53671
53718
|
// namespace. Garantiza que `t()` nunca caiga en key faltante. Ver
|
|
53672
53719
|
// CONTENT_REACTION_I18N. Idempotente: solo la 1ª instancia registra.
|
|
@@ -53674,6 +53721,10 @@ class ContentReactionComponent {
|
|
|
53674
53721
|
this.i18n.registerContent('ContentReaction', CONTENT_REACTION_I18N);
|
|
53675
53722
|
}
|
|
53676
53723
|
}
|
|
53724
|
+
/** Cierra el modal/sheet contenedor (si el componente se abrió vía ModalService). */
|
|
53725
|
+
close() {
|
|
53726
|
+
void this._modalRef?.dismiss();
|
|
53727
|
+
}
|
|
53677
53728
|
ngOnInit() {
|
|
53678
53729
|
this.loadPreviousReaction();
|
|
53679
53730
|
}
|
|
@@ -53813,13 +53864,15 @@ class ContentReactionComponent {
|
|
|
53813
53864
|
return this.i18n.t(key, 'ContentReaction') || translations[key] || key;
|
|
53814
53865
|
}
|
|
53815
53866
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ContentReactionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
53816
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ContentReactionComponent, isStandalone: true, selector: "val-content-reaction", inputs: { props: "props" }, outputs: { reactionSubmit: "reactionSubmit", reactionChange: "reactionChange" }, usesOnChanges: true, ngImport: i0, template: "@if (isConfigured()) {\n<div class=\"content-reaction\" [class.disabled]=\"resolvedProps().disabled\" [class.readonly]=\"resolvedProps().readonly\">\n <!-- Loading inicial -->\n @if (state().isLoading && !state().selectedValue) {\n <div class=\"loading-container\">\n <ion-spinner name=\"crescent\"></ion-spinner>\n </div>\n } @else {\n <!-- Pregunta -->\n <p class=\"question\">\n {{ state().selectedValue === 'negative' ? t('negativeFeedbackTitle') : resolvedProps().question }}\n </p>\n\n <!-- Botones de reacci\u00F3n \u2014 variante emoji (caras, estrellas, thumbs, \u2026) -->\n @if (resolvedProps().variant === 'emoji') {\n <div class=\"reaction-buttons reaction-buttons--emoji\">\n @for (value of activeReactionValues(); track value; let i = $index) {\n <ion-button\n fill=\"clear\"\n shape=\"round\"\n [class.selected]=\"isSelected(value)\"\n [attr.aria-label]=\"resolvedProps().emojiLabels[i]\"\n [attr.aria-pressed]=\"isSelected(value)\"\n [disabled]=\"resolvedProps().disabled || resolvedProps().readonly\"\n (click)=\"selectReaction(value)\"\n >\n <span class=\"emoji-btn\">{{ resolvedProps().emojis[i] }}</span>\n </ion-button>\n }\n </div>\n } @else {\n <!-- Botones de reacci\u00F3n \u2014 variante texto (default) -->\n <div class=\"reaction-buttons\">\n <ion-button\n [fill]=\"isSelected('positive') ? 'solid' : 'outline'\"\n shape=\"round\"\n color=\"dark\"\n [attr.aria-pressed]=\"isSelected('positive')\"\n [disabled]=\"resolvedProps().disabled || resolvedProps().readonly\"\n (click)=\"selectReaction('positive')\"\n >\n {{ t('positiveLabel') }}\n </ion-button>\n <ion-button\n [fill]=\"isSelected('negative') ? 'solid' : 'outline'\"\n shape=\"round\"\n color=\"dark\"\n [attr.aria-pressed]=\"isSelected('negative')\"\n [disabled]=\"resolvedProps().disabled || resolvedProps().readonly\"\n (click)=\"selectReaction('negative')\"\n >\n {{ t('negativeLabel') }}\n </ion-button>\n </div>\n }\n\n <!-- Campo de comentario (solo si hay selecci\u00F3n) -->\n @if (showCommentField()) {\n <div class=\"comment-section\">\n <ion-textarea\n [value]=\"state().comment\"\n [placeholder]=\"resolvedProps().commentPlaceholder\"\n [maxlength]=\"resolvedProps().maxCommentLength\"\n [disabled]=\"resolvedProps().disabled\"\n [rows]=\"3\"\n class=\"comment-textarea\"\n (ionInput)=\"updateComment($event)\"\n ></ion-textarea>\n <span class=\"char-count\"> {{ state().comment.length }}/{{ resolvedProps().maxCommentLength }} </span>\n </div>\n }\n\n <!-- Bot\u00F3n de env\u00EDo -->\n @if (state().selectedValue && !state().isSubmitted) {\n <ion-button expand=\"block\" shape=\"round\" [disabled]=\"!canSubmit()\" (click)=\"submitReaction()\" class=\"submit-button\">\n @if (state().isLoading) {\n <ion-spinner name=\"crescent\"></ion-spinner>\n } @else { {{ state().hadPreviousReaction ? t('update') : t('submit') }} }\n </ion-button>\n }\n\n <!-- Mensaje de confirmaci\u00F3n -->\n @if (state().isSubmitted) {\n <p class=\"submitted-message\">{{ t('thankYou') }}</p>\n }\n\n <!-- Error -->\n @if (state().error) {\n <p class=\"error-message\">{{ state().error }}</p>\n } }\n</div>\n}\n", styles: [":host{display:block}.content-reaction{padding:16px;text-align:center}.content-reaction.disabled{opacity:.6;pointer-events:none}.content-reaction.readonly{pointer-events:none}.question{font-size:1.0625rem;font-weight:700;color:var(--ion-color-dark);margin:0 0 16px}.reaction-buttons{display:flex;justify-content:center;gap:12px;margin-bottom:20px}.reaction-buttons--emoji{gap:8px}.reaction-buttons--emoji ion-button{--padding-start: 4px;--padding-end: 4px;transition:transform .15s ease}.reaction-buttons--emoji ion-button.selected{transform:scale(1.25)}.reaction-buttons--emoji ion-button:not(.selected):not([disabled]){opacity:.55}.reaction-buttons--emoji ion-button:not(.selected):not([disabled]):hover{opacity:1}.emoji-btn{font-size:2rem;line-height:1;display:block}.comment-section{margin-top:16px;animation:slideIn .3s ease-out}.comment-section .comment-textarea{--background: transparent;--border-radius: 8px;--padding-start: 12px;--padding-end: 12px;width:100%}.comment-section .char-count{display:block;text-align:right;font-size:.75rem;color:var(--ion-color-medium);margin-top:4px}.submit-button{margin-top:16px}.submitted-message{margin-top:16px;color:var(--ion-color-success);font-weight:500;animation:fadeIn .3s ease-out}.error-message{margin-top:8px;color:var(--ion-color-danger);font-size:.875rem}.loading-container{display:flex;justify-content:center;padding:20px}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { 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: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: IonTextarea, selector: "ion-textarea", inputs: ["autoGrow", "autocapitalize", "autofocus", "clearOnEdit", "color", "cols", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "maxlength", "minlength", "mode", "name", "placeholder", "readonly", "required", "rows", "shape", "spellcheck", "value", "wrap"] }] }); }
|
|
53867
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ContentReactionComponent, isStandalone: true, selector: "val-content-reaction", inputs: { props: "props", _modalRef: "_modalRef" }, outputs: { reactionSubmit: "reactionSubmit", reactionChange: "reactionChange" }, usesOnChanges: true, ngImport: i0, template: "@if (isConfigured()) {\n<div class=\"content-reaction\" [class.disabled]=\"resolvedProps().disabled\" [class.readonly]=\"resolvedProps().readonly\">\n <!-- Bot\u00F3n de cierre (solo en modo modal/sheet) -->\n @if (resolvedProps().showCloseButton) {\n <ion-button fill=\"clear\" color=\"dark\" class=\"close-button\" [attr.aria-label]=\"t('close')\" (click)=\"close()\">\n <ion-icon name=\"close-outline\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n }\n <!-- Loading inicial -->\n @if (state().isLoading && !state().selectedValue) {\n <div class=\"loading-container\">\n <ion-spinner name=\"crescent\"></ion-spinner>\n </div>\n } @else {\n <!-- Pregunta -->\n <p class=\"question\">\n {{ state().selectedValue === 'negative' ? t('negativeFeedbackTitle') : resolvedProps().question }}\n </p>\n\n <!-- Botones de reacci\u00F3n \u2014 variante emoji (caras, estrellas, thumbs, \u2026) -->\n @if (resolvedProps().variant === 'emoji') {\n <div class=\"reaction-buttons reaction-buttons--emoji\">\n @for (value of activeReactionValues(); track value; let i = $index) {\n <ion-button\n fill=\"clear\"\n shape=\"round\"\n [class.selected]=\"isSelected(value)\"\n [attr.aria-label]=\"resolvedProps().emojiLabels[i]\"\n [attr.aria-pressed]=\"isSelected(value)\"\n [disabled]=\"resolvedProps().disabled || resolvedProps().readonly\"\n (click)=\"selectReaction(value)\"\n >\n <span class=\"emoji-btn\">{{ resolvedProps().emojis[i] }}</span>\n </ion-button>\n }\n </div>\n } @else {\n <!-- Botones de reacci\u00F3n \u2014 variante texto (default) -->\n <div class=\"reaction-buttons\">\n <ion-button\n [fill]=\"isSelected('positive') ? 'solid' : 'outline'\"\n shape=\"round\"\n color=\"dark\"\n [attr.aria-pressed]=\"isSelected('positive')\"\n [disabled]=\"resolvedProps().disabled || resolvedProps().readonly\"\n (click)=\"selectReaction('positive')\"\n >\n {{ t('positiveLabel') }}\n </ion-button>\n <ion-button\n [fill]=\"isSelected('negative') ? 'solid' : 'outline'\"\n shape=\"round\"\n color=\"dark\"\n [attr.aria-pressed]=\"isSelected('negative')\"\n [disabled]=\"resolvedProps().disabled || resolvedProps().readonly\"\n (click)=\"selectReaction('negative')\"\n >\n {{ t('negativeLabel') }}\n </ion-button>\n </div>\n }\n\n <!-- Campo de comentario (solo si hay selecci\u00F3n) -->\n @if (showCommentField()) {\n <div class=\"comment-section\">\n <ion-textarea\n [value]=\"state().comment\"\n [placeholder]=\"resolvedProps().commentPlaceholder\"\n [maxlength]=\"resolvedProps().maxCommentLength\"\n [disabled]=\"resolvedProps().disabled\"\n [rows]=\"3\"\n class=\"comment-textarea\"\n (ionInput)=\"updateComment($event)\"\n ></ion-textarea>\n <span class=\"char-count\"> {{ state().comment.length }}/{{ resolvedProps().maxCommentLength }} </span>\n </div>\n }\n\n <!-- Bot\u00F3n de env\u00EDo -->\n @if (state().selectedValue && !state().isSubmitted) {\n <ion-button expand=\"block\" shape=\"round\" [disabled]=\"!canSubmit()\" (click)=\"submitReaction()\" class=\"submit-button\">\n @if (state().isLoading) {\n <ion-spinner name=\"crescent\"></ion-spinner>\n } @else { {{ state().hadPreviousReaction ? t('update') : t('submit') }} }\n </ion-button>\n }\n\n <!-- Mensaje de confirmaci\u00F3n -->\n @if (state().isSubmitted) {\n <p class=\"submitted-message\">{{ t('thankYou') }}</p>\n }\n\n <!-- Error -->\n @if (state().error) {\n <p class=\"error-message\">{{ state().error }}</p>\n } }\n</div>\n}\n", styles: [":host{display:block}.content-reaction{position:relative;padding:16px;text-align:center}.content-reaction.disabled{opacity:.6;pointer-events:none}.content-reaction.readonly{pointer-events:none}.close-button{position:absolute;top:0;right:0;margin:0;--padding-start: 6px;--padding-end: 6px;--color: var(--ion-color-medium)}.close-button ion-icon{font-size:1.5rem}.question{font-size:1.0625rem;font-weight:700;color:var(--ion-color-dark);margin:0 0 16px}.reaction-buttons{display:flex;justify-content:center;gap:12px;margin-bottom:20px}.reaction-buttons--emoji{gap:8px}.reaction-buttons--emoji ion-button{--padding-start: 4px;--padding-end: 4px;transition:transform .15s ease}.reaction-buttons--emoji ion-button.selected{transform:scale(1.25)}.reaction-buttons--emoji ion-button:not(.selected):not([disabled]){opacity:.55}.reaction-buttons--emoji ion-button:not(.selected):not([disabled]):hover{opacity:1}.emoji-btn{font-size:2rem;line-height:1;display:block}.comment-section{margin-top:16px;animation:slideIn .3s ease-out}.comment-section .comment-textarea{--background: transparent;--border-radius: 8px;--padding-start: 12px;--padding-end: 12px;width:100%}.comment-section .char-count{display:block;text-align:right;font-size:.75rem;color:var(--ion-color-medium);margin-top:4px}.submit-button{margin-top:16px}.submitted-message{margin-top:16px;color:var(--ion-color-success);font-weight:500;animation:fadeIn .3s ease-out}.error-message{margin-top:8px;color:var(--ion-color-danger);font-size:.875rem}.loading-container{display:flex;justify-content:center;padding:20px}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { 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: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: IonTextarea, selector: "ion-textarea", inputs: ["autoGrow", "autocapitalize", "autofocus", "clearOnEdit", "color", "cols", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "maxlength", "minlength", "mode", "name", "placeholder", "readonly", "required", "rows", "shape", "spellcheck", "value", "wrap"] }] }); }
|
|
53817
53868
|
}
|
|
53818
53869
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ContentReactionComponent, decorators: [{
|
|
53819
53870
|
type: Component,
|
|
53820
|
-
args: [{ selector: 'val-content-reaction', standalone: true, imports: [CommonModule, FormsModule, IonButton, IonSpinner, IonTextarea], template: "@if (isConfigured()) {\n<div class=\"content-reaction\" [class.disabled]=\"resolvedProps().disabled\" [class.readonly]=\"resolvedProps().readonly\">\n <!-- Loading inicial -->\n @if (state().isLoading && !state().selectedValue) {\n <div class=\"loading-container\">\n <ion-spinner name=\"crescent\"></ion-spinner>\n </div>\n } @else {\n <!-- Pregunta -->\n <p class=\"question\">\n {{ state().selectedValue === 'negative' ? t('negativeFeedbackTitle') : resolvedProps().question }}\n </p>\n\n <!-- Botones de reacci\u00F3n \u2014 variante emoji (caras, estrellas, thumbs, \u2026) -->\n @if (resolvedProps().variant === 'emoji') {\n <div class=\"reaction-buttons reaction-buttons--emoji\">\n @for (value of activeReactionValues(); track value; let i = $index) {\n <ion-button\n fill=\"clear\"\n shape=\"round\"\n [class.selected]=\"isSelected(value)\"\n [attr.aria-label]=\"resolvedProps().emojiLabels[i]\"\n [attr.aria-pressed]=\"isSelected(value)\"\n [disabled]=\"resolvedProps().disabled || resolvedProps().readonly\"\n (click)=\"selectReaction(value)\"\n >\n <span class=\"emoji-btn\">{{ resolvedProps().emojis[i] }}</span>\n </ion-button>\n }\n </div>\n } @else {\n <!-- Botones de reacci\u00F3n \u2014 variante texto (default) -->\n <div class=\"reaction-buttons\">\n <ion-button\n [fill]=\"isSelected('positive') ? 'solid' : 'outline'\"\n shape=\"round\"\n color=\"dark\"\n [attr.aria-pressed]=\"isSelected('positive')\"\n [disabled]=\"resolvedProps().disabled || resolvedProps().readonly\"\n (click)=\"selectReaction('positive')\"\n >\n {{ t('positiveLabel') }}\n </ion-button>\n <ion-button\n [fill]=\"isSelected('negative') ? 'solid' : 'outline'\"\n shape=\"round\"\n color=\"dark\"\n [attr.aria-pressed]=\"isSelected('negative')\"\n [disabled]=\"resolvedProps().disabled || resolvedProps().readonly\"\n (click)=\"selectReaction('negative')\"\n >\n {{ t('negativeLabel') }}\n </ion-button>\n </div>\n }\n\n <!-- Campo de comentario (solo si hay selecci\u00F3n) -->\n @if (showCommentField()) {\n <div class=\"comment-section\">\n <ion-textarea\n [value]=\"state().comment\"\n [placeholder]=\"resolvedProps().commentPlaceholder\"\n [maxlength]=\"resolvedProps().maxCommentLength\"\n [disabled]=\"resolvedProps().disabled\"\n [rows]=\"3\"\n class=\"comment-textarea\"\n (ionInput)=\"updateComment($event)\"\n ></ion-textarea>\n <span class=\"char-count\"> {{ state().comment.length }}/{{ resolvedProps().maxCommentLength }} </span>\n </div>\n }\n\n <!-- Bot\u00F3n de env\u00EDo -->\n @if (state().selectedValue && !state().isSubmitted) {\n <ion-button expand=\"block\" shape=\"round\" [disabled]=\"!canSubmit()\" (click)=\"submitReaction()\" class=\"submit-button\">\n @if (state().isLoading) {\n <ion-spinner name=\"crescent\"></ion-spinner>\n } @else { {{ state().hadPreviousReaction ? t('update') : t('submit') }} }\n </ion-button>\n }\n\n <!-- Mensaje de confirmaci\u00F3n -->\n @if (state().isSubmitted) {\n <p class=\"submitted-message\">{{ t('thankYou') }}</p>\n }\n\n <!-- Error -->\n @if (state().error) {\n <p class=\"error-message\">{{ state().error }}</p>\n } }\n</div>\n}\n", styles: [":host{display:block}.content-reaction{padding:16px;text-align:center}.content-reaction.disabled{opacity:.6;pointer-events:none}.content-reaction.readonly{pointer-events:none}.question{font-size:1.0625rem;font-weight:700;color:var(--ion-color-dark);margin:0 0 16px}.reaction-buttons{display:flex;justify-content:center;gap:12px;margin-bottom:20px}.reaction-buttons--emoji{gap:8px}.reaction-buttons--emoji ion-button{--padding-start: 4px;--padding-end: 4px;transition:transform .15s ease}.reaction-buttons--emoji ion-button.selected{transform:scale(1.25)}.reaction-buttons--emoji ion-button:not(.selected):not([disabled]){opacity:.55}.reaction-buttons--emoji ion-button:not(.selected):not([disabled]):hover{opacity:1}.emoji-btn{font-size:2rem;line-height:1;display:block}.comment-section{margin-top:16px;animation:slideIn .3s ease-out}.comment-section .comment-textarea{--background: transparent;--border-radius: 8px;--padding-start: 12px;--padding-end: 12px;width:100%}.comment-section .char-count{display:block;text-align:right;font-size:.75rem;color:var(--ion-color-medium);margin-top:4px}.submit-button{margin-top:16px}.submitted-message{margin-top:16px;color:var(--ion-color-success);font-weight:500;animation:fadeIn .3s ease-out}.error-message{margin-top:8px;color:var(--ion-color-danger);font-size:.875rem}.loading-container{display:flex;justify-content:center;padding:20px}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}\n"] }]
|
|
53871
|
+
args: [{ selector: 'val-content-reaction', standalone: true, imports: [CommonModule, FormsModule, IonButton, IonIcon, IonSpinner, IonTextarea], template: "@if (isConfigured()) {\n<div class=\"content-reaction\" [class.disabled]=\"resolvedProps().disabled\" [class.readonly]=\"resolvedProps().readonly\">\n <!-- Bot\u00F3n de cierre (solo en modo modal/sheet) -->\n @if (resolvedProps().showCloseButton) {\n <ion-button fill=\"clear\" color=\"dark\" class=\"close-button\" [attr.aria-label]=\"t('close')\" (click)=\"close()\">\n <ion-icon name=\"close-outline\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n }\n <!-- Loading inicial -->\n @if (state().isLoading && !state().selectedValue) {\n <div class=\"loading-container\">\n <ion-spinner name=\"crescent\"></ion-spinner>\n </div>\n } @else {\n <!-- Pregunta -->\n <p class=\"question\">\n {{ state().selectedValue === 'negative' ? t('negativeFeedbackTitle') : resolvedProps().question }}\n </p>\n\n <!-- Botones de reacci\u00F3n \u2014 variante emoji (caras, estrellas, thumbs, \u2026) -->\n @if (resolvedProps().variant === 'emoji') {\n <div class=\"reaction-buttons reaction-buttons--emoji\">\n @for (value of activeReactionValues(); track value; let i = $index) {\n <ion-button\n fill=\"clear\"\n shape=\"round\"\n [class.selected]=\"isSelected(value)\"\n [attr.aria-label]=\"resolvedProps().emojiLabels[i]\"\n [attr.aria-pressed]=\"isSelected(value)\"\n [disabled]=\"resolvedProps().disabled || resolvedProps().readonly\"\n (click)=\"selectReaction(value)\"\n >\n <span class=\"emoji-btn\">{{ resolvedProps().emojis[i] }}</span>\n </ion-button>\n }\n </div>\n } @else {\n <!-- Botones de reacci\u00F3n \u2014 variante texto (default) -->\n <div class=\"reaction-buttons\">\n <ion-button\n [fill]=\"isSelected('positive') ? 'solid' : 'outline'\"\n shape=\"round\"\n color=\"dark\"\n [attr.aria-pressed]=\"isSelected('positive')\"\n [disabled]=\"resolvedProps().disabled || resolvedProps().readonly\"\n (click)=\"selectReaction('positive')\"\n >\n {{ t('positiveLabel') }}\n </ion-button>\n <ion-button\n [fill]=\"isSelected('negative') ? 'solid' : 'outline'\"\n shape=\"round\"\n color=\"dark\"\n [attr.aria-pressed]=\"isSelected('negative')\"\n [disabled]=\"resolvedProps().disabled || resolvedProps().readonly\"\n (click)=\"selectReaction('negative')\"\n >\n {{ t('negativeLabel') }}\n </ion-button>\n </div>\n }\n\n <!-- Campo de comentario (solo si hay selecci\u00F3n) -->\n @if (showCommentField()) {\n <div class=\"comment-section\">\n <ion-textarea\n [value]=\"state().comment\"\n [placeholder]=\"resolvedProps().commentPlaceholder\"\n [maxlength]=\"resolvedProps().maxCommentLength\"\n [disabled]=\"resolvedProps().disabled\"\n [rows]=\"3\"\n class=\"comment-textarea\"\n (ionInput)=\"updateComment($event)\"\n ></ion-textarea>\n <span class=\"char-count\"> {{ state().comment.length }}/{{ resolvedProps().maxCommentLength }} </span>\n </div>\n }\n\n <!-- Bot\u00F3n de env\u00EDo -->\n @if (state().selectedValue && !state().isSubmitted) {\n <ion-button expand=\"block\" shape=\"round\" [disabled]=\"!canSubmit()\" (click)=\"submitReaction()\" class=\"submit-button\">\n @if (state().isLoading) {\n <ion-spinner name=\"crescent\"></ion-spinner>\n } @else { {{ state().hadPreviousReaction ? t('update') : t('submit') }} }\n </ion-button>\n }\n\n <!-- Mensaje de confirmaci\u00F3n -->\n @if (state().isSubmitted) {\n <p class=\"submitted-message\">{{ t('thankYou') }}</p>\n }\n\n <!-- Error -->\n @if (state().error) {\n <p class=\"error-message\">{{ state().error }}</p>\n } }\n</div>\n}\n", styles: [":host{display:block}.content-reaction{position:relative;padding:16px;text-align:center}.content-reaction.disabled{opacity:.6;pointer-events:none}.content-reaction.readonly{pointer-events:none}.close-button{position:absolute;top:0;right:0;margin:0;--padding-start: 6px;--padding-end: 6px;--color: var(--ion-color-medium)}.close-button ion-icon{font-size:1.5rem}.question{font-size:1.0625rem;font-weight:700;color:var(--ion-color-dark);margin:0 0 16px}.reaction-buttons{display:flex;justify-content:center;gap:12px;margin-bottom:20px}.reaction-buttons--emoji{gap:8px}.reaction-buttons--emoji ion-button{--padding-start: 4px;--padding-end: 4px;transition:transform .15s ease}.reaction-buttons--emoji ion-button.selected{transform:scale(1.25)}.reaction-buttons--emoji ion-button:not(.selected):not([disabled]){opacity:.55}.reaction-buttons--emoji ion-button:not(.selected):not([disabled]):hover{opacity:1}.emoji-btn{font-size:2rem;line-height:1;display:block}.comment-section{margin-top:16px;animation:slideIn .3s ease-out}.comment-section .comment-textarea{--background: transparent;--border-radius: 8px;--padding-start: 12px;--padding-end: 12px;width:100%}.comment-section .char-count{display:block;text-align:right;font-size:.75rem;color:var(--ion-color-medium);margin-top:4px}.submit-button{margin-top:16px}.submitted-message{margin-top:16px;color:var(--ion-color-success);font-weight:500;animation:fadeIn .3s ease-out}.error-message{margin-top:8px;color:var(--ion-color-danger);font-size:.875rem}.loading-container{display:flex;justify-content:center;padding:20px}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}\n"] }]
|
|
53821
53872
|
}], ctorParameters: () => [], propDecorators: { props: [{
|
|
53822
53873
|
type: Input
|
|
53874
|
+
}], _modalRef: [{
|
|
53875
|
+
type: Input
|
|
53823
53876
|
}], reactionSubmit: [{
|
|
53824
53877
|
type: Output
|
|
53825
53878
|
}], reactionChange: [{
|
|
@@ -53903,6 +53956,11 @@ addIcons({
|
|
|
53903
53956
|
const DEFAULT_NAMESPACE = 'Settings.About';
|
|
53904
53957
|
const DEFAULT_BRAND_NAME = 'Valtech';
|
|
53905
53958
|
const DEFAULT_LOGO_SRC = 'assets/images/main-icon.png';
|
|
53959
|
+
// Por default el HERO usa la CSS var de marca del factory (`--main-logo-mini`),
|
|
53960
|
+
// que cada app define en su `theme/variables.scss` (theme-aware). Si la app no
|
|
53961
|
+
// la define, el `var(...)` cae al `logoSrc` (ver template). El consumer puede
|
|
53962
|
+
// pasar `brand.logoVar: ''` para forzar el `<img src=logoSrc>` clásico.
|
|
53963
|
+
const DEFAULT_LOGO_VAR = '--main-logo-mini';
|
|
53906
53964
|
const DEFAULT_RATING_ENTITY_ID = 'experience';
|
|
53907
53965
|
/**
|
|
53908
53966
|
* `val-about-view` — vista About full-feature autocontenida (organism).
|
|
@@ -53951,6 +54009,7 @@ class AboutViewComponent {
|
|
|
53951
54009
|
brand: {
|
|
53952
54010
|
name: merged.brand?.name ?? DEFAULT_BRAND_NAME,
|
|
53953
54011
|
logoSrc: merged.brand?.logoSrc ?? DEFAULT_LOGO_SRC,
|
|
54012
|
+
logoVar: merged.brand?.logoVar ?? DEFAULT_LOGO_VAR,
|
|
53954
54013
|
},
|
|
53955
54014
|
version: merged.version ?? '',
|
|
53956
54015
|
socialLinks: merged.socialLinks ?? [],
|
|
@@ -53963,6 +54022,7 @@ class AboutViewComponent {
|
|
|
53963
54022
|
});
|
|
53964
54023
|
this.brandName = computed(() => this.resolvedConfig().brand.name);
|
|
53965
54024
|
this.logoSrc = computed(() => this.resolvedConfig().brand.logoSrc);
|
|
54025
|
+
this.logoVar = computed(() => this.resolvedConfig().brand.logoVar ?? '');
|
|
53966
54026
|
this.version = computed(() => this.resolvedConfig().version);
|
|
53967
54027
|
this.socialLinks = computed(() => this.resolvedConfig().socialLinks);
|
|
53968
54028
|
this.showRating = computed(() => this.resolvedConfig().showRating);
|
|
@@ -54066,6 +54126,8 @@ class AboutViewComponent {
|
|
|
54066
54126
|
skipInitialCheck: true,
|
|
54067
54127
|
emojis: ['😕', '🙂', '😍'],
|
|
54068
54128
|
emojiLabels: [this.tt('rateBad'), this.tt('rateMid'), this.tt('rateGood')],
|
|
54129
|
+
// Sheet abierto vía ModalService: botón de cierre además del drag-handle.
|
|
54130
|
+
showCloseButton: true,
|
|
54069
54131
|
};
|
|
54070
54132
|
await this.modalService.open({
|
|
54071
54133
|
component: ContentReactionComponent,
|
|
@@ -54084,7 +54146,16 @@ class AboutViewComponent {
|
|
|
54084
54146
|
<ion-grid class="about-grid">
|
|
54085
54147
|
<!-- HERO: logo + name + version -->
|
|
54086
54148
|
<div class="about-hero">
|
|
54087
|
-
|
|
54149
|
+
@if (logoVar()) {
|
|
54150
|
+
<div
|
|
54151
|
+
class="about-hero__logo about-hero__logo--var"
|
|
54152
|
+
role="img"
|
|
54153
|
+
[attr.aria-label]="brandName()"
|
|
54154
|
+
[style.background-image]="'var(' + logoVar() + ', url(' + logoSrc() + '))'"
|
|
54155
|
+
></div>
|
|
54156
|
+
} @else {
|
|
54157
|
+
<img class="about-hero__logo" [src]="logoSrc()" [alt]="brandName()" />
|
|
54158
|
+
}
|
|
54088
54159
|
<val-title
|
|
54089
54160
|
[props]="{
|
|
54090
54161
|
content: brandName(),
|
|
@@ -54189,7 +54260,7 @@ class AboutViewComponent {
|
|
|
54189
54260
|
/>
|
|
54190
54261
|
</footer>
|
|
54191
54262
|
</ion-grid>
|
|
54192
|
-
`, isInline: true, styles: [":host{display:block}.about-grid{padding:16px 0;max-width:720px;margin:0 auto}.about-hero{display:flex;flex-direction:column;align-items:center;gap:8px;padding:24px 0 16px;text-align:center}.about-hero__logo{height:96px;width:auto;display:block}.version-row{display:flex;align-items:center;gap:6px;cursor:pointer;opacity:.85;transition:opacity .15s ease}.version-row:hover{opacity:1}.version-copy-icon{font-size:14px;color:var(--ion-color-medium)}.about-section{padding:16px 0 8px;display:flex;flex-direction:column;gap:8px}.about-actions{display:flex;flex-direction:column;gap:8px}.about-section--reviews val-action-card{display:block}.about-section--reviews val-action-card ::ng-deep .action-card{background:var(--ion-color-light, #f4f5f8);box-shadow:none}.about-section--reviews val-action-card ::ng-deep .action-card__description{color:var(--ion-color-dark);opacity:.7}.about-social{display:flex;flex-wrap:wrap;gap:10px;padding-top:8px}.about-social .social-btn{--border-radius: 50%;--background: var(--ion-color-light, #f4f5f8);--color: var(--ion-color-dark);--padding-start: 0;--padding-end: 0;width:48px;height:48px;margin:0;transition:transform .15s ease}.about-social .social-btn:hover{--background: var(--ion-color-primary-tint, #8a4ce5);--color: #fff;transform:translateY(-2px)}.about-social .social-btn ion-icon{font-size:22px}.about-footer{display:flex;flex-direction:column;align-items:center;gap:4px;padding:24px 0;text-align:center}:host-context(body.dark) val-action-card ::ng-deep .action-card,:host-context(html.ion-palette-dark) val-action-card ::ng-deep .action-card,:host-context([data-theme=\"dark\"]) val-action-card ::ng-deep .action-card{background:#ffffff0a}:host-context(body.dark) .about-section--reviews val-action-card ::ng-deep .action-card:hover,:host-context(html.ion-palette-dark) .about-section--reviews val-action-card ::ng-deep .action-card:hover,:host-context([data-theme=\"dark\"]) .about-section--reviews val-action-card ::ng-deep .action-card:hover{background:#ffffff14}:host-context(body.dark) .about-social .social-btn,:host-context(html.ion-palette-dark) .about-social .social-btn,:host-context([data-theme=\"dark\"]) .about-social .social-btn{--background: rgba(255, 255, 255, .04)}\n"], dependencies: [{ 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: IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: PillComponent, selector: "val-pill", inputs: ["preset", "props"], outputs: ["pillClick", "pillAction"] }, { kind: "component", type: TitleComponent, selector: "val-title", inputs: ["props"] }, { kind: "component", type: TextComponent, selector: "val-text", inputs: ["props"] }, { kind: "component", type: ActionCardComponent, selector: "val-action-card", inputs: ["props"], outputs: ["onClick"] }] }); }
|
|
54263
|
+
`, isInline: true, styles: [":host{display:block}.about-grid{padding:16px 0;max-width:720px;margin:0 auto}.about-hero{display:flex;flex-direction:column;align-items:center;gap:8px;padding:24px 0 16px;text-align:center}.about-hero__logo{height:96px;width:auto;display:block}.about-hero__logo--var{width:96px;height:96px;background-position:center;background-repeat:no-repeat;background-size:contain}.version-row{display:flex;align-items:center;gap:6px;cursor:pointer;opacity:.85;transition:opacity .15s ease}.version-row:hover{opacity:1}.version-copy-icon{font-size:14px;color:var(--ion-color-medium)}.about-section{padding:16px 0 8px;display:flex;flex-direction:column;gap:8px}.about-actions{display:flex;flex-direction:column;gap:8px}.about-section--reviews val-action-card{display:block}.about-section--reviews val-action-card ::ng-deep .action-card{background:var(--ion-color-light, #f4f5f8);box-shadow:none}.about-section--reviews val-action-card ::ng-deep .action-card__description{color:var(--ion-color-dark);opacity:.7}.about-social{display:flex;flex-wrap:wrap;gap:10px;padding-top:8px}.about-social .social-btn{--border-radius: 50%;--background: var(--ion-color-light, #f4f5f8);--color: var(--ion-color-dark);--padding-start: 0;--padding-end: 0;width:48px;height:48px;margin:0;transition:transform .15s ease}.about-social .social-btn:hover{--background: var(--ion-color-primary-tint, #8a4ce5);--color: #fff;transform:translateY(-2px)}.about-social .social-btn ion-icon{font-size:22px}.about-footer{display:flex;flex-direction:column;align-items:center;gap:4px;padding:24px 0;text-align:center}:host-context(body.dark) val-action-card ::ng-deep .action-card,:host-context(html.ion-palette-dark) val-action-card ::ng-deep .action-card,:host-context([data-theme=\"dark\"]) val-action-card ::ng-deep .action-card{background:#ffffff0a}:host-context(body.dark) .about-section--reviews val-action-card ::ng-deep .action-card:hover,:host-context(html.ion-palette-dark) .about-section--reviews val-action-card ::ng-deep .action-card:hover,:host-context([data-theme=\"dark\"]) .about-section--reviews val-action-card ::ng-deep .action-card:hover{background:#ffffff14}:host-context(body.dark) .about-social .social-btn,:host-context(html.ion-palette-dark) .about-social .social-btn,:host-context([data-theme=\"dark\"]) .about-social .social-btn{--background: rgba(255, 255, 255, .04)}\n"], dependencies: [{ 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: IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: PillComponent, selector: "val-pill", inputs: ["preset", "props"], outputs: ["pillClick", "pillAction"] }, { kind: "component", type: TitleComponent, selector: "val-title", inputs: ["props"] }, { kind: "component", type: TextComponent, selector: "val-text", inputs: ["props"] }, { kind: "component", type: ActionCardComponent, selector: "val-action-card", inputs: ["props"], outputs: ["onClick"] }] }); }
|
|
54193
54264
|
}
|
|
54194
54265
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AboutViewComponent, decorators: [{
|
|
54195
54266
|
type: Component,
|
|
@@ -54197,7 +54268,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
54197
54268
|
<ion-grid class="about-grid">
|
|
54198
54269
|
<!-- HERO: logo + name + version -->
|
|
54199
54270
|
<div class="about-hero">
|
|
54200
|
-
|
|
54271
|
+
@if (logoVar()) {
|
|
54272
|
+
<div
|
|
54273
|
+
class="about-hero__logo about-hero__logo--var"
|
|
54274
|
+
role="img"
|
|
54275
|
+
[attr.aria-label]="brandName()"
|
|
54276
|
+
[style.background-image]="'var(' + logoVar() + ', url(' + logoSrc() + '))'"
|
|
54277
|
+
></div>
|
|
54278
|
+
} @else {
|
|
54279
|
+
<img class="about-hero__logo" [src]="logoSrc()" [alt]="brandName()" />
|
|
54280
|
+
}
|
|
54201
54281
|
<val-title
|
|
54202
54282
|
[props]="{
|
|
54203
54283
|
content: brandName(),
|
|
@@ -54302,7 +54382,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
54302
54382
|
/>
|
|
54303
54383
|
</footer>
|
|
54304
54384
|
</ion-grid>
|
|
54305
|
-
`, styles: [":host{display:block}.about-grid{padding:16px 0;max-width:720px;margin:0 auto}.about-hero{display:flex;flex-direction:column;align-items:center;gap:8px;padding:24px 0 16px;text-align:center}.about-hero__logo{height:96px;width:auto;display:block}.version-row{display:flex;align-items:center;gap:6px;cursor:pointer;opacity:.85;transition:opacity .15s ease}.version-row:hover{opacity:1}.version-copy-icon{font-size:14px;color:var(--ion-color-medium)}.about-section{padding:16px 0 8px;display:flex;flex-direction:column;gap:8px}.about-actions{display:flex;flex-direction:column;gap:8px}.about-section--reviews val-action-card{display:block}.about-section--reviews val-action-card ::ng-deep .action-card{background:var(--ion-color-light, #f4f5f8);box-shadow:none}.about-section--reviews val-action-card ::ng-deep .action-card__description{color:var(--ion-color-dark);opacity:.7}.about-social{display:flex;flex-wrap:wrap;gap:10px;padding-top:8px}.about-social .social-btn{--border-radius: 50%;--background: var(--ion-color-light, #f4f5f8);--color: var(--ion-color-dark);--padding-start: 0;--padding-end: 0;width:48px;height:48px;margin:0;transition:transform .15s ease}.about-social .social-btn:hover{--background: var(--ion-color-primary-tint, #8a4ce5);--color: #fff;transform:translateY(-2px)}.about-social .social-btn ion-icon{font-size:22px}.about-footer{display:flex;flex-direction:column;align-items:center;gap:4px;padding:24px 0;text-align:center}:host-context(body.dark) val-action-card ::ng-deep .action-card,:host-context(html.ion-palette-dark) val-action-card ::ng-deep .action-card,:host-context([data-theme=\"dark\"]) val-action-card ::ng-deep .action-card{background:#ffffff0a}:host-context(body.dark) .about-section--reviews val-action-card ::ng-deep .action-card:hover,:host-context(html.ion-palette-dark) .about-section--reviews val-action-card ::ng-deep .action-card:hover,:host-context([data-theme=\"dark\"]) .about-section--reviews val-action-card ::ng-deep .action-card:hover{background:#ffffff14}:host-context(body.dark) .about-social .social-btn,:host-context(html.ion-palette-dark) .about-social .social-btn,:host-context([data-theme=\"dark\"]) .about-social .social-btn{--background: rgba(255, 255, 255, .04)}\n"] }]
|
|
54385
|
+
`, styles: [":host{display:block}.about-grid{padding:16px 0;max-width:720px;margin:0 auto}.about-hero{display:flex;flex-direction:column;align-items:center;gap:8px;padding:24px 0 16px;text-align:center}.about-hero__logo{height:96px;width:auto;display:block}.about-hero__logo--var{width:96px;height:96px;background-position:center;background-repeat:no-repeat;background-size:contain}.version-row{display:flex;align-items:center;gap:6px;cursor:pointer;opacity:.85;transition:opacity .15s ease}.version-row:hover{opacity:1}.version-copy-icon{font-size:14px;color:var(--ion-color-medium)}.about-section{padding:16px 0 8px;display:flex;flex-direction:column;gap:8px}.about-actions{display:flex;flex-direction:column;gap:8px}.about-section--reviews val-action-card{display:block}.about-section--reviews val-action-card ::ng-deep .action-card{background:var(--ion-color-light, #f4f5f8);box-shadow:none}.about-section--reviews val-action-card ::ng-deep .action-card__description{color:var(--ion-color-dark);opacity:.7}.about-social{display:flex;flex-wrap:wrap;gap:10px;padding-top:8px}.about-social .social-btn{--border-radius: 50%;--background: var(--ion-color-light, #f4f5f8);--color: var(--ion-color-dark);--padding-start: 0;--padding-end: 0;width:48px;height:48px;margin:0;transition:transform .15s ease}.about-social .social-btn:hover{--background: var(--ion-color-primary-tint, #8a4ce5);--color: #fff;transform:translateY(-2px)}.about-social .social-btn ion-icon{font-size:22px}.about-footer{display:flex;flex-direction:column;align-items:center;gap:4px;padding:24px 0;text-align:center}:host-context(body.dark) val-action-card ::ng-deep .action-card,:host-context(html.ion-palette-dark) val-action-card ::ng-deep .action-card,:host-context([data-theme=\"dark\"]) val-action-card ::ng-deep .action-card{background:#ffffff0a}:host-context(body.dark) .about-section--reviews val-action-card ::ng-deep .action-card:hover,:host-context(html.ion-palette-dark) .about-section--reviews val-action-card ::ng-deep .action-card:hover,:host-context([data-theme=\"dark\"]) .about-section--reviews val-action-card ::ng-deep .action-card:hover{background:#ffffff14}:host-context(body.dark) .about-social .social-btn,:host-context(html.ion-palette-dark) .about-social .social-btn,:host-context([data-theme=\"dark\"]) .about-social .social-btn{--background: rgba(255, 255, 255, .04)}\n"] }]
|
|
54306
54386
|
}], ctorParameters: () => [], propDecorators: { config: [{
|
|
54307
54387
|
type: Input
|
|
54308
54388
|
}] } });
|
|
@@ -62770,7 +62850,7 @@ class DocsPageComponent {
|
|
|
62770
62850
|
</aside>
|
|
62771
62851
|
}
|
|
62772
62852
|
</div>
|
|
62773
|
-
`, isInline: true, styles: [".docs-page{display:grid;grid-template-columns:1fr;gap:2rem;max-width:1400px;margin:0 auto;padding:2rem 1.5rem}@media (min-width: 1200px){.docs-page{grid-template-columns:1fr 220px;padding:2rem}}.docs-page__content{min-width:0;max-width:900px}val-docs-breadcrumb{display:block;margin-bottom:1rem}.docs-page__header{margin-bottom:2rem}.docs-page__title-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.docs-page__title{margin:0;font-size:2rem;font-weight:700;color:var(--ion-text-color, #1a1a1a);line-height:1.2}@media (min-width: 768px){.docs-page__title{font-size:2.5rem}}.docs-page__badge{display:inline-flex;align-items:center;padding:.25rem .5rem;font-size:.6875rem;font-weight:500;text-transform:uppercase;letter-spacing:.03em;border-radius:4px;background:#0000000a;color:#888}.docs-page__badge--success{background:#0000000a;color:#888}.docs-page__badge--warning{background:var(--ion-color-warning-tint, #fff3e0);color:var(--ion-color-warning-shade, #e65100)}.docs-page__badge--danger{background:var(--ion-color-danger-tint, #ffebee);color:var(--ion-color-danger-shade, #c62828)}.docs-page__lead{margin:1rem 0 0;font-size:1.125rem;line-height:1.7;color:var(--ion-color-medium, #666)}.docs-page__sections>*:last-child{margin-bottom:0}.docs-page__feedback{margin-top:3rem;padding-top:2rem;border-top:1px solid rgba(0,0,0,.08);display:flex;justify-content:center}.docs-page__toc{display:none}@media (min-width: 1200px){.docs-page__toc{display:block;position:sticky;top:2rem;height:fit-content;max-height:calc(100vh - 4rem);overflow-y:auto}}.docs-page__sections h2{font-size:1.5rem;font-weight:600;margin:0 0 1rem;color:var(--ion-text-color, #1a1a1a);scroll-margin-top:2rem}.docs-page__sections h3{font-size:1.125rem;font-weight:600;margin:1.5rem 0 1rem;color:var(--ion-text-color, #1a1a1a)}.docs-page__sections h4{font-size:1rem;font-weight:600;margin:1.25rem 0 .75rem;color:var(--ion-text-color, #1a1a1a)}.docs-page__sections p{line-height:1.7;color:var(--ion-text-color, #1a1a1a);margin:0 0 1rem}.docs-page__sections ul,.docs-page__sections ol{padding-left:1.5rem;margin:0 0 1rem}.docs-page__sections li{margin-bottom:.5rem;line-height:1.6;color:var(--ion-text-color, #1a1a1a)}.docs-page__sections a{color:var(--ion-color-primary, #3880ff);text-decoration:none}.docs-page__sections a:hover{text-decoration:underline}.docs-page__sections code:not([class*=language-]){background:#0000000f;padding:.125rem .375rem;border-radius:4px;font-family:SF Mono,Fira Code,Consolas,monospace;font-size:.875em}.docs-page__sections pre:not([class*=language-]){background:#0000000a;padding:1rem;border-radius:8px;overflow-x:auto;margin:0 0 1rem}.docs-page__sections pre:not([class*=language-]) code{background:none;padding:0}.docs-page__sections table{width:100%;border-collapse:collapse;margin:0 0 1rem;font-size:.875rem}.docs-page__sections th,.docs-page__sections td{padding:.75rem;text-align:left;border-bottom:1px solid rgba(0,0,0,.1)}.docs-page__sections th{font-weight:600;background:#00000005}.docs-page__sections blockquote{margin:0 0 1rem;padding:1rem 1.5rem;border-left:4px solid var(--ion-color-primary, #3880ff);background:#00000005;border-radius:0 8px 8px 0}.docs-page__sections blockquote p:last-child{margin-bottom:0}.docs-page__sections img{max-width:100%;height:auto;border-radius:8px}.docs-page__sections hr{border:none;border-top:1px solid rgba(0,0,0,.1);margin:2rem 0}.docs-page__sections strong{font-weight:600}.docs-page__sections section{margin-bottom:2rem}:host-context(.dark) .docs-page__badge,:host-context([color-scheme=\"dark\"]) .docs-page__badge{background:#ffffff0f;color:#999}:host-context(.dark) .docs-page__badge--success,:host-context([color-scheme=\"dark\"]) .docs-page__badge--success{background:#ffffff0f;color:#999}:host-context(.dark) .docs-page__badge--warning,:host-context([color-scheme=\"dark\"]) .docs-page__badge--warning{background:#e6510033;color:#ffb74d}:host-context(.dark) .docs-page__badge--danger,:host-context([color-scheme=\"dark\"]) .docs-page__badge--danger{background:#c6282833;color:#e57373}:host-context(.dark) .docs-page__sections code:not([class*=language-]),:host-context([color-scheme=\"dark\"]) .docs-page__sections code:not([class*=language-]){background:#ffffff1a}:host-context(.dark) .docs-page__sections pre:not([class*=language-]),:host-context([color-scheme=\"dark\"]) .docs-page__sections pre:not([class*=language-]){background:#ffffff0f}:host-context(.dark) .docs-page__sections th,:host-context([color-scheme=\"dark\"]) .docs-page__sections th{background:#ffffff0a}:host-context(.dark) .docs-page__sections th,:host-context(.dark) .docs-page__sections td,:host-context([color-scheme=\"dark\"]) .docs-page__sections th,:host-context([color-scheme=\"dark\"]) .docs-page__sections td{border-color:#ffffff1a}:host-context(.dark) .docs-page__sections blockquote,:host-context([color-scheme=\"dark\"]) .docs-page__sections blockquote{background:#ffffff0a}:host-context(.dark) .docs-page__sections hr,:host-context([color-scheme=\"dark\"]) .docs-page__sections hr{border-color:#ffffff1a}:host-context(.dark) .docs-page__feedback,:host-context([color-scheme=\"dark\"]) .docs-page__feedback{border-color:#ffffff1a}@media (max-width: 768px){.docs-page__feedback{margin-top:2rem;padding-top:1.5rem}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DocsBreadcrumbComponent, selector: "val-docs-breadcrumb", inputs: ["props"], outputs: ["navigate"] }, { kind: "component", type: DocsNavLinksComponent, selector: "val-docs-nav-links", inputs: ["props"], outputs: ["navigate"] }, { kind: "component", type: DocsTocComponent, selector: "val-docs-toc", inputs: ["props"], outputs: ["sectionChange"] }, { kind: "component", type: ContentReactionComponent, selector: "val-content-reaction", inputs: ["props"], outputs: ["reactionSubmit", "reactionChange"] }] }); }
|
|
62853
|
+
`, isInline: true, styles: [".docs-page{display:grid;grid-template-columns:1fr;gap:2rem;max-width:1400px;margin:0 auto;padding:2rem 1.5rem}@media (min-width: 1200px){.docs-page{grid-template-columns:1fr 220px;padding:2rem}}.docs-page__content{min-width:0;max-width:900px}val-docs-breadcrumb{display:block;margin-bottom:1rem}.docs-page__header{margin-bottom:2rem}.docs-page__title-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.docs-page__title{margin:0;font-size:2rem;font-weight:700;color:var(--ion-text-color, #1a1a1a);line-height:1.2}@media (min-width: 768px){.docs-page__title{font-size:2.5rem}}.docs-page__badge{display:inline-flex;align-items:center;padding:.25rem .5rem;font-size:.6875rem;font-weight:500;text-transform:uppercase;letter-spacing:.03em;border-radius:4px;background:#0000000a;color:#888}.docs-page__badge--success{background:#0000000a;color:#888}.docs-page__badge--warning{background:var(--ion-color-warning-tint, #fff3e0);color:var(--ion-color-warning-shade, #e65100)}.docs-page__badge--danger{background:var(--ion-color-danger-tint, #ffebee);color:var(--ion-color-danger-shade, #c62828)}.docs-page__lead{margin:1rem 0 0;font-size:1.125rem;line-height:1.7;color:var(--ion-color-medium, #666)}.docs-page__sections>*:last-child{margin-bottom:0}.docs-page__feedback{margin-top:3rem;padding-top:2rem;border-top:1px solid rgba(0,0,0,.08);display:flex;justify-content:center}.docs-page__toc{display:none}@media (min-width: 1200px){.docs-page__toc{display:block;position:sticky;top:2rem;height:fit-content;max-height:calc(100vh - 4rem);overflow-y:auto}}.docs-page__sections h2{font-size:1.5rem;font-weight:600;margin:0 0 1rem;color:var(--ion-text-color, #1a1a1a);scroll-margin-top:2rem}.docs-page__sections h3{font-size:1.125rem;font-weight:600;margin:1.5rem 0 1rem;color:var(--ion-text-color, #1a1a1a)}.docs-page__sections h4{font-size:1rem;font-weight:600;margin:1.25rem 0 .75rem;color:var(--ion-text-color, #1a1a1a)}.docs-page__sections p{line-height:1.7;color:var(--ion-text-color, #1a1a1a);margin:0 0 1rem}.docs-page__sections ul,.docs-page__sections ol{padding-left:1.5rem;margin:0 0 1rem}.docs-page__sections li{margin-bottom:.5rem;line-height:1.6;color:var(--ion-text-color, #1a1a1a)}.docs-page__sections a{color:var(--ion-color-primary, #3880ff);text-decoration:none}.docs-page__sections a:hover{text-decoration:underline}.docs-page__sections code:not([class*=language-]){background:#0000000f;padding:.125rem .375rem;border-radius:4px;font-family:SF Mono,Fira Code,Consolas,monospace;font-size:.875em}.docs-page__sections pre:not([class*=language-]){background:#0000000a;padding:1rem;border-radius:8px;overflow-x:auto;margin:0 0 1rem}.docs-page__sections pre:not([class*=language-]) code{background:none;padding:0}.docs-page__sections table{width:100%;border-collapse:collapse;margin:0 0 1rem;font-size:.875rem}.docs-page__sections th,.docs-page__sections td{padding:.75rem;text-align:left;border-bottom:1px solid rgba(0,0,0,.1)}.docs-page__sections th{font-weight:600;background:#00000005}.docs-page__sections blockquote{margin:0 0 1rem;padding:1rem 1.5rem;border-left:4px solid var(--ion-color-primary, #3880ff);background:#00000005;border-radius:0 8px 8px 0}.docs-page__sections blockquote p:last-child{margin-bottom:0}.docs-page__sections img{max-width:100%;height:auto;border-radius:8px}.docs-page__sections hr{border:none;border-top:1px solid rgba(0,0,0,.1);margin:2rem 0}.docs-page__sections strong{font-weight:600}.docs-page__sections section{margin-bottom:2rem}:host-context(.dark) .docs-page__badge,:host-context([color-scheme=\"dark\"]) .docs-page__badge{background:#ffffff0f;color:#999}:host-context(.dark) .docs-page__badge--success,:host-context([color-scheme=\"dark\"]) .docs-page__badge--success{background:#ffffff0f;color:#999}:host-context(.dark) .docs-page__badge--warning,:host-context([color-scheme=\"dark\"]) .docs-page__badge--warning{background:#e6510033;color:#ffb74d}:host-context(.dark) .docs-page__badge--danger,:host-context([color-scheme=\"dark\"]) .docs-page__badge--danger{background:#c6282833;color:#e57373}:host-context(.dark) .docs-page__sections code:not([class*=language-]),:host-context([color-scheme=\"dark\"]) .docs-page__sections code:not([class*=language-]){background:#ffffff1a}:host-context(.dark) .docs-page__sections pre:not([class*=language-]),:host-context([color-scheme=\"dark\"]) .docs-page__sections pre:not([class*=language-]){background:#ffffff0f}:host-context(.dark) .docs-page__sections th,:host-context([color-scheme=\"dark\"]) .docs-page__sections th{background:#ffffff0a}:host-context(.dark) .docs-page__sections th,:host-context(.dark) .docs-page__sections td,:host-context([color-scheme=\"dark\"]) .docs-page__sections th,:host-context([color-scheme=\"dark\"]) .docs-page__sections td{border-color:#ffffff1a}:host-context(.dark) .docs-page__sections blockquote,:host-context([color-scheme=\"dark\"]) .docs-page__sections blockquote{background:#ffffff0a}:host-context(.dark) .docs-page__sections hr,:host-context([color-scheme=\"dark\"]) .docs-page__sections hr{border-color:#ffffff1a}:host-context(.dark) .docs-page__feedback,:host-context([color-scheme=\"dark\"]) .docs-page__feedback{border-color:#ffffff1a}@media (max-width: 768px){.docs-page__feedback{margin-top:2rem;padding-top:1.5rem}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DocsBreadcrumbComponent, selector: "val-docs-breadcrumb", inputs: ["props"], outputs: ["navigate"] }, { kind: "component", type: DocsNavLinksComponent, selector: "val-docs-nav-links", inputs: ["props"], outputs: ["navigate"] }, { kind: "component", type: DocsTocComponent, selector: "val-docs-toc", inputs: ["props"], outputs: ["sectionChange"] }, { kind: "component", type: ContentReactionComponent, selector: "val-content-reaction", inputs: ["props", "_modalRef"], outputs: ["reactionSubmit", "reactionChange"] }] }); }
|
|
62774
62854
|
}
|
|
62775
62855
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DocsPageComponent, decorators: [{
|
|
62776
62856
|
type: Component,
|