@tsi-developpement/tsi-shared-ui 1.9.13 → 1.10.2

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 (31) hide show
  1. package/esm2022/lib/functions/currency-state.functions.mjs +203 -0
  2. package/esm2022/lib/interfaces/pagination/pagination-base.mjs +1 -1
  3. package/esm2022/lib/models/dynamic-form/colonne-personnalisee.mjs +3 -2
  4. package/esm2022/lib/pipes/tsi-currency.pipe.mjs +17 -19
  5. package/esm2022/lib/tsi-components/input-components/editable-grid/editable-grid.component.mjs +3 -3
  6. package/esm2022/lib/tsi-components/input-components/tsi-currency-other-input/tsi-currency-other-input.component.mjs +49 -28
  7. package/esm2022/lib/tsi-components/input-components/tsi-currency-societe-input/tsi-currency-societe-input.component.mjs +46 -28
  8. package/esm2022/lib/tsi-components/output-components/tsi-currency-other-display/tsi-currency-other-display.component.mjs +37 -10
  9. package/esm2022/lib/tsi-components/output-components/tsi-currency-societe-display/tsi-currency-societe-display.component.mjs +33 -40
  10. package/esm2022/lib/tsi-components/output-components/tsi-display-grid/tsi-display-grid.component.mjs +3 -3
  11. package/esm2022/lib/tsi-components/output-components/tsi-generic-grid/tsi-generic-grid.component.mjs +3 -3
  12. package/esm2022/lib/tsi-components/poc/locale-poc/locale-poc.component.mjs +68 -36
  13. package/esm2022/lib/tsi-components/tsi-generic-crud/tsi-generic-crud.component.mjs +35 -15
  14. package/esm2022/lib/tsi-components/tsi-generic-form/tsi-generic-form.component.mjs +1 -1
  15. package/esm2022/lib/tsi-components/tsi-kanban/tsi-kanban.component.mjs +1 -1
  16. package/esm2022/lib/tsi-components/tsi-search-box/tsi-search-box.component.mjs +1 -1
  17. package/fesm2022/tsi-developpement-tsi-shared-ui.mjs +643 -347
  18. package/fesm2022/tsi-developpement-tsi-shared-ui.mjs.map +1 -1
  19. package/lib/consts/app-providers.d.ts +1 -1
  20. package/lib/functions/currency-state.functions.d.ts +80 -0
  21. package/lib/interfaces/pagination/pagination-base.d.ts +1 -0
  22. package/lib/models/dynamic-form/colonne-personnalisee.d.ts +2 -1
  23. package/lib/pipes/tsi-currency.pipe.d.ts +6 -4
  24. package/lib/providers/shared-ui-tsi.provider.d.ts +1 -1
  25. package/lib/tsi-components/input-components/tsi-currency-other-input/tsi-currency-other-input.component.d.ts +15 -10
  26. package/lib/tsi-components/input-components/tsi-currency-societe-input/tsi-currency-societe-input.component.d.ts +13 -10
  27. package/lib/tsi-components/output-components/tsi-currency-other-display/tsi-currency-other-display.component.d.ts +16 -6
  28. package/lib/tsi-components/output-components/tsi-currency-societe-display/tsi-currency-societe-display.component.d.ts +12 -13
  29. package/lib/tsi-components/poc/locale-poc/locale-poc.component.d.ts +39 -21
  30. package/lib/tsi-components/tsi-generic-crud/tsi-generic-crud.component.d.ts +4 -2
  31. package/package.json +1 -1
