valtech-components 4.0.72 → 4.0.75
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/chip-group/chip-group.component.mjs +2 -4
- package/esm2022/lib/components/molecules/command-display/command-display.component.mjs +2 -4
- package/esm2022/lib/components/molecules/comment/comment.component.mjs +2 -4
- package/esm2022/lib/components/molecules/content-reaction/content-reaction.component.mjs +2 -4
- package/esm2022/lib/components/molecules/date-input/date-input.component.mjs +2 -4
- package/esm2022/lib/components/molecules/date-picker/date-picker.component.mjs +2 -4
- package/esm2022/lib/components/molecules/features-list/features-list.component.mjs +2 -4
- package/esm2022/lib/components/molecules/font-size-selector/font-size-selector.component.mjs +2 -4
- package/esm2022/lib/components/molecules/pagination/pagination.component.mjs +2 -4
- package/esm2022/lib/components/molecules/password-input/password-input.component.mjs +2 -4
- package/esm2022/lib/components/molecules/permission-selector/permission-selector.component.mjs +2 -4
- package/esm2022/lib/components/molecules/rating/rating.component.mjs +2 -4
- package/esm2022/lib/components/molecules/request-form/request-form.component.mjs +229 -0
- package/esm2022/lib/components/molecules/request-form/types.mjs +2 -0
- package/esm2022/lib/components/molecules/ticket-card/ticket-card.component.mjs +2 -4
- package/esm2022/lib/components/organisms/about-view/about-view.component.mjs +2 -4
- package/esm2022/lib/components/organisms/account-view/account-view.component.mjs +2 -4
- package/esm2022/lib/components/organisms/api-key-create-modal/api-key-create-modal.component.mjs +3 -7
- package/esm2022/lib/components/organisms/api-keys-modal/api-keys-modal.component.mjs +3 -7
- package/esm2022/lib/components/organisms/api-keys-view/api-keys-view.component.mjs +2 -4
- package/esm2022/lib/components/organisms/auth-cta/auth-cta.component.mjs +2 -4
- package/esm2022/lib/components/organisms/create-org-modal/create-org-modal.component.mjs +2 -4
- package/esm2022/lib/components/organisms/delete-account-modal/delete-account-modal.component.mjs +2 -4
- package/esm2022/lib/components/organisms/edit-org-modal/edit-org-modal.component.mjs +2 -4
- package/esm2022/lib/components/organisms/field-list/field-list.component.mjs +2 -4
- package/esm2022/lib/components/organisms/invite-member-modal/invite-member-modal.component.mjs +2 -4
- package/esm2022/lib/components/organisms/member-detail-modal/member-detail-modal.component.mjs +3 -7
- package/esm2022/lib/components/organisms/member-import-modal/member-import-modal.component.mjs +3 -7
- package/esm2022/lib/components/organisms/notification-preferences-view/notification-preferences-view.component.mjs +2 -4
- package/esm2022/lib/components/organisms/notifications-view/notifications-view.component.mjs +2 -4
- package/esm2022/lib/components/organisms/org-info-sheet/org-info-sheet.component.mjs +2 -4
- package/esm2022/lib/components/organisms/organization-view/organization-view.component.mjs +2 -4
- package/esm2022/lib/components/organisms/permissions-view/permissions-view.component.mjs +2 -4
- package/esm2022/lib/components/organisms/preferences-view/preferences-view.component.mjs +2 -4
- package/esm2022/lib/components/organisms/profile-view/profile-view.component.mjs +2 -4
- package/esm2022/lib/components/organisms/qr-scanner/qr-scanner.component.mjs +2 -4
- package/esm2022/lib/components/organisms/security-view/security-view.component.mjs +2 -4
- package/esm2022/lib/components/organisms/settings-hub/settings-hub.component.mjs +3 -7
- package/esm2022/lib/components/organisms/share-profile-modal/share-profile-modal.component.mjs +2 -4
- package/esm2022/lib/components/organisms/switch-org-modal/switch-org-modal.component.mjs +2 -4
- package/esm2022/lib/components/organisms/transfer-ownership-modal/transfer-ownership-modal.component.mjs +3 -7
- package/esm2022/lib/services/i18n/i18n.service.mjs +21 -1
- package/esm2022/lib/version.mjs +2 -2
- package/esm2022/public-api.mjs +3 -1
- package/fesm2022/valtech-components.mjs +376 -232
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/atoms/rights-footer/rights-footer.component.d.ts +2 -2
- package/lib/components/molecules/cta-card/cta-card.component.d.ts +1 -1
- package/lib/components/molecules/metric-card/metric-card.component.d.ts +1 -1
- package/lib/components/molecules/request-form/request-form.component.d.ts +28 -0
- package/lib/components/molecules/request-form/types.d.ts +32 -0
- package/lib/components/organisms/article/article.component.d.ts +5 -5
- package/lib/components/organisms/auth-cta/auth-cta.component.d.ts +1 -1
- package/lib/components/organisms/landing-steps/landing-steps.component.d.ts +1 -1
- package/lib/services/i18n/i18n.service.d.ts +7 -0
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +2 -0
|
@@ -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.75';
|
|
60
60
|
|
|
61
61
|
// Control de estado de refresco (singleton a nivel de módulo)
|
|
62
62
|
let isRefreshing = false;
|
|
@@ -1664,6 +1664,26 @@ class I18nService {
|
|
|
1664
1664
|
[namespace]: content,
|
|
1665
1665
|
}));
|
|
1666
1666
|
}
|
|
1667
|
+
/**
|
|
1668
|
+
* Registra defaults para un namespace, mezclando solo las keys ausentes por idioma.
|
|
1669
|
+
* A diferencia de `registerContent`, no sobreescribe keys que el consumer ya registró.
|
|
1670
|
+
* Úsalo en componentes de la lib para que sus defaults funcionen incluso cuando el
|
|
1671
|
+
* consumer registró el namespace de forma parcial.
|
|
1672
|
+
*/
|
|
1673
|
+
registerDefaults(namespace, defaults) {
|
|
1674
|
+
this._content.update(store => {
|
|
1675
|
+
const existing = store[namespace];
|
|
1676
|
+
if (!existing)
|
|
1677
|
+
return { ...store, [namespace]: defaults };
|
|
1678
|
+
const merged = { ...existing };
|
|
1679
|
+
for (const lang of Object.keys(defaults)) {
|
|
1680
|
+
const defLang = defaults[lang] ?? {};
|
|
1681
|
+
const curLang = (existing[lang] ?? {});
|
|
1682
|
+
merged[lang] = { ...defLang, ...curLang };
|
|
1683
|
+
}
|
|
1684
|
+
return { ...store, [namespace]: merged };
|
|
1685
|
+
});
|
|
1686
|
+
}
|
|
1667
1687
|
/**
|
|
1668
1688
|
* Registra múltiples namespaces de una vez
|
|
1669
1689
|
*
|
|
@@ -16046,9 +16066,7 @@ class DateInputComponent {
|
|
|
16046
16066
|
*/
|
|
16047
16067
|
this.resolvedProps = {};
|
|
16048
16068
|
// Auto-registro de defaults i18n (anti key-faltante → anti storm de CD).
|
|
16049
|
-
|
|
16050
|
-
this.i18n.registerContent('DateInput', DATE_INPUT_I18N);
|
|
16051
|
-
}
|
|
16069
|
+
this.i18n.registerDefaults('DateInput', DATE_INPUT_I18N);
|
|
16052
16070
|
}
|
|
16053
16071
|
/** Done button text - from props or i18n default */
|
|
16054
16072
|
get doneText() {
|
|
@@ -17097,9 +17115,7 @@ class FontSizeSelectorComponent {
|
|
|
17097
17115
|
this.i18n = inject(I18nService);
|
|
17098
17116
|
this.popoverId = `font-size-selector-${Math.random().toString(36).slice(2, 8)}`;
|
|
17099
17117
|
this.currentSize = this.fontSizeService.size;
|
|
17100
|
-
|
|
17101
|
-
this.i18n.registerContent('FontSizeSelector', FONT_SIZE_SELECTOR_I18N);
|
|
17102
|
-
}
|
|
17118
|
+
this.i18n.registerDefaults('FontSizeSelector', FONT_SIZE_SELECTOR_I18N);
|
|
17103
17119
|
}
|
|
17104
17120
|
get options() {
|
|
17105
17121
|
return [
|
|
@@ -18036,9 +18052,7 @@ class PasswordInputComponent {
|
|
|
18036
18052
|
*/
|
|
18037
18053
|
this.resolvedProps = {};
|
|
18038
18054
|
this.hidePassword = true;
|
|
18039
|
-
|
|
18040
|
-
this.i18n.registerContent('PasswordInput', PASSWORD_INPUT_I18N);
|
|
18041
|
-
}
|
|
18055
|
+
this.i18n.registerDefaults('PasswordInput', PASSWORD_INPUT_I18N);
|
|
18042
18056
|
}
|
|
18043
18057
|
/** Aria-label del botón mostrar/ocultar según el estado de visibilidad. */
|
|
18044
18058
|
toggleLabel() {
|
|
@@ -20073,9 +20087,7 @@ class CommandDisplayComponent {
|
|
|
20073
20087
|
this.i18n = inject(I18nService);
|
|
20074
20088
|
/** Mensaje anunciado por el lector de pantalla al copiar. */
|
|
20075
20089
|
this.copiedMessage = '';
|
|
20076
|
-
|
|
20077
|
-
this.i18n.registerContent('CommandDisplay', COMMAND_DISPLAY_I18N);
|
|
20078
|
-
}
|
|
20090
|
+
this.i18n.registerDefaults('CommandDisplay', COMMAND_DISPLAY_I18N);
|
|
20079
20091
|
}
|
|
20080
20092
|
copyLabel() {
|
|
20081
20093
|
this.i18n.lang();
|
|
@@ -20665,9 +20677,7 @@ class PaginationComponent {
|
|
|
20665
20677
|
this.pageChange = new EventEmitter();
|
|
20666
20678
|
this.visiblePages = [];
|
|
20667
20679
|
this.totalPages = 1;
|
|
20668
|
-
|
|
20669
|
-
this.i18n.registerContent('Pagination', PAGINATION_I18N);
|
|
20670
|
-
}
|
|
20680
|
+
this.i18n.registerDefaults('Pagination', PAGINATION_I18N);
|
|
20671
20681
|
}
|
|
20672
20682
|
t(key) {
|
|
20673
20683
|
this.i18n.lang();
|
|
@@ -21197,9 +21207,7 @@ class ChipGroupComponent {
|
|
|
21197
21207
|
this.selectionChange = new EventEmitter();
|
|
21198
21208
|
this.chipRemove = new EventEmitter();
|
|
21199
21209
|
this.chipClick = new EventEmitter();
|
|
21200
|
-
|
|
21201
|
-
this.i18n.registerContent('ChipGroup', CHIP_GROUP_I18N);
|
|
21202
|
-
}
|
|
21210
|
+
this.i18n.registerDefaults('ChipGroup', CHIP_GROUP_I18N);
|
|
21203
21211
|
}
|
|
21204
21212
|
ngOnInit() {
|
|
21205
21213
|
this.resolveProps();
|
|
@@ -21395,9 +21403,7 @@ class RatingComponent {
|
|
|
21395
21403
|
this.resolvedProps = {};
|
|
21396
21404
|
this.ratingChange = new EventEmitter();
|
|
21397
21405
|
this.hoverValue = null;
|
|
21398
|
-
|
|
21399
|
-
this.i18n.registerContent('Rating', RATING_I18N);
|
|
21400
|
-
}
|
|
21406
|
+
this.i18n.registerDefaults('Rating', RATING_I18N);
|
|
21401
21407
|
}
|
|
21402
21408
|
ngOnInit() {
|
|
21403
21409
|
this.resolveProps();
|
|
@@ -22008,9 +22014,7 @@ class CommentComponent {
|
|
|
22008
22014
|
this.loadMoreClick = new EventEmitter();
|
|
22009
22015
|
this.collapseToggle = new EventEmitter();
|
|
22010
22016
|
this.displayContent = '';
|
|
22011
|
-
|
|
22012
|
-
this.i18n.registerContent('Comment', COMMENT_I18N);
|
|
22013
|
-
}
|
|
22017
|
+
this.i18n.registerDefaults('Comment', COMMENT_I18N);
|
|
22014
22018
|
}
|
|
22015
22019
|
ngOnInit() {
|
|
22016
22020
|
this.displayContent = this.props.content || this.props.contentFallback || '';
|
|
@@ -25953,9 +25957,7 @@ class FeaturesListComponent {
|
|
|
25953
25957
|
}
|
|
25954
25958
|
return color;
|
|
25955
25959
|
});
|
|
25956
|
-
|
|
25957
|
-
this.i18n.registerContent('FeaturesList', FEATURES_LIST_I18N);
|
|
25958
|
-
}
|
|
25960
|
+
this.i18n.registerDefaults('FeaturesList', FEATURES_LIST_I18N);
|
|
25959
25961
|
}
|
|
25960
25962
|
toggle() {
|
|
25961
25963
|
this._expanded.set(!this._expanded());
|
|
@@ -29237,9 +29239,7 @@ class PermissionSelectorComponent {
|
|
|
29237
29239
|
};
|
|
29238
29240
|
});
|
|
29239
29241
|
});
|
|
29240
|
-
|
|
29241
|
-
this.i18n.registerContent(DEFAULT_NAMESPACE$l, PERMISSION_SELECTOR_I18N);
|
|
29242
|
-
}
|
|
29242
|
+
this.i18n.registerDefaults(DEFAULT_NAMESPACE$l, PERMISSION_SELECTOR_I18N);
|
|
29243
29243
|
}
|
|
29244
29244
|
toggleAction(code) {
|
|
29245
29245
|
const sel = new Set(this.selected());
|
|
@@ -31896,9 +31896,7 @@ class DatePickerComponent {
|
|
|
31896
31896
|
this.sheetOpen = signal(false);
|
|
31897
31897
|
/** true cuando el calendario ya se construyó y es visible (fade-in). */
|
|
31898
31898
|
this.calReady = signal(false);
|
|
31899
|
-
|
|
31900
|
-
this.i18n.registerContent(I18N_NS$2, DATE_PICKER_I18N);
|
|
31901
|
-
}
|
|
31899
|
+
this.i18n.registerDefaults(I18N_NS$2, DATE_PICKER_I18N);
|
|
31902
31900
|
}
|
|
31903
31901
|
get triggerId() {
|
|
31904
31902
|
if (!this.props.token) {
|
|
@@ -34546,9 +34544,7 @@ class ShareProfileModalComponent {
|
|
|
34546
34544
|
}));
|
|
34547
34545
|
this.displayName = computed(() => this.config().title || this.config().name || this.t('title'));
|
|
34548
34546
|
this.caption = computed(() => this.config().caption || this.t('caption'));
|
|
34549
|
-
|
|
34550
|
-
this.i18n.registerContent('ShareProfileModal', SHARE_PROFILE_MODAL_I18N);
|
|
34551
|
-
}
|
|
34547
|
+
this.i18n.registerDefaults('ShareProfileModal', SHARE_PROFILE_MODAL_I18N);
|
|
34552
34548
|
}
|
|
34553
34549
|
t(key) {
|
|
34554
34550
|
this.i18n.lang();
|
|
@@ -44023,9 +44019,7 @@ class ProfileViewComponent {
|
|
|
44023
44019
|
// Auto-registro i18n — respeta override del consumer. El namespace puede
|
|
44024
44020
|
// venir de @Input.config o del route data; lo resolvemos acá.
|
|
44025
44021
|
const ns = this.ns;
|
|
44026
|
-
|
|
44027
|
-
this.i18n.registerContent(ns, PROFILE_VIEW_I18N);
|
|
44028
|
-
}
|
|
44022
|
+
this.i18n.registerDefaults(ns, PROFILE_VIEW_I18N);
|
|
44029
44023
|
this.nav.setBackHeader('pageTitle', ns, { withMenu: true });
|
|
44030
44024
|
connectPageRefresh(() => this.loadFromApi());
|
|
44031
44025
|
effect(onCleanup => {
|
|
@@ -44901,9 +44895,7 @@ class PreferencesViewComponent {
|
|
|
44901
44895
|
// Auto-registro i18n — respeta override del consumer. El namespace puede
|
|
44902
44896
|
// venir de @Input.config o del route data; lo resolvemos acá.
|
|
44903
44897
|
const ns = this.ns;
|
|
44904
|
-
|
|
44905
|
-
this.i18n.registerContent(ns, PREFERENCES_VIEW_I18N);
|
|
44906
|
-
}
|
|
44898
|
+
this.i18n.registerDefaults(ns, PREFERENCES_VIEW_I18N);
|
|
44907
44899
|
this.nav.setBackHeader('pageTitle', ns, { withMenu: true });
|
|
44908
44900
|
}
|
|
44909
44901
|
async onThemeChange(value) {
|
|
@@ -45439,13 +45431,9 @@ class SettingsHubComponent {
|
|
|
45439
45431
|
// Auto-registro i18n — respeta override del consumer. Los namespaces pueden
|
|
45440
45432
|
// venir de @Input.config o del route data; los resolvemos acá.
|
|
45441
45433
|
const labelsNs = this.labelsNs;
|
|
45442
|
-
|
|
45443
|
-
this.i18n.registerContent(labelsNs, SETTINGS_HUB_LABELS_I18N);
|
|
45444
|
-
}
|
|
45434
|
+
this.i18n.registerDefaults(labelsNs, SETTINGS_HUB_LABELS_I18N);
|
|
45445
45435
|
const pageNs = this.pageNs;
|
|
45446
|
-
|
|
45447
|
-
this.i18n.registerContent(pageNs, SETTINGS_HUB_PAGE_I18N);
|
|
45448
|
-
}
|
|
45436
|
+
this.i18n.registerDefaults(pageNs, SETTINGS_HUB_PAGE_I18N);
|
|
45449
45437
|
this.nav.setBackHeader('pageTitle', pageNs, { withMenu: true });
|
|
45450
45438
|
}
|
|
45451
45439
|
onActionClick(action) {
|
|
@@ -46689,9 +46677,7 @@ class SecurityViewComponent {
|
|
|
46689
46677
|
},
|
|
46690
46678
|
}));
|
|
46691
46679
|
const ns = this.ns;
|
|
46692
|
-
|
|
46693
|
-
this.i18n.registerContent(ns, SECURITY_VIEW_I18N);
|
|
46694
|
-
}
|
|
46680
|
+
this.i18n.registerDefaults(ns, SECURITY_VIEW_I18N);
|
|
46695
46681
|
this.nav.setBackHeader('pageTitle', ns, { withMenu: true });
|
|
46696
46682
|
// Carga inicial de sesiones - recarga reactiva a cambio de locale para
|
|
46697
46683
|
// que los textos y metadatos se mantengan frescos. Los devices solo se
|
|
@@ -47493,9 +47479,7 @@ class CreateOrgModalComponent {
|
|
|
47493
47479
|
this.dismissed = new EventEmitter();
|
|
47494
47480
|
this.created = new EventEmitter();
|
|
47495
47481
|
this._busy = signal(false);
|
|
47496
|
-
|
|
47497
|
-
this.i18n.registerContent(DEFAULT_NAMESPACE$h, CREATE_ORG_MODAL_I18N);
|
|
47498
|
-
}
|
|
47482
|
+
this.i18n.registerDefaults(DEFAULT_NAMESPACE$h, CREATE_ORG_MODAL_I18N);
|
|
47499
47483
|
this.formMeta = signal(this.buildFormMeta());
|
|
47500
47484
|
effect(() => {
|
|
47501
47485
|
this.i18n.lang();
|
|
@@ -47858,9 +47842,7 @@ class DeleteAccountModalComponent {
|
|
|
47858
47842
|
],
|
|
47859
47843
|
actions: this.submitBtn('delete-code-submit', 'confirmCta'),
|
|
47860
47844
|
}));
|
|
47861
|
-
|
|
47862
|
-
this.i18n.registerContent(DEFAULT_NAMESPACE$g, DELETE_ACCOUNT_MODAL_I18N);
|
|
47863
|
-
}
|
|
47845
|
+
this.i18n.registerDefaults(DEFAULT_NAMESPACE$g, DELETE_ACCOUNT_MODAL_I18N);
|
|
47864
47846
|
}
|
|
47865
47847
|
submitBtn(token, textKey) {
|
|
47866
47848
|
return {
|
|
@@ -48128,9 +48110,7 @@ class OrgInfoSheetComponent {
|
|
|
48128
48110
|
];
|
|
48129
48111
|
});
|
|
48130
48112
|
addIcons({ peopleOutline, swapHorizontalOutline, mailOutline, codeSlashOutline, shieldCheckmarkOutline, warningOutline });
|
|
48131
|
-
|
|
48132
|
-
this.i18n.registerContent(DEFAULT_NAMESPACE$f, ORG_INFO_SHEET_I18N);
|
|
48133
|
-
}
|
|
48113
|
+
this.i18n.registerDefaults(DEFAULT_NAMESPACE$f, ORG_INFO_SHEET_I18N);
|
|
48134
48114
|
}
|
|
48135
48115
|
dismiss() {
|
|
48136
48116
|
this._modalRef?.dismiss(null, 'cancel');
|
|
@@ -48347,9 +48327,7 @@ class SwitchOrgModalComponent {
|
|
|
48347
48327
|
return list;
|
|
48348
48328
|
return list.filter(o => o.name.toLowerCase().includes(q));
|
|
48349
48329
|
});
|
|
48350
|
-
|
|
48351
|
-
this.i18n.registerContent(DEFAULT_NAMESPACE$e, SWITCH_ORG_MODAL_I18N);
|
|
48352
|
-
}
|
|
48330
|
+
this.i18n.registerDefaults(DEFAULT_NAMESPACE$e, SWITCH_ORG_MODAL_I18N);
|
|
48353
48331
|
this.loadOrgs();
|
|
48354
48332
|
}
|
|
48355
48333
|
onQueryChange(value) {
|
|
@@ -48889,9 +48867,7 @@ class AccountViewComponent {
|
|
|
48889
48867
|
token: 'account-switch',
|
|
48890
48868
|
}));
|
|
48891
48869
|
const ns = this.ns;
|
|
48892
|
-
|
|
48893
|
-
this.i18n.registerContent(ns, ACCOUNT_VIEW_I18N);
|
|
48894
|
-
}
|
|
48870
|
+
this.i18n.registerDefaults(ns, ACCOUNT_VIEW_I18N);
|
|
48895
48871
|
this.nav.setBackHeader('pageTitle', ns, { withMenu: true });
|
|
48896
48872
|
this.loadOrgs();
|
|
48897
48873
|
this.loadPendingInvites();
|
|
@@ -49630,9 +49606,7 @@ class EditOrgModalComponent {
|
|
|
49630
49606
|
const name = this.org?.name ?? '';
|
|
49631
49607
|
return name.slice(0, 2).toUpperCase() || '?';
|
|
49632
49608
|
});
|
|
49633
|
-
|
|
49634
|
-
this.i18n.registerContent(DEFAULT_NAMESPACE$c, EDIT_ORG_MODAL_I18N);
|
|
49635
|
-
}
|
|
49609
|
+
this.i18n.registerDefaults(DEFAULT_NAMESPACE$c, EDIT_ORG_MODAL_I18N);
|
|
49636
49610
|
this.formMeta = signal(this.buildFormMeta());
|
|
49637
49611
|
effect(() => {
|
|
49638
49612
|
this.i18n.lang();
|
|
@@ -50032,9 +50006,7 @@ class InviteMemberModalComponent {
|
|
|
50032
50006
|
state: this.sending() ? ComponentStates.WORKING : ComponentStates.ENABLED,
|
|
50033
50007
|
}));
|
|
50034
50008
|
this.searchSubject = new Subject();
|
|
50035
|
-
|
|
50036
|
-
this.i18n.registerContent(DEFAULT_NAMESPACE$b, INVITE_MEMBER_MODAL_I18N);
|
|
50037
|
-
}
|
|
50009
|
+
this.i18n.registerDefaults(DEFAULT_NAMESPACE$b, INVITE_MEMBER_MODAL_I18N);
|
|
50038
50010
|
this.roleSub = this.roleControl.valueChanges.subscribe(v => {
|
|
50039
50011
|
if (v)
|
|
50040
50012
|
this.selectedRole.set(v);
|
|
@@ -50737,14 +50709,10 @@ class MemberDetailModalComponent {
|
|
|
50737
50709
|
type: 'button',
|
|
50738
50710
|
state: this.working() ? ComponentStates.WORKING : ComponentStates.ENABLED,
|
|
50739
50711
|
}));
|
|
50740
|
-
|
|
50741
|
-
this.i18n.registerContent(DEFAULT_NAMESPACE$a, MEMBER_DETAIL_MODAL_I18N);
|
|
50742
|
-
}
|
|
50712
|
+
this.i18n.registerDefaults(DEFAULT_NAMESPACE$a, MEMBER_DETAIL_MODAL_I18N);
|
|
50743
50713
|
}
|
|
50744
50714
|
ngOnInit() {
|
|
50745
|
-
|
|
50746
|
-
this.i18n.registerContent(this.i18nNamespace, MEMBER_DETAIL_MODAL_I18N);
|
|
50747
|
-
}
|
|
50715
|
+
this.i18n.registerDefaults(this.i18nNamespace, MEMBER_DETAIL_MODAL_I18N);
|
|
50748
50716
|
const roleName = this.member?.roles?.[0] ?? '';
|
|
50749
50717
|
// Resolve the role name to its UUID -- the select uses r.id (UUID) as value
|
|
50750
50718
|
const matched = this.availableRoles.find(r => r.name === roleName);
|
|
@@ -51227,9 +51195,7 @@ class PermissionsViewComponent {
|
|
|
51227
51195
|
state: this.loading() ? ComponentStates.DISABLED : ComponentStates.ENABLED,
|
|
51228
51196
|
}));
|
|
51229
51197
|
const ns = this.ns;
|
|
51230
|
-
|
|
51231
|
-
this.i18n.registerContent(ns, PERMISSIONS_VIEW_I18N);
|
|
51232
|
-
}
|
|
51198
|
+
this.i18n.registerDefaults(ns, PERMISSIONS_VIEW_I18N);
|
|
51233
51199
|
this.load();
|
|
51234
51200
|
connectPageRefresh(() => this.load());
|
|
51235
51201
|
}
|
|
@@ -51796,14 +51762,10 @@ class TransferOwnershipModalComponent {
|
|
|
51796
51762
|
return this.members.filter(m => m.name?.toLowerCase().includes(q) || m.email?.toLowerCase().includes(q) || m.userId.toLowerCase().includes(q));
|
|
51797
51763
|
});
|
|
51798
51764
|
this.noResultsLabel = computed(() => `${this.t('noResults')} "${this.query()}"`);
|
|
51799
|
-
|
|
51800
|
-
this.i18n.registerContent(DEFAULT_NAMESPACE$8, TRANSFER_OWNERSHIP_MODAL_I18N);
|
|
51801
|
-
}
|
|
51765
|
+
this.i18n.registerDefaults(DEFAULT_NAMESPACE$8, TRANSFER_OWNERSHIP_MODAL_I18N);
|
|
51802
51766
|
}
|
|
51803
51767
|
ngOnInit() {
|
|
51804
|
-
|
|
51805
|
-
this.i18n.registerContent(this.i18nNamespace, TRANSFER_OWNERSHIP_MODAL_I18N);
|
|
51806
|
-
}
|
|
51768
|
+
this.i18n.registerDefaults(this.i18nNamespace, TRANSFER_OWNERSHIP_MODAL_I18N);
|
|
51807
51769
|
}
|
|
51808
51770
|
confirm() {
|
|
51809
51771
|
const id = this.selectedId();
|
|
@@ -52135,14 +52097,10 @@ class MemberImportModalComponent {
|
|
|
52135
52097
|
return this.t('summary');
|
|
52136
52098
|
return `${this.t('summary')}: ${s.created} ${this.t('created')} · ${s.assigned} ${this.t('assigned')} · ${s.skipped} ${this.t('skipped')} · ${s.failed} ${this.t('failed')}`;
|
|
52137
52099
|
});
|
|
52138
|
-
|
|
52139
|
-
this.i18n.registerContent(DEFAULT_NAMESPACE$7, MEMBER_IMPORT_MODAL_I18N);
|
|
52140
|
-
}
|
|
52100
|
+
this.i18n.registerDefaults(DEFAULT_NAMESPACE$7, MEMBER_IMPORT_MODAL_I18N);
|
|
52141
52101
|
}
|
|
52142
52102
|
ngOnInit() {
|
|
52143
|
-
|
|
52144
|
-
this.i18n.registerContent(this.i18nNamespace, MEMBER_IMPORT_MODAL_I18N);
|
|
52145
|
-
}
|
|
52103
|
+
this.i18n.registerDefaults(this.i18nNamespace, MEMBER_IMPORT_MODAL_I18N);
|
|
52146
52104
|
}
|
|
52147
52105
|
/** Carga un archivo CSV seleccionado: lee su texto al textarea (`csv`). */
|
|
52148
52106
|
onFileSelected(event) {
|
|
@@ -52996,9 +52954,7 @@ class OrganizationViewComponent {
|
|
|
52996
52954
|
/** Guarda para detectar el primer disparo del effect (evita doble carga). */
|
|
52997
52955
|
this.lastLoadedOrgId = null;
|
|
52998
52956
|
const ns = this.ns;
|
|
52999
|
-
|
|
53000
|
-
this.i18n.registerContent(ns, ORGANIZATION_VIEW_I18N);
|
|
53001
|
-
}
|
|
52957
|
+
this.i18n.registerDefaults(ns, ORGANIZATION_VIEW_I18N);
|
|
53002
52958
|
this.nav.setBackHeader('pageTitle', ns, { withMenu: true });
|
|
53003
52959
|
// Auto-reload en org-switch: reacciona a activeOrgId() y recarga org + miembros
|
|
53004
52960
|
// cuando el usuario cambia de organización activa mientras la vista está
|
|
@@ -54332,9 +54288,7 @@ class NotificationPreferencesViewComponent {
|
|
|
54332
54288
|
return `${t.slice(0, 22)}…${t.slice(-6)}`;
|
|
54333
54289
|
});
|
|
54334
54290
|
const ns = this.ns;
|
|
54335
|
-
|
|
54336
|
-
this.i18n.registerContent(ns, NOTIFICATION_PREFERENCES_VIEW_I18N);
|
|
54337
|
-
}
|
|
54291
|
+
this.i18n.registerDefaults(ns, NOTIFICATION_PREFERENCES_VIEW_I18N);
|
|
54338
54292
|
this.nav.setBackHeader('pageTitle', ns, { withMenu: true });
|
|
54339
54293
|
void this.refreshBrowserState();
|
|
54340
54294
|
// Re-aplicar header en cambio de idioma.
|
|
@@ -55042,14 +54996,10 @@ class ApiKeyCreateModalComponent {
|
|
|
55042
54996
|
actions: submitButton,
|
|
55043
54997
|
};
|
|
55044
54998
|
});
|
|
55045
|
-
|
|
55046
|
-
this.i18n.registerContent(DEFAULT_NAMESPACE$4, API_KEYS_MODAL_I18N);
|
|
55047
|
-
}
|
|
54999
|
+
this.i18n.registerDefaults(DEFAULT_NAMESPACE$4, API_KEYS_MODAL_I18N);
|
|
55048
55000
|
}
|
|
55049
55001
|
ngOnInit() {
|
|
55050
|
-
|
|
55051
|
-
this.i18n.registerContent(this.i18nNamespace, API_KEYS_MODAL_I18N);
|
|
55052
|
-
}
|
|
55002
|
+
this.i18n.registerDefaults(this.i18nNamespace, API_KEYS_MODAL_I18N);
|
|
55053
55003
|
this.loadCatalog();
|
|
55054
55004
|
}
|
|
55055
55005
|
/**
|
|
@@ -55365,9 +55315,7 @@ class ApiKeysViewComponent {
|
|
|
55365
55315
|
this.i18n.lang();
|
|
55366
55316
|
return { variant: 'empty', title: this.tt('empty'), description: this.tt('emptyHint') };
|
|
55367
55317
|
});
|
|
55368
|
-
|
|
55369
|
-
this.i18n.registerContent(this.ns, API_KEYS_VIEW_I18N);
|
|
55370
|
-
}
|
|
55318
|
+
this.i18n.registerDefaults(this.ns, API_KEYS_VIEW_I18N);
|
|
55371
55319
|
this.nav.setBackHeader('pageTitle', this.ns, { withMenu: true });
|
|
55372
55320
|
this.load();
|
|
55373
55321
|
connectPageRefresh(() => this.load());
|
|
@@ -56116,9 +56064,7 @@ class NotificationsViewComponent {
|
|
|
56116
56064
|
state: this._loadingMore() ? ComponentStates.WORKING : ComponentStates.ENABLED,
|
|
56117
56065
|
}));
|
|
56118
56066
|
const ns = this.ns;
|
|
56119
|
-
|
|
56120
|
-
this.i18n.registerContent(ns, NOTIFICATIONS_VIEW_I18N);
|
|
56121
|
-
}
|
|
56067
|
+
this.i18n.registerDefaults(ns, NOTIFICATIONS_VIEW_I18N);
|
|
56122
56068
|
this.nav.setBackHeader('pageTitle', ns, { withMenu: true });
|
|
56123
56069
|
// Re-aplicar header en cambio de idioma.
|
|
56124
56070
|
effect(() => {
|
|
@@ -56738,9 +56684,7 @@ class ContentReactionComponent {
|
|
|
56738
56684
|
// Auto-registro de defaults i18n (es/en) si el consumer no proveyó el
|
|
56739
56685
|
// namespace. Garantiza que `t()` nunca caiga en key faltante. Ver
|
|
56740
56686
|
// CONTENT_REACTION_I18N. Idempotente: solo la 1ª instancia registra.
|
|
56741
|
-
|
|
56742
|
-
this.i18n.registerContent('ContentReaction', CONTENT_REACTION_I18N);
|
|
56743
|
-
}
|
|
56687
|
+
this.i18n.registerDefaults('ContentReaction', CONTENT_REACTION_I18N);
|
|
56744
56688
|
}
|
|
56745
56689
|
/** Cierra el modal/sheet contenedor (si el componente se abrió vía ModalService). */
|
|
56746
56690
|
close() {
|
|
@@ -57080,9 +57024,7 @@ class AboutViewComponent {
|
|
|
57080
57024
|
};
|
|
57081
57025
|
});
|
|
57082
57026
|
const ns = this.ns;
|
|
57083
|
-
|
|
57084
|
-
this.i18n.registerContent(ns, ABOUT_VIEW_I18N);
|
|
57085
|
-
}
|
|
57027
|
+
this.i18n.registerDefaults(ns, ABOUT_VIEW_I18N);
|
|
57086
57028
|
this.nav.setBackHeader('pageTitle', ns, { withMenu: true });
|
|
57087
57029
|
}
|
|
57088
57030
|
/** Helper i18n bound al namespace resuelto. Reactivo vía `lang()`. */
|
|
@@ -57544,9 +57486,7 @@ class FieldListComponent {
|
|
|
57544
57486
|
const max = this.props.max;
|
|
57545
57487
|
return max == null || this.rowsSig().length < max;
|
|
57546
57488
|
});
|
|
57547
|
-
|
|
57548
|
-
this.i18n.registerContent(I18N_NS$1, FIELD_LIST_I18N);
|
|
57549
|
-
}
|
|
57489
|
+
this.i18n.registerDefaults(I18N_NS$1, FIELD_LIST_I18N);
|
|
57550
57490
|
}
|
|
57551
57491
|
ngOnChanges(changes) {
|
|
57552
57492
|
// Re-siembra solo si cambió la referencia de items entrante (evita pisar lo
|
|
@@ -57793,14 +57733,10 @@ class ApiKeysModalComponent {
|
|
|
57793
57733
|
actions: submitButton,
|
|
57794
57734
|
};
|
|
57795
57735
|
});
|
|
57796
|
-
|
|
57797
|
-
this.i18n.registerContent(DEFAULT_NAMESPACE, API_KEYS_MODAL_I18N);
|
|
57798
|
-
}
|
|
57736
|
+
this.i18n.registerDefaults(DEFAULT_NAMESPACE, API_KEYS_MODAL_I18N);
|
|
57799
57737
|
}
|
|
57800
57738
|
ngOnInit() {
|
|
57801
|
-
|
|
57802
|
-
this.i18n.registerContent(this.i18nNamespace, API_KEYS_MODAL_I18N);
|
|
57803
|
-
}
|
|
57739
|
+
this.i18n.registerDefaults(this.i18nNamespace, API_KEYS_MODAL_I18N);
|
|
57804
57740
|
this.refresh();
|
|
57805
57741
|
this.loadCatalog();
|
|
57806
57742
|
}
|
|
@@ -64446,6 +64382,315 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
64446
64382
|
type: Output
|
|
64447
64383
|
}] } });
|
|
64448
64384
|
|
|
64385
|
+
class RequestService {
|
|
64386
|
+
constructor(config, http) {
|
|
64387
|
+
this.config = config;
|
|
64388
|
+
this.http = http;
|
|
64389
|
+
}
|
|
64390
|
+
get baseUrl() {
|
|
64391
|
+
return `${this.config.apiUrl}/v2/requests`;
|
|
64392
|
+
}
|
|
64393
|
+
get typesUrl() {
|
|
64394
|
+
return `${this.config.apiUrl}/v2/request-types`;
|
|
64395
|
+
}
|
|
64396
|
+
// ── Requests ──
|
|
64397
|
+
createRequest(payload) {
|
|
64398
|
+
return this.http.post(this.baseUrl, payload);
|
|
64399
|
+
}
|
|
64400
|
+
createAnonymousRequest(payload) {
|
|
64401
|
+
return this.http.post(`${this.baseUrl}/anonymous`, payload);
|
|
64402
|
+
}
|
|
64403
|
+
listRequests(params) {
|
|
64404
|
+
const qs = this.buildQueryString(params);
|
|
64405
|
+
return this.http.get(`${this.baseUrl}${qs}`);
|
|
64406
|
+
}
|
|
64407
|
+
listMyRequests(params) {
|
|
64408
|
+
const qs = this.buildQueryString(params);
|
|
64409
|
+
return this.http.get(`${this.baseUrl}/my${qs}`);
|
|
64410
|
+
}
|
|
64411
|
+
getRequest(id) {
|
|
64412
|
+
return this.http
|
|
64413
|
+
.get(`${this.baseUrl}/${id}`)
|
|
64414
|
+
.pipe(map$1(r => r.request));
|
|
64415
|
+
}
|
|
64416
|
+
updateRequest(id, payload) {
|
|
64417
|
+
return this.http
|
|
64418
|
+
.put(`${this.baseUrl}/${id}`, payload)
|
|
64419
|
+
.pipe(map$1(r => r.request));
|
|
64420
|
+
}
|
|
64421
|
+
transition(id, payload) {
|
|
64422
|
+
return this.http.post(`${this.baseUrl}/${id}/transition`, payload);
|
|
64423
|
+
}
|
|
64424
|
+
// ── Comments ──
|
|
64425
|
+
addComment(requestId, payload) {
|
|
64426
|
+
return this.http
|
|
64427
|
+
.post(`${this.baseUrl}/${requestId}/comments`, payload)
|
|
64428
|
+
.pipe(map$1(r => r.comment));
|
|
64429
|
+
}
|
|
64430
|
+
listComments(requestId) {
|
|
64431
|
+
return this.http.get(`${this.baseUrl}/${requestId}/comments`);
|
|
64432
|
+
}
|
|
64433
|
+
// ── Request Types ──
|
|
64434
|
+
listRequestTypes() {
|
|
64435
|
+
return this.http.get(this.typesUrl);
|
|
64436
|
+
}
|
|
64437
|
+
getRequestType(typeId) {
|
|
64438
|
+
return this.http.get(`${this.typesUrl}/${typeId}`);
|
|
64439
|
+
}
|
|
64440
|
+
createRequestType(payload) {
|
|
64441
|
+
return this.http
|
|
64442
|
+
.post(this.typesUrl, payload)
|
|
64443
|
+
.pipe(map$1(r => r.typeConfig));
|
|
64444
|
+
}
|
|
64445
|
+
updateRequestType(typeId, payload) {
|
|
64446
|
+
return this.http
|
|
64447
|
+
.put(`${this.typesUrl}/${typeId}`, payload)
|
|
64448
|
+
.pipe(map$1(r => r.typeConfig));
|
|
64449
|
+
}
|
|
64450
|
+
deleteRequestType(typeId) {
|
|
64451
|
+
return this.http.delete(`${this.typesUrl}/${typeId}`);
|
|
64452
|
+
}
|
|
64453
|
+
// ── Helpers ──
|
|
64454
|
+
buildQueryString(params) {
|
|
64455
|
+
if (!params)
|
|
64456
|
+
return '';
|
|
64457
|
+
const qs = new URLSearchParams();
|
|
64458
|
+
if (params.type)
|
|
64459
|
+
qs.set('type', params.type);
|
|
64460
|
+
if (params.status)
|
|
64461
|
+
qs.set('status', params.status);
|
|
64462
|
+
if (params.limit != null)
|
|
64463
|
+
qs.set('limit', String(params.limit));
|
|
64464
|
+
if (params.nextToken)
|
|
64465
|
+
qs.set('nextToken', params.nextToken);
|
|
64466
|
+
const str = qs.toString();
|
|
64467
|
+
return str ? `?${str}` : '';
|
|
64468
|
+
}
|
|
64469
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RequestService, deps: [{ token: VALTECH_AUTH_CONFIG }, { token: i1$3.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
64470
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RequestService, providedIn: 'root' }); }
|
|
64471
|
+
}
|
|
64472
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RequestService, decorators: [{
|
|
64473
|
+
type: Injectable,
|
|
64474
|
+
args: [{ providedIn: 'root' }]
|
|
64475
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
64476
|
+
type: Inject,
|
|
64477
|
+
args: [VALTECH_AUTH_CONFIG]
|
|
64478
|
+
}] }, { type: i1$3.HttpClient }] });
|
|
64479
|
+
|
|
64480
|
+
const REQUEST_FORM_I18N = {
|
|
64481
|
+
es: {
|
|
64482
|
+
title: 'Título',
|
|
64483
|
+
titlePlaceholder: 'Describe brevemente tu solicitud',
|
|
64484
|
+
titleValidation: 'El título debe tener al menos 3 caracteres',
|
|
64485
|
+
description: 'Descripción',
|
|
64486
|
+
descriptionPlaceholder: 'Añade más detalles aquí',
|
|
64487
|
+
descriptionValidation: 'La descripción es demasiado larga',
|
|
64488
|
+
submit: 'Enviar',
|
|
64489
|
+
success: 'Solicitud enviada exitosamente',
|
|
64490
|
+
error: 'Error al enviar la solicitud',
|
|
64491
|
+
},
|
|
64492
|
+
en: {
|
|
64493
|
+
title: 'Title',
|
|
64494
|
+
titlePlaceholder: 'Briefly describe your request',
|
|
64495
|
+
titleValidation: 'Title must be at least 3 characters',
|
|
64496
|
+
description: 'Description',
|
|
64497
|
+
descriptionPlaceholder: 'Add more details here',
|
|
64498
|
+
descriptionValidation: 'Description is too long',
|
|
64499
|
+
submit: 'Submit',
|
|
64500
|
+
success: 'Request submitted successfully',
|
|
64501
|
+
error: 'Error submitting the request',
|
|
64502
|
+
},
|
|
64503
|
+
};
|
|
64504
|
+
class RequestFormComponent {
|
|
64505
|
+
constructor() {
|
|
64506
|
+
this.props = { type: '' };
|
|
64507
|
+
this.onSubmit = new EventEmitter();
|
|
64508
|
+
this.onCancel = new EventEmitter();
|
|
64509
|
+
this.i18n = inject(I18nService);
|
|
64510
|
+
this.requestService = inject(RequestService);
|
|
64511
|
+
this.feedbackService = inject(FeedbackService);
|
|
64512
|
+
this.isSubmitting = signal(false);
|
|
64513
|
+
this.isSuccess = signal(false);
|
|
64514
|
+
this.error = signal(null);
|
|
64515
|
+
this.currentAttachments = [];
|
|
64516
|
+
addIcons({ checkmarkCircleOutline, closeCircleOutline });
|
|
64517
|
+
if (!this.i18n.hasNamespace('RequestForm')) {
|
|
64518
|
+
this.i18n.registerDefaults('RequestForm', REQUEST_FORM_I18N);
|
|
64519
|
+
}
|
|
64520
|
+
}
|
|
64521
|
+
ngOnInit() {
|
|
64522
|
+
this.formProps = this.buildFormProps();
|
|
64523
|
+
}
|
|
64524
|
+
buildFormProps() {
|
|
64525
|
+
return {
|
|
64526
|
+
name: '',
|
|
64527
|
+
sections: [
|
|
64528
|
+
{
|
|
64529
|
+
name: '',
|
|
64530
|
+
order: 0,
|
|
64531
|
+
fields: [
|
|
64532
|
+
{
|
|
64533
|
+
token: 'request-title',
|
|
64534
|
+
name: 'title',
|
|
64535
|
+
label: this.props.titleLabel ?? this.t('title'),
|
|
64536
|
+
hint: '',
|
|
64537
|
+
placeholder: this.props.titlePlaceholder ?? this.t('titlePlaceholder'),
|
|
64538
|
+
type: InputType.TEXT,
|
|
64539
|
+
order: 1,
|
|
64540
|
+
validators: [Validators.required, Validators.minLength(3), Validators.maxLength(300)],
|
|
64541
|
+
errors: {
|
|
64542
|
+
required: this.t('titleValidation'),
|
|
64543
|
+
minlength: this.t('titleValidation'),
|
|
64544
|
+
maxlength: this.t('titleValidation'),
|
|
64545
|
+
},
|
|
64546
|
+
state: ComponentStates.ENABLED,
|
|
64547
|
+
},
|
|
64548
|
+
{
|
|
64549
|
+
token: 'request-description',
|
|
64550
|
+
name: 'description',
|
|
64551
|
+
label: this.props.descriptionLabel ?? this.t('description'),
|
|
64552
|
+
hint: '',
|
|
64553
|
+
placeholder: this.props.descriptionPlaceholder ?? this.t('descriptionPlaceholder'),
|
|
64554
|
+
type: InputType.TEXTAREA,
|
|
64555
|
+
order: 2,
|
|
64556
|
+
validators: [Validators.maxLength(5000)],
|
|
64557
|
+
errors: { maxlength: this.t('descriptionValidation') },
|
|
64558
|
+
state: ComponentStates.ENABLED,
|
|
64559
|
+
},
|
|
64560
|
+
],
|
|
64561
|
+
},
|
|
64562
|
+
],
|
|
64563
|
+
actions: {
|
|
64564
|
+
type: 'submit',
|
|
64565
|
+
color: 'dark',
|
|
64566
|
+
fill: 'solid',
|
|
64567
|
+
shape: 'round',
|
|
64568
|
+
expand: 'block',
|
|
64569
|
+
text: this.props.submitButtonText ?? this.t('submit'),
|
|
64570
|
+
state: ComponentStates.ENABLED,
|
|
64571
|
+
},
|
|
64572
|
+
state: ComponentStates.ENABLED,
|
|
64573
|
+
};
|
|
64574
|
+
}
|
|
64575
|
+
async handleFormSubmit(submitted) {
|
|
64576
|
+
if (this.isSubmitting())
|
|
64577
|
+
return;
|
|
64578
|
+
if (this.currentAttachments.some(a => a.status === 'uploading'))
|
|
64579
|
+
return;
|
|
64580
|
+
this.isSubmitting.set(true);
|
|
64581
|
+
this.error.set(null);
|
|
64582
|
+
this.isSuccess.set(false);
|
|
64583
|
+
this.formProps.state = ComponentStates.WORKING;
|
|
64584
|
+
this.formProps.actions.state = ComponentStates.WORKING;
|
|
64585
|
+
try {
|
|
64586
|
+
const title = submitted.fields['title'].trim();
|
|
64587
|
+
const description = submitted.fields['description']?.trim() ?? '';
|
|
64588
|
+
const attachmentUrls = this.currentAttachments.filter(a => a.status === 'ready').map(a => a.url);
|
|
64589
|
+
const result = await firstValueFrom(this.requestService.createRequest({
|
|
64590
|
+
type: this.props.type,
|
|
64591
|
+
title,
|
|
64592
|
+
fields: {
|
|
64593
|
+
...(description ? { description } : {}),
|
|
64594
|
+
...(attachmentUrls.length ? { attachmentUrls } : {}),
|
|
64595
|
+
},
|
|
64596
|
+
}));
|
|
64597
|
+
this.isSuccess.set(true);
|
|
64598
|
+
this.onSubmit.emit({
|
|
64599
|
+
requestId: result.requestId,
|
|
64600
|
+
request: result.request,
|
|
64601
|
+
type: this.props.type,
|
|
64602
|
+
title,
|
|
64603
|
+
attachmentUrls,
|
|
64604
|
+
});
|
|
64605
|
+
}
|
|
64606
|
+
catch (err) {
|
|
64607
|
+
this.error.set(err.error?.message || err.message || this.t('error'));
|
|
64608
|
+
}
|
|
64609
|
+
finally {
|
|
64610
|
+
this.isSubmitting.set(false);
|
|
64611
|
+
this.formProps.state = ComponentStates.ENABLED;
|
|
64612
|
+
this.formProps.actions.state = ComponentStates.ENABLED;
|
|
64613
|
+
}
|
|
64614
|
+
}
|
|
64615
|
+
onAttachmentsChange(items) {
|
|
64616
|
+
this.currentAttachments = items;
|
|
64617
|
+
}
|
|
64618
|
+
onCancelClick() {
|
|
64619
|
+
this.onCancel.emit();
|
|
64620
|
+
}
|
|
64621
|
+
t(key) {
|
|
64622
|
+
return this.i18n.t(key, 'RequestForm');
|
|
64623
|
+
}
|
|
64624
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RequestFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
64625
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: RequestFormComponent, isStandalone: true, selector: "val-request-form", inputs: { props: "props" }, outputs: { onSubmit: "onSubmit", onCancel: "onCancel" }, ngImport: i0, template: `
|
|
64626
|
+
<div class="request-form-wrapper" [class.compact]="props.compact" [ngClass]="props.cssClass">
|
|
64627
|
+
<val-form [props]="formProps" (onSubmit)="handleFormSubmit($event)">
|
|
64628
|
+
@if (props.showAttachments !== false) {
|
|
64629
|
+
<val-attachment-uploader [props]="{ maxFiles: 5 }" (attachmentsChange)="onAttachmentsChange($event)" />
|
|
64630
|
+
}
|
|
64631
|
+
|
|
64632
|
+
@if (error()) {
|
|
64633
|
+
<div class="request-alert error">
|
|
64634
|
+
<ion-icon name="close-circle-outline" aria-hidden="true" />
|
|
64635
|
+
<span>{{ error() }}</span>
|
|
64636
|
+
</div>
|
|
64637
|
+
}
|
|
64638
|
+
|
|
64639
|
+
@if (isSuccess()) {
|
|
64640
|
+
<div class="request-alert success">
|
|
64641
|
+
<ion-icon name="checkmark-circle-outline" aria-hidden="true" />
|
|
64642
|
+
<span>{{ props.successMessage || t('success') }}</span>
|
|
64643
|
+
</div>
|
|
64644
|
+
}
|
|
64645
|
+
</val-form>
|
|
64646
|
+
|
|
64647
|
+
@if (props.cancelButtonText) {
|
|
64648
|
+
<ion-button fill="outline" color="medium" expand="block" class="cancel-button" (click)="onCancelClick()">
|
|
64649
|
+
{{ props.cancelButtonText }}
|
|
64650
|
+
</ion-button>
|
|
64651
|
+
}
|
|
64652
|
+
</div>
|
|
64653
|
+
`, isInline: true, styles: [".request-form-wrapper{display:flex;flex-direction:column;gap:8px;&.compact{gap:4px}}.request-alert{display:flex;align-items:center;gap:8px;padding:12px 16px;border-radius:8px;margin-top:8px;&.error{background-color:var(--ion-color-danger-tint);color:var(--ion-color-danger-shade)}&.success{background-color:var(--ion-color-success-tint);color:var(--ion-color-success-shade)}ion-icon{font-size:1.25rem}}.cancel-button{margin-top:8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: FormComponent, selector: "val-form", inputs: ["props"], outputs: ["onSubmit", "onInvalid", "onSelectChange"] }, { kind: "component", type: AttachmentUploaderComponent, selector: "val-attachment-uploader", inputs: ["props"], outputs: ["attachmentsChange"] }, { 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"] }] }); }
|
|
64654
|
+
}
|
|
64655
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RequestFormComponent, decorators: [{
|
|
64656
|
+
type: Component,
|
|
64657
|
+
args: [{ selector: 'val-request-form', standalone: true, imports: [CommonModule, FormComponent, AttachmentUploaderComponent, IonButton, IonIcon], template: `
|
|
64658
|
+
<div class="request-form-wrapper" [class.compact]="props.compact" [ngClass]="props.cssClass">
|
|
64659
|
+
<val-form [props]="formProps" (onSubmit)="handleFormSubmit($event)">
|
|
64660
|
+
@if (props.showAttachments !== false) {
|
|
64661
|
+
<val-attachment-uploader [props]="{ maxFiles: 5 }" (attachmentsChange)="onAttachmentsChange($event)" />
|
|
64662
|
+
}
|
|
64663
|
+
|
|
64664
|
+
@if (error()) {
|
|
64665
|
+
<div class="request-alert error">
|
|
64666
|
+
<ion-icon name="close-circle-outline" aria-hidden="true" />
|
|
64667
|
+
<span>{{ error() }}</span>
|
|
64668
|
+
</div>
|
|
64669
|
+
}
|
|
64670
|
+
|
|
64671
|
+
@if (isSuccess()) {
|
|
64672
|
+
<div class="request-alert success">
|
|
64673
|
+
<ion-icon name="checkmark-circle-outline" aria-hidden="true" />
|
|
64674
|
+
<span>{{ props.successMessage || t('success') }}</span>
|
|
64675
|
+
</div>
|
|
64676
|
+
}
|
|
64677
|
+
</val-form>
|
|
64678
|
+
|
|
64679
|
+
@if (props.cancelButtonText) {
|
|
64680
|
+
<ion-button fill="outline" color="medium" expand="block" class="cancel-button" (click)="onCancelClick()">
|
|
64681
|
+
{{ props.cancelButtonText }}
|
|
64682
|
+
</ion-button>
|
|
64683
|
+
}
|
|
64684
|
+
</div>
|
|
64685
|
+
`, styles: [".request-form-wrapper{display:flex;flex-direction:column;gap:8px;&.compact{gap:4px}}.request-alert{display:flex;align-items:center;gap:8px;padding:12px 16px;border-radius:8px;margin-top:8px;&.error{background-color:var(--ion-color-danger-tint);color:var(--ion-color-danger-shade)}&.success{background-color:var(--ion-color-success-tint);color:var(--ion-color-success-shade)}ion-icon{font-size:1.25rem}}.cancel-button{margin-top:8px}\n"] }]
|
|
64686
|
+
}], ctorParameters: () => [], propDecorators: { props: [{
|
|
64687
|
+
type: Input
|
|
64688
|
+
}], onSubmit: [{
|
|
64689
|
+
type: Output
|
|
64690
|
+
}], onCancel: [{
|
|
64691
|
+
type: Output
|
|
64692
|
+
}] } });
|
|
64693
|
+
|
|
64449
64694
|
const DEFAULT_SPLASH_SCREEN_CONFIG = {
|
|
64450
64695
|
fadeOutDuration: 300,
|
|
64451
64696
|
};
|
|
@@ -67336,101 +67581,6 @@ const REQUEST_STATUSES = [
|
|
|
67336
67581
|
'closed',
|
|
67337
67582
|
];
|
|
67338
67583
|
|
|
67339
|
-
class RequestService {
|
|
67340
|
-
constructor(config, http) {
|
|
67341
|
-
this.config = config;
|
|
67342
|
-
this.http = http;
|
|
67343
|
-
}
|
|
67344
|
-
get baseUrl() {
|
|
67345
|
-
return `${this.config.apiUrl}/v2/requests`;
|
|
67346
|
-
}
|
|
67347
|
-
get typesUrl() {
|
|
67348
|
-
return `${this.config.apiUrl}/v2/request-types`;
|
|
67349
|
-
}
|
|
67350
|
-
// ── Requests ──
|
|
67351
|
-
createRequest(payload) {
|
|
67352
|
-
return this.http.post(this.baseUrl, payload);
|
|
67353
|
-
}
|
|
67354
|
-
createAnonymousRequest(payload) {
|
|
67355
|
-
return this.http.post(`${this.baseUrl}/anonymous`, payload);
|
|
67356
|
-
}
|
|
67357
|
-
listRequests(params) {
|
|
67358
|
-
const qs = this.buildQueryString(params);
|
|
67359
|
-
return this.http.get(`${this.baseUrl}${qs}`);
|
|
67360
|
-
}
|
|
67361
|
-
listMyRequests(params) {
|
|
67362
|
-
const qs = this.buildQueryString(params);
|
|
67363
|
-
return this.http.get(`${this.baseUrl}/my${qs}`);
|
|
67364
|
-
}
|
|
67365
|
-
getRequest(id) {
|
|
67366
|
-
return this.http
|
|
67367
|
-
.get(`${this.baseUrl}/${id}`)
|
|
67368
|
-
.pipe(map$1(r => r.request));
|
|
67369
|
-
}
|
|
67370
|
-
updateRequest(id, payload) {
|
|
67371
|
-
return this.http
|
|
67372
|
-
.put(`${this.baseUrl}/${id}`, payload)
|
|
67373
|
-
.pipe(map$1(r => r.request));
|
|
67374
|
-
}
|
|
67375
|
-
transition(id, payload) {
|
|
67376
|
-
return this.http.post(`${this.baseUrl}/${id}/transition`, payload);
|
|
67377
|
-
}
|
|
67378
|
-
// ── Comments ──
|
|
67379
|
-
addComment(requestId, payload) {
|
|
67380
|
-
return this.http
|
|
67381
|
-
.post(`${this.baseUrl}/${requestId}/comments`, payload)
|
|
67382
|
-
.pipe(map$1(r => r.comment));
|
|
67383
|
-
}
|
|
67384
|
-
listComments(requestId) {
|
|
67385
|
-
return this.http.get(`${this.baseUrl}/${requestId}/comments`);
|
|
67386
|
-
}
|
|
67387
|
-
// ── Request Types ──
|
|
67388
|
-
listRequestTypes() {
|
|
67389
|
-
return this.http.get(this.typesUrl);
|
|
67390
|
-
}
|
|
67391
|
-
getRequestType(typeId) {
|
|
67392
|
-
return this.http.get(`${this.typesUrl}/${typeId}`);
|
|
67393
|
-
}
|
|
67394
|
-
createRequestType(payload) {
|
|
67395
|
-
return this.http
|
|
67396
|
-
.post(this.typesUrl, payload)
|
|
67397
|
-
.pipe(map$1(r => r.typeConfig));
|
|
67398
|
-
}
|
|
67399
|
-
updateRequestType(typeId, payload) {
|
|
67400
|
-
return this.http
|
|
67401
|
-
.put(`${this.typesUrl}/${typeId}`, payload)
|
|
67402
|
-
.pipe(map$1(r => r.typeConfig));
|
|
67403
|
-
}
|
|
67404
|
-
deleteRequestType(typeId) {
|
|
67405
|
-
return this.http.delete(`${this.typesUrl}/${typeId}`);
|
|
67406
|
-
}
|
|
67407
|
-
// ── Helpers ──
|
|
67408
|
-
buildQueryString(params) {
|
|
67409
|
-
if (!params)
|
|
67410
|
-
return '';
|
|
67411
|
-
const qs = new URLSearchParams();
|
|
67412
|
-
if (params.type)
|
|
67413
|
-
qs.set('type', params.type);
|
|
67414
|
-
if (params.status)
|
|
67415
|
-
qs.set('status', params.status);
|
|
67416
|
-
if (params.limit != null)
|
|
67417
|
-
qs.set('limit', String(params.limit));
|
|
67418
|
-
if (params.nextToken)
|
|
67419
|
-
qs.set('nextToken', params.nextToken);
|
|
67420
|
-
const str = qs.toString();
|
|
67421
|
-
return str ? `?${str}` : '';
|
|
67422
|
-
}
|
|
67423
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RequestService, deps: [{ token: VALTECH_AUTH_CONFIG }, { token: i1$3.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
67424
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RequestService, providedIn: 'root' }); }
|
|
67425
|
-
}
|
|
67426
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RequestService, decorators: [{
|
|
67427
|
-
type: Injectable,
|
|
67428
|
-
args: [{ providedIn: 'root' }]
|
|
67429
|
-
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
67430
|
-
type: Inject,
|
|
67431
|
-
args: [VALTECH_AUTH_CONFIG]
|
|
67432
|
-
}] }, { type: i1$3.HttpClient }] });
|
|
67433
|
-
|
|
67434
67584
|
class RequestFormBuilderService {
|
|
67435
67585
|
constructor() {
|
|
67436
67586
|
this.i18n = inject(I18nService);
|
|
@@ -67988,9 +68138,7 @@ class AuthCtaComponent {
|
|
|
67988
68138
|
return undefined;
|
|
67989
68139
|
return IONIC_COLORS.includes(bg) ? `var(--ion-color-${bg})` : bg;
|
|
67990
68140
|
});
|
|
67991
|
-
|
|
67992
|
-
this.i18n.registerContent('AuthCta', AUTH_CTA_I18N);
|
|
67993
|
-
}
|
|
68141
|
+
this.i18n.registerDefaults('AuthCta', AUTH_CTA_I18N);
|
|
67994
68142
|
}
|
|
67995
68143
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AuthCtaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
67996
68144
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: AuthCtaComponent, isStandalone: true, selector: "val-auth-cta", inputs: { props: { classPropertyName: "props", publicName: "props", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onLogin: "onLogin", onRegister: "onRegister" }, ngImport: i0, template: `
|
|
@@ -68201,9 +68349,7 @@ class TicketCardComponent {
|
|
|
68201
68349
|
}
|
|
68202
68350
|
return '';
|
|
68203
68351
|
});
|
|
68204
|
-
|
|
68205
|
-
this.i18n.registerContent('TicketCard', TICKET_CARD_I18N);
|
|
68206
|
-
}
|
|
68352
|
+
this.i18n.registerDefaults('TicketCard', TICKET_CARD_I18N);
|
|
68207
68353
|
// Regenera el QR cuando cambia el token o el tamaño.
|
|
68208
68354
|
effect(() => {
|
|
68209
68355
|
const token = this.props().qrToken;
|
|
@@ -68391,9 +68537,7 @@ class QrScannerComponent {
|
|
|
68391
68537
|
this.lastValue = '';
|
|
68392
68538
|
this.lastAt = 0;
|
|
68393
68539
|
this.viewReady = false;
|
|
68394
|
-
|
|
68395
|
-
this.i18n.registerContent('QrScanner', QR_SCANNER_I18N);
|
|
68396
|
-
}
|
|
68540
|
+
this.i18n.registerDefaults('QrScanner', QR_SCANNER_I18N);
|
|
68397
68541
|
}
|
|
68398
68542
|
ngAfterViewInit() {
|
|
68399
68543
|
this.viewReady = true;
|
|
@@ -68662,5 +68806,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
68662
68806
|
* Generated bundle index. Do not edit.
|
|
68663
68807
|
*/
|
|
68664
68808
|
|
|
68665
|
-
export { ACTION_CARD_DEFAULTS, AD_SIZE_MAP, API_TABLE_COLUMN_LABELS, APP_VERSION_PLATFORM_PLUGIN, APP_VERSION_REMOTE_PLUGIN, ARTICLE_CARD_DEFAULTS, ARTICLE_SPACING, ARTICLE_STRIP_DEFAULTS, AUTH_CTA_DEFAULTS, AVATAR_UPLOAD_DEFAULTS, AboutViewComponent, AccordionComponent, AccountViewComponent, ActionCardComponent, ActionHeaderComponent, ActionType, AdSlotComponent, AdsLoaderService, AdsService, AlertBoxComponent, AnalyticsErrorHandler, AnalyticsRouterTracker, AnalyticsService, AnimatedTerminalComponent, ApiKeyCreateModalComponent, ApiKeyService, ApiKeysModalComponent, ApiKeysViewComponent, AppConfigService, AppVersionService, ArticleBuilder, ArticleCardComponent, ArticleComponent, ArticleStripComponent, AttachmentUploaderComponent, AuthBackgroundComponent, AuthCtaComponent, AuthService, AuthStateService, AuthStorageService, AuthSyncService, AvatarComponent, AvatarUploadComponent, BOTTOM_NAV_DEFAULTS, BannerComponent, BlogPostBuilder, BottomNavComponent, BoxComponent, BreadcrumbComponent, ButtonComponent, ButtonGroupComponent, CALLOUT_LABELS, CHEV_KEYS, CIRCLE_KEYS, COMMON_COUNTRY_CODES, COMMON_CURRENCIES, CORNER_KEYS, CTA_CARD_DEFAULTS, CURRENCY_INFO, CardComponent, CardSection, CardType, CardsCarouselComponent, ChangeEmailModalComponent, ChangePasswordModalComponent, CheckInputComponent, CheckboxRadioInputComponent, ChipGroupComponent, CodeDisplayComponent, CommandDisplayComponent, CommentComponent, CommentInputComponent, CommentSectionComponent, CompanyFooterComponent, ComponentStates, ConfirmationDialogService, ContainerComponent, ContentLoaderComponent, ContentReactionComponent, ContentService, ContentTransformer, CookieBannerComponent, CountdownComponent, CreateOrgModalComponent, CtaCardComponent, CurrencyInputComponent, DEFAULT_ADS_CONFIG, DEFAULT_APP_CONFIG_SERVICE_CONFIG, DEFAULT_APP_VERSION_SERVICE_CONFIG, DEFAULT_AUTH_CONFIG, DEFAULT_BACK_HEADER, DEFAULT_BUTTON_PRESETS, DEFAULT_CANCEL_BUTTON, DEFAULT_CHECK_INTERVAL_MS, DEFAULT_CONFIRM_BUTTON, DEFAULT_COUNTDOWN_LABELS, DEFAULT_COUNTDOWN_LABELS_EN, DEFAULT_DEBUG_CONSOLE_CONFIG, DEFAULT_DONATION_CONFIG, DEFAULT_EMPTY_STATE, DEFAULT_EMULATOR_CONFIG, DEFAULT_FEEDBACK_CONFIG, DEFAULT_FEEDBACK_TYPE_OPTIONS, DEFAULT_HOME_HEADER, DEFAULT_INFINITE_LIST_METADATA, DEFAULT_LOGIN_LOGO, DEFAULT_MODAL_CANCEL_BUTTON, DEFAULT_MODAL_CONFIRM_BUTTON, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PLATFORMS, DEFAULT_PRESETS, DEFAULT_REFRESHER_METADATA, DEFAULT_SKELETON_CONFIG, DEFAULT_SPLASH_SCREEN_CONFIG, DataTableComponent, DateInputComponent, DatePickerComponent, DateRangeInputComponent, DebugConsoleComponent, DeleteAccountModalComponent, DetailSkeletonComponent, DeviceService, DisplayComponent, DividerComponent, DocsApiTableComponent, DocsBreadcrumbComponent, DocsBuilder, DocsCalloutComponent, DocsCodeExampleComponent, DocsLayoutComponent, DocsNavLinksComponent, DocsNavigationService, DocsPageComponent, DocsSearchComponent, DocsSectionComponent, DocsShellComponent, DocsSidebarComponent, DocsTocComponent, DonationService, DownloadService, EditOrgModalComponent, EmptyStateComponent, EntityCardComponent, ExpandableTextComponent, FEATURES_LIST_DEFAULTS, FUN_MODAL_DEFAULTS, FabComponent, FaqComponent, FeaturesListComponent, FeedbackFormComponent, FeedbackService, FieldListComponent, FileInputComponent, FirebaseService, FirestoreCollectionFactory, FirestoreService, FontSizeOption, FontSizeSelectorComponent, FontSizeService, FooterComponent, FooterLinksComponent, FormComponent, FormSkeletonComponent, FunHeaderComponent, FunModalComponent, GlassComponent, GlowCardComponent, GlowComponent, GridSkeletonComponent, HANDOFF_ROUTE_PARAM, HANDOFF_TOKEN_PARAM, HandoffService, HasPermissionDirective, HeaderComponent, HintComponent, HorizontalScrollComponent, HrefComponent, I18nService, IMAGE_DEFAULTS, INITIAL_AUTH_STATE, INITIAL_MFA_STATE, INVITATION_CARD_DEFAULTS, IONIC_COLORS$5 as IONIC_COLORS, Icon, IconComponent, IconService, ImageComponent, ImageCropComponent, ImageService, InAppBrowserService, InfiniteListComponent, InfoComponent, InputI18nHelper, InputType, InvitationCardComponent, InviteMemberModalComponent, ItemListComponent, LANG_STORAGE_KEY$1 as LANG_STORAGE_KEY, LEGAL_CONTENT_CONFIG, LOGIN_DEFAULTS, LandingSplitComponent, LandingStepsComponent, LanguageSelectorComponent, LayeredCardComponent, LegalContentService, LegalLinkService, LinkComponent, LinkProcessorService, LinkedProvidersComponent, LinksAccordionComponent, LinksCakeComponent, ListSkeletonComponent, LoadingDirective, LocalStorageService, LocaleService, LoginAttemptModalComponent, LoginComponent, MEDIA_OBJECT_DEFAULTS, MEMBER_CARD_DEFAULTS, METRIC_CARD_DEFAULTS, MODAL_SIZES, MOTIF_KEYS, MOTION, MaintenancePageComponent, MarkdownArticleParserService, MediaObjectComponent, MemberCardComponent, MemberDetailModalComponent, MemberImportModalComponent, MenuComponent, MessagingService, MetaService, MetricCardComponent, MfaModalComponent, ModalService, ModalShellComponent, MultiSelectSearchComponent, NUM_KEYS, NavigationService, NetworkBannerComponent, NetworkStatusService, NewsBuilder, NoContentComponent, NotesBoxComponent, NotificationActionService, NotificationPreferencesViewComponent, NotificationsService, NotificationsViewComponent, NumberFromToComponent, NumberStepperComponent, OAUTH_PROVIDERS_INFO, OAuthCallbackComponent, OAuthService, OrgInfoSheetComponent, OrgService, OrgSwitchService, OrganizationViewComponent, PATTERN_MOTIFS, PATTERN_PALETTES, PATTERN_STYLE_CONFIGS, PLATFORM_CONFIGS, PageContentComponent, PageLinksComponent, PageRefreshService, PageTemplateComponent, PageWavesComponent, PageWrapperComponent, PaginationComponent, PaginationService, PasswordInputComponent, PatternComponent, PermissionCatalogService, PermissionSelectorComponent, PermissionsModalComponent, PermissionsViewComponent, PhoneInputComponent, PillComponent, PinInputComponent, PlainCodeBoxComponent, PopoverSelectorComponent, PreferencesService, PreferencesViewComponent, PresetService, PriceTagComponent, ProcessLinksPipe, ProfileSkeletonComponent, ProfileViewComponent, ProgressBarComponent, ProgressRingComponent, ProgressStatusComponent, PrompterComponent, QR_PRESETS, QrCodeComponent, QrGeneratorService, QrScannerComponent, QueryBuilder, QuoteBoxComponent, REQUEST_STATUSES, RadioInputComponent, RangeInputComponent, RatingComponent, RefresherComponent, RequestFirestoreService, RequestFormBuilderService, RequestService, RightsFooterComponent, RotatingTextComponent, SEARCH_HEADER_DEFAULTS, SETTINGS_SECTIONS_CATALOG, SHAPE_KEYS, SHARE_PROFILE_MODAL_DEFAULTS, SKELETON_LAYOUT_DEFAULT_ROWS, SKELETON_PRESETS, SOLID_KEYS, STATS_BAR_DEFAULTS, STROKE_KEYS, SearchHeaderComponent, SearchSelectorComponent, SearchbarComponent, SecurityViewComponent, SegmentControlComponent, SelectSearchComponent, SessionListModalComponent, SessionService, SettingsHubComponent, ShareButtonsComponent, ShareProfileModalComponent, SimpleComponent, SkeletonComponent, SkeletonLayoutComponent, SkeletonService, SplashComponent, SplashScreenService, StatsBarComponent, StatsCardComponent, StepperComponent, StorageService, SwipeCarouselComponent, SwitchOrgModalComponent, TRI_KEYS, TabbedContentComponent, TableSkeletonComponent, TabsComponent, Terminal404Component, TestimonialCardComponent, TestimonialCarouselComponent, TextComponent, TextInputComponent, TextareaInputComponent, ThemeOption, ThemeService, TicketCardComponent, TimelineComponent, TitleBlockComponent, TitleComponent, ToastService, ToggleInputComponent, TokenService, ToolbarActionType, ToolbarComponent, TransferOwnershipModalComponent, TranslatePipe, TypedCollection, UPDATE_BANNER_DEFAULT_CONTENT, UPDATE_BANNER_I18N_NAMESPACE, UpdateBannerComponent, UserAvatarComponent, UsernameInputComponent, VALTECH_ADS_CONFIG, VALTECH_APP_CONFIG, VALTECH_APP_VERSION, VALTECH_AUTH_CONFIG, VALTECH_COMPANY_LINKS, VALTECH_CONTENT_CONFIG, VALTECH_DEBUG_CONSOLE, VALTECH_DEFAULT_CONTENT, VALTECH_DONATION_CONFIG, VALTECH_FEEDBACK_CONFIG, VALTECH_FIREBASE_CONFIG, VALTECH_FOOTER_I18N, VALTECH_FOOTER_LOGO, VALTECH_LANGUAGE_SELECTOR, VALTECH_LEGAL_CONFIG, VALTECH_NETWORK_ERROR_KEY, VALTECH_SETTINGS_MENU_LINKS, VALTECH_SITE_PATHS, VALTECH_SOCIAL_LINKS, VALTECH_SPLASH_SCREEN, VALTECH_WEB_BASE_URLS, VALTECH_WHATSAPP_CONFIG, VERSION, ValtechErrorService, WhatsappFabComponent, WhatsappService, WizardComponent, WizardFooterComponent, applyDefaultValueToControl, authGuard, authInterceptor, authPasswordValidator, beautifyLegalArticle, blogPost, buildCompanyFooterProps, buildFooterLinks, buildLegalLinkResolver, buildPath, buildSettingsCards, button, canSubmitRequestType, collections, connectPageRefresh, createErrorStateProps, createFirebaseConfig, createGlowCardProps, createInitialPaginationState, createNumberFromToField, createPageState, createPermissionLabeler, createRefreshableStream, createTitleProps, docs, errorLoggingInterceptor, extractPathParams, generatePatternTiles, generateRandomTile, getAppInfo, getAppVersion, getCollectionPath, getDocumentId, getTimeOfDayKey, goToTop, guestGuard, hasEmulators, iconButton, interpretError, isAtEnd, isCollectionPath, isDocumentPath, isEmulatorMode, isIonicColor, isValidPath, joinPath, maxLength, mulberry32, news, parseMarkdownArticle, permissionGuard, permissionGuardFromRoute, provideLegalContent, provideSplashScreen, provideValtechAboutRoutes, provideValtechAccountRoutes, provideValtechAds, provideValtechApiKeysRoutes, provideValtechAppConfig, provideValtechAppVersion, provideValtechAppVersionHttp, provideValtechAuth, provideValtechAuthInterceptor, provideValtechContent, provideValtechDebugConsole, provideValtechDonations, provideValtechErrorHandling, provideValtechFeedback, provideValtechFirebase, provideValtechI18n, provideValtechLegal, provideValtechNotificationPreferencesRoutes, provideValtechNotificationsRoutes, provideValtechOrganizationRoutes, provideValtechPermissionsRoutes, provideValtechPreferencesRoutes, provideValtechPresets, provideValtechProfileRoutes, provideValtechSecurityRoutes, provideValtechSettingsRoutes, provideValtechSite, provideValtechSkeleton, provideValtechWhatsapp, query, renderPatternSvgInner, replaceSpecialChars, requestSubmitMode, resolveColor, resolveInputDefaultValue, resolveIonicColor, resolveWebBaseUrl, roleGuard, selectableRequestTypes, storagePaths, superAdminGuard, toArticle };
|
|
68809
|
+
export { ACTION_CARD_DEFAULTS, AD_SIZE_MAP, API_TABLE_COLUMN_LABELS, APP_VERSION_PLATFORM_PLUGIN, APP_VERSION_REMOTE_PLUGIN, ARTICLE_CARD_DEFAULTS, ARTICLE_SPACING, ARTICLE_STRIP_DEFAULTS, AUTH_CTA_DEFAULTS, AVATAR_UPLOAD_DEFAULTS, AboutViewComponent, AccordionComponent, AccountViewComponent, ActionCardComponent, ActionHeaderComponent, ActionType, AdSlotComponent, AdsLoaderService, AdsService, AlertBoxComponent, AnalyticsErrorHandler, AnalyticsRouterTracker, AnalyticsService, AnimatedTerminalComponent, ApiKeyCreateModalComponent, ApiKeyService, ApiKeysModalComponent, ApiKeysViewComponent, AppConfigService, AppVersionService, ArticleBuilder, ArticleCardComponent, ArticleComponent, ArticleStripComponent, AttachmentUploaderComponent, AuthBackgroundComponent, AuthCtaComponent, AuthService, AuthStateService, AuthStorageService, AuthSyncService, AvatarComponent, AvatarUploadComponent, BOTTOM_NAV_DEFAULTS, BannerComponent, BlogPostBuilder, BottomNavComponent, BoxComponent, BreadcrumbComponent, ButtonComponent, ButtonGroupComponent, CALLOUT_LABELS, CHEV_KEYS, CIRCLE_KEYS, COMMON_COUNTRY_CODES, COMMON_CURRENCIES, CORNER_KEYS, CTA_CARD_DEFAULTS, CURRENCY_INFO, CardComponent, CardSection, CardType, CardsCarouselComponent, ChangeEmailModalComponent, ChangePasswordModalComponent, CheckInputComponent, CheckboxRadioInputComponent, ChipGroupComponent, CodeDisplayComponent, CommandDisplayComponent, CommentComponent, CommentInputComponent, CommentSectionComponent, CompanyFooterComponent, ComponentStates, ConfirmationDialogService, ContainerComponent, ContentLoaderComponent, ContentReactionComponent, ContentService, ContentTransformer, CookieBannerComponent, CountdownComponent, CreateOrgModalComponent, CtaCardComponent, CurrencyInputComponent, DEFAULT_ADS_CONFIG, DEFAULT_APP_CONFIG_SERVICE_CONFIG, DEFAULT_APP_VERSION_SERVICE_CONFIG, DEFAULT_AUTH_CONFIG, DEFAULT_BACK_HEADER, DEFAULT_BUTTON_PRESETS, DEFAULT_CANCEL_BUTTON, DEFAULT_CHECK_INTERVAL_MS, DEFAULT_CONFIRM_BUTTON, DEFAULT_COUNTDOWN_LABELS, DEFAULT_COUNTDOWN_LABELS_EN, DEFAULT_DEBUG_CONSOLE_CONFIG, DEFAULT_DONATION_CONFIG, DEFAULT_EMPTY_STATE, DEFAULT_EMULATOR_CONFIG, DEFAULT_FEEDBACK_CONFIG, DEFAULT_FEEDBACK_TYPE_OPTIONS, DEFAULT_HOME_HEADER, DEFAULT_INFINITE_LIST_METADATA, DEFAULT_LOGIN_LOGO, DEFAULT_MODAL_CANCEL_BUTTON, DEFAULT_MODAL_CONFIRM_BUTTON, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PLATFORMS, DEFAULT_PRESETS, DEFAULT_REFRESHER_METADATA, DEFAULT_SKELETON_CONFIG, DEFAULT_SPLASH_SCREEN_CONFIG, DataTableComponent, DateInputComponent, DatePickerComponent, DateRangeInputComponent, DebugConsoleComponent, DeleteAccountModalComponent, DetailSkeletonComponent, DeviceService, DisplayComponent, DividerComponent, DocsApiTableComponent, DocsBreadcrumbComponent, DocsBuilder, DocsCalloutComponent, DocsCodeExampleComponent, DocsLayoutComponent, DocsNavLinksComponent, DocsNavigationService, DocsPageComponent, DocsSearchComponent, DocsSectionComponent, DocsShellComponent, DocsSidebarComponent, DocsTocComponent, DonationService, DownloadService, EditOrgModalComponent, EmptyStateComponent, EntityCardComponent, ExpandableTextComponent, FEATURES_LIST_DEFAULTS, FUN_MODAL_DEFAULTS, FabComponent, FaqComponent, FeaturesListComponent, FeedbackFormComponent, FeedbackService, FieldListComponent, FileInputComponent, FirebaseService, FirestoreCollectionFactory, FirestoreService, FontSizeOption, FontSizeSelectorComponent, FontSizeService, FooterComponent, FooterLinksComponent, FormComponent, FormSkeletonComponent, FunHeaderComponent, FunModalComponent, GlassComponent, GlowCardComponent, GlowComponent, GridSkeletonComponent, HANDOFF_ROUTE_PARAM, HANDOFF_TOKEN_PARAM, HandoffService, HasPermissionDirective, HeaderComponent, HintComponent, HorizontalScrollComponent, HrefComponent, I18nService, IMAGE_DEFAULTS, INITIAL_AUTH_STATE, INITIAL_MFA_STATE, INVITATION_CARD_DEFAULTS, IONIC_COLORS$5 as IONIC_COLORS, Icon, IconComponent, IconService, ImageComponent, ImageCropComponent, ImageService, InAppBrowserService, InfiniteListComponent, InfoComponent, InputI18nHelper, InputType, InvitationCardComponent, InviteMemberModalComponent, ItemListComponent, LANG_STORAGE_KEY$1 as LANG_STORAGE_KEY, LEGAL_CONTENT_CONFIG, LOGIN_DEFAULTS, LandingSplitComponent, LandingStepsComponent, LanguageSelectorComponent, LayeredCardComponent, LegalContentService, LegalLinkService, LinkComponent, LinkProcessorService, LinkedProvidersComponent, LinksAccordionComponent, LinksCakeComponent, ListSkeletonComponent, LoadingDirective, LocalStorageService, LocaleService, LoginAttemptModalComponent, LoginComponent, MEDIA_OBJECT_DEFAULTS, MEMBER_CARD_DEFAULTS, METRIC_CARD_DEFAULTS, MODAL_SIZES, MOTIF_KEYS, MOTION, MaintenancePageComponent, MarkdownArticleParserService, MediaObjectComponent, MemberCardComponent, MemberDetailModalComponent, MemberImportModalComponent, MenuComponent, MessagingService, MetaService, MetricCardComponent, MfaModalComponent, ModalService, ModalShellComponent, MultiSelectSearchComponent, NUM_KEYS, NavigationService, NetworkBannerComponent, NetworkStatusService, NewsBuilder, NoContentComponent, NotesBoxComponent, NotificationActionService, NotificationPreferencesViewComponent, NotificationsService, NotificationsViewComponent, NumberFromToComponent, NumberStepperComponent, OAUTH_PROVIDERS_INFO, OAuthCallbackComponent, OAuthService, OrgInfoSheetComponent, OrgService, OrgSwitchService, OrganizationViewComponent, PATTERN_MOTIFS, PATTERN_PALETTES, PATTERN_STYLE_CONFIGS, PLATFORM_CONFIGS, PageContentComponent, PageLinksComponent, PageRefreshService, PageTemplateComponent, PageWavesComponent, PageWrapperComponent, PaginationComponent, PaginationService, PasswordInputComponent, PatternComponent, PermissionCatalogService, PermissionSelectorComponent, PermissionsModalComponent, PermissionsViewComponent, PhoneInputComponent, PillComponent, PinInputComponent, PlainCodeBoxComponent, PopoverSelectorComponent, PreferencesService, PreferencesViewComponent, PresetService, PriceTagComponent, ProcessLinksPipe, ProfileSkeletonComponent, ProfileViewComponent, ProgressBarComponent, ProgressRingComponent, ProgressStatusComponent, PrompterComponent, QR_PRESETS, QrCodeComponent, QrGeneratorService, QrScannerComponent, QueryBuilder, QuoteBoxComponent, REQUEST_STATUSES, RadioInputComponent, RangeInputComponent, RatingComponent, RefresherComponent, RequestFirestoreService, RequestFormBuilderService, RequestFormComponent, RequestService, RightsFooterComponent, RotatingTextComponent, SEARCH_HEADER_DEFAULTS, SETTINGS_SECTIONS_CATALOG, SHAPE_KEYS, SHARE_PROFILE_MODAL_DEFAULTS, SKELETON_LAYOUT_DEFAULT_ROWS, SKELETON_PRESETS, SOLID_KEYS, STATS_BAR_DEFAULTS, STROKE_KEYS, SearchHeaderComponent, SearchSelectorComponent, SearchbarComponent, SecurityViewComponent, SegmentControlComponent, SelectSearchComponent, SessionListModalComponent, SessionService, SettingsHubComponent, ShareButtonsComponent, ShareProfileModalComponent, SimpleComponent, SkeletonComponent, SkeletonLayoutComponent, SkeletonService, SplashComponent, SplashScreenService, StatsBarComponent, StatsCardComponent, StepperComponent, StorageService, SwipeCarouselComponent, SwitchOrgModalComponent, TRI_KEYS, TabbedContentComponent, TableSkeletonComponent, TabsComponent, Terminal404Component, TestimonialCardComponent, TestimonialCarouselComponent, TextComponent, TextInputComponent, TextareaInputComponent, ThemeOption, ThemeService, TicketCardComponent, TimelineComponent, TitleBlockComponent, TitleComponent, ToastService, ToggleInputComponent, TokenService, ToolbarActionType, ToolbarComponent, TransferOwnershipModalComponent, TranslatePipe, TypedCollection, UPDATE_BANNER_DEFAULT_CONTENT, UPDATE_BANNER_I18N_NAMESPACE, UpdateBannerComponent, UserAvatarComponent, UsernameInputComponent, VALTECH_ADS_CONFIG, VALTECH_APP_CONFIG, VALTECH_APP_VERSION, VALTECH_AUTH_CONFIG, VALTECH_COMPANY_LINKS, VALTECH_CONTENT_CONFIG, VALTECH_DEBUG_CONSOLE, VALTECH_DEFAULT_CONTENT, VALTECH_DONATION_CONFIG, VALTECH_FEEDBACK_CONFIG, VALTECH_FIREBASE_CONFIG, VALTECH_FOOTER_I18N, VALTECH_FOOTER_LOGO, VALTECH_LANGUAGE_SELECTOR, VALTECH_LEGAL_CONFIG, VALTECH_NETWORK_ERROR_KEY, VALTECH_SETTINGS_MENU_LINKS, VALTECH_SITE_PATHS, VALTECH_SOCIAL_LINKS, VALTECH_SPLASH_SCREEN, VALTECH_WEB_BASE_URLS, VALTECH_WHATSAPP_CONFIG, VERSION, ValtechErrorService, WhatsappFabComponent, WhatsappService, WizardComponent, WizardFooterComponent, applyDefaultValueToControl, authGuard, authInterceptor, authPasswordValidator, beautifyLegalArticle, blogPost, buildCompanyFooterProps, buildFooterLinks, buildLegalLinkResolver, buildPath, buildSettingsCards, button, canSubmitRequestType, collections, connectPageRefresh, createErrorStateProps, createFirebaseConfig, createGlowCardProps, createInitialPaginationState, createNumberFromToField, createPageState, createPermissionLabeler, createRefreshableStream, createTitleProps, docs, errorLoggingInterceptor, extractPathParams, generatePatternTiles, generateRandomTile, getAppInfo, getAppVersion, getCollectionPath, getDocumentId, getTimeOfDayKey, goToTop, guestGuard, hasEmulators, iconButton, interpretError, isAtEnd, isCollectionPath, isDocumentPath, isEmulatorMode, isIonicColor, isValidPath, joinPath, maxLength, mulberry32, news, parseMarkdownArticle, permissionGuard, permissionGuardFromRoute, provideLegalContent, provideSplashScreen, provideValtechAboutRoutes, provideValtechAccountRoutes, provideValtechAds, provideValtechApiKeysRoutes, provideValtechAppConfig, provideValtechAppVersion, provideValtechAppVersionHttp, provideValtechAuth, provideValtechAuthInterceptor, provideValtechContent, provideValtechDebugConsole, provideValtechDonations, provideValtechErrorHandling, provideValtechFeedback, provideValtechFirebase, provideValtechI18n, provideValtechLegal, provideValtechNotificationPreferencesRoutes, provideValtechNotificationsRoutes, provideValtechOrganizationRoutes, provideValtechPermissionsRoutes, provideValtechPreferencesRoutes, provideValtechPresets, provideValtechProfileRoutes, provideValtechSecurityRoutes, provideValtechSettingsRoutes, provideValtechSite, provideValtechSkeleton, provideValtechWhatsapp, query, renderPatternSvgInner, replaceSpecialChars, requestSubmitMode, resolveColor, resolveInputDefaultValue, resolveIonicColor, resolveWebBaseUrl, roleGuard, selectableRequestTypes, storagePaths, superAdminGuard, toArticle };
|
|
68666
68810
|
//# sourceMappingURL=valtech-components.mjs.map
|