@acorex/core 21.0.2-next.9 → 21.0.3-next.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/fesm2022/acorex-core-components.mjs +3 -3
  2. package/fesm2022/acorex-core-config.mjs +3 -3
  3. package/fesm2022/acorex-core-date-time.mjs +112 -92
  4. package/fesm2022/acorex-core-date-time.mjs.map +1 -1
  5. package/fesm2022/acorex-core-events.mjs +3 -3
  6. package/fesm2022/acorex-core-file.mjs +667 -92
  7. package/fesm2022/acorex-core-file.mjs.map +1 -1
  8. package/fesm2022/acorex-core-format.mjs +19 -19
  9. package/fesm2022/acorex-core-full-screen.mjs +4 -4
  10. package/fesm2022/acorex-core-full-screen.mjs.map +1 -1
  11. package/fesm2022/acorex-core-icon.mjs +3 -3
  12. package/fesm2022/acorex-core-image.mjs +3 -3
  13. package/fesm2022/acorex-core-locale.mjs +173 -142
  14. package/fesm2022/acorex-core-locale.mjs.map +1 -1
  15. package/fesm2022/acorex-core-network.mjs +4 -4
  16. package/fesm2022/acorex-core-network.mjs.map +1 -1
  17. package/fesm2022/acorex-core-pipes.mjs +3 -3
  18. package/fesm2022/acorex-core-platform.mjs +5 -5
  19. package/fesm2022/acorex-core-platform.mjs.map +1 -1
  20. package/fesm2022/acorex-core-storage.mjs +9 -9
  21. package/fesm2022/acorex-core-translation.mjs +68 -24
  22. package/fesm2022/acorex-core-translation.mjs.map +1 -1
  23. package/fesm2022/acorex-core-utils.mjs +124 -5
  24. package/fesm2022/acorex-core-utils.mjs.map +1 -1
  25. package/fesm2022/acorex-core-validation.mjs +40 -40
  26. package/fesm2022/acorex-core-z-index.mjs +16 -10
  27. package/fesm2022/acorex-core-z-index.mjs.map +1 -1
  28. package/package.json +3 -2
  29. package/types/acorex-core-date-time.d.ts +24 -20
  30. package/types/acorex-core-file.d.ts +268 -40
  31. package/types/acorex-core-locale.d.ts +5 -0
  32. package/types/acorex-core-translation.d.ts +8 -1
  33. package/types/acorex-core-utils.d.ts +28 -1
  34. package/types/acorex-core-z-index.d.ts +3 -2
@@ -1,7 +1,8 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, inject, Injectable, NgModule, signal } from '@angular/core';
2
+ import { InjectionToken, inject, Injectable, NgModule, PLATFORM_ID, signal, computed } from '@angular/core';
3
3
  import * as i1 from '@acorex/core/format';
4
4
  import { AXFormatModule } from '@acorex/core/format';
5
+ import { isPlatformBrowser, DOCUMENT } from '@angular/common';
5
6
  import { toObservable } from '@angular/core/rxjs-interop';
6
7
  import { cloneDeep, set, merge } from 'lodash-es';
7
8
 
@@ -112,10 +113,10 @@ class AXLocaleProfileProviderService {
112
113
  has(localeCode) {
113
114
  return this.registry.has(localeCode);
114
115
  }
115
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXLocaleProfileProviderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
116
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXLocaleProfileProviderService, providedIn: 'root' }); }
116
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXLocaleProfileProviderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
117
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXLocaleProfileProviderService, providedIn: 'root' }); }
117
118
  }
