@acorex/core 19.12.0 → 19.13.0-next.1
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/date-time/index.d.ts +5 -5
- package/date-time/lib/calendar.service.d.ts +8 -3
- package/date-time/lib/dateTime.config.d.ts +1 -1
- package/date-time/lib/datetime.pipe.d.ts +2 -1
- package/date-time/lib/{datetime.class.d.ts → datetime.types.d.ts} +2 -2
- package/date-time/lib/formatters/date.formatter.d.ts +12 -0
- package/date-time/lib/formatters/{datetime-formatter.d.ts → datetime.formatter.d.ts} +3 -1
- package/date-time/lib/formatters/time.formatter.d.ts +12 -0
- package/date-time/lib/{georgian.calendar.d.ts → gregorian.calendar.d.ts} +2 -2
- package/date-time/lib/{jalali.calendar.d.ts → solar-hijri.calendar.d.ts} +8 -8
- package/events/index.d.ts +0 -1
- package/fesm2022/acorex-core-components.mjs +3 -3
- package/fesm2022/acorex-core-config.mjs +3 -3
- package/fesm2022/acorex-core-date-time.mjs +282 -119
- package/fesm2022/acorex-core-date-time.mjs.map +1 -1
- package/fesm2022/acorex-core-events.mjs +4 -10
- package/fesm2022/acorex-core-events.mjs.map +1 -1
- package/fesm2022/acorex-core-file.mjs +10 -10
- package/fesm2022/acorex-core-format.mjs +78 -63
- package/fesm2022/acorex-core-format.mjs.map +1 -1
- package/fesm2022/acorex-core-image.mjs +3 -3
- package/fesm2022/acorex-core-locale-en-AU.profile-BW-_9tgT.mjs +64 -0
- package/fesm2022/acorex-core-locale-en-AU.profile-BW-_9tgT.mjs.map +1 -0
- package/fesm2022/acorex-core-locale.mjs +341 -0
- package/fesm2022/acorex-core-locale.mjs.map +1 -0
- package/fesm2022/acorex-core-network.mjs +3 -3
- package/fesm2022/acorex-core-pipes.mjs +3 -3
- package/fesm2022/acorex-core-platform.mjs +3 -3
- package/fesm2022/acorex-core-storage.mjs +9 -9
- package/fesm2022/acorex-core-translation.mjs +246 -206
- package/fesm2022/acorex-core-translation.mjs.map +1 -1
- package/fesm2022/acorex-core-utils.mjs +143 -18
- package/fesm2022/acorex-core-utils.mjs.map +1 -1
- package/fesm2022/acorex-core-validation.mjs +40 -40
- package/format/index.d.ts +2 -2
- package/format/lib/format.directive.d.ts +1 -1
- package/format/lib/format.module.d.ts +3 -3
- package/format/lib/format.service.d.ts +8 -7
- package/locale/README.md +3 -0
- package/locale/index.d.ts +8 -0
- package/locale/lib/formatters/currency.formatter.d.ts +10 -0
- package/locale/lib/locale-profile-provider.service.d.ts +24 -0
- package/locale/lib/locale.config.d.ts +5 -0
- package/locale/lib/locale.module.d.ts +7 -0
- package/locale/lib/locale.service.d.ts +20 -0
- package/locale/lib/locale.types.d.ts +61 -0
- package/locale/lib/profiles/en-AU.profile.d.ts +2 -0
- package/locale/lib/profiles/en-US.profile.d.ts +2 -0
- package/locale/lib/profiles/fa-IR.profile.d.ts +2 -0
- package/package.json +5 -1
- package/translation/index.d.ts +1 -1
- package/translation/lib/translation-loader.service.d.ts +20 -0
- package/translation/lib/translation.config.d.ts +19 -6
- package/translation/lib/translation.loader.d.ts +2 -2
- package/translation/lib/translation.parser.d.ts +7 -0
- package/translation/lib/translation.resolver.d.ts +9 -0
- package/translation/lib/translation.service.d.ts +12 -31
- package/translation/lib/translation.types.d.ts +8 -2
- package/translation/lib/translator.pipe.d.ts +0 -2
- package/types/README.md +2 -2
- package/utils/index.d.ts +6 -5
- package/utils/lib/execution.utils.d.ts +33 -0
- package/utils/lib/string.utils.d.ts +4 -0
- package/events/lib/event.type.d.ts +0 -5
- package/i18n/en/common.json +0 -191
- package/i18n/fa/common.json +0 -190
- package/utils/lib/string-util.d.ts +0 -6
- /package/date-time/lib/formatters/{time-duration-formatter.d.ts → time-duration.formatter.d.ts} +0 -0
- /package/date-time/lib/formatters/{timeleft-formatter.d.ts → timeleft.formatter.d.ts} +0 -0
- /package/format/lib/formatters/{number-formatter.d.ts → number.formatter.d.ts} +0 -0
- /package/format/lib/formatters/{string-formatter.d.ts → string.formatter.d.ts} +0 -0
- /package/utils/lib/{color-util.d.ts → color.utils.d.ts} +0 -0
- /package/utils/lib/{drawing-util.d.ts → drawing.utils.d.ts} +0 -0
- /package/utils/lib/{html-util.d.ts → html-utils.d.ts} +0 -0
- /package/utils/lib/{auto-unsubscribe.d.ts → lifecycle-helpers.utils.d.ts} +0 -0
| @@ -0,0 +1,341 @@ | |
| 1 | 
            +
            import * as i0 from '@angular/core';
         | 
