@tsi-developpement/tsi-shared-ui 1.9.13 → 1.10.0
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/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-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 +595 -319
- 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/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/package.json +1 -1
|
@@ -1,26 +1,48 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
1
|
+
import { Component, EventEmitter, inject, Input, Output } from '@angular/core';
|
|
2
2
|
import { TsiInputBase } from '../../../tsi-base/tsi-input-base/tsi-input-base.component';
|
|
3
|
+
import { localizeCurrencyState, resolveCurrencyState } from '../../../functions/currency-state.functions';
|
|
4
|
+
import { LocalizePipe } from '../../../pipes/localize.pipe';
|
|
3
5
|
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "
|
|
6
|
+
import * as i1 from "@angular/common";
|
|
5
7
|
import * as i2 from "@angular/forms";
|
|
6
|
-
import * as i3 from "primeng/
|
|
7
|
-
import * as i4 from "
|
|
8
|
-
import * as i5 from "
|
|
8
|
+
import * as i3 from "primeng/tooltip";
|
|
9
|
+
import * as i4 from "primeng/inputnumber";
|
|
10
|
+
import * as i5 from "../../tsi-bubble-info/tsi-bubble-info.component";
|
|
11
|
+
import * as i6 from "../../../tsi-directives/auto-select.directive";
|
|
9
12
|
export class TsiCurrencyOtherInputComponent extends TsiInputBase {
|
|
10
|
-
constructor(
|
|
11
|
-
super();
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
this.
|
|
15
|
-
|
|
16
|
-
this.currency = 'TND';
|
|
13
|
+
constructor() {
|
|
14
|
+
super(...arguments);
|
|
15
|
+
// Local props
|
|
16
|
+
this.currencyState = resolveCurrencyState(undefined, undefined, this.locale, 'error');
|
|
17
|
+
this.tooltipMessage = '';
|
|
18
|
+
this.isValueChanged = false;
|
|
17
19
|
this.class = {};
|
|
18
|
-
|
|
19
|
-
//#region outputs
|
|
20
|
+
// Outputs
|
|
20
21
|
this.inputFieldChange = new EventEmitter();
|
|
21
|
-
|
|
22
|
-
this.
|
|
22
|
+
// DI
|
|
23
|
+
this._localizePipe = inject(LocalizePipe);
|
|
24
|
+
}
|
|
25
|
+
get currency() { return this._currency; }
|
|
26
|
+
// Inputs
|
|
27
|
+
set currency(value) {
|
|
28
|
+
this._currency = value;
|
|
29
|
+
this.updateCurrencyState();
|
|
30
|
+
}
|
|
31
|
+
// The value is an inherited @Input; override its accessor to recompute the
|
|
32
|
+
// state whenever it changes (parent binding or user typing via valueChanged).
|
|
33
|
+
get inputField() {
|
|
34
|
+
return super.inputField;
|
|
35
|
+
}
|
|
36
|
+
set inputField(value) {
|
|
37
|
+
super.inputField = value;
|
|
38
|
+
this.updateCurrencyState();
|
|
39
|
+
}
|
|
40
|
+
// Lifecycle hooks
|
|
41
|
+
ngOnInit() {
|
|
42
|
+
super.ngOnInit();
|
|
43
|
+
this.updateCurrencyState();
|
|
23
44
|
}
|
|
45
|
+
// Event handlers
|
|
24
46
|
valueChanged(event) {
|
|
25
47
|
this.isValueChanged = true;
|
|
26
48
|
this.inputField = event;
|
|
@@ -32,24 +54,23 @@ export class TsiCurrencyOtherInputComponent extends TsiInputBase {
|
|
|
32
54
|
this.isValueChanged = false;
|
|
33
55
|
}
|
|
34
56
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
57
|
+
// Resolves the currency/value state and the tooltip message. For inputs a
|
|
58
|
+
// value exceeding the currency's decimals is an error (rendered read-only).
|
|
59
|
+
updateCurrencyState() {
|
|
60
|
+
this.currencyState = resolveCurrencyState(this.currency, this.inputField, this.locale, 'error');
|
|
61
|
+
this.tooltipMessage = localizeCurrencyState(this.currencyState, (key) => this._localizePipe.transform(key));
|
|
38
62
|
}
|
|
39
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TsiCurrencyOtherInputComponent, deps:
|
|
40
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TsiCurrencyOtherInputComponent, selector: "Tsi-Currency-Other-Input", inputs: {
|
|
63
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TsiCurrencyOtherInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
64
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TsiCurrencyOtherInputComponent, selector: "Tsi-Currency-Other-Input", inputs: { currency: "currency", class: "class" }, outputs: { inputFieldChange: "inputFieldChange" }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"currencyState.severity === 'ok'; else invalidState\">\r\n <div class=\"flex h-2rem\">\r\n <p-inputNumber\r\n autoSelect\r\n [disabled]=\"disabled\"\r\n (onBlur)=\"onChangeofOptions()\"\r\n [ngModel]=\"inputField\"\r\n (ngModelChange)=\"valueChanged($event)\"\r\n class=\"{{myStyleClass}}\"\r\n styleClass=\"{{myStyleClass}} border-radius-7 {{validationStatusCssClass}}\"\r\n inputStyleClass=\"{{myStyleClass}}\"\r\n name=\"{{inputName}}\"\r\n id=\"{{inputId}}\"\r\n mode=\"currency\"\r\n [currency]=\"currency\"\r\n [locale]=\"locale\"/>\r\n <Tsi-Bubble-Info [infoText]=\"infoText\"></Tsi-Bubble-Info>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-template #invalidState>\r\n <span class=\"flex w-full h-2rem align-items-center p-2 tsi-currency-state\"\r\n [ngClass]=\"currencyState.severity === 'warning' ? 'tsi-currency-state--warning' : 'tsi-currency-state--error'\"\r\n [pTooltip]=\"tooltipMessage\"\r\n tooltipPosition=\"top\">\r\n {{ inputField }}\r\n </span>\r\n</ng-template>\r\n", styles: [".tsi-currency-state--error{background-color:var(--tsi-currency-error-bg, rgba(255, 68, 68, .231372549))}.tsi-currency-state--warning{background-color:var(--tsi-currency-warning-bg, rgba(255, 170, 68, .431372549))}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: i4.InputNumber, selector: "p-inputNumber", inputs: ["showButtons", "format", "buttonLayout", "inputId", "styleClass", "style", "placeholder", "size", "maxlength", "tabindex", "title", "ariaLabelledBy", "ariaLabel", "ariaRequired", "name", "required", "autocomplete", "min", "max", "incrementButtonClass", "decrementButtonClass", "incrementButtonIcon", "decrementButtonIcon", "readonly", "step", "allowEmpty", "locale", "localeMatcher", "mode", "currency", "currencyDisplay", "useGrouping", "variant", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "inputStyle", "inputStyleClass", "showClear", "autofocus", "disabled"], outputs: ["onInput", "onFocus", "onBlur", "onKeyDown", "onClear"] }, { kind: "component", type: i5.TsiBubbleInfoComponent, selector: "Tsi-Bubble-Info", inputs: ["infoText"] }, { kind: "directive", type: i6.AutoSelectDirective, selector: "[autoSelect]" }] }); }
|
|
41
65
|
}
|
|
42
66
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TsiCurrencyOtherInputComponent, decorators: [{
|
|
43
67
|
type: Component,
|
|
44
|
-
args: [{ selector: 'Tsi-Currency-Other-Input', standalone: false, template: "<div class=\"flex h-2rem\">\r\n <p-inputNumber
|
|
45
|
-
}],
|
|
46
|
-
type: Input
|
|
47
|
-
}], currency: [{
|
|
68
|
+
args: [{ selector: 'Tsi-Currency-Other-Input', standalone: false, template: "<ng-container *ngIf=\"currencyState.severity === 'ok'; else invalidState\">\r\n <div class=\"flex h-2rem\">\r\n <p-inputNumber\r\n autoSelect\r\n [disabled]=\"disabled\"\r\n (onBlur)=\"onChangeofOptions()\"\r\n [ngModel]=\"inputField\"\r\n (ngModelChange)=\"valueChanged($event)\"\r\n class=\"{{myStyleClass}}\"\r\n styleClass=\"{{myStyleClass}} border-radius-7 {{validationStatusCssClass}}\"\r\n inputStyleClass=\"{{myStyleClass}}\"\r\n name=\"{{inputName}}\"\r\n id=\"{{inputId}}\"\r\n mode=\"currency\"\r\n [currency]=\"currency\"\r\n [locale]=\"locale\"/>\r\n <Tsi-Bubble-Info [infoText]=\"infoText\"></Tsi-Bubble-Info>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-template #invalidState>\r\n <span class=\"flex w-full h-2rem align-items-center p-2 tsi-currency-state\"\r\n [ngClass]=\"currencyState.severity === 'warning' ? 'tsi-currency-state--warning' : 'tsi-currency-state--error'\"\r\n [pTooltip]=\"tooltipMessage\"\r\n tooltipPosition=\"top\">\r\n {{ inputField }}\r\n </span>\r\n</ng-template>\r\n", styles: [".tsi-currency-state--error{background-color:var(--tsi-currency-error-bg, rgba(255, 68, 68, .231372549))}.tsi-currency-state--warning{background-color:var(--tsi-currency-warning-bg, rgba(255, 170, 68, .431372549))}\n"] }]
|
|
69
|
+
}], propDecorators: { currency: [{
|
|
48
70
|
type: Input
|
|
49
71
|
}], class: [{
|
|
50
|
-
type: Input
|
|
51
|
-
args: ['class']
|
|
72
|
+
type: Input
|
|
52
73
|
}], inputFieldChange: [{
|
|
53
74
|
type: Output
|
|
54
75
|
}] } });
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHNpLWN1cnJlbmN5LW90aGVyLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RzaS1zaGFyZWQtdWkvc3JjL2xpYi90c2ktY29tcG9uZW50cy9pbnB1dC1jb21wb25lbnRzL3RzaS1jdXJyZW5jeS1vdGhlci1pbnB1dC90c2ktY3VycmVuY3ktb3RoZXItaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHNpLXNoYXJlZC11aS9zcmMvbGliL3RzaS1jb21wb25lbnRzL2lucHV0LWNvbXBvbmVudHMvdHNpLWN1cnJlbmN5LW90aGVyLWlucHV0L3RzaS1jdXJyZW5jeS1vdGhlci1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDekYsT0FBTyxFQUFpQixxQkFBcUIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3pILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7Ozs7QUFRNUQsTUFBTSxPQUFPLDhCQUErQixTQUFRLFlBQWdDO0lBTnBGOztRQU9FLGNBQWM7UUFDSixrQkFBYSxHQUFrQixvQkFBb0IsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDaEcsbUJBQWMsR0FBVyxFQUFFLENBQUM7UUFDOUIsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFxQi9CLFVBQUssR0FBUSxFQUFFLENBQUM7UUFFekIsVUFBVTtRQUNBLHFCQUFnQixHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBRTlFLEtBQUs7UUFDRyxrQkFBYSxHQUFpQixNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7S0E0QjVEO0lBckRDLElBQUksUUFBUSxLQUF5QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBRTdELFNBQVM7SUFDVCxJQUFhLFFBQVEsQ0FBQyxLQUF5QjtRQUM3QyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsMkVBQTJFO0lBQzNFLDhFQUE4RTtJQUM5RSxJQUFhLFVBQVU7UUFDckIsT0FBTyxLQUFLLENBQUMsVUFBVSxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFhLFVBQVUsQ0FBQyxLQUF5QjtRQUMvQyxLQUFLLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBVUQsa0JBQWtCO0lBQ1QsUUFBUTtRQUNmLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsaUJBQWlCO0lBQ2pCLFlBQVksQ0FBQyxLQUFVO1FBQ3JCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1FBQzNCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxpQkFBaUI7UUFDZixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUM1QyxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztRQUM5QixDQUFDO0lBQ0gsQ0FBQztJQUVELDBFQUEwRTtJQUMxRSw0RUFBNEU7SUFDcEUsbUJBQW1CO1FBQ3pCLElBQUksQ0FBQyxhQUFhLEdBQUcsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDaEcsSUFBSSxDQUFDLGNBQWMsR0FBRyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzlHLENBQUM7K0dBMURVLDhCQUE4QjttR0FBOUIsOEJBQThCLDRMQ1gzQyxpbkNBNEJBOzs0RkRqQmEsOEJBQThCO2tCQU4xQyxTQUFTOytCQUNFLDBCQUEwQixjQUd4QixLQUFLOzhCQVdKLFFBQVE7c0JBQXBCLEtBQUs7Z0JBZ0JHLEtBQUs7c0JBQWIsS0FBSztnQkFHSSxnQkFBZ0I7c0JBQXpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRzaUlucHV0QmFzZSB9IGZyb20gJy4uLy4uLy4uL3RzaS1iYXNlL3RzaS1pbnB1dC1iYXNlL3RzaS1pbnB1dC1iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEN1cnJlbmN5U3RhdGUsIGxvY2FsaXplQ3VycmVuY3lTdGF0ZSwgcmVzb2x2ZUN1cnJlbmN5U3RhdGUgfSBmcm9tICcuLi8uLi8uLi9mdW5jdGlvbnMvY3VycmVuY3ktc3RhdGUuZnVuY3Rpb25zJztcclxuaW1wb3J0IHsgTG9jYWxpemVQaXBlIH0gZnJvbSAnLi4vLi4vLi4vcGlwZXMvbG9jYWxpemUucGlwZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ1RzaS1DdXJyZW5jeS1PdGhlci1JbnB1dCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RzaS1jdXJyZW5jeS1vdGhlci1pbnB1dC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdHNpLWN1cnJlbmN5LW90aGVyLWlucHV0LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgc3RhbmRhbG9uZTogZmFsc2VcclxufSlcclxuZXhwb3J0IGNsYXNzIFRzaUN1cnJlbmN5T3RoZXJJbnB1dENvbXBvbmVudCBleHRlbmRzIFRzaUlucHV0QmFzZTxudW1iZXIgfCB1bmRlZmluZWQ+IHtcclxuICAvLyBMb2NhbCBwcm9wc1xyXG4gIHByb3RlY3RlZCBjdXJyZW5jeVN0YXRlOiBDdXJyZW5jeVN0YXRlID0gcmVzb2x2ZUN1cnJlbmN5U3RhdGUodW5kZWZpbmVkLCB1bmRlZmluZWQsIHRoaXMubG9jYWxlLCAnZXJyb3InKTtcclxuICBwcm90ZWN0ZWQgdG9vbHRpcE1lc3NhZ2U6IHN0cmluZyA9ICcnO1xyXG4gIHByaXZhdGUgaXNWYWx1ZUNoYW5nZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcml2YXRlIF9jdXJyZW5jeT86IHN0cmluZztcclxuICBnZXQgY3VycmVuY3koKTogc3RyaW5nIHwgdW5kZWZpbmVkIHsgcmV0dXJuIHRoaXMuX2N1cnJlbmN5OyB9XHJcblxyXG4gIC8vIElucHV0c1xyXG4gIEBJbnB1dCgpIHNldCBjdXJyZW5jeSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XHJcbiAgICB0aGlzLl9jdXJyZW5jeSA9IHZhbHVlO1xyXG4gICAgdGhpcy51cGRhdGVDdXJyZW5jeVN0YXRlKCk7XHJcbiAgfVxyXG5cclxuICAvLyBUaGUgdmFsdWUgaXMgYW4gaW5oZXJpdGVkIEBJbnB1dDsgb3ZlcnJpZGUgaXRzIGFjY2Vzc29yIHRvIHJlY29tcHV0ZSB0aGVcclxuICAvLyBzdGF0ZSB3aGVuZXZlciBpdCBjaGFuZ2VzIChwYXJlbnQgYmluZGluZyBvciB1c2VyIHR5cGluZyB2aWEgdmFsdWVDaGFuZ2VkKS5cclxuICBvdmVycmlkZSBnZXQgaW5wdXRGaWVsZCgpOiBudW1iZXIgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHN1cGVyLmlucHV0RmllbGQ7XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSBzZXQgaW5wdXRGaWVsZCh2YWx1ZTogbnVtYmVyIHwgdW5kZWZpbmVkKSB7XHJcbiAgICBzdXBlci5pbnB1dEZpZWxkID0gdmFsdWU7XHJcbiAgICB0aGlzLnVwZGF0ZUN1cnJlbmN5U3RhdGUoKTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIGNsYXNzOiBhbnkgPSB7fTtcclxuXHJcbiAgLy8gT3V0cHV0c1xyXG4gIEBPdXRwdXQoKSBpbnB1dEZpZWxkQ2hhbmdlOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xyXG5cclxuICAvLyBESVxyXG4gIHByaXZhdGUgX2xvY2FsaXplUGlwZTogTG9jYWxpemVQaXBlID0gaW5qZWN0KExvY2FsaXplUGlwZSk7XHJcblxyXG4gIC8vIExpZmVjeWNsZSBob29rc1xyXG4gIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgIHRoaXMudXBkYXRlQ3VycmVuY3lTdGF0ZSgpO1xyXG4gIH1cclxuXHJcbiAgLy8gRXZlbnQgaGFuZGxlcnNcclxuICB2YWx1ZUNoYW5nZWQoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5pc1ZhbHVlQ2hhbmdlZCA9IHRydWU7XHJcbiAgICB0aGlzLmlucHV0RmllbGQgPSBldmVudDtcclxuICAgIHRoaXMuaXNEaXJ0eSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBvbkNoYW5nZW9mT3B0aW9ucygpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmlzVmFsdWVDaGFuZ2VkKSB7XHJcbiAgICAgIHRoaXMuaW5wdXRGaWVsZENoYW5nZS5lbWl0KHRoaXMuaW5wdXRGaWVsZCk7XHJcbiAgICAgIHRoaXMuaXNWYWx1ZUNoYW5nZWQgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIFJlc29sdmVzIHRoZSBjdXJyZW5jeS92YWx1ZSBzdGF0ZSBhbmQgdGhlIHRvb2x0aXAgbWVzc2FnZS4gRm9yIGlucHV0cyBhXHJcbiAgLy8gdmFsdWUgZXhjZWVkaW5nIHRoZSBjdXJyZW5jeSdzIGRlY2ltYWxzIGlzIGFuIGVycm9yIChyZW5kZXJlZCByZWFkLW9ubHkpLlxyXG4gIHByaXZhdGUgdXBkYXRlQ3VycmVuY3lTdGF0ZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuY3VycmVuY3lTdGF0ZSA9IHJlc29sdmVDdXJyZW5jeVN0YXRlKHRoaXMuY3VycmVuY3ksIHRoaXMuaW5wdXRGaWVsZCwgdGhpcy5sb2NhbGUsICdlcnJvcicpO1xyXG4gICAgdGhpcy50b29sdGlwTWVzc2FnZSA9IGxvY2FsaXplQ3VycmVuY3lTdGF0ZSh0aGlzLmN1cnJlbmN5U3RhdGUsIChrZXkpID0+IHRoaXMuX2xvY2FsaXplUGlwZS50cmFuc2Zvcm0oa2V5KSk7XHJcbiAgfVxyXG59XHJcbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJjdXJyZW5jeVN0YXRlLnNldmVyaXR5ID09PSAnb2snOyBlbHNlIGludmFsaWRTdGF0ZVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJmbGV4IGgtMnJlbVwiPlxyXG4gICAgPHAtaW5wdXROdW1iZXJcclxuICAgICAgYXV0b1NlbGVjdFxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgICAgKG9uQmx1cik9XCJvbkNoYW5nZW9mT3B0aW9ucygpXCJcclxuICAgICAgICBbbmdNb2RlbF09XCJpbnB1dEZpZWxkXCJcclxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ2YWx1ZUNoYW5nZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgY2xhc3M9XCJ7e215U3R5bGVDbGFzc319XCJcclxuICAgICAgICBzdHlsZUNsYXNzPVwie3tteVN0eWxlQ2xhc3N9fSBib3JkZXItcmFkaXVzLTcge3t2YWxpZGF0aW9uU3RhdHVzQ3NzQ2xhc3N9fVwiXHJcbiAgICAgICAgaW5wdXRTdHlsZUNsYXNzPVwie3tteVN0eWxlQ2xhc3N9fVwiXHJcbiAgICAgICAgbmFtZT1cInt7aW5wdXROYW1lfX1cIlxyXG4gICAgICAgIGlkPVwie3tpbnB1dElkfX1cIlxyXG4gICAgICAgIG1vZGU9XCJjdXJyZW5jeVwiXHJcbiAgICAgICAgW2N1cnJlbmN5XT1cImN1cnJlbmN5XCJcclxuICAgICAgICBbbG9jYWxlXT1cImxvY2FsZVwiLz5cclxuICAgIDxUc2ktQnViYmxlLUluZm8gW2luZm9UZXh0XT1cImluZm9UZXh0XCI+PC9Uc2ktQnViYmxlLUluZm8+XHJcbiAgPC9kaXY+XHJcbjwvbmctY29udGFpbmVyPlxyXG5cclxuPG5nLXRlbXBsYXRlICNpbnZhbGlkU3RhdGU+XHJcbiAgICA8c3BhbiBjbGFzcz1cImZsZXggdy1mdWxsIGgtMnJlbSBhbGlnbi1pdGVtcy1jZW50ZXIgcC0yIHRzaS1jdXJyZW5jeS1zdGF0ZVwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwiY3VycmVuY3lTdGF0ZS5zZXZlcml0eSA9PT0gJ3dhcm5pbmcnID8gJ3RzaS1jdXJyZW5jeS1zdGF0ZS0td2FybmluZycgOiAndHNpLWN1cnJlbmN5LXN0YXRlLS1lcnJvcidcIlxyXG4gICAgICAgIFtwVG9vbHRpcF09XCJ0b29sdGlwTWVzc2FnZVwiXHJcbiAgICAgICAgdG9vbHRpcFBvc2l0aW9uPVwidG9wXCI+XHJcbiAgICAgICAge3sgaW5wdXRGaWVsZCB9fVxyXG4gICAgPC9zcGFuPlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
|
|
@@ -1,40 +1,53 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output, } from '@angular/core';
|
|
1
|
+
import { Component, EventEmitter, inject, Input, Output, } from '@angular/core';
|
|
2
2
|
import { TsiInputBase } from '../../../tsi-base/tsi-input-base/tsi-input-base.component';
|
|
3
|
+
import { AppSettingsService } from '../../../services/settings/app-settings.service';
|
|
3
4
|
import { DefaultSocieteDevise } from '../../../consts/tsi-consts';
|
|
5
|
+
import { localizeCurrencyState, resolveCurrencyState } from '../../../functions/currency-state.functions';
|
|
6
|
+
import { LocalizePipe } from '../../../pipes/localize.pipe';
|
|
4
7
|
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "
|
|
6
|
-
import * as i2 from "
|
|
7
|
-
import * as i3 from "
|
|
8
|
+
import * as i1 from "@angular/common";
|
|
9
|
+
import * as i2 from "@angular/forms";
|
|
10
|
+
import * as i3 from "primeng/tooltip";
|
|
8
11
|
import * as i4 from "primeng/inputnumber";
|
|
9
12
|
import * as i5 from "../../tsi-bubble-info/tsi-bubble-info.component";
|
|
10
13
|
import * as i6 from "../../../tsi-directives/auto-select.directive";
|
|
11
14
|
export class TsiCurrencySocieteInputComponent extends TsiInputBase {
|
|
12
|
-
|
|
15
|
+
// The value is an inherited @Input; override its accessor to recompute the
|
|
16
|
+
// state whenever it changes (parent binding or user typing via valueChanged).
|
|
17
|
+
get inputField() {
|
|
18
|
+
return super.inputField;
|
|
19
|
+
}
|
|
20
|
+
set inputField(value) {
|
|
21
|
+
super.inputField = value;
|
|
22
|
+
this.updateCurrencyState();
|
|
23
|
+
}
|
|
24
|
+
// Ctor
|
|
25
|
+
constructor() {
|
|
13
26
|
super();
|
|
14
|
-
|
|
15
|
-
this.
|
|
27
|
+
// Local props
|
|
28
|
+
this.isValueChanged = false;
|
|
16
29
|
this.currency = DefaultSocieteDevise.codeDevise;
|
|
17
|
-
this.
|
|
30
|
+
this.currencyState = resolveCurrencyState(undefined, undefined, this.locale, 'error');
|
|
31
|
+
this.tooltipMessage = '';
|
|
18
32
|
this.style = { width: 'inherit' };
|
|
19
|
-
|
|
33
|
+
// Inputs
|
|
20
34
|
this.class = {};
|
|
21
|
-
|
|
22
|
-
//#region outputs
|
|
35
|
+
// Outputs
|
|
23
36
|
this.inputFieldChange = new EventEmitter();
|
|
24
|
-
|
|
25
|
-
this.
|
|
26
|
-
this.
|
|
27
|
-
this.
|
|
28
|
-
|
|
29
|
-
|
|
37
|
+
// DI
|
|
38
|
+
this._appSettingsService = inject(AppSettingsService);
|
|
39
|
+
this._localizePipe = inject(LocalizePipe);
|
|
40
|
+
this.currency = this._appSettingsService
|
|
41
|
+
.appSettings
|
|
42
|
+
.deviseSociete
|
|
43
|
+
.codeDevise ?? DefaultSocieteDevise.codeDevise;
|
|
30
44
|
}
|
|
45
|
+
// Lifecycle hooks
|
|
31
46
|
ngOnInit() {
|
|
32
47
|
super.ngOnInit();
|
|
33
|
-
this.
|
|
34
|
-
// if (this.inputField === undefined || this.inputField === null) {
|
|
35
|
-
// this.inputField = 0;
|
|
36
|
-
// }
|
|
48
|
+
this.updateCurrencyState();
|
|
37
49
|
}
|
|
50
|
+
// Event handlers
|
|
38
51
|
valueChanged(event) {
|
|
39
52
|
this.isValueChanged = true;
|
|
40
53
|
this.inputField = event;
|
|
@@ -46,16 +59,21 @@ export class TsiCurrencySocieteInputComponent extends TsiInputBase {
|
|
|
46
59
|
this.isValueChanged = false;
|
|
47
60
|
}
|
|
48
61
|
}
|
|
49
|
-
|
|
50
|
-
|
|
62
|
+
// Resolves the currency/value state and the tooltip message. For inputs a
|
|
63
|
+
// value exceeding the currency's decimals is an error (rendered read-only).
|
|
64
|
+
updateCurrencyState() {
|
|
65
|
+
this.currencyState = resolveCurrencyState(this.currency, this.inputField, this.locale, 'error');
|
|
66
|
+
this.tooltipMessage = localizeCurrencyState(this.currencyState, (key) => this._localizePipe.transform(key));
|
|
67
|
+
}
|
|
68
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TsiCurrencySocieteInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
69
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TsiCurrencySocieteInputComponent, selector: "Tsi-Currency-Societe-Input", inputs: { class: "class" }, outputs: { inputFieldChange: "inputFieldChange" }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"currencyState.severity === 'ok'; else invalidState\">\r\n <div class=\"flex h-2rem\">\r\n <p-inputNumber\r\n autoSelect\r\n class=\"{{ myStyleClass }} {{ class }}\"\r\n styleClass=\"{{ myStyleClass }} border-radius-7 {{validationStatusCssClass}}\"\r\n inputStyleClass=\"{{ myStyleClass }}\"\r\n [disabled]=\"disabled\"\r\n [ngModel]=\"inputField\"\r\n (ngModelChange)=\"valueChanged($event)\"\r\n (onBlur)=\"onChangeofOptions()\"\r\n name=\"{{inputName}}\"\r\n id=\"{{inputId}}\"\r\n mode=\"currency\"\r\n [currency]=\"currency\"\r\n [locale]=\"locale\">\r\n </p-inputNumber>\r\n\r\n <Tsi-Bubble-Info [infoText]=\"infoText\"></Tsi-Bubble-Info>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-template #invalidState>\r\n <span class=\"flex w-full h-2rem align-items-center p-2 tsi-currency-state\"\r\n [ngClass]=\"currencyState.severity === 'warning' ? 'tsi-currency-state--warning' : 'tsi-currency-state--error'\"\r\n [pTooltip]=\"tooltipMessage\"\r\n tooltipPosition=\"top\">\r\n {{ inputField }}\r\n </span>\r\n</ng-template>\r\n", styles: [".tsi-currency-state--error{background-color:var(--tsi-currency-error-bg, rgba(255, 68, 68, .231372549))}.tsi-currency-state--warning{background-color:var(--tsi-currency-warning-bg, rgba(255, 170, 68, .431372549))}:host{width:inherit}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: i4.InputNumber, selector: "p-inputNumber", inputs: ["showButtons", "format", "buttonLayout", "inputId", "styleClass", "style", "placeholder", "size", "maxlength", "tabindex", "title", "ariaLabelledBy", "ariaLabel", "ariaRequired", "name", "required", "autocomplete", "min", "max", "incrementButtonClass", "decrementButtonClass", "incrementButtonIcon", "decrementButtonIcon", "readonly", "step", "allowEmpty", "locale", "localeMatcher", "mode", "currency", "currencyDisplay", "useGrouping", "variant", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "inputStyle", "inputStyleClass", "showClear", "autofocus", "disabled"], outputs: ["onInput", "onFocus", "onBlur", "onKeyDown", "onClear"] }, { kind: "component", type: i5.TsiBubbleInfoComponent, selector: "Tsi-Bubble-Info", inputs: ["infoText"] }, { kind: "directive", type: i6.AutoSelectDirective, selector: "[autoSelect]" }] }); }
|
|
51
70
|
}
|
|
52
71
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TsiCurrencySocieteInputComponent, decorators: [{
|
|
53
72
|
type: Component,
|
|
54
|
-
args: [{ selector: 'Tsi-Currency-Societe-Input', template: "<div class=\"flex h-2rem\">\r\n
|
|
55
|
-
}], ctorParameters: () => [
|
|
56
|
-
type: Input
|
|
57
|
-
args: ['class']
|
|
73
|
+
args: [{ selector: 'Tsi-Currency-Societe-Input', standalone: false, template: "<ng-container *ngIf=\"currencyState.severity === 'ok'; else invalidState\">\r\n <div class=\"flex h-2rem\">\r\n <p-inputNumber\r\n autoSelect\r\n class=\"{{ myStyleClass }} {{ class }}\"\r\n styleClass=\"{{ myStyleClass }} border-radius-7 {{validationStatusCssClass}}\"\r\n inputStyleClass=\"{{ myStyleClass }}\"\r\n [disabled]=\"disabled\"\r\n [ngModel]=\"inputField\"\r\n (ngModelChange)=\"valueChanged($event)\"\r\n (onBlur)=\"onChangeofOptions()\"\r\n name=\"{{inputName}}\"\r\n id=\"{{inputId}}\"\r\n mode=\"currency\"\r\n [currency]=\"currency\"\r\n [locale]=\"locale\">\r\n </p-inputNumber>\r\n\r\n <Tsi-Bubble-Info [infoText]=\"infoText\"></Tsi-Bubble-Info>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-template #invalidState>\r\n <span class=\"flex w-full h-2rem align-items-center p-2 tsi-currency-state\"\r\n [ngClass]=\"currencyState.severity === 'warning' ? 'tsi-currency-state--warning' : 'tsi-currency-state--error'\"\r\n [pTooltip]=\"tooltipMessage\"\r\n tooltipPosition=\"top\">\r\n {{ inputField }}\r\n </span>\r\n</ng-template>\r\n", styles: [".tsi-currency-state--error{background-color:var(--tsi-currency-error-bg, rgba(255, 68, 68, .231372549))}.tsi-currency-state--warning{background-color:var(--tsi-currency-warning-bg, rgba(255, 170, 68, .431372549))}:host{width:inherit}\n"] }]
|
|
74
|
+
}], ctorParameters: () => [], propDecorators: { class: [{
|
|
75
|
+
type: Input
|
|
58
76
|
}], inputFieldChange: [{
|
|
59
77
|
type: Output
|
|
60
78
|
}] } });
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHNpLWN1cnJlbmN5LXNvY2lldGUtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHNpLXNoYXJlZC11aS9zcmMvbGliL3RzaS1jb21wb25lbnRzL2lucHV0LWNvbXBvbmVudHMvdHNpLWN1cnJlbmN5LXNvY2lldGUtaW5wdXQvdHNpLWN1cnJlbmN5LXNvY2lldGUtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHNpLXNoYXJlZC11aS9zcmMvbGliL3RzaS1jb21wb25lbnRzL2lucHV0LWNvbXBvbmVudHMvdHNpLWN1cnJlbmN5LXNvY2lldGUtaW5wdXQvdHNpLWN1cnJlbmN5LXNvY2lldGUtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2xFLE9BQU8sRUFBaUIscUJBQXFCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUN6SCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7Ozs7O0FBUTVELE1BQU0sT0FBTyxnQ0FBaUMsU0FBUSxZQUFnQztJQVFwRiwyRUFBMkU7SUFDM0UsOEVBQThFO0lBQzlFLElBQWEsVUFBVTtRQUNyQixPQUFPLEtBQUssQ0FBQyxVQUFVLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQWEsVUFBVSxDQUFDLEtBQXlCO1FBQy9DLEtBQUssQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFZRCxPQUFPO0lBQ1A7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQTlCVixjQUFjO1FBQ04sbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFDOUIsYUFBUSxHQUFXLG9CQUFvQixDQUFDLFVBQVUsQ0FBQztRQUNuRCxrQkFBYSxHQUFrQixvQkFBb0IsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDaEcsbUJBQWMsR0FBVyxFQUFFLENBQUM7UUFDdEMsVUFBSyxHQUFRLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxDQUFDO1FBYWxDLFNBQVM7UUFDQSxVQUFLLEdBQVEsRUFBRSxDQUFDO1FBRXpCLFVBQVU7UUFDQSxxQkFBZ0IsR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUU5RSxLQUFLO1FBQ0csd0JBQW1CLEdBQXVCLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3JFLGtCQUFhLEdBQWlCLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUt6RCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxtQkFBbUI7YUFDckMsV0FBVzthQUNYLGFBQWE7YUFDYixVQUFVLElBQUksb0JBQW9CLENBQUMsVUFBVSxDQUFDO0lBQ25ELENBQUM7SUFFRCxrQkFBa0I7SUFDVCxRQUFRO1FBQ2YsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxpQkFBaUI7SUFDakIsWUFBWSxDQUFDLEtBQVU7UUFDckIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFDM0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDeEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7SUFDdEIsQ0FBQztJQUVELGlCQUFpQjtRQUNmLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzVDLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1FBQzlCLENBQUM7SUFDSCxDQUFDO0lBRUQsMEVBQTBFO0lBQzFFLDRFQUE0RTtJQUNwRSxtQkFBbUI7UUFDekIsSUFBSSxDQUFDLGFBQWEsR0FBRyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNoRyxJQUFJLENBQUMsY0FBYyxHQUFHLHFCQUFxQixDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDOUcsQ0FBQzsrR0EvRFUsZ0NBQWdDO21HQUFoQyxnQ0FBZ0Msd0tDbkI3QyxrbkNBOEJBOzs0RkRYYSxnQ0FBZ0M7a0JBTjVDLFNBQVM7K0JBQ0UsNEJBQTRCLGNBRzFCLEtBQUs7d0RBc0JSLEtBQUs7c0JBQWIsS0FBSztnQkFHSSxnQkFBZ0I7c0JBQXpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgaW5qZWN0LFxyXG4gIElucHV0LFxyXG4gIE91dHB1dCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVHNpSW5wdXRCYXNlIH0gZnJvbSAnLi4vLi4vLi4vdHNpLWJhc2UvdHNpLWlucHV0LWJhc2UvdHNpLWlucHV0LWJhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXBwU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvc2V0dGluZ3MvYXBwLXNldHRpbmdzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEZWZhdWx0U29jaWV0ZURldmlzZSB9IGZyb20gJy4uLy4uLy4uL2NvbnN0cy90c2ktY29uc3RzJztcclxuaW1wb3J0IHsgQ3VycmVuY3lTdGF0ZSwgbG9jYWxpemVDdXJyZW5jeVN0YXRlLCByZXNvbHZlQ3VycmVuY3lTdGF0ZSB9IGZyb20gJy4uLy4uLy4uL2Z1bmN0aW9ucy9jdXJyZW5jeS1zdGF0ZS5mdW5jdGlvbnMnO1xyXG5pbXBvcnQgeyBMb2NhbGl6ZVBpcGUgfSBmcm9tICcuLi8uLi8uLi9waXBlcy9sb2NhbGl6ZS5waXBlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnVHNpLUN1cnJlbmN5LVNvY2lldGUtSW5wdXQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90c2ktY3VycmVuY3ktc29jaWV0ZS1pbnB1dC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdHNpLWN1cnJlbmN5LXNvY2lldGUtaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcclxuICBzdGFuZGFsb25lOiBmYWxzZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHNpQ3VycmVuY3lTb2NpZXRlSW5wdXRDb21wb25lbnQgZXh0ZW5kcyBUc2lJbnB1dEJhc2U8bnVtYmVyIHwgdW5kZWZpbmVkPiB7XHJcbiAgLy8gTG9jYWwgcHJvcHNcclxuICBwcml2YXRlIGlzVmFsdWVDaGFuZ2VkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJvdGVjdGVkIGN1cnJlbmN5OiBzdHJpbmcgPSBEZWZhdWx0U29jaWV0ZURldmlzZS5jb2RlRGV2aXNlO1xyXG4gIHByb3RlY3RlZCBjdXJyZW5jeVN0YXRlOiBDdXJyZW5jeVN0YXRlID0gcmVzb2x2ZUN1cnJlbmN5U3RhdGUodW5kZWZpbmVkLCB1bmRlZmluZWQsIHRoaXMubG9jYWxlLCAnZXJyb3InKTtcclxuICBwcm90ZWN0ZWQgdG9vbHRpcE1lc3NhZ2U6IHN0cmluZyA9ICcnO1xyXG4gIHN0eWxlOiBhbnkgPSB7IHdpZHRoOiAnaW5oZXJpdCcgfTtcclxuXHJcbiAgLy8gVGhlIHZhbHVlIGlzIGFuIGluaGVyaXRlZCBASW5wdXQ7IG92ZXJyaWRlIGl0cyBhY2Nlc3NvciB0byByZWNvbXB1dGUgdGhlXHJcbiAgLy8gc3RhdGUgd2hlbmV2ZXIgaXQgY2hhbmdlcyAocGFyZW50IGJpbmRpbmcgb3IgdXNlciB0eXBpbmcgdmlhIHZhbHVlQ2hhbmdlZCkuXHJcbiAgb3ZlcnJpZGUgZ2V0IGlucHV0RmllbGQoKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiBzdXBlci5pbnB1dEZpZWxkO1xyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgc2V0IGlucHV0RmllbGQodmFsdWU6IG51bWJlciB8IHVuZGVmaW5lZCkge1xyXG4gICAgc3VwZXIuaW5wdXRGaWVsZCA9IHZhbHVlO1xyXG4gICAgdGhpcy51cGRhdGVDdXJyZW5jeVN0YXRlKCk7XHJcbiAgfVxyXG5cclxuICAvLyBJbnB1dHNcclxuICBASW5wdXQoKSBjbGFzczogYW55ID0ge307XHJcblxyXG4gIC8vIE91dHB1dHNcclxuICBAT3V0cHV0KCkgaW5wdXRGaWVsZENoYW5nZTogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxuXHJcbiAgLy8gRElcclxuICBwcml2YXRlIF9hcHBTZXR0aW5nc1NlcnZpY2U6IEFwcFNldHRpbmdzU2VydmljZSA9IGluamVjdChBcHBTZXR0aW5nc1NlcnZpY2UpO1xyXG4gIHByaXZhdGUgX2xvY2FsaXplUGlwZTogTG9jYWxpemVQaXBlID0gaW5qZWN0KExvY2FsaXplUGlwZSk7XHJcblxyXG4gIC8vIEN0b3JcclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgICB0aGlzLmN1cnJlbmN5ID0gdGhpcy5fYXBwU2V0dGluZ3NTZXJ2aWNlXHJcbiAgICAgIC5hcHBTZXR0aW5nc1xyXG4gICAgICAuZGV2aXNlU29jaWV0ZVxyXG4gICAgICAuY29kZURldmlzZSA/PyBEZWZhdWx0U29jaWV0ZURldmlzZS5jb2RlRGV2aXNlO1xyXG4gIH1cclxuXHJcbiAgLy8gTGlmZWN5Y2xlIGhvb2tzXHJcbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgdGhpcy51cGRhdGVDdXJyZW5jeVN0YXRlKCk7XHJcbiAgfVxyXG5cclxuICAvLyBFdmVudCBoYW5kbGVyc1xyXG4gIHZhbHVlQ2hhbmdlZChldmVudDogYW55KSB7XHJcbiAgICB0aGlzLmlzVmFsdWVDaGFuZ2VkID0gdHJ1ZTtcclxuICAgIHRoaXMuaW5wdXRGaWVsZCA9IGV2ZW50O1xyXG4gICAgdGhpcy5pc0RpcnR5ID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIG9uQ2hhbmdlb2ZPcHRpb25zKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuaXNWYWx1ZUNoYW5nZWQpIHtcclxuICAgICAgdGhpcy5pbnB1dEZpZWxkQ2hhbmdlLmVtaXQodGhpcy5pbnB1dEZpZWxkKTtcclxuICAgICAgdGhpcy5pc1ZhbHVlQ2hhbmdlZCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gUmVzb2x2ZXMgdGhlIGN1cnJlbmN5L3ZhbHVlIHN0YXRlIGFuZCB0aGUgdG9vbHRpcCBtZXNzYWdlLiBGb3IgaW5wdXRzIGFcclxuICAvLyB2YWx1ZSBleGNlZWRpbmcgdGhlIGN1cnJlbmN5J3MgZGVjaW1hbHMgaXMgYW4gZXJyb3IgKHJlbmRlcmVkIHJlYWQtb25seSkuXHJcbiAgcHJpdmF0ZSB1cGRhdGVDdXJyZW5jeVN0YXRlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5jdXJyZW5jeVN0YXRlID0gcmVzb2x2ZUN1cnJlbmN5U3RhdGUodGhpcy5jdXJyZW5jeSwgdGhpcy5pbnB1dEZpZWxkLCB0aGlzLmxvY2FsZSwgJ2Vycm9yJyk7XHJcbiAgICB0aGlzLnRvb2x0aXBNZXNzYWdlID0gbG9jYWxpemVDdXJyZW5jeVN0YXRlKHRoaXMuY3VycmVuY3lTdGF0ZSwgKGtleSkgPT4gdGhpcy5fbG9jYWxpemVQaXBlLnRyYW5zZm9ybShrZXkpKTtcclxuICB9XHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1cnJlbmN5U3RhdGUuc2V2ZXJpdHkgPT09ICdvayc7IGVsc2UgaW52YWxpZFN0YXRlXCI+XHJcbiAgPGRpdiBjbGFzcz1cImZsZXggaC0ycmVtXCI+XHJcbiAgICA8cC1pbnB1dE51bWJlclxyXG4gICAgICBhdXRvU2VsZWN0XHJcbiAgICAgIGNsYXNzPVwie3sgbXlTdHlsZUNsYXNzIH19IHt7IGNsYXNzIH19XCJcclxuICAgICAgc3R5bGVDbGFzcz1cInt7IG15U3R5bGVDbGFzcyB9fSBib3JkZXItcmFkaXVzLTcge3t2YWxpZGF0aW9uU3RhdHVzQ3NzQ2xhc3N9fVwiXHJcbiAgICAgIGlucHV0U3R5bGVDbGFzcz1cInt7IG15U3R5bGVDbGFzcyB9fVwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgIFtuZ01vZGVsXT1cImlucHV0RmllbGRcIlxyXG4gICAgICAobmdNb2RlbENoYW5nZSk9XCJ2YWx1ZUNoYW5nZWQoJGV2ZW50KVwiXHJcbiAgICAgIChvbkJsdXIpPVwib25DaGFuZ2VvZk9wdGlvbnMoKVwiXHJcbiAgICAgIG5hbWU9XCJ7e2lucHV0TmFtZX19XCJcclxuICAgICAgaWQ9XCJ7e2lucHV0SWR9fVwiXHJcbiAgICAgIG1vZGU9XCJjdXJyZW5jeVwiXHJcbiAgICAgIFtjdXJyZW5jeV09XCJjdXJyZW5jeVwiXHJcbiAgICAgIFtsb2NhbGVdPVwibG9jYWxlXCI+XHJcbiAgICA8L3AtaW5wdXROdW1iZXI+XHJcblxyXG4gICAgPFRzaS1CdWJibGUtSW5mbyBbaW5mb1RleHRdPVwiaW5mb1RleHRcIj48L1RzaS1CdWJibGUtSW5mbz5cclxuICA8L2Rpdj5cclxuPC9uZy1jb250YWluZXI+XHJcblxyXG48bmctdGVtcGxhdGUgI2ludmFsaWRTdGF0ZT5cclxuICA8c3BhbiBjbGFzcz1cImZsZXggdy1mdWxsIGgtMnJlbSBhbGlnbi1pdGVtcy1jZW50ZXIgcC0yIHRzaS1jdXJyZW5jeS1zdGF0ZVwiXHJcbiAgICBbbmdDbGFzc109XCJjdXJyZW5jeVN0YXRlLnNldmVyaXR5ID09PSAnd2FybmluZycgPyAndHNpLWN1cnJlbmN5LXN0YXRlLS13YXJuaW5nJyA6ICd0c2ktY3VycmVuY3ktc3RhdGUtLWVycm9yJ1wiXHJcbiAgICBbcFRvb2x0aXBdPVwidG9vbHRpcE1lc3NhZ2VcIlxyXG4gICAgdG9vbHRpcFBvc2l0aW9uPVwidG9wXCI+XHJcbiAgICB7eyBpbnB1dEZpZWxkIH19XHJcbiAgPC9zcGFuPlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
|
|
@@ -1,24 +1,51 @@
|
|
|
1
1
|
import { Component, inject, Input } from '@angular/core';
|
|
2
|
+
import { localizeCurrencyState, resolveCurrencyState } from '../../../functions/currency-state.functions';
|
|
3
|
+
import { LocalizePipe } from '../../../pipes/localize.pipe';
|
|
2
4
|
import { LocalizationService } from '../../../services/localization/localization.service';
|
|
3
5
|
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "
|
|
6
|
+
import * as i1 from "@angular/common";
|
|
7
|
+
import * as i2 from "primeng/tooltip";
|
|
8
|
+
import * as i3 from "../../../pipes/tsi-currency.pipe";
|
|
5
9
|
export class TsiCurrencyOtherDisplayComponent {
|
|
10
|
+
get currency() { return this._currency; }
|
|
11
|
+
get inputData() { return this._inputData; }
|
|
12
|
+
// Inputs
|
|
13
|
+
set currency(value) {
|
|
14
|
+
this._currency = value;
|
|
15
|
+
this.updateCurrencyState();
|
|
16
|
+
}
|
|
17
|
+
set inputData(value) {
|
|
18
|
+
this._inputData = value;
|
|
19
|
+
this.updateCurrencyState();
|
|
20
|
+
}
|
|
6
21
|
constructor() {
|
|
22
|
+
this.tooltipMessage = '';
|
|
23
|
+
this._inputData = 0;
|
|
24
|
+
// DI
|
|
25
|
+
this._localizePipe = inject(LocalizePipe);
|
|
7
26
|
this._localizationService = inject(LocalizationService);
|
|
8
|
-
|
|
9
|
-
this.
|
|
10
|
-
|
|
11
|
-
|
|
27
|
+
this._locale = this._localizationService.locale;
|
|
28
|
+
this.currencyState = resolveCurrencyState(undefined, undefined, this._locale, 'warning');
|
|
29
|
+
}
|
|
30
|
+
// Lifecycle hooks
|
|
31
|
+
ngOnInit() {
|
|
32
|
+
this.updateCurrencyState();
|
|
33
|
+
}
|
|
34
|
+
// Resolves the currency/value state and the tooltip message. For displays a
|
|
35
|
+
// value exceeding the currency's decimals is a warning (rendered raw).
|
|
36
|
+
updateCurrencyState() {
|
|
37
|
+
this.currencyState = resolveCurrencyState(this.currency, this.inputData, this._locale, 'warning');
|
|
38
|
+
this.tooltipMessage = localizeCurrencyState(this.currencyState, (key) => this._localizePipe.transform(key));
|
|
12
39
|
}
|
|
13
40
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TsiCurrencyOtherDisplayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TsiCurrencyOtherDisplayComponent, selector: "Tsi-Currency-Other-Display", inputs: {
|
|
41
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TsiCurrencyOtherDisplayComponent, selector: "Tsi-Currency-Other-Display", inputs: { currency: "currency", inputData: "inputData" }, ngImport: i0, template: "<ng-container *ngIf=\"currencyState.severity === 'ok'; else invalidState\">\r\n <span class=\"flex row justify-content-end p-2\">\r\n {{ inputData | tsiCurrency : currency ?? '' }}\r\n </span>\r\n</ng-container>\r\n\r\n<ng-template #invalidState>\r\n <span class=\"flex row justify-content-end p-2 tsi-currency-state\"\r\n [ngClass]=\"currencyState.severity === 'warning' ? 'tsi-currency-state--warning' : 'tsi-currency-state--error'\"\r\n [pTooltip]=\"tooltipMessage\"\r\n tooltipPosition=\"top\">\r\n {{ inputData }}\r\n </span>\r\n</ng-template>\r\n", styles: [".tsi-currency-state--error{background-color:var(--tsi-currency-error-bg, rgba(255, 68, 68, .231372549))}.tsi-currency-state--warning{background-color:var(--tsi-currency-warning-bg, rgba(255, 170, 68, .431372549))}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "pipe", type: i3.TsiCurrencyPipe, name: "tsiCurrency" }] }); }
|
|
15
42
|
}
|
|
16
43
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TsiCurrencyOtherDisplayComponent, decorators: [{
|
|
17
44
|
type: Component,
|
|
18
|
-
args: [{ selector: 'Tsi-Currency-Other-Display', template: "<span class=\"flex row justify-content-end p-2\">\r\n
|
|
19
|
-
}], ctorParameters: () => [], propDecorators: {
|
|
45
|
+
args: [{ selector: 'Tsi-Currency-Other-Display', standalone: false, template: "<ng-container *ngIf=\"currencyState.severity === 'ok'; else invalidState\">\r\n <span class=\"flex row justify-content-end p-2\">\r\n {{ inputData | tsiCurrency : currency ?? '' }}\r\n </span>\r\n</ng-container>\r\n\r\n<ng-template #invalidState>\r\n <span class=\"flex row justify-content-end p-2 tsi-currency-state\"\r\n [ngClass]=\"currencyState.severity === 'warning' ? 'tsi-currency-state--warning' : 'tsi-currency-state--error'\"\r\n [pTooltip]=\"tooltipMessage\"\r\n tooltipPosition=\"top\">\r\n {{ inputData }}\r\n </span>\r\n</ng-template>\r\n", styles: [".tsi-currency-state--error{background-color:var(--tsi-currency-error-bg, rgba(255, 68, 68, .231372549))}.tsi-currency-state--warning{background-color:var(--tsi-currency-warning-bg, rgba(255, 170, 68, .431372549))}\n"] }]
|
|
46
|
+
}], ctorParameters: () => [], propDecorators: { currency: [{
|
|
20
47
|
type: Input
|
|
21
|
-
}],
|
|
48
|
+
}], inputData: [{
|
|
22
49
|
type: Input
|
|
23
50
|
}] } });
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHNpLWN1cnJlbmN5LW90aGVyLWRpc3BsYXkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHNpLXNoYXJlZC11aS9zcmMvbGliL3RzaS1jb21wb25lbnRzL291dHB1dC1jb21wb25lbnRzL3RzaS1jdXJyZW5jeS1vdGhlci1kaXNwbGF5L3RzaS1jdXJyZW5jeS1vdGhlci1kaXNwbGF5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RzaS1zaGFyZWQtdWkvc3JjL2xpYi90c2ktY29tcG9uZW50cy9vdXRwdXQtY29tcG9uZW50cy90c2ktY3VycmVuY3ktb3RoZXItZGlzcGxheS90c2ktY3VycmVuY3ktb3RoZXItZGlzcGxheS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFpQixxQkFBcUIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3pILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxREFBcUQsQ0FBQzs7Ozs7QUFRMUYsTUFBTSxPQUFPLGdDQUFnQztJQU0zQyxJQUFJLFFBQVEsS0FBeUIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUM3RCxJQUFJLFNBQVMsS0FBeUIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUUvRCxTQUFTO0lBQ1QsSUFBYSxRQUFRLENBQUMsS0FBeUI7UUFDN0MsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdkIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQWEsU0FBUyxDQUFDLEtBQXlCO1FBQzlDLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFPRDtRQXRCVSxtQkFBYyxHQUFXLEVBQUUsQ0FBQztRQUU5QixlQUFVLEdBQVksQ0FBQyxDQUFDO1FBZWhDLEtBQUs7UUFDRyxrQkFBYSxHQUFpQixNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDbkQseUJBQW9CLEdBQXdCLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQy9ELFlBQU8sR0FBVyxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDO1FBR2xFLElBQUksQ0FBQyxhQUFhLEdBQUcsb0JBQW9CLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsUUFBUTtRQUNOLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCw0RUFBNEU7SUFDNUUsdUVBQXVFO0lBQy9ELG1CQUFtQjtRQUN6QixJQUFJLENBQUMsYUFBYSxHQUFHLG9CQUFvQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ2xHLElBQUksQ0FBQyxjQUFjLEdBQUcscUJBQXFCLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM5RyxDQUFDOytHQXZDVSxnQ0FBZ0M7bUdBQWhDLGdDQUFnQyw0SENYN0MseWxCQWNBOzs0RkRIYSxnQ0FBZ0M7a0JBTjVDLFNBQVM7K0JBQ0UsNEJBQTRCLGNBRzFCLEtBQUs7d0RBWUosUUFBUTtzQkFBcEIsS0FBSztnQkFLTyxTQUFTO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ3VycmVuY3lTdGF0ZSwgbG9jYWxpemVDdXJyZW5jeVN0YXRlLCByZXNvbHZlQ3VycmVuY3lTdGF0ZSB9IGZyb20gJy4uLy4uLy4uL2Z1bmN0aW9ucy9jdXJyZW5jeS1zdGF0ZS5mdW5jdGlvbnMnO1xyXG5pbXBvcnQgeyBMb2NhbGl6ZVBpcGUgfSBmcm9tICcuLi8uLi8uLi9waXBlcy9sb2NhbGl6ZS5waXBlJztcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2xvY2FsaXphdGlvbi9sb2NhbGl6YXRpb24uc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ1RzaS1DdXJyZW5jeS1PdGhlci1EaXNwbGF5JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdHNpLWN1cnJlbmN5LW90aGVyLWRpc3BsYXkuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RzaS1jdXJyZW5jeS1vdGhlci1kaXNwbGF5LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgc3RhbmRhbG9uZTogZmFsc2VcclxufSlcclxuZXhwb3J0IGNsYXNzIFRzaUN1cnJlbmN5T3RoZXJEaXNwbGF5Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAvLyBMb2NhbCBwcm9wc1xyXG4gIHByb3RlY3RlZCBjdXJyZW5jeVN0YXRlOiBDdXJyZW5jeVN0YXRlO1xyXG4gIHByb3RlY3RlZCB0b29sdGlwTWVzc2FnZTogc3RyaW5nID0gJyc7XHJcbiAgcHJpdmF0ZSBfY3VycmVuY3k/OiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfaW5wdXREYXRhPzogbnVtYmVyID0gMDtcclxuICBnZXQgY3VycmVuY3koKTogc3RyaW5nIHwgdW5kZWZpbmVkIHsgcmV0dXJuIHRoaXMuX2N1cnJlbmN5OyB9XHJcbiAgZ2V0IGlucHV0RGF0YSgpOiBudW1iZXIgfCB1bmRlZmluZWQgeyByZXR1cm4gdGhpcy5faW5wdXREYXRhOyB9XHJcblxyXG4gIC8vIElucHV0c1xyXG4gIEBJbnB1dCgpIHNldCBjdXJyZW5jeSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XHJcbiAgICB0aGlzLl9jdXJyZW5jeSA9IHZhbHVlO1xyXG4gICAgdGhpcy51cGRhdGVDdXJyZW5jeVN0YXRlKCk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBzZXQgaW5wdXREYXRhKHZhbHVlOiBudW1iZXIgfCB1bmRlZmluZWQpIHtcclxuICAgIHRoaXMuX2lucHV0RGF0YSA9IHZhbHVlO1xyXG4gICAgdGhpcy51cGRhdGVDdXJyZW5jeVN0YXRlKCk7XHJcbiAgfVxyXG5cclxuICAvLyBESVxyXG4gIHByaXZhdGUgX2xvY2FsaXplUGlwZTogTG9jYWxpemVQaXBlID0gaW5qZWN0KExvY2FsaXplUGlwZSk7XHJcbiAgcHJpdmF0ZSBfbG9jYWxpemF0aW9uU2VydmljZTogTG9jYWxpemF0aW9uU2VydmljZSA9IGluamVjdChMb2NhbGl6YXRpb25TZXJ2aWNlKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9sb2NhbGU6IHN0cmluZyA9IHRoaXMuX2xvY2FsaXphdGlvblNlcnZpY2UubG9jYWxlO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMuY3VycmVuY3lTdGF0ZSA9IHJlc29sdmVDdXJyZW5jeVN0YXRlKHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB0aGlzLl9sb2NhbGUsICd3YXJuaW5nJyk7XHJcbiAgfVxyXG5cclxuICAvLyBMaWZlY3ljbGUgaG9va3NcclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMudXBkYXRlQ3VycmVuY3lTdGF0ZSgpO1xyXG4gIH1cclxuXHJcbiAgLy8gUmVzb2x2ZXMgdGhlIGN1cnJlbmN5L3ZhbHVlIHN0YXRlIGFuZCB0aGUgdG9vbHRpcCBtZXNzYWdlLiBGb3IgZGlzcGxheXMgYVxyXG4gIC8vIHZhbHVlIGV4Y2VlZGluZyB0aGUgY3VycmVuY3kncyBkZWNpbWFscyBpcyBhIHdhcm5pbmcgKHJlbmRlcmVkIHJhdykuXHJcbiAgcHJpdmF0ZSB1cGRhdGVDdXJyZW5jeVN0YXRlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5jdXJyZW5jeVN0YXRlID0gcmVzb2x2ZUN1cnJlbmN5U3RhdGUodGhpcy5jdXJyZW5jeSwgdGhpcy5pbnB1dERhdGEsIHRoaXMuX2xvY2FsZSwgJ3dhcm5pbmcnKTtcclxuICAgIHRoaXMudG9vbHRpcE1lc3NhZ2UgPSBsb2NhbGl6ZUN1cnJlbmN5U3RhdGUodGhpcy5jdXJyZW5jeVN0YXRlLCAoa2V5KSA9PiB0aGlzLl9sb2NhbGl6ZVBpcGUudHJhbnNmb3JtKGtleSkpO1xyXG4gIH1cclxufVxyXG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiY3VycmVuY3lTdGF0ZS5zZXZlcml0eSA9PT0gJ29rJzsgZWxzZSBpbnZhbGlkU3RhdGVcIj5cclxuICAgIDxzcGFuIGNsYXNzPVwiZmxleCByb3cganVzdGlmeS1jb250ZW50LWVuZCBwLTJcIj5cclxuICAgICAgICB7eyBpbnB1dERhdGEgfCB0c2lDdXJyZW5jeSA6IGN1cnJlbmN5ID8/ICcnIH19XHJcbiAgICA8L3NwYW4+XHJcbjwvbmctY29udGFpbmVyPlxyXG5cclxuPG5nLXRlbXBsYXRlICNpbnZhbGlkU3RhdGU+XHJcbiAgICA8c3BhbiBjbGFzcz1cImZsZXggcm93IGp1c3RpZnktY29udGVudC1lbmQgcC0yIHRzaS1jdXJyZW5jeS1zdGF0ZVwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwiY3VycmVuY3lTdGF0ZS5zZXZlcml0eSA9PT0gJ3dhcm5pbmcnID8gJ3RzaS1jdXJyZW5jeS1zdGF0ZS0td2FybmluZycgOiAndHNpLWN1cnJlbmN5LXN0YXRlLS1lcnJvcidcIlxyXG4gICAgICAgIFtwVG9vbHRpcF09XCJ0b29sdGlwTWVzc2FnZVwiXHJcbiAgICAgICAgdG9vbHRpcFBvc2l0aW9uPVwidG9wXCI+XHJcbiAgICAgICAge3sgaW5wdXREYXRhIH19XHJcbiAgICA8L3NwYW4+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
|
|
@@ -1,56 +1,49 @@
|
|
|
1
1
|
import { Component, inject, Input } from '@angular/core';
|
|
2
2
|
import { DefaultSocieteDevise } from '../../../consts/tsi-consts';
|
|
3
|
+
import { AppSettingsService } from '../../../services/settings/app-settings.service';
|
|
4
|
+
import { localizeCurrencyState, resolveCurrencyState } from '../../../functions/currency-state.functions';
|
|
5
|
+
import { LocalizePipe } from '../../../pipes/localize.pipe';
|
|
3
6
|
import { LocalizationService } from '../../../services/localization/localization.service';
|
|
4
7
|
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "
|
|
6
|
-
import * as i2 from "
|
|
8
|
+
import * as i1 from "@angular/common";
|
|
9
|
+
import * as i2 from "primeng/tooltip";
|
|
7
10
|
import * as i3 from "../../../pipes/tsi-currency.pipe";
|
|
8
11
|
export class TsiCurrencySocieteDisplayComponent {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
+
get inputData() { return this._inputData; }
|
|
13
|
+
// Inputs
|
|
14
|
+
set inputData(value) {
|
|
15
|
+
this._inputData = value;
|
|
16
|
+
this.updateCurrencyState();
|
|
17
|
+
}
|
|
18
|
+
constructor() {
|
|
19
|
+
// Local props
|
|
12
20
|
this.currency = DefaultSocieteDevise.codeDevise;
|
|
13
|
-
this.
|
|
14
|
-
|
|
21
|
+
this.tooltipMessage = '';
|
|
22
|
+
// DI
|
|
23
|
+
this._appSettingsService = inject(AppSettingsService);
|
|
24
|
+
this._localizePipe = inject(LocalizePipe);
|
|
15
25
|
this._localizationService = inject(LocalizationService);
|
|
16
|
-
|
|
17
|
-
this.
|
|
18
|
-
this.currency
|
|
19
|
-
appSettingsService.appSettings.deviseSociete.codeDevise ??
|
|
20
|
-
DefaultSocieteDevise.codeDevise;
|
|
21
|
-
this.numOfDecimal =
|
|
22
|
-
appSettingsService.appSettings.deviseSociete.nombreDecimales ??
|
|
23
|
-
DefaultSocieteDevise.nombreDecimales;
|
|
24
|
-
this.locale = this._localizationService.locale;
|
|
25
|
-
}
|
|
26
|
-
getDigitsInfo() {
|
|
27
|
-
return this._digitsInfo;
|
|
26
|
+
this._locale = this._localizationService.locale;
|
|
27
|
+
this.currency = this._appSettingsService.appSettings.deviseSociete.codeDevise ?? DefaultSocieteDevise.codeDevise;
|
|
28
|
+
this.currencyState = resolveCurrencyState(this.currency, undefined, this._locale, 'warning');
|
|
28
29
|
}
|
|
30
|
+
// Lifecycle hooks
|
|
29
31
|
ngOnInit() {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
// this.changeLocal(locals.arabicLocal);
|
|
38
|
-
// } else {
|
|
39
|
-
// this.changeLocal(locals.frenchLocal);
|
|
40
|
-
// }
|
|
41
|
-
// },
|
|
42
|
-
// });
|
|
43
|
-
// if (this._layoutService.isRtlModeEnabled()) {
|
|
44
|
-
// this.changeLocal(locals.arabicLocal);
|
|
45
|
-
// }
|
|
32
|
+
this.updateCurrencyState();
|
|
33
|
+
}
|
|
34
|
+
// Resolves the currency/value state and the tooltip message. For displays a
|
|
35
|
+
// value exceeding the currency's decimals is a warning (rendered raw).
|
|
36
|
+
updateCurrencyState() {
|
|
37
|
+
this.currencyState = resolveCurrencyState(this.currency, this.inputData, this._locale, 'warning');
|
|
38
|
+
this.tooltipMessage = localizeCurrencyState(this.currencyState, (key) => this._localizePipe.transform(key));
|
|
46
39
|
}
|
|
47
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TsiCurrencySocieteDisplayComponent, deps: [
|
|
48
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TsiCurrencySocieteDisplayComponent, selector: "Tsi-Currency-Societe-Display", inputs: { inputData: "inputData" }, ngImport: i0, template: "\r\n<span class=\"row flex justify-content-end p-2\">\r\n {{inputData
|
|
40
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TsiCurrencySocieteDisplayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
41
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TsiCurrencySocieteDisplayComponent, selector: "Tsi-Currency-Societe-Display", inputs: { inputData: "inputData" }, ngImport: i0, template: "<ng-container *ngIf=\"currencyState.severity === 'ok'; else invalidState\">\r\n <span class=\"row flex justify-content-end p-2\">\r\n {{ inputData | tsiCurrency : currency }}\r\n </span>\r\n</ng-container>\r\n\r\n<ng-template #invalidState>\r\n <span class=\"row flex justify-content-end p-2 tsi-currency-state\"\r\n [ngClass]=\"currencyState.severity === 'warning' ? 'tsi-currency-state--warning' : 'tsi-currency-state--error'\"\r\n [pTooltip]=\"tooltipMessage\"\r\n tooltipPosition=\"top\">\r\n {{ inputData }}\r\n </span>\r\n</ng-template>\r\n", styles: [".tsi-currency-state--error{background-color:var(--tsi-currency-error-bg, rgba(255, 68, 68, .231372549))}.tsi-currency-state--warning{background-color:var(--tsi-currency-warning-bg, rgba(255, 170, 68, .431372549))}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "pipe", type: i3.TsiCurrencyPipe, name: "tsiCurrency" }] }); }
|
|
49
42
|
}
|
|
50
43
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TsiCurrencySocieteDisplayComponent, decorators: [{
|
|
51
44
|
type: Component,
|
|
52
|
-
args: [{ selector: 'Tsi-Currency-Societe-Display', template: "\r\n<span class=\"row flex justify-content-end p-2\">\r\n {{inputData
|
|
53
|
-
}], ctorParameters: () => [
|
|
45
|
+
args: [{ selector: 'Tsi-Currency-Societe-Display', standalone: false, template: "<ng-container *ngIf=\"currencyState.severity === 'ok'; else invalidState\">\r\n <span class=\"row flex justify-content-end p-2\">\r\n {{ inputData | tsiCurrency : currency }}\r\n </span>\r\n</ng-container>\r\n\r\n<ng-template #invalidState>\r\n <span class=\"row flex justify-content-end p-2 tsi-currency-state\"\r\n [ngClass]=\"currencyState.severity === 'warning' ? 'tsi-currency-state--warning' : 'tsi-currency-state--error'\"\r\n [pTooltip]=\"tooltipMessage\"\r\n tooltipPosition=\"top\">\r\n {{ inputData }}\r\n </span>\r\n</ng-template>\r\n", styles: [".tsi-currency-state--error{background-color:var(--tsi-currency-error-bg, rgba(255, 68, 68, .231372549))}.tsi-currency-state--warning{background-color:var(--tsi-currency-warning-bg, rgba(255, 170, 68, .431372549))}\n"] }]
|
|
46
|
+
}], ctorParameters: () => [], propDecorators: { inputData: [{
|
|
54
47
|
type: Input
|
|
55
48
|
}] } });
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHNpLWN1cnJlbmN5LXNvY2lldGUtZGlzcGxheS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90c2ktc2hhcmVkLXVpL3NyYy9saWIvdHNpLWNvbXBvbmVudHMvb3V0cHV0LWNvbXBvbmVudHMvdHNpLWN1cnJlbmN5LXNvY2lldGUtZGlzcGxheS90c2ktY3VycmVuY3ktc29jaWV0ZS1kaXNwbGF5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RzaS1zaGFyZWQtdWkvc3JjL2xpYi90c2ktY29tcG9uZW50cy9vdXRwdXQtY29tcG9uZW50cy90c2ktY3VycmVuY3ktc29jaWV0ZS1kaXNwbGF5L3RzaS1jdXJyZW5jeS1zb2NpZXRlLWRpc3BsYXkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3JGLE9BQU8sRUFBaUIscUJBQXFCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUN6SCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDNUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scURBQXFELENBQUM7Ozs7O0FBUTFGLE1BQU0sT0FBTyxrQ0FBa0M7SUFNN0MsSUFBSSxTQUFTLEtBQXlCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFFL0QsU0FBUztJQUNULElBQWEsU0FBUyxDQUFDLEtBQXlCO1FBQzlDLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFRRDtRQW5CQSxjQUFjO1FBQ0osYUFBUSxHQUFXLG9CQUFvQixDQUFDLFVBQVUsQ0FBQztRQUVuRCxtQkFBYyxHQUFXLEVBQUUsQ0FBQztRQVV0QyxLQUFLO1FBQ0csd0JBQW1CLEdBQXVCLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3JFLGtCQUFhLEdBQWlCLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNuRCx5QkFBb0IsR0FBd0IsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDL0QsWUFBTyxHQUFXLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUM7UUFHbEUsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxVQUFVLElBQUksb0JBQW9CLENBQUMsVUFBVSxDQUFDO1FBQ2pILElBQUksQ0FBQyxhQUFhLEdBQUcsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztJQUMvRixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLFFBQVE7UUFDTixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsNEVBQTRFO0lBQzVFLHVFQUF1RTtJQUMvRCxtQkFBbUI7UUFDekIsSUFBSSxDQUFDLGFBQWEsR0FBRyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNsRyxJQUFJLENBQUMsY0FBYyxHQUFHLHFCQUFxQixDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDOUcsQ0FBQzsrR0FuQ1Usa0NBQWtDO21HQUFsQyxrQ0FBa0Msd0dDYi9DLHVqQkFjQTs7NEZERGEsa0NBQWtDO2tCQU45QyxTQUFTOytCQUNFLDhCQUE4QixjQUc1QixLQUFLO3dEQVdKLFNBQVM7c0JBQXJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEZWZhdWx0U29jaWV0ZURldmlzZSB9IGZyb20gJy4uLy4uLy4uL2NvbnN0cy90c2ktY29uc3RzJztcclxuaW1wb3J0IHsgQXBwU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvc2V0dGluZ3MvYXBwLXNldHRpbmdzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDdXJyZW5jeVN0YXRlLCBsb2NhbGl6ZUN1cnJlbmN5U3RhdGUsIHJlc29sdmVDdXJyZW5jeVN0YXRlIH0gZnJvbSAnLi4vLi4vLi4vZnVuY3Rpb25zL2N1cnJlbmN5LXN0YXRlLmZ1bmN0aW9ucyc7XHJcbmltcG9ydCB7IExvY2FsaXplUGlwZSB9IGZyb20gJy4uLy4uLy4uL3BpcGVzL2xvY2FsaXplLnBpcGUnO1xyXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbG9jYWxpemF0aW9uL2xvY2FsaXphdGlvbi5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnVHNpLUN1cnJlbmN5LVNvY2lldGUtRGlzcGxheScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RzaS1jdXJyZW5jeS1zb2NpZXRlLWRpc3BsYXkuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RzaS1jdXJyZW5jeS1zb2NpZXRlLWRpc3BsYXkuY29tcG9uZW50LnNjc3MnXSxcclxuICBzdGFuZGFsb25lOiBmYWxzZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHNpQ3VycmVuY3lTb2NpZXRlRGlzcGxheUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgLy8gTG9jYWwgcHJvcHNcclxuICBwcm90ZWN0ZWQgY3VycmVuY3k6IHN0cmluZyA9IERlZmF1bHRTb2NpZXRlRGV2aXNlLmNvZGVEZXZpc2U7XHJcbiAgcHJvdGVjdGVkIGN1cnJlbmN5U3RhdGU6IEN1cnJlbmN5U3RhdGU7XHJcbiAgcHJvdGVjdGVkIHRvb2x0aXBNZXNzYWdlOiBzdHJpbmcgPSAnJztcclxuICBwcml2YXRlIF9pbnB1dERhdGE/OiBudW1iZXI7XHJcbiAgZ2V0IGlucHV0RGF0YSgpOiBudW1iZXIgfCB1bmRlZmluZWQgeyByZXR1cm4gdGhpcy5faW5wdXREYXRhOyB9XHJcblxyXG4gIC8vIElucHV0c1xyXG4gIEBJbnB1dCgpIHNldCBpbnB1dERhdGEodmFsdWU6IG51bWJlciB8IHVuZGVmaW5lZCkge1xyXG4gICAgdGhpcy5faW5wdXREYXRhID0gdmFsdWU7XHJcbiAgICB0aGlzLnVwZGF0ZUN1cnJlbmN5U3RhdGUoKTtcclxuICB9XHJcblxyXG4gIC8vIERJXHJcbiAgcHJpdmF0ZSBfYXBwU2V0dGluZ3NTZXJ2aWNlOiBBcHBTZXR0aW5nc1NlcnZpY2UgPSBpbmplY3QoQXBwU2V0dGluZ3NTZXJ2aWNlKTtcclxuICBwcml2YXRlIF9sb2NhbGl6ZVBpcGU6IExvY2FsaXplUGlwZSA9IGluamVjdChMb2NhbGl6ZVBpcGUpO1xyXG4gIHByaXZhdGUgX2xvY2FsaXphdGlvblNlcnZpY2U6IExvY2FsaXphdGlvblNlcnZpY2UgPSBpbmplY3QoTG9jYWxpemF0aW9uU2VydmljZSk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfbG9jYWxlOiBzdHJpbmcgPSB0aGlzLl9sb2NhbGl6YXRpb25TZXJ2aWNlLmxvY2FsZTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLmN1cnJlbmN5ID0gdGhpcy5fYXBwU2V0dGluZ3NTZXJ2aWNlLmFwcFNldHRpbmdzLmRldmlzZVNvY2lldGUuY29kZURldmlzZSA/PyBEZWZhdWx0U29jaWV0ZURldmlzZS5jb2RlRGV2aXNlO1xyXG4gICAgdGhpcy5jdXJyZW5jeVN0YXRlID0gcmVzb2x2ZUN1cnJlbmN5U3RhdGUodGhpcy5jdXJyZW5jeSwgdW5kZWZpbmVkLCB0aGlzLl9sb2NhbGUsICd3YXJuaW5nJyk7XHJcbiAgfVxyXG5cclxuICAvLyBMaWZlY3ljbGUgaG9va3NcclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMudXBkYXRlQ3VycmVuY3lTdGF0ZSgpO1xyXG4gIH1cclxuXHJcbiAgLy8gUmVzb2x2ZXMgdGhlIGN1cnJlbmN5L3ZhbHVlIHN0YXRlIGFuZCB0aGUgdG9vbHRpcCBtZXNzYWdlLiBGb3IgZGlzcGxheXMgYVxyXG4gIC8vIHZhbHVlIGV4Y2VlZGluZyB0aGUgY3VycmVuY3kncyBkZWNpbWFscyBpcyBhIHdhcm5pbmcgKHJlbmRlcmVkIHJhdykuXHJcbiAgcHJpdmF0ZSB1cGRhdGVDdXJyZW5jeVN0YXRlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5jdXJyZW5jeVN0YXRlID0gcmVzb2x2ZUN1cnJlbmN5U3RhdGUodGhpcy5jdXJyZW5jeSwgdGhpcy5pbnB1dERhdGEsIHRoaXMuX2xvY2FsZSwgJ3dhcm5pbmcnKTtcclxuICAgIHRoaXMudG9vbHRpcE1lc3NhZ2UgPSBsb2NhbGl6ZUN1cnJlbmN5U3RhdGUodGhpcy5jdXJyZW5jeVN0YXRlLCAoa2V5KSA9PiB0aGlzLl9sb2NhbGl6ZVBpcGUudHJhbnNmb3JtKGtleSkpO1xyXG4gIH1cclxufVxyXG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiY3VycmVuY3lTdGF0ZS5zZXZlcml0eSA9PT0gJ29rJzsgZWxzZSBpbnZhbGlkU3RhdGVcIj5cclxuICA8c3BhbiBjbGFzcz1cInJvdyBmbGV4IGp1c3RpZnktY29udGVudC1lbmQgcC0yXCI+XHJcbiAgICB7eyBpbnB1dERhdGEgfCB0c2lDdXJyZW5jeSA6IGN1cnJlbmN5IH19XHJcbiAgPC9zcGFuPlxyXG48L25nLWNvbnRhaW5lcj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjaW52YWxpZFN0YXRlPlxyXG4gIDxzcGFuIGNsYXNzPVwicm93IGZsZXgganVzdGlmeS1jb250ZW50LWVuZCBwLTIgdHNpLWN1cnJlbmN5LXN0YXRlXCJcclxuICAgIFtuZ0NsYXNzXT1cImN1cnJlbmN5U3RhdGUuc2V2ZXJpdHkgPT09ICd3YXJuaW5nJyA/ICd0c2ktY3VycmVuY3ktc3RhdGUtLXdhcm5pbmcnIDogJ3RzaS1jdXJyZW5jeS1zdGF0ZS0tZXJyb3InXCJcclxuICAgIFtwVG9vbHRpcF09XCJ0b29sdGlwTWVzc2FnZVwiXHJcbiAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIj5cclxuICAgIHt7IGlucHV0RGF0YSB9fVxyXG4gIDwvc3Bhbj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
|