118
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXLocaleProfileProviderService, decorators: [{
119
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXLocaleProfileProviderService, decorators: [{
119
120
  type: Injectable,
120
121
  args: [{
121
122
  providedIn: 'root',
@@ -132,13 +133,13 @@ const AX_LOCALE_CONFIG = new InjectionToken('AX_LOCALE_CONFIG', {
132
133
  });
133
134
 
134
135
  class AXLocaleModule {
135
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXLocaleModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
136
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.1.3", ngImport: i0, type: AXLocaleModule, imports: [i1.AXFormatModule] }); }
137
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXLocaleModule, imports: [AXFormatModule.forChild({
136
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXLocaleModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
137
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.9", ngImport: i0, type: AXLocaleModule, imports: [i1.AXFormatModule] }); }
138
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXLocaleModule, imports: [AXFormatModule.forChild({
138
139
  formatters: [],
139
140
  })] }); }
140
141
  }
141
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXLocaleModule, decorators: [{
142
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXLocaleModule, decorators: [{
142
143
  type: NgModule,
143
144
  args: [{
144
145
  imports: [
@@ -149,6 +150,73 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
149
150
  }]
150
151
  }] });
151
152
 
153
+ const AXAULocaleProfile = {
154
+ localeInfo: {
155
+ code: 'en-AU',
156
+ language: 'en',
157
+ region: 'AU',
158
+ timezone: 'Australia/Sydney',
159
+ },
160
+ calendar: {
161
+ system: 'gregorian',
162
+ week: {
163
+ startsOn: 1, // Monday
164
+ weekends: [0, 6], // Sunday + Saturday
165
+ },
166
+ clock: {
167
+ format24Hour: true,
168
+ },
169
+ },
170
+ formats: {
171
+ date: {
172
+ short: 'DD/MM/YY',
173
+ medium: 'DD/MM/YYYY',
174
+ long: 'DD MMMM YYYY',
175
+ full: 'dddd, DD MMMM YYYY',
176
+ },
177
+ time: {
178
+ short: 'HH:mm',
179
+ medium: 'HH:mm:ss',
180
+ long: 'HH:mm:ss Z',
181
+ full: 'HH:mm:ss ZZZZ',
182
+ },
183
+ datetime: {
184
+ short: 'DD/MM/YY HH:mm',
185
+ medium: 'DD/MM/YYYY HH:mm:ss',
186
+ long: 'DD MMMM YYYY HH:mm:ss Z',
187
+ full: 'dddd, DD MMMM YYYY HH:mm:ss ZZZZ',
188
+ },
189
+ numbers: {
190
+ decimalPattern: '1,000.00',
191
+ currency: {
192
+ code: 'AUD',
193
+ },
194
+ },
195
+ contacts: {
196
+ phone: '04XX XXX XXX',
197
+ postalCode: '0000',
198
+ },
199
+ },
200
+ units: {
201
+ temperature: 'celsius',
202
+ distance: 'kilometers',
203
+ weight: 'kilograms',
204
+ volume: 'liters',
205
+ speed: 'kmh',
206
+ area: 'square-meters',
207
+ },
208
+ i18nMeta: {
209
+ rtl: false,
210
+ fallbackLocales: ['en-US'],
211
+ supportedLanguages: ['en-AU'],
212
+ },
213
+ };
214
+
215
+ var enAU_profile = /*#__PURE__*/Object.freeze({
216
+ __proto__: null,
217
+ AXAULocaleProfile: AXAULocaleProfile
218
+ });
219
+
152
220
  const AXUSLocaleProfile = {
153
221
  localeInfo: {
154
222
  code: 'en-US',
@@ -216,75 +284,6 @@ var enUS_profile = /*#__PURE__*/Object.freeze({
216
284
  AXUSLocaleProfile: AXUSLocaleProfile
217
285
  });
218
286
 
219
- class AXLocaleService {
220
- /**
221
- * Loads and activates a locale profile by its code (e.g., 'en-US', 'fa-IR').
222
- *
223
- * @param localeCode - Locale identifier to load.
224
- * @returns Promise<void> - Resolves when the profile is loaded and activated.
225
- */
226
- async setProfile(localeCode) {
227
- const profile = await this.provider.getByLocale(localeCode);
228
- if (profile) {
229
- this.originalProfile = cloneDeep(profile);
230
- this._activeProfile.set(cloneDeep(profile));
231
- }
232
- else {
233
- console.warn(`[AXLocaleService] Locale not found: ${localeCode}`);
234
- }
235
- }
236
- /**
237
- *
238
- */
239
- constructor() {
240
- this.provider = inject(AXLocaleProfileProviderService);
241
- this.config = inject(AX_LOCALE_CONFIG);
242
- this._activeProfile = signal(AXUSLocaleProfile, ...(ngDevMode ? [{ debugName: "_activeProfile" }] : []));
243
- this.activeProfile = this._activeProfile.asReadonly();
244
- this.profileChanged$ = toObservable(this._activeProfile);
245
- this.originalProfile = cloneDeep(AXUSLocaleProfile);
246
- this.setProfile(this.config.default);
247
- }
248
- apply(arg1, arg2) {
249
- const current = this.activeProfile();
250
- if (!current) {
251
- console.warn('[AXLocaleService] No active profile found');
252
- return;
253
- }
254
- const updated = cloneDeep(current);
255
- if (typeof arg1 === 'string' && arg2 !== undefined) {
256
- // Overload: updateProfile('formats.date.full', 'YYYY-MM-DD')
257
- set(updated, arg1, arg2);
258
- }
259
- else if (typeof arg1 === 'object') {
260
- // Overload: updateProfile({ formats: { date: { short: '...' } } })
261
- merge(updated, arg1);
262
- }
263
- else {
264
- console.warn('[AXLocaleService] Invalid arguments passed to updateProfile()');
265
- return;
266
- }
267
- }
268
- /**
269
- * Resets the active profile to its original loaded state (clears overrides).
270
- *
271
- * @returns void
272
- */
273
- reset() {
274
- if (this.originalProfile) {
275
- this._activeProfile.set(cloneDeep(this.originalProfile));
276
- }
277
- }
278
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXLocaleService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
279
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXLocaleService, providedIn: 'root' }); }
280
- }
281
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXLocaleService, decorators: [{
282
- type: Injectable,
283
- args: [{
284
- providedIn: 'root',
285
- }]
286
- }], ctorParameters: () => [] });
287
-
288
287
  const AXIRLocaleProfile = {
289
288
  localeInfo: {
290
289
  code: 'fa-IR',
@@ -352,72 +351,104 @@ var faIR_profile = /*#__PURE__*/Object.freeze({
352
351
  AXIRLocaleProfile: AXIRLocaleProfile
353
352
  });
354
353
 
355
- const AXAULocaleProfile = {
356
- localeInfo: {
357
- code: 'en-AU',
358
- language: 'en',
359
- region: 'AU',
360
- timezone: 'Australia/Sydney',
361
- },
362
- calendar: {
363
- system: 'gregorian',
364
- week: {
365
- startsOn: 1, // Monday
366
- weekends: [0, 6], // Sunday + Saturday
367
- },
368
- clock: {
369
- format24Hour: true,
370
- },
371
- },
372
- formats: {
373
- date: {
374
- short: 'DD/MM/YY',
375
- medium: 'DD/MM/YYYY',
376
- long: 'DD MMMM YYYY',
377
- full: 'dddd, DD MMMM YYYY',
378
- },
379
- time: {
380
- short: 'HH:mm',
381
- medium: 'HH:mm:ss',
382
- long: 'HH:mm:ss Z',
383
- full: 'HH:mm:ss ZZZZ',
384
- },
385
- datetime: {
386
- short: 'DD/MM/YY HH:mm',
387
- medium: 'DD/MM/YYYY HH:mm:ss',
388
- long: 'DD MMMM YYYY HH:mm:ss Z',
389
- full: 'dddd, DD MMMM YYYY HH:mm:ss ZZZZ',
390
- },
391
- numbers: {
392
- decimalPattern: '1,000.00',
393
- currency: {
394
- code: 'AUD',
395
- },
396
- },
397
- contacts: {
398
- phone: '04XX XXX XXX',
399
- postalCode: '0000',
400
- },
401
- },
402
- units: {
403
- temperature: 'celsius',
404
- distance: 'kilometers',
405
- weight: 'kilograms',
406
- volume: 'liters',
407
- speed: 'kmh',
408
- area: 'square-meters',
409
- },
410
- i18nMeta: {
411
- rtl: false,
412
- fallbackLocales: ['en-US'],
413
- supportedLanguages: ['en-AU'],
414
- },
354
+ const BUILTIN_LOCALE_PROFILES = {
355
+ 'en-US': AXUSLocaleProfile,
356
+ 'en-AU': AXAULocaleProfile,
357
+ 'fa-IR': AXIRLocaleProfile,
415
358
  };
416
-
417
- var enAU_profile = /*#__PURE__*/Object.freeze({
418
- __proto__: null,
419
- AXAULocaleProfile: AXAULocaleProfile
420
- });
359
+ class AXLocaleService {
360
+ /**
361
+ * Loads and activates a locale profile by its code (e.g., 'en-US', 'fa-IR').
362
+ *
363
+ * @param localeCode - Locale identifier to load.
364
+ * @returns Promise<void> - Resolves when the profile is loaded and activated.
365
+ */
366
+ async setProfile(localeCode) {
367
+ const profile = await this.provider.getByLocale(localeCode);
368
+ if (profile) {
369
+ this.originalProfile = cloneDeep(profile);
370
+ this._activeProfile.set(cloneDeep(profile));
371
+ this.applyDocumentDirection(profile);
372
+ }
373
+ else {
374
+ console.warn(`[AXLocaleService] Locale not found: ${localeCode}`);
375
+ }
376
+ }
377
+ applyDocumentDirection(profile) {
378
+ if (!isPlatformBrowser(this.platformId)) {
379
+ return;
380
+ }
381
+ const isRtl = !!profile.i18nMeta?.rtl;
382
+ this.document.documentElement.setAttribute('dir', isRtl ? 'rtl' : 'ltr');
383
+ this.document.documentElement.setAttribute('lang', profile.localeInfo.language);
384
+ }
385
+ /**
386
+ *
387
+ */
388
+ constructor() {
389
+ this.provider = inject(AXLocaleProfileProviderService);
390
+ this.config = inject(AX_LOCALE_CONFIG);
391
+ this.document = inject(DOCUMENT);
392
+ this.platformId = inject(PLATFORM_ID);
393
+ this._activeProfile = signal(AXUSLocaleProfile, ...(ngDevMode ? [{ debugName: "_activeProfile" }] : /* istanbul ignore next */ []));
394
+ this.activeProfile = this._activeProfile.asReadonly();
395
+ /** Whether the active locale uses right-to-left layout. */
396
+ this.isRtl = computed(() => !!this._activeProfile()?.i18nMeta?.rtl, ...(ngDevMode ? [{ debugName: "isRtl" }] : /* istanbul ignore next */ []));
397
+ this.profileChanged$ = toObservable(this._activeProfile);
398
+ this.originalProfile = cloneDeep(AXUSLocaleProfile);
399
+ const defaultCode = this.config.default;
400
+ const builtinProfile = BUILTIN_LOCALE_PROFILES[defaultCode];
401
+ if (builtinProfile) {
402
+ this.originalProfile = cloneDeep(builtinProfile);
403
+ this._activeProfile.set(cloneDeep(builtinProfile));
404
+ this.applyDocumentDirection(builtinProfile);
405
+ void this.provider.getByLocale(defaultCode);
406
+ return;
407
+ }
408
+ this.applyDocumentDirection(this._activeProfile());
409
+ void this.setProfile(defaultCode);
410
+ }
411
+ apply(arg1, arg2) {
412
+ const current = this.activeProfile();
413
+ if (!current) {
414
+ console.warn('[AXLocaleService] No active profile found');
415
+ return;
416
+ }
417
+ const updated = cloneDeep(current);
418
+ if (typeof arg1 === 'string' && arg2 !== undefined) {
419
+ // Overload: updateProfile('formats.date.full', 'YYYY-MM-DD')
420
+ set(updated, arg1, arg2);
421
+ }
422
+ else if (typeof arg1 === 'object') {
423
+ // Overload: updateProfile({ formats: { date: { short: '...' } } })
424
+ merge(updated, arg1);
425
+ }
426
+ else {
427
+ console.warn('[AXLocaleService] Invalid arguments passed to updateProfile()');
428
+ return;
429
+ }
430
+ }
431
+ /**
432
+ * Resets the active profile to its original loaded state (clears overrides).
433
+ *
434
+ * @returns void
435
+ */
436
+ reset() {
437
+ if (this.originalProfile) {
438
+ const profile = cloneDeep(this.originalProfile);
439
+ this._activeProfile.set(profile);
440
+ this.applyDocumentDirection(profile);
441
+ }
442
+ }
443
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXLocaleService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
444
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXLocaleService, providedIn: 'root' }); }
445
+ }
446
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXLocaleService, decorators: [{
447
+ type: Injectable,
448
+ args: [{
449
+ providedIn: 'root',
450
+ }]
451
+ }], ctorParameters: () => [] });
421
452
 
422
453
  /**
423
454
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-core-locale.mjs","sources":["../../../../packages/core/locale/src/lib/formatters/currency.formatter.ts","../../../../packages/core/locale/src/lib/locale-profile-provider.service.ts","../../../../packages/core/locale/src/lib/locale.config.ts","../../../../packages/core/locale/src/lib/locale.module.ts","../../../../packages/core/locale/src/lib/profiles/en-US.profile.ts","../../../../packages/core/locale/src/lib/locale.service.ts","../../../../packages/core/locale/src/lib/profiles/fa-IR.profile.ts","../../../../packages/core/locale/src/lib/profiles/en-AU.profile.ts","../../../../packages/core/locale/src/acorex-core-locale.ts"],"sourcesContent":["import { AXFormatOptions } from '@acorex/core/format';\n\nexport interface AXCurrencyFormatterOptions extends AXFormatOptions {\n locale?: string;\n currency?: string;\n}\n\ndeclare module '@acorex/core/format' {\n interface AXFormatOptionsMap {\n currency: AXCurrencyFormatterOptions;\n }\n}\n\n// @Injectable()\n// export class AXCurrencyFormatter implements AXFormatter {\n\n// get name(): string {\n// return 'currency';\n// }\n\n// format(value: number, options: AXCurrencyFormatterOptions): string {\n// return value.toLocaleString(options.locale, { style: 'currency', currency: options.currency });\n// }\n// }\n","import { inject, Injectable, InjectionToken } from '@angular/core';\nimport { AXLocaleProfile } from './locale.types';\n\n// Record of locale code → loader function (returns profile or Promise<profile>)\nexport type AXLocaleProfileProviderResult = Record<string, () => Promise<AXLocaleProfile> | AXLocaleProfile>;\n\nexport interface AXLocaleProfileProvider {\n provide(): Promise<AXLocaleProfileProviderResult>;\n}\n\nexport const AX_LOCALE_PROFILE_PROVIDERS = new InjectionToken<AXLocaleProfileProvider[]>(\n 'AX_LOCALE_PROFILE_PROVIDERS',\n {\n providedIn: 'root',\n factory: () => [new AXLocaleProfileProviderDefault()],\n },\n);\n\n// ✅ Lazy-loaded default provider\nexport class AXLocaleProfileProviderDefault implements AXLocaleProfileProvider {\n async provide(): Promise<AXLocaleProfileProviderResult> {\n return {\n 'en-AU': () => import('./profiles/en-AU.profile').then((m) => m.AXAULocaleProfile),\n 'en-US': () => import('./profiles/en-US.profile').then((m) => m.AXUSLocaleProfile),\n 'fa-IR': () => import('./profiles/fa-IR.profile').then((m) => m.AXIRLocaleProfile),\n };\n }\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXLocaleProfileProviderService {\n private providers: AXLocaleProfileProvider[] = inject(AX_LOCALE_PROFILE_PROVIDERS);\n\n private registry = new Map<string, () => Promise<AXLocaleProfile>>();\n private resolvedCache = new Map<string, AXLocaleProfile>();\n private isInitialized = false;\n\n private async init(): Promise<void> {\n if (this.isInitialized) return;\n\n for (const provider of this.providers) {\n const result: AXLocaleProfileProviderResult = await provider.provide();\n\n for (const [localeCode, loaderFn] of Object.entries(result)) {\n if (typeof loaderFn === 'function') {\n this.registry.set(localeCode, async () => {\n const profile = await loaderFn();\n return profile;\n });\n } else {\n console.warn(`[AXLocaleService] Profile for \"${localeCode}\" is not a function. Skipped.`);\n }\n }\n }\n\n this.isInitialized = true;\n }\n\n /**\n * Returns all available locale profiles by loading each registered provider.\n *\n * @returns Promise<AXLocaleProfile[]>\n */\n\n public async getList(): Promise<AXLocaleProfile[]> {\n await this.init();\n\n const profiles: AXLocaleProfile[] = [];\n\n for (const localeCode of this.registry.keys()) {\n const profile = await this.getByLocale(localeCode);\n if (profile) profiles.push(profile);\n }\n\n return profiles;\n }\n\n /**\n * Loads or returns from cache the locale profile associated with the given code.\n *\n * @param localeCode - The locale code to resolve.\n * @returns Promise<AXLocaleProfile | undefined>\n */\n\n public async getByLocale(localeCode: string): Promise<AXLocaleProfile | undefined> {\n await this.init();\n\n // If already loaded, return from cache\n if (this.resolvedCache.has(localeCode)) {\n return this.resolvedCache.get(localeCode);\n }\n\n // Otherwise, try to load it\n const loader = this.registry.get(localeCode);\n if (!loader) {\n console.warn(`[AXLocaleService] No profile loader found for locale: \"${localeCode}\"`);\n return undefined;\n }\n\n const profile = await loader();\n this.resolvedCache.set(localeCode, profile);\n return profile;\n }\n\n /**\n * Clears caches and reloads all providers.\n *\n * @returns Promise<void>\n */\n\n public async reload(): Promise<void> {\n this.registry.clear();\n this.resolvedCache.clear();\n this.isInitialized = false;\n await this.init();\n }\n\n /**\n * Indicates whether a loader has been registered for the given locale code.\n *\n * @param localeCode - The locale code to check.\n * @returns boolean - True if a loader exists.\n */\n\n public has(localeCode: string): boolean {\n return this.registry.has(localeCode);\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface AXLocaleConfig {\n default: string;\n}\n\nexport const AX_LOCALE_CONFIG = new InjectionToken<AXLocaleConfig>('AX_LOCALE_CONFIG', {\n providedIn: 'root',\n factory: () => {\n return {\n default: 'en-US',\n };\n },\n});\n","import { AXFormatModule } from '@acorex/core/format';\nimport { NgModule } from '@angular/core';\n\n@NgModule({\n imports: [\n AXFormatModule.forChild({\n formatters: [],\n }),\n ],\n})\nexport class AXLocaleModule {}\n","import { AXLocaleProfile } from '../locale.types';\n\nexport const AXUSLocaleProfile: AXLocaleProfile = {\n localeInfo: {\n code: 'en-US',\n language: 'en',\n region: 'US',\n timezone: 'America/New_York',\n },\n calendar: {\n system: 'gregorian',\n week: {\n startsOn: 0, // Sunday\n weekends: [0, 6], // Sunday + Saturday\n },\n clock: {\n format24Hour: false,\n },\n },\n formats: {\n date: {\n short: 'MM/DD/YY',\n medium: 'MM/DD/YYYY',\n long: 'MMMM DD, YYYY',\n full: 'dddd, MMMM DD, YYYY',\n },\n time: {\n short: 'hh:mm A',\n medium: 'hh:mm:ss A',\n long: 'hh:mm:ss A Z',\n full: 'hh:mm:ss A ZZZZ',\n },\n datetime: {\n short: 'MM/DD/YY hh:mm A',\n medium: 'MM/DD/YYYY hh:mm:ss A',\n long: 'MMMM DD, YYYY hh:mm:ss A Z',\n full: 'dddd, MMMM DD, YYYY hh:mm:ss A ZZZZ',\n },\n numbers: {\n decimalPattern: '1,000.00',\n currency: {\n code: 'USD',\n },\n },\n contacts: {\n phone: '(000) 000-0000',\n postalCode: '00000',\n },\n },\n units: {\n temperature: 'fahrenheit',\n distance: 'miles',\n weight: 'pounds',\n volume: 'gallons',\n speed: 'mph',\n area: 'square-feet',\n },\n i18nMeta: {\n rtl: false,\n fallbackLocales: ['en-US'],\n supportedLanguages: ['en-US'],\n },\n};\n","import { Injectable, inject, signal } from '@angular/core';\nimport { AXLocaleProfileProviderService } from './locale-profile-provider.service';\nimport { AXLocaleProfile } from './locale.types';\n\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { cloneDeep, merge, set } from 'lodash-es';\nimport { AX_LOCALE_CONFIG } from './locale.config';\nimport { AXUSLocaleProfile } from './profiles/en-US.profile';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXLocaleService {\n private provider = inject(AXLocaleProfileProviderService);\n private config = inject(AX_LOCALE_CONFIG);\n\n private _activeProfile = signal<AXLocaleProfile>(AXUSLocaleProfile);\n public activeProfile = this._activeProfile.asReadonly();\n\n public profileChanged$ = toObservable(this._activeProfile);\n\n private originalProfile: AXLocaleProfile = cloneDeep(AXUSLocaleProfile);\n\n /**\n * Loads and activates a locale profile by its code (e.g., 'en-US', 'fa-IR').\n *\n * @param localeCode - Locale identifier to load.\n * @returns Promise<void> - Resolves when the profile is loaded and activated.\n */\n\n public async setProfile(localeCode: string): Promise<void> {\n const profile = await this.provider.getByLocale(localeCode);\n if (profile) {\n this.originalProfile = cloneDeep(profile);\n this._activeProfile.set(cloneDeep(profile));\n } else {\n console.warn(`[AXLocaleService] Locale not found: ${localeCode}`);\n }\n }\n\n /**\n *\n */\n constructor() {\n this.setProfile(this.config.default);\n }\n\n /**\n * Applies overrides to the active profile using a deep-merge object.\n *\n * @param profile - Partial profile object whose properties override the active profile.\n * @returns void\n */\n\n public apply(profile: Partial<AXLocaleProfile>): void;\n\n /**\n * Applies a single value override at the given path (dot notation).\n *\n * @param path - Dot-notated path (e.g., 'formats.date.short').\n * @param value - The value to set at the path.\n * @returns void\n */\n\n public apply(path: string, value: any): void;\n\n public apply(arg1: any, arg2?: any): void {\n const current = this.activeProfile();\n if (!current) {\n console.warn('[AXLocaleService] No active profile found');\n return;\n }\n\n const updated = cloneDeep(current);\n\n if (typeof arg1 === 'string' && arg2 !== undefined) {\n // Overload: updateProfile('formats.date.full', 'YYYY-MM-DD')\n set(updated, arg1, arg2);\n } else if (typeof arg1 === 'object') {\n // Overload: updateProfile({ formats: { date: { short: '...' } } })\n merge(updated, arg1);\n } else {\n console.warn('[AXLocaleService] Invalid arguments passed to updateProfile()');\n return;\n }\n }\n\n /**\n * Resets the active profile to its original loaded state (clears overrides).\n *\n * @returns void\n */\n\n public reset(): void {\n if (this.originalProfile) {\n this._activeProfile.set(cloneDeep(this.originalProfile));\n }\n }\n}\n","import { AXLocaleProfile } from '../locale.types';\n\nexport const AXIRLocaleProfile: AXLocaleProfile = {\n localeInfo: {\n code: 'fa-IR',\n language: 'fa',\n region: 'IR',\n timezone: 'Asia/Tehran',\n },\n calendar: {\n system: 'solar-hijri',\n week: {\n startsOn: 6, // Saturday\n weekends: [5], // Friday\n },\n clock: {\n format24Hour: true,\n },\n },\n formats: {\n date: {\n short: 'YY/MM/DD',\n medium: 'YYYY/MM/DD',\n long: 'dddd، D MMMM YYYY',\n full: 'dddd، D MMMM YYYY',\n },\n time: {\n short: 'HH:mm',\n medium: 'HH:mm:ss',\n long: 'HH:mm:ss Z',\n full: 'HH:mm:ss ZZZZ',\n },\n datetime: {\n short: 'YY/MM/DD HH:mm',\n medium: 'YYYY/MM/DD HH:mm:ss',\n long: 'dddd، D MMMM YYYY HH:mm:ss Z',\n full: 'dddd، D MMMM YYYY HH:mm:ss ZZZZ',\n },\n numbers: {\n decimalPattern: '1٬000٫00',\n currency: {\n code: 'IRR',\n },\n },\n contacts: {\n phone: '09XX XXX XXXX',\n postalCode: 'XXXXX-XXXXX',\n },\n },\n units: {\n temperature: 'celsius',\n distance: 'kilometers',\n weight: 'kilograms',\n volume: 'liters',\n speed: 'kmh',\n area: 'square-meters',\n },\n i18nMeta: {\n rtl: true,\n fallbackLocales: ['en-US'],\n supportedLanguages: ['fa-IR', 'en-US'],\n },\n};\n","import { AXLocaleProfile } from '../locale.types';\n\nexport const AXAULocaleProfile: AXLocaleProfile = {\n localeInfo: {\n code: 'en-AU',\n language: 'en',\n region: 'AU',\n timezone: 'Australia/Sydney',\n },\n calendar: {\n system: 'gregorian',\n week: {\n startsOn: 1, // Monday\n weekends: [0, 6], // Sunday + Saturday\n },\n clock: {\n format24Hour: true,\n },\n },\n formats: {\n date: {\n short: 'DD/MM/YY',\n medium: 'DD/MM/YYYY',\n long: 'DD MMMM YYYY',\n full: 'dddd, DD MMMM YYYY',\n },\n time: {\n short: 'HH:mm',\n medium: 'HH:mm:ss',\n long: 'HH:mm:ss Z',\n full: 'HH:mm:ss ZZZZ',\n },\n datetime: {\n short: 'DD/MM/YY HH:mm',\n medium: 'DD/MM/YYYY HH:mm:ss',\n long: 'DD MMMM YYYY HH:mm:ss Z',\n full: 'dddd, DD MMMM YYYY HH:mm:ss ZZZZ',\n },\n numbers: {\n decimalPattern: '1,000.00',\n currency: {\n code: 'AUD',\n },\n },\n contacts: {\n phone: '04XX XXX XXX',\n postalCode: '0000',\n },\n },\n\n units: {\n temperature: 'celsius',\n distance: 'kilometers',\n weight: 'kilograms',\n volume: 'liters',\n speed: 'kmh',\n area: 'square-meters',\n },\n\n i18nMeta: {\n rtl: false,\n fallbackLocales: ['en-US'],\n supportedLanguages: ['en-AU'],\n },\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-core-locale.mjs","sources":["../../../../packages/core/locale/src/lib/formatters/currency.formatter.ts","../../../../packages/core/locale/src/lib/locale-profile-provider.service.ts","../../../../packages/core/locale/src/lib/locale.config.ts","../../../../packages/core/locale/src/lib/locale.module.ts","../../../../packages/core/locale/src/lib/profiles/en-AU.profile.ts","../../../../packages/core/locale/src/lib/profiles/en-US.profile.ts","../../../../packages/core/locale/src/lib/profiles/fa-IR.profile.ts","../../../../packages/core/locale/src/lib/locale.service.ts","../../../../packages/core/locale/src/acorex-core-locale.ts"],"sourcesContent":["import { AXFormatOptions } from '@acorex/core/format';\n\nexport interface AXCurrencyFormatterOptions extends AXFormatOptions {\n locale?: string;\n currency?: string;\n}\n\ndeclare module '@acorex/core/format' {\n interface AXFormatOptionsMap {\n currency: AXCurrencyFormatterOptions;\n }\n}\n\n// @Injectable()\n// export class AXCurrencyFormatter implements AXFormatter {\n\n// get name(): string {\n// return 'currency';\n// }\n\n// format(value: number, options: AXCurrencyFormatterOptions): string {\n// return value.toLocaleString(options.locale, { style: 'currency', currency: options.currency });\n// }\n// }\n","import { inject, Injectable, InjectionToken } from '@angular/core';\nimport { AXLocaleProfile } from './locale.types';\n\n// Record of locale code → loader function (returns profile or Promise<profile>)\nexport type AXLocaleProfileProviderResult = Record<string, () => Promise<AXLocaleProfile> | AXLocaleProfile>;\n\nexport interface AXLocaleProfileProvider {\n provide(): Promise<AXLocaleProfileProviderResult>;\n}\n\nexport const AX_LOCALE_PROFILE_PROVIDERS = new InjectionToken<AXLocaleProfileProvider[]>(\n 'AX_LOCALE_PROFILE_PROVIDERS',\n {\n providedIn: 'root',\n factory: () => [new AXLocaleProfileProviderDefault()],\n },\n);\n\n// ✅ Lazy-loaded default provider\nexport class AXLocaleProfileProviderDefault implements AXLocaleProfileProvider {\n async provide(): Promise<AXLocaleProfileProviderResult> {\n return {\n 'en-AU': () => import('./profiles/en-AU.profile').then((m) => m.AXAULocaleProfile),\n 'en-US': () => import('./profiles/en-US.profile').then((m) => m.AXUSLocaleProfile),\n 'fa-IR': () => import('./profiles/fa-IR.profile').then((m) => m.AXIRLocaleProfile),\n };\n }\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXLocaleProfileProviderService {\n private providers: AXLocaleProfileProvider[] = inject(AX_LOCALE_PROFILE_PROVIDERS);\n\n private registry = new Map<string, () => Promise<AXLocaleProfile>>();\n private resolvedCache = new Map<string, AXLocaleProfile>();\n private isInitialized = false;\n\n private async init(): Promise<void> {\n if (this.isInitialized) return;\n\n for (const provider of this.providers) {\n const result: AXLocaleProfileProviderResult = await provider.provide();\n\n for (const [localeCode, loaderFn] of Object.entries(result)) {\n if (typeof loaderFn === 'function') {\n this.registry.set(localeCode, async () => {\n const profile = await loaderFn();\n return profile;\n });\n } else {\n console.warn(`[AXLocaleService] Profile for \"${localeCode}\" is not a function. Skipped.`);\n }\n }\n }\n\n this.isInitialized = true;\n }\n\n /**\n * Returns all available locale profiles by loading each registered provider.\n *\n * @returns Promise<AXLocaleProfile[]>\n */\n\n public async getList(): Promise<AXLocaleProfile[]> {\n await this.init();\n\n const profiles: AXLocaleProfile[] = [];\n\n for (const localeCode of this.registry.keys()) {\n const profile = await this.getByLocale(localeCode);\n if (profile) profiles.push(profile);\n }\n\n return profiles;\n }\n\n /**\n * Loads or returns from cache the locale profile associated with the given code.\n *\n * @param localeCode - The locale code to resolve.\n * @returns Promise<AXLocaleProfile | undefined>\n */\n\n public async getByLocale(localeCode: string): Promise<AXLocaleProfile | undefined> {\n await this.init();\n\n // If already loaded, return from cache\n if (this.resolvedCache.has(localeCode)) {\n return this.resolvedCache.get(localeCode);\n }\n\n // Otherwise, try to load it\n const loader = this.registry.get(localeCode);\n if (!loader) {\n console.warn(`[AXLocaleService] No profile loader found for locale: \"${localeCode}\"`);\n return undefined;\n }\n\n const profile = await loader();\n this.resolvedCache.set(localeCode, profile);\n return profile;\n }\n\n /**\n * Clears caches and reloads all providers.\n *\n * @returns Promise<void>\n */\n\n public async reload(): Promise<void> {\n this.registry.clear();\n this.resolvedCache.clear();\n this.isInitialized = false;\n await this.init();\n }\n\n /**\n * Indicates whether a loader has been registered for the given locale code.\n *\n * @param localeCode - The locale code to check.\n * @returns boolean - True if a loader exists.\n */\n\n public has(localeCode: string): boolean {\n return this.registry.has(localeCode);\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface AXLocaleConfig {\n default: string;\n}\n\nexport const AX_LOCALE_CONFIG = new InjectionToken<AXLocaleConfig>('AX_LOCALE_CONFIG', {\n providedIn: 'root',\n factory: () => {\n return {\n default: 'en-US',\n };\n },\n});\n","import { AXFormatModule } from '@acorex/core/format';\nimport { NgModule } from '@angular/core';\n\n@NgModule({\n imports: [\n AXFormatModule.forChild({\n formatters: [],\n }),\n ],\n})\nexport class AXLocaleModule {}\n","import { AXLocaleProfile } from '../locale.types';\n\nexport const AXAULocaleProfile: AXLocaleProfile = {\n localeInfo: {\n code: 'en-AU',\n language: 'en',\n region: 'AU',\n timezone: 'Australia/Sydney',\n },\n calendar: {\n system: 'gregorian',\n week: {\n startsOn: 1, // Monday\n weekends: [0, 6], // Sunday + Saturday\n },\n clock: {\n format24Hour: true,\n },\n },\n formats: {\n date: {\n short: 'DD/MM/YY',\n medium: 'DD/MM/YYYY',\n long: 'DD MMMM YYYY',\n full: 'dddd, DD MMMM YYYY',\n },\n time: {\n short: 'HH:mm',\n medium: 'HH:mm:ss',\n long: 'HH:mm:ss Z',\n full: 'HH:mm:ss ZZZZ',\n },\n datetime: {\n short: 'DD/MM/YY HH:mm',\n medium: 'DD/MM/YYYY HH:mm:ss',\n long: 'DD MMMM YYYY HH:mm:ss Z',\n full: 'dddd, DD MMMM YYYY HH:mm:ss ZZZZ',\n },\n numbers: {\n decimalPattern: '1,000.00',\n currency: {\n code: 'AUD',\n },\n },\n contacts: {\n phone: '04XX XXX XXX',\n postalCode: '0000',\n },\n },\n\n units: {\n temperature: 'celsius',\n distance: 'kilometers',\n weight: 'kilograms',\n volume: 'liters',\n speed: 'kmh',\n area: 'square-meters',\n },\n\n i18nMeta: {\n rtl: false,\n fallbackLocales: ['en-US'],\n supportedLanguages: ['en-AU'],\n },\n};\n","import { AXLocaleProfile } from '../locale.types';\n\nexport const AXUSLocaleProfile: AXLocaleProfile = {\n localeInfo: {\n code: 'en-US',\n language: 'en',\n region: 'US',\n timezone: 'America/New_York',\n },\n calendar: {\n system: 'gregorian',\n week: {\n startsOn: 0, // Sunday\n weekends: [0, 6], // Sunday + Saturday\n },\n clock: {\n format24Hour: false,\n },\n },\n formats: {\n date: {\n short: 'MM/DD/YY',\n medium: 'MM/DD/YYYY',\n long: 'MMMM DD, YYYY',\n full: 'dddd, MMMM DD, YYYY',\n },\n time: {\n short: 'hh:mm A',\n medium: 'hh:mm:ss A',\n long: 'hh:mm:ss A Z',\n full: 'hh:mm:ss A ZZZZ',\n },\n datetime: {\n short: 'MM/DD/YY hh:mm A',\n medium: 'MM/DD/YYYY hh:mm:ss A',\n long: 'MMMM DD, YYYY hh:mm:ss A Z',\n full: 'dddd, MMMM DD, YYYY hh:mm:ss A ZZZZ',\n },\n numbers: {\n decimalPattern: '1,000.00',\n currency: {\n code: 'USD',\n },\n },\n contacts: {\n phone: '(000) 000-0000',\n postalCode: '00000',\n },\n },\n units: {\n temperature: 'fahrenheit',\n distance: 'miles',\n weight: 'pounds',\n volume: 'gallons',\n speed: 'mph',\n area: 'square-feet',\n },\n i18nMeta: {\n rtl: false,\n fallbackLocales: ['en-US'],\n supportedLanguages: ['en-US'],\n },\n};\n","import { AXLocaleProfile } from '../locale.types';\n\nexport const AXIRLocaleProfile: AXLocaleProfile = {\n localeInfo: {\n code: 'fa-IR',\n language: 'fa',\n region: 'IR',\n timezone: 'Asia/Tehran',\n },\n calendar: {\n system: 'solar-hijri',\n week: {\n startsOn: 6, // Saturday\n weekends: [5], // Friday\n },\n clock: {\n format24Hour: true,\n },\n },\n formats: {\n date: {\n short: 'YY/MM/DD',\n medium: 'YYYY/MM/DD',\n long: 'dddd، D MMMM YYYY',\n full: 'dddd، D MMMM YYYY',\n },\n time: {\n short: 'HH:mm',\n medium: 'HH:mm:ss',\n long: 'HH:mm:ss Z',\n full: 'HH:mm:ss ZZZZ',\n },\n datetime: {\n short: 'YY/MM/DD HH:mm',\n medium: 'YYYY/MM/DD HH:mm:ss',\n long: 'dddd، D MMMM YYYY HH:mm:ss Z',\n full: 'dddd، D MMMM YYYY HH:mm:ss ZZZZ',\n },\n numbers: {\n decimalPattern: '1٬000٫00',\n currency: {\n code: 'IRR',\n },\n },\n contacts: {\n phone: '09XX XXX XXXX',\n postalCode: 'XXXXX-XXXXX',\n },\n },\n units: {\n temperature: 'celsius',\n distance: 'kilometers',\n weight: 'kilograms',\n volume: 'liters',\n speed: 'kmh',\n area: 'square-meters',\n },\n i18nMeta: {\n rtl: true,\n fallbackLocales: ['en-US'],\n supportedLanguages: ['fa-IR', 'en-US'],\n },\n};\n","import { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport { computed, Injectable, inject, PLATFORM_ID, signal } from '@angular/core';\nimport { AXLocaleProfileProviderService } from './locale-profile-provider.service';\nimport { AXLocaleProfile } from './locale.types';\n\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { cloneDeep, merge, set } from 'lodash-es';\nimport { AX_LOCALE_CONFIG } from './locale.config';\nimport { AXAULocaleProfile } from './profiles/en-AU.profile';\nimport { AXUSLocaleProfile } from './profiles/en-US.profile';\nimport { AXIRLocaleProfile } from './profiles/fa-IR.profile';\n\nconst BUILTIN_LOCALE_PROFILES: Record<string, AXLocaleProfile> = {\n 'en-US': AXUSLocaleProfile,\n 'en-AU': AXAULocaleProfile,\n 'fa-IR': AXIRLocaleProfile,\n};\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXLocaleService {\n private provider = inject(AXLocaleProfileProviderService);\n private config = inject(AX_LOCALE_CONFIG);\n private document = inject(DOCUMENT);\n private platformId = inject(PLATFORM_ID);\n\n private _activeProfile = signal<AXLocaleProfile>(AXUSLocaleProfile);\n public activeProfile = this._activeProfile.asReadonly();\n\n /** Whether the active locale uses right-to-left layout. */\n public readonly isRtl = computed(() => !!this._activeProfile()?.i18nMeta?.rtl);\n\n public profileChanged$ = toObservable(this._activeProfile);\n\n private originalProfile: AXLocaleProfile = cloneDeep(AXUSLocaleProfile);\n\n /**\n * Loads and activates a locale profile by its code (e.g., 'en-US', 'fa-IR').\n *\n * @param localeCode - Locale identifier to load.\n * @returns Promise<void> - Resolves when the profile is loaded and activated.\n */\n\n public async setProfile(localeCode: string): Promise<void> {\n const profile = await this.provider.getByLocale(localeCode);\n if (profile) {\n this.originalProfile = cloneDeep(profile);\n this._activeProfile.set(cloneDeep(profile));\n this.applyDocumentDirection(profile);\n } else {\n console.warn(`[AXLocaleService] Locale not found: ${localeCode}`);\n }\n }\n\n private applyDocumentDirection(profile: AXLocaleProfile): void {\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n const isRtl = !!profile.i18nMeta?.rtl;\n this.document.documentElement.setAttribute('dir', isRtl ? 'rtl' : 'ltr');\n this.document.documentElement.setAttribute('lang', profile.localeInfo.language);\n }\n\n /**\n *\n */\n constructor() {\n const defaultCode = this.config.default;\n const builtinProfile = BUILTIN_LOCALE_PROFILES[defaultCode];\n\n if (builtinProfile) {\n this.originalProfile = cloneDeep(builtinProfile);\n this._activeProfile.set(cloneDeep(builtinProfile));\n this.applyDocumentDirection(builtinProfile);\n void this.provider.getByLocale(defaultCode);\n return;\n }\n\n this.applyDocumentDirection(this._activeProfile());\n void this.setProfile(defaultCode);\n }\n\n /**\n * Applies overrides to the active profile using a deep-merge object.\n *\n * @param profile - Partial profile object whose properties override the active profile.\n * @returns void\n */\n\n public apply(profile: Partial<AXLocaleProfile>): void;\n\n /**\n * Applies a single value override at the given path (dot notation).\n *\n * @param path - Dot-notated path (e.g., 'formats.date.short').\n * @param value - The value to set at the path.\n * @returns void\n */\n\n public apply(path: string, value: any): void;\n\n public apply(arg1: any, arg2?: any): void {\n const current = this.activeProfile();\n if (!current) {\n console.warn('[AXLocaleService] No active profile found');\n return;\n }\n\n const updated = cloneDeep(current);\n\n if (typeof arg1 === 'string' && arg2 !== undefined) {\n // Overload: updateProfile('formats.date.full', 'YYYY-MM-DD')\n set(updated, arg1, arg2);\n } else if (typeof arg1 === 'object') {\n // Overload: updateProfile({ formats: { date: { short: '...' } } })\n merge(updated, arg1);\n } else {\n console.warn('[AXLocaleService] Invalid arguments passed to updateProfile()');\n return;\n }\n }\n\n /**\n * Resets the active profile to its original loaded state (clears overrides).\n *\n * @returns void\n */\n\n public reset(): void {\n if (this.originalProfile) {\n const profile = cloneDeep(this.originalProfile);\n this._activeProfile.set(profile);\n this.applyDocumentDirection(profile);\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -143,7 +143,7 @@ class AXUploadTask {
143
143
  class AXNetworkService {
144
144
  constructor() {
145
145
  this.http = inject(HttpClient);
146
- this._status = signal(true, ...(ngDevMode ? [{ debugName: "_status" }] : []));
146
+ this._status = signal(true, ...(ngDevMode ? [{ debugName: "_status" }] : /* istanbul ignore next */ []));
147
147
  this.status = this._status.asReadonly();
148
148
  if (isBrowser()) {
149
149
  // Only subscribe to these events if on the browser platform
@@ -210,10 +210,10 @@ class AXNetworkService {
210
210
  const events = this.http.request(request);
211
211
  return new AXDownloadTask(events);
212
212
  }
213
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXNetworkService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
214
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXNetworkService, providedIn: 'root' }); }
213
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXNetworkService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
214
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXNetworkService, providedIn: 'root' }); }
215
215
  }