| 2 | 
            +
            import { InjectionToken, inject, Injectable, signal, NgModule } from '@angular/core';
         | 
| 3 | 
            +
            import cloneDeep from 'lodash/cloneDeep';
         | 
| 4 | 
            +
            import merge from 'lodash/merge';
         | 
| 5 | 
            +
            import set from 'lodash/set';
         | 
| 6 | 
            +
            import { toObservable } from '@angular/core/rxjs-interop';
         | 
| 7 | 
            +
            import * as i1 from '@acorex/core/format';
         | 
| 8 | 
            +
            import { AXFormatModule } from '@acorex/core/format';
         | 
| 9 | 
            +
             | 
| 10 | 
            +
            const AX_LOCALE_CONFIG = new InjectionToken('AX_LOCALE_CONFIG', {
         | 
| 11 | 
            +
                providedIn: 'root',
         | 
| 12 | 
            +
                factory: () => {
         | 
| 13 | 
            +
                    return {
         | 
| 14 | 
            +
                        default: 'en-US',
         | 
| 15 | 
            +
                    };
         | 
| 16 | 
            +
                },
         | 
| 17 | 
            +
            });
         | 
| 18 | 
            +
             | 
| 19 | 
            +
            const AX_LOCALE_PROFILE_PROVIDERS = new InjectionToken('AX_LOCALE_PROFILE_PROVIDERS', {
         | 
| 20 | 
            +
                providedIn: 'root',
         | 
| 21 | 
            +
                factory: () => [new AXLocaleProfileProviderDefault()],
         | 
| 22 | 
            +
            });
         | 
| 23 | 
            +
            // ✅ Lazy-loaded default provider
         | 
| 24 | 
            +
            class AXLocaleProfileProviderDefault {
         | 
| 25 | 
            +
                async provide() {
         | 
| 26 | 
            +
                    return {
         | 
| 27 | 
            +
                        'en-AU': () => import('./acorex-core-locale-en-AU.profile-BW-_9tgT.mjs').then(m => m.AXAURegionalConfig),
         | 
| 28 | 
            +
                        'en-US': () => Promise.resolve().then(function () { return enUS_profile; }).then(m => m.AXUSLocaleProfile),
         | 
| 29 | 
            +
                        'fa-IR': () => Promise.resolve().then(function () { return faIR_profile; }).then(m => m.AXIRLocaleProfile),
         | 
| 30 | 
            +
                    };
         | 
| 31 | 
            +
                }
         | 
| 32 | 
            +
            }
         | 