@@ -0,0 +1,203 @@
1
+ /**
2
+ * Internal currency-state resolution shared by the four currency components
3
+ * (Tsi-Currency-Other-Input/Display, Tsi-Currency-Societe-Input/Display).
4
+ *
5
+ * This module is intentionally NOT re-exported from `functions/index.ts`, so it
6
+ * is an internal implementation detail and not part of the library public API.
7
+ *
8
+ * A currency "state" combines two independent checks:
9
+ * 1. Is the currency code a recognized ISO-4217 code?
10
+ * 2. Does the value carry more decimal places than the currency supports?
11
+ * The result drives a two-tier visual state in the components:
12
+ * - `error` → invalid/missing code, or (inputs) a value that exceeds the
13
+ * currency's decimals and therefore cannot be safely edited;
14
+ * - `warning` → (displays) a value that exceeds the currency's decimals, shown
15
+ * raw so no precision is hidden.
16
+ */
17
+ /**
18
+ * i18n keys resolved by the host app's `LocalizePipe`. Centralized here so the
19
+ * components and the backend translation files (FR/EN/AR) stay in sync.
20
+ */
21
+ export const CurrencyStateKeys = {
22
+ noCurrencySupplied: 'sharedUi-currency-error-noCurrencySupplied',
23
+ invalidCurrencySupplied: 'sharedUi-currency-error-invalidCurrencySupplied',
24
+ valueExceedsDecimalsError: 'sharedUi-currency-error-valueExceedsDecimals',
25
+ valueExceedsDecimalsWarning: 'sharedUi-currency-warning-valueExceedsDecimals',
26
+ };
27
+ /**
28
+ * Placeholders replaced when building a message, so the currency and the decimal
29
+ * figures are named inline. Translations must include the tokens they need
30
+ * (see the FR/EN/AR translation files):
31
+ * - `{devise}` → the currency code
32
+ * - `{decimals}` → the value's decimal-place count (mismatch messages only)
33
+ * - `{allowed}` → the decimals the currency allows (mismatch messages only)
34
+ */
35
+ export const CurrencyPlaceholder = '{devise}';
36
+ export const ValueDecimalsPlaceholder = '{decimals}';
37
+ export const AllowedDecimalsPlaceholder = '{allowed}';
38
+ /**
39
+ * English fallbacks used when a translation key is missing, so a raw key slug is
40
+ * never displayed to the user. Currency-referencing messages embed the
41
+ * placeholders above.
42
+ */
43
+ const Fallbacks = {
44
+ [CurrencyStateKeys.noCurrencySupplied]: 'No currency provided',
45
+ [CurrencyStateKeys.invalidCurrencySupplied]: `Unrecognized currency: ${CurrencyPlaceholder}`,
46
+ [CurrencyStateKeys.valueExceedsDecimalsError]: `This amount has ${ValueDecimalsPlaceholder} decimals but the ${CurrencyPlaceholder} currency allows only ${AllowedDecimalsPlaceholder} — it cannot be edited`,
47
+ [CurrencyStateKeys.valueExceedsDecimalsWarning]: `This amount has ${ValueDecimalsPlaceholder} decimals but the ${CurrencyPlaceholder} currency allows only ${AllowedDecimalsPlaceholder}`,
48
+ };
49
+ const WELL_FORMED_CODE = /^[A-Z]{3}$/;
50
+ /**
51
+ * Memoized set of ISO-4217 codes the runtime recognizes, via
52
+ * `Intl.supportedValuesOf('currency')`. Returns `null` on runtimes that do not
53
+ * support the API, so callers can fall back to a well-formedness check.
54
+ */
55
+ let _supportedCurrencies;
56
+ function getSupportedCurrencies() {
57
+ if (_supportedCurrencies !== undefined) {
58
+ return _supportedCurrencies;
59
+ }
60
+ const intl = Intl;
61
+ if (typeof intl.supportedValuesOf === 'function') {
62
+ try {
63
+ _supportedCurrencies = new Set(intl.supportedValuesOf('currency'));
64
+ }
65
+ catch {
66
+ _supportedCurrencies = null;
67
+ }
68
+ }
69
+ else {
70
+ _supportedCurrencies = null;
71
+ }
72
+ return _supportedCurrencies;
73
+ }
74
+ /**
75
+ * Returns `true` when `code` is a recognized ISO-4217 currency code.
76
+ *
77
+ * Prefers the exact `Intl.supportedValuesOf('currency')` list; on older runtimes
78
+ * falls back to a 3-letter well-formedness check plus `Intl.NumberFormat`.
79
+ * Case-insensitive (the code is upper-cased before checking).
80
+ */
81
+ export function isValidCurrency(code) {
82
+ if (!code) {
83
+ return false;
84
+ }
85
+ const normalized = code.toUpperCase();
86
+ const supported = getSupportedCurrencies();
87
+ if (supported) {
88
+ return supported.has(normalized);
89
+ }
90
+ if (!WELL_FORMED_CODE.test(normalized)) {
91
+ return false;
92
+ }
93
+ try {
94
+ // eslint-disable-next-line no-new
95
+ new Intl.NumberFormat('en', { style: 'currency', currency: normalized });
96
+ return true;
97
+ }
98
+ catch {
99
+ return false;
100
+ }
101
+ }
102
+ /** Number of fraction digits the given currency supports (ISO/locale default). */
103
+ function getCurrencyDecimals(code, locale) {
104
+ try {
105
+ return new Intl.NumberFormat(locale, { style: 'currency', currency: code })
106
+ .resolvedOptions().maximumFractionDigits ?? 2;
107
+ }
108
+ catch {
109
+ return 2;
110
+ }
111
+ }
112
+ /**
113
+ * Counts the number of decimal places carried by a finite number, using its
114
+ * shortest round-trip string representation (handles exponential notation).
115
+ */
116
+ function countDecimals(value) {
117
+ if (!Number.isFinite(value)) {
118
+ return 0;
119
+ }
120
+ const str = Math.abs(value).toString();
121
+ if (str.indexOf('e-') !== -1) {
122
+ const [mantissa, exponent] = str.split('e-');
123
+ const mantissaDecimals = mantissa.includes('.') ? mantissa.split('.')[1].length : 0;
124
+ return mantissaDecimals + Number(exponent);
125
+ }
126
+ const dotIndex = str.indexOf('.');
127
+ return dotIndex === -1 ? 0 : str.length - dotIndex - 1;
128
+ }
129
+ /**
130
+ * Resolves the display state for a (currency code, value) pair.
131
+ *
132
+ * @param code ISO-4217 currency code supplied to the component.
133
+ * @param value the monetary value being shown/edited.
134
+ * @param locale locale used to derive the currency's fraction digits.
135
+ * @param mismatchSeverity severity applied when the value exceeds the currency's
136
+ * decimals: `'error'` for inputs (renders read-only),
137
+ * `'warning'` for displays (renders the raw value).
138
+ */
139
+ export function resolveCurrencyState(code, value, locale, mismatchSeverity) {
140
+ if (!code) {
141
+ return {
142
+ severity: 'error',
143
+ isValid: false,
144
+ tooltipKey: CurrencyStateKeys.noCurrencySupplied,
145
+ isoDecimals: -1,
146
+ };
147
+ }
148
+ const normalized = code.toUpperCase();
149
+ if (!isValidCurrency(normalized)) {
150
+ return {
151
+ severity: 'error',
152
+ isValid: false,
153
+ tooltipKey: CurrencyStateKeys.invalidCurrencySupplied,
154
+ isoDecimals: -1,
155
+ currencyCode: normalized,
156
+ };
157
+ }
158
+ const isoDecimals = getCurrencyDecimals(normalized, locale);
159
+ if (value != null && Number.isFinite(value)) {
160
+ const valueDecimals = countDecimals(value);
161
+ if (valueDecimals > isoDecimals) {
162
+ return {
163
+ severity: mismatchSeverity,
164
+ isValid: true,
165
+ tooltipKey: mismatchSeverity === 'warning'
166
+ ? CurrencyStateKeys.valueExceedsDecimalsWarning
167
+ : CurrencyStateKeys.valueExceedsDecimalsError,
168
+ isoDecimals,
169
+ valueDecimals,
170
+ currencyCode: normalized,
171
+ };
172
+ }
173
+ }
174
+ return {
175
+ severity: 'ok',
176
+ isValid: true,
177
+ tooltipKey: '',
178
+ isoDecimals,
179
+ currencyCode: normalized,
180
+ };
181
+ }
182
+ /**
183
+ * Builds the tooltip message for a resolved state using the supplied `translate`
184
+ * callback (typically `LocalizePipe.transform`). Falls back to a built-in
185
+ * English message when the key resolves to itself (missing translation), so a
186
+ * raw key slug is never shown. Any {@link CurrencyPlaceholder} token in the
187
+ * message is replaced with the currency code, so the offending currency is named
188
+ * inline.
189
+ */
190
+ export function localizeCurrencyState(state, translate) {
191
+ if (state.severity === 'ok' || !state.tooltipKey) {
192
+ return '';
193
+ }
194
+ const translated = translate(state.tooltipKey);
195
+ const message = !translated || translated === state.tooltipKey
196
+ ? (Fallbacks[state.tooltipKey] ?? '')
197
+ : translated;
198
+ return message
199
+ .split(CurrencyPlaceholder).join(state.currencyCode ?? '')
200
+ .split(ValueDecimalsPlaceholder).join(state.valueDecimals != null ? String(state.valueDecimals) : '')
201
+ .split(AllowedDecimalsPlaceholder).join(state.isoDecimals >= 0 ? String(state.isoDecimals) : '');
202
+ }
203
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY3ktc3RhdGUuZnVuY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHNpLXNoYXJlZC11aS9zcmMvbGliL2Z1bmN0aW9ucy9jdXJyZW5jeS1zdGF0ZS5mdW5jdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUg7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUc7SUFDL0Isa0JBQWtCLEVBQUUsNENBQTRDO0lBQ2hFLHVCQUF1QixFQUFFLGlEQUFpRDtJQUMxRSx5QkFBeUIsRUFBRSw4Q0FBOEM7SUFDekUsMkJBQTJCLEVBQUUsZ0RBQWdEO0NBQ3JFLENBQUM7QUFFWDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsVUFBVSxDQUFDO0FBQzlDLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLFlBQVksQ0FBQztBQUNyRCxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxXQUFXLENBQUM7QUFFdEQ7Ozs7R0FJRztBQUNILE1BQU0sU0FBUyxHQUEyQjtJQUN4QyxDQUFDLGlCQUFpQixDQUFDLGtCQUFrQixDQUFDLEVBQUUsc0JBQXNCO0lBQzlELENBQUMsaUJBQWlCLENBQUMsdUJBQXVCLENBQUMsRUFBRSwwQkFBMEIsbUJBQW1CLEVBQUU7SUFDNUYsQ0FBQyxpQkFBaUIsQ0FBQyx5QkFBeUIsQ0FBQyxFQUMzQyxtQkFBbUIsd0JBQXdCLHFCQUFxQixtQkFBbUIseUJBQXlCLDBCQUEwQix3QkFBd0I7SUFDaEssQ0FBQyxpQkFBaUIsQ0FBQywyQkFBMkIsQ0FBQyxFQUM3QyxtQkFBbUIsd0JBQXdCLHFCQUFxQixtQkFBbUIseUJBQXlCLDBCQUEwQixFQUFFO0NBQzNJLENBQUM7QUFtQkYsTUFBTSxnQkFBZ0IsR0FBRyxZQUFZLENBQUM7QUFFdEM7Ozs7R0FJRztBQUNILElBQUksb0JB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QUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7U0FDcEcsS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUNyRyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEludGVybmFsIGN1cnJlbmN5LXN0YXRlIHJlc29sdXRpb24gc2hhcmVkIGJ5IHRoZSBmb3VyIGN1cnJlbmN5IGNvbXBvbmVudHNcclxuICogKFRzaS1DdXJyZW5jeS1PdGhlci1JbnB1dC9EaXNwbGF5LCBUc2ktQ3VycmVuY3ktU29jaWV0ZS1JbnB1dC9EaXNwbGF5KS5cclxuICpcclxuICogVGhpcyBtb2R1bGUgaXMgaW50ZW50aW9uYWxseSBOT1QgcmUtZXhwb3J0ZWQgZnJvbSBgZnVuY3Rpb25zL2luZGV4LnRzYCwgc28gaXRcclxuICogaXMgYW4gaW50ZXJuYWwgaW1wbGVtZW50YXRpb24gZGV0YWlsIGFuZCBub3QgcGFydCBvZiB0aGUgbGlicmFyeSBwdWJsaWMgQVBJLlxyXG4gKlxyXG4gKiBBIGN1cnJlbmN5IFwic3RhdGVcIiBjb21iaW5lcyB0d28gaW5kZXBlbmRlbnQgY2hlY2tzOlxyXG4gKiAgMS4gSXMgdGhlIGN1cnJlbmN5IGNvZGUgYSByZWNvZ25pemVkIElTTy00MjE3IGNvZGU/XHJcbiAqICAyLiBEb2VzIHRoZSB2YWx1ZSBjYXJyeSBtb3JlIGRlY2ltYWwgcGxhY2VzIHRoYW4gdGhlIGN1cnJlbmN5IHN1cHBvcnRzP1xyXG4gKiBUaGUgcmVzdWx0IGRyaXZlcyBhIHR3by10aWVyIHZpc3VhbCBzdGF0ZSBpbiB0aGUgY29tcG9uZW50czpcclxuICogIC0gYGVycm9yYCAgIOKGkiBpbnZhbGlkL21pc3NpbmcgY29kZSwgb3IgKGlucHV0cykgYSB2YWx1ZSB0aGF0IGV4Y2VlZHMgdGhlXHJcbiAqICAgICAgICAgICAgICAgIGN1cnJlbmN5J3MgZGVjaW1hbHMgYW5kIHRoZXJlZm9yZSBjYW5ub3QgYmUgc2FmZWx5IGVkaXRlZDtcclxuICogIC0gYHdhcm5pbmdgIOKGkiAoZGlzcGxheXMpIGEgdmFsdWUgdGhhdCBleGNlZWRzIHRoZSBjdXJyZW5jeSdzIGRlY2ltYWxzLCBzaG93blxyXG4gKiAgICAgICAgICAgICAgICByYXcgc28gbm8gcHJlY2lzaW9uIGlzIGhpZGRlbi5cclxuICovXHJcblxyXG4vKipcclxuICogaTE4biBrZXlzIHJlc29sdmVkIGJ5IHRoZSBob3N0IGFwcCdzIGBMb2NhbGl6ZVBpcGVgLiBDZW50cmFsaXplZCBoZXJlIHNvIHRoZVxyXG4gKiBjb21wb25lbnRzIGFuZCB0aGUgYmFja2VuZCB0cmFuc2xhdGlvbiBmaWxlcyAoRlIvRU4vQVIpIHN0YXkgaW4gc3luYy5cclxuICovXHJcbmV4cG9ydCBjb25zdCBDdXJyZW5jeVN0YXRlS2V5cyA9IHtcclxuICBub0N1cnJlbmN5U3VwcGxpZWQ6ICdzaGFyZWRVaS1jdXJyZW5jeS1lcnJvci1ub0N1cnJlbmN5U3VwcGxpZWQnLFxyXG4gIGludmFsaWRDdXJyZW5jeVN1cHBsaWVkOiAnc2hhcmVkVWktY3VycmVuY3ktZXJyb3ItaW52YWxpZEN1cnJlbmN5U3VwcGxpZWQnLFxyXG4gIHZhbHVlRXhjZWVkc0RlY2ltYWxzRXJyb3I6ICdzaGFyZWRVaS1jdXJyZW5jeS1lcnJvci12YWx1ZUV4Y2VlZHNEZWNpbWFscycsXHJcbiAgdmFsdWVFeGNlZWRzRGVjaW1hbHNXYXJuaW5nOiAnc2hhcmVkVWktY3VycmVuY3ktd2FybmluZy12YWx1ZUV4Y2VlZHNEZWNpbWFscycsXHJcbn0gYXMgY29uc3Q7XHJcblxyXG4vKipcclxuICogUGxhY2Vob2xkZXJzIHJlcGxhY2VkIHdoZW4gYnVpbGRpbmcgYSBtZXNzYWdlLCBzbyB0aGUgY3VycmVuY3kgYW5kIHRoZSBkZWNpbWFsXHJcbiAqIGZpZ3VyZXMgYXJlIG5hbWVkIGlubGluZS4gVHJhbnNsYXRpb25zIG11c3QgaW5jbHVkZSB0aGUgdG9rZW5zIHRoZXkgbmVlZFxyXG4gKiAoc2VlIHRoZSBGUi9FTi9BUiB0cmFuc2xhdGlvbiBmaWxlcyk6XHJcbiAqICAtIGB7ZGV2aXNlfWAgICDihpIgdGhlIGN1cnJlbmN5IGNvZGVcclxuICogIC0gYHtkZWNpbWFsc31gIOKGkiB0aGUgdmFsdWUncyBkZWNpbWFsLXBsYWNlIGNvdW50IChtaXNtYXRjaCBtZXNzYWdlcyBvbmx5KVxyXG4gKiAgLSBge2FsbG93ZWR9YCAg4oaSIHRoZSBkZWNpbWFscyB0aGUgY3VycmVuY3kgYWxsb3dzIChtaXNtYXRjaCBtZXNzYWdlcyBvbmx5KVxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IEN1cnJlbmN5UGxhY2Vob2xkZXIgPSAne2RldmlzZX0nO1xyXG5leHBvcnQgY29uc3QgVmFsdWVEZWNpbWFsc1BsYWNlaG9sZGVyID0gJ3tkZWNpbWFsc30nO1xyXG5leHBvcnQgY29uc3QgQWxsb3dlZERlY2ltYWxzUGxhY2Vob2xkZXIgPSAne2FsbG93ZWR9JztcclxuXHJcbi8qKlxyXG4gKiBFbmdsaXNoIGZhbGxiYWNrcyB1c2VkIHdoZW4gYSB0cmFuc2xhdGlvbiBrZXkgaXMgbWlzc2luZywgc28gYSByYXcga2V5IHNsdWcgaXNcclxuICogbmV2ZXIgZGlzcGxheWVkIHRvIHRoZSB1c2VyLiBDdXJyZW5jeS1yZWZlcmVuY2luZyBtZXNzYWdlcyBlbWJlZCB0aGVcclxuICogcGxhY2Vob2xkZXJzIGFib3ZlLlxyXG4gKi9cclxuY29uc3QgRmFsbGJhY2tzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xyXG4gIFtDdXJyZW5jeVN0YXRlS2V5cy5ub0N1cnJlbmN5U3VwcGxpZWRdOiAnTm8gY3VycmVuY3kgcHJvdmlkZWQnLFxyXG4gIFtDdXJyZW5jeVN0YXRlS2V5cy5pbnZhbGlkQ3VycmVuY3lTdXBwbGllZF06IGBVbnJlY29nbml6ZWQgY3VycmVuY3k6ICR7Q3VycmVuY3lQbGFjZWhvbGRlcn1gLFxyXG4gIFtDdXJyZW5jeVN0YXRlS2V5cy52YWx1ZUV4Y2VlZHNEZWNpbWFsc0Vycm9yXTpcclxuICAgIGBUaGlzIGFtb3VudCBoYXMgJHtWYWx1ZURlY2ltYWxzUGxhY2Vob2xkZXJ9IGRlY2ltYWxzIGJ1dCB0aGUgJHtDdXJyZW5jeVBsYWNlaG9sZGVyfSBjdXJyZW5jeSBhbGxvd3Mgb25seSAke0FsbG93ZWREZWNpbWFsc1BsYWNlaG9sZGVyfSDigJQgaXQgY2Fubm90IGJlIGVkaXRlZGAsXHJcbiAgW0N1cnJlbmN5U3RhdGVLZXlzLnZhbHVlRXhjZWVkc0RlY2ltYWxzV2FybmluZ106XHJcbiAgICBgVGhpcyBhbW91bnQgaGFzICR7VmFsdWVEZWNpbWFsc1BsYWNlaG9sZGVyfSBkZWNpbWFscyBidXQgdGhlICR7Q3VycmVuY3lQbGFjZWhvbGRlcn0gY3VycmVuY3kgYWxsb3dzIG9ubHkgJHtBbGxvd2VkRGVjaW1hbHNQbGFjZWhvbGRlcn1gLFxyXG59O1xyXG5cclxuZXhwb3J0IHR5cGUgQ3VycmVuY3lTdGF0ZVNldmVyaXR5ID0gJ29rJyB8ICdlcnJvcicgfCAnd2FybmluZyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEN1cnJlbmN5U3RhdGUge1xyXG4gIC8qKiBPdmVyYWxsIHNldmVyaXR5IG9mIHRoZSBjdXJyZW50IChjb2RlLCB2YWx1ZSkgcGFpci4gKi9cclxuICBzZXZlcml0eTogQ3VycmVuY3lTdGF0ZVNldmVyaXR5O1xyXG4gIC8qKiBXaGV0aGVyIHRoZSBjdXJyZW5jeSBjb2RlIGl0c2VsZiBpcyBhIHJlY29nbml6ZWQgSVNPLTQyMTcgY29kZS4gKi9cclxuICBpc1ZhbGlkOiBib29sZWFuO1xyXG4gIC8qKiBUcmFuc2xhdGlvbiBrZXkgZm9yIHRoZSB0b29sdGlwIG1lc3NhZ2UgKGVtcHR5IHdoZW4gc2V2ZXJpdHkgPT09ICdvaycpLiAqL1xyXG4gIHRvb2x0aXBLZXk6IHN0cmluZztcclxuICAvKiogRnJhY3Rpb24gZGlnaXRzIHRoZSBjdXJyZW5jeSBzdXBwb3J0cyAoSVNPL2xvY2FsZSBkZWZhdWx0KTsgLTEgaWYgdW5rbm93bi4gKi9cclxuICBpc29EZWNpbWFsczogbnVtYmVyO1xyXG4gIC8qKiBEZWNpbWFsIHBsYWNlcyB0aGUgdmFsdWUgY2Fycmllczsgc2V0IG9ubHkgb24gYSBkZWNpbWFscyBtaXNtYXRjaC4gKi9cclxuICB2YWx1ZURlY2ltYWxzPzogbnVtYmVyO1xyXG4gIC8qKiBOb3JtYWxpemVkICh1cHBlci1jYXNlZCkgY3VycmVuY3kgY29kZSwgd2hlbiBvbmUgd2FzIHN1cHBsaWVkLiAqL1xyXG4gIGN1cnJlbmN5Q29kZT86IHN0cmluZztcclxufVxyXG5cclxuY29uc3QgV0VMTF9GT1JNRURfQ09ERSA9IC9eW0EtWl17M30kLztcclxuXHJcbi8qKlxyXG4gKiBNZW1vaXplZCBzZXQgb2YgSVNPLTQyMTcgY29kZXMgdGhlIHJ1bnRpbWUgcmVjb2duaXplcywgdmlhXHJcbiAqIGBJbnRsLnN1cHBvcnRlZFZhbHVlc09mKCdjdXJyZW5jeScpYC4gUmV0dXJucyBgbnVsbGAgb24gcnVudGltZXMgdGhhdCBkbyBub3RcclxuICogc3VwcG9ydCB0aGUgQVBJLCBzbyBjYWxsZXJzIGNhbiBmYWxsIGJhY2sgdG8gYSB3ZWxsLWZvcm1lZG5lc3MgY2hlY2suXHJcbiAqL1xyXG5sZXQgX3N1cHBvcnRlZEN1cnJlbmNpZXM6IFNldDxzdHJpbmc+IHwgbnVsbCB8IHVuZGVmaW5lZDtcclxuZnVuY3Rpb24gZ2V0U3VwcG9ydGVkQ3VycmVuY2llcygpOiBTZXQ8c3RyaW5nPiB8IG51bGwge1xyXG4gIGlmIChfc3VwcG9ydGVkQ3VycmVuY2llcyAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICByZXR1cm4gX3N1cHBvcnRlZEN1cnJlbmNpZXM7XHJcbiAgfVxyXG4gIGNvbnN0IGludGwgPSBJbnRsIGFzIHVua25vd24gYXMgeyBzdXBwb3J0ZWRWYWx1ZXNPZj86IChrZXk6IHN0cmluZykgPT4gc3RyaW5nW10gfTtcclxuICBpZiAodHlwZW9mIGludGwuc3VwcG9ydGVkVmFsdWVzT2YgPT09ICdmdW5jdGlvbicpIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIF9zdXBwb3J0ZWRDdXJyZW5jaWVzID0gbmV3IFNldDxzdHJpbmc+KGludGwuc3VwcG9ydGVkVmFsdWVzT2YoJ2N1cnJlbmN5JykpO1xyXG4gICAgfSBjYXRjaCB7XHJcbiAgICAgIF9zdXBwb3J0ZWRDdXJyZW5jaWVzID0gbnVsbDtcclxuICAgIH1cclxuICB9IGVsc2Uge1xyXG4gICAgX3N1cHBvcnRlZEN1cnJlbmNpZXMgPSBudWxsO1xyXG4gIH1cclxuICByZXR1cm4gX3N1cHBvcnRlZEN1cnJlbmNpZXM7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm5zIGB0cnVlYCB3aGVuIGBjb2RlYCBpcyBhIHJlY29nbml6ZWQgSVNPLTQyMTcgY3VycmVuY3kgY29kZS5cclxuICpcclxuICogUHJlZmVycyB0aGUgZXhhY3QgYEludGwuc3VwcG9ydGVkVmFsdWVzT2YoJ2N1cnJlbmN5JylgIGxpc3Q7IG9uIG9sZGVyIHJ1bnRpbWVzXHJcbiAqIGZhbGxzIGJhY2sgdG8gYSAzLWxldHRlciB3ZWxsLWZvcm1lZG5lc3MgY2hlY2sgcGx1cyBgSW50bC5OdW1iZXJGb3JtYXRgLlxyXG4gKiBDYXNlLWluc2Vuc2l0aXZlICh0aGUgY29kZSBpcyB1cHBlci1jYXNlZCBiZWZvcmUgY2hlY2tpbmcpLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRDdXJyZW5jeShjb2RlPzogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgaWYgKCFjb2RlKSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG4gIGNvbnN0IG5vcm1hbGl6ZWQgPSBjb2RlLnRvVXBwZXJDYXNlKCk7XHJcblxyXG4gIGNvbnN0IHN1cHBvcnRlZCA9IGdldFN1cHBvcnRlZEN1cnJlbmNpZXMoKTtcclxuICBpZiAoc3VwcG9ydGVkKSB7XHJcbiAgICByZXR1cm4gc3VwcG9ydGVkLmhhcyhub3JtYWxpemVkKTtcclxuICB9XHJcblxyXG4gIGlmICghV0VMTF9GT1JNRURfQ09ERS50ZXN0KG5vcm1hbGl6ZWQpKSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG4gIHRyeSB7XHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tbmV3XHJcbiAgICBuZXcgSW50bC5OdW1iZXJGb3JtYXQoJ2VuJywgeyBzdHlsZTogJ2N1cnJlbmN5JywgY3VycmVuY3k6IG5vcm1hbGl6ZWQgfSk7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9IGNhdGNoIHtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbn1cclxuXHJcbi8qKiBOdW1iZXIgb2YgZnJhY3Rpb24gZGlnaXRzIHRoZSBnaXZlbiBjdXJyZW5jeSBzdXBwb3J0cyAoSVNPL2xvY2FsZSBkZWZhdWx0KS4gKi9cclxuZnVuY3Rpb24gZ2V0Q3VycmVuY3lEZWNpbWFscyhjb2RlOiBzdHJpbmcsIGxvY2FsZTogc3RyaW5nKTogbnVtYmVyIHtcclxuICB0cnkge1xyXG4gICAgcmV0dXJuIG5ldyBJbnRsLk51bWJlckZvcm1hdChsb2NhbGUsIHsgc3R5bGU6ICdjdXJyZW5jeScsIGN1cnJlbmN5OiBjb2RlIH0pXHJcbiAgICAgIC5yZXNvbHZlZE9wdGlvbnMoKS5tYXhpbXVtRnJhY3Rpb25EaWdpdHMgPz8gMjtcclxuICB9IGNhdGNoIHtcclxuICAgIHJldHVybiAyO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIENvdW50cyB0aGUgbnVtYmVyIG9mIGRlY2ltYWwgcGxhY2VzIGNhcnJpZWQgYnkgYSBmaW5pdGUgbnVtYmVyLCB1c2luZyBpdHNcclxuICogc2hvcnRlc3Qgcm91bmQtdHJpcCBzdHJpbmcgcmVwcmVzZW50YXRpb24gKGhhbmRsZXMgZXhwb25lbnRpYWwgbm90YXRpb24pLlxyXG4gKi9cclxuZnVuY3Rpb24gY291bnREZWNpbWFscyh2YWx1ZTogbnVtYmVyKTogbnVtYmVyIHtcclxuICBpZiAoIU51bWJlci5pc0Zpbml0ZSh2YWx1ZSkpIHtcclxuICAgIHJldHVybiAwO1xyXG4gIH1cclxuICBjb25zdCBzdHIgPSBNYXRoLmFicyh2YWx1ZSkudG9TdHJpbmcoKTtcclxuICBpZiAoc3RyLmluZGV4T2YoJ2UtJykgIT09IC0xKSB7XHJcbiAgICBjb25zdCBbbWFudGlzc2EsIGV4cG9uZW50XSA9IHN0ci5zcGxpdCgnZS0nKTtcclxuICAgIGNvbnN0IG1hbnRpc3NhRGVjaW1hbHMgPSBtYW50aXNzYS5pbmNsdWRlcygnLicpID8gbWFudGlzc2Euc3BsaXQoJy4nKVsxXS5sZW5ndGggOiAwO1xyXG4gICAgcmV0dXJuIG1hbnRpc3NhRGVjaW1hbHMgKyBOdW1iZXIoZXhwb25lbnQpO1xyXG4gIH1cclxuICBjb25zdCBkb3RJbmRleCA9IHN0ci5pbmRleE9mKCcuJyk7XHJcbiAgcmV0dXJuIGRvdEluZGV4ID09PSAtMSA/IDAgOiBzdHIubGVuZ3RoIC0gZG90SW5kZXggLSAxO1xyXG59XHJcblxyXG4vKipcclxuICogUmVzb2x2ZXMgdGhlIGRpc3BsYXkgc3RhdGUgZm9yIGEgKGN1cnJlbmN5IGNvZGUsIHZhbHVlKSBwYWlyLlxyXG4gKlxyXG4gKiBAcGFyYW0gY29kZSAgICAgICAgICAgICBJU08tNDIxNyBjdXJyZW5jeSBjb2RlIHN1cHBsaWVkIHRvIHRoZSBjb21wb25lbnQuXHJcbiAqIEBwYXJhbSB2YWx1ZSAgICAgICAgICAgIHRoZSBtb25ldGFyeSB2YWx1ZSBiZWluZyBzaG93bi9lZGl0ZWQuXHJcbiAqIEBwYXJhbSBsb2NhbGUgICAgICAgICAgIGxvY2FsZSB1c2VkIHRvIGRlcml2ZSB0aGUgY3VycmVuY3kncyBmcmFjdGlvbiBkaWdpdHMuXHJcbiAqIEBwYXJhbSBtaXNtYXRjaFNldmVyaXR5IHNldmVyaXR5IGFwcGxpZWQgd2hlbiB0aGUgdmFsdWUgZXhjZWVkcyB0aGUgY3VycmVuY3knc1xyXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICBkZWNpbWFsczogYCdlcnJvcidgIGZvciBpbnB1dHMgKHJlbmRlcnMgcmVhZC1vbmx5KSxcclxuICogICAgICAgICAgICAgICAgICAgICAgICAgYCd3YXJuaW5nJ2AgZm9yIGRpc3BsYXlzIChyZW5kZXJzIHRoZSByYXcgdmFsdWUpLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVDdXJyZW5jeVN0YXRlKFxyXG4gIGNvZGU6IHN0cmluZyB8IHVuZGVmaW5lZCxcclxuICB2YWx1ZTogbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZCxcclxuICBsb2NhbGU6IHN0cmluZyxcclxuICBtaXNtYXRjaFNldmVyaXR5OiAnZXJyb3InIHwgJ3dhcm5pbmcnXHJcbik6IEN1cnJlbmN5U3RhdGUge1xyXG4gIGlmICghY29kZSkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgc2V2ZXJpdHk6ICdlcnJvcicsXHJcbiAgICAgIGlzVmFsaWQ6IGZhbHNlLFxyXG4gICAgICB0b29sdGlwS2V5OiBDdXJyZW5jeVN0YXRlS2V5cy5ub0N1cnJlbmN5U3VwcGxpZWQsXHJcbiAgICAgIGlzb0RlY2ltYWxzOiAtMSxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBjb25zdCBub3JtYWxpemVkID0gY29kZS50b1VwcGVyQ2FzZSgpO1xyXG4gIGlmICghaXNWYWxpZEN1cnJlbmN5KG5vcm1hbGl6ZWQpKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBzZXZlcml0eTogJ2Vycm9yJyxcclxuICAgICAgaXNWYWxpZDogZmFsc2UsXHJcbiAgICAgIHRvb2x0aXBLZXk6IEN1cnJlbmN5U3RhdGVLZXlzLmludmFsaWRDdXJyZW5jeVN1cHBsaWVkLFxyXG4gICAgICBpc29EZWNpbWFsczogLTEsXHJcbiAgICAgIGN1cnJlbmN5Q29kZTogbm9ybWFsaXplZCxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBjb25zdCBpc29EZWNpbWFscyA9IGdldEN1cnJlbmN5RGVjaW1hbHMobm9ybWFsaXplZCwgbG9jYWxlKTtcclxuICBpZiAodmFsdWUgIT0gbnVsbCAmJiBOdW1iZXIuaXNGaW5pdGUodmFsdWUpKSB7XHJcbiAgICBjb25zdCB2YWx1ZURlY2ltYWxzID0gY291bnREZWNpbWFscyh2YWx1ZSk7XHJcbiAgICBpZiAodmFsdWVEZWNpbWFscyA+IGlzb0RlY2ltYWxzKSB7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgc2V2ZXJpdHk6IG1pc21hdGNoU2V2ZXJpdHksXHJcbiAgICAgICAgaXNWYWxpZDogdHJ1ZSxcclxuICAgICAgICB0b29sdGlwS2V5OiBtaXNtYXRjaFNldmVyaXR5ID09PSAnd2FybmluZydcclxuICAgICAgICAgID8gQ3VycmVuY3lTdGF0ZUtleXMudmFsdWVFeGNlZWRzRGVjaW1hbHNXYXJuaW5nXHJcbiAgICAgICAgICA6IEN1cnJlbmN5U3RhdGVLZXlzLnZhbHVlRXhjZWVkc0RlY2ltYWxzRXJyb3IsXHJcbiAgICAgICAgaXNvRGVjaW1hbHMsXHJcbiAgICAgICAgdmFsdWVEZWNpbWFscyxcclxuICAgICAgICBjdXJyZW5jeUNvZGU6IG5vcm1hbGl6ZWQsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXR1cm4ge1xyXG4gICAgc2V2ZXJpdHk6ICdvaycsXHJcbiAgICBpc1ZhbGlkOiB0cnVlLFxyXG4gICAgdG9vbHRpcEtleTogJycsXHJcbiAgICBpc29EZWNpbWFscyxcclxuICAgIGN1cnJlbmN5Q29kZTogbm9ybWFsaXplZCxcclxuICB9O1xyXG59XHJcblxyXG4vKipcclxuICogQnVpbGRzIHRoZSB0b29sdGlwIG1lc3NhZ2UgZm9yIGEgcmVzb2x2ZWQgc3RhdGUgdXNpbmcgdGhlIHN1cHBsaWVkIGB0cmFuc2xhdGVgXHJcbiAqIGNhbGxiYWNrICh0eXBpY2FsbHkgYExvY2FsaXplUGlwZS50cmFuc2Zvcm1gKS4gRmFsbHMgYmFjayB0byBhIGJ1aWx0LWluXHJcbiAqIEVuZ2xpc2ggbWVzc2FnZSB3aGVuIHRoZSBrZXkgcmVzb2x2ZXMgdG8gaXRzZWxmIChtaXNzaW5nIHRyYW5zbGF0aW9uKSwgc28gYVxyXG4gKiByYXcga2V5IHNsdWcgaXMgbmV2ZXIgc2hvd24uIEFueSB7QGxpbmsgQ3VycmVuY3lQbGFjZWhvbGRlcn0gdG9rZW4gaW4gdGhlXHJcbiAqIG1lc3NhZ2UgaXMgcmVwbGFjZWQgd2l0aCB0aGUgY3VycmVuY3kgY29kZSwgc28gdGhlIG9mZmVuZGluZyBjdXJyZW5jeSBpcyBuYW1lZFxyXG4gKiBpbmxpbmUuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gbG9jYWxpemVDdXJyZW5jeVN0YXRlKFxyXG4gIHN0YXRlOiBDdXJyZW5jeVN0YXRlLFxyXG4gIHRyYW5zbGF0ZTogKGtleTogc3RyaW5nKSA9PiBzdHJpbmdcclxuKTogc3RyaW5nIHtcclxuICBpZiAoc3RhdGUuc2V2ZXJpdHkgPT09ICdvaycgfHwgIXN0YXRlLnRvb2x0aXBLZXkpIHtcclxuICAgIHJldHVybiAnJztcclxuICB9XHJcblxyXG4gIGNvbnN0IHRyYW5zbGF0ZWQgPSB0cmFuc2xhdGUoc3RhdGUudG9vbHRpcEtleSk7XHJcbiAgY29uc3QgbWVzc2FnZSA9ICF0cmFuc2xhdGVkIHx8IHRyYW5zbGF0ZWQgPT09IHN0YXRlLnRvb2x0aXBLZXlcclxuICAgID8gKEZhbGxiYWNrc1tzdGF0ZS50b29sdGlwS2V5XSA/PyAnJylcclxuICAgIDogdHJhbnNsYXRlZDtcclxuXHJcbiAgcmV0dXJuIG1lc3NhZ2VcclxuICAgIC5zcGxpdChDdXJyZW5jeVBsYWNlaG9sZGVyKS5qb2luKHN0YXRlLmN1cnJlbmN5Q29kZSA/PyAnJylcclxuICAgIC5zcGxpdChWYWx1ZURlY2ltYWxzUGxhY2Vob2xkZXIpLmpvaW4oc3RhdGUudmFsdWVEZWNpbWFscyAhPSBudWxsID8gU3RyaW5nKHN0YXRlLnZhbHVlRGVjaW1hbHMpIDogJycpXHJcbiAgICAuc3BsaXQoQWxsb3dlZERlY2ltYWxzUGxhY2Vob2xkZXIpLmpvaW4oc3RhdGUuaXNvRGVjaW1hbHMgPj0gMCA/IFN0cmluZyhzdGF0ZS5pc29EZWNpbWFscykgOiAnJyk7XHJcbn1cclxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHNpLXNoYXJlZC11aS9zcmMvbGliL2ludGVyZmFjZXMvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgSUZpbHRlcmVkUmVxdWVzdCB7XHJcbiAgcHJvcHJldHlOYW1lOiBzdHJpbmc7XHJcbiAgZmlsdGVyVmFsdWU6IHN0cmluZztcclxuICBvcGVyYXRvcjogbnVtYmVyO1xyXG4gIHR5cGU/OiBzdHJpbmc7XHJcbiAgaGVhZGVyPzogc3RyaW5nO1xyXG4gIGNvbWJvYm94TGFiZWw/OiBzdHJpbmc7XHJcbiAgY3VycmVuY3k/OiBzdHJpbmc7XHJcbiAgaXNGcmFjdGlvbj86IGJvb2xlYW47XHJcbiAgbnVtT2ZEZWNpbWFsPzogbnVtYmVyO1xyXG4gIGlzQ3VzdG9tQ29sdW1uPzogYm9vbGVhbjtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIElQYWdlZFJlcXVlc3Qge1xyXG4gIG1heFJlc3VsdENvdW50PzogbnVtYmVyIHwgbnVsbDtcclxuICBza2lwQ291bnQ/OiBudW1iZXI7XHJcbiAgc29ydGluZz86IElTb3J0QnlQcm9wcmV0eVtdO1xyXG4gIGtleXdvcmQ/OiBzdHJpbmc7XHJcbiAgZmlsdGVycz86IElGaWx0ZXJlZFJlcXVlc3RbXTtcclxuICBnZXRBbGxEYXRhPzogYm9vbGVhbjtcclxuICBzdW1tYXJpZXM/OiBzdHJpbmdbXTtcclxuICBncm91cEJ5Pzogc3RyaW5nO1xyXG4gIGN1c3RvbVBhcmFtZXRlcj86IGFueVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElTdW1tYXJ5Rm9yUHJvcHJldHkge1xyXG4gIHByb3ByZXR5OiBzdHJpbmc7XHJcbiAgc3VtbWFyeTogYW55O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElHcm91cGVkUmVzdWx0PFQ+IHtcclxuICBrZXk6IHN0cmluZyB8IG51bGw7XHJcbiAgaXRlbXM6IFRbXTtcclxuICB0b3RhbENvdW50OiBudW1iZXI7XHJcbiAgc3VtbWFyaWVzOiBJU3VtbWFyeUZvclByb3ByZXR5W107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVBhZ2VkUmVzcG9uc2U8VD4ge1xyXG4gIGl0ZW1zOiBUW107XHJcbiAgdG90YWxDb3VudDogbnVtYmVyO1xyXG4gIHN1bW1hcmllcz86IElTdW1tYXJ5Rm9yUHJvcHJldHlbXTtcclxuICBjdXN0b21Db2x1bW5TY2hlbWE/OiBJQ3VzdG9tQ29sdW1uU2NoZW1hW107XHJcbiAgZ3JvdXBzPzogSUdyb3VwZWRSZXN1bHQ8VD5bXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJUGFnZTxUPiB7XHJcbiAgaXRlbXM6IFRbXTtcclxuICB0b3RhbENvdW50OiBudW1iZXI7XHJcbiAgc3VtbWFyaWVzOiBJU3VtbWFyeUZvclByb3ByZXR5W107XHJcbiAgdG90YWxQYWdlczogbnVtYmVyO1xyXG4gIHBhZ2VOdW1iZXI6IG51bWJlcjtcclxuICBwYWdlU2l6ZTogbnVtYmVyO1xyXG4gIGxvYWRpbmc6IGJvb2xlYW47XHJcbiAgZ3JvdXBzPzogSUdyb3VwZWRSZXN1bHQ8VD5bXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJU29ydEJ5UHJvcHJldHkge1xyXG4gIHByb3BlcnR5OiBzdHJpbmcgfCBzdHJpbmdbXTtcclxuICBvcmRlcjogc3RyaW5nO1xyXG4gIGlzQ3VzdG9tQ29sdW1uPzogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJU29ydE1ldGEge1xyXG4gIGZpZWxkOiBzdHJpbmcgfCBzdHJpbmdbXTtcclxuICBvcmRlcjogbnVtYmVyO1xyXG4gIGlzQ3VzdG9tQ29sdW1uPzogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJQ3VzdG9tQ29sdW1uU2NoZW1hIHtcclxuICBjb2x1bW5OYW1lOiBzdHJpbmc7XHJcbiAgdHlwZTogJ2RhdGUnIHwgJ251bWVyaWMnIHwgJ2Jvb2xlYW4nIHwgJ3RleHQnO1xyXG59Il19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHNpLXNoYXJlZC11aS9zcmMvbGliL2ludGVyZmFjZXMvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgSUZpbHRlcmVkUmVxdWVzdCB7XHJcbiAgcHJvcHJldHlOYW1lOiBzdHJpbmc7XHJcbiAgZmlsdGVyVmFsdWU6IHN0cmluZztcclxuICBvcGVyYXRvcjogbnVtYmVyO1xyXG4gIHR5cGU/OiBzdHJpbmc7XHJcbiAgaGVhZGVyPzogc3RyaW5nO1xyXG4gIGNvbWJvYm94TGFiZWw/OiBzdHJpbmc7XHJcbiAgY3VycmVuY3k/OiBzdHJpbmc7XHJcbiAgaXNGcmFjdGlvbj86IGJvb2xlYW47XHJcbiAgbnVtT2ZEZWNpbWFsPzogbnVtYmVyO1xyXG4gIGlzQ3VzdG9tQ29sdW1uPzogYm9vbGVhbjtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIElQYWdlZFJlcXVlc3Qge1xyXG4gIG1heFJlc3VsdENvdW50PzogbnVtYmVyIHwgbnVsbDtcclxuICBza2lwQ291bnQ/OiBudW1iZXI7XHJcbiAgc29ydGluZz86IElTb3J0QnlQcm9wcmV0eVtdO1xyXG4gIGtleXdvcmQ/OiBzdHJpbmc7XHJcbiAgZmlsdGVycz86IElGaWx0ZXJlZFJlcXVlc3RbXTtcclxuICBnZXRBbGxEYXRhPzogYm9vbGVhbjtcclxuICBzdW1tYXJpZXM/OiBzdHJpbmdbXTtcclxuICBncm91cEJ5Pzogc3RyaW5nO1xyXG4gIGN1c3RvbVBhcmFtZXRlcj86IGFueVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElTdW1tYXJ5Rm9yUHJvcHJldHkge1xyXG4gIHByb3ByZXR5OiBzdHJpbmc7XHJcbiAgc3VtbWFyeTogYW55O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElHcm91cGVkUmVzdWx0PFQ+IHtcclxuICBrZXk6IHN0cmluZyB8IG51bGw7XHJcbiAgaXRlbXM6IFRbXTtcclxuICB0b3RhbENvdW50OiBudW1iZXI7XHJcbiAgc3VtbWFyaWVzOiBJU3VtbWFyeUZvclByb3ByZXR5W107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVBhZ2VkUmVzcG9uc2U8VD4ge1xyXG4gIGl0ZW1zOiBUW107XHJcbiAgdG90YWxDb3VudDogbnVtYmVyO1xyXG4gIHN1bW1hcmllcz86IElTdW1tYXJ5Rm9yUHJvcHJldHlbXTtcclxuICBjdXN0b21Db2x1bW5TY2hlbWE/OiBJQ3VzdG9tQ29sdW1uU2NoZW1hW107XHJcbiAgZ3JvdXBzPzogSUdyb3VwZWRSZXN1bHQ8VD5bXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJUGFnZTxUPiB7XHJcbiAgaXRlbXM6IFRbXTtcclxuICB0b3RhbENvdW50OiBudW1iZXI7XHJcbiAgc3VtbWFyaWVzOiBJU3VtbWFyeUZvclByb3ByZXR5W107XHJcbiAgdG90YWxQYWdlczogbnVtYmVyO1xyXG4gIHBhZ2VOdW1iZXI6IG51bWJlcjtcclxuICBwYWdlU2l6ZTogbnVtYmVyO1xyXG4gIGxvYWRpbmc6IGJvb2xlYW47XHJcbiAgZ3JvdXBzPzogSUdyb3VwZWRSZXN1bHQ8VD5bXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJU29ydEJ5UHJvcHJldHkge1xyXG4gIHByb3BlcnR5OiBzdHJpbmcgfCBzdHJpbmdbXTtcclxuICBvcmRlcjogc3RyaW5nO1xyXG4gIGlzQ3VzdG9tQ29sdW1uPzogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJU29ydE1ldGEge1xyXG4gIGZpZWxkOiBzdHJpbmcgfCBzdHJpbmdbXTtcclxuICBvcmRlcjogbnVtYmVyO1xyXG4gIGlzQ3VzdG9tQ29sdW1uPzogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJQ3VzdG9tQ29sdW1uU2NoZW1hIHtcclxuICBjb2x1bW5OYW1lOiBzdHJpbmc7XHJcbiAgY29sdW1uTGliZWxsZTogc3RyaW5nO1xyXG4gIHR5cGU6ICdkYXRlJyB8ICdudW1lcmljJyB8ICdib29sZWFuJyB8ICd0ZXh0JztcclxufSJdfQ==
@@ -5,12 +5,13 @@ export class ColonnePersonnaliseeGroupedResponse {
5
5
  }