216
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXNetworkService, decorators: [{
216
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXNetworkService, decorators: [{
217
217
  type: Injectable,
218
218
  args: [{ providedIn: 'root' }]
219
219
  }], ctorParameters: () => [] });
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-core-network.mjs","sources":["../../../../packages/core/network/src/lib/network.types.ts","../../../../packages/core/network/src/lib/download-task.ts","../../../../packages/core/network/src/lib/upload-task.ts","../../../../packages/core/network/src/lib/network.service.ts","../../../../packages/core/network/src/acorex-core-network.ts"],"sourcesContent":["export enum AXUploadStatus {\n Uploading = 'Uploading...',\n UploadComplete = 'Upload complete',\n StartingUpload = 'Starting upload',\n UploadFailed = 'Upload failed',\n UploadCanceled = 'Upload Canceled',\n}\n\nexport type AXUploadResponse<T> = {\n progress: number;\n bytesTransferred: number;\n totalBytes: number;\n status: AXUploadStatus;\n result?: T;\n message?: string;\n};\n\nexport enum AXDownloadStatus {\n Downloading = 'Downloading...',\n DownloadComplete = 'Download complete',\n StartingDownload = 'Starting download',\n DownloadFailed = 'Download failed',\n}\n\nexport type AXDownloadResponse = {\n progress: number;\n bytesReceived: number;\n totalBytes: number;\n status: AXDownloadStatus;\n data?: Blob; // or any appropriate type based on your specific use case\n};\n","import { HttpEvent, HttpEventType } from '@angular/common/http';\nimport { Observable, Subject } from 'rxjs';\nimport { map, takeUntil } from 'rxjs/operators';\nimport { AXDownloadResponse, AXDownloadStatus } from './network.types'; // Ensure correct import path\n\nexport class AXDownloadTask {\n private cancelSignal = new Subject<void>();\n\n constructor(private observable: Observable<HttpEvent<any>>) {}\n\n get events(): Observable<AXDownloadResponse> {\n return this.observable.pipe(\n takeUntil(this.cancelSignal),\n map((event) => this.handleEvent(event)),\n );\n }\n\n private handleEvent(event: HttpEvent<any>): AXDownloadResponse {\n switch (event.type) {\n case HttpEventType.DownloadProgress: {\n const percentDone = Math.round((100 * event.loaded) / (event.total ?? event.loaded));\n return {\n progress: percentDone,\n bytesReceived: event.loaded,\n totalBytes: event.total ?? 0,\n status: AXDownloadStatus.Downloading,\n };\n }\n\n case HttpEventType.Response:\n return {\n progress: 100,\n bytesReceived: event.body.size,\n totalBytes: event.body.size,\n status: AXDownloadStatus.DownloadComplete,\n data: event.body,\n };\n\n default:\n return {\n progress: 0,\n bytesReceived: 0,\n totalBytes: 0,\n status: AXDownloadStatus.StartingDownload,\n };\n }\n }\n\n cancel() {\n this.cancelSignal.next();\n this.cancelSignal.complete();\n }\n}\n","import { HttpClient, HttpEvent, HttpEventType, HttpRequest } from '@angular/common/http';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { AXUploadResponse, AXUploadStatus } from './network.types'; // Ensure correct import path\n\nexport class AXUploadTask<T> {\n private cancelSignal = new Subject<void>();\n public events = new BehaviorSubject<AXUploadResponse<T>>({\n progress: 0,\n bytesTransferred: 0,\n totalBytes: this.totalFileSize,\n status: AXUploadStatus.StartingUpload,\n });\n\n constructor(\n private http: HttpClient,\n private request: HttpRequest<T>,\n private totalFileSize: number,\n ) {}\n\n private handleEvent(event: HttpEvent<any>, failedMessage?: string): AXUploadResponse<T> {\n switch (event.type) {\n case HttpEventType.Sent:\n case HttpEventType.ResponseHeader:\n return {\n progress: 0,\n bytesTransferred: 0,\n totalBytes: this.totalFileSize,\n status: AXUploadStatus.StartingUpload,\n };\n\n case HttpEventType.UploadProgress:\n case HttpEventType.DownloadProgress: {\n const percentDone = Math.round((100 * event.loaded) / (this.totalFileSize || event.total));\n\n return {\n progress: percentDone,\n bytesTransferred: event.loaded,\n totalBytes: this.totalFileSize || event.total,\n status: AXUploadStatus.Uploading,\n };\n }\n\n case HttpEventType.Response:\n return {\n progress: 100,\n bytesTransferred: this.totalFileSize,\n totalBytes: this.totalFileSize,\n status: AXUploadStatus.UploadComplete,\n result: event.body,\n };\n\n case HttpEventType.User:\n return {\n progress: 0,\n bytesTransferred: this.totalFileSize,\n totalBytes: this.totalFileSize,\n status: AXUploadStatus.UploadCanceled,\n };\n default:\n return {\n progress: 0,\n bytesTransferred: 0,\n totalBytes: this.totalFileSize,\n status: AXUploadStatus.UploadFailed,\n message: failedMessage,\n };\n }\n }\n\n cancel() {\n this.cancelSignal.next();\n this.cancelSignal.complete();\n }\n\n start() {\n this.http\n .request(this.request)\n .pipe(takeUntil(this.cancelSignal))\n .subscribe({\n error: (error) => {\n this.events.next(this.handleEvent({ type: -1 } as any, error.statusText));\n },\n next: (event) => {\n this.events.next(this.handleEvent(event));\n },\n });\n }\n}\n","import { isBrowser } from '@acorex/core/platform';\nimport { HttpClient, HttpRequest } from '@angular/common/http';\nimport { Injectable, inject, signal } from '@angular/core';\nimport { fromEvent, map, merge, startWith } from 'rxjs';\nimport { AXDownloadTask } from './download-task';\nimport { AXUploadTask } from './upload-task';\n\n@Injectable({ providedIn: 'root' })\nexport class AXNetworkService {\n private http = inject(HttpClient);\n\n private _status = signal<boolean>(true);\n\n public readonly status = this._status.asReadonly();\n\n constructor() {\n if (isBrowser()) {\n // Only subscribe to these events if on the browser platform\n const onlineEvent = fromEvent(window, 'online').pipe(map(() => true));\n const offlineEvent = fromEvent(window, 'offline').pipe(map(() => false));\n\n merge(onlineEvent, offlineEvent)\n .pipe(startWith(navigator.onLine))\n .subscribe((c) => {\n this._status.set(c);\n });\n }\n }\n\n // Overload signatures\n upload<T>(url: string, formData: FormData): AXUploadTask<T>;\n upload<T>(request: HttpRequest<any>): AXUploadTask<T>;\n\n // Unified method handling both types of inputs\n upload<T>(arg1: string | HttpRequest<any>, arg2?: FormData): AXUploadTask<T> {\n let request: HttpRequest<any>;\n let totalFilesSize = 0;\n\n if (typeof arg1 === 'string' && arg2 instanceof FormData) {\n // Calculate total file size\n arg2.forEach((value) => {\n if (value instanceof File) {\n totalFilesSize += value.size;\n }\n });\n request = new HttpRequest('POST', arg1, arg2, {\n reportProgress: true,\n responseType: 'json',\n });\n } else if (arg1 instanceof HttpRequest) {\n if (arg1.body instanceof FormData) {\n // Calculate total file size\n arg1.body.forEach((value) => {\n if (value instanceof File) {\n totalFilesSize += value.size;\n }\n });\n }\n request = arg1.clone({\n reportProgress: true,\n responseType: arg1.responseType || 'json',\n });\n } else {\n throw new Error('Invalid arguments for upload method.');\n }\n\n return new AXUploadTask<T>(this.http, request, totalFilesSize);\n }\n\n // Overload signatures\n download(url: string): AXDownloadTask;\n download(request: HttpRequest<Blob>): AXDownloadTask;\n\n // Unified method handling both types of inputs\n download(arg: string | HttpRequest<Blob>): AXDownloadTask {\n let request: HttpRequest<Blob>;\n\n if (typeof arg === 'string') {\n request = new HttpRequest('GET', arg, {\n reportProgress: true,\n responseType: 'blob',\n });\n } else {\n request = new HttpRequest(arg.method, arg.url, arg.body, {\n ...arg,\n reportProgress: true,\n responseType: 'blob',\n });\n }\n\n const events = this.http.request<Blob>(request);\n return new AXDownloadTask(events);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["map"],"mappings":"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"}
1
+ {"version":3,"file":"acorex-core-network.mjs","sources":["../../../../packages/core/network/src/lib/network.types.ts","../../../../packages/core/network/src/lib/download-task.ts","../../../../packages/core/network/src/lib/upload-task.ts","../../../../packages/core/network/src/lib/network.service.ts","../../../../packages/core/network/src/acorex-core-network.ts"],"sourcesContent":["export enum AXUploadStatus {\n Uploading = 'Uploading...',\n UploadComplete = 'Upload complete',\n StartingUpload = 'Starting upload',\n UploadFailed = 'Upload failed',\n UploadCanceled = 'Upload Canceled',\n}\n\nexport type AXUploadResponse<T> = {\n progress: number;\n bytesTransferred: number;\n totalBytes: number;\n status: AXUploadStatus;\n result?: T;\n message?: string;\n};\n\nexport enum AXDownloadStatus {\n Downloading = 'Downloading...',\n DownloadComplete = 'Download complete',\n StartingDownload = 'Starting download',\n DownloadFailed = 'Download failed',\n}\n\nexport type AXDownloadResponse = {\n progress: number;\n bytesReceived: number;\n totalBytes: number;\n status: AXDownloadStatus;\n data?: Blob; // or any appropriate type based on your specific use case\n};\n","import { HttpEvent, HttpEventType } from '@angular/common/http';\nimport { Observable, Subject } from 'rxjs';\nimport { map, takeUntil } from 'rxjs/operators';\nimport { AXDownloadResponse, AXDownloadStatus } from './network.types'; // Ensure correct import path\n\nexport class AXDownloadTask {\n private cancelSignal = new Subject<void>();\n\n constructor(private observable: Observable<HttpEvent<any>>) {}\n\n get events(): Observable<AXDownloadResponse> {\n return this.observable.pipe(\n takeUntil(this.cancelSignal),\n map((event) => this.handleEvent(event)),\n );\n }\n\n private handleEvent(event: HttpEvent<any>): AXDownloadResponse {\n switch (event.type) {\n case HttpEventType.DownloadProgress: {\n const percentDone = Math.round((100 * event.loaded) / (event.total ?? event.loaded));\n return {\n progress: percentDone,\n bytesReceived: event.loaded,\n totalBytes: event.total ?? 0,\n status: AXDownloadStatus.Downloading,\n };\n }\n\n case HttpEventType.Response:\n return {\n progress: 100,\n bytesReceived: event.body.size,\n totalBytes: event.body.size,\n status: AXDownloadStatus.DownloadComplete,\n data: event.body,\n };\n\n default:\n return {\n progress: 0,\n bytesReceived: 0,\n totalBytes: 0,\n status: AXDownloadStatus.StartingDownload,\n };\n }\n }\n\n cancel() {\n this.cancelSignal.next();\n this.cancelSignal.complete();\n }\n}\n","import { HttpClient, HttpEvent, HttpEventType, HttpRequest } from '@angular/common/http';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { AXUploadResponse, AXUploadStatus } from './network.types'; // Ensure correct import path\n\nexport class AXUploadTask<T> {\n private cancelSignal = new Subject<void>();\n public events = new BehaviorSubject<AXUploadResponse<T>>({\n progress: 0,\n bytesTransferred: 0,\n totalBytes: this.totalFileSize,\n status: AXUploadStatus.StartingUpload,\n });\n\n constructor(\n private http: HttpClient,\n private request: HttpRequest<T>,\n private totalFileSize: number,\n ) {}\n\n private handleEvent(event: HttpEvent<any>, failedMessage?: string): AXUploadResponse<T> {\n switch (event.type) {\n case HttpEventType.Sent:\n case HttpEventType.ResponseHeader:\n return {\n progress: 0,\n bytesTransferred: 0,\n totalBytes: this.totalFileSize,\n status: AXUploadStatus.StartingUpload,\n };\n\n case HttpEventType.UploadProgress:\n case HttpEventType.DownloadProgress: {\n const percentDone = Math.round((100 * event.loaded) / (this.totalFileSize || event.total));\n\n return {\n progress: percentDone,\n bytesTransferred: event.loaded,\n totalBytes: this.totalFileSize || event.total,\n status: AXUploadStatus.Uploading,\n };\n }\n\n case HttpEventType.Response:\n return {\n progress: 100,\n bytesTransferred: this.totalFileSize,\n totalBytes: this.totalFileSize,\n status: AXUploadStatus.UploadComplete,\n result: event.body,\n };\n\n case HttpEventType.User:\n return {\n progress: 0,\n bytesTransferred: this.totalFileSize,\n totalBytes: this.totalFileSize,\n status: AXUploadStatus.UploadCanceled,\n };\n default:\n return {\n progress: 0,\n bytesTransferred: 0,\n totalBytes: this.totalFileSize,\n status: AXUploadStatus.UploadFailed,\n message: failedMessage,\n };\n }\n }\n\n cancel() {\n this.cancelSignal.next();\n this.cancelSignal.complete();\n }\n\n start() {\n this.http\n .request(this.request)\n .pipe(takeUntil(this.cancelSignal))\n .subscribe({\n error: (error) => {\n this.events.next(this.handleEvent({ type: -1 } as any, error.statusText));\n },\n next: (event) => {\n this.events.next(this.handleEvent(event));\n },\n });\n }\n}\n","import { isBrowser } from '@acorex/core/platform';\nimport { HttpClient, HttpRequest } from '@angular/common/http';\nimport { Injectable, inject, signal } from '@angular/core';\nimport { fromEvent, map, merge, startWith } from 'rxjs';\nimport { AXDownloadTask } from './download-task';\nimport { AXUploadTask } from './upload-task';\n\n@Injectable({ providedIn: 'root' })\nexport class AXNetworkService {\n private http = inject(HttpClient);\n\n private _status = signal<boolean>(true);\n\n public readonly status = this._status.asReadonly();\n\n constructor() {\n if (isBrowser()) {\n // Only subscribe to these events if on the browser platform\n const onlineEvent = fromEvent(window, 'online').pipe(map(() => true));\n const offlineEvent = fromEvent(window, 'offline').pipe(map(() => false));\n\n merge(onlineEvent, offlineEvent)\n .pipe(startWith(navigator.onLine))\n .subscribe((c) => {\n this._status.set(c);\n });\n }\n }\n\n // Overload signatures\n upload<T>(url: string, formData: FormData): AXUploadTask<T>;\n upload<T>(request: HttpRequest<any>): AXUploadTask<T>;\n\n // Unified method handling both types of inputs\n upload<T>(arg1: string | HttpRequest<any>, arg2?: FormData): AXUploadTask<T> {\n let request: HttpRequest<any>;\n let totalFilesSize = 0;\n\n if (typeof arg1 === 'string' && arg2 instanceof FormData) {\n // Calculate total file size\n arg2.forEach((value) => {\n if (value instanceof File) {\n totalFilesSize += value.size;\n }\n });\n request = new HttpRequest('POST', arg1, arg2, {\n reportProgress: true,\n responseType: 'json',\n });\n } else if (arg1 instanceof HttpRequest) {\n if (arg1.body instanceof FormData) {\n // Calculate total file size\n arg1.body.forEach((value) => {\n if (value instanceof File) {\n totalFilesSize += value.size;\n }\n });\n }\n request = arg1.clone({\n reportProgress: true,\n responseType: arg1.responseType || 'json',\n });\n } else {\n throw new Error('Invalid arguments for upload method.');\n }\n\n return new AXUploadTask<T>(this.http, request, totalFilesSize);\n }\n\n // Overload signatures\n download(url: string): AXDownloadTask;\n download(request: HttpRequest<Blob>): AXDownloadTask;\n\n // Unified method handling both types of inputs\n download(arg: string | HttpRequest<Blob>): AXDownloadTask {\n let request: HttpRequest<Blob>;\n\n if (typeof arg === 'string') {\n request = new HttpRequest('GET', arg, {\n reportProgress: true,\n responseType: 'blob',\n });\n } else {\n request = new HttpRequest(arg.method, arg.url, arg.body, {\n ...arg,\n reportProgress: true,\n responseType: 'blob',\n });\n }\n\n const events = this.http.request<Blob>(request);\n return new AXDownloadTask(events);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["map"],"mappings":";;;;;;;IAAY;AAAZ,CAAA,UAAY,cAAc,EAAA;AACxB,IAAA,cAAA,CAAA,WAAA,CAAA,GAAA,cAA0B;AAC1B,IAAA,cAAA,CAAA,gBAAA,CAAA,GAAA,iBAAkC;AAClC,IAAA,cAAA,CAAA,gBAAA,CAAA,GAAA,iBAAkC;AAClC,IAAA,cAAA,CAAA,cAAA,CAAA,GAAA,eAA8B;AAC9B,IAAA,cAAA,CAAA,gBAAA,CAAA,GAAA,iBAAkC;AACpC,CAAC,EANW,cAAc,KAAd,cAAc,GAAA,EAAA,CAAA,CAAA;IAiBd;AAAZ,CAAA,UAAY,gBAAgB,EAAA;AAC1B,IAAA,gBAAA,CAAA,aAAA,CAAA,GAAA,gBAA8B;AAC9B,IAAA,gBAAA,CAAA,kBAAA,CAAA,GAAA,mBAAsC;AACtC,IAAA,gBAAA,CAAA,kBAAA,CAAA,GAAA,mBAAsC;AACtC,IAAA,gBAAA,CAAA,gBAAA,CAAA,GAAA,iBAAkC;AACpC,CAAC,EALW,gBAAgB,KAAhB,gBAAgB,GAAA,EAAA,CAAA,CAAA;;MCZf,cAAc,CAAA;AAGzB,IAAA,WAAA,CAAoB,UAAsC,EAAA;QAAtC,IAAA,CAAA,UAAU,GAAV,UAAU;AAFtB,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,OAAO,EAAQ;IAEmB;AAE7D,IAAA,IAAI,MAAM,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CACzB,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,EAC5B,GAAG,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CACxC;IACH;AAEQ,IAAA,WAAW,CAAC,KAAqB,EAAA;AACvC,QAAA,QAAQ,KAAK,CAAC,IAAI;AAChB,YAAA,KAAK,aAAa,CAAC,gBAAgB,EAAE;gBACnC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;gBACpF,OAAO;AACL,oBAAA,QAAQ,EAAE,WAAW;oBACrB,aAAa,EAAE,KAAK,CAAC,MAAM;AAC3B,oBAAA,UAAU,EAAE,KAAK,CAAC,KAAK,IAAI,CAAC;oBAC5B,MAAM,EAAE,gBAAgB,CAAC,WAAW;iBACrC;YACH;YAEA,KAAK,aAAa,CAAC,QAAQ;gBACzB,OAAO;AACL,oBAAA,QAAQ,EAAE,GAAG;AACb,oBAAA,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI;AAC9B,oBAAA,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI;oBAC3B,MAAM,EAAE,gBAAgB,CAAC,gBAAgB;oBACzC,IAAI,EAAE,KAAK,CAAC,IAAI;iBACjB;AAEH,YAAA;gBACE,OAAO;AACL,oBAAA,QAAQ,EAAE,CAAC;AACX,oBAAA,aAAa,EAAE,CAAC;AAChB,oBAAA,UAAU,EAAE,CAAC;oBACb,MAAM,EAAE,gBAAgB,CAAC,gBAAgB;iBAC1C;;IAEP;IAEA,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;AACxB,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE;IAC9B;AACD;;MC/CY,YAAY,CAAA;AASvB,IAAA,WAAA,CACU,IAAgB,EAChB,OAAuB,EACvB,aAAqB,EAAA;QAFrB,IAAA,CAAA,IAAI,GAAJ,IAAI;QACJ,IAAA,CAAA,OAAO,GAAP,OAAO;QACP,IAAA,CAAA,aAAa,GAAb,aAAa;AAXf,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,OAAO,EAAQ;QACnC,IAAA,CAAA,MAAM,GAAG,IAAI,eAAe,CAAsB;AACvD,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,gBAAgB,EAAE,CAAC;YACnB,UAAU,EAAE,IAAI,CAAC,aAAa;YAC9B,MAAM,EAAE,cAAc,CAAC,cAAc;AACtC,SAAA,CAAC;IAMC;IAEK,WAAW,CAAC,KAAqB,EAAE,aAAsB,EAAA;AAC/D,QAAA,QAAQ,KAAK,CAAC,IAAI;YAChB,KAAK,aAAa,CAAC,IAAI;YACvB,KAAK,aAAa,CAAC,cAAc;gBAC/B,OAAO;AACL,oBAAA,QAAQ,EAAE,CAAC;AACX,oBAAA,gBAAgB,EAAE,CAAC;oBACnB,UAAU,EAAE,IAAI,CAAC,aAAa;oBAC9B,MAAM,EAAE,cAAc,CAAC,cAAc;iBACtC;YAEH,KAAK,aAAa,CAAC,cAAc;AACjC,YAAA,KAAK,aAAa,CAAC,gBAAgB,EAAE;gBACnC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,aAAa,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;gBAE1F,OAAO;AACL,oBAAA,QAAQ,EAAE,WAAW;oBACrB,gBAAgB,EAAE,KAAK,CAAC,MAAM;AAC9B,oBAAA,UAAU,EAAE,IAAI,CAAC,aAAa,IAAI,KAAK,CAAC,KAAK;oBAC7C,MAAM,EAAE,cAAc,CAAC,SAAS;iBACjC;YACH;YAEA,KAAK,aAAa,CAAC,QAAQ;gBACzB,OAAO;AACL,oBAAA,QAAQ,EAAE,GAAG;oBACb,gBAAgB,EAAE,IAAI,CAAC,aAAa;oBACpC,UAAU,EAAE,IAAI,CAAC,aAAa;oBAC9B,MAAM,EAAE,cAAc,CAAC,cAAc;oBACrC,MAAM,EAAE,KAAK,CAAC,IAAI;iBACnB;YAEH,KAAK,aAAa,CAAC,IAAI;gBACrB,OAAO;AACL,oBAAA,QAAQ,EAAE,CAAC;oBACX,gBAAgB,EAAE,IAAI,CAAC,aAAa;oBACpC,UAAU,EAAE,IAAI,CAAC,aAAa;oBAC9B,MAAM,EAAE,cAAc,CAAC,cAAc;iBACtC;AACH,YAAA;gBACE,OAAO;AACL,oBAAA,QAAQ,EAAE,CAAC;AACX,oBAAA,gBAAgB,EAAE,CAAC;oBACnB,UAAU,EAAE,IAAI,CAAC,aAAa;oBAC9B,MAAM,EAAE,cAAc,CAAC,YAAY;AACnC,oBAAA,OAAO,EAAE,aAAa;iBACvB;;IAEP;IAEA,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;AACxB,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE;IAC9B;IAEA,KAAK,GAAA;AACH,QAAA,IAAI,CAAC;AACF,aAAA,OAAO,CAAC,IAAI,CAAC,OAAO;AACpB,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC;AACjC,aAAA,SAAS,CAAC;AACT,YAAA,KAAK,EAAE,CAAC,KAAK,KAAI;gBACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAS,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;YAC3E,CAAC;AACD,YAAA,IAAI,EAAE,CAAC,KAAK,KAAI;AACd,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YAC3C,CAAC;AACF,SAAA,CAAC;IACN;AACD;;MChFY,gBAAgB,CAAA;AAO3B,IAAA,WAAA,GAAA;AANQ,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC;AAEzB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAU,IAAI,8EAAC;AAEvB,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;QAGhD,IAAI,SAAS,EAAE,EAAE;;AAEf,YAAA,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,IAAI,CAACA,KAAG,CAAC,MAAM,IAAI,CAAC,CAAC;AACrE,YAAA,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,IAAI,CAACA,KAAG,CAAC,MAAM,KAAK,CAAC,CAAC;AAExE,YAAA,KAAK,CAAC,WAAW,EAAE,YAAY;AAC5B,iBAAA,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC;AAChC,iBAAA,SAAS,CAAC,CAAC,CAAC,KAAI;AACf,gBAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;AACrB,YAAA,CAAC,CAAC;QACN;IACF;;IAOA,MAAM,CAAI,IAA+B,EAAE,IAAe,EAAA;AACxD,QAAA,IAAI,OAAyB;QAC7B,IAAI,cAAc,GAAG,CAAC;QAEtB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,YAAY,QAAQ,EAAE;;AAExD,YAAA,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;AACrB,gBAAA,IAAI,KAAK,YAAY,IAAI,EAAE;AACzB,oBAAA,cAAc,IAAI,KAAK,CAAC,IAAI;gBAC9B;AACF,YAAA,CAAC,CAAC;YACF,OAAO,GAAG,IAAI,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE;AAC5C,gBAAA,cAAc,EAAE,IAAI;AACpB,gBAAA,YAAY,EAAE,MAAM;AACrB,aAAA,CAAC;QACJ;AAAO,aAAA,IAAI,IAAI,YAAY,WAAW,EAAE;AACtC,YAAA,IAAI,IAAI,CAAC,IAAI,YAAY,QAAQ,EAAE;;gBAEjC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;AAC1B,oBAAA,IAAI,KAAK,YAAY,IAAI,EAAE;AACzB,wBAAA,cAAc,IAAI,KAAK,CAAC,IAAI;oBAC9B;AACF,gBAAA,CAAC,CAAC;YACJ;AACA,YAAA,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC;AACnB,gBAAA,cAAc,EAAE,IAAI;AACpB,gBAAA,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,MAAM;AAC1C,aAAA,CAAC;QACJ;aAAO;AACL,YAAA,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC;QACzD;QAEA,OAAO,IAAI,YAAY,CAAI,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,cAAc,CAAC;IAChE;;AAOA,IAAA,QAAQ,CAAC,GAA+B,EAAA;AACtC,QAAA,IAAI,OAA0B;AAE9B,QAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AAC3B,YAAA,OAAO,GAAG,IAAI,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE;AACpC,gBAAA,cAAc,EAAE,IAAI;AACpB,gBAAA,YAAY,EAAE,MAAM;AACrB,aAAA,CAAC;QACJ;aAAO;AACL,YAAA,OAAO,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE;AACvD,gBAAA,GAAG,GAAG;AACN,gBAAA,cAAc,EAAE,IAAI;AACpB,gBAAA,YAAY,EAAE,MAAM;AACrB,aAAA,CAAC;QACJ;QAEA,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAO,OAAO,CAAC;AAC/C,QAAA,OAAO,IAAI,cAAc,CAAC,MAAM,CAAC;IACnC;8GApFW,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cADH,MAAM,EAAA,CAAA,CAAA;;2FACnB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACPlC;;AAEG;;;;"}
@@ -30,10 +30,10 @@ class AXSafePipe {
30
30
  throw new Error(`Invalid safe type specified: ${type}`);
31
31
  }
32
32
  }
33
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXSafePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
34
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.1.3", ngImport: i0, type: AXSafePipe, isStandalone: true, name: "safe" }); }
33
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXSafePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
34
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.9", ngImport: i0, type: AXSafePipe, isStandalone: true, name: "safe" }); }
35
35
  }
36
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXSafePipe, decorators: [{
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXSafePipe, decorators: [{
37
37
  type: Pipe,
38
38
  args: [{
39
39
  name: 'safe',
@@ -93,7 +93,7 @@ class AXPlatformEvent {
93
93
  class AXPlatform {
94
94
  isDark() {
95
95
  if (isPlatformBrowser(this.platformID)) {
96
- return this.document.documentElement.classList.contains('dark');
96
+ return this.document.documentElement.classList.contains('ax-dark');
97
97
  }
98
98
  return false;
99
99
  }
@@ -240,7 +240,7 @@ class AXPlatform {
240
240
  this.click = new Subject();
241
241
  this.scroll = new Subject();
242
242
  this.themeMode$ = new BehaviorSubject('system');
243
- this.themeMode = signal('system', ...(ngDevMode ? [{ debugName: "themeMode" }] : []));
243
+ this.themeMode = signal('system', ...(ngDevMode ? [{ debugName: "themeMode" }] : /* istanbul ignore next */ []));
244
244
  this.document = inject(DOCUMENT);
245
245
  this.platformID = inject(PLATFORM_ID);
246
246
  if (isPlatformBrowser(this.platformID)) {
@@ -316,10 +316,10 @@ class AXPlatform {
316
316
  });
317
317
  }
318
318
  }
319
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXPlatform, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
320
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXPlatform, providedIn: 'root' }); }
319
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPlatform, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
320
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPlatform, providedIn: 'root' }); }
321
321
  }
322
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXPlatform, decorators: [{
322
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPlatform, decorators: [{
323
323
  type: Injectable,
324
324
  args: [{
325
325
  providedIn: 'root',