| 33 | 
            +
            class AXLocaleProfileProviderService {
         | 
| 34 | 
            +
                constructor() {
         | 
| 35 | 
            +
                    this.providers = inject(AX_LOCALE_PROFILE_PROVIDERS);
         | 
| 36 | 
            +
                    this.registry = new Map();
         | 
| 37 | 
            +
                    this.resolvedCache = new Map();
         | 
| 38 | 
            +
                    this.isInitialized = false;
         | 
| 39 | 
            +
                }
         | 
| 40 | 
            +
                async init() {
         | 
| 41 | 
            +
                    if (this.isInitialized)
         | 
| 42 | 
            +
                        return;
         | 
| 43 | 
            +
                    for (const provider of this.providers) {
         | 
| 44 | 
            +
                        const result = await provider.provide();
         | 
| 45 | 
            +
                        for (const [localeCode, loaderFn] of Object.entries(result)) {
         | 
| 46 | 
            +
                            if (typeof loaderFn === 'function') {
         | 
| 47 | 
            +
                                this.registry.set(localeCode, async () => {
         | 
| 48 | 
            +
                                    const profile = await loaderFn();
         | 
| 49 | 
            +
                                    return profile;
         | 
| 50 | 
            +
                                });
         | 
| 51 | 
            +
                            }
         | 
| 52 | 
            +
                            else {
         | 
| 53 | 
            +
                                console.warn(`[AXLocaleService] Profile for "${localeCode}" is not a function. Skipped.`);
         | 
| 54 | 
            +
                            }
         | 
| 55 | 
            +
                        }
         | 
| 56 | 
            +
                    }
         | 
| 57 | 
            +
                    this.isInitialized = true;
         | 
| 58 | 
            +
                }
         | 
| 59 | 
            +
                async getList() {
         | 
| 60 | 
            +
                    await this.init();
         | 
| 61 | 
            +
                    const profiles = [];
         | 
| 62 | 
            +
                    for (const localeCode of this.registry.keys()) {
         | 
| 63 | 
            +
                        const profile = await this.getByLocale(localeCode);
         | 
| 64 | 
            +
                        if (profile)
         | 
| 65 | 
            +
                            profiles.push(profile);
         | 
| 66 | 
            +
                    }
         | 
| 67 | 
            +
                    return profiles;
         | 
| 68 | 
            +
                }
         | 
| 69 | 
            +
                async getByLocale(localeCode) {
         | 
| 70 | 
            +
                    await this.init();
         | 
| 71 | 
            +
                    // If already loaded, return from cache
         | 
| 72 | 
            +
                    if (this.resolvedCache.has(localeCode)) {
         | 
| 73 | 
            +
                        return this.resolvedCache.get(localeCode);
         | 
| 74 | 
            +
                    }
         | 
| 75 | 
            +
                    // Otherwise, try to load it
         | 
| 76 | 
            +
                    const loader = this.registry.get(localeCode);
         | 
| 77 | 
            +
                    if (!loader) {
         | 
| 78 | 
            +
                        console.warn(`[AXLocaleService] No profile loader found for locale: "${localeCode}"`);
         | 
| 79 | 
            +
                        return undefined;
         | 
| 80 | 
            +
                    }
         | 
| 81 | 
            +
                    const profile = await loader();
         | 
| 82 | 
            +
                    this.resolvedCache.set(localeCode, profile);
         | 
| 83 | 
            +
                    return profile;
         | 
| 84 | 
            +
                }
         | 
| 85 | 
            +
                async reload() {
         | 
| 86 | 
            +
                    this.registry.clear();
         | 
| 87 | 
            +
                    this.resolvedCache.clear();
         | 
| 88 | 
            +
                    this.isInitialized = false;
         | 
| 89 | 
            +
                    await this.init();
         | 
| 90 | 
            +
                }
         | 
| 91 | 
            +
                has(localeCode) {
         | 
| 92 | 
            +
                    return this.registry.has(localeCode);
         | 
| 93 | 
            +
                }
         | 
| 94 | 
            +
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: AXLocaleProfileProviderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
         | 
| 95 | 
            +
                static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: AXLocaleProfileProviderService, providedIn: 'root' }); }
         | 
| 96 | 
            +
            }
         | 
| 97 | 
            +
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: AXLocaleProfileProviderService, decorators: [{
         | 
| 98 | 
            +
                        type: Injectable,
         | 
| 99 | 
            +
                        args: [{
         | 
| 100 | 
            +
                                providedIn: 'root',
         | 
| 101 | 
            +
                            }]
         | 
| 102 | 
            +
                    }] });
         | 
| 103 | 
            +
             | 
| 104 | 
            +
            var AXLocaleEvents;
         | 
| 105 | 
            +
            (function (AXLocaleEvents) {
         | 
| 106 | 
            +
                AXLocaleEvents["AXLocaleChanged"] = "AX_LOCALE_CHANGED";
         | 
| 107 | 
            +
                AXLocaleEvents["AXLocaleLoaded"] = "AX_LOCALE_LOADED";
         | 
| 108 | 
            +
                //
         | 
| 109 | 
            +
                AXLocaleEvents["AXCalendarChanged"] = "AX_CALENDAR_CHANGED";
         | 
| 110 | 
            +
                //
         | 
| 111 | 
            +
                AXLocaleEvents["AXLanguageChanged"] = "AX_LANGUAGE_CHANGED";
         | 
| 112 | 
            +
                AXLocaleEvents["AXLanguageLoaded"] = "AX_LANGUAGE_LOADED";
         | 
| 113 | 
            +
            })(AXLocaleEvents || (AXLocaleEvents = {}));
         | 
| 114 | 
            +
             | 
