@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.
- package/esm2022/lib/functions/currency-state.functions.mjs +203 -0
- package/esm2022/lib/interfaces/pagination/pagination-base.mjs +1 -1
- package/esm2022/lib/models/dynamic-form/colonne-personnalisee.mjs +3 -2
- package/esm2022/lib/pipes/tsi-currency.pipe.mjs +17 -19
- package/esm2022/lib/tsi-components/input-components/editable-grid/editable-grid.component.mjs +3 -3
- package/esm2022/lib/tsi-components/input-components/tsi-currency-other-input/tsi-currency-other-input.component.mjs +49 -28
- package/esm2022/lib/tsi-components/input-components/tsi-currency-societe-input/tsi-currency-societe-input.component.mjs +46 -28
- package/esm2022/lib/tsi-components/output-components/tsi-currency-other-display/tsi-currency-other-display.component.mjs +37 -10
- package/esm2022/lib/tsi-components/output-components/tsi-currency-societe-display/tsi-currency-societe-display.component.mjs +33 -40
- package/esm2022/lib/tsi-components/output-components/tsi-display-grid/tsi-display-grid.component.mjs +3 -3
- package/esm2022/lib/tsi-components/output-components/tsi-generic-grid/tsi-generic-grid.component.mjs +3 -3
- package/esm2022/lib/tsi-components/poc/locale-poc/locale-poc.component.mjs +68 -36
- package/esm2022/lib/tsi-components/tsi-generic-crud/tsi-generic-crud.component.mjs +35 -15
- package/esm2022/lib/tsi-components/tsi-generic-form/tsi-generic-form.component.mjs +1 -1
- package/esm2022/lib/tsi-components/tsi-kanban/tsi-kanban.component.mjs +1 -1
- package/esm2022/lib/tsi-components/tsi-search-box/tsi-search-box.component.mjs +1 -1
- package/fesm2022/tsi-developpement-tsi-shared-ui.mjs +643 -347
- package/fesm2022/tsi-developpement-tsi-shared-ui.mjs.map +1 -1
- package/lib/consts/app-providers.d.ts +1 -1
- package/lib/functions/currency-state.functions.d.ts +80 -0
- package/lib/interfaces/pagination/pagination-base.d.ts +1 -0
- package/lib/models/dynamic-form/colonne-personnalisee.d.ts +2 -1
- package/lib/pipes/tsi-currency.pipe.d.ts +6 -4
- package/lib/providers/shared-ui-tsi.provider.d.ts +1 -1
- package/lib/tsi-components/input-components/tsi-currency-other-input/tsi-currency-other-input.component.d.ts +15 -10
- package/lib/tsi-components/input-components/tsi-currency-societe-input/tsi-currency-societe-input.component.d.ts +13 -10
- package/lib/tsi-components/output-components/tsi-currency-other-display/tsi-currency-other-display.component.d.ts +16 -6
- package/lib/tsi-components/output-components/tsi-currency-societe-display/tsi-currency-societe-display.component.d.ts +12 -13
- package/lib/tsi-components/poc/locale-poc/locale-poc.component.d.ts +39 -21
- package/lib/tsi-components/tsi-generic-crud/tsi-generic-crud.component.d.ts +4 -2
- package/package.json +1 -1
|
@@ -1,69 +1,101 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
1
|
+
import { Component, inject } from '@angular/core';
|
|
2
|
+
import { AppSettingsService } from '../../../services/settings/app-settings.service';
|
|
3
|
+
import { DefaultSocieteDevise } from '../../../consts/tsi-consts';
|
|
2
4
|
import * as i0 from "@angular/core";
|
|
3
5
|
import * as i1 from "primeng/api";
|
|
4
6
|
import * as i2 from "primeng/table";
|
|
5
|
-
import * as i3 from "../../input-components/tsi-
|
|
6
|
-
import * as i4 from "../../input-components/tsi-currency-
|
|
7
|
-
import * as i5 from "../../input-components/tsi-
|
|
8
|
-
import * as i6 from "../../input-components/tsi-
|
|
9
|
-
import * as i7 from "../../input-components/tsi-
|
|
10
|
-
import * as i8 from "../../
|
|
11
|
-
import * as i9 from "../../output-components/tsi-currency-
|
|
12
|
-
import * as i10 from "../../output-components/tsi-
|
|
13
|
-
import * as i11 from "../../output-components/tsi-
|
|
14
|
-
import * as i12 from "../../output-components/tsi-
|
|
7
|
+
import * as i3 from "../../input-components/tsi-search-combo/tsi-search-combo.component";
|
|
8
|
+
import * as i4 from "../../input-components/tsi-currency-other-input/tsi-currency-other-input.component";
|
|
9
|
+
import * as i5 from "../../input-components/tsi-currency-societe-input/tsi-currency-societe-input.component";
|
|
10
|
+
import * as i6 from "../../input-components/tsi-decimal-input/tsi-decimal-input.component";
|
|
11
|
+
import * as i7 from "../../input-components/tsi-integer/tsi-integer.component";
|
|
12
|
+
import * as i8 from "../../input-components/tsi-rate-input/tsi-rate-input.component";
|
|
13
|
+
import * as i9 from "../../output-components/tsi-currency-other-display/tsi-currency-other-display.component";
|
|
14
|
+
import * as i10 from "../../output-components/tsi-currency-societe-display/tsi-currency-societe-display.component";
|
|
15
|
+
import * as i11 from "../../output-components/tsi-decimal-display/tsi-decimal-display.component";
|
|
16
|
+
import * as i12 from "../../output-components/tsi-integer-display/tsi-integer-display.component";
|
|
17
|
+
import * as i13 from "../../output-components/tsi-rate-display/tsi-rate-display.component";
|
|
15
18
|
/**
|
|
16
|
-
* POC component used to validate and demonstrate
|
|
17
|
-
* locale
|
|
19
|
+
* Proof-of-concept (POC) component used to validate and demonstrate
|
|
20
|
+
* the library's locale handling and numeric formatting behavior.
|
|
18
21
|
*
|
|
19
|
-
*
|
|
20
|
-
* - Enter values
|
|
21
|
-
* -
|
|
22
|
+
* This page allows testers and developers to:
|
|
23
|
+
* - Enter values through input components
|
|
24
|
+
* - Instantly observe formatted results via display components
|
|
22
25
|
*
|
|
23
|
-
*
|
|
24
|
-
* -
|
|
25
|
-
* -
|
|
26
|
-
* -
|
|
26
|
+
* Main purposes:
|
|
27
|
+
* - Manual QA validation
|
|
28
|
+
* - Locale and formatting verification
|
|
29
|
+
* - Development and debugging support
|
|
27
30
|
*
|
|
28
|
-
*
|
|
31
|
+
* Covered formatting scenarios:
|
|
29
32
|
* - Company currency
|
|
30
33
|
* - External currency
|
|
31
34
|
* - Decimal numbers
|
|
32
35
|
* - Rates / percentages
|
|
33
|
-
* - Integers
|
|
36
|
+
* - Integers (with grouping)
|
|
34
37
|
*/
|
|
35
38
|
export class LocalePocComponent {
|
|
39
|
+
// Ctor
|
|
36
40
|
constructor() {
|
|
37
41
|
/**
|
|
38
|
-
*
|
|
42
|
+
* Available currencies used for testing currency inputs and displays.
|
|
43
|
+
*/
|
|
44
|
+
this.currencies = [
|
|
45
|
+
{ key: 'USD', value: 'United States Dollar' },
|
|
46
|
+
{ key: 'CAD', value: 'Canadian dollar' },
|
|
47
|
+
{ key: 'EUR', value: 'Euro' },
|
|
48
|
+
{ key: 'TND', value: 'Dinar tunisien' },
|
|
49
|
+
{ key: 'MAD', value: 'Moroccan Dirham' },
|
|
50
|
+
{ key: 'ABCD', value: 'Devise - Code non ISO' }
|
|
51
|
+
];
|
|
52
|
+
/**
|
|
53
|
+
* Company currency code.
|
|
54
|
+
* Bound to the `Tsi-Currency-Societe-Input` component.
|
|
55
|
+
*/
|
|
56
|
+
this.currencySocieteCode = DefaultSocieteDevise.codeDevise;
|
|
57
|
+
/**
|
|
58
|
+
* Company currency amount.
|
|
39
59
|
* Bound to the `Tsi-Currency-Societe-Input` component.
|
|
40
60
|
*/
|
|
41
|
-
this.
|
|
61
|
+
this.currencySocieteValue = 12345.25;
|
|
62
|
+
/**
|
|
63
|
+
* External currency code.
|
|
64
|
+
* Bound to the `Tsi-Currency-Other-Input` component.
|
|
65
|
+
*/
|
|
66
|
+
this.currencyOtherCode = 'EUR';
|
|
42
67
|
/**
|
|
43
|
-
* External currency
|
|
68
|
+
* External currency amount.
|
|
44
69
|
* Bound to the `Tsi-Currency-Other-Input` component.
|
|
45
70
|
*/
|
|
46
|
-
this.
|
|
71
|
+
this.currencyOtherValue = 987654.32;
|
|
47
72
|
/**
|
|
48
|
-
* Decimal value used to validate locale-specific
|
|
49
|
-
* decimal separators
|
|
73
|
+
* Decimal value used to validate locale-specific:
|
|
74
|
+
* - decimal separators
|
|
75
|
+
* - digit grouping behavior
|
|
50
76
|
*/
|
|
51
|
-
this.
|
|
77
|
+
this.decimalValue = 192837.5;
|
|
52
78
|
/**
|
|
53
79
|
* Rate value used to test percentage / rate formatting.
|
|
54
80
|
*/
|
|
55
|
-
this.
|
|
81
|
+
this.rateValue = 12.3;
|
|
56
82
|
/**
|
|
57
83
|
* Integer value used to validate thousands grouping
|
|
58
|
-
* without decimal
|
|
84
|
+
* without decimal precision.
|
|
59
85
|
*/
|
|
60
|
-
this.
|
|
86
|
+
this.integerValue = 123456789;
|
|
87
|
+
// DI
|
|
88
|
+
this._appSettingsService = inject(AppSettingsService);
|
|
89
|
+
this.currencySocieteCode = this._appSettingsService
|
|
90
|
+
.appSettings
|
|
91
|
+
.deviseSociete
|
|
92
|
+
.codeDevise ?? DefaultSocieteDevise.codeDevise;
|
|
61
93
|
}
|
|
62
94
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LocalePocComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
63
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: LocalePocComponent, selector: "lib-locale-poc", ngImport: i0, template: "<div class=\"card w-10 locale-poc-container\">\r\n\r\n <h3 class=\"mb-2\">Locale Formatting POC</h3>\r\n\r\n <!-- Explanation -->\r\n <p class=\"text-700 line-height-3 mb-4\">\r\n This page is a proof-of-concept used to validate the locale integration of the UI library.\r\n It allows testers and developers to enter numeric values using the library input components\r\n and immediately verify how those values are formatted by the corresponding display components.\r\n <br /><br />\r\n The objective is to ensure that number formatting (group separators, decimal separators,\r\n currency formatting, and integer grouping) behaves correctly for the currently active locale.\r\n This page is mainly intended for QA testing and debugging during internationalization development.\r\n </p>\r\n\r\n <!-- Locale Info Table -->\r\n <div class=\"mb-4 overflow-auto\">\r\n <h4 class=\"mb-2\">Supported Locales & Format</h4>\r\n <table class=\"table-auto w-full text-sm border-collapse border border-300\">\r\n <thead>\r\n <tr class=\"bg-gray-200\">\r\n <th class=\"border border-300 p-2 text-left\">Full Label</th>\r\n <th class=\"border border-300 p-2 text-left\">Code</th>\r\n <th class=\"border border-300 p-2 text-left\">Thousands Separator</th>\r\n <th class=\"border border-300 p-2 text-left\">Decimal Separator</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr>\r\n <td>French (France)</td>\r\n <td>fr-FR</td>\r\n <td class=\"font-bold text-lg\">\u23BD (space)</td>\r\n <td class=\"font-bold text-lg\">, (comma)</td>\r\n </tr>\r\n <tr>\r\n <td>English (United Kingdom)</td>\r\n <td>en-GB</td>\r\n <td class=\"font-bold text-lg\">, (comma)</td>\r\n <td class=\"font-bold text-lg\">. (dot)</td>\r\n </tr>\r\n <tr>\r\n <td>Arabic (Tunisia)</td>\r\n <td>ar-TN</td>\r\n <td class=\"font-bold text-lg\">. (dot)</td>\r\n <td class=\"font-bold text-lg\">, (comma)</td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n\r\n <!-- Input / Display Table -->\r\n <p-table [value]=\"[{}]\" styleClass=\"p-datatable-sm\">\r\n\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n <th style=\"width: 25%\">Field</th>\r\n <th style=\"width: 35%\">Input Component</th>\r\n <th style=\"width: 40%\">Display Component</th>\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"body\">\r\n\r\n <tr>\r\n <td>Currency (Societe)</td>\r\n <td>\r\n <Tsi-Currency-Societe-Input [(inputField)]=\"currencySociete\" />\r\n </td>\r\n <td>\r\n <Tsi-Currency-Societe-Display [inputData]=\"currencySociete\" />\r\n </td>\r\n </tr>\r\n\r\n <tr>\r\n <td>Currency (Other)</td>\r\n <td>\r\n <Tsi-Currency-Other-Input [(inputField)]=\"currencyOther\" currency=\"EUR\" />\r\n </td>\r\n <td>\r\n <Tsi-Currency-Other-Display [inputData]=\"currencyOther\" currency=\"EUR\" />\r\n </td>\r\n </tr>\r\n\r\n <tr>\r\n <td>Decimal</td>\r\n <td>\r\n <Tsi-Decimal-Input [(inputField)]=\"decimal\" [numOfDecimal]=\"3\" />\r\n </td>\r\n <td>\r\n <Tsi-Decimal-Display [inputData]=\"decimal\" [numOfDecimal]=\"3\" />\r\n </td>\r\n </tr>\r\n\r\n <tr>\r\n <td>Rate</td>\r\n <td>\r\n <Tsi-Rate-Input [(inputField)]=\"rate\" [numOfDecimal]=\"3\" [isFraction]=\"false\" />\r\n </td>\r\n <td>\r\n <Tsi-Rate-Display [inputData]=\"rate\" [numOfDecimal]=\"3\" [isFraction]=\"false\" />\r\n </td>\r\n </tr>\r\n\r\n <tr>\r\n <td>Integer</td>\r\n <td>\r\n <Tsi-Integer [(inputField)]=\"integer\" />\r\n </td>\r\n <td>\r\n <Tsi-Integer-Display [inputData]=\"integer\" />\r\n </td>\r\n </tr>\r\n\r\n </ng-template>\r\n\r\n </p-table>\r\n\r\n</div>", styles: [".locale-poc-container{padding:1rem!important}\n"], dependencies: [{ kind: "directive", type: i1.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i2.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "groupRowsByOrder", "responsiveLayout", "breakpoint", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll", "virtualRowHeight"], outputs: ["contextMenuSelectionChange", "selectAllChange", "selectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "component", type: i3.TsiCurrencyOtherInputComponent, selector: "Tsi-Currency-Other-Input", inputs: ["numOfDecimal", "currency", "class"], outputs: ["inputFieldChange"] }, { kind: "component", type: i4.TsiCurrencySocieteInputComponent, selector: "Tsi-Currency-Societe-Input", inputs: ["class"], outputs: ["inputFieldChange"] }, { kind: "component", type: i5.TsiDecimalInputComponent, selector: "Tsi-Decimal-Input", inputs: ["numOfDecimal", "class"], outputs: ["inputFieldChange"] }, { kind: "component", type: i6.TsiIntegerComponent, selector: "Tsi-Integer", inputs: ["class", "minValue", "maxValue", "delayChangeTime"], outputs: ["newItemEvent", "inputFieldChange"] }, { kind: "component", type: i7.TsiRateInputComponent, selector: "Tsi-Rate-Input", inputs: ["required", "isFraction", "numOfDecimal"], outputs: ["newItemEvent", "inputFieldChange"] }, { kind: "component", type: i8.TsiCurrencyOtherDisplayComponent, selector: "Tsi-Currency-Other-Display", inputs: ["inputData", "currency"] }, { kind: "component", type: i9.TsiCurrencySocieteDisplayComponent, selector: "Tsi-Currency-Societe-Display", inputs: ["inputData"] }, { kind: "component", type: i10.TsiDecimalDisplayComponent, selector: "Tsi-Decimal-Display", inputs: ["inputData", "formatDecimal", "numOfDecimal"] }, { kind: "component", type: i11.TsiIntegerDisplayComponent, selector: "Tsi-Integer-Display", inputs: ["inputData"] }, { kind: "component", type: i12.TsiRateDisplayComponent, selector: "Tsi-Rate-Display", inputs: ["isFraction", "inputData", "numOfDecimal"] }] }); }
|
|
95
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: LocalePocComponent, selector: "lib-locale-poc", ngImport: i0, template: "<div class=\"card w-10 locale-poc-container\">\r\n\r\n <h3 class=\"mb-2\">Locale Formatting POC</h3>\r\n\r\n <!-- Explanation -->\r\n <p class=\"text-700 line-height-3 mb-4\">\r\n This page is a proof-of-concept used to validate the locale integration of the UI library.\r\n It allows testers and developers to enter numeric values using the library input components\r\n and immediately verify how those values are formatted by the corresponding display components.\r\n <br /><br />\r\n The objective is to ensure that number formatting (group separators, decimal separators,\r\n currency formatting, and integer grouping) behaves correctly for the currently active locale.\r\n This page is mainly intended for QA testing and debugging during internationalization development.\r\n </p>\r\n\r\n <!-- Locale Info Table -->\r\n <div class=\"mb-4 overflow-auto\">\r\n <h4 class=\"mb-2\">Supported Locales & Format</h4>\r\n <table class=\"table-auto w-full text-sm border-collapse border border-300\">\r\n <thead>\r\n <tr class=\"bg-gray-200\">\r\n <th class=\"border border-300 p-2 text-left\">Full Label</th>\r\n <th class=\"border border-300 p-2 text-left\">Code</th>\r\n <th class=\"border border-300 p-2 text-left\">Thousands Separator</th>\r\n <th class=\"border border-300 p-2 text-left\">Decimal Separator</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr>\r\n <td>French (France)</td>\r\n <td>fr-FR</td>\r\n <td class=\"font-bold text-lg\">\u23BD (space)</td>\r\n <td class=\"font-bold text-lg\">, (comma)</td>\r\n </tr>\r\n <tr>\r\n <td>English (United Kingdom)</td>\r\n <td>en-GB</td>\r\n <td class=\"font-bold text-lg\">, (comma)</td>\r\n <td class=\"font-bold text-lg\">. (dot)</td>\r\n </tr>\r\n <tr>\r\n <td>Arabic (Tunisia)</td>\r\n <td>ar-TN</td>\r\n <td class=\"font-bold text-lg\">. (dot)</td>\r\n <td class=\"font-bold text-lg\">, (comma)</td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n\r\n <!-- Input / Display Table -->\r\n <p-table [value]=\"[{}]\" styleClass=\"p-datatable-sm\">\r\n\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n <th style=\"width: 25%\">Field</th>\r\n <th style=\"width: 25%\">Currency</th>\r\n <th style=\"width: 25%\">Input Component</th>\r\n <th style=\"width: 25%\">Display Component</th>\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"body\">\r\n\r\n <tr>\r\n <td>Currency (Societe)</td>\r\n <td>\r\n <Tsi-Search-Combo [datasource]=\"currencies\"\r\n [id-field]=\"'key'\"\r\n [label-field]=\"'value'\"\r\n [(bind)]=\"currencySocieteCode\"\r\n [isFiltered]=\"false\"\r\n [inputName]=\"'currencySocieteCode'\"\r\n [inputId]=\"'currencySocieteCode'\"\r\n [disabled]=\"true\" />\r\n </td>\r\n <td>\r\n <Tsi-Currency-Societe-Input [(inputField)]=\"currencySocieteValue\" />\r\n </td>\r\n <td>\r\n <Tsi-Currency-Societe-Display [inputData]=\"currencySocieteValue\" />\r\n </td>\r\n </tr>\r\n\r\n <tr>\r\n <td>Currency (Other)</td>\r\n <td>\r\n <Tsi-Search-Combo [datasource]=\"currencies\"\r\n [id-field]=\"'key'\"\r\n [label-field]=\"'value'\"\r\n [(bind)]=\"currencyOtherCode\"\r\n [isFiltered]=\"false\"\r\n [inputName]=\"'currencyOtherCode'\"\r\n [inputId]=\"'currencyOtherCode'\"\r\n [disabled]=\"false\" />\r\n </td>\r\n <td>\r\n <Tsi-Currency-Other-Input [(inputField)]=\"currencyOtherValue\" [currency]=\"currencyOtherCode\" />\r\n </td>\r\n <td>\r\n <Tsi-Currency-Other-Display [inputData]=\"currencyOtherValue\" [currency]=\"currencyOtherCode\" />\r\n </td>\r\n </tr>\r\n\r\n <tr>\r\n <td>Decimal</td>\r\n <td>RS</td>\r\n <td>\r\n <Tsi-Decimal-Input [(inputField)]=\"decimalValue\" [numOfDecimal]=\"3\" />\r\n </td>\r\n <td>\r\n <Tsi-Decimal-Display [inputData]=\"decimalValue\" [numOfDecimal]=\"3\" />\r\n </td>\r\n </tr>\r\n\r\n <tr>\r\n <td>Rate</td>\r\n <td>RS</td>\r\n <td>\r\n <Tsi-Rate-Input [(inputField)]=\"rateValue\" [numOfDecimal]=\"3\" [isFraction]=\"false\" />\r\n </td>\r\n <td>\r\n <Tsi-Rate-Display [inputData]=\"rateValue\" [numOfDecimal]=\"3\" [isFraction]=\"false\" />\r\n </td>\r\n </tr>\r\n\r\n <tr>\r\n <td>Integer</td>\r\n <td>RS</td>\r\n <td>\r\n <Tsi-Integer [(inputField)]=\"integerValue\" />\r\n </td>\r\n <td>\r\n <Tsi-Integer-Display [inputData]=\"integerValue\" />\r\n </td>\r\n </tr>\r\n\r\n </ng-template>\r\n\r\n </p-table>\r\n\r\n</div>", styles: [".locale-poc-container{padding:1rem!important}\n"], dependencies: [{ kind: "directive", type: i1.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i2.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "groupRowsByOrder", "responsiveLayout", "breakpoint", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll", "virtualRowHeight"], outputs: ["contextMenuSelectionChange", "selectAllChange", "selectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "component", type: i3.TsiSearchComboComponent, selector: "Tsi-Search-Combo", inputs: ["elementSourceUrl", "listSourceUrl", "listSourceParams", "id-field", "label-field", "multiple", "sort", "showClear", "reloadDataSource", "isFiltered", "selectedLabel", "maxWidth", "businessClass", "searchDebounceTime", "comboType", "statusMetadata", "currentRowItem", "datasource", "bind", "maxSelectedLabels", "tooltipMaxDisplayedItems", "bindMode", "showSearchButton", "showAddButton", "showConsultButton", "showUpdateButton"], outputs: ["bindChange", "datasource-loaded", "init", "isLoaded", "selectedLabelChange", "onClick", "onSearchButtonClick", "selectionChange"] }, { kind: "component", type: i4.TsiCurrencyOtherInputComponent, selector: "Tsi-Currency-Other-Input", inputs: ["currency", "class"], outputs: ["inputFieldChange"] }, { kind: "component", type: i5.TsiCurrencySocieteInputComponent, selector: "Tsi-Currency-Societe-Input", inputs: ["class"], outputs: ["inputFieldChange"] }, { kind: "component", type: i6.TsiDecimalInputComponent, selector: "Tsi-Decimal-Input", inputs: ["numOfDecimal", "class"], outputs: ["inputFieldChange"] }, { kind: "component", type: i7.TsiIntegerComponent, selector: "Tsi-Integer", inputs: ["class", "minValue", "maxValue", "delayChangeTime"], outputs: ["newItemEvent", "inputFieldChange"] }, { kind: "component", type: i8.TsiRateInputComponent, selector: "Tsi-Rate-Input", inputs: ["required", "isFraction", "numOfDecimal"], outputs: ["newItemEvent", "inputFieldChange"] }, { kind: "component", type: i9.TsiCurrencyOtherDisplayComponent, selector: "Tsi-Currency-Other-Display", inputs: ["currency", "inputData"] }, { kind: "component", type: i10.TsiCurrencySocieteDisplayComponent, selector: "Tsi-Currency-Societe-Display", inputs: ["inputData"] }, { kind: "component", type: i11.TsiDecimalDisplayComponent, selector: "Tsi-Decimal-Display", inputs: ["inputData", "formatDecimal", "numOfDecimal"] }, { kind: "component", type: i12.TsiIntegerDisplayComponent, selector: "Tsi-Integer-Display", inputs: ["inputData"] }, { kind: "component", type: i13.TsiRateDisplayComponent, selector: "Tsi-Rate-Display", inputs: ["isFraction", "inputData", "numOfDecimal"] }] }); }
|
|
64
96
|
}
|
|
65
97
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LocalePocComponent, decorators: [{
|
|
66
98
|
type: Component,
|
|
67
|
-
args: [{ selector: 'lib-locale-poc', template: "<div class=\"card w-10 locale-poc-container\">\r\n\r\n <h3 class=\"mb-2\">Locale Formatting POC</h3>\r\n\r\n <!-- Explanation -->\r\n <p class=\"text-700 line-height-3 mb-4\">\r\n This page is a proof-of-concept used to validate the locale integration of the UI library.\r\n It allows testers and developers to enter numeric values using the library input components\r\n and immediately verify how those values are formatted by the corresponding display components.\r\n <br /><br />\r\n The objective is to ensure that number formatting (group separators, decimal separators,\r\n currency formatting, and integer grouping) behaves correctly for the currently active locale.\r\n This page is mainly intended for QA testing and debugging during internationalization development.\r\n </p>\r\n\r\n <!-- Locale Info Table -->\r\n <div class=\"mb-4 overflow-auto\">\r\n <h4 class=\"mb-2\">Supported Locales & Format</h4>\r\n <table class=\"table-auto w-full text-sm border-collapse border border-300\">\r\n <thead>\r\n <tr class=\"bg-gray-200\">\r\n <th class=\"border border-300 p-2 text-left\">Full Label</th>\r\n <th class=\"border border-300 p-2 text-left\">Code</th>\r\n <th class=\"border border-300 p-2 text-left\">Thousands Separator</th>\r\n <th class=\"border border-300 p-2 text-left\">Decimal Separator</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr>\r\n <td>French (France)</td>\r\n <td>fr-FR</td>\r\n <td class=\"font-bold text-lg\">\u23BD (space)</td>\r\n <td class=\"font-bold text-lg\">, (comma)</td>\r\n </tr>\r\n <tr>\r\n <td>English (United Kingdom)</td>\r\n <td>en-GB</td>\r\n <td class=\"font-bold text-lg\">, (comma)</td>\r\n <td class=\"font-bold text-lg\">. (dot)</td>\r\n </tr>\r\n <tr>\r\n <td>Arabic (Tunisia)</td>\r\n <td>ar-TN</td>\r\n <td class=\"font-bold text-lg\">. (dot)</td>\r\n <td class=\"font-bold text-lg\">, (comma)</td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n\r\n <!-- Input / Display Table -->\r\n <p-table [value]=\"[{}]\" styleClass=\"p-datatable-sm\">\r\n\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n <th style=\"width: 25%\">Field</th>\r\n <th style=\"width:
|
|
68
|
-
}] });
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxlLXBvYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90c2ktc2hhcmVkLXVpL3NyYy9saWIvdHNpLWNvbXBvbmVudHMvcG9jL2xvY2FsZS1wb2MvbG9jYWxlLXBvYy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90c2ktc2hhcmVkLXVpL3NyYy9saWIvdHNpLWNvbXBvbmVudHMvcG9jL2xvY2FsZS1wb2MvbG9jYWxlLXBvYy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7Ozs7OztBQUUxQzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CRztBQU1ILE1BQU0sT0FBTyxrQkFBa0I7SUFML0I7UUFPRTs7O1dBR0c7UUFDSCxvQkFBZSxHQUFXLFFBQVEsQ0FBQztRQUVuQzs7O1dBR0c7UUFDSCxrQkFBYSxHQUFXLFNBQVMsQ0FBQztRQUVsQzs7O1dBR0c7UUFDSCxZQUFPLEdBQVcsUUFBUSxDQUFDO1FBRTNCOztXQUVHO1FBQ0gsU0FBSSxHQUFXLElBQUksQ0FBQztRQUVwQjs7O1dBR0c7UUFDSCxZQUFPLEdBQVcsU0FBUyxDQUFDO0tBQzdCOytHQTlCWSxrQkFBa0I7bUdBQWxCLGtCQUFrQixzREMzQi9CLHlnSkFxSE07OzRGRDFGTyxrQkFBa0I7a0JBTDlCLFNBQVM7K0JBQ0UsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG4vKipcclxuICogUE9DIGNvbXBvbmVudCB1c2VkIHRvIHZhbGlkYXRlIGFuZCBkZW1vbnN0cmF0ZSB0aGUgbGlicmFyeSdzXHJcbiAqIGxvY2FsZSBpbnRlZ3JhdGlvbiBhbmQgbnVtZXJpYyBmb3JtYXR0aW5nIGJlaGF2aW9yLlxyXG4gKlxyXG4gKiBUaGUgcGFnZSBhbGxvd3MgdGVzdGVycyB0bzpcclxuICogLSBFbnRlciB2YWx1ZXMgdXNpbmcgdGhlIGxpYnJhcnkgaW5wdXQgY29tcG9uZW50c1xyXG4gKiAtIEltbWVkaWF0ZWx5IG9ic2VydmUgdGhlIGZvcm1hdHRlZCBvdXRwdXQgdXNpbmcgZGlzcGxheSBjb21wb25lbnRzXHJcbiAqXHJcbiAqIFRoaXMgY29tcG9uZW50IGlzIGludGVuZGVkIGZvcjpcclxuICogLSBtYW51YWwgUUEgdGVzdGluZ1xyXG4gKiAtIGxvY2FsZSBmb3JtYXR0aW5nIHZhbGlkYXRpb25cclxuICogLSBkZXZlbG9wbWVudCBkZWJ1Z2dpbmdcclxuICpcclxuICogVGVzdGVkIGZvcm1hdHRpbmcgdHlwZXM6XHJcbiAqIC0gQ29tcGFueSBjdXJyZW5jeVxyXG4gKiAtIEV4dGVybmFsIGN1cnJlbmN5XHJcbiAqIC0gRGVjaW1hbCBudW1iZXJzXHJcbiAqIC0gUmF0ZXMgLyBwZXJjZW50YWdlc1xyXG4gKiAtIEludGVnZXJzXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1sb2NhbGUtcG9jJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbG9jYWxlLXBvYy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2xvY2FsZS1wb2MuY29tcG9uZW50LmNzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIExvY2FsZVBvY0NvbXBvbmVudCB7XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbXBhbnkgY3VycmVuY3kgdmFsdWUuXHJcbiAgICogQm91bmQgdG8gdGhlIGBUc2ktQ3VycmVuY3ktU29jaWV0ZS1JbnB1dGAgY29tcG9uZW50LlxyXG4gICAqL1xyXG4gIGN1cnJlbmN5U29jaWV0ZTogbnVtYmVyID0gMTIzNDUuMjU7XHJcblxyXG4gIC8qKlxyXG4gICAqIEV4dGVybmFsIGN1cnJlbmN5IHZhbHVlLlxyXG4gICAqIEJvdW5kIHRvIHRoZSBgVHNpLUN1cnJlbmN5LU90aGVyLUlucHV0YCBjb21wb25lbnQuXHJcbiAgICovXHJcbiAgY3VycmVuY3lPdGhlcjogbnVtYmVyID0gOTg3NjU0LjMyO1xyXG5cclxuICAvKipcclxuICAgKiBEZWNpbWFsIHZhbHVlIHVzZWQgdG8gdmFsaWRhdGUgbG9jYWxlLXNwZWNpZmljXHJcbiAgICogZGVjaW1hbCBzZXBhcmF0b3JzIGFuZCBncm91cGluZyBiZWhhdmlvci5cclxuICAgKi9cclxuICBkZWNpbWFsOiBudW1iZXIgPSAxOTI4MzcuNTtcclxuXHJcbiAgLyoqXHJcbiAgICogUmF0ZSB2YWx1ZSB1c2VkIHRvIHRlc3QgcGVyY2VudGFnZSAvIHJhdGUgZm9ybWF0dGluZy5cclxuICAgKi9cclxuICByYXRlOiBudW1iZXIgPSAxMi4zO1xyXG5cclxuICAvKipcclxuICAgKiBJbnRlZ2VyIHZhbHVlIHVzZWQgdG8gdmFsaWRhdGUgdGhvdXNhbmRzIGdyb3VwaW5nXHJcbiAgICogd2l0aG91dCBkZWNpbWFsIGRpZ2l0cy5cclxuICAgKi9cclxuICBpbnRlZ2VyOiBudW1iZXIgPSAxMjM0NTY3ODk7XHJcbn0iLCI8ZGl2IGNsYXNzPVwiY2FyZCB3LTEwIGxvY2FsZS1wb2MtY29udGFpbmVyXCI+XHJcblxyXG4gIDxoMyBjbGFzcz1cIm1iLTJcIj5Mb2NhbGUgRm9ybWF0dGluZyBQT0M8L2gzPlxyXG5cclxuICA8IS0tIEV4cGxhbmF0aW9uIC0tPlxyXG4gIDxwIGNsYXNzPVwidGV4dC03MDAgbGluZS1oZWlnaHQtMyBtYi00XCI+XHJcbiAgICAgIFRoaXMgcGFnZSBpcyBhIHByb29mLW9mLWNvbmNlcHQgdXNlZCB0byB2YWxpZGF0ZSB0aGUgbG9jYWxlIGludGVncmF0aW9uIG9mIHRoZSBVSSBsaWJyYXJ5LlxyXG4gICAgICBJdCBhbGxvd3MgdGVzdGVycyBhbmQgZGV2ZWxvcGVycyB0byBlbnRlciBudW1lcmljIHZhbHVlcyB1c2luZyB0aGUgbGlicmFyeSBpbnB1dCBjb21wb25lbnRzXHJcbiAgICAgIGFuZCBpbW1lZGlhdGVseSB2ZXJpZnkgaG93IHRob3NlIHZhbHVlcyBhcmUgZm9ybWF0dGVkIGJ5IHRoZSBjb3JyZXNwb25kaW5nIGRpc3BsYXkgY29tcG9uZW50cy5cclxuICAgICAgPGJyIC8+PGJyIC8+XHJcbiAgICAgIFRoZSBvYmplY3RpdmUgaXMgdG8gZW5zdXJlIHRoYXQgbnVtYmVyIGZvcm1hdHRpbmcgKGdyb3VwIHNlcGFyYXRvcnMsIGRlY2ltYWwgc2VwYXJhdG9ycyxcclxuICAgICAgY3VycmVuY3kgZm9ybWF0dGluZywgYW5kIGludGVnZXIgZ3JvdXBpbmcpIGJlaGF2ZXMgY29ycmVjdGx5IGZvciB0aGUgY3VycmVudGx5IGFjdGl2ZSBsb2NhbGUuXHJcbiAgICAgIFRoaXMgcGFnZSBpcyBtYWlubHkgaW50ZW5kZWQgZm9yIFFBIHRlc3RpbmcgYW5kIGRlYnVnZ2luZyBkdXJpbmcgaW50ZXJuYXRpb25hbGl6YXRpb24gZGV2ZWxvcG1lbnQuXHJcbiAgPC9wPlxyXG5cclxuICA8IS0tIExvY2FsZSBJbmZvIFRhYmxlIC0tPlxyXG4gIDxkaXYgY2xhc3M9XCJtYi00IG92ZXJmbG93LWF1dG9cIj5cclxuICAgICAgPGg0IGNsYXNzPVwibWItMlwiPlN1cHBvcnRlZCBMb2NhbGVzICYgRm9ybWF0PC9oND5cclxuICAgICAgPHRhYmxlIGNsYXNzPVwidGFibGUtYXV0byB3LWZ1bGwgdGV4dC1zbSBib3JkZXItY29sbGFwc2UgYm9yZGVyIGJvcmRlci0zMDBcIj5cclxuICAgICAgICAgIDx0aGVhZD5cclxuICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJiZy1ncmF5LTIwMFwiPlxyXG4gICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJib3JkZXIgYm9yZGVyLTMwMCBwLTIgdGV4dC1sZWZ0XCI+RnVsbCBMYWJlbDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cImJvcmRlciBib3JkZXItMzAwIHAtMiB0ZXh0LWxlZnRcIj5Db2RlPC90aD5cclxuICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwiYm9yZGVyIGJvcmRlci0zMDAgcC0yIHRleHQtbGVmdFwiPlRob3VzYW5kcyBTZXBhcmF0b3I8L3RoPlxyXG4gICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJib3JkZXIgYm9yZGVyLTMwMCBwLTIgdGV4dC1sZWZ0XCI+RGVjaW1hbCBTZXBhcmF0b3I8L3RoPlxyXG4gICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICA8L3RoZWFkPlxyXG4gICAgICAgICAgPHRib2R5PlxyXG4gICAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICAgICAgPHRkPkZyZW5jaCAoRnJhbmNlKTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgIDx0ZD5mci1GUjwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImZvbnQtYm9sZCB0ZXh0LWxnXCI+4o69IChzcGFjZSk8L3RkPlxyXG4gICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJmb250LWJvbGQgdGV4dC1sZ1wiPiwgKGNvbW1hKTwvdGQ+XHJcbiAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgICAgICAgIDx0ZD5FbmdsaXNoIChVbml0ZWQgS2luZ2RvbSk8L3RkPlxyXG4gICAgICAgICAgICAgICAgICA8dGQ+ZW4tR0I8L3RkPlxyXG4gICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJmb250LWJvbGQgdGV4dC1sZ1wiPiwgKGNvbW1hKTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImZvbnQtYm9sZCB0ZXh0LWxnXCI+LiAoZG90KTwvdGQ+XHJcbiAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgICAgICAgIDx0ZD5BcmFiaWMgKFR1bmlzaWEpPC90ZD5cclxuICAgICAgICAgICAgICAgICAgPHRkPmFyLVROPC90ZD5cclxuICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiZm9udC1ib2xkIHRleHQtbGdcIj4uIChkb3QpPC90ZD5cclxuICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiZm9udC1ib2xkIHRleHQtbGdcIj4sIChjb21tYSk8L3RkPlxyXG4gICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICA8L3Rib2R5PlxyXG4gICAgICA8L3RhYmxlPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8IS0tIElucHV0IC8gRGlzcGxheSBUYWJsZSAtLT5cclxuICA8cC10YWJsZSBbdmFsdWVdPVwiW3t9XVwiIHN0eWxlQ2xhc3M9XCJwLWRhdGF0YWJsZS1zbVwiPlxyXG5cclxuICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiPlxyXG4gICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgIDx0aCBzdHlsZT1cIndpZHRoOiAyNSVcIj5GaWVsZDwvdGg+XHJcbiAgICAgICAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6IDM1JVwiPklucHV0IENvbXBvbmVudDwvdGg+XHJcbiAgICAgICAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6IDQwJVwiPkRpc3BsYXkgQ29tcG9uZW50PC90aD5cclxuICAgICAgICAgIDwvdHI+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiYm9keVwiPlxyXG5cclxuICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICA8dGQ+Q3VycmVuY3kgKFNvY2lldGUpPC90ZD5cclxuICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgIDxUc2ktQ3VycmVuY3ktU29jaWV0ZS1JbnB1dCBbKGlucHV0RmllbGQpXT1cImN1cnJlbmN5U29jaWV0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgIDxUc2ktQ3VycmVuY3ktU29jaWV0ZS1EaXNwbGF5IFtpbnB1dERhdGFdPVwiY3VycmVuY3lTb2NpZXRlXCIgLz5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgPC90cj5cclxuXHJcbiAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgICAgPHRkPkN1cnJlbmN5IChPdGhlcik8L3RkPlxyXG4gICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgPFRzaS1DdXJyZW5jeS1PdGhlci1JbnB1dCBbKGlucHV0RmllbGQpXT1cImN1cnJlbmN5T3RoZXJcIiBjdXJyZW5jeT1cIkVVUlwiIC8+XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgIDxUc2ktQ3VycmVuY3ktT3RoZXItRGlzcGxheSBbaW5wdXREYXRhXT1cImN1cnJlbmN5T3RoZXJcIiBjdXJyZW5jeT1cIkVVUlwiIC8+XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgIDwvdHI+XHJcblxyXG4gICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgIDx0ZD5EZWNpbWFsPC90ZD5cclxuICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgIDxUc2ktRGVjaW1hbC1JbnB1dCBbKGlucHV0RmllbGQpXT1cImRlY2ltYWxcIiBbbnVtT2ZEZWNpbWFsXT1cIjNcIiAvPlxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICA8VHNpLURlY2ltYWwtRGlzcGxheSBbaW5wdXREYXRhXT1cImRlY2ltYWxcIiBbbnVtT2ZEZWNpbWFsXT1cIjNcIiAvPlxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICA8L3RyPlxyXG5cclxuICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICA8dGQ+UmF0ZTwvdGQ+XHJcbiAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICA8VHNpLVJhdGUtSW5wdXQgWyhpbnB1dEZpZWxkKV09XCJyYXRlXCIgW251bU9mRGVjaW1hbF09XCIzXCIgW2lzRnJhY3Rpb25dPVwiZmFsc2VcIiAvPlxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICA8VHNpLVJhdGUtRGlzcGxheSBbaW5wdXREYXRhXT1cInJhdGVcIiBbbnVtT2ZEZWNpbWFsXT1cIjNcIiBbaXNGcmFjdGlvbl09XCJmYWxzZVwiIC8+XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgIDwvdHI+XHJcblxyXG4gICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgIDx0ZD5JbnRlZ2VyPC90ZD5cclxuICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgIDxUc2ktSW50ZWdlciBbKGlucHV0RmllbGQpXT1cImludGVnZXJcIiAvPlxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICA8VHNpLUludGVnZXItRGlzcGxheSBbaW5wdXREYXRhXT1cImludGVnZXJcIiAvPlxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICA8L3RyPlxyXG5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgPC9wLXRhYmxlPlxyXG5cclxuPC9kaXY+Il19
|
|
99
|
+
args: [{ selector: 'lib-locale-poc', template: "<div class=\"card w-10 locale-poc-container\">\r\n\r\n <h3 class=\"mb-2\">Locale Formatting POC</h3>\r\n\r\n <!-- Explanation -->\r\n <p class=\"text-700 line-height-3 mb-4\">\r\n This page is a proof-of-concept used to validate the locale integration of the UI library.\r\n It allows testers and developers to enter numeric values using the library input components\r\n and immediately verify how those values are formatted by the corresponding display components.\r\n <br /><br />\r\n The objective is to ensure that number formatting (group separators, decimal separators,\r\n currency formatting, and integer grouping) behaves correctly for the currently active locale.\r\n This page is mainly intended for QA testing and debugging during internationalization development.\r\n </p>\r\n\r\n <!-- Locale Info Table -->\r\n <div class=\"mb-4 overflow-auto\">\r\n <h4 class=\"mb-2\">Supported Locales & Format</h4>\r\n <table class=\"table-auto w-full text-sm border-collapse border border-300\">\r\n <thead>\r\n <tr class=\"bg-gray-200\">\r\n <th class=\"border border-300 p-2 text-left\">Full Label</th>\r\n <th class=\"border border-300 p-2 text-left\">Code</th>\r\n <th class=\"border border-300 p-2 text-left\">Thousands Separator</th>\r\n <th class=\"border border-300 p-2 text-left\">Decimal Separator</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr>\r\n <td>French (France)</td>\r\n <td>fr-FR</td>\r\n <td class=\"font-bold text-lg\">\u23BD (space)</td>\r\n <td class=\"font-bold text-lg\">, (comma)</td>\r\n </tr>\r\n <tr>\r\n <td>English (United Kingdom)</td>\r\n <td>en-GB</td>\r\n <td class=\"font-bold text-lg\">, (comma)</td>\r\n <td class=\"font-bold text-lg\">. (dot)</td>\r\n </tr>\r\n <tr>\r\n <td>Arabic (Tunisia)</td>\r\n <td>ar-TN</td>\r\n <td class=\"font-bold text-lg\">. (dot)</td>\r\n <td class=\"font-bold text-lg\">, (comma)</td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n\r\n <!-- Input / Display Table -->\r\n <p-table [value]=\"[{}]\" styleClass=\"p-datatable-sm\">\r\n\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n <th style=\"width: 25%\">Field</th>\r\n <th style=\"width: 25%\">Currency</th>\r\n <th style=\"width: 25%\">Input Component</th>\r\n <th style=\"width: 25%\">Display Component</th>\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"body\">\r\n\r\n <tr>\r\n <td>Currency (Societe)</td>\r\n <td>\r\n <Tsi-Search-Combo [datasource]=\"currencies\"\r\n [id-field]=\"'key'\"\r\n [label-field]=\"'value'\"\r\n [(bind)]=\"currencySocieteCode\"\r\n [isFiltered]=\"false\"\r\n [inputName]=\"'currencySocieteCode'\"\r\n [inputId]=\"'currencySocieteCode'\"\r\n [disabled]=\"true\" />\r\n </td>\r\n <td>\r\n <Tsi-Currency-Societe-Input [(inputField)]=\"currencySocieteValue\" />\r\n </td>\r\n <td>\r\n <Tsi-Currency-Societe-Display [inputData]=\"currencySocieteValue\" />\r\n </td>\r\n </tr>\r\n\r\n <tr>\r\n <td>Currency (Other)</td>\r\n <td>\r\n <Tsi-Search-Combo [datasource]=\"currencies\"\r\n [id-field]=\"'key'\"\r\n [label-field]=\"'value'\"\r\n [(bind)]=\"currencyOtherCode\"\r\n [isFiltered]=\"false\"\r\n [inputName]=\"'currencyOtherCode'\"\r\n [inputId]=\"'currencyOtherCode'\"\r\n [disabled]=\"false\" />\r\n </td>\r\n <td>\r\n <Tsi-Currency-Other-Input [(inputField)]=\"currencyOtherValue\" [currency]=\"currencyOtherCode\" />\r\n </td>\r\n <td>\r\n <Tsi-Currency-Other-Display [inputData]=\"currencyOtherValue\" [currency]=\"currencyOtherCode\" />\r\n </td>\r\n </tr>\r\n\r\n <tr>\r\n <td>Decimal</td>\r\n <td>RS</td>\r\n <td>\r\n <Tsi-Decimal-Input [(inputField)]=\"decimalValue\" [numOfDecimal]=\"3\" />\r\n </td>\r\n <td>\r\n <Tsi-Decimal-Display [inputData]=\"decimalValue\" [numOfDecimal]=\"3\" />\r\n </td>\r\n </tr>\r\n\r\n <tr>\r\n <td>Rate</td>\r\n <td>RS</td>\r\n <td>\r\n <Tsi-Rate-Input [(inputField)]=\"rateValue\" [numOfDecimal]=\"3\" [isFraction]=\"false\" />\r\n </td>\r\n <td>\r\n <Tsi-Rate-Display [inputData]=\"rateValue\" [numOfDecimal]=\"3\" [isFraction]=\"false\" />\r\n </td>\r\n </tr>\r\n\r\n <tr>\r\n <td>Integer</td>\r\n <td>RS</td>\r\n <td>\r\n <Tsi-Integer [(inputField)]=\"integerValue\" />\r\n </td>\r\n <td>\r\n <Tsi-Integer-Display [inputData]=\"integerValue\" />\r\n </td>\r\n </tr>\r\n\r\n </ng-template>\r\n\r\n </p-table>\r\n\r\n</div>", styles: [".locale-poc-container{padding:1rem!important}\n"] }]
|
|
100
|
+
}], ctorParameters: () => [] });
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxlLXBvYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90c2ktc2hhcmVkLXVpL3NyYy9saWIvdHNpLWNvbXBvbmVudHMvcG9jL2xvY2FsZS1wb2MvbG9jYWxlLXBvYy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90c2ktc2hhcmVkLXVpL3NyYy9saWIvdHNpLWNvbXBvbmVudHMvcG9jL2xvY2FsZS1wb2MvbG9jYWxlLXBvYy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNyRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBRWxFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJHO0FBTUgsTUFBTSxPQUFPLGtCQUFrQjtJQTJEN0IsT0FBTztJQUNQO1FBMURBOztXQUVHO1FBQ0gsZUFBVSxHQUErQjtZQUN2QyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLHNCQUFzQixFQUFFO1lBQzdDLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUU7WUFDeEMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7WUFDN0IsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRTtZQUN2QyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFO1lBQ3hDLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsdUJBQXVCLEVBQUU7U0FDaEQsQ0FBQztRQUVGOzs7V0FHRztRQUNILHdCQUFtQixHQUFXLG9CQUFvQixDQUFDLFVBQVUsQ0FBQztRQUU5RDs7O1dBR0c7UUFDSCx5QkFBb0IsR0FBVyxRQUFRLENBQUM7UUFFeEM7OztXQUdHO1FBQ0gsc0JBQWlCLEdBQVcsS0FBSyxDQUFDO1FBRWxDOzs7V0FHRztRQUNILHVCQUFrQixHQUFXLFNBQVMsQ0FBQztRQUV2Qzs7OztXQUlHO1FBQ0gsaUJBQVksR0FBVyxRQUFRLENBQUM7UUFFaEM7O1dBRUc7UUFDSCxjQUFTLEdBQVcsSUFBSSxDQUFDO1FBRXpCOzs7V0FHRztRQUNILGlCQUFZLEdBQVcsU0FBUyxDQUFDO1FBRWpDLEtBQUs7UUFDRyx3QkFBbUIsR0FBdUIsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFJM0UsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxtQkFBbUI7YUFDaEQsV0FBVzthQUNYLGFBQWE7YUFDYixVQUFVLElBQUksb0JBQW9CLENBQUMsVUFBVSxDQUFDO0lBQ25ELENBQUM7K0dBakVVLGtCQUFrQjttR0FBbEIsa0JBQWtCLHNEQzlCL0IsbXBMQTZJTTs7NEZEL0dPLGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDRSxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBLZXlWYWx1ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFwcFNldHRpbmdzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3NldHRpbmdzL2FwcC1zZXR0aW5ncy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGVmYXVsdFNvY2lldGVEZXZpc2UgfSBmcm9tICcuLi8uLi8uLi9jb25zdHMvdHNpLWNvbnN0cyc7XHJcblxyXG4vKipcclxuICogUHJvb2Ytb2YtY29uY2VwdCAoUE9DKSBjb21wb25lbnQgdXNlZCB0byB2YWxpZGF0ZSBhbmQgZGVtb25zdHJhdGVcclxuICogdGhlIGxpYnJhcnkncyBsb2NhbGUgaGFuZGxpbmcgYW5kIG51bWVyaWMgZm9ybWF0dGluZyBiZWhhdmlvci5cclxuICpcclxuICogVGhpcyBwYWdlIGFsbG93cyB0ZXN0ZXJzIGFuZCBkZXZlbG9wZXJzIHRvOlxyXG4gKiAtIEVudGVyIHZhbHVlcyB0aHJvdWdoIGlucHV0IGNvbXBvbmVudHNcclxuICogLSBJbnN0YW50bHkgb2JzZXJ2ZSBmb3JtYXR0ZWQgcmVzdWx0cyB2aWEgZGlzcGxheSBjb21wb25lbnRzXHJcbiAqXHJcbiAqIE1haW4gcHVycG9zZXM6XHJcbiAqIC0gTWFudWFsIFFBIHZhbGlkYXRpb25cclxuICogLSBMb2NhbGUgYW5kIGZvcm1hdHRpbmcgdmVyaWZpY2F0aW9uXHJcbiAqIC0gRGV2ZWxvcG1lbnQgYW5kIGRlYnVnZ2luZyBzdXBwb3J0XHJcbiAqXHJcbiAqIENvdmVyZWQgZm9ybWF0dGluZyBzY2VuYXJpb3M6XHJcbiAqIC0gQ29tcGFueSBjdXJyZW5jeVxyXG4gKiAtIEV4dGVybmFsIGN1cnJlbmN5XHJcbiAqIC0gRGVjaW1hbCBudW1iZXJzXHJcbiAqIC0gUmF0ZXMgLyBwZXJjZW50YWdlc1xyXG4gKiAtIEludGVnZXJzICh3aXRoIGdyb3VwaW5nKVxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItbG9jYWxlLXBvYycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2xvY2FsZS1wb2MuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9sb2NhbGUtcG9jLmNvbXBvbmVudC5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMb2NhbGVQb2NDb21wb25lbnQge1xyXG5cclxuICAvKipcclxuICAgKiBBdmFpbGFibGUgY3VycmVuY2llcyB1c2VkIGZvciB0ZXN0aW5nIGN1cnJlbmN5IGlucHV0cyBhbmQgZGlzcGxheXMuXHJcbiAgICovXHJcbiAgY3VycmVuY2llczogS2V5VmFsdWU8c3RyaW5nLCBzdHJpbmc+W10gPSBbXHJcbiAgICB7IGtleTogJ1VTRCcsIHZhbHVlOiAnVW5pdGVkIFN0YXRlcyBEb2xsYXInIH0sXHJcbiAgICB7IGtleTogJ0NBRCcsIHZhbHVlOiAnQ2FuYWRpYW4gZG9sbGFyJyB9LFxyXG4gICAgeyBrZXk6ICdFVVInLCB2YWx1ZTogJ0V1cm8nIH0sXHJcbiAgICB7IGtleTogJ1RORCcsIHZhbHVlOiAnRGluYXIgdHVuaXNpZW4nIH0sXHJcbiAgICB7IGtleTogJ01BRCcsIHZhbHVlOiAnTW9yb2NjYW4gRGlyaGFtJyB9LFxyXG4gICAgeyBrZXk6ICdBQkNEJywgdmFsdWU6ICdEZXZpc2UgLSBDb2RlIG5vbiBJU08nIH1cclxuICBdO1xyXG5cclxuICAvKipcclxuICAgKiBDb21wYW55IGN1cnJlbmN5IGNvZGUuXHJcbiAgICogQm91bmQgdG8gdGhlIGBUc2ktQ3VycmVuY3ktU29jaWV0ZS1JbnB1dGAgY29tcG9uZW50LlxyXG4gICAqL1xyXG4gIGN1cnJlbmN5U29jaWV0ZUNvZGU6IHN0cmluZyA9IERlZmF1bHRTb2NpZXRlRGV2aXNlLmNvZGVEZXZpc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbXBhbnkgY3VycmVuY3kgYW1vdW50LlxyXG4gICAqIEJvdW5kIHRvIHRoZSBgVHNpLUN1cnJlbmN5LVNvY2lldGUtSW5wdXRgIGNvbXBvbmVudC5cclxuICAgKi9cclxuICBjdXJyZW5jeVNvY2lldGVWYWx1ZTogbnVtYmVyID0gMTIzNDUuMjU7XHJcblxyXG4gIC8qKlxyXG4gICAqIEV4dGVybmFsIGN1cnJlbmN5IGNvZGUuXHJcbiAgICogQm91bmQgdG8gdGhlIGBUc2ktQ3VycmVuY3ktT3RoZXItSW5wdXRgIGNvbXBvbmVudC5cclxuICAgKi9cclxuICBjdXJyZW5jeU90aGVyQ29kZTogc3RyaW5nID0gJ0VVUic7XHJcblxyXG4gIC8qKlxyXG4gICAqIEV4dGVybmFsIGN1cnJlbmN5IGFtb3VudC5cclxuICAgKiBCb3VuZCB0byB0aGUgYFRzaS1DdXJyZW5jeS1PdGhlci1JbnB1dGAgY29tcG9uZW50LlxyXG4gICAqL1xyXG4gIGN1cnJlbmN5T3RoZXJWYWx1ZTogbnVtYmVyID0gOTg3NjU0LjMyO1xyXG5cclxuICAvKipcclxuICAgKiBEZWNpbWFsIHZhbHVlIHVzZWQgdG8gdmFsaWRhdGUgbG9jYWxlLXNwZWNpZmljOlxyXG4gICAqIC0gZGVjaW1hbCBzZXBhcmF0b3JzXHJcbiAgICogLSBkaWdpdCBncm91cGluZyBiZWhhdmlvclxyXG4gICAqL1xyXG4gIGRlY2ltYWxWYWx1ZTogbnVtYmVyID0gMTkyODM3LjU7XHJcblxyXG4gIC8qKlxyXG4gICAqIFJhdGUgdmFsdWUgdXNlZCB0byB0ZXN0IHBlcmNlbnRhZ2UgLyByYXRlIGZvcm1hdHRpbmcuXHJcbiAgICovXHJcbiAgcmF0ZVZhbHVlOiBudW1iZXIgPSAxMi4zO1xyXG5cclxuICAvKipcclxuICAgKiBJbnRlZ2VyIHZhbHVlIHVzZWQgdG8gdmFsaWRhdGUgdGhvdXNhbmRzIGdyb3VwaW5nXHJcbiAgICogd2l0aG91dCBkZWNpbWFsIHByZWNpc2lvbi5cclxuICAgKi9cclxuICBpbnRlZ2VyVmFsdWU6IG51bWJlciA9IDEyMzQ1Njc4OTtcclxuXHJcbiAgLy8gRElcclxuICBwcml2YXRlIF9hcHBTZXR0aW5nc1NlcnZpY2U6IEFwcFNldHRpbmdzU2VydmljZSA9IGluamVjdChBcHBTZXR0aW5nc1NlcnZpY2UpO1xyXG5cclxuICAvLyBDdG9yXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLmN1cnJlbmN5U29jaWV0ZUNvZGUgPSB0aGlzLl9hcHBTZXR0aW5nc1NlcnZpY2VcclxuICAgICAgLmFwcFNldHRpbmdzXHJcbiAgICAgIC5kZXZpc2VTb2NpZXRlXHJcbiAgICAgIC5jb2RlRGV2aXNlID8/IERlZmF1bHRTb2NpZXRlRGV2aXNlLmNvZGVEZXZpc2U7XHJcbiAgfVxyXG59IiwiPGRpdiBjbGFzcz1cImNhcmQgdy0xMCBsb2NhbGUtcG9jLWNvbnRhaW5lclwiPlxyXG5cclxuICA8aDMgY2xhc3M9XCJtYi0yXCI+TG9jYWxlIEZvcm1hdHRpbmcgUE9DPC9oMz5cclxuXHJcbiAgPCEtLSBFeHBsYW5hdGlvbiAtLT5cclxuICA8cCBjbGFzcz1cInRleHQtNzAwIGxpbmUtaGVpZ2h0LTMgbWItNFwiPlxyXG4gICAgICBUaGlzIHBhZ2UgaXMgYSBwcm9vZi1vZi1jb25jZXB0IHVzZWQgdG8gdmFsaWRhdGUgdGhlIGxvY2FsZSBpbnRlZ3JhdGlvbiBvZiB0aGUgVUkgbGlicmFyeS5cclxuICAgICAgSXQgYWxsb3dzIHRlc3RlcnMgYW5kIGRldmVsb3BlcnMgdG8gZW50ZXIgbnVtZXJpYyB2YWx1ZXMgdXNpbmcgdGhlIGxpYnJhcnkgaW5wdXQgY29tcG9uZW50c1xyXG4gICAgICBhbmQgaW1tZWRpYXRlbHkgdmVyaWZ5IGhvdyB0aG9zZSB2YWx1ZXMgYXJlIGZvcm1hdHRlZCBieSB0aGUgY29ycmVzcG9uZGluZyBkaXNwbGF5IGNvbXBvbmVudHMuXHJcbiAgICAgIDxiciAvPjxiciAvPlxyXG4gICAgICBUaGUgb2JqZWN0aXZlIGlzIHRvIGVuc3VyZSB0aGF0IG51bWJlciBmb3JtYXR0aW5nIChncm91cCBzZXBhcmF0b3JzLCBkZWNpbWFsIHNlcGFyYXRvcnMsXHJcbiAgICAgIGN1cnJlbmN5IGZvcm1hdHRpbmcsIGFuZCBpbnRlZ2VyIGdyb3VwaW5nKSBiZWhhdmVzIGNvcnJlY3RseSBmb3IgdGhlIGN1cnJlbnRseSBhY3RpdmUgbG9jYWxlLlxyXG4gICAgICBUaGlzIHBhZ2UgaXMgbWFpbmx5IGludGVuZGVkIGZvciBRQSB0ZXN0aW5nIGFuZCBkZWJ1Z2dpbmcgZHVyaW5nIGludGVybmF0aW9uYWxpemF0aW9uIGRldmVsb3BtZW50LlxyXG4gIDwvcD5cclxuXHJcbiAgPCEtLSBMb2NhbGUgSW5mbyBUYWJsZSAtLT5cclxuICA8ZGl2IGNsYXNzPVwibWItNCBvdmVyZmxvdy1hdXRvXCI+XHJcbiAgICAgIDxoNCBjbGFzcz1cIm1iLTJcIj5TdXBwb3J0ZWQgTG9jYWxlcyAmIEZvcm1hdDwvaDQ+XHJcbiAgICAgIDx0YWJsZSBjbGFzcz1cInRhYmxlLWF1dG8gdy1mdWxsIHRleHQtc20gYm9yZGVyLWNvbGxhcHNlIGJvcmRlciBib3JkZXItMzAwXCI+XHJcbiAgICAgICAgICA8dGhlYWQ+XHJcbiAgICAgICAgICAgICAgPHRyIGNsYXNzPVwiYmctZ3JheS0yMDBcIj5cclxuICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwiYm9yZGVyIGJvcmRlci0zMDAgcC0yIHRleHQtbGVmdFwiPkZ1bGwgTGFiZWw8L3RoPlxyXG4gICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJib3JkZXIgYm9yZGVyLTMwMCBwLTIgdGV4dC1sZWZ0XCI+Q29kZTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cImJvcmRlciBib3JkZXItMzAwIHAtMiB0ZXh0LWxlZnRcIj5UaG91c2FuZHMgU2VwYXJhdG9yPC90aD5cclxuICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwiYm9yZGVyIGJvcmRlci0zMDAgcC0yIHRleHQtbGVmdFwiPkRlY2ltYWwgU2VwYXJhdG9yPC90aD5cclxuICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgPC90aGVhZD5cclxuICAgICAgICAgIDx0Ym9keT5cclxuICAgICAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgICAgICAgIDx0ZD5GcmVuY2ggKEZyYW5jZSk8L3RkPlxyXG4gICAgICAgICAgICAgICAgICA8dGQ+ZnItRlI8L3RkPlxyXG4gICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJmb250LWJvbGQgdGV4dC1sZ1wiPuKOvSAoc3BhY2UpPC90ZD5cclxuICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiZm9udC1ib2xkIHRleHQtbGdcIj4sIChjb21tYSk8L3RkPlxyXG4gICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgICA8dGQ+RW5nbGlzaCAoVW5pdGVkIEtpbmdkb20pPC90ZD5cclxuICAgICAgICAgICAgICAgICAgPHRkPmVuLUdCPC90ZD5cclxuICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiZm9udC1ib2xkIHRleHQtbGdcIj4sIChjb21tYSk8L3RkPlxyXG4gICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJmb250LWJvbGQgdGV4dC1sZ1wiPi4gKGRvdCk8L3RkPlxyXG4gICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgICA8dGQ+QXJhYmljIChUdW5pc2lhKTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgIDx0ZD5hci1UTjwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImZvbnQtYm9sZCB0ZXh0LWxnXCI+LiAoZG90KTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImZvbnQtYm9sZCB0ZXh0LWxnXCI+LCAoY29tbWEpPC90ZD5cclxuICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgPC90Ym9keT5cclxuICAgICAgPC90YWJsZT5cclxuICA8L2Rpdj5cclxuXHJcbiAgPCEtLSBJbnB1dCAvIERpc3BsYXkgVGFibGUgLS0+XHJcbiAgPHAtdGFibGUgW3ZhbHVlXT1cIlt7fV1cIiBzdHlsZUNsYXNzPVwicC1kYXRhdGFibGUtc21cIj5cclxuXHJcbiAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkZXJcIj5cclxuICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICA8dGggc3R5bGU9XCJ3aWR0aDogMjUlXCI+RmllbGQ8L3RoPlxyXG4gICAgICAgICAgICAgIDx0aCBzdHlsZT1cIndpZHRoOiAyNSVcIj5DdXJyZW5jeTwvdGg+XHJcbiAgICAgICAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6IDI1JVwiPklucHV0IENvbXBvbmVudDwvdGg+XHJcbiAgICAgICAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6IDI1JVwiPkRpc3BsYXkgQ29tcG9uZW50PC90aD5cclxuICAgICAgICAgIDwvdHI+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiYm9keVwiPlxyXG5cclxuICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICA8dGQ+Q3VycmVuY3kgKFNvY2lldGUpPC90ZD5cclxuICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICA8VHNpLVNlYXJjaC1Db21ibyBbZGF0YXNvdXJjZV09XCJjdXJyZW5jaWVzXCJcclxuICAgICAgICAgICAgICAgICAgICBbaWQtZmllbGRdPVwiJ2tleSdcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtsYWJlbC1maWVsZF09XCIndmFsdWUnXCJcclxuICAgICAgICAgICAgICAgICAgICBbKGJpbmQpXT1cImN1cnJlbmN5U29jaWV0ZUNvZGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtpc0ZpbHRlcmVkXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICBbaW5wdXROYW1lXT1cIidjdXJyZW5jeVNvY2lldGVDb2RlJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW2lucHV0SWRdPVwiJ2N1cnJlbmN5U29jaWV0ZUNvZGUnXCJcclxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwidHJ1ZVwiIC8+XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgIDxUc2ktQ3VycmVuY3ktU29jaWV0ZS1JbnB1dCBbKGlucHV0RmllbGQpXT1cImN1cnJlbmN5U29jaWV0ZVZhbHVlXCIgLz5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgPFRzaS1DdXJyZW5jeS1Tb2NpZXRlLURpc3BsYXkgW2lucHV0RGF0YV09XCJjdXJyZW5jeVNvY2lldGVWYWx1ZVwiIC8+XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgIDwvdHI+XHJcblxyXG4gICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgIDx0ZD5DdXJyZW5jeSAoT3RoZXIpPC90ZD5cclxuICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICA8VHNpLVNlYXJjaC1Db21ibyBbZGF0YXNvdXJjZV09XCJjdXJyZW5jaWVzXCJcclxuICAgICAgICAgICAgICAgICAgICBbaWQtZmllbGRdPVwiJ2tleSdcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtsYWJlbC1maWVsZF09XCIndmFsdWUnXCJcclxuICAgICAgICAgICAgICAgICAgICBbKGJpbmQpXT1cImN1cnJlbmN5T3RoZXJDb2RlXCJcclxuICAgICAgICAgICAgICAgICAgICBbaXNGaWx0ZXJlZF09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2lucHV0TmFtZV09XCInY3VycmVuY3lPdGhlckNvZGUnXCJcclxuICAgICAgICAgICAgICAgICAgICBbaW5wdXRJZF09XCInY3VycmVuY3lPdGhlckNvZGUnXCJcclxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZmFsc2VcIiAvPlxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICA8VHNpLUN1cnJlbmN5LU90aGVyLUlucHV0IFsoaW5wdXRGaWVsZCldPVwiY3VycmVuY3lPdGhlclZhbHVlXCIgW2N1cnJlbmN5XT1cImN1cnJlbmN5T3RoZXJDb2RlXCIgLz5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgPFRzaS1DdXJyZW5jeS1PdGhlci1EaXNwbGF5IFtpbnB1dERhdGFdPVwiY3VycmVuY3lPdGhlclZhbHVlXCIgW2N1cnJlbmN5XT1cImN1cnJlbmN5T3RoZXJDb2RlXCIgLz5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgPC90cj5cclxuXHJcbiAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgICAgPHRkPkRlY2ltYWw8L3RkPlxyXG4gICAgICAgICAgICAgIDx0ZD5SUzwvdGQ+XHJcbiAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICA8VHNpLURlY2ltYWwtSW5wdXQgWyhpbnB1dEZpZWxkKV09XCJkZWNpbWFsVmFsdWVcIiBbbnVtT2ZEZWNpbWFsXT1cIjNcIiAvPlxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICA8VHNpLURlY2ltYWwtRGlzcGxheSBbaW5wdXREYXRhXT1cImRlY2ltYWxWYWx1ZVwiIFtudW1PZkRlY2ltYWxdPVwiM1wiIC8+XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgIDwvdHI+XHJcblxyXG4gICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgIDx0ZD5SYXRlPC90ZD5cclxuICAgICAgICAgICAgICA8dGQ+UlM8L3RkPlxyXG4gICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgPFRzaS1SYXRlLUlucHV0IFsoaW5wdXRGaWVsZCldPVwicmF0ZVZhbHVlXCIgW251bU9mRGVjaW1hbF09XCIzXCIgW2lzRnJhY3Rpb25dPVwiZmFsc2VcIiAvPlxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICA8VHNpLVJhdGUtRGlzcGxheSBbaW5wdXREYXRhXT1cInJhdGVWYWx1ZVwiIFtudW1PZkRlY2ltYWxdPVwiM1wiIFtpc0ZyYWN0aW9uXT1cImZhbHNlXCIgLz5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgPC90cj5cclxuXHJcbiAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgICAgPHRkPkludGVnZXI8L3RkPlxyXG4gICAgICAgICAgICAgIDx0ZD5SUzwvdGQ+XHJcbiAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICA8VHNpLUludGVnZXIgWyhpbnB1dEZpZWxkKV09XCJpbnRlZ2VyVmFsdWVcIiAvPlxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICA8VHNpLUludGVnZXItRGlzcGxheSBbaW5wdXREYXRhXT1cImludGVnZXJWYWx1ZVwiIC8+XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgIDwvdHI+XHJcblxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICA8L3AtdGFibGU+XHJcblxyXG48L2Rpdj4iXX0=
|