valtech-components 4.0.24 → 4.0.26
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/README.md +31 -262
- package/esm2022/lib/components/molecules/modal-shell/modal-shell.component.mjs +3 -3
- package/esm2022/lib/components/molecules/select-input/select-input.component.mjs +3 -3
- package/esm2022/lib/components/organisms/change-password-modal/change-password-modal.component.mjs +5 -5
- package/esm2022/lib/components/organisms/create-org-modal/create-org-modal.component.mjs +5 -5
- package/esm2022/lib/components/organisms/delete-account-modal/delete-account-modal.component.mjs +4 -3
- package/esm2022/lib/components/organisms/edit-org-modal/edit-org-modal.component.mjs +5 -5
- package/esm2022/lib/components/organisms/invite-member-modal/invite-member-modal.component.mjs +7 -5
- package/esm2022/lib/components/organisms/member-detail-modal/member-detail-modal.component.mjs +6 -5
- package/esm2022/lib/components/organisms/org-info-sheet/org-info-sheet.component.mjs +37 -48
- package/esm2022/lib/components/organisms/organization-view/organization-view.component.mjs +8 -2
- package/esm2022/lib/components/organisms/organization-view/organization-view.i18n.mjs +15 -3
- package/esm2022/lib/components/organisms/switch-org-modal/switch-org-modal.component.mjs +3 -3
- package/esm2022/lib/components/organisms/transfer-ownership-modal/transfer-ownership-modal.component.mjs +7 -7
- package/esm2022/lib/services/firebase/messaging.service.mjs +2 -2
- package/esm2022/lib/services/refreshable-stream/refreshable-stream.mjs +2 -2
- package/esm2022/lib/version.mjs +2 -2
- package/fesm2022/valtech-components.mjs +98 -87
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/organisms/article/article.component.d.ts +2 -2
- package/lib/components/organisms/landing-steps/landing-steps.component.d.ts +1 -1
- package/lib/components/organisms/org-info-sheet/org-info-sheet.component.d.ts +12 -1
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
- package/src/lib/services/firebase/firebase-messaging-sw.js +0 -145
|
@@ -25,7 +25,7 @@ import { getApps, getApp, initializeApp as initializeApp$1 } from 'firebase/app'
|
|
|
25
25
|
import * as i2$1 from '@ionic/angular/standalone';
|
|
26
26
|
import { AlertController, IonAvatar, IonCard, IonIcon, IonButton, IonSpinner, IonText, IonModal, IonHeader, IonToolbar, IonContent, IonButtons, IonTitle, IonProgressBar, IonSkeletonText, IonFab, IonFabButton, IonFabList, IonLabel, IonCardContent, IonCardHeader, IonCardTitle, IonCardSubtitle, IonCheckbox, IonRadio, IonRadioGroup, IonTextarea, IonDatetime, IonSelect, IonSelectOption, IonPopover, IonList, IonItem, IonInput, IonRange, IonSearchbar, IonSegment, IonSegmentButton, IonToggle, IonRippleEffect, IonAccordion, IonAccordionGroup, IonTabBar, IonTabButton, IonBadge, IonBreadcrumb, IonBreadcrumbs, IonChip, IonNote, IonDatetimeButton, ToastController as ToastController$1, IonCol, IonRow, IonRefresher, IonRefresherContent, IonMenuButton, IonFooter, IonListHeader, IonInfiniteScroll, IonInfiniteScrollContent, IonGrid, MenuController, IonMenu, IonMenuToggle, IonSplitPane } from '@ionic/angular/standalone';
|
|
27
27
|
import { addIcons } from 'ionicons';
|
|
28
|
-
import { addOutline, addCircleOutline, alertOutline, alertCircleOutline, arrowBackOutline, arrowForwardOutline, arrowDownOutline, settings, settingsOutline, checkmarkCircleOutline, ellipsisHorizontalOutline, notifications, notificationsOutline, openOutline, closeOutline, chatbubblesOutline, shareOutline, heart, heartOutline, home, homeOutline, eyeOffOutline, eyeOutline, scanOutline, chevronDownOutline, chevronForwardOutline, checkmarkOutline, clipboardOutline, copyOutline, filterOutline, locationOutline, calendarOutline, businessOutline, logoTwitter, logoInstagram, logoLinkedin, logoYoutube, logoTiktok, logoFacebook, logoGoogle, createOutline, trashOutline, playOutline, peopleOutline, phonePortraitOutline, refreshOutline, documentTextOutline, lockClosedOutline, cloudUploadOutline, informationCircleOutline, logoNpm, removeOutline, optionsOutline, personOutline, shieldCheckmarkOutline, keyOutline, desktopOutline, logOutOutline, cloudDownloadOutline, cloudOutline, gitBranchOutline, layersOutline, serverOutline, warningOutline, bulbOutline, lockOpenOutline, diamondOutline, add, close, share, create, trash, star, camera, mic, send, downloadOutline, chevronDown, language, globeOutline, checkmark, list, grid, apps, menu, search, person, helpCircle, informationCircle, documentText, mail, calendar, folder, chevronForward, ellipsisHorizontal, chevronBack, playBack, playForward, ellipse, starOutline, starHalf, heartHalf, checkmarkCircle, timeOutline, flag, trendingUp, trendingDown, remove, analytics, people, cash, cart, eye, chatbubbleOutline, thumbsUpOutline, thumbsUp, happyOutline, happy, sadOutline, sad, chevronUp, pin, pencil, callOutline, logoWhatsapp, paperPlaneOutline, mailOutline, chevronDownCircleOutline, closeCircle, alertCircle, logoApple, logoMicrosoft, linkOutline, unlinkOutline, cloudOfflineOutline, documentOutline, attachOutline, cameraOutline, closeCircleOutline, imageOutline, chevronBackOutline, sendOutline, chatbubbleEllipsesOutline, swapVerticalOutline, chevronUpOutline, searchOutline, cartOutline, chatbubble, compass, compassOutline, gridOutline, listOutline, folderOutline, documents, documentsOutline, statsChart, statsChartOutline, laptopOutline, swapHorizontalOutline, notificationsOffOutline, alarmOutline, chatboxEllipsesOutline, checkmarkDoneOutline, cogOutline, shareSocialOutline, helpCircleOutline, menuOutline, stopCircleOutline, videocamOffOutline } from 'ionicons/icons';
|
|
28
|
+
import { addOutline, addCircleOutline, alertOutline, alertCircleOutline, arrowBackOutline, arrowForwardOutline, arrowDownOutline, settings, settingsOutline, checkmarkCircleOutline, ellipsisHorizontalOutline, notifications, notificationsOutline, openOutline, closeOutline, chatbubblesOutline, shareOutline, heart, heartOutline, home, homeOutline, eyeOffOutline, eyeOutline, scanOutline, chevronDownOutline, chevronForwardOutline, checkmarkOutline, clipboardOutline, copyOutline, filterOutline, locationOutline, calendarOutline, businessOutline, logoTwitter, logoInstagram, logoLinkedin, logoYoutube, logoTiktok, logoFacebook, logoGoogle, createOutline, trashOutline, playOutline, peopleOutline, phonePortraitOutline, refreshOutline, documentTextOutline, lockClosedOutline, cloudUploadOutline, informationCircleOutline, logoNpm, removeOutline, optionsOutline, personOutline, shieldCheckmarkOutline, keyOutline, desktopOutline, logOutOutline, cloudDownloadOutline, cloudOutline, gitBranchOutline, layersOutline, serverOutline, warningOutline, bulbOutline, lockOpenOutline, diamondOutline, add, close, share, create, trash, star, camera, mic, send, downloadOutline, chevronDown, language, globeOutline, checkmark, list, grid, apps, menu, search, person, helpCircle, informationCircle, documentText, mail, calendar, folder, chevronForward, ellipsisHorizontal, chevronBack, playBack, playForward, ellipse, starOutline, starHalf, heartHalf, checkmarkCircle, timeOutline, flag, trendingUp, trendingDown, remove, analytics, people, cash, cart, eye, chatbubbleOutline, thumbsUpOutline, thumbsUp, happyOutline, happy, sadOutline, sad, chevronUp, pin, pencil, callOutline, logoWhatsapp, paperPlaneOutline, mailOutline, chevronDownCircleOutline, closeCircle, alertCircle, logoApple, logoMicrosoft, linkOutline, unlinkOutline, cloudOfflineOutline, documentOutline, attachOutline, cameraOutline, closeCircleOutline, imageOutline, chevronBackOutline, sendOutline, chatbubbleEllipsesOutline, swapVerticalOutline, chevronUpOutline, searchOutline, cartOutline, chatbubble, compass, compassOutline, gridOutline, listOutline, folderOutline, documents, documentsOutline, statsChart, statsChartOutline, laptopOutline, swapHorizontalOutline, codeSlashOutline, notificationsOffOutline, alarmOutline, chatboxEllipsesOutline, checkmarkDoneOutline, cogOutline, shareSocialOutline, helpCircleOutline, menuOutline, stopCircleOutline, videocamOffOutline } from 'ionicons/icons';
|
|
29
29
|
import { Browser } from '@capacitor/browser';
|
|
30
30
|
import * as i1$6 from '@angular/platform-browser';
|
|
31
31
|
import { DomSanitizer, Meta, Title } from '@angular/platform-browser';
|
|
@@ -56,7 +56,7 @@ import { BrowserMultiFormatReader } from '@zxing/browser';
|
|
|
56
56
|
* Current version of valtech-components.
|
|
57
57
|
* This is automatically updated during the publish process.
|
|
58
58
|
*/
|
|
59
|
-
const VERSION = '4.0.
|
|
59
|
+
const VERSION = '4.0.26';
|
|
60
60
|
|
|
61
61
|
// Control de estado de refresco (singleton a nivel de módulo)
|
|
62
62
|
let isRefreshing = false;
|
|
@@ -5499,7 +5499,7 @@ class MessagingService {
|
|
|
5499
5499
|
const token = await this.requestPermission();
|
|
5500
5500
|
if (!token) {
|
|
5501
5501
|
// requestPermission devuelve null tanto por permiso denegado como por
|
|
5502
|
-
// fallo al obtener el token.
|
|
5502
|
+
// fallo al obtener el token. Distivdsmos por el estado del permiso.
|
|
5503
5503
|
const permission = this.getPermissionState();
|
|
5504
5504
|
if (permission === 'denied' || permission === 'default') {
|
|
5505
5505
|
return { status: 'denied', reason: 'Permiso de notificaciones denegado' };
|
|
@@ -18493,7 +18493,7 @@ class SearchSelectorComponent {
|
|
|
18493
18493
|
<ion-select-option [value]="o.id">{{ o.name }}</ion-select-option>
|
|
18494
18494
|
}
|
|
18495
18495
|
</ion-select>
|
|
18496
|
-
`, isInline: true, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}ion-select{--padding-top: 0;--padding-bottom: 0;--padding-start: 0;--padding-end: 0;min-height:auto;border:.0625rem solid var(--ion-color-medium);border-radius
|
|
18496
|
+
`, isInline: true, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}ion-select{--padding-top: 0;--padding-bottom: 0;--padding-start: 0;--padding-end: 0;min-height:auto;border:.0625rem solid var(--ion-color-medium);border-radius:1.5rem;margin-top:.375rem;padding-top:.5rem!important;padding-bottom:.5rem!important;padding-inline-start:1rem!important;padding-inline-end:.625rem!important}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$7.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: IonSelect, selector: "ion-select", inputs: ["cancelText", "color", "compareWith", "disabled", "errorText", "expandedIcon", "fill", "helperText", "interface", "interfaceOptions", "justify", "label", "labelPlacement", "mode", "multiple", "name", "okText", "placeholder", "selectedText", "shape", "toggleIcon", "value"] }, { kind: "component", type: IonSelectOption, selector: "ion-select-option", inputs: ["disabled", "value"] }] }); }
|
|
18497
18497
|
}
|
|
18498
18498
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SearchSelectorComponent, decorators: [{
|
|
18499
18499
|
type: Component,
|
|
@@ -18511,7 +18511,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
18511
18511
|
<ion-select-option [value]="o.id">{{ o.name }}</ion-select-option>
|
|
18512
18512
|
}
|
|
18513
18513
|
</ion-select>
|
|
18514
|
-
`, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}ion-select{--padding-top: 0;--padding-bottom: 0;--padding-start: 0;--padding-end: 0;min-height:auto;border:.0625rem solid var(--ion-color-medium);border-radius
|
|
18514
|
+
`, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}ion-select{--padding-top: 0;--padding-bottom: 0;--padding-start: 0;--padding-end: 0;min-height:auto;border:.0625rem solid var(--ion-color-medium);border-radius:1.5rem;margin-top:.375rem;padding-top:.5rem!important;padding-bottom:.5rem!important;padding-inline-start:1rem!important;padding-inline-end:.625rem!important}\n"] }]
|
|
18515
18515
|
}], propDecorators: { preset: [{
|
|
18516
18516
|
type: Input
|
|
18517
18517
|
}], props: [{
|
|
@@ -29795,7 +29795,7 @@ class ModalShellComponent {
|
|
|
29795
29795
|
<ion-toolbar>
|
|
29796
29796
|
@if (showClose()) {
|
|
29797
29797
|
<ion-buttons slot="end">
|
|
29798
|
-
<ion-button fill="clear" color="dark" (click)="onClose()">
|
|
29798
|
+
<ion-button fill="clear" color="dark" shape="round" (click)="onClose()">
|
|
29799
29799
|
<strong>{{ resolvedCloseLabel() }}</strong>
|
|
29800
29800
|
</ion-button>
|
|
29801
29801
|
</ion-buttons>
|
|
@@ -29820,7 +29820,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
29820
29820
|
<ion-toolbar>
|
|
29821
29821
|
@if (showClose()) {
|
|
29822
29822
|
<ion-buttons slot="end">
|
|
29823
|
-
<ion-button fill="clear" color="dark" (click)="onClose()">
|
|
29823
|
+
<ion-button fill="clear" color="dark" shape="round" (click)="onClose()">
|
|
29824
29824
|
<strong>{{ resolvedCloseLabel() }}</strong>
|
|
29825
29825
|
</ion-button>
|
|
29826
29826
|
</ion-buttons>
|
|
@@ -33391,7 +33391,7 @@ class ChangePasswordModalComponent {
|
|
|
33391
33391
|
},
|
|
33392
33392
|
],
|
|
33393
33393
|
actions: {
|
|
33394
|
-
...button({ text: '', type: 'submit', fill: 'solid', expand: 'block' }),
|
|
33394
|
+
...button({ text: '', type: 'submit', fill: 'solid', expand: 'block', shape: 'round' }),
|
|
33395
33395
|
token: 'set-submit',
|
|
33396
33396
|
textKey: 'setPasswordSubmit',
|
|
33397
33397
|
},
|
|
@@ -33425,7 +33425,7 @@ class ChangePasswordModalComponent {
|
|
|
33425
33425
|
},
|
|
33426
33426
|
],
|
|
33427
33427
|
actions: {
|
|
33428
|
-
...button({ text: '', type: 'submit', fill: 'solid', expand: 'block' }),
|
|
33428
|
+
...button({ text: '', type: 'submit', fill: 'solid', expand: 'block', shape: 'round' }),
|
|
33429
33429
|
token: 'change-submit',
|
|
33430
33430
|
textKey: 'changePasswordSubmit',
|
|
33431
33431
|
},
|
|
@@ -33564,11 +33564,11 @@ class ChangePasswordModalComponent {
|
|
|
33564
33564
|
this.toast.show({ message, duration: 3500 });
|
|
33565
33565
|
}
|
|
33566
33566
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChangePasswordModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
33567
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ChangePasswordModalComponent, isStandalone: true, selector: "val-change-password-modal", inputs: { isOpen: "isOpen" }, outputs: { changed: "changed", dismissed: "dismissed" }, ngImport: i0, template: "<ion-modal [isOpen]=\"isOpen\" (didDismiss)=\"close()\">\n <ng-template>\n <ion-header>\n <ion-toolbar>\n <ion-buttons slot=\"end\">\n <ion-button fill=\"clear\" color=\"dark\" (click)=\"close()\">\n <strong>{{ t('close') }}</strong>\n </ion-button>\n </ion-buttons>\n </ion-toolbar>\n </ion-header>\n <ion-content class=\"ion-padding\">\n <section class=\"modal-form-section\">\n @if (mode() === 'loading') {\n <div class=\"modal-loading\">\n <ion-spinner name=\"crescent\"></ion-spinner>\n </div>\n } @else {\n <val-form [props]=\"formProps()\" (onSubmit)=\"submitHandler($event)\" />\n }\n </section>\n </ion-content>\n </ng-template>\n</ion-modal>\n", styles: [".modal-form-section{display:flex;flex-direction:column;gap:16px;max-width:420px;margin:0 auto;padding-top:8px}.modal-loading{display:flex;justify-content:center;padding:40px 0}\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: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonModal, selector: "ion-modal" }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: FormComponent, selector: "val-form", inputs: ["props"], outputs: ["onSubmit", "onInvalid", "onSelectChange"] }] }); }
|
|
33567
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ChangePasswordModalComponent, isStandalone: true, selector: "val-change-password-modal", inputs: { isOpen: "isOpen" }, outputs: { changed: "changed", dismissed: "dismissed" }, ngImport: i0, template: "<ion-modal [isOpen]=\"isOpen\" (didDismiss)=\"close()\">\n <ng-template>\n <ion-header>\n <ion-toolbar>\n <ion-buttons slot=\"end\">\n <ion-button fill=\"clear\" color=\"dark\" shape=\"round\" (click)=\"close()\">\n <strong>{{ t('close') }}</strong>\n </ion-button>\n </ion-buttons>\n </ion-toolbar>\n </ion-header>\n <ion-content class=\"ion-padding\">\n <section class=\"modal-form-section\">\n @if (mode() === 'loading') {\n <div class=\"modal-loading\">\n <ion-spinner name=\"crescent\"></ion-spinner>\n </div>\n } @else {\n <val-form [props]=\"formProps()\" (onSubmit)=\"submitHandler($event)\" />\n }\n </section>\n </ion-content>\n </ng-template>\n</ion-modal>\n", styles: [".modal-form-section{display:flex;flex-direction:column;gap:16px;max-width:420px;margin:0 auto;padding-top:8px}.modal-loading{display:flex;justify-content:center;padding:40px 0}\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: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonModal, selector: "ion-modal" }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: FormComponent, selector: "val-form", inputs: ["props"], outputs: ["onSubmit", "onInvalid", "onSelectChange"] }] }); }
|
|
33568
33568
|
}
|
|
33569
33569
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChangePasswordModalComponent, decorators: [{
|
|
33570
33570
|
type: Component,
|
|
33571
|
-
args: [{ selector: 'val-change-password-modal', standalone: true, imports: [IonButton, IonButtons, IonContent, IonHeader, IonModal, IonSpinner, IonToolbar, FormComponent], template: "<ion-modal [isOpen]=\"isOpen\" (didDismiss)=\"close()\">\n <ng-template>\n <ion-header>\n <ion-toolbar>\n <ion-buttons slot=\"end\">\n <ion-button fill=\"clear\" color=\"dark\" (click)=\"close()\">\n <strong>{{ t('close') }}</strong>\n </ion-button>\n </ion-buttons>\n </ion-toolbar>\n </ion-header>\n <ion-content class=\"ion-padding\">\n <section class=\"modal-form-section\">\n @if (mode() === 'loading') {\n <div class=\"modal-loading\">\n <ion-spinner name=\"crescent\"></ion-spinner>\n </div>\n } @else {\n <val-form [props]=\"formProps()\" (onSubmit)=\"submitHandler($event)\" />\n }\n </section>\n </ion-content>\n </ng-template>\n</ion-modal>\n", styles: [".modal-form-section{display:flex;flex-direction:column;gap:16px;max-width:420px;margin:0 auto;padding-top:8px}.modal-loading{display:flex;justify-content:center;padding:40px 0}\n"] }]
|
|
33571
|
+
args: [{ selector: 'val-change-password-modal', standalone: true, imports: [IonButton, IonButtons, IonContent, IonHeader, IonModal, IonSpinner, IonToolbar, FormComponent], template: "<ion-modal [isOpen]=\"isOpen\" (didDismiss)=\"close()\">\n <ng-template>\n <ion-header>\n <ion-toolbar>\n <ion-buttons slot=\"end\">\n <ion-button fill=\"clear\" color=\"dark\" shape=\"round\" (click)=\"close()\">\n <strong>{{ t('close') }}</strong>\n </ion-button>\n </ion-buttons>\n </ion-toolbar>\n </ion-header>\n <ion-content class=\"ion-padding\">\n <section class=\"modal-form-section\">\n @if (mode() === 'loading') {\n <div class=\"modal-loading\">\n <ion-spinner name=\"crescent\"></ion-spinner>\n </div>\n } @else {\n <val-form [props]=\"formProps()\" (onSubmit)=\"submitHandler($event)\" />\n }\n </section>\n </ion-content>\n </ng-template>\n</ion-modal>\n", styles: [".modal-form-section{display:flex;flex-direction:column;gap:16px;max-width:420px;margin:0 auto;padding-top:8px}.modal-loading{display:flex;justify-content:center;padding:40px 0}\n"] }]
|
|
33572
33572
|
}], propDecorators: { isOpen: [{
|
|
33573
33573
|
type: Input
|
|
33574
33574
|
}], changed: [{
|
|
@@ -46822,7 +46822,7 @@ class CreateOrgModalComponent {
|
|
|
46822
46822
|
<ion-header>
|
|
46823
46823
|
<ion-toolbar>
|
|
46824
46824
|
<ion-buttons slot="end">
|
|
46825
|
-
<ion-button fill="clear" color="dark" (click)="dismiss()">
|
|
46825
|
+
<ion-button fill="clear" color="dark" shape="round" (click)="dismiss()">
|
|
46826
46826
|
<strong>{{ t('close') }}</strong>
|
|
46827
46827
|
</ion-button>
|
|
46828
46828
|
</ion-buttons>
|
|
@@ -46840,7 +46840,7 @@ class CreateOrgModalComponent {
|
|
|
46840
46840
|
/>
|
|
46841
46841
|
<val-form [props]="formMeta()" (onSubmit)="onSubmit($event)" />
|
|
46842
46842
|
<div class="modal-close-bottom">
|
|
46843
|
-
<ion-button expand="block" fill="outline" color="dark" (click)="dismiss()">
|
|
46843
|
+
<ion-button expand="block" fill="outline" color="dark" shape="round" (click)="dismiss()">
|
|
46844
46844
|
{{ t('close') }}
|
|
46845
46845
|
</ion-button>
|
|
46846
46846
|
</div>
|
|
@@ -46853,7 +46853,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
46853
46853
|
<ion-header>
|
|
46854
46854
|
<ion-toolbar>
|
|
46855
46855
|
<ion-buttons slot="end">
|
|
46856
|
-
<ion-button fill="clear" color="dark" (click)="dismiss()">
|
|
46856
|
+
<ion-button fill="clear" color="dark" shape="round" (click)="dismiss()">
|
|
46857
46857
|
<strong>{{ t('close') }}</strong>
|
|
46858
46858
|
</ion-button>
|
|
46859
46859
|
</ion-buttons>
|
|
@@ -46871,7 +46871,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
46871
46871
|
/>
|
|
46872
46872
|
<val-form [props]="formMeta()" (onSubmit)="onSubmit($event)" />
|
|
46873
46873
|
<div class="modal-close-bottom">
|
|
46874
|
-
<ion-button expand="block" fill="outline" color="dark" (click)="dismiss()">
|
|
46874
|
+
<ion-button expand="block" fill="outline" color="dark" shape="round" (click)="dismiss()">
|
|
46875
46875
|
{{ t('close') }}
|
|
46876
46876
|
</ion-button>
|
|
46877
46877
|
</div>
|
|
@@ -47035,6 +47035,7 @@ class DeleteAccountModalComponent {
|
|
|
47035
47035
|
fill: 'solid',
|
|
47036
47036
|
color: 'dark',
|
|
47037
47037
|
size: 'default',
|
|
47038
|
+
shape: 'round',
|
|
47038
47039
|
token,
|
|
47039
47040
|
state: ComponentStates.ENABLED,
|
|
47040
47041
|
};
|
|
@@ -47104,7 +47105,7 @@ class DeleteAccountModalComponent {
|
|
|
47104
47105
|
<ion-header>
|
|
47105
47106
|
<ion-toolbar>
|
|
47106
47107
|
<ion-buttons slot="end">
|
|
47107
|
-
<ion-button fill="clear" color="dark" (click)="close()">
|
|
47108
|
+
<ion-button fill="clear" color="dark" shape="round" (click)="close()">
|
|
47108
47109
|
<strong>{{ t('close') }}</strong>
|
|
47109
47110
|
</ion-button>
|
|
47110
47111
|
</ion-buttons>
|
|
@@ -47145,7 +47146,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
47145
47146
|
<ion-header>
|
|
47146
47147
|
<ion-toolbar>
|
|
47147
47148
|
<ion-buttons slot="end">
|
|
47148
|
-
<ion-button fill="clear" color="dark" (click)="close()">
|
|
47149
|
+
<ion-button fill="clear" color="dark" shape="round" (click)="close()">
|
|
47149
47150
|
<strong>{{ t('close') }}</strong>
|
|
47150
47151
|
</ion-button>
|
|
47151
47152
|
</ion-buttons>
|
|
@@ -47270,7 +47271,18 @@ class OrgInfoSheetComponent {
|
|
|
47270
47271
|
...this.closeProps,
|
|
47271
47272
|
text: this.closeProps.text || this.resolvedCloseLabel(),
|
|
47272
47273
|
}));
|
|
47273
|
-
|
|
47274
|
+
this.resolvedFeatures = computed(() => {
|
|
47275
|
+
if (this.features?.length)
|
|
47276
|
+
return this.features;
|
|
47277
|
+
if (!this.showFeatures)
|
|
47278
|
+
return [];
|
|
47279
|
+
return [
|
|
47280
|
+
{ icon: 'people-outline', title: this.tt('featureCollabTitle'), desc: this.tt('featureCollabDesc') },
|
|
47281
|
+
{ icon: 'swap-horizontal-outline', title: this.tt('featureSwitchTitle'), desc: this.tt('featureSwitchDesc') },
|
|
47282
|
+
{ icon: 'mail-outline', title: this.tt('featureInviteTitle'), desc: this.tt('featureInviteDesc') },
|
|
47283
|
+
];
|
|
47284
|
+
});
|
|
47285
|
+
addIcons({ peopleOutline, swapHorizontalOutline, mailOutline, codeSlashOutline, shieldCheckmarkOutline, warningOutline });
|
|
47274
47286
|
if (!this.i18n.hasNamespace(DEFAULT_NAMESPACE$f)) {
|
|
47275
47287
|
this.i18n.registerContent(DEFAULT_NAMESPACE$f, ORG_INFO_SHEET_I18N);
|
|
47276
47288
|
}
|
|
@@ -47282,11 +47294,11 @@ class OrgInfoSheetComponent {
|
|
|
47282
47294
|
return this.i18n.t(key, DEFAULT_NAMESPACE$f);
|
|
47283
47295
|
}
|
|
47284
47296
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: OrgInfoSheetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
47285
|
-
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: `
|
|
47297
|
+
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", features: "features", closeProps: "closeProps", _modalRef: "_modalRef" }, ngImport: i0, template: `
|
|
47286
47298
|
<ion-header>
|
|
47287
47299
|
<ion-toolbar>
|
|
47288
47300
|
<ion-buttons slot="end">
|
|
47289
|
-
<ion-button fill="clear" color="dark" (click)="dismiss()">
|
|
47301
|
+
<ion-button fill="clear" color="dark" shape="round" (click)="dismiss()">
|
|
47290
47302
|
<strong>{{ resolvedCloseLabel() }}</strong>
|
|
47291
47303
|
</ion-button>
|
|
47292
47304
|
</ion-buttons>
|
|
@@ -47297,29 +47309,17 @@ class OrgInfoSheetComponent {
|
|
|
47297
47309
|
<val-display [props]="{ content: resolvedTitle(), size: 'small', color: 'dark' }" />
|
|
47298
47310
|
<val-title [props]="{ content: resolvedSubtitle(), size: 'large', color: '', bold: false }" />
|
|
47299
47311
|
|
|
47300
|
-
@if (
|
|
47312
|
+
@if (resolvedFeatures().length > 0) {
|
|
47301
47313
|
<div class="info-features">
|
|
47302
|
-
|
|
47303
|
-
<
|
|
47304
|
-
|
|
47305
|
-
<div
|
|
47306
|
-
|
|
47307
|
-
|
|
47308
|
-
|
|
47309
|
-
<div class="info-feature">
|
|
47310
|
-
<ion-icon name="swap-horizontal-outline" class="info-feature__icon" />
|
|
47311
|
-
<div>
|
|
47312
|
-
<div class="info-feature__title">{{ tt('featureSwitchTitle') }}</div>
|
|
47313
|
-
<div class="info-feature__desc">{{ tt('featureSwitchDesc') }}</div>
|
|
47314
|
-
</div>
|
|
47315
|
-
</div>
|
|
47316
|
-
<div class="info-feature">
|
|
47317
|
-
<ion-icon name="mail-outline" class="info-feature__icon" />
|
|
47318
|
-
<div>
|
|
47319
|
-
<div class="info-feature__title">{{ tt('featureInviteTitle') }}</div>
|
|
47320
|
-
<div class="info-feature__desc">{{ tt('featureInviteDesc') }}</div>
|
|
47314
|
+
@for (f of resolvedFeatures(); track $index) {
|
|
47315
|
+
<div class="info-feature">
|
|
47316
|
+
<ion-icon [name]="f.icon" class="info-feature__icon" />
|
|
47317
|
+
<div>
|
|
47318
|
+
<div class="info-feature__title">{{ f.title }}</div>
|
|
47319
|
+
<div class="info-feature__desc">{{ f.desc }}</div>
|
|
47320
|
+
</div>
|
|
47321
47321
|
</div>
|
|
47322
|
-
|
|
47322
|
+
}
|
|
47323
47323
|
</div>
|
|
47324
47324
|
}
|
|
47325
47325
|
|
|
@@ -47357,7 +47357,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
47357
47357
|
<ion-header>
|
|
47358
47358
|
<ion-toolbar>
|
|
47359
47359
|
<ion-buttons slot="end">
|
|
47360
|
-
<ion-button fill="clear" color="dark" (click)="dismiss()">
|
|
47360
|
+
<ion-button fill="clear" color="dark" shape="round" (click)="dismiss()">
|
|
47361
47361
|
<strong>{{ resolvedCloseLabel() }}</strong>
|
|
47362
47362
|
</ion-button>
|
|
47363
47363
|
</ion-buttons>
|
|
@@ -47368,29 +47368,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
47368
47368
|
<val-display [props]="{ content: resolvedTitle(), size: 'small', color: 'dark' }" />
|
|
47369
47369
|
<val-title [props]="{ content: resolvedSubtitle(), size: 'large', color: '', bold: false }" />
|
|
47370
47370
|
|
|
47371
|
-
@if (
|
|
47371
|
+
@if (resolvedFeatures().length > 0) {
|
|
47372
47372
|
<div class="info-features">
|
|
47373
|
-
|
|
47374
|
-
<
|
|
47375
|
-
|
|
47376
|
-
<div
|
|
47377
|
-
|
|
47378
|
-
|
|
47379
|
-
|
|
47380
|
-
<div class="info-feature">
|
|
47381
|
-
<ion-icon name="swap-horizontal-outline" class="info-feature__icon" />
|
|
47382
|
-
<div>
|
|
47383
|
-
<div class="info-feature__title">{{ tt('featureSwitchTitle') }}</div>
|
|
47384
|
-
<div class="info-feature__desc">{{ tt('featureSwitchDesc') }}</div>
|
|
47385
|
-
</div>
|
|
47386
|
-
</div>
|
|
47387
|
-
<div class="info-feature">
|
|
47388
|
-
<ion-icon name="mail-outline" class="info-feature__icon" />
|
|
47389
|
-
<div>
|
|
47390
|
-
<div class="info-feature__title">{{ tt('featureInviteTitle') }}</div>
|
|
47391
|
-
<div class="info-feature__desc">{{ tt('featureInviteDesc') }}</div>
|
|
47373
|
+
@for (f of resolvedFeatures(); track $index) {
|
|
47374
|
+
<div class="info-feature">
|
|
47375
|
+
<ion-icon [name]="f.icon" class="info-feature__icon" />
|
|
47376
|
+
<div>
|
|
47377
|
+
<div class="info-feature__title">{{ f.title }}</div>
|
|
47378
|
+
<div class="info-feature__desc">{{ f.desc }}</div>
|
|
47379
|
+
</div>
|
|
47392
47380
|
</div>
|
|
47393
|
-
|
|
47381
|
+
}
|
|
47394
47382
|
</div>
|
|
47395
47383
|
}
|
|
47396
47384
|
|
|
@@ -47420,6 +47408,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
47420
47408
|
type: Input
|
|
47421
47409
|
}], showFeatures: [{
|
|
47422
47410
|
type: Input
|
|
47411
|
+
}], features: [{
|
|
47412
|
+
type: Input
|
|
47423
47413
|
}], closeProps: [{
|
|
47424
47414
|
type: Input
|
|
47425
47415
|
}], _modalRef: [{
|
|
@@ -47545,7 +47535,7 @@ class SwitchOrgModalComponent {
|
|
|
47545
47535
|
<ion-header>
|
|
47546
47536
|
<ion-toolbar>
|
|
47547
47537
|
<ion-buttons slot="end">
|
|
47548
|
-
<ion-button fill="clear" color="dark" (click)="dismiss()">
|
|
47538
|
+
<ion-button fill="clear" color="dark" shape="round" (click)="dismiss()">
|
|
47549
47539
|
<strong>{{ t('close') }}</strong>
|
|
47550
47540
|
</ion-button>
|
|
47551
47541
|
</ion-buttons>
|
|
@@ -47636,7 +47626,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
47636
47626
|
<ion-header>
|
|
47637
47627
|
<ion-toolbar>
|
|
47638
47628
|
<ion-buttons slot="end">
|
|
47639
|
-
<ion-button fill="clear" color="dark" (click)="dismiss()">
|
|
47629
|
+
<ion-button fill="clear" color="dark" shape="round" (click)="dismiss()">
|
|
47640
47630
|
<strong>{{ t('close') }}</strong>
|
|
47641
47631
|
</ion-button>
|
|
47642
47632
|
</ion-buttons>
|
|
@@ -48803,7 +48793,7 @@ class EditOrgModalComponent {
|
|
|
48803
48793
|
<ion-header>
|
|
48804
48794
|
<ion-toolbar>
|
|
48805
48795
|
<ion-buttons slot="end">
|
|
48806
|
-
<ion-button fill="clear" color="dark" (click)="dismiss()">
|
|
48796
|
+
<ion-button fill="clear" color="dark" shape="round" (click)="dismiss()">
|
|
48807
48797
|
<strong>{{ t('close') }}</strong>
|
|
48808
48798
|
</ion-button>
|
|
48809
48799
|
</ion-buttons>
|
|
@@ -48821,7 +48811,7 @@ class EditOrgModalComponent {
|
|
|
48821
48811
|
/>
|
|
48822
48812
|
<val-form [props]="formMeta()" (onSubmit)="onFormSubmit($event)" />
|
|
48823
48813
|
<div class="modal-close-bottom">
|
|
48824
|
-
<ion-button expand="block" fill="outline" color="dark" (click)="dismiss()">
|
|
48814
|
+
<ion-button expand="block" fill="outline" color="dark" shape="round" (click)="dismiss()">
|
|
48825
48815
|
{{ t('close') }}
|
|
48826
48816
|
</ion-button>
|
|
48827
48817
|
</div>
|
|
@@ -48834,7 +48824,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
48834
48824
|
<ion-header>
|
|
48835
48825
|
<ion-toolbar>
|
|
48836
48826
|
<ion-buttons slot="end">
|
|
48837
|
-
<ion-button fill="clear" color="dark" (click)="dismiss()">
|
|
48827
|
+
<ion-button fill="clear" color="dark" shape="round" (click)="dismiss()">
|
|
48838
48828
|
<strong>{{ t('close') }}</strong>
|
|
48839
48829
|
</ion-button>
|
|
48840
48830
|
</ion-buttons>
|
|
@@ -48852,7 +48842,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
48852
48842
|
/>
|
|
48853
48843
|
<val-form [props]="formMeta()" (onSubmit)="onFormSubmit($event)" />
|
|
48854
48844
|
<div class="modal-close-bottom">
|
|
48855
|
-
<ion-button expand="block" fill="outline" color="dark" (click)="dismiss()">
|
|
48845
|
+
<ion-button expand="block" fill="outline" color="dark" shape="round" (click)="dismiss()">
|
|
48856
48846
|
{{ t('close') }}
|
|
48857
48847
|
</ion-button>
|
|
48858
48848
|
</div>
|
|
@@ -48982,6 +48972,7 @@ class InviteMemberModalComponent {
|
|
|
48982
48972
|
fill: 'solid',
|
|
48983
48973
|
expand: 'block',
|
|
48984
48974
|
size: 'default',
|
|
48975
|
+
shape: 'round',
|
|
48985
48976
|
type: 'button',
|
|
48986
48977
|
state: this.sending() ? ComponentStates.WORKING : ComponentStates.ENABLED,
|
|
48987
48978
|
}));
|
|
@@ -48992,6 +48983,7 @@ class InviteMemberModalComponent {
|
|
|
48992
48983
|
fill: 'solid',
|
|
48993
48984
|
expand: 'block',
|
|
48994
48985
|
size: 'default',
|
|
48986
|
+
shape: 'round',
|
|
48995
48987
|
type: 'button',
|
|
48996
48988
|
state: this.sending() ? ComponentStates.WORKING : ComponentStates.ENABLED,
|
|
48997
48989
|
}));
|
|
@@ -49164,7 +49156,7 @@ class InviteMemberModalComponent {
|
|
|
49164
49156
|
<ion-header>
|
|
49165
49157
|
<ion-toolbar>
|
|
49166
49158
|
<ion-buttons slot="end">
|
|
49167
|
-
<ion-button fill="clear" color="dark" (click)="dismiss()">
|
|
49159
|
+
<ion-button fill="clear" color="dark" shape="round" (click)="dismiss()">
|
|
49168
49160
|
<strong>{{ t('close') }}</strong>
|
|
49169
49161
|
</ion-button>
|
|
49170
49162
|
</ion-buttons>
|
|
@@ -49276,7 +49268,7 @@ class InviteMemberModalComponent {
|
|
|
49276
49268
|
</div>
|
|
49277
49269
|
|
|
49278
49270
|
<div class="modal-close-bottom">
|
|
49279
|
-
<ion-button expand="block" fill="outline" color="dark" (click)="dismiss()">
|
|
49271
|
+
<ion-button expand="block" fill="outline" color="dark" shape="round" (click)="dismiss()">
|
|
49280
49272
|
{{ t('close') }}
|
|
49281
49273
|
</ion-button>
|
|
49282
49274
|
</div>
|
|
@@ -49305,7 +49297,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
49305
49297
|
<ion-header>
|
|
49306
49298
|
<ion-toolbar>
|
|
49307
49299
|
<ion-buttons slot="end">
|
|
49308
|
-
<ion-button fill="clear" color="dark" (click)="dismiss()">
|
|
49300
|
+
<ion-button fill="clear" color="dark" shape="round" (click)="dismiss()">
|
|
49309
49301
|
<strong>{{ t('close') }}</strong>
|
|
49310
49302
|
</ion-button>
|
|
49311
49303
|
</ion-buttons>
|
|
@@ -49417,7 +49409,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
49417
49409
|
</div>
|
|
49418
49410
|
|
|
49419
49411
|
<div class="modal-close-bottom">
|
|
49420
|
-
<ion-button expand="block" fill="outline" color="dark" (click)="dismiss()">
|
|
49412
|
+
<ion-button expand="block" fill="outline" color="dark" shape="round" (click)="dismiss()">
|
|
49421
49413
|
{{ t('close') }}
|
|
49422
49414
|
</ion-button>
|
|
49423
49415
|
</div>
|
|
@@ -49697,6 +49689,7 @@ class MemberDetailModalComponent {
|
|
|
49697
49689
|
fill: 'outline',
|
|
49698
49690
|
expand: 'block',
|
|
49699
49691
|
size: 'default',
|
|
49692
|
+
shape: 'round',
|
|
49700
49693
|
type: 'button',
|
|
49701
49694
|
state: this.working() ? ComponentStates.WORKING : ComponentStates.ENABLED,
|
|
49702
49695
|
}));
|
|
@@ -49814,7 +49807,7 @@ class MemberDetailModalComponent {
|
|
|
49814
49807
|
<ion-header>
|
|
49815
49808
|
<ion-toolbar>
|
|
49816
49809
|
<ion-buttons slot="end">
|
|
49817
|
-
<ion-button fill="clear" color="dark" (click)="dismiss()">
|
|
49810
|
+
<ion-button fill="clear" color="dark" shape="round" (click)="dismiss()">
|
|
49818
49811
|
<strong>{{ t('close') }}</strong>
|
|
49819
49812
|
</ion-button>
|
|
49820
49813
|
</ion-buttons>
|
|
@@ -49885,7 +49878,7 @@ class MemberDetailModalComponent {
|
|
|
49885
49878
|
}
|
|
49886
49879
|
|
|
49887
49880
|
<div class="modal-close-bottom">
|
|
49888
|
-
<ion-button expand="block" fill="outline" color="dark" (click)="dismiss()">
|
|
49881
|
+
<ion-button expand="block" fill="outline" color="dark" shape="round" (click)="dismiss()">
|
|
49889
49882
|
{{ t('close') }}
|
|
49890
49883
|
</ion-button>
|
|
49891
49884
|
</div>
|
|
@@ -49911,7 +49904,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
49911
49904
|
<ion-header>
|
|
49912
49905
|
<ion-toolbar>
|
|
49913
49906
|
<ion-buttons slot="end">
|
|
49914
|
-
<ion-button fill="clear" color="dark" (click)="dismiss()">
|
|
49907
|
+
<ion-button fill="clear" color="dark" shape="round" (click)="dismiss()">
|
|
49915
49908
|
<strong>{{ t('close') }}</strong>
|
|
49916
49909
|
</ion-button>
|
|
49917
49910
|
</ion-buttons>
|
|
@@ -49982,7 +49975,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
49982
49975
|
}
|
|
49983
49976
|
|
|
49984
49977
|
<div class="modal-close-bottom">
|
|
49985
|
-
<ion-button expand="block" fill="outline" color="dark" (click)="dismiss()">
|
|
49978
|
+
<ion-button expand="block" fill="outline" color="dark" shape="round" (click)="dismiss()">
|
|
49986
49979
|
{{ t('close') }}
|
|
49987
49980
|
</ion-button>
|
|
49988
49981
|
</div>
|
|
@@ -50094,7 +50087,7 @@ class TransferOwnershipModalComponent {
|
|
|
50094
50087
|
<ion-header>
|
|
50095
50088
|
<ion-toolbar>
|
|
50096
50089
|
<ion-buttons slot="end">
|
|
50097
|
-
<ion-button fill="clear" color="dark" (click)="dismiss()">
|
|
50090
|
+
<ion-button fill="clear" color="dark" shape="round" (click)="dismiss()">
|
|
50098
50091
|
<strong>{{ t('close') }}</strong>
|
|
50099
50092
|
</ion-button>
|
|
50100
50093
|
</ion-buttons>
|
|
@@ -50154,13 +50147,13 @@ class TransferOwnershipModalComponent {
|
|
|
50154
50147
|
}
|
|
50155
50148
|
|
|
50156
50149
|
<div class="transfer-confirm-row">
|
|
50157
|
-
<ion-button expand="block" color="dark" [disabled]="!selectedId()" (click)="confirm()">
|
|
50150
|
+
<ion-button expand="block" color="dark" shape="round" [disabled]="!selectedId()" (click)="confirm()">
|
|
50158
50151
|
{{ t('confirmCta') }}
|
|
50159
50152
|
</ion-button>
|
|
50160
50153
|
</div>
|
|
50161
50154
|
|
|
50162
50155
|
<div class="modal-close-bottom">
|
|
50163
|
-
<ion-button expand="block" fill="outline" color="dark" (click)="dismiss()">
|
|
50156
|
+
<ion-button expand="block" fill="outline" color="dark" shape="round" (click)="dismiss()">
|
|
50164
50157
|
{{ t('close') }}
|
|
50165
50158
|
</ion-button>
|
|
50166
50159
|
</div>
|
|
@@ -50183,7 +50176,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
50183
50176
|
<ion-header>
|
|
50184
50177
|
<ion-toolbar>
|
|
50185
50178
|
<ion-buttons slot="end">
|
|
50186
|
-
<ion-button fill="clear" color="dark" (click)="dismiss()">
|
|
50179
|
+
<ion-button fill="clear" color="dark" shape="round" (click)="dismiss()">
|
|
50187
50180
|
<strong>{{ t('close') }}</strong>
|
|
50188
50181
|
</ion-button>
|
|
50189
50182
|
</ion-buttons>
|
|
@@ -50243,13 +50236,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
50243
50236
|
}
|
|
50244
50237
|
|
|
50245
50238
|
<div class="transfer-confirm-row">
|
|
50246
|
-
<ion-button expand="block" color="dark" [disabled]="!selectedId()" (click)="confirm()">
|
|
50239
|
+
<ion-button expand="block" color="dark" shape="round" [disabled]="!selectedId()" (click)="confirm()">
|
|
50247
50240
|
{{ t('confirmCta') }}
|
|
50248
50241
|
</ion-button>
|
|
50249
50242
|
</div>
|
|
50250
50243
|
|
|
50251
50244
|
<div class="modal-close-bottom">
|
|
50252
|
-
<ion-button expand="block" fill="outline" color="dark" (click)="dismiss()">
|
|
50245
|
+
<ion-button expand="block" fill="outline" color="dark" shape="round" (click)="dismiss()">
|
|
50253
50246
|
{{ t('close') }}
|
|
50254
50247
|
</ion-button>
|
|
50255
50248
|
</div>
|
|
@@ -50873,8 +50866,14 @@ const ORGANIZATION_VIEW_I18N = {
|
|
|
50873
50866
|
apiKeysMoreInfo: 'Más información',
|
|
50874
50867
|
apiKeysInfoTitle: 'Integraciones por API',
|
|
50875
50868
|
apiKeysInfoSubtitle: '¿Qué puedes hacer con una API Key?',
|
|
50876
|
-
apiKeysInfoContent: '
|
|
50869
|
+
apiKeysInfoContent: 'Revoca cualquier key en cualquier momento desde la sección Integraciones.',
|
|
50877
50870
|
apiKeysInfoClose: 'Cerrar',
|
|
50871
|
+
apiKeysFeatureAutoTitle: 'Automatización',
|
|
50872
|
+
apiKeysFeatureAutoDesc: 'Conecta tus sistemas externos directamente, sin abrir la app.',
|
|
50873
|
+
apiKeysFeaturePermsTitle: 'Permisos a medida',
|
|
50874
|
+
apiKeysFeaturePermsDesc: 'Cada key lleva solo los permisos que tú le asignes — concede el mínimo.',
|
|
50875
|
+
apiKeysFeatureSecretTitle: 'Secreto único',
|
|
50876
|
+
apiKeysFeatureSecretDesc: 'El secreto se muestra una sola vez. Guárdalo en un gestor de secretos.',
|
|
50878
50877
|
orgsMoreInfo: 'Aprender más sobre organizaciones',
|
|
50879
50878
|
orgsInfoTitle: '¿Qué son las organizaciones?',
|
|
50880
50879
|
orgsInfoSubtitle: 'Todo lo que necesitas saber',
|
|
@@ -50956,8 +50955,14 @@ const ORGANIZATION_VIEW_I18N = {
|
|
|
50956
50955
|
apiKeysMoreInfo: 'More information',
|
|
50957
50956
|
apiKeysInfoTitle: 'API integrations',
|
|
50958
50957
|
apiKeysInfoSubtitle: 'What can you do with an API Key?',
|
|
50959
|
-
apiKeysInfoContent: '
|
|
50958
|
+
apiKeysInfoContent: 'Revoke any key at any time from the Integrations section.',
|
|
50960
50959
|
apiKeysInfoClose: 'Close',
|
|
50960
|
+
apiKeysFeatureAutoTitle: 'Automation',
|
|
50961
|
+
apiKeysFeatureAutoDesc: 'Connect your external systems directly, without opening the app.',
|
|
50962
|
+
apiKeysFeaturePermsTitle: 'Custom permissions',
|
|
50963
|
+
apiKeysFeaturePermsDesc: 'Each key carries only the permissions you assign — grant the minimum.',
|
|
50964
|
+
apiKeysFeatureSecretTitle: 'One-time secret',
|
|
50965
|
+
apiKeysFeatureSecretDesc: 'The secret is shown only once. Store it in a secret manager.',
|
|
50961
50966
|
orgsMoreInfo: 'Learn more about organizations',
|
|
50962
50967
|
orgsInfoTitle: 'What are organizations?',
|
|
50963
50968
|
orgsInfoSubtitle: 'Everything you need to know',
|
|
@@ -51187,7 +51192,7 @@ class OrganizationViewComponent {
|
|
|
51187
51192
|
this.openApiKeysButtonProps = computed(() => ({
|
|
51188
51193
|
text: this.tt('apiKeysOpen'),
|
|
51189
51194
|
color: 'dark',
|
|
51190
|
-
fill: '
|
|
51195
|
+
fill: 'outline',
|
|
51191
51196
|
size: 'default',
|
|
51192
51197
|
shape: 'round',
|
|
51193
51198
|
type: 'button',
|
|
@@ -51332,6 +51337,11 @@ class OrganizationViewComponent {
|
|
|
51332
51337
|
component: OrgInfoSheetComponent,
|
|
51333
51338
|
componentProps: {
|
|
51334
51339
|
showFeatures: false,
|
|
51340
|
+
features: [
|
|
51341
|
+
{ icon: 'code-slash-outline', title: this.tt('apiKeysFeatureAutoTitle'), desc: this.tt('apiKeysFeatureAutoDesc') },
|
|
51342
|
+
{ icon: 'shield-checkmark-outline', title: this.tt('apiKeysFeaturePermsTitle'), desc: this.tt('apiKeysFeaturePermsDesc') },
|
|
51343
|
+
{ icon: 'warning-outline', title: this.tt('apiKeysFeatureSecretTitle'), desc: this.tt('apiKeysFeatureSecretDesc') },
|
|
51344
|
+
],
|
|
51335
51345
|
title: this.tt('apiKeysInfoTitle'),
|
|
51336
51346
|
subtitle: this.tt('apiKeysInfoSubtitle'),
|
|
51337
51347
|
body: this.tt('apiKeysInfoContent'),
|
|
@@ -51343,6 +51353,7 @@ class OrganizationViewComponent {
|
|
|
51343
51353
|
size: 'default',
|
|
51344
51354
|
expand: 'block',
|
|
51345
51355
|
type: 'button',
|
|
51356
|
+
shape: 'round',
|
|
51346
51357
|
},
|
|
51347
51358
|
},
|
|
51348
51359
|
breakpoints: { breakpoints: [0, 0.92], initialBreakpoint: 0.92, showHandle: true },
|
|
@@ -54458,7 +54469,7 @@ function createRefreshableStream(factory, options) {
|
|
|
54458
54469
|
// sesión NUNCA se establece (token inválido, signInWithFirebase falló), el
|
|
54459
54470
|
// gate igual se libera tras `authGateTimeoutMs` y la factory procede: si no
|
|
54460
54471
|
// hay permiso terminará en estado `error`, jamás en skeleton infinito.
|
|
54461
|
-
// Tag los dos inputs del `race` para
|
|
54472
|
+
// Tag los dos inputs del `race` para distivdsr en logs cuál ganó: la sesión
|
|
54462
54473
|
// de Firebase Auth (`auth-ready`) o el timeout de seguridad (`timeout`).
|
|
54463
54474
|
const authGate$ = firebase
|
|
54464
54475
|
? race(firebase.firebaseAuthReady$.pipe(map$1(() => 'auth-ready')), timer(authGateTimeoutMs).pipe(map$1(() => 'timeout'))).pipe(take(1), tap(winner => {
|