| 115 | 
            +
            const AXUSLocaleProfile = {
         | 
| 116 | 
            +
                localeInfo: {
         | 
| 117 | 
            +
                    code: 'en-US',
         | 
| 118 | 
            +
                    language: 'en',
         | 
| 119 | 
            +
                    region: 'US',
         | 
| 120 | 
            +
                    timezone: 'America/New_York',
         | 
| 121 | 
            +
                },
         | 
| 122 | 
            +
                calendar: {
         | 
| 123 | 
            +
                    system: 'gregorian',
         | 
| 124 | 
            +
                    week: {
         | 
| 125 | 
            +
                        startsOn: 0, // Sunday
         | 
| 126 | 
            +
                        weekends: [0, 6], // Sunday + Saturday
         | 
| 127 | 
            +
                    },
         | 
| 128 | 
            +
                    clock: {
         | 
| 129 | 
            +
                        format24Hour: false,
         | 
| 130 | 
            +
                    },
         | 
| 131 | 
            +
                },
         | 
| 132 | 
            +
                formats: {
         | 
| 133 | 
            +
                    date: {
         | 
| 134 | 
            +
                        short: 'MM/DD/YY',
         | 
| 135 | 
            +
                        medium: 'MMM DD, YYYY',
         | 
| 136 | 
            +
                        long: 'MMMM DD, YYYY',
         | 
| 137 | 
            +
                        full: 'dddd, MMMM DD, YYYY',
         | 
| 138 | 
            +
                    },
         | 
| 139 | 
            +
                    time: {
         | 
| 140 | 
            +
                        short: 'hh:mm A',
         | 
| 141 | 
            +
                        medium: 'hh:mm:ss A',
         | 
| 142 | 
            +
                        long: 'hh:mm:ss A Z',
         | 
| 143 | 
            +
                        full: 'hh:mm:ss A ZZZZ',
         | 
| 144 | 
            +
                    },
         | 
| 145 | 
            +
                    datetime: {
         | 
| 146 | 
            +
                        short: 'MM/DD/YY hh:mm A',
         | 
| 147 | 
            +
                        medium: 'MMM DD, YYYY hh:mm:ss A',
         | 
| 148 | 
            +
                        long: 'MMMM DD, YYYY hh:mm:ss A Z',
         | 
| 149 | 
            +
                        full: 'dddd, MMMM DD, YYYY hh:mm:ss A ZZZZ',
         | 
| 150 | 
            +
                    },
         | 
| 151 | 
            +
                    numbers: {
         | 
| 152 | 
            +
                        decimalPattern: '1,000.00',
         | 
| 153 | 
            +
                        currency: {
         | 
| 154 | 
            +
                            code: 'USD',
         | 
| 155 | 
            +
                        },
         | 
| 156 | 
            +
                    },
         | 
| 157 | 
            +
                    contacts: {
         | 
| 158 | 
            +
                        phone: '(000) 000-0000',
         | 
| 159 | 
            +
                        postalCode: '00000',
         | 
| 160 | 
            +
                    },
         | 
| 161 | 
            +
                },
         | 
| 162 | 
            +
                units: {
         | 
| 163 | 
            +
                    temperature: 'fahrenheit',
         | 
| 164 | 
            +
                    distance: 'miles',
         | 
| 165 | 
            +
                    weight: 'pounds',
         | 
| 166 | 
            +
                    volume: 'gallons',
         | 
| 167 | 
            +
                    speed: 'mph',
         | 
| 168 | 
            +
                    area: 'square-feet',
         | 
| 169 | 
            +
                },
         | 
| 170 | 
            +
                i18nMeta: {
         | 
| 171 | 
            +
                    rtl: false,
         | 
| 172 | 
            +
                    fallbackLocales: ['en-US'],
         | 
| 173 | 
            +
                    supportedLanguages: ['en-US'],
         | 
| 174 | 
            +
                },
         | 
| 175 | 
            +
            };
         | 
| 176 | 
            +
             | 
| 177 | 
            +
            var enUS_profile = /*#__PURE__*/Object.freeze({
         | 
| 178 | 
            +
                __proto__: null,
         | 
| 179 | 
            +
                AXUSLocaleProfile: AXUSLocaleProfile
         | 
| 180 | 
            +
            });
         | 
| 181 | 
            +
             | 