6
6
  }
7
7
  export class ColonnePersonnalisee {
8
- constructor(uid, classe, groupe, ordre, nom, type, longueur, data, observation, formule, requete) {
8
+ constructor(uid, classe, groupe, ordre, nom, libelle, type, longueur, data, observation, formule, requete) {
9
9
  this.uid = uid;
10
10
  this.classe = classe;
11
11
  this.groupe = groupe;
12
12
  this.ordre = ordre;
13
13
  this.nom = nom;
14
+ this.libelle = libelle;
14
15
  this.type = type;
15
16
  this.longueur = longueur;
16
17
  this.data = data;
@@ -32,4 +33,4 @@ export class ColonnePersonnaliseeData {
32
33
  this.observation = observation;
33
34
  }
34
35
  }
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb25uZS1wZXJzb25uYWxpc2VlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHNpLXNoYXJlZC11aS9zcmMvbGliL21vZGVscy9keW5hbWljLWZvcm0vY29sb25uZS1wZXJzb25uYWxpc2VlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxtQ0FBbUM7SUFDOUMsWUFDUyxNQUFjLEVBQ2QsUUFBZ0M7UUFEaEMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGFBQVEsR0FBUixRQUFRLENBQXdCO0lBQ3RDLENBQUM7Q0FDTDtBQUVELE1BQU0sT0FBTyxvQkFBb0I7SUFDL0IsWUFDUyxHQUFXLEVBQ1gsTUFBYyxFQUNkLE1BQWMsRUFDZCxLQUFhLEVBQ2IsR0FBVyxFQUNYLElBQVksRUFDWixRQUFnQixFQUNoQixJQUE4QixFQUM5QixXQUFvQixFQUNwQixPQUFnQixFQUNoQixPQUFnQjtRQVZoQixRQUFHLEdBQUgsR0FBRyxDQUFRO1FBQ1gsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQ2IsUUFBRyxHQUFILEdBQUcsQ0FBUTtRQUNYLFNBQUksR0FBSixJQUFJLENBQVE7UUFDWixhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQ2hCLFNBQUksR0FBSixJQUFJLENBQTBCO1FBQzlCLGdCQUFXLEdBQVgsV0FBVyxDQUFTO1FBQ3BCLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFDaEIsWUFBTyxHQUFQLE9BQU8sQ0FBUztJQUN0QixDQUFDO0NBQ0w7QUFFRCxNQUFNLE9BQU8sd0JBQXdCO0lBQ25DLFlBQ1MsR0FBWSxFQUNaLFNBQWtCLEVBQ2xCLHVCQUFnQyxFQUNoQyxhQUF1QixFQUN2QixTQUFrQixFQUNsQixhQUFzQixFQUN0QixZQUFxQixFQUNyQixZQUFrQixFQUNsQixXQUFvQjtRQVJwQixRQUFHLEdBQUgsR0FBRyxDQUFTO1FBQ1osY0FBUyxHQUFULFNBQVMsQ0FBUztRQUNsQiw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQVM7UUFDaEMsa0JBQWEsR0FBYixhQUFhLENBQVU7UUFDdkIsY0FBUyxHQUFULFNBQVMsQ0FBUztRQUNsQixrQkFBYSxHQUFiLGFBQWEsQ0FBUztRQUN0QixpQkFBWSxHQUFaLFlBQVksQ0FBUztRQUNyQixpQkFBWSxHQUFaLFlBQVksQ0FBTTtRQUNsQixnQkFBVyxHQUFYLFdBQVcsQ0FBUztJQUMxQixDQUFDO0NBQ0wiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgQ29sb25uZVBlcnNvbm5hbGlzZWVHcm91cGVkUmVzcG9uc2Uge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGdyb3VwZTogc3RyaW5nLFxyXG4gICAgcHVibGljIGNvbG9ubmVzOiBDb2xvbm5lUGVyc29ubmFsaXNlZVtdXHJcbiAgKSB7fVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ29sb25uZVBlcnNvbm5hbGlzZWUge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHVpZDogc3RyaW5nLFxyXG4gICAgcHVibGljIGNsYXNzZTogc3RyaW5nLFxyXG4gICAgcHVibGljIGdyb3VwZTogc3RyaW5nLFxyXG4gICAgcHVibGljIG9yZHJlOiBudW1iZXIsXHJcbiAgICBwdWJsaWMgbm9tOiBzdHJpbmcsXHJcbiAgICBwdWJsaWMgdHlwZTogc3RyaW5nLFxyXG4gICAgcHVibGljIGxvbmd1ZXVyOiBudW1iZXIsXHJcbiAgICBwdWJsaWMgZGF0YTogQ29sb25uZVBlcnNvbm5hbGlzZWVEYXRhLFxyXG4gICAgcHVibGljIG9ic2VydmF0aW9uPzogc3RyaW5nLFxyXG4gICAgcHVibGljIGZvcm11bGU/OiBzdHJpbmcsXHJcbiAgICBwdWJsaWMgcmVxdWV0ZT86IHN0cmluZyxcclxuICApIHt9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDb2xvbm5lUGVyc29ubmFsaXNlZURhdGEge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHVpZD86IHN0cmluZyxcclxuICAgIHB1YmxpYyBvY2N1cmVuY2U/OiBzdHJpbmcsXHJcbiAgICBwdWJsaWMgY29sb25uZVBlcnNvbm5hbGlzZWVVaWQ/OiBzdHJpbmcsXHJcbiAgICBwdWJsaWMgdmFsZXVyQm9vbGVhbj86IGJvb2xlYW4sXHJcbiAgICBwdWJsaWMgdmFsZXVySW50PzogbnVtYmVyLFxyXG4gICAgcHVibGljIHZhbGV1ckRlY2ltYWw/OiBudW1iZXIsXHJcbiAgICBwdWJsaWMgdmFsZXVyU3RyaW5nPzogc3RyaW5nLFxyXG4gICAgcHVibGljIHZhbGV1ckJpbmFyeT86IGFueSxcclxuICAgIHB1YmxpYyBvYnNlcnZhdGlvbj86IHN0cmluZ1xyXG4gICkge31cclxufSJdfQ==
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb25uZS1wZXJzb25uYWxpc2VlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHNpLXNoYXJlZC11aS9zcmMvbGliL21vZGVscy9keW5hbWljLWZvcm0vY29sb25uZS1wZXJzb25uYWxpc2VlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxtQ0FBbUM7SUFDOUMsWUFDUyxNQUFjLEVBQ2QsUUFBZ0M7UUFEaEMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGFBQVEsR0FBUixRQUFRLENBQXdCO0lBQ3RDLENBQUM7Q0FDTDtBQUVELE1BQU0sT0FBTyxvQkFBb0I7SUFDL0IsWUFDUyxHQUFXLEVBQ1gsTUFBYyxFQUNkLE1BQWMsRUFDZCxLQUFhLEVBQ2IsR0FBVyxFQUNYLE9BQWUsRUFDZixJQUFZLEVBQ1osUUFBZ0IsRUFDaEIsSUFBOEIsRUFDOUIsV0FBb0IsRUFDcEIsT0FBZ0IsRUFDaEIsT0FBZ0I7UUFYaEIsUUFBRyxHQUFILEdBQUcsQ0FBUTtRQUNYLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUNiLFFBQUcsR0FBSCxHQUFHLENBQVE7UUFDWCxZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUNaLGFBQVEsR0FBUixRQUFRLENBQVE7UUFDaEIsU0FBSSxHQUFKLElBQUksQ0FBMEI7UUFDOUIsZ0JBQVcsR0FBWCxXQUFXLENBQVM7UUFDcEIsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNoQixZQUFPLEdBQVAsT0FBTyxDQUFTO0lBQ3RCLENBQUM7Q0FDTDtBQUVELE1BQU0sT0FBTyx3QkFBd0I7SUFDbkMsWUFDUyxHQUFZLEVBQ1osU0FBa0IsRUFDbEIsdUJBQWdDLEVBQ2hDLGFBQXVCLEVBQ3ZCLFNBQWtCLEVBQ2xCLGFBQXNCLEVBQ3RCLFlBQXFCLEVBQ3JCLFlBQWtCLEVBQ2xCLFdBQW9CO1FBUnBCLFFBQUcsR0FBSCxHQUFHLENBQVM7UUFDWixjQUFTLEdBQVQsU0FBUyxDQUFTO1FBQ2xCLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBUztRQUNoQyxrQkFBYSxHQUFiLGFBQWEsQ0FBVTtRQUN2QixjQUFTLEdBQVQsU0FBUyxDQUFTO1FBQ2xCLGtCQUFhLEdBQWIsYUFBYSxDQUFTO1FBQ3RCLGlCQUFZLEdBQVosWUFBWSxDQUFTO1FBQ3JCLGlCQUFZLEdBQVosWUFBWSxDQUFNO1FBQ2xCLGdCQUFXLEdBQVgsV0FBVyxDQUFTO0lBQzFCLENBQUM7Q0FDTCIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBDb2xvbm5lUGVyc29ubmFsaXNlZUdyb3VwZWRSZXNwb25zZSB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgZ3JvdXBlOiBzdHJpbmcsXHJcbiAgICBwdWJsaWMgY29sb25uZXM6IENvbG9ubmVQZXJzb25uYWxpc2VlW11cclxuICApIHt9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDb2xvbm5lUGVyc29ubmFsaXNlZSB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgdWlkOiBzdHJpbmcsXHJcbiAgICBwdWJsaWMgY2xhc3NlOiBzdHJpbmcsXHJcbiAgICBwdWJsaWMgZ3JvdXBlOiBzdHJpbmcsXHJcbiAgICBwdWJsaWMgb3JkcmU6IG51bWJlcixcclxuICAgIHB1YmxpYyBub206IHN0cmluZyxcclxuICAgIHB1YmxpYyBsaWJlbGxlOiBzdHJpbmcsXHJcbiAgICBwdWJsaWMgdHlwZTogc3RyaW5nLFxyXG4gICAgcHVibGljIGxvbmd1ZXVyOiBudW1iZXIsXHJcbiAgICBwdWJsaWMgZGF0YTogQ29sb25uZVBlcnNvbm5hbGlzZWVEYXRhLFxyXG4gICAgcHVibGljIG9ic2VydmF0aW9uPzogc3RyaW5nLFxyXG4gICAgcHVibGljIGZvcm11bGU/OiBzdHJpbmcsXHJcbiAgICBwdWJsaWMgcmVxdWV0ZT86IHN0cmluZyxcclxuICApIHt9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDb2xvbm5lUGVyc29ubmFsaXNlZURhdGEge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHVpZD86IHN0cmluZyxcclxuICAgIHB1YmxpYyBvY2N1cmVuY2U/OiBzdHJpbmcsXHJcbiAgICBwdWJsaWMgY29sb25uZVBlcnNvbm5hbGlzZWVVaWQ/OiBzdHJpbmcsXHJcbiAgICBwdWJsaWMgdmFsZXVyQm9vbGVhbj86IGJvb2xlYW4sXHJcbiAgICBwdWJsaWMgdmFsZXVySW50PzogbnVtYmVyLFxyXG4gICAgcHVibGljIHZhbGV1ckRlY2ltYWw/OiBudW1iZXIsXHJcbiAgICBwdWJsaWMgdmFsZXVyU3RyaW5nPzogc3RyaW5nLFxyXG4gICAgcHVibGljIHZhbGV1ckJpbmFyeT86IGFueSxcclxuICAgIHB1YmxpYyBvYnNlcnZhdGlvbj86IHN0cmluZ1xyXG4gICkge31cclxufSJdfQ==
@@ -1,29 +1,27 @@
1
- import { Pipe } from '@angular/core';
2
- import { locals } from '../consts/locals.const';
1
+ import { CurrencyPipe } from '@angular/common';
2
+ import { inject, Pipe } from '@angular/core';
3
+ import { LocalizationService } from '../services/localization/localization.service';
3
4
  import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/common";
5
5
  export class TsiCurrencyPipe {
6
- constructor(currencyPipe) {
7
- this.currencyPipe = currencyPipe;
6
+ // Ctor
7
+ constructor() {
8
+ // Local props
9
+ this._display = 'symbol';
10
+ // DI
11
+ this._localizationService = inject(LocalizationService);
12
+ this._currencyPipe = inject(CurrencyPipe);
13
+ this._locale = this._localizationService.locale;
8
14
  }
9
- transform(value, currencyCode, display = 'symbol', digitsInfo = '', locale = 'en-US') {
10
- let formattedValue = this.currencyPipe.transform(value, currencyCode, display, digitsInfo, locale);
11
- if (locale != locals.arabicLocal) {
12
- return formattedValue;
13
- }
14
- if (!formattedValue)
15
- return null;
16
- const currencySymbol = formattedValue.match(/[^0-9,.]/g)?.join('') || '';
17
- formattedValue = formattedValue.replace(currencySymbol, '');
18
- return `${formattedValue} ${currencySymbol}`;
15
+ transform(value, currencyCode) {
16
+ return this._currencyPipe.transform(value, currencyCode, this._display, undefined, this._locale);
19
17
  }
20
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TsiCurrencyPipe, deps: [{ token: i1.CurrencyPipe }], target: i0.ɵɵFactoryTarget.Pipe }); }
18
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TsiCurrencyPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
21
19
  static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: TsiCurrencyPipe, name: "tsiCurrency" }); }
22
20
  }
23
21
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TsiCurrencyPipe, decorators: [{
24
22
  type: Pipe,
25
23
  args: [{
26
- name: 'tsiCurrency',
24
+ name: 'tsiCurrency'
27
25
  }]
28
- }], ctorParameters: () => [{ type: i1.CurrencyPipe }] });
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHNpLWN1cnJlbmN5LnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90c2ktc2hhcmVkLXVpL3NyYy9saWIvcGlwZXMvdHNpLWN1cnJlbmN5LnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7QUFLaEQsTUFBTSxPQUFPLGVBQWU7SUFFMUIsWUFBb0IsWUFBMEI7UUFBMUIsaUJBQVksR0FBWixZQUFZLENBQWM7SUFBSSxDQUFDO0lBRW5ELFNBQVMsQ0FDUCxLQUF5QixFQUN6QixZQUFvQixFQUNwQixVQUF3RCxRQUFRLEVBQ2hFLGFBQXFCLEVBQUUsRUFDdkIsU0FBaUIsT0FBTztRQUV4QixJQUFJLGNBQWMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FDOUMsS0FBSyxFQUNMLFlBQVksRUFDWixPQUFPLEVBQ1AsVUFBVSxFQUNWLE1BQU0sQ0FDUCxDQUFDO1FBRUYsSUFBSSxNQUFNLElBQUksTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2pDLE9BQU8sY0FBYyxDQUFDO1FBQ3hCLENBQUM7UUFFRCxJQUFJLENBQUMsY0FBYztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBRWpDLE1BQU0sY0FBYyxHQUFHLGNBQWMsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN6RSxjQUFjLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFNUQsT0FBTyxHQUFHLGNBQWMsSUFBSSxjQUFjLEVBQUUsQ0FBQztJQUMvQyxDQUFDOytHQTdCVSxlQUFlOzZHQUFmLGVBQWU7OzRGQUFmLGVBQWU7a0JBSDNCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGFBQWE7aUJBQ3BCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ3VycmVuY3lQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBsb2NhbHMgfSBmcm9tICcuLi9jb25zdHMvbG9jYWxzLmNvbnN0JztcclxuXHJcbkBQaXBlKHtcclxuICBuYW1lOiAndHNpQ3VycmVuY3knLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHNpQ3VycmVuY3lQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjdXJyZW5jeVBpcGU6IEN1cnJlbmN5UGlwZSkgeyB9XHJcblxyXG4gIHRyYW5zZm9ybShcclxuICAgIHZhbHVlOiBudW1iZXIgfCB1bmRlZmluZWQsXHJcbiAgICBjdXJyZW5jeUNvZGU6IHN0cmluZyxcclxuICAgIGRpc3BsYXk6ICdjb2RlJyB8ICdzeW1ib2wnIHwgJ3N5bWJvbC1uYXJyb3cnIHwgc3RyaW5nID0gJ3N5bWJvbCcsXHJcbiAgICBkaWdpdHNJbmZvOiBzdHJpbmcgPSAnJyxcclxuICAgIGxvY2FsZTogc3RyaW5nID0gJ2VuLVVTJ1xyXG4gICk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgbGV0IGZvcm1hdHRlZFZhbHVlID0gdGhpcy5jdXJyZW5jeVBpcGUudHJhbnNmb3JtKFxyXG4gICAgICB2YWx1ZSxcclxuICAgICAgY3VycmVuY3lDb2RlLFxyXG4gICAgICBkaXNwbGF5LFxyXG4gICAgICBkaWdpdHNJbmZvLFxyXG4gICAgICBsb2NhbGVcclxuICAgICk7XHJcblxyXG4gICAgaWYgKGxvY2FsZSAhPSBsb2NhbHMuYXJhYmljTG9jYWwpIHtcclxuICAgICAgcmV0dXJuIGZvcm1hdHRlZFZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghZm9ybWF0dGVkVmFsdWUpIHJldHVybiBudWxsO1xyXG5cclxuICAgIGNvbnN0IGN1cnJlbmN5U3ltYm9sID0gZm9ybWF0dGVkVmFsdWUubWF0Y2goL1teMC05LC5dL2cpPy5qb2luKCcnKSB8fCAnJztcclxuICAgIGZvcm1hdHRlZFZhbHVlID0gZm9ybWF0dGVkVmFsdWUucmVwbGFjZShjdXJyZW5jeVN5bWJvbCwgJycpO1xyXG5cclxuICAgIHJldHVybiBgJHtmb3JtYXR0ZWRWYWx1ZX0gJHtjdXJyZW5jeVN5bWJvbH1gO1xyXG4gIH1cclxufVxyXG4iXX0=
26
+ }], ctorParameters: () => [] });
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHNpLWN1cnJlbmN5LnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90c2ktc2hhcmVkLXVpL3NyYy9saWIvcGlwZXMvdHNpLWN1cnJlbmN5LnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUU1RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQzs7QUFLcEYsTUFBTSxPQUFPLGVBQWU7SUFTMUIsT0FBTztJQUNQO1FBVEEsY0FBYztRQUNHLGFBQVEsR0FBVyxRQUFRLENBQUM7UUFHN0MsS0FBSztRQUNHLHlCQUFvQixHQUF3QixNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUN4RSxrQkFBYSxHQUFpQixNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFLekQsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDO0lBQ2xELENBQUM7SUFFRCxTQUFTLENBQUMsS0FBeUIsRUFBRSxZQUFvQjtRQUN2RCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ25HLENBQUM7K0dBakJVLGVBQWU7NkdBQWYsZUFBZTs7NEZBQWYsZUFBZTtrQkFIM0IsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsYUFBYTtpQkFDcEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDdXJyZW5jeVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBpbmplY3QsIFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTG9jYWxlQ29kZSB9IGZyb20gJy4uL2VudW1zL0xhbmd1YWdlJztcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2xvY2FsaXphdGlvbi9sb2NhbGl6YXRpb24uc2VydmljZSc7XHJcblxyXG5AUGlwZSh7XHJcbiAgbmFtZTogJ3RzaUN1cnJlbmN5J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVHNpQ3VycmVuY3lQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgLy8gTG9jYWwgcHJvcHNcclxuICBwcml2YXRlIHJlYWRvbmx5IF9kaXNwbGF5OiBzdHJpbmcgPSAnc3ltYm9sJztcclxuICBwcml2YXRlIF9sb2NhbGU6IExvY2FsZUNvZGU7XHJcblxyXG4gIC8vIERJXHJcbiAgcHJpdmF0ZSBfbG9jYWxpemF0aW9uU2VydmljZTogTG9jYWxpemF0aW9uU2VydmljZSA9IGluamVjdChMb2NhbGl6YXRpb25TZXJ2aWNlKTtcclxuICBwcml2YXRlIF9jdXJyZW5jeVBpcGU6IEN1cnJlbmN5UGlwZSA9IGluamVjdChDdXJyZW5jeVBpcGUpO1xyXG5cclxuICAvLyBDdG9yXHJcbiAgY29uc3RydWN0b3IoKVxyXG4gIHtcclxuICAgIHRoaXMuX2xvY2FsZSA9IHRoaXMuX2xvY2FsaXphdGlvblNlcnZpY2UubG9jYWxlO1xyXG4gIH1cclxuXHJcbiAgdHJhbnNmb3JtKHZhbHVlOiBudW1iZXIgfCB1bmRlZmluZWQsIGN1cnJlbmN5Q29kZTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICByZXR1cm4gdGhpcy5fY3VycmVuY3lQaXBlLnRyYW5zZm9ybSh2YWx1ZSwgY3VycmVuY3lDb2RlLCB0aGlzLl9kaXNwbGF5LCB1bmRlZmluZWQsIHRoaXMuX2xvY2FsZSk7XHJcbiAgfVxyXG59Il19