| 182 | 
            +
            const AXIRLocaleProfile = {
         | 
| 183 | 
            +
                localeInfo: {
         | 
| 184 | 
            +
                    code: 'fa-IR',
         | 
| 185 | 
            +
                    language: 'fa',
         | 
| 186 | 
            +
                    region: 'IR',
         | 
| 187 | 
            +
                    timezone: 'Asia/Tehran',
         | 
| 188 | 
            +
                },
         | 
| 189 | 
            +
                calendar: {
         | 
| 190 | 
            +
                    system: 'solar-hijri',
         | 
| 191 | 
            +
                    week: {
         | 
| 192 | 
            +
                        startsOn: 6, // Saturday
         | 
| 193 | 
            +
                        weekends: [5], // Friday
         | 
| 194 | 
            +
                    },
         | 
| 195 | 
            +
                    clock: {
         | 
| 196 | 
            +
                        format24Hour: true,
         | 
| 197 | 
            +
                    },
         | 
| 198 | 
            +
                },
         | 
| 199 | 
            +
                formats: {
         | 
| 200 | 
            +
                    date: {
         | 
| 201 | 
            +
                        short: 'YY/MM/DD',
         | 
| 202 | 
            +
                        medium: 'YYYY/MM/DD',
         | 
| 203 | 
            +
                        long: 'dddd، D MMMM YYYY',
         | 
| 204 | 
            +
                        full: 'dddd، D MMMM YYYY',
         | 
| 205 | 
            +
                    },
         | 
| 206 | 
            +
                    time: {
         | 
| 207 | 
            +
                        short: 'HH:mm',
         | 
| 208 | 
            +
                        medium: 'HH:mm:ss',
         | 
| 209 | 
            +
                        long: 'HH:mm:ss Z',
         | 
| 210 | 
            +
                        full: 'HH:mm:ss ZZZZ',
         | 
| 211 | 
            +
                    },
         | 
| 212 | 
            +
                    datetime: {
         | 
| 213 | 
            +
                        short: 'YY/MM/DD HH:mm',
         | 
| 214 | 
            +
                        medium: 'YYYY/MM/DD HH:mm:ss',
         | 
| 215 | 
            +
                        long: 'dddd، D MMMM YYYY HH:mm:ss Z',
         | 
| 216 | 
            +
                        full: 'dddd، D MMMM YYYY HH:mm:ss ZZZZ',
         | 
| 217 | 
            +
                    },
         | 
| 218 | 
            +
                    numbers: {
         | 
| 219 | 
            +
                        decimalPattern: '1٬000٫00',
         | 
| 220 | 
            +
                        currency: {
         | 
| 221 | 
            +
                            code: 'IRR',
         | 
| 222 | 
            +
                        },
         | 
| 223 | 
            +
                    },
         | 
| 224 | 
            +
                    contacts: {
         | 
| 225 | 
            +
                        phone: '09XX XXX XXXX',
         | 
| 226 | 
            +
                        postalCode: 'XXXXX-XXXXX',
         | 
| 227 | 
            +
                    },
         | 
| 228 | 
            +
                },
         | 
| 229 | 
            +
                units: {
         | 
| 230 | 
            +
                    temperature: 'celsius',
         | 
| 231 | 
            +
                    distance: 'kilometers',
         | 
| 232 | 
            +
                    weight: 'kilograms',
         | 
| 233 | 
            +
                    volume: 'liters',
         | 
| 234 | 
            +
                    speed: 'km/h',
         | 
| 235 | 
            +
                    area: 'square-meters',
         | 
| 236 | 
            +
                },
         | 
| 237 | 
            +
                i18nMeta: {
         | 
| 238 | 
            +
                    rtl: true,
         | 
| 239 | 
            +
                    fallbackLocales: ['en-IR'],
         | 
| 240 | 
            +
                    supportedLanguages: ['fa-IR', 'en-IR'],
         | 
| 241 | 
            +
                },
         | 
| 242 | 
            +
            };
         | 
| 243 | 
            +
             | 
| 244 | 
            +
            var faIR_profile = /*#__PURE__*/Object.freeze({
         | 
| 245 | 
            +
                __proto__: null,
         | 
| 246 | 
            +
                AXIRLocaleProfile: AXIRLocaleProfile
         | 
| 247 | 
            +
            });
         | 
| 248 | 
            +
             | 
| 249 | 
            +
            class AXLocaleService {
         | 
| 250 | 
            +
                async setProfile(localeCode) {
         | 
| 251 | 
            +
                    const profile = await this.provider.getByLocale(localeCode);
         | 
| 252 | 
            +
                    if (profile) {
         | 
| 253 | 
            +
                        this.originalProfile = cloneDeep(profile);
         | 
| 254 | 
            +
                        this._activeProfile.set(cloneDeep(profile));
         | 
| 255 | 
            +
                    }
         | 
| 256 | 
            +
                    else {
         | 
| 257 | 
            +
                        console.warn(`[AXLocaleService] Locale not found: ${localeCode}`);
         | 
| 258 | 
            +
                    }
         | 
| 259 | 
            +
                }
         | 
| 260 | 
            +
                /**
         | 
| 261 | 
            +
                 *
         | 
| 262 | 
            +
                 */
         | 
| 263 | 
            +
                constructor() {
         | 
| 264 | 
            +
                    this.provider = inject(AXLocaleProfileProviderService);
         | 
| 265 | 
            +
                    this.config = inject(AX_LOCALE_CONFIG);
         | 
| 266 | 
            +
                    this._activeProfile = signal(AXUSLocaleProfile);
         | 
| 267 | 
            +
                    this.activeProfile = this._activeProfile.asReadonly();
         | 
| 268 | 
            +
                    this.profileChanged$ = toObservable(this._activeProfile);
         | 
| 269 | 
            +
                    this.originalProfile = cloneDeep(AXUSLocaleProfile);
         | 
| 270 | 
            +
                    this.setProfile(this.config.default);
         | 
| 271 | 
            +
                }
         | 
| 272 | 
            +
                apply(arg1, arg2) {
         | 
| 273 | 
            +
                    const current = this.activeProfile();
         | 
| 274 | 
            +
                    if (!current) {
         | 
| 275 | 
            +
                        console.warn('[AXLocaleService] No active profile found');
         | 
| 276 | 
            +
                        return;
         | 
| 277 | 
            +
                    }
         | 
| 278 | 
            +
                    ;
         | 
| 279 | 
            +
                    const updated = cloneDeep(current);
         | 
| 280 | 
            +
                    if (typeof arg1 === 'string' && arg2 !== undefined) {
         | 
| 281 | 
            +
                        // Overload: updateProfile('formats.date.full', 'YYYY-MM-DD')
         | 
| 282 | 
            +
                        set(updated, arg1, arg2);
         | 
| 283 | 
            +
                    }
         | 
| 284 | 
            +
                    else if (typeof arg1 === 'object') {
         | 
| 285 | 
            +
                        // Overload: updateProfile({ formats: { date: { short: '...' } } })
         | 
| 286 | 
            +
                        merge(updated, arg1);
         | 
| 287 | 
            +
                    }
         | 
| 288 | 
            +
                    else {
         | 
| 289 | 
            +
                        console.warn('[AXLocaleService] Invalid arguments passed to updateProfile()');
         | 
| 290 | 
            +
                        return;
         | 
| 291 | 
            +
                    }
         | 
| 292 | 
            +
                }
         | 
| 293 | 
            +
                reset() {
         | 
| 294 | 
            +
                    if (this.originalProfile) {
         | 
| 295 | 
            +
                        this._activeProfile.set(cloneDeep(this.originalProfile));
         | 
| 296 | 
            +
                    }
         | 
| 297 | 
            +
                }
         | 
| 298 | 
            +
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: AXLocaleService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
         | 
| 299 | 
            +
                static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: AXLocaleService, providedIn: 'root' }); }
         | 
| 300 | 
            +
            }
         | 
| 301 | 
            +
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: AXLocaleService, decorators: [{
         | 
| 302 | 
            +
                        type: Injectable,
         | 
| 303 | 
            +
                        args: [{
         | 
| 304 | 
            +
                                providedIn: 'root',
         | 
| 305 | 
            +
                            }]
         | 
| 306 | 
            +
                    }], ctorParameters: () => [] });
         | 
| 307 | 
            +
             | 
| 308 | 
            +
            class AXLocaleModule {
         | 
| 309 | 
            +
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: AXLocaleModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
         | 
| 310 | 
            +
                static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.8", ngImport: i0, type: AXLocaleModule, imports: [i1.AXFormatModule] }); }
         | 
| 311 | 
            +
                static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: AXLocaleModule, imports: [AXFormatModule.forChild({
         | 
| 312 | 
            +
                            formatters: [],
         | 
| 313 | 
            +
                        })] }); }
         | 
| 314 | 
            +
            }
         | 
| 315 | 
            +
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: AXLocaleModule, decorators: [{
         | 
| 316 | 
            +
                        type: NgModule,
         | 
| 317 | 
            +
                        args: [{
         | 
| 318 | 
            +
                                imports: [
         | 
| 319 | 
            +
                                    AXFormatModule.forChild({
         | 
| 320 | 
            +
                                        formatters: [],
         | 
| 321 | 
            +
                                    }),
         | 
| 322 | 
            +
                                ],
         | 
| 323 | 
            +
                            }]
         | 
| 324 | 
            +
                    }] });
         | 
| 325 | 
            +
             | 
| 326 | 
            +
            // @Injectable()
         | 
| 327 | 
            +
            // export class AXCurrencyFormatter implements AXFormatter {
         | 
| 328 | 
            +
            //     get name(): string {
         | 
| 329 | 
            +
            //         return 'currency';
         | 
| 330 | 
            +
            //     }
         | 
| 331 | 
            +
            //     format(value: number, options: AXCurrencyFormatterOptions): string {
         | 
| 332 | 
            +
            //         return value.toLocaleString(options.locale, { style: 'currency', currency: options.currency });
         | 
| 333 | 
            +
            //     }
         | 
| 334 | 
            +
            // }
         | 
| 335 | 
            +
             | 
| 336 | 
            +
            /**
         | 
| 337 | 
            +
             * Generated bundle index. Do not edit.
         | 
| 338 | 
            +
             */
         | 
| 339 | 
            +
             | 
| 340 | 
            +
            export { AXIRLocaleProfile, AXLocaleEvents, AXLocaleModule, AXLocaleProfileProviderDefault, AXLocaleProfileProviderService, AXLocaleService, AXUSLocaleProfile, AX_LOCALE_CONFIG, AX_LOCALE_PROFILE_PROVIDERS };
         | 
| 341 | 
            +
            //# sourceMappingURL=acorex-core-locale.mjs.map
         | 
| @@ -0,0 +1 @@ | |
| 1 | 
            +
            {"version":3,"file":"acorex-core-locale.mjs","sources":["../../../../libs/core/locale/src/lib/locale.config.ts","../../../../libs/core/locale/src/lib/locale-profile-provider.service.ts","../../../../libs/core/locale/src/lib/locale.types.ts","../../../../libs/core/locale/src/lib/profiles/en-US.profile.ts","../../../../libs/core/locale/src/lib/profiles/fa-IR.profile.ts","../../../../libs/core/locale/src/lib/locale.service.ts","../../../../libs/core/locale/src/lib/locale.module.ts","../../../../libs/core/locale/src/lib/formatters/currency.formatter.ts","../../../../libs/core/locale/src/acorex-core-locale.ts"],"sourcesContent":["import { InjectionToken } from \"@angular/core\";\n\n\n\nexport interface AXLocaleConfig {\n    default: string;\n}\n\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\n\n\n\n\n\n\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.AXAURegionalConfig),\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\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    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    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    public async reload(): Promise<void> {\n        this.registry.clear();\n        this.resolvedCache.clear();\n        this.isInitialized = false;\n        await this.init();\n    }\n\n    public has(localeCode: string): boolean {\n        return this.registry.has(localeCode);\n    }\n}\n","export interface AXLocaleProfile {\n    localeInfo: {\n        code: string;         // e.g., 'en-US'\n        language: string;     // e.g., 'en'\n        region: string;       // e.g., 'US'\n        timezone: string;     // e.g., 'America/New_York'\n    };\n\n    calendar: {\n        system: 'gregorian' | 'solar-hijri' | string;\n        week: {\n            startsOn: number;    // 0 = Sunday, 1 = Monday\n            weekends: number[];   // e.g., [0, 6]\n        };\n        clock: {\n            format24Hour: boolean;\n        };\n    };\n\n    formats: {\n        date: FormatPattern;\n        time: FormatPattern;\n        datetime: FormatPattern;\n        numbers: {\n            decimalPattern: string;   // e.g., '1,000.00'\n            currency: {\n                code: string;           // e.g., 'USD'\n            };\n        };\n        contacts: {\n            phone: string;            // e.g., '000-000-0000'\n            postalCode: string;       // e.g., '00000'\n        };\n    };\n\n    units?: {\n        temperature: 'celsius' | 'fahrenheit';\n        distance: 'kilometers' | 'miles';\n        weight?: 'kilograms' | 'pounds';\n        volume?: 'liters' | 'gallons';\n        speed?: 'km/h' | 'mph';\n        area?: 'square-meters' | 'square-feet';\n        custom?: Record<string, string>; // Optional: supports domain-specific units\n    };\n\n    i18nMeta?: {\n        fallbackLocales?: string[];     // e.g., ['en']\n        supportedLanguages?: string[];  // e.g., ['en', 'fa']\n        rtl?: boolean;                  // true for RTL languages like Arabic, Persian\n    };\n}\ninterface FormatPattern {\n    short: string;\n    medium: string;\n    long: string;\n    full: string;\n}\n\n\n\nexport enum AXLocaleEvents {\n    AXLocaleChanged = 'AX_LOCALE_CHANGED',\n    AXLocaleLoaded = 'AX_LOCALE_LOADED',\n    //\n    AXCalendarChanged = 'AX_CALENDAR_CHANGED',\n    //\n    AXLanguageChanged = 'AX_LANGUAGE_CHANGED',\n    AXLanguageLoaded = 'AX_LANGUAGE_LOADED',\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: 'MMM 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: 'MMM 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: 'km/h',\n        area: 'square-meters',\n    },\n    i18nMeta: {\n        rtl: true,\n        fallbackLocales: ['en-IR'],\n        supportedLanguages: ['fa-IR', 'en-IR'],\n    },\n};\n","import { Injectable, inject, signal } from '@angular/core';\nimport { AXLocaleProfile } from './locale.types';\nimport { AXLocaleProfileProviderService } from './locale-profile-provider.service';\n\nimport cloneDeep from 'lodash/cloneDeep';\nimport merge from 'lodash/merge';\nimport set from 'lodash/set';\nimport { AXUSLocaleProfile } from './profiles/en-US.profile';\nimport { AX_LOCALE_CONFIG } from './locale.config';\nimport { toObservable } from '@angular/core/rxjs-interop';\n\n@Injectable({\n    providedIn: 'root',\n})\nexport class AXLocaleService {\n    private provider = inject(AXLocaleProfileProviderService);\n    private config = inject(AX_LOCALE_CONFIG);\n\n\n    private _activeProfile = signal<AXLocaleProfile>(AXUSLocaleProfile);\n    public activeProfile = this._activeProfile.asReadonly();\n\n\n    public profileChanged$ = toObservable(this._activeProfile);\n\n    private originalProfile: AXLocaleProfile = cloneDeep(AXUSLocaleProfile);\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    public apply(profile: Partial<AXLocaleProfile>): void;\n    public apply(path: string, value: any): void;\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    public reset(): void {\n        if (this.originalProfile) {\n            this._activeProfile.set(cloneDeep(this.originalProfile));\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\n}\n","import { Injectable } from '@angular/core';\nimport { AXFormatter } from '@acorex/core/format';\nimport { 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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
         | 
| @@ -211,10 +211,10 @@ class AXNetworkService { | |
| 211 211 | 
             
                    const events = this.http.request(request);
         | 
| 212 212 | 
             
                    return new AXDownloadTask(events);
         | 
| 213 213 | 
             
                }
         | 
| 214 | 
            -
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2. | 
| 215 | 
            -
                static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2. | 
| 214 | 
            +
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: AXNetworkService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
         | 
| 215 | 
            +
                static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: AXNetworkService, providedIn: 'root' }); }
         | 
| 216 216 | 
             
            }
         | 
| 217 | 
            -
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2. | 
| 217 | 
            +
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: AXNetworkService, decorators: [{
         | 
| 218 218 | 
             
                        type: Injectable,
         | 
| 219 219 | 
             
                        args: [{ providedIn: 'root' }]
         | 
| 220 220 | 
             
                    }], ctorParameters: () => [] });
         | 
| @@ -24,10 +24,10 @@ class AXSafePipe { | |
| 24 24 | 
             
                            throw new Error(`Invalid safe type specified: ${type}`);
         | 
| 25 25 | 
             
                    }
         | 
| 26 26 | 
             
                }
         | 
| 27 | 
            -
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2. | 
| 28 | 
            -
                static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2. | 
| 27 | 
            +
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: AXSafePipe, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe }); }
         | 
| 28 | 
            +
                static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.8", ngImport: i0, type: AXSafePipe, isStandalone: true, name: "safe" }); }
         | 
| 29 29 | 
             
            }
         | 
| 30 | 
            -
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2. | 
| 30 | 
            +
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: AXSafePipe, decorators: [{
         | 
| 31 31 | 
             
                        type: Pipe,
         | 
| 32 32 | 
             
                        args: [{
         | 
| 33 33 | 
             
                                name: 'safe',
         | 
| @@ -282,10 +282,10 @@ class AXPlatform { | |
| 282 282 | 
             
                        });
         | 
| 283 283 | 
             
                    }
         | 
| 284 284 | 
             
                }
         | 
| 285 | 
            -
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2. | 
| 286 | 
            -
                static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2. | 
| 285 | 
            +
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: AXPlatform, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
         | 
| 286 | 
            +
                static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: AXPlatform, providedIn: 'root' }); }
         | 
| 287 287 | 
             
            }
         | 
| 288 | 
            -
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2. | 
| 288 | 
            +
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: AXPlatform, decorators: [{
         | 
| 289 289 | 
             
                        type: Injectable,
         | 
| 290 290 | 
             
                        args: [{
         | 
| 291 291 | 
             
                                providedIn: 'root',
         | 
| @@ -184,10 +184,10 @@ class AXCookieStorageService { | |
| 184 184 | 
             
                        }
         | 
| 185 185 | 
             
                    }
         | 
| 186 186 | 
             
                }
         | 
| 187 | 
            -
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2. | 
| 188 | 
            -
                static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2. | 
| 187 | 
            +
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: AXCookieStorageService, deps: [{ token: DOCUMENT }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable }); }
         | 
| 188 | 
            +
                static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: AXCookieStorageService }); }
         | 
| 189 189 | 
             
            }
         | 
| 190 | 
            -
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2. | 
| 190 | 
            +
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: AXCookieStorageService, decorators: [{
         | 
| 191 191 | 
             
                        type: Injectable
         | 
| 192 192 | 
             
                    }], ctorParameters: () => [{ type: Document, decorators: [{
         | 
| 193 193 | 
             
                                type: Inject,
         | 
| @@ -242,10 +242,10 @@ class AXLocalStorageService { | |
| 242 242 | 
             
                        return null;
         | 
| 243 243 | 
             
                    }
         | 
| 244 244 | 
             
                }
         | 
| 245 | 
            -
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2. | 
| 246 | 
            -
                static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2. | 
| 245 | 
            +
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: AXLocalStorageService, deps: [{ token: AX_LOCALSTORAGE_SECRET_KEY }], target: i0.ɵɵFactoryTarget.Injectable }); }
         | 
| 246 | 
            +
                static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: AXLocalStorageService }); }
         | 
| 247 247 | 
             
            }
         | 
| 248 | 
            -
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2. | 
| 248 | 
            +
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: AXLocalStorageService, decorators: [{
         | 
| 249 249 | 
             
                        type: Injectable
         | 
| 250 250 | 
             
                    }], ctorParameters: () => [{ type: undefined, decorators: [{
         | 
| 251 251 | 
             
                                type: Inject,
         | 
| @@ -277,10 +277,10 @@ class AXSessionStorageService { | |
| 277 277 | 
             
                        return sessionStorage.removeItem(key);
         | 
| 278 278 | 
             
                    }
         | 
| 279 279 | 
             
                }
         | 
| 280 | 
            -
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2. | 
| 281 | 
            -
                static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2. | 
| 280 | 
            +
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: AXSessionStorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
         | 
| 281 | 
            +
                static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: AXSessionStorageService }); }
         | 
| 282 282 | 
             
            }
         | 
| 283 | 
            -
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2. | 
| 283 | 
            +
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: AXSessionStorageService, decorators: [{
         | 
| 284 284 | 
             
                        type: Injectable
         | 
| 285 285 | 
             
                    }] });
         | 
| 286 286 |  |