@myrtex-org/form 1.1.16 → 1.1.18
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/modules/object-form/components/elements/input/date/input-date.component.mjs +23 -3
- package/esm2022/lib/modules/object-form/components/elements/input/table/components/input-table-modal/input-table-modal.component.mjs +17 -4
- package/fesm2022/myrtex-org-form.mjs +37 -4
- package/fesm2022/myrtex-org-form.mjs.map +1 -1
- package/lib/modules/object-form/components/elements/input/date/input-date.component.d.ts +2 -0
- package/lib/modules/object-form/components/elements/input/table/components/input-table-modal/input-table-modal.component.d.ts +2 -0
- package/lib/modules/object-form/components/elements/input/table/input-table.component.d.ts +1 -1
- package/package.json +1 -1
package/esm2022/lib/modules/object-form/components/elements/input/date/input-date.component.mjs
CHANGED
|
@@ -13,6 +13,7 @@ export class InputDateComponent extends BaseFieldComponent {
|
|
|
13
13
|
this._millisecondsInDay = 1000 * 60 * 60 * 24;
|
|
14
14
|
this._isInit = false;
|
|
15
15
|
this._isUpdatingInternal = false;
|
|
16
|
+
this._format = '';
|
|
16
17
|
this.dateModel = '';
|
|
17
18
|
this.modelCounter = 0;
|
|
18
19
|
}
|
|
@@ -25,6 +26,25 @@ export class InputDateComponent extends BaseFieldComponent {
|
|
|
25
26
|
}
|
|
26
27
|
return super.getInvalid;
|
|
27
28
|
}
|
|
29
|
+
get dateFormat() {
|
|
30
|
+
switch (this.settings.options.format) {
|
|
31
|
+
case ('дд.мм.гггг'):
|
|
32
|
+
this._format = 'dd.MM.yyyy';
|
|
33
|
+
break;
|
|
34
|
+
case ('мм.гггг'):
|
|
35
|
+
this._format = 'MM.yyyy';
|
|
36
|
+
break;
|
|
37
|
+
case ('гггг'):
|
|
38
|
+
this._format = 'yyyy';
|
|
39
|
+
break;
|
|
40
|
+
default:
|
|
41
|
+
this._format = 'dd.MM.yyyy';
|
|
42
|
+
}
|
|
43
|
+
if (this.settings.options.viewType === 'date-time') {
|
|
44
|
+
this._format += ' HH:mm';
|
|
45
|
+
}
|
|
46
|
+
return this._format;
|
|
47
|
+
}
|
|
28
48
|
get value() {
|
|
29
49
|
if (this.settings.options.range) {
|
|
30
50
|
return [this.modelStart.value, this.modelEnd.value];
|
|
@@ -175,10 +195,10 @@ export class InputDateComponent extends BaseFieldComponent {
|
|
|
175
195
|
}
|
|
176
196
|
}
|
|
177
197
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: InputDateComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
178
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: InputDateComponent, selector: "app-input-date", usesInheritance: true, ngImport: i0, template: "@if (settings) {\r\n <div class=\"input-date-content\">\r\n <div class=\"row\">\r\n <div class=\"col\" [class.col-8]=\"settings.options.counter\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n <mrx-input-date-time\r\n [dateFormat]=\"settings.options.format\"\r\n [ngModel]=\"dateModel\"\r\n [fields]=\"autosaveFields\"\r\n [range]=\"settings.options.range\"\r\n [datePlaceholder]=\"(settings.options.range ? settings.options.placeholder + ' - ' + settings.options.placeholder : settings.options.placeholder) || ''\"\r\n [isManualInput]=\"!settings.options.range\"\r\n [timepicker]=\"getViewTypeTimepicker\"\r\n [invalid]=\"getInvalid\"\r\n [invalidMessage]=\"getInvalidMessage\"\r\n [minDate]=\"settings.options.minDate\"\r\n [maxDate]=\"settings.options.maxDate\"\r\n [disabled]=\"disabled\"\r\n (modelChange)=\"updateValue($event)\"\r\n ></mrx-input-date-time>\r\n\r\n @if(!!settings.options.minDate) {\r\n <mrx-hint-error-message \r\n message=\"\u041C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u2014 {{ settings.options.minDate | dateTimeFormat: 'mos' :
|
|
198
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: InputDateComponent, selector: "app-input-date", usesInheritance: true, ngImport: i0, template: "@if (settings) {\r\n <div class=\"input-date-content\">\r\n <div class=\"row\">\r\n <div class=\"col\" [class.col-8]=\"settings.options.counter\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n <mrx-input-date-time\r\n [dateFormat]=\"settings.options.format\"\r\n [ngModel]=\"dateModel\"\r\n [fields]=\"autosaveFields\"\r\n [range]=\"settings.options.range\"\r\n [datePlaceholder]=\"(settings.options.range ? settings.options.placeholder + ' - ' + settings.options.placeholder : settings.options.placeholder) || ''\"\r\n [isManualInput]=\"!settings.options.range\"\r\n [timepicker]=\"getViewTypeTimepicker\"\r\n [invalid]=\"getInvalid\"\r\n [invalidMessage]=\"getInvalidMessage\"\r\n [minDate]=\"settings.options.minDate\"\r\n [maxDate]=\"settings.options.maxDate\"\r\n [disabled]=\"disabled\"\r\n (modelChange)=\"updateValue($event)\"\r\n ></mrx-input-date-time>\r\n\r\n @if(!!settings.options.minDate) {\r\n <mrx-hint-error-message \r\n message=\"\u041C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u2014 {{ settings.options.minDate | dateTimeFormat: 'mos' : dateFormat}}\"\r\n ></mrx-hint-error-message>\r\n }\r\n\r\n @if(!!settings.options.maxDate) {\r\n <mrx-hint-error-message \r\n message=\"\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u2014 {{ settings.options.maxDate | dateTimeFormat: 'mos' : dateFormat}}\"\r\n ></mrx-hint-error-message>\r\n }\r\n </div>\r\n\r\n @if (settings.options.counter && settings.options.range) {\r\n <div class=\"col col-4\">\r\n <mrx-label>\r\n {{ settings.options.counterLabel }}\r\n </mrx-label>\r\n <mrx-input-number\r\n [ngModel]=\"modelCounter\"\r\n [placeholder]=\"'0'\"\r\n [disabled]=\"!settings.options.counterEditable\"\r\n (ngModelChange)=\"updateCounter($event)\"\r\n ></mrx-input-number>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n}\r\n", styles: [""], dependencies: [{ kind: "component", type: i1.LabelComponent, selector: "mrx-label", inputs: ["requiredHidden", "required", "boldLabel", "disabled", "placeholder", "label", "customClasses", "triggerTextPosition", "isPublicInfo", "publicInfoTooltip", "isSwitch", "switchLabel", "switchValue", "switchSize", "isCheckbox", "checkboxLabel", "checkboxValue", "counter", "linkText", "linkPrevent", "linkType", "linkMonochrome", "href", "triggerType", "tooltip", "tooltipInitialVisible", "isSaveToStorage"], outputs: ["changeSwitchValue", "changeCheckboxValue", "clickedLink"] }, { 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: "component", type: i1.InputNumberComponent, selector: "mrx-input-number", inputs: ["fields", "placeholder", "innerClass", "customClasses", "required", "allowNegative", "size", "separator", "decimalSeparator", "decimals", "isNullableValue", "isAutoCorrectingValue", "invalid", "checkInvalid", "numberType", "invalidMessage", "disabled", "readonly", "minValue", "maxValue"], outputs: ["modelChange", "modelChangeBlur"] }, { kind: "component", type: i1.InputDateTimeComponent, selector: "mrx-input-date-time", inputs: ["inputMask", "dateFormat", "fields", "size", "customClasses", "dateLabel", "timeLabel", "datePlaceholder", "timePlaceholder", "disabled", "readonly", "required", "timepicker", "range", "timezone", "inline", "isManualInput", "addMinTime", "addMaxTime", "addMinTimeObj", "addMaxTimeObj", "disableValidate", "disableIncludes", "container", "invalid", "invalidMessage", "checkInvalid", "minDate", "maxDate", "calendarPosition"], outputs: ["changed", "modelChange", "blurred"] }, { kind: "component", type: i1.HintErrorMessageComponent, selector: "mrx-hint-error-message", inputs: ["message", "value", "maxValue", "minValue", "minLength", "maxLength", "checkInvalid"] }, { kind: "pipe", type: i1.DateTimeFormatPipe, name: "dateTimeFormat" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
179
199
|
}
|
|
180
200
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: InputDateComponent, decorators: [{
|
|
181
201
|
type: Component,
|
|
182
|
-
args: [{ selector: 'app-input-date', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (settings) {\r\n <div class=\"input-date-content\">\r\n <div class=\"row\">\r\n <div class=\"col\" [class.col-8]=\"settings.options.counter\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n <mrx-input-date-time\r\n [dateFormat]=\"settings.options.format\"\r\n [ngModel]=\"dateModel\"\r\n [fields]=\"autosaveFields\"\r\n [range]=\"settings.options.range\"\r\n [datePlaceholder]=\"(settings.options.range ? settings.options.placeholder + ' - ' + settings.options.placeholder : settings.options.placeholder) || ''\"\r\n [isManualInput]=\"!settings.options.range\"\r\n [timepicker]=\"getViewTypeTimepicker\"\r\n [invalid]=\"getInvalid\"\r\n [invalidMessage]=\"getInvalidMessage\"\r\n [minDate]=\"settings.options.minDate\"\r\n [maxDate]=\"settings.options.maxDate\"\r\n [disabled]=\"disabled\"\r\n (modelChange)=\"updateValue($event)\"\r\n ></mrx-input-date-time>\r\n\r\n @if(!!settings.options.minDate) {\r\n <mrx-hint-error-message \r\n message=\"\u041C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u2014 {{ settings.options.minDate | dateTimeFormat: 'mos' :
|
|
202
|
+
args: [{ selector: 'app-input-date', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (settings) {\r\n <div class=\"input-date-content\">\r\n <div class=\"row\">\r\n <div class=\"col\" [class.col-8]=\"settings.options.counter\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n <mrx-input-date-time\r\n [dateFormat]=\"settings.options.format\"\r\n [ngModel]=\"dateModel\"\r\n [fields]=\"autosaveFields\"\r\n [range]=\"settings.options.range\"\r\n [datePlaceholder]=\"(settings.options.range ? settings.options.placeholder + ' - ' + settings.options.placeholder : settings.options.placeholder) || ''\"\r\n [isManualInput]=\"!settings.options.range\"\r\n [timepicker]=\"getViewTypeTimepicker\"\r\n [invalid]=\"getInvalid\"\r\n [invalidMessage]=\"getInvalidMessage\"\r\n [minDate]=\"settings.options.minDate\"\r\n [maxDate]=\"settings.options.maxDate\"\r\n [disabled]=\"disabled\"\r\n (modelChange)=\"updateValue($event)\"\r\n ></mrx-input-date-time>\r\n\r\n @if(!!settings.options.minDate) {\r\n <mrx-hint-error-message \r\n message=\"\u041C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u2014 {{ settings.options.minDate | dateTimeFormat: 'mos' : dateFormat}}\"\r\n ></mrx-hint-error-message>\r\n }\r\n\r\n @if(!!settings.options.maxDate) {\r\n <mrx-hint-error-message \r\n message=\"\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u2014 {{ settings.options.maxDate | dateTimeFormat: 'mos' : dateFormat}}\"\r\n ></mrx-hint-error-message>\r\n }\r\n </div>\r\n\r\n @if (settings.options.counter && settings.options.range) {\r\n <div class=\"col col-4\">\r\n <mrx-label>\r\n {{ settings.options.counterLabel }}\r\n </mrx-label>\r\n <mrx-input-number\r\n [ngModel]=\"modelCounter\"\r\n [placeholder]=\"'0'\"\r\n [disabled]=\"!settings.options.counterEditable\"\r\n (ngModelChange)=\"updateCounter($event)\"\r\n ></mrx-input-number>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n}\r\n" }]
|
|
183
203
|
}] });
|
|
184
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0ZXgtZm9ybS9zcmMvbGliL21vZHVsZXMvb2JqZWN0LWZvcm0vY29tcG9uZW50cy9lbGVtZW50cy9pbnB1dC9kYXRlL2lucHV0LWRhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGV4LWZvcm0vc3JjL2xpYi9tb2R1bGVzL29iamVjdC1mb3JtL2NvbXBvbmVudHMvZWxlbWVudHMvaW5wdXQvZGF0ZS9pbnB1dC1kYXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFHaEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDeEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFTeEQsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGtCQUE0RDtJQU5wRzs7UUFPRSxTQUFJLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQztRQUVkLHVCQUFrQixHQUFXLElBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUUxRCxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLHdCQUFtQixHQUFHLEtBQUssQ0FBQztRQUU3QixjQUFTLEdBQTZCLEVBQUUsQ0FBQztRQUl6QyxpQkFBWSxHQUFXLENBQUMsQ0FBQztLQXNMakM7SUFwTEMsSUFBYSxVQUFVO1FBQ3JCLElBQUksSUFBSSxDQUFDLFFB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QUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztnQkFDekYsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxHQUFHLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO2dCQUM1SCxPQUFPLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQ2hGLENBQUM7WUFFRCxPQUFPLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUMvQixDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7K0dBak1VLGtCQUFrQjttR0FBbEIsa0JBQWtCLDZFQ2YvQixpK0VBMERBOzs0RkQzQ2Esa0JBQWtCO2tCQU45QixTQUFTOytCQUNFLGdCQUFnQixtQkFHVCx1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbXBvbmVudFR5cGUsIERhdGVUeXBlRW51bSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NoYXJlZC1mb3JtL2VudW1zJztcclxuaW1wb3J0IHsgQmFzZUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYmFzZSc7XHJcbmltcG9ydCB7IElucHV0RGF0ZU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2VsZW1ldHMvaW5wdXRzJztcclxuaW1wb3J0IHsgQ29tcG9uZW50VmFsdWVNb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscyc7XHJcbmltcG9ydCB7IG9iamVjdEZvcm1TZWxlY3RvcnMgfSBmcm9tICcuLi8uLi8uLi8uLi9zdG9yZSc7XHJcbmltcG9ydCB7IGRlZmF1bHRWYWx1ZU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vaGVscGVycyc7XHJcbmltcG9ydCB7IElucHV0RGF0ZVRpbWVWYWx1ZVdpdGhJZCB9IGZyb20gJ0BteXJ0ZXgtb3JnL3VpJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWlucHV0LWRhdGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1kYXRlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9pbnB1dC1kYXRlLmNvbXBvbmVudC5sZXNzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIElucHV0RGF0ZUNvbXBvbmVudCBleHRlbmRzIEJhc2VGaWVsZENvbXBvbmVudDxJbnB1dERhdGVNb2RlbCwgSW5wdXREYXRlVGltZVZhbHVlV2l0aElkPiBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgdHlwZSA9IENvbXBvbmVudFR5cGUuSW5wdXREYXRlO1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IF9taWxsaXNlY29uZHNJbkRheTogbnVtYmVyID0gMTAwMCAqIDYwICogNjAgKiAyNDtcclxuXHJcbiAgcHJpdmF0ZSBfaXNJbml0ID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfaXNVcGRhdGluZ0ludGVybmFsID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBkYXRlTW9kZWw6IHN0cmluZyB8IHN0cmluZ1tdIHwgbnVsbCA9ICcnO1xyXG5cclxuICBwdWJsaWMgbW9kZWxTdGFydCE6IENvbXBvbmVudFZhbHVlTW9kZWw7XHJcbiAgcHVibGljIG1vZGVsRW5kITogQ29tcG9uZW50VmFsdWVNb2RlbDtcclxuICBwdWJsaWMgbW9kZWxDb3VudGVyOiBudW1iZXIgPSAwO1xyXG5cclxuICBvdmVycmlkZSBnZXQgZ2V0SW52YWxpZCgpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLnNldHRpbmdzLm9wdGlvbnMucmFuZ2UpIHtcclxuICAgICAgaWYgKHRoaXMuX2lzQ2hlY2tSZXF1aXJlZCAmJiB0aGlzLnNldHRpbmdzLm9wdGlvbnMucmVxdWlyZWQpIHtcclxuICAgICAgICByZXR1cm4gISghIXRoaXMubW9kZWxTdGFydD8udmFsdWUgJiYgISF0aGlzLm1vZGVsRW5kPy52YWx1ZSk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHN1cGVyLmdldEludmFsaWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IHN0cmluZyB8IHN0cmluZ1tdIHtcclxuICAgIGlmICh0aGlzLnNldHRpbmdzLm9wdGlvbnMucmFuZ2UpIHtcclxuICAgICAgcmV0dXJuIFt0aGlzLm1vZGVsU3RhcnQudmFsdWUsIHRoaXMubW9kZWxFbmQudmFsdWVdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMubW9kZWwudmFsdWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGdldFZpZXdUeXBlVGltZXBpY2tlcigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnNldHRpbmdzLm9wdGlvbnMudmlld1R5cGUgPT09IERhdGVUeXBlRW51bS5EYXRlVGltZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB1cGRhdGVWYWx1ZShldmVudDogSW5wdXREYXRlVGltZVZhbHVlV2l0aElkKSB7XHJcbiAgICBpZiAodGhpcy5faXNJbml0KSB7XHJcbiAgICAgIHRoaXMuX2lzVXBkYXRpbmdJbnRlcm5hbCA9IHRydWU7IC8vINCR0LvQvtC60LjRgNGD0LXQvCDQstC90LXRiNC90LjQtSDQvtCx0L3QvtCy0LvQtdC90LjRjyDQvdCwINCy0YDQtdC80Y8g0LLQstC+0LTQsFxyXG5cclxuICAgICAgaWYgKHRoaXMuc2V0dGluZ3Mub3B0aW9ucy5yYW5nZSkge1xyXG4gICAgICAgIGlmICghZXZlbnQudmFsdWUgfHwgZXZlbnQudmFsdWUubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICB0aGlzLmRhdGVNb2RlbCA9IFtdO1xyXG4gICAgICAgICAgdGhpcy5tb2RlbFN0YXJ0LnZhbHVlID0gbnVsbDtcclxuICAgICAgICAgIHRoaXMubW9kZWxFbmQudmFsdWUgPSBudWxsO1xyXG4gICAgICAgICAgdGhpcy5tb2RlbENvdW50ZXIgPSAwO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnQudmFsdWUubGVuZ3RoID09PSAyKSB7XHJcbiAgICAgICAgICB0aGlzLmRhdGVNb2RlbCA9IFtldmVudC52YWx1ZVswXSwgZXZlbnQudmFsdWVbMV1dO1xyXG4gICAgICAgICAgdGhpcy5tb2RlbFN0YXJ0LnZhbHVlID0gZXZlbnQudmFsdWVbMF07XHJcbiAgICAgICAgICB0aGlzLm1vZGVsRW5kLnZhbHVlID0gZXZlbnQudmFsdWVbMV07XHJcbiAgICAgICAgICB0aGlzLm1vZGVsQ291bnRlciA9IHRoaXMuX2dldERheXNEaWZmZXJlbmNlKHRoaXMubW9kZWxTdGFydC52YWx1ZSwgdGhpcy5tb2RlbEVuZC52YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubW9kZWwudmFsdWUgPSB0aGlzLmRhdGVNb2RlbDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmRhdGVNb2RlbCA9IGV2ZW50LnZhbHVlO1xyXG4gICAgICAgIHRoaXMubW9kZWwudmFsdWUgPSBldmVudC52YWx1ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5kaXNwYXRjaE1vZGlmeShldmVudCk7XHJcbiAgICAgIFxyXG4gICAgICAvLyDQodC90LjQvNCw0LXQvCDQsdC70L7QutC40YDQvtCy0LrRgyDRh9GD0YLRjCDQv9C+0LfQttC1LCDQutC+0LPQtNCwIFN0b3JlINC/0LXRgNC10LLQsNGA0LjRgiDQuNC30LzQtdC90LXQvdC40Y9cclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLl9pc1VwZGF0aW5nSW50ZXJuYWwgPSBmYWxzZSwgNjAwKTsgXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdXBkYXRlQ291bnRlcih2YWx1ZTogbnVtYmVyIHwgbnVsbCk6IHZvaWQge1xyXG4gICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgIHRoaXMubW9kZWxDb3VudGVyID0gdmFsdWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm1vZGVsQ291bnRlciA9IDA7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuc2V0dGluZ3Mub3B0aW9ucy5yYW5nZSkge1xyXG4gICAgICBpZih0aGlzLm1vZGVsLnZhbHVlICYmIHRoaXMubW9kZWwudmFsdWVbMF0pIHtcclxuICAgICAgICB0aGlzLm1vZGVsLnZhbHVlID0gW3RoaXMubW9kZWwudmFsdWVbMF0sIG5ldyBEYXRlKCldXHJcbiAgICAgICAgdGhpcy5tb2RlbC52YWx1ZVsxXSA9IHRoaXMuX2NoYW5nZURheXModGhpcy5tb2RlbC52YWx1ZVswXSwgdGhpcy5tb2RlbENvdW50ZXIpO1xyXG5cclxuICAgICAgICB0aGlzLmRhdGVNb2RlbCA9IHRoaXMubW9kZWwudmFsdWU7IFxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMubW9kZWwudmFsdWUgPSBbbmV3IERhdGUoKSwgbmV3IERhdGUoKV1cclxuXHJcbiAgICAgICAgdGhpcy5tb2RlbC52YWx1ZVsxXSA9IHRoaXMuX2NoYW5nZURheXModGhpcy5tb2RlbC52YWx1ZVswXSwgdGhpcy5tb2RlbENvdW50ZXIpO1xyXG5cclxuICAgICAgICB0aGlzLmRhdGVNb2RlbCA9IHRoaXMubW9kZWwudmFsdWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmRpc3BhdGNoTW9kaWZ5KHN0cnVjdHVyZWRDbG9uZSh0aGlzLm1vZGVsLnZhbHVlKSk7XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSBfdHJhbnNmb3JtT3V0cHV0VmFsdWUoKSB7XHJcbiAgICBpZiAodGhpcy5zZXR0aW5ncy5vcHRpb25zLnJhbmdlKSB7XHJcbiAgICAgIHJldHVybiBbc3RydWN0dXJlZENsb25lKHRoaXMubW9kZWxTdGFydCksIHN0cnVjdHVyZWRDbG9uZSh0aGlzLm1vZGVsRW5kKV07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gc3RydWN0dXJlZENsb25lKHRoaXMubW9kZWwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgX2luaXRTdWJzY3JpcHRpb25Gb3JWYWx1ZSgpIHtcclxuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMkLnB1c2goXHJcbiAgICAgIHRoaXMuX3N0b3JlLnNlbGVjdChvYmplY3RGb3JtU2VsZWN0b3JzLnNlbGVjdFZhbHVlTW9kZWwodGhpcy5zZXR0aW5ncykpXHJcbiAgICAgICAgLnN1YnNjcmliZSgocmVzdWx0OiBDb21wb25lbnRWYWx1ZU1vZGVsIHwgbnVsbCB8IChDb21wb25lbnRWYWx1ZU1vZGVsIHwgbnVsbClbXSkgPT4ge1xyXG4gICAgICAgICAgaWYgKCFyZXN1bHQgfHwgdGhpcy5faXNVcGRhdGluZ0ludGVybmFsKSByZXR1cm47XHJcblxyXG4gICAgICAgICAgLy8g0JXRgdC70Lgg0LrQvtC80L/QvtC90LXQvdGCINGD0LbQtSDQuNC90LjRhtC40LDQu9C40LfQuNGA0L7QstCw0L0sINC/0YDQvtCy0LXRgNGP0LXQvCwg0L3Rg9C20L3QviDQu9C4INC+0LHQvdC+0LLQu9GP0YLRjNGB0Y8uXHJcbiAgICAgICAgICAvLyDQnNGLINCd0JUg0L7QsdC90L7QstC70Y/QtdC80YHRjywg0LXRgdC70Lgg0LTQsNC90L3Ri9C1INCyIFN0b3JlINC40LTQtdC90YLQuNGH0L3RiyDRgtC10LwsINGH0YLQviDQvNGLINGD0LbQtSDQtNC10YDQttC40Lwg0LIg0L/QsNC80Y/RgtC4LlxyXG4gICAgICAgICAgaWYgKHRoaXMuX2lzSW5pdCkge1xyXG4gICAgICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IEFycmF5LmlzQXJyYXkocmVzdWx0KSBcclxuICAgICAgICAgICAgICA/IEpTT04uc3RyaW5naWZ5KFtyZXN1bHRbMF0/LnZhbHVlLCByZXN1bHRbMV0/LnZhbHVlXSlcclxuICAgICAgICAgICAgICA6IEpTT04uc3RyaW5naWZ5KHJlc3VsdC52YWx1ZSk7XHJcblxyXG4gICAgICAgICAgICBjb25zdCBjdXJyZW50VmFsdWUgPSB0aGlzLnNldHRpbmdzLm9wdGlvbnMucmFuZ2VcclxuICAgICAgICAgICAgICA/IEpTT04uc3RyaW5naWZ5KFt0aGlzLm1vZGVsU3RhcnQ/LnZhbHVlLCB0aGlzLm1vZGVsRW5kPy52YWx1ZV0pXHJcbiAgICAgICAgICAgICAgOiBKU09OLnN0cmluZ2lmeSh0aGlzLm1vZGVsPy52YWx1ZSk7XHJcblxyXG4gICAgICAgICAgICBpZiAobmV3VmFsdWUgPT09IGN1cnJlbnRWYWx1ZSkge1xyXG4gICAgICAgICAgICAgIHJldHVybjsgLy8g0JTQsNC90L3Ri9C1INGC0LUg0LbQtSDRgdCw0LzRi9C1LCDQstGL0YXQvtC00LjQvCwg0YfRgtC+0LHRiyDQvdC1INC30LDQv9GD0YHQutCw0YLRjCDRgtCw0LnQvNC10YAg0LfQsNC90L7QstC+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAvLyDQldGB0LvQuCDQtNCw0L3QvdGL0LUg0YDQtdCw0LvRjNC90L4g0L3QvtCy0YvQtSAo0L/RgNC40YjQu9C4INC40LfQstC90LUpLCDQvtCx0L3QvtCy0LvRj9C10Lwg0LvQvtC60LDQu9GM0L3Ri9C1INC80L7QtNC10LvQuFxyXG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkocmVzdWx0KSkge1xyXG4gICAgICAgICAgICB0aGlzLm1vZGVsU3RhcnQgPSBzdHJ1Y3R1cmVkQ2xvbmUocmVzdWx0WzBdKSB8fCBkZWZhdWx0VmFsdWVNb2RlbCh0aGlzLnNldHRpbmdzKTtcclxuICAgICAgICAgICAgdGhpcy5tb2RlbEVuZCA9IHN0cnVjdHVyZWRDbG9uZShyZXN1bHRbMV0pIHx8IGRlZmF1bHRWYWx1ZU1vZGVsKHRoaXMuc2V0dGluZ3MpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5tb2RlbCA9IHN0cnVjdHVyZWRDbG9uZShyZXN1bHQgfHwgZGVmYXVsdFZhbHVlTW9kZWwodGhpcy5zZXR0aW5ncykpO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHRoaXMuX2N1c3RvbUluaXQoKTtcclxuICAgICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIF9jdXN0b21Jbml0KCkge1xyXG4gICAgaWYgKCF0aGlzLm1vZGVsKSB7XHJcbiAgICAgIHRoaXMubW9kZWwgPSBkZWZhdWx0VmFsdWVNb2RlbCh0aGlzLnNldHRpbmdzKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5zZXR0aW5ncy5vcHRpb25zLnJhbmdlKSB7XHJcbiAgICAgIGlmICh0aGlzLm1vZGVsU3RhcnQ/LnZhbHVlICYmIHRoaXMubW9kZWxFbmQ/LnZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5kYXRlTW9kZWwgPSBbdGhpcy5tb2RlbFN0YXJ0LnZhbHVlLCB0aGlzLm1vZGVsRW5kLnZhbHVlXTtcclxuICAgICAgICB0aGlzLm1vZGVsQ291bnRlciA9IHRoaXMuX2dldERheXNEaWZmZXJlbmNlKHRoaXMubW9kZWxTdGFydC52YWx1ZSwgdGhpcy5tb2RlbEVuZC52YWx1ZSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoIXRoaXMubW9kZWxTdGFydD8udmFsdWUgJiYgIXRoaXMubW9kZWxFbmQ/LnZhbHVlKSB7XHJcbiAgICAgICAgLy8g0J7Rh9C40YnQsNC10Lwg0YLQvtC70YzQutC+INC10YHQu9C4INCyIFN0b3JlINGA0LXQsNC70YzQvdC+INC/0YPRgdGC0L5cclxuICAgICAgICB0aGlzLmRhdGVNb2RlbCA9IFtdO1xyXG4gICAgICAgIHRoaXMubW9kZWxDb3VudGVyID0gMDtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5kYXRlTW9kZWwgPSB0aGlzLm1vZGVsLnZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX2lzSW5pdCA9IHRydWU7XHJcbiAgICB0aGlzLl9kZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTsgXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9nZXREYXlzRGlmZmVyZW5jZShzdGFydERhdGU6IHN0cmluZywgZW5kRGF0ZTogc3RyaW5nKTogbnVtYmVyIHtcclxuICAgIGNvbnN0IHN0YXJ0ID0gbmV3IERhdGUoc3RhcnREYXRlKTtcclxuICAgIGNvbnN0IGVuZCA9IG5ldyBEYXRlKGVuZERhdGUpO1xyXG5cclxuICAgIGlmIChpc05hTihzdGFydC5nZXRUaW1lKCkpIHx8IGlzTmFOKGVuZC5nZXRUaW1lKCkpKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ludmFsaWQgZGF0ZSBmb3JtYXQnKTtcclxuICAgICAgcmV0dXJuIDA7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZGlmZmVyZW5jZUluTXMgPSBNYXRoLmFicyhlbmQuZ2V0VGltZSgpIC0gc3RhcnQuZ2V0VGltZSgpKTtcclxuICAgIHJldHVybiBNYXRoLmZsb29yKGRpZmZlcmVuY2VJbk1zIC8gdGhpcy5fbWlsbGlzZWNvbmRzSW5EYXkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY2hhbmdlRGF5cyhzdGFydERhdGU6IHN0cmluZywgZGF5czogbnVtYmVyKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICBpZiAoc3RhcnREYXRlKSB7XHJcbiAgICAgIGNvbnN0IHN0YXJ0ID0gbmV3IERhdGUoc3RhcnREYXRlKTtcclxuXHJcbiAgICAgIGlmIChpc05hTihzdGFydC5nZXRUaW1lKCkpKSB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcignSW52YWxpZCBzdGFydCBkYXRlIGZvcm1hdCcpO1xyXG4gICAgICAgIHJldHVybiBzdGFydERhdGU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICghTnVtYmVyLmlzSW50ZWdlcihkYXlzKSB8fCBkYXlzIDwgMCkge1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0RheXMgbXVzdCBiZSBhIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyJyk7XHJcbiAgICAgICAgcmV0dXJuIHN0YXJ0RGF0ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgbGV0IG5ld0RhdGUgPSBuZXcgRGF0ZShzdGFydC5nZXRUaW1lKCkgKyBkYXlzICogdGhpcy5fbWlsbGlzZWNvbmRzSW5EYXkpO1xyXG5cclxuICAgICAgaWYgKCEhdGhpcy5zZXR0aW5ncy5vcHRpb25zLm1heERhdGUgJiYgbmV3RGF0ZSA+IG5ldyBEYXRlKHRoaXMuc2V0dGluZ3Mub3B0aW9ucy5tYXhEYXRlKSkge1xyXG4gICAgICAgIGNvbnN0IG1heERheXMgPSBNYXRoLmZsb29yKChuZXcgRGF0ZSh0aGlzLnNldHRpbmdzLm9wdGlvbnMubWF4RGF0ZSkuZ2V0VGltZSgpIC0gc3RhcnQuZ2V0VGltZSgpKSAvIHRoaXMuX21pbGxpc2Vjb25kc0luRGF5KTtcclxuICAgICAgICBuZXdEYXRlID0gbmV3IERhdGUoc3RhcnQuZ2V0VGltZSgpICsgKG1heERheXMgKyAxKSAqIHRoaXMuX21pbGxpc2Vjb25kc0luRGF5KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIG5ld0RhdGUudG9JU09TdHJpbmcoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCJAaWYgKHNldHRpbmdzKSB7XHJcbiAgPGRpdiBjbGFzcz1cImlucHV0LWRhdGUtY29udGVudFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sXCIgW2NsYXNzLmNvbC04XT1cInNldHRpbmdzLm9wdGlvbnMuY291bnRlclwiPlxyXG4gICAgICAgIEBpZiAoc2V0dGluZ3Mub3B0aW9ucy5sYWJlbCkge1xyXG4gICAgICAgICAgPG1yeC1sYWJlbFxyXG4gICAgICAgICAgICBbcmVxdWlyZWRdPVwic2V0dGluZ3Mub3B0aW9ucy5yZXF1aXJlZFwiXHJcbiAgICAgICAgICAgIFt0b29sdGlwXT1cInNldHRpbmdzLm9wdGlvbnMudG9vbHRpcCB8fCAnJ1wiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHt7IHNldHRpbmdzLm9wdGlvbnMubGFiZWwgfX1cclxuICAgICAgICAgIDwvbXJ4LWxhYmVsPlxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgPG1yeC1pbnB1dC1kYXRlLXRpbWVcclxuICAgICAgICAgIFtkYXRlRm9ybWF0XT1cInNldHRpbmdzLm9wdGlvbnMuZm9ybWF0XCJcclxuICAgICAgICAgIFtuZ01vZGVsXT1cImRhdGVNb2RlbFwiXHJcbiAgICAgICAgICBbZmllbGRzXT1cImF1dG9zYXZlRmllbGRzXCJcclxuICAgICAgICAgIFtyYW5nZV09XCJzZXR0aW5ncy5vcHRpb25zLnJhbmdlXCJcclxuICAgICAgICAgIFtkYXRlUGxhY2Vob2xkZXJdPVwiKHNldHRpbmdzLm9wdGlvbnMucmFuZ2UgPyBzZXR0aW5ncy5vcHRpb25zLnBsYWNlaG9sZGVyICsgJyAtICcgKyBzZXR0aW5ncy5vcHRpb25zLnBsYWNlaG9sZGVyIDogc2V0dGluZ3Mub3B0aW9ucy5wbGFjZWhvbGRlcikgfHwgJydcIlxyXG4gICAgICAgICAgW2lzTWFudWFsSW5wdXRdPVwiIXNldHRpbmdzLm9wdGlvbnMucmFuZ2VcIlxyXG4gICAgICAgICAgW3RpbWVwaWNrZXJdPVwiZ2V0Vmlld1R5cGVUaW1lcGlja2VyXCJcclxuICAgICAgICAgIFtpbnZhbGlkXT1cImdldEludmFsaWRcIlxyXG4gICAgICAgICAgW2ludmFsaWRNZXNzYWdlXT1cImdldEludmFsaWRNZXNzYWdlXCJcclxuICAgICAgICAgIFttaW5EYXRlXT1cInNldHRpbmdzLm9wdGlvbnMubWluRGF0ZVwiXHJcbiAgICAgICAgICBbbWF4RGF0ZV09XCJzZXR0aW5ncy5vcHRpb25zLm1heERhdGVcIlxyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJ1cGRhdGVWYWx1ZSgkZXZlbnQpXCJcclxuICAgICAgICA+PC9tcngtaW5wdXQtZGF0ZS10aW1lPlxyXG5cclxuICAgICAgICBAaWYoISFzZXR0aW5ncy5vcHRpb25zLm1pbkRhdGUpIHtcclxuICAgICAgICAgIDxtcngtaGludC1lcnJvci1tZXNzYWdlICBcclxuICAgICAgICAgICAgbWVzc2FnZT1cItCc0LjQvdC40LzQsNC70YzQvdC+0LUg0LfQvdCw0YfQtdC90LjQtSDigJQge3sgc2V0dGluZ3Mub3B0aW9ucy5taW5EYXRlIHwgZGF0ZVRpbWVGb3JtYXQ6ICdtb3MnIDogJ2RkLk1NLnl5eXknfX1cIlxyXG4gICAgICAgICAgPjwvbXJ4LWhpbnQtZXJyb3ItbWVzc2FnZT5cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEBpZighIXNldHRpbmdzLm9wdGlvbnMubWF4RGF0ZSkge1xyXG4gICAgICAgICAgPG1yeC1oaW50LWVycm9yLW1lc3NhZ2UgIFxyXG4gICAgICAgICAgICBtZXNzYWdlPVwi0JzQsNC60YHQuNC80LDQu9GM0L3QvtC1INC30L3QsNGH0LXQvdC40LUg4oCUIHt7IHNldHRpbmdzLm9wdGlvbnMubWF4RGF0ZSB8IGRhdGVUaW1lRm9ybWF0OiAnbW9zJyA6ICdkZC5NTS55eXl5JyB9fVwiXHJcbiAgICAgICAgICA+PC9tcngtaGludC1lcnJvci1tZXNzYWdlPlxyXG4gICAgICAgIH1cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICBAaWYgKHNldHRpbmdzLm9wdGlvbnMuY291bnRlciAmJiBzZXR0aW5ncy5vcHRpb25zLnJhbmdlKSB7XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtNFwiPlxyXG4gICAgICAgICAgPG1yeC1sYWJlbD5cclxuICAgICAgICAgICAge3sgc2V0dGluZ3Mub3B0aW9ucy5jb3VudGVyTGFiZWwgfX1cclxuICAgICAgICAgIDwvbXJ4LWxhYmVsPlxyXG4gICAgICAgICAgPG1yeC1pbnB1dC1udW1iZXJcclxuICAgICAgICAgICAgW25nTW9kZWxdPVwibW9kZWxDb3VudGVyXCJcclxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIicwJ1wiXHJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhc2V0dGluZ3Mub3B0aW9ucy5jb3VudGVyRWRpdGFibGVcIlxyXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ1cGRhdGVDb3VudGVyKCRldmVudClcIlxyXG4gICAgICAgICAgPjwvbXJ4LWlucHV0LW51bWJlcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgfVxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbn1cclxuIl19
|
|
204
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0ZXgtZm9ybS9zcmMvbGliL21vZHVsZXMvb2JqZWN0LWZvcm0vY29tcG9uZW50cy9lbGVtZW50cy9pbnB1dC9kYXRlL2lucHV0LWRhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGV4LWZvcm0vc3JjL2xpYi9tb2R1bGVzL29iamVjdC1mb3JtL2NvbXBvbmVudHMvZWxlbWVudHMvaW5wdXQvZGF0ZS9pbnB1dC1kYXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFHaEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDeEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFTeEQsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGtCQUE0RDtJQU5wRzs7UUFPRSxTQUFJLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQztRQUVkLHVCQUFrQixHQUFXLElBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUUxRCxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLHdCQUFtQixHQUFHLEtBQUssQ0FBQztRQUM1QixZQUFPLEdBQUcsRUFBRSxDQUFDO1FBRWQsY0FBUyxHQUE2QixFQUFFLENBQUM7UUFJekMsaUJBQVksR0FBVyxDQUFDLENBQUM7S0FnTmpDO0lBOU1DLElBQWEsVUFB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O2FBQU0sQ0FBQztZQUNOLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7K0dBNU5VLGtCQUFrQjttR0FBbEIsa0JBQWtCLDZFQ2YvQiw0OUVBMERBOzs0RkQzQ2Esa0JBQWtCO2tCQU45QixTQUFTOytCQUNFLGdCQUFnQixtQkFHVCx1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbXBvbmVudFR5cGUsIERhdGVUeXBlRW51bSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NoYXJlZC1mb3JtL2VudW1zJztcclxuaW1wb3J0IHsgQmFzZUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYmFzZSc7XHJcbmltcG9ydCB7IElucHV0RGF0ZU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2VsZW1ldHMvaW5wdXRzJztcclxuaW1wb3J0IHsgQ29tcG9uZW50VmFsdWVNb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscyc7XHJcbmltcG9ydCB7IG9iamVjdEZvcm1TZWxlY3RvcnMgfSBmcm9tICcuLi8uLi8uLi8uLi9zdG9yZSc7XHJcbmltcG9ydCB7IGRlZmF1bHRWYWx1ZU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vaGVscGVycyc7XHJcbmltcG9ydCB7IElucHV0RGF0ZVRpbWVWYWx1ZVdpdGhJZCB9IGZyb20gJ0BteXJ0ZXgtb3JnL3VpJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWlucHV0LWRhdGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1kYXRlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9pbnB1dC1kYXRlLmNvbXBvbmVudC5sZXNzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIElucHV0RGF0ZUNvbXBvbmVudCBleHRlbmRzIEJhc2VGaWVsZENvbXBvbmVudDxJbnB1dERhdGVNb2RlbCwgSW5wdXREYXRlVGltZVZhbHVlV2l0aElkPiBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgdHlwZSA9IENvbXBvbmVudFR5cGUuSW5wdXREYXRlO1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IF9taWxsaXNlY29uZHNJbkRheTogbnVtYmVyID0gMTAwMCAqIDYwICogNjAgKiAyNDtcclxuXHJcbiAgcHJpdmF0ZSBfaXNJbml0ID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfaXNVcGRhdGluZ0ludGVybmFsID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfZm9ybWF0ID0gJyc7XHJcblxyXG4gIHB1YmxpYyBkYXRlTW9kZWw6IHN0cmluZyB8IHN0cmluZ1tdIHwgbnVsbCA9ICcnO1xyXG5cclxuICBwdWJsaWMgbW9kZWxTdGFydCE6IENvbXBvbmVudFZhbHVlTW9kZWw7XHJcbiAgcHVibGljIG1vZGVsRW5kITogQ29tcG9uZW50VmFsdWVNb2RlbDtcclxuICBwdWJsaWMgbW9kZWxDb3VudGVyOiBudW1iZXIgPSAwO1xyXG5cclxuICBvdmVycmlkZSBnZXQgZ2V0SW52YWxpZCgpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLnNldHRpbmdzLm9wdGlvbnMucmFuZ2UpIHtcclxuICAgICAgaWYgKHRoaXMuX2lzQ2hlY2tSZXF1aXJlZCAmJiB0aGlzLnNldHRpbmdzLm9wdGlvbnMucmVxdWlyZWQpIHtcclxuICAgICAgICByZXR1cm4gISghIXRoaXMubW9kZWxTdGFydD8udmFsdWUgJiYgISF0aGlzLm1vZGVsRW5kPy52YWx1ZSk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHN1cGVyLmdldEludmFsaWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGRhdGVGb3JtYXQoKTogc3RyaW5nIHtcclxuXHJcbiAgICBzd2l0Y2godGhpcy5zZXR0aW5ncy5vcHRpb25zLmZvcm1hdCkge1xyXG4gICAgICBjYXNlKCfQtNC0LtC80Lwu0LPQs9Cz0LMnKTpcclxuICAgICAgICB0aGlzLl9mb3JtYXQgPSAnZGQuTU0ueXl5eSc7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIFxyXG4gICAgICBjYXNlKCfQvNC8LtCz0LPQs9CzJyk6XHJcbiAgICAgICAgdGhpcy5fZm9ybWF0ID0gJ01NLnl5eXknO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSgn0LPQs9Cz0LMnKTpcclxuICAgICAgICB0aGlzLl9mb3JtYXQgPSAneXl5eSc7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHRoaXMuX2Zvcm1hdCA9ICdkZC5NTS55eXl5JztcclxuICAgIH1cclxuXHJcbiAgICBpZih0aGlzLnNldHRpbmdzLm9wdGlvbnMudmlld1R5cGUgPT09ICdkYXRlLXRpbWUnKSB7XHJcbiAgICAgIHRoaXMuX2Zvcm1hdCArPSAnIEhIOm1tJztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5fZm9ybWF0XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IHN0cmluZyB8IHN0cmluZ1tdIHtcclxuICAgIGlmICh0aGlzLnNldHRpbmdzLm9wdGlvbnMucmFuZ2UpIHtcclxuICAgICAgcmV0dXJuIFt0aGlzLm1vZGVsU3RhcnQudmFsdWUsIHRoaXMubW9kZWxFbmQudmFsdWVdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMubW9kZWwudmFsdWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGdldFZpZXdUeXBlVGltZXBpY2tlcigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnNldHRpbmdzLm9wdGlvbnMudmlld1R5cGUgPT09IERhdGVUeXBlRW51bS5EYXRlVGltZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB1cGRhdGVWYWx1ZShldmVudDogSW5wdXREYXRlVGltZVZhbHVlV2l0aElkKSB7XHJcbiAgICBpZiAodGhpcy5faXNJbml0KSB7XHJcbiAgICAgIHRoaXMuX2lzVXBkYXRpbmdJbnRlcm5hbCA9IHRydWU7IC8vINCR0LvQvtC60LjRgNGD0LXQvCDQstC90LXRiNC90LjQtSDQvtCx0L3QvtCy0LvQtdC90LjRjyDQvdCwINCy0YDQtdC80Y8g0LLQstC+0LTQsFxyXG5cclxuICAgICAgaWYgKHRoaXMuc2V0dGluZ3Mub3B0aW9ucy5yYW5nZSkge1xyXG4gICAgICAgIGlmICghZXZlbnQudmFsdWUgfHwgZXZlbnQudmFsdWUubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICB0aGlzLmRhdGVNb2RlbCA9IFtdO1xyXG4gICAgICAgICAgdGhpcy5tb2RlbFN0YXJ0LnZhbHVlID0gbnVsbDtcclxuICAgICAgICAgIHRoaXMubW9kZWxFbmQudmFsdWUgPSBudWxsO1xyXG4gICAgICAgICAgdGhpcy5tb2RlbENvdW50ZXIgPSAwO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnQudmFsdWUubGVuZ3RoID09PSAyKSB7XHJcbiAgICAgICAgICB0aGlzLmRhdGVNb2RlbCA9IFtldmVudC52YWx1ZVswXSwgZXZlbnQudmFsdWVbMV1dO1xyXG4gICAgICAgICAgdGhpcy5tb2RlbFN0YXJ0LnZhbHVlID0gZXZlbnQudmFsdWVbMF07XHJcbiAgICAgICAgICB0aGlzLm1vZGVsRW5kLnZhbHVlID0gZXZlbnQudmFsdWVbMV07XHJcbiAgICAgICAgICB0aGlzLm1vZGVsQ291bnRlciA9IHRoaXMuX2dldERheXNEaWZmZXJlbmNlKHRoaXMubW9kZWxTdGFydC52YWx1ZSwgdGhpcy5tb2RlbEVuZC52YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubW9kZWwudmFsdWUgPSB0aGlzLmRhdGVNb2RlbDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmRhdGVNb2RlbCA9IGV2ZW50LnZhbHVlO1xyXG4gICAgICAgIHRoaXMubW9kZWwudmFsdWUgPSBldmVudC52YWx1ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5kaXNwYXRjaE1vZGlmeShldmVudCk7XHJcbiAgICAgIFxyXG4gICAgICAvLyDQodC90LjQvNCw0LXQvCDQsdC70L7QutC40YDQvtCy0LrRgyDRh9GD0YLRjCDQv9C+0LfQttC1LCDQutC+0LPQtNCwIFN0b3JlINC/0LXRgNC10LLQsNGA0LjRgiDQuNC30LzQtdC90LXQvdC40Y9cclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLl9pc1VwZGF0aW5nSW50ZXJuYWwgPSBmYWxzZSwgNjAwKTsgXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdXBkYXRlQ291bnRlcih2YWx1ZTogbnVtYmVyIHwgbnVsbCk6IHZvaWQge1xyXG4gICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgIHRoaXMubW9kZWxDb3VudGVyID0gdmFsdWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm1vZGVsQ291bnRlciA9IDA7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuc2V0dGluZ3Mub3B0aW9ucy5yYW5nZSkge1xyXG4gICAgICBpZih0aGlzLm1vZGVsLnZhbHVlICYmIHRoaXMubW9kZWwudmFsdWVbMF0pIHtcclxuICAgICAgICB0aGlzLm1vZGVsLnZhbHVlID0gW3RoaXMubW9kZWwudmFsdWVbMF0sIG5ldyBEYXRlKCldXHJcbiAgICAgICAgdGhpcy5tb2RlbC52YWx1ZVsxXSA9IHRoaXMuX2NoYW5nZURheXModGhpcy5tb2RlbC52YWx1ZVswXSwgdGhpcy5tb2RlbENvdW50ZXIpO1xyXG5cclxuICAgICAgICB0aGlzLmRhdGVNb2RlbCA9IHRoaXMubW9kZWwudmFsdWU7IFxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMubW9kZWwudmFsdWUgPSBbbmV3IERhdGUoKSwgbmV3IERhdGUoKV1cclxuXHJcbiAgICAgICAgdGhpcy5tb2RlbC52YWx1ZVsxXSA9IHRoaXMuX2NoYW5nZURheXModGhpcy5tb2RlbC52YWx1ZVswXSwgdGhpcy5tb2RlbENvdW50ZXIpO1xyXG5cclxuICAgICAgICB0aGlzLmRhdGVNb2RlbCA9IHRoaXMubW9kZWwudmFsdWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmRpc3BhdGNoTW9kaWZ5KHN0cnVjdHVyZWRDbG9uZSh0aGlzLm1vZGVsLnZhbHVlKSk7XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSBfdHJhbnNmb3JtT3V0cHV0VmFsdWUoKSB7XHJcbiAgICBpZiAodGhpcy5zZXR0aW5ncy5vcHRpb25zLnJhbmdlKSB7XHJcbiAgICAgIHJldHVybiBbc3RydWN0dXJlZENsb25lKHRoaXMubW9kZWxTdGFydCksIHN0cnVjdHVyZWRDbG9uZSh0aGlzLm1vZGVsRW5kKV07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gc3RydWN0dXJlZENsb25lKHRoaXMubW9kZWwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgX2luaXRTdWJzY3JpcHRpb25Gb3JWYWx1ZSgpIHtcclxuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMkLnB1c2goXHJcbiAgICAgIHRoaXMuX3N0b3JlLnNlbGVjdChvYmplY3RGb3JtU2VsZWN0b3JzLnNlbGVjdFZhbHVlTW9kZWwodGhpcy5zZXR0aW5ncykpXHJcbiAgICAgICAgLnN1YnNjcmliZSgocmVzdWx0OiBDb21wb25lbnRWYWx1ZU1vZGVsIHwgbnVsbCB8IChDb21wb25lbnRWYWx1ZU1vZGVsIHwgbnVsbClbXSkgPT4ge1xyXG4gICAgICAgICAgaWYgKCFyZXN1bHQgfHwgdGhpcy5faXNVcGRhdGluZ0ludGVybmFsKSByZXR1cm47XHJcblxyXG4gICAgICAgICAgLy8g0JXRgdC70Lgg0LrQvtC80L/QvtC90LXQvdGCINGD0LbQtSDQuNC90LjRhtC40LDQu9C40LfQuNGA0L7QstCw0L0sINC/0YDQvtCy0LXRgNGP0LXQvCwg0L3Rg9C20L3QviDQu9C4INC+0LHQvdC+0LLQu9GP0YLRjNGB0Y8uXHJcbiAgICAgICAgICAvLyDQnNGLINCd0JUg0L7QsdC90L7QstC70Y/QtdC80YHRjywg0LXRgdC70Lgg0LTQsNC90L3Ri9C1INCyIFN0b3JlINC40LTQtdC90YLQuNGH0L3RiyDRgtC10LwsINGH0YLQviDQvNGLINGD0LbQtSDQtNC10YDQttC40Lwg0LIg0L/QsNC80Y/RgtC4LlxyXG4gICAgICAgICAgaWYgKHRoaXMuX2lzSW5pdCkge1xyXG4gICAgICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IEFycmF5LmlzQXJyYXkocmVzdWx0KSBcclxuICAgICAgICAgICAgICA/IEpTT04uc3RyaW5naWZ5KFtyZXN1bHRbMF0/LnZhbHVlLCByZXN1bHRbMV0/LnZhbHVlXSlcclxuICAgICAgICAgICAgICA6IEpTT04uc3RyaW5naWZ5KHJlc3VsdC52YWx1ZSk7XHJcblxyXG4gICAgICAgICAgICBjb25zdCBjdXJyZW50VmFsdWUgPSB0aGlzLnNldHRpbmdzLm9wdGlvbnMucmFuZ2VcclxuICAgICAgICAgICAgICA/IEpTT04uc3RyaW5naWZ5KFt0aGlzLm1vZGVsU3RhcnQ/LnZhbHVlLCB0aGlzLm1vZGVsRW5kPy52YWx1ZV0pXHJcbiAgICAgICAgICAgICAgOiBKU09OLnN0cmluZ2lmeSh0aGlzLm1vZGVsPy52YWx1ZSk7XHJcblxyXG4gICAgICAgICAgICBpZiAobmV3VmFsdWUgPT09IGN1cnJlbnRWYWx1ZSkge1xyXG4gICAgICAgICAgICAgIHJldHVybjsgLy8g0JTQsNC90L3Ri9C1INGC0LUg0LbQtSDRgdCw0LzRi9C1LCDQstGL0YXQvtC00LjQvCwg0YfRgtC+0LHRiyDQvdC1INC30LDQv9GD0YHQutCw0YLRjCDRgtCw0LnQvNC10YAg0LfQsNC90L7QstC+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAvLyDQldGB0LvQuCDQtNCw0L3QvdGL0LUg0YDQtdCw0LvRjNC90L4g0L3QvtCy0YvQtSAo0L/RgNC40YjQu9C4INC40LfQstC90LUpLCDQvtCx0L3QvtCy0LvRj9C10Lwg0LvQvtC60LDQu9GM0L3Ri9C1INC80L7QtNC10LvQuFxyXG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkocmVzdWx0KSkge1xyXG4gICAgICAgICAgICB0aGlzLm1vZGVsU3RhcnQgPSBzdHJ1Y3R1cmVkQ2xvbmUocmVzdWx0WzBdKSB8fCBkZWZhdWx0VmFsdWVNb2RlbCh0aGlzLnNldHRpbmdzKTtcclxuICAgICAgICAgICAgdGhpcy5tb2RlbEVuZCA9IHN0cnVjdHVyZWRDbG9uZShyZXN1bHRbMV0pIHx8IGRlZmF1bHRWYWx1ZU1vZGVsKHRoaXMuc2V0dGluZ3MpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5tb2RlbCA9IHN0cnVjdHVyZWRDbG9uZShyZXN1bHQgfHwgZGVmYXVsdFZhbHVlTW9kZWwodGhpcy5zZXR0aW5ncykpO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHRoaXMuX2N1c3RvbUluaXQoKTtcclxuICAgICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIF9jdXN0b21Jbml0KCkge1xyXG4gICAgaWYgKCF0aGlzLm1vZGVsKSB7XHJcbiAgICAgIHRoaXMubW9kZWwgPSBkZWZhdWx0VmFsdWVNb2RlbCh0aGlzLnNldHRpbmdzKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5zZXR0aW5ncy5vcHRpb25zLnJhbmdlKSB7XHJcbiAgICAgIGlmICh0aGlzLm1vZGVsU3RhcnQ/LnZhbHVlICYmIHRoaXMubW9kZWxFbmQ/LnZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5kYXRlTW9kZWwgPSBbdGhpcy5tb2RlbFN0YXJ0LnZhbHVlLCB0aGlzLm1vZGVsRW5kLnZhbHVlXTtcclxuICAgICAgICB0aGlzLm1vZGVsQ291bnRlciA9IHRoaXMuX2dldERheXNEaWZmZXJlbmNlKHRoaXMubW9kZWxTdGFydC52YWx1ZSwgdGhpcy5tb2RlbEVuZC52YWx1ZSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoIXRoaXMubW9kZWxTdGFydD8udmFsdWUgJiYgIXRoaXMubW9kZWxFbmQ/LnZhbHVlKSB7XHJcbiAgICAgICAgLy8g0J7Rh9C40YnQsNC10Lwg0YLQvtC70YzQutC+INC10YHQu9C4INCyIFN0b3JlINGA0LXQsNC70YzQvdC+INC/0YPRgdGC0L5cclxuICAgICAgICB0aGlzLmRhdGVNb2RlbCA9IFtdO1xyXG4gICAgICAgIHRoaXMubW9kZWxDb3VudGVyID0gMDtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5kYXRlTW9kZWwgPSB0aGlzLm1vZGVsLnZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX2lzSW5pdCA9IHRydWU7XHJcbiAgICB0aGlzLl9kZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTsgXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9nZXREYXlzRGlmZmVyZW5jZShzdGFydERhdGU6IHN0cmluZywgZW5kRGF0ZTogc3RyaW5nKTogbnVtYmVyIHtcclxuICAgIGNvbnN0IHN0YXJ0ID0gbmV3IERhdGUoc3RhcnREYXRlKTtcclxuICAgIGNvbnN0IGVuZCA9IG5ldyBEYXRlKGVuZERhdGUpO1xyXG5cclxuICAgIGlmIChpc05hTihzdGFydC5nZXRUaW1lKCkpIHx8IGlzTmFOKGVuZC5nZXRUaW1lKCkpKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ludmFsaWQgZGF0ZSBmb3JtYXQnKTtcclxuICAgICAgcmV0dXJuIDA7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZGlmZmVyZW5jZUluTXMgPSBNYXRoLmFicyhlbmQuZ2V0VGltZSgpIC0gc3RhcnQuZ2V0VGltZSgpKTtcclxuICAgIHJldHVybiBNYXRoLmZsb29yKGRpZmZlcmVuY2VJbk1zIC8gdGhpcy5fbWlsbGlzZWNvbmRzSW5EYXkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY2hhbmdlRGF5cyhzdGFydERhdGU6IHN0cmluZywgZGF5czogbnVtYmVyKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICBpZiAoc3RhcnREYXRlKSB7XHJcbiAgICAgIGNvbnN0IHN0YXJ0ID0gbmV3IERhdGUoc3RhcnREYXRlKTtcclxuXHJcbiAgICAgIGlmIChpc05hTihzdGFydC5nZXRUaW1lKCkpKSB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcignSW52YWxpZCBzdGFydCBkYXRlIGZvcm1hdCcpO1xyXG4gICAgICAgIHJldHVybiBzdGFydERhdGU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICghTnVtYmVyLmlzSW50ZWdlcihkYXlzKSB8fCBkYXlzIDwgMCkge1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0RheXMgbXVzdCBiZSBhIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyJyk7XHJcbiAgICAgICAgcmV0dXJuIHN0YXJ0RGF0ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgbGV0IG5ld0RhdGUgPSBuZXcgRGF0ZShzdGFydC5nZXRUaW1lKCkgKyBkYXlzICogdGhpcy5fbWlsbGlzZWNvbmRzSW5EYXkpO1xyXG5cclxuICAgICAgaWYgKCEhdGhpcy5zZXR0aW5ncy5vcHRpb25zLm1heERhdGUgJiYgbmV3RGF0ZSA+IG5ldyBEYXRlKHRoaXMuc2V0dGluZ3Mub3B0aW9ucy5tYXhEYXRlKSkge1xyXG4gICAgICAgIGNvbnN0IG1heERheXMgPSBNYXRoLmZsb29yKChuZXcgRGF0ZSh0aGlzLnNldHRpbmdzLm9wdGlvbnMubWF4RGF0ZSkuZ2V0VGltZSgpIC0gc3RhcnQuZ2V0VGltZSgpKSAvIHRoaXMuX21pbGxpc2Vjb25kc0luRGF5KTtcclxuICAgICAgICBuZXdEYXRlID0gbmV3IERhdGUoc3RhcnQuZ2V0VGltZSgpICsgKG1heERheXMgKyAxKSAqIHRoaXMuX21pbGxpc2Vjb25kc0luRGF5KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIG5ld0RhdGUudG9JU09TdHJpbmcoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCJAaWYgKHNldHRpbmdzKSB7XHJcbiAgPGRpdiBjbGFzcz1cImlucHV0LWRhdGUtY29udGVudFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sXCIgW2NsYXNzLmNvbC04XT1cInNldHRpbmdzLm9wdGlvbnMuY291bnRlclwiPlxyXG4gICAgICAgIEBpZiAoc2V0dGluZ3Mub3B0aW9ucy5sYWJlbCkge1xyXG4gICAgICAgICAgPG1yeC1sYWJlbFxyXG4gICAgICAgICAgICBbcmVxdWlyZWRdPVwic2V0dGluZ3Mub3B0aW9ucy5yZXF1aXJlZFwiXHJcbiAgICAgICAgICAgIFt0b29sdGlwXT1cInNldHRpbmdzLm9wdGlvbnMudG9vbHRpcCB8fCAnJ1wiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHt7IHNldHRpbmdzLm9wdGlvbnMubGFiZWwgfX1cclxuICAgICAgICAgIDwvbXJ4LWxhYmVsPlxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgPG1yeC1pbnB1dC1kYXRlLXRpbWVcclxuICAgICAgICAgIFtkYXRlRm9ybWF0XT1cInNldHRpbmdzLm9wdGlvbnMuZm9ybWF0XCJcclxuICAgICAgICAgIFtuZ01vZGVsXT1cImRhdGVNb2RlbFwiXHJcbiAgICAgICAgICBbZmllbGRzXT1cImF1dG9zYXZlRmllbGRzXCJcclxuICAgICAgICAgIFtyYW5nZV09XCJzZXR0aW5ncy5vcHRpb25zLnJhbmdlXCJcclxuICAgICAgICAgIFtkYXRlUGxhY2Vob2xkZXJdPVwiKHNldHRpbmdzLm9wdGlvbnMucmFuZ2UgPyBzZXR0aW5ncy5vcHRpb25zLnBsYWNlaG9sZGVyICsgJyAtICcgKyBzZXR0aW5ncy5vcHRpb25zLnBsYWNlaG9sZGVyIDogc2V0dGluZ3Mub3B0aW9ucy5wbGFjZWhvbGRlcikgfHwgJydcIlxyXG4gICAgICAgICAgW2lzTWFudWFsSW5wdXRdPVwiIXNldHRpbmdzLm9wdGlvbnMucmFuZ2VcIlxyXG4gICAgICAgICAgW3RpbWVwaWNrZXJdPVwiZ2V0Vmlld1R5cGVUaW1lcGlja2VyXCJcclxuICAgICAgICAgIFtpbnZhbGlkXT1cImdldEludmFsaWRcIlxyXG4gICAgICAgICAgW2ludmFsaWRNZXNzYWdlXT1cImdldEludmFsaWRNZXNzYWdlXCJcclxuICAgICAgICAgIFttaW5EYXRlXT1cInNldHRpbmdzLm9wdGlvbnMubWluRGF0ZVwiXHJcbiAgICAgICAgICBbbWF4RGF0ZV09XCJzZXR0aW5ncy5vcHRpb25zLm1heERhdGVcIlxyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJ1cGRhdGVWYWx1ZSgkZXZlbnQpXCJcclxuICAgICAgICA+PC9tcngtaW5wdXQtZGF0ZS10aW1lPlxyXG5cclxuICAgICAgICBAaWYoISFzZXR0aW5ncy5vcHRpb25zLm1pbkRhdGUpIHtcclxuICAgICAgICAgIDxtcngtaGludC1lcnJvci1tZXNzYWdlICBcclxuICAgICAgICAgICAgbWVzc2FnZT1cItCc0LjQvdC40LzQsNC70YzQvdC+0LUg0LfQvdCw0YfQtdC90LjQtSDigJQge3sgc2V0dGluZ3Mub3B0aW9ucy5taW5EYXRlIHwgZGF0ZVRpbWVGb3JtYXQ6ICdtb3MnIDogZGF0ZUZvcm1hdH19XCJcclxuICAgICAgICAgID48L21yeC1oaW50LWVycm9yLW1lc3NhZ2U+XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBAaWYoISFzZXR0aW5ncy5vcHRpb25zLm1heERhdGUpIHtcclxuICAgICAgICAgIDxtcngtaGludC1lcnJvci1tZXNzYWdlICBcclxuICAgICAgICAgICAgbWVzc2FnZT1cItCc0LDQutGB0LjQvNCw0LvRjNC90L7QtSDQt9C90LDRh9C10L3QuNC1IOKAlCB7eyBzZXR0aW5ncy5vcHRpb25zLm1heERhdGUgfCBkYXRlVGltZUZvcm1hdDogJ21vcycgOiBkYXRlRm9ybWF0fX1cIlxyXG4gICAgICAgICAgPjwvbXJ4LWhpbnQtZXJyb3ItbWVzc2FnZT5cclxuICAgICAgICB9XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgQGlmIChzZXR0aW5ncy5vcHRpb25zLmNvdW50ZXIgJiYgc2V0dGluZ3Mub3B0aW9ucy5yYW5nZSkge1xyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLTRcIj5cclxuICAgICAgICAgIDxtcngtbGFiZWw+XHJcbiAgICAgICAgICAgIHt7IHNldHRpbmdzLm9wdGlvbnMuY291bnRlckxhYmVsIH19XHJcbiAgICAgICAgICA8L21yeC1sYWJlbD5cclxuICAgICAgICAgIDxtcngtaW5wdXQtbnVtYmVyXHJcbiAgICAgICAgICAgIFtuZ01vZGVsXT1cIm1vZGVsQ291bnRlclwiXHJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInMCdcIlxyXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiIXNldHRpbmdzLm9wdGlvbnMuY291bnRlckVkaXRhYmxlXCJcclxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlQ291bnRlcigkZXZlbnQpXCJcclxuICAgICAgICAgID48L21yeC1pbnB1dC1udW1iZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIH1cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG59XHJcbiJdfQ==
|
|
@@ -5,7 +5,7 @@ import { FormDispenserModal } from './form-dispenser-modal/form-dispenser-modal.
|
|
|
5
5
|
import { provideNgxMask } from 'ngx-mask';
|
|
6
6
|
import { ReferenceService } from '../../../../../../services';
|
|
7
7
|
import { objectFormActions } from '../../../../../../store';
|
|
8
|
-
import { ComponentType } from '../../../../../../../shared-form/enums';
|
|
8
|
+
import { ComponentType, ValueType } from '../../../../../../../shared-form/enums';
|
|
9
9
|
import * as i0 from "@angular/core";
|
|
10
10
|
import * as i1 from "@myrtex-org/ui";
|
|
11
11
|
import * as i2 from "@ngrx/store";
|
|
@@ -14,6 +14,7 @@ export class InputTableModalComponent extends ModalServiceComponent {
|
|
|
14
14
|
super();
|
|
15
15
|
this.dialogRef = dialogRef;
|
|
16
16
|
this.store = store;
|
|
17
|
+
this.emptyRow = true;
|
|
17
18
|
this.title = data.title;
|
|
18
19
|
this.okText = data.okText;
|
|
19
20
|
this.settings = data.settings;
|
|
@@ -30,6 +31,7 @@ export class InputTableModalComponent extends ModalServiceComponent {
|
|
|
30
31
|
else {
|
|
31
32
|
this._transformValues(valueModel);
|
|
32
33
|
}
|
|
34
|
+
this.emptyRow = this.rowModel.data.every(x => this.isEmpty(x.value, x.valueType));
|
|
33
35
|
}
|
|
34
36
|
ok() {
|
|
35
37
|
if (!this._isValid()) {
|
|
@@ -78,11 +80,22 @@ export class InputTableModalComponent extends ModalServiceComponent {
|
|
|
78
80
|
}
|
|
79
81
|
return components;
|
|
80
82
|
}
|
|
83
|
+
isEmpty(value, type) {
|
|
84
|
+
if (type === ValueType.Undefined)
|
|
85
|
+
return true;
|
|
86
|
+
if (value === null || value === undefined)
|
|
87
|
+
return true;
|
|
88
|
+
if (type === "string" || type === "guid")
|
|
89
|
+
return value === "";
|
|
90
|
+
if (Array.isArray(value))
|
|
91
|
+
return value.length === 0;
|
|
92
|
+
return false;
|
|
93
|
+
}
|
|
81
94
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: InputTableModalComponent, deps: [{ token: i1.ModalRef }, { token: i2.Store }, { token: MODAL_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
82
95
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: InputTableModalComponent, isStandalone: true, selector: "app-input-table-modal", providers: [
|
|
83
96
|
provideNgxMask(),
|
|
84
97
|
ReferenceService // для компонента список
|
|
85
|
-
], usesInheritance: true, ngImport: i0, template: "<mrx-modal\r\n [title]=\"title\"\r\n size=\"large\"\r\n (close)=\"close()\"\r\n (ok)=\"ok()\"\r\n>\r\n <app-form-dispenser-modal\r\n [sectionSettings]=\"settings\"\r\n [values]=\"rowModel.data\"\r\n [valueMode]=\"'manual'\"\r\n (changed)=\"componentValueChanged($event)\"\r\n ></app-form-dispenser-modal>\r\n\r\n <ng-template #footerContent>\r\n <mrx-button\r\n [customClasses]=\"'mr-3'\"\r\n [type]=\"'secondary'\"\r\n [size]=\"'medium'\"\r\n (click)=\"close()\"\r\n >\u041E\u0442\u043C\u0435\u043D\u0430\r\n </mrx-button>\r\n <mrx-button\r\n [type]=\"'primary'\"\r\n [size]=\"'medium'\"\r\n (click)=\"ok()\"\r\n >{{ okText }}\r\n </mrx-button>\r\n </ng-template>\r\n</mrx-modal>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: ModalModule }, { kind: "component", type: i1.ModalComponent, selector: "mrx-modal", inputs: ["title", "message", "alert", "okText", "closeText", "size", "color", "customClasses", "expandable", "isEmbed", "isClose", "isBack", "backText", "enableFooter", "alignButtons", "isLoading", "iconPosition"], outputs: ["ok", "close", "back", "expand"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i1.ButtonComponent, selector: "mrx-button", inputs: ["size", "type", "color", "iconPosition", "active", "disabled", "isLoading", "iconOnly", "customClasses", "label", "icon", "iconClass", "buttonType", "href", "target", "routerLink", "queryParams"], outputs: ["mrxClick"] }, { kind: "component", type: FormDispenserModal, selector: "app-form-dispenser-modal", inputs: ["sectionSettings", "values", "valueMode"], outputs: ["changed"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
98
|
+
], usesInheritance: true, ngImport: i0, template: "<mrx-modal\r\n [title]=\"title\"\r\n size=\"large\"\r\n (close)=\"close()\"\r\n (ok)=\"ok()\"\r\n>\r\n <app-form-dispenser-modal\r\n [sectionSettings]=\"settings\"\r\n [values]=\"rowModel.data\"\r\n [valueMode]=\"'manual'\"\r\n (changed)=\"componentValueChanged($event)\"\r\n ></app-form-dispenser-modal>\r\n\r\n <ng-template #footerContent>\r\n <mrx-button\r\n [customClasses]=\"'mr-3'\"\r\n [type]=\"'secondary'\"\r\n [size]=\"'medium'\"\r\n (click)=\"close()\"\r\n >\u041E\u0442\u043C\u0435\u043D\u0430\r\n </mrx-button>\r\n <mrx-button\r\n [type]=\"'primary'\"\r\n [size]=\"'medium'\"\r\n [disabled]=\"emptyRow\"\r\n (click)=\"ok()\"\r\n >{{ okText }}\r\n </mrx-button>\r\n </ng-template>\r\n</mrx-modal>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: ModalModule }, { kind: "component", type: i1.ModalComponent, selector: "mrx-modal", inputs: ["title", "message", "alert", "okText", "closeText", "size", "color", "customClasses", "expandable", "isEmbed", "isClose", "isBack", "backText", "enableFooter", "alignButtons", "isLoading", "iconPosition"], outputs: ["ok", "close", "back", "expand"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i1.ButtonComponent, selector: "mrx-button", inputs: ["size", "type", "color", "iconPosition", "active", "disabled", "isLoading", "iconOnly", "customClasses", "label", "icon", "iconClass", "buttonType", "href", "target", "routerLink", "queryParams"], outputs: ["mrxClick"] }, { kind: "component", type: FormDispenserModal, selector: "app-form-dispenser-modal", inputs: ["sectionSettings", "values", "valueMode"], outputs: ["changed"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
86
99
|
}
|
|
87
100
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: InputTableModalComponent, decorators: [{
|
|
88
101
|
type: Component,
|
|
@@ -93,9 +106,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
93
106
|
], providers: [
|
|
94
107
|
provideNgxMask(),
|
|
95
108
|
ReferenceService // для компонента список
|
|
96
|
-
], template: "<mrx-modal\r\n [title]=\"title\"\r\n size=\"large\"\r\n (close)=\"close()\"\r\n (ok)=\"ok()\"\r\n>\r\n <app-form-dispenser-modal\r\n [sectionSettings]=\"settings\"\r\n [values]=\"rowModel.data\"\r\n [valueMode]=\"'manual'\"\r\n (changed)=\"componentValueChanged($event)\"\r\n ></app-form-dispenser-modal>\r\n\r\n <ng-template #footerContent>\r\n <mrx-button\r\n [customClasses]=\"'mr-3'\"\r\n [type]=\"'secondary'\"\r\n [size]=\"'medium'\"\r\n (click)=\"close()\"\r\n >\u041E\u0442\u043C\u0435\u043D\u0430\r\n </mrx-button>\r\n <mrx-button\r\n [type]=\"'primary'\"\r\n [size]=\"'medium'\"\r\n (click)=\"ok()\"\r\n >{{ okText }}\r\n </mrx-button>\r\n </ng-template>\r\n</mrx-modal>\r\n" }]
|
|
109
|
+
], template: "<mrx-modal\r\n [title]=\"title\"\r\n size=\"large\"\r\n (close)=\"close()\"\r\n (ok)=\"ok()\"\r\n>\r\n <app-form-dispenser-modal\r\n [sectionSettings]=\"settings\"\r\n [values]=\"rowModel.data\"\r\n [valueMode]=\"'manual'\"\r\n (changed)=\"componentValueChanged($event)\"\r\n ></app-form-dispenser-modal>\r\n\r\n <ng-template #footerContent>\r\n <mrx-button\r\n [customClasses]=\"'mr-3'\"\r\n [type]=\"'secondary'\"\r\n [size]=\"'medium'\"\r\n (click)=\"close()\"\r\n >\u041E\u0442\u043C\u0435\u043D\u0430\r\n </mrx-button>\r\n <mrx-button\r\n [type]=\"'primary'\"\r\n [size]=\"'medium'\"\r\n [disabled]=\"emptyRow\"\r\n (click)=\"ok()\"\r\n >{{ okText }}\r\n </mrx-button>\r\n </ng-template>\r\n</mrx-modal>\r\n" }]
|
|
97
110
|
}], ctorParameters: () => [{ type: i1.ModalRef }, { type: i2.Store }, { type: undefined, decorators: [{
|
|
98
111
|
type: Inject,
|
|
99
112
|
args: [MODAL_DATA]
|
|
100
113
|
}] }] });
|
|
101
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGFibGUtbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGV4LWZvcm0vc3JjL2xpYi9tb2R1bGVzL29iamVjdC1mb3JtL2NvbXBvbmVudHMvZWxlbWVudHMvaW5wdXQvdGFibGUvY29tcG9uZW50cy9pbnB1dC10YWJsZS1tb2RhbC9pbnB1dC10YWJsZS1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0ZXgtZm9ybS9zcmMvbGliL21vZHVsZXMvb2JqZWN0LWZvcm0vY29tcG9uZW50cy9lbGVtZW50cy9pbnB1dC90YWJsZS9jb21wb25lbnRzL2lucHV0LXRhYmxlLW1vZGFsL2lucHV0LXRhYmxlLW1vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFZLHFCQUFxQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHeEcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDM0YsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUU5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7Ozs7QUErQnZFLE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxxQkFBbUU7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Q0FBQztRQUNwRCxDQUFDO1FBQ0QsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQzsrR0ExRlUsd0JBQXdCLCtEQVd6QixVQUFVO21HQVhULHdCQUF3QixvRUFMeEI7WUFDVCxjQUFjLEVBQUU7WUFDaEIsZ0JBQWdCLENBQUMsd0JBQXdCO1NBQzFDLGlEQ3hDSCx1dkJBNkJBLHlERElJLFdBQVcsd1dBQ1gsWUFBWSw2VUFDWixrQkFBa0I7OzRGQU9ULHdCQUF3QjtrQkFoQnBDLFNBQVM7K0JBQ0UsdUJBQXVCLG1CQUdoQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxXQUFXO3dCQUNYLFlBQVk7d0JBQ1osa0JBQWtCO3FCQUNuQixhQUNVO3dCQUNULGNBQWMsRUFBRTt3QkFDaEIsZ0JBQWdCLENBQUMsd0JBQXdCO3FCQUMxQzs7MEJBYUUsTUFBTTsyQkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGlzQXJyYXkgfSBmcm9tICdsb2Rhc2gtZXMnO1xyXG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUsIE1PREFMX0RBVEEsIE1vZGFsTW9kdWxlLCBNb2RhbFJlZiwgTW9kYWxTZXJ2aWNlQ29tcG9uZW50IH0gZnJvbSAnQG15cnRleC1vcmcvdWknO1xyXG5pbXBvcnQgeyBJbnB1dFRhYmxlTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9tb2RlbHMvZWxlbWV0cy9pbnB1dHMnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRWYWx1ZU1vZGVsLCBUYWJsZVJvd01vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgRm9ybURpc3BlbnNlck1vZGFsIH0gZnJvbSAnLi9mb3JtLWRpc3BlbnNlci1tb2RhbC9mb3JtLWRpc3BlbnNlci1tb2RhbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBwcm92aWRlTmd4TWFzayB9IGZyb20gJ25neC1tYXNrJztcclxuaW1wb3J0IHsgUmVmZXJlbmNlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XHJcbmltcG9ydCB7IG9iamVjdEZvcm1BY3Rpb25zIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vc3RvcmUnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRNb2RlbEJhc2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9zaGFyZWQtZm9ybS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRUeXBlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vc2hhcmVkLWZvcm0vZW51bXMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJbnB1dFRhYmxlTW9kYWxQYXJhbXMge1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgb2tUZXh0OiBzdHJpbmc7XHJcbiAgc2V0dGluZ3M6IElucHV0VGFibGVNb2RlbDtcclxuICByb3dNb2RlbDogVGFibGVSb3dNb2RlbDtcclxuICBpc0NoZWNrUmVxdWlyZWQ6IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSW5wdXRUYWJsZU1vZGFsUmVzdWx0IHtcclxuICByZXN1bHQ6IGJvb2xlYW47XHJcbiAgcm93TW9kZWw6IFRhYmxlUm93TW9kZWw7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWlucHV0LXRhYmxlLW1vZGFsJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtdGFibGUtbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2lucHV0LXRhYmxlLW1vZGFsLmNvbXBvbmVudC5sZXNzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBNb2RhbE1vZHVsZSxcclxuICAgIEJ1dHRvbk1vZHVsZSxcclxuICAgIEZvcm1EaXNwZW5zZXJNb2RhbCxcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAgcHJvdmlkZU5neE1hc2soKSxcclxuICAgIFJlZmVyZW5jZVNlcnZpY2UgLy8g0LTQu9GPINC60L7QvNC/0L7QvdC10L3RgtCwINGB0L/QuNGB0L7QulxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIElucHV0VGFibGVNb2RhbENvbXBvbmVudCBleHRlbmRzIE1vZGFsU2VydmljZUNvbXBvbmVudDxJbnB1dFRhYmxlTW9kYWxQYXJhbXMsIElucHV0VGFibGVNb2RhbFJlc3VsdD4ge1xyXG4gIHB1YmxpYyB0aXRsZSE6IHN0cmluZztcclxuICBwdWJsaWMgb2tUZXh0ITogc3RyaW5nO1xyXG4gIHB1YmxpYyBzZXR0aW5ncyE6IElucHV0VGFibGVNb2RlbDtcclxuICBwdWJsaWMgcm93TW9kZWwhOiBUYWJsZVJvd01vZGVsO1xyXG4gIC8vINCX0LDQv9C+0LzQuNC90LDQtdC8INGB0YLQsNGC0YPRgSDQv9GA0L7QstC10YDQutC4INGE0L7RgNC80Ysg0L/RgNC4INC+0YLQutGA0YvRgtC40Lgg0LzQvtC00LDQu9C60LhcclxuICBwdWJsaWMgaXNDaGVja1JlcXVpcmVkITogYm9vbGVhbjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGRpYWxvZ1JlZjogTW9kYWxSZWY8SW5wdXRUYWJsZU1vZGFsUmVzdWx0PixcclxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlLFxyXG4gICAgQEluamVjdChNT0RBTF9EQVRBKSBkYXRhOiBJbnB1dFRhYmxlTW9kYWxQYXJhbXMsXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG5cclxuICAgIHRoaXMudGl0bGUgPSBkYXRhLnRpdGxlO1xyXG4gICAgdGhpcy5va1RleHQgPSBkYXRhLm9rVGV4dFxyXG4gICAgdGhpcy5zZXR0aW5ncyA9IGRhdGEuc2V0dGluZ3M7XHJcbiAgICB0aGlzLnJvd01vZGVsID0gZGF0YS5yb3dNb2RlbDtcclxuICAgIHRoaXMuaXNDaGVja1JlcXVpcmVkID0gZGF0YS5pc0NoZWNrUmVxdWlyZWQ7XHJcblxyXG4gICAgdGhpcy5yZXN1bHQgPSB7cmVzdWx0OiBmYWxzZSwgcm93TW9kZWw6IHRoaXMucm93TW9kZWx9O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNvbXBvbmVudFZhbHVlQ2hhbmdlZCh2YWx1ZU1vZGVsOiBDb21wb25lbnRWYWx1ZU1vZGVsIHwgQ29tcG9uZW50VmFsdWVNb2RlbFtdKSB7XHJcbiAgICBpZiAoaXNBcnJheSh2YWx1ZU1vZGVsKSkge1xyXG4gICAgICB2YWx1ZU1vZGVsLmZvckVhY2gobW9kZWwgPT4ge1xyXG4gICAgICAgIHRoaXMuX3RyYW5zZm9ybVZhbHVlcyhtb2RlbCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fdHJhbnNmb3JtVmFsdWVzKHZhbHVlTW9kZWwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG9rKCkge1xyXG4gICAgaWYgKCF0aGlzLl9pc1ZhbGlkKCkpXHJcbiAgICB7XHJcbiAgICAgIC8vINCy0LrQu9GO0YfQsNC10Lwg0L/QvtC00YHQstC10YLQutGDINC/0L7Qu9C10LlcclxuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChvYmplY3RGb3JtQWN0aW9ucy51cGRhdGVDaGVja1JlcXVpcmVkKHsgaXNDaGVja1JlcXVpcmVkOiB0cnVlIH0pKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vINCy0L7Qt9Cy0YDQsNGJ0LDQtdC8INC/0YDQuNC30L3QsNC6INC60LDQuiDQsdGL0Lsg0LTQviDQvtGC0LrRgNGL0YLQuNGPINC80L7QtNCw0LvQutC4XHJcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG9iamVjdEZvcm1BY3Rpb25zLnVwZGF0ZUNoZWNrUmVxdWlyZWQoeyBpc0NoZWNrUmVxdWlyZWQ6IHRoaXMuaXNDaGVja1JlcXVpcmVkIH0pKTtcclxuXHJcbiAgICB0aGlzLnJlc3VsdCA9IHtyZXN1bHQ6IHRydWUsIHJvd01vZGVsOiB0aGlzLnJvd01vZGVsfTtcclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHN0cnVjdHVyZWRDbG9uZSh0aGlzLnJlc3VsdCkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsb3NlKCkge1xyXG4gICAgLy8g0LLQvtC30LLRgNCw0YnQsNC10Lwg0L/RgNC40LfQvdCw0Log0LrQsNC6INCx0YvQuyDQtNC+INC+0YLQutGA0YvRgtC40Y8g0LzQvtC00LDQu9C60LhcclxuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gob2JqZWN0Rm9ybUFjdGlvbnMudXBkYXRlQ2hlY2tSZXF1aXJlZCh7IGlzQ2hlY2tSZXF1aXJlZDogdGhpcy5pc0NoZWNrUmVxdWlyZWQgfSkpO1xyXG5cclxuICAgIHRoaXMucmVzdWx0ID0ge3Jlc3VsdDogZmFsc2UsIHJvd01vZGVsOiB0aGlzLnJvd01vZGVsfTtcclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHRoaXMucmVzdWx0KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3RyYW5zZm9ybVZhbHVlcyh2YWx1ZTogQ29tcG9uZW50VmFsdWVNb2RlbCkge1xyXG4gICAgY29uc3QgY2xvbmVSb3dNb2RlbCA9IHN0cnVjdHVyZWRDbG9uZSh0aGlzLnJvd01vZGVsKTtcclxuICAgIGNvbnN0IGZpbmRWYWx1ZTogQ29tcG9uZW50VmFsdWVNb2RlbCB8IHVuZGVmaW5lZCA9IGNsb25lUm93TW9kZWwuZGF0YS5maW5kKChjOiBDb21wb25lbnRWYWx1ZU1vZGVsKSA9PiBjLnN5c05hbWUgPT09IHZhbHVlLnN5c05hbWUpO1xyXG5cclxuICAgIGlmIChmaW5kVmFsdWUpIHtcclxuICAgICAgZmluZFZhbHVlLnZhbHVlID0gdmFsdWUudmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5yb3dNb2RlbCA9IGNsb25lUm93TW9kZWw7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9pc1ZhbGlkKCk6IGJvb2xlYW4ge1xyXG4gICAgdmFyIGhhc0Vycm9yID0gZmFsc2U7XHJcbiAgICB2YXIgcmVxdWlyZWRDb21wb25lbnRzID0gdGhpcy5fZ2V0UmVxdWlyZWRDb21wb25lbnRzKHRoaXMuc2V0dGluZ3MuY29tcG9uZW50cyk7XHJcbiAgICBmb3IgKGNvbnN0IGNvbXBvbmVudCBvZiByZXF1aXJlZENvbXBvbmVudHMpIHtcclxuICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnJvd01vZGVsLmRhdGFcclxuICAgICAgICAuZmluZCh4ID0+IHguc3lzTmFtZSA9PSBjb21wb25lbnQuc3lzTmFtZVxyXG4gICAgICAgICAgICAgIHx8IHguc3lzTmFtZSA9PSBgJHtjb21wb25lbnQuc3lzTmFtZX1fc3RhcnRgXHJcbiAgICAgICAgICAgICAgfHwgeC5zeXNOYW1lID09IGAke2NvbXBvbmVudC5zeXNOYW1lfV9lbmRgKTtcclxuICAgICAgaWYgKCF2YWx1ZT8udmFsdWUpIHtcclxuICAgICAgICBoYXNFcnJvciA9IHRydWU7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiAhaGFzRXJyb3I7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9nZXRSZXF1aXJlZENvbXBvbmVudHMoY29tcG9uZW50czogQ29tcG9uZW50TW9kZWxCYXNlW10pOiBDb21wb25lbnRNb2RlbEJhc2VbXXtcclxuICAgIHZhciBjb21wb25lbnRzID0gY29tcG9uZW50cy5maWx0ZXIoeCA9PiB4LnR5cGUgIT0gQ29tcG9uZW50VHlwZS5Hcm91cCAmJiAhIXgub3B0aW9ucy5yZXF1aXJlZCk7XHJcbiAgICBmb3IgKGNvbnN0IGNvbXBvbmVudCBvZiBjb21wb25lbnRzLmZpbHRlcih4ID0+IHgudHlwZSA9PSBDb21wb25lbnRUeXBlLkdyb3VwICYmIHguY29tcG9uZW50cy5sZW5ndGggPiAwKSkge1xyXG4gICAgICB0aGlzLl9nZXRSZXF1aXJlZENvbXBvbmVudHMoY29tcG9uZW50LmNvbXBvbmVudHMpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGNvbXBvbmVudHM7XHJcbiAgfVxyXG59XHJcbiIsIjxtcngtbW9kYWxcclxuICBbdGl0bGVdPVwidGl0bGVcIlxyXG4gIHNpemU9XCJsYXJnZVwiXHJcbiAgKGNsb3NlKT1cImNsb3NlKClcIlxyXG4gIChvayk9XCJvaygpXCJcclxuPlxyXG4gIDxhcHAtZm9ybS1kaXNwZW5zZXItbW9kYWxcclxuICAgIFtzZWN0aW9uU2V0dGluZ3NdPVwic2V0dGluZ3NcIlxyXG4gICAgW3ZhbHVlc109XCJyb3dNb2RlbC5kYXRhXCJcclxuICAgIFt2YWx1ZU1vZGVdPVwiJ21hbnVhbCdcIlxyXG4gICAgKGNoYW5nZWQpPVwiY29tcG9uZW50VmFsdWVDaGFuZ2VkKCRldmVudClcIlxyXG4gID48L2FwcC1mb3JtLWRpc3BlbnNlci1tb2RhbD5cclxuXHJcbiAgPG5nLXRlbXBsYXRlICNmb290ZXJDb250ZW50PlxyXG4gICAgPG1yeC1idXR0b25cclxuICAgICAgW2N1c3RvbUNsYXNzZXNdPVwiJ21yLTMnXCJcclxuICAgICAgW3R5cGVdPVwiJ3NlY29uZGFyeSdcIlxyXG4gICAgICBbc2l6ZV09XCInbWVkaXVtJ1wiXHJcbiAgICAgIChjbGljayk9XCJjbG9zZSgpXCJcclxuICAgID7QntGC0LzQtdC90LBcclxuICAgIDwvbXJ4LWJ1dHRvbj5cclxuICAgIDxtcngtYnV0dG9uXHJcbiAgICAgIFt0eXBlXT1cIidwcmltYXJ5J1wiXHJcbiAgICAgIFtzaXplXT1cIidtZWRpdW0nXCJcclxuICAgICAgKGNsaWNrKT1cIm9rKClcIlxyXG4gICAgPnt7IG9rVGV4dCB9fVxyXG4gICAgPC9tcngtYnV0dG9uPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbjwvbXJ4LW1vZGFsPlxyXG4iXX0=
|
|
114
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGFibGUtbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGV4LWZvcm0vc3JjL2xpYi9tb2R1bGVzL29iamVjdC1mb3JtL2NvbXBvbmVudHMvZWxlbWVudHMvaW5wdXQvdGFibGUvY29tcG9uZW50cy9pbnB1dC10YWJsZS1tb2RhbC9pbnB1dC10YWJsZS1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0ZXgtZm9ybS9zcmMvbGliL21vZHVsZXMvb2JqZWN0LWZvcm0vY29tcG9uZW50cy9lbGVtZW50cy9pbnB1dC90YWJsZS9jb21wb25lbnRzL2lucHV0LXRhYmxlLW1vZGFsL2lucHV0LXRhYmxlLW1vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFZLHFCQUFxQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHeEcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDM0YsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUU5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7O0FBK0JsRixNQUFNLE9BQU8sd0JBQXlCLFNB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Y0UsTUFBTTsyQkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGlzQXJyYXkgfSBmcm9tICdsb2Rhc2gtZXMnO1xyXG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUsIE1PREFMX0RBVEEsIE1vZGFsTW9kdWxlLCBNb2RhbFJlZiwgTW9kYWxTZXJ2aWNlQ29tcG9uZW50IH0gZnJvbSAnQG15cnRleC1vcmcvdWknO1xyXG5pbXBvcnQgeyBJbnB1dFRhYmxlTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9tb2RlbHMvZWxlbWV0cy9pbnB1dHMnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRWYWx1ZU1vZGVsLCBUYWJsZVJvd01vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgRm9ybURpc3BlbnNlck1vZGFsIH0gZnJvbSAnLi9mb3JtLWRpc3BlbnNlci1tb2RhbC9mb3JtLWRpc3BlbnNlci1tb2RhbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBwcm92aWRlTmd4TWFzayB9IGZyb20gJ25neC1tYXNrJztcclxuaW1wb3J0IHsgUmVmZXJlbmNlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XHJcbmltcG9ydCB7IG9iamVjdEZvcm1BY3Rpb25zIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vc3RvcmUnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRNb2RlbEJhc2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9zaGFyZWQtZm9ybS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRUeXBlLCBWYWx1ZVR5cGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9zaGFyZWQtZm9ybS9lbnVtcyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElucHV0VGFibGVNb2RhbFBhcmFtcyB7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBva1RleHQ6IHN0cmluZztcclxuICBzZXR0aW5nczogSW5wdXRUYWJsZU1vZGVsO1xyXG4gIHJvd01vZGVsOiBUYWJsZVJvd01vZGVsO1xyXG4gIGlzQ2hlY2tSZXF1aXJlZDogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJbnB1dFRhYmxlTW9kYWxSZXN1bHQge1xyXG4gIHJlc3VsdDogYm9vbGVhbjtcclxuICByb3dNb2RlbDogVGFibGVSb3dNb2RlbDtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtaW5wdXQtdGFibGUtbW9kYWwnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC10YWJsZS1tb2RhbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtdGFibGUtbW9kYWwuY29tcG9uZW50Lmxlc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIE1vZGFsTW9kdWxlLFxyXG4gICAgQnV0dG9uTW9kdWxlLFxyXG4gICAgRm9ybURpc3BlbnNlck1vZGFsLFxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICBwcm92aWRlTmd4TWFzaygpLFxyXG4gICAgUmVmZXJlbmNlU2VydmljZSAvLyDQtNC70Y8g0LrQvtC80L/QvtC90LXQvdGC0LAg0YHQv9C40YHQvtC6XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5wdXRUYWJsZU1vZGFsQ29tcG9uZW50IGV4dGVuZHMgTW9kYWxTZXJ2aWNlQ29tcG9uZW50PElucHV0VGFibGVNb2RhbFBhcmFtcywgSW5wdXRUYWJsZU1vZGFsUmVzdWx0PiB7XHJcbiAgcHVibGljIHRpdGxlITogc3RyaW5nO1xyXG4gIHB1YmxpYyBva1RleHQhOiBzdHJpbmc7XHJcbiAgcHVibGljIHNldHRpbmdzITogSW5wdXRUYWJsZU1vZGVsO1xyXG4gIHB1YmxpYyByb3dNb2RlbCE6IFRhYmxlUm93TW9kZWw7XHJcbiAgLy8g0JfQsNC/0L7QvNC40L3QsNC10Lwg0YHRgtCw0YLRg9GBINC/0YDQvtCy0LXRgNC60Lgg0YTQvtGA0LzRiyDQv9GA0Lgg0L7RgtC60YDRi9GC0LjQuCDQvNC+0LTQsNC70LrQuFxyXG4gIHB1YmxpYyBpc0NoZWNrUmVxdWlyZWQhOiBib29sZWFuO1xyXG4gIHB1YmxpYyBlbXB0eVJvdzogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBkaWFsb2dSZWY6IE1vZGFsUmVmPElucHV0VGFibGVNb2RhbFJlc3VsdD4sXHJcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZSxcclxuICAgIEBJbmplY3QoTU9EQUxfREFUQSkgZGF0YTogSW5wdXRUYWJsZU1vZGFsUGFyYW1zLFxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuXHJcbiAgICB0aGlzLnRpdGxlID0gZGF0YS50aXRsZTtcclxuICAgIHRoaXMub2tUZXh0ID0gZGF0YS5va1RleHRcclxuICAgIHRoaXMuc2V0dGluZ3MgPSBkYXRhLnNldHRpbmdzO1xyXG4gICAgdGhpcy5yb3dNb2RlbCA9IGRhdGEucm93TW9kZWw7XHJcbiAgICB0aGlzLmlzQ2hlY2tSZXF1aXJlZCA9IGRhdGEuaXNDaGVja1JlcXVpcmVkO1xyXG5cclxuICAgIHRoaXMucmVzdWx0ID0ge3Jlc3VsdDogZmFsc2UsIHJvd01vZGVsOiB0aGlzLnJvd01vZGVsfTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjb21wb25lbnRWYWx1ZUNoYW5nZWQodmFsdWVNb2RlbDogQ29tcG9uZW50VmFsdWVNb2RlbCB8IENvbXBvbmVudFZhbHVlTW9kZWxbXSkge1xyXG4gICAgaWYgKGlzQXJyYXkodmFsdWVNb2RlbCkpIHtcclxuICAgICAgdmFsdWVNb2RlbC5mb3JFYWNoKG1vZGVsID0+IHtcclxuICAgICAgICB0aGlzLl90cmFuc2Zvcm1WYWx1ZXMobW9kZWwpO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX3RyYW5zZm9ybVZhbHVlcyh2YWx1ZU1vZGVsKTtcclxuICAgIH1cclxuICAgIHRoaXMuZW1wdHlSb3cgPSB0aGlzLnJvd01vZGVsLmRhdGEuZXZlcnkoeCA9PiB0aGlzLmlzRW1wdHkoeC52YWx1ZSwgeC52YWx1ZVR5cGUpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvaygpIHtcclxuICAgIGlmICghdGhpcy5faXNWYWxpZCgpKVxyXG4gICAge1xyXG4gICAgICAvLyDQstC60LvRjtGH0LDQtdC8INC/0L7QtNGB0LLQtdGC0LrRgyDQv9C+0LvQtdC5XHJcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gob2JqZWN0Rm9ybUFjdGlvbnMudXBkYXRlQ2hlY2tSZXF1aXJlZCh7IGlzQ2hlY2tSZXF1aXJlZDogdHJ1ZSB9KSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvLyDQstC+0LfQstGA0LDRidCw0LXQvCDQv9GA0LjQt9C90LDQuiDQutCw0Log0LHRi9C7INC00L4g0L7RgtC60YDRi9GC0LjRjyDQvNC+0LTQsNC70LrQuFxyXG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChvYmplY3RGb3JtQWN0aW9ucy51cGRhdGVDaGVja1JlcXVpcmVkKHsgaXNDaGVja1JlcXVpcmVkOiB0aGlzLmlzQ2hlY2tSZXF1aXJlZCB9KSk7XHJcblxyXG4gICAgdGhpcy5yZXN1bHQgPSB7cmVzdWx0OiB0cnVlLCByb3dNb2RlbDogdGhpcy5yb3dNb2RlbH07XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZShzdHJ1Y3R1cmVkQ2xvbmUodGhpcy5yZXN1bHQpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbG9zZSgpIHtcclxuICAgIC8vINCy0L7Qt9Cy0YDQsNGJ0LDQtdC8INC/0YDQuNC30L3QsNC6INC60LDQuiDQsdGL0Lsg0LTQviDQvtGC0LrRgNGL0YLQuNGPINC80L7QtNCw0LvQutC4XHJcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG9iamVjdEZvcm1BY3Rpb25zLnVwZGF0ZUNoZWNrUmVxdWlyZWQoeyBpc0NoZWNrUmVxdWlyZWQ6IHRoaXMuaXNDaGVja1JlcXVpcmVkIH0pKTtcclxuXHJcbiAgICB0aGlzLnJlc3VsdCA9IHtyZXN1bHQ6IGZhbHNlLCByb3dNb2RlbDogdGhpcy5yb3dNb2RlbH07XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh0aGlzLnJlc3VsdCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF90cmFuc2Zvcm1WYWx1ZXModmFsdWU6IENvbXBvbmVudFZhbHVlTW9kZWwpIHtcclxuICAgIGNvbnN0IGNsb25lUm93TW9kZWwgPSBzdHJ1Y3R1cmVkQ2xvbmUodGhpcy5yb3dNb2RlbCk7XHJcbiAgICBjb25zdCBmaW5kVmFsdWU6IENvbXBvbmVudFZhbHVlTW9kZWwgfCB1bmRlZmluZWQgPSBjbG9uZVJvd01vZGVsLmRhdGEuZmluZCgoYzogQ29tcG9uZW50VmFsdWVNb2RlbCkgPT4gYy5zeXNOYW1lID09PSB2YWx1ZS5zeXNOYW1lKTtcclxuXHJcbiAgICBpZiAoZmluZFZhbHVlKSB7XHJcbiAgICAgIGZpbmRWYWx1ZS52YWx1ZSA9IHZhbHVlLnZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMucm93TW9kZWwgPSBjbG9uZVJvd01vZGVsO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfaXNWYWxpZCgpOiBib29sZWFuIHtcclxuICAgIHZhciBoYXNFcnJvciA9IGZhbHNlO1xyXG4gICAgdmFyIHJlcXVpcmVkQ29tcG9uZW50cyA9IHRoaXMuX2dldFJlcXVpcmVkQ29tcG9uZW50cyh0aGlzLnNldHRpbmdzLmNvbXBvbmVudHMpO1xyXG4gICAgZm9yIChjb25zdCBjb21wb25lbnQgb2YgcmVxdWlyZWRDb21wb25lbnRzKSB7XHJcbiAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5yb3dNb2RlbC5kYXRhXHJcbiAgICAgICAgLmZpbmQoeCA9PiB4LnN5c05hbWUgPT0gY29tcG9uZW50LnN5c05hbWVcclxuICAgICAgICAgICAgICB8fCB4LnN5c05hbWUgPT0gYCR7Y29tcG9uZW50LnN5c05hbWV9X3N0YXJ0YFxyXG4gICAgICAgICAgICAgIHx8IHguc3lzTmFtZSA9PSBgJHtjb21wb25lbnQuc3lzTmFtZX1fZW5kYCk7XHJcbiAgICAgIGlmICghdmFsdWU/LnZhbHVlKSB7XHJcbiAgICAgICAgaGFzRXJyb3IgPSB0cnVlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gIWhhc0Vycm9yO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZ2V0UmVxdWlyZWRDb21wb25lbnRzKGNvbXBvbmVudHM6IENvbXBvbmVudE1vZGVsQmFzZVtdKTogQ29tcG9uZW50TW9kZWxCYXNlW117XHJcbiAgICB2YXIgY29tcG9uZW50cyA9IGNvbXBvbmVudHMuZmlsdGVyKHggPT4geC50eXBlICE9IENvbXBvbmVudFR5cGUuR3JvdXAgJiYgISF4Lm9wdGlvbnMucmVxdWlyZWQpO1xyXG4gICAgZm9yIChjb25zdCBjb21wb25lbnQgb2YgY29tcG9uZW50cy5maWx0ZXIoeCA9PiB4LnR5cGUgPT0gQ29tcG9uZW50VHlwZS5Hcm91cCAmJiB4LmNvbXBvbmVudHMubGVuZ3RoID4gMCkpIHtcclxuICAgICAgdGhpcy5fZ2V0UmVxdWlyZWRDb21wb25lbnRzKGNvbXBvbmVudC5jb21wb25lbnRzKTtcclxuICAgIH1cclxuICAgIHJldHVybiBjb21wb25lbnRzO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc0VtcHR5KHZhbHVlOiBhbnksIHR5cGU6IFZhbHVlVHlwZSk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHR5cGUgPT09IFZhbHVlVHlwZS5VbmRlZmluZWQpIHJldHVybiB0cnVlO1xyXG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHJldHVybiB0cnVlO1xyXG4gICAgaWYgKHR5cGUgPT09IFwic3RyaW5nXCIgfHwgdHlwZSA9PT0gXCJndWlkXCIpIHJldHVybiB2YWx1ZSA9PT0gXCJcIjtcclxuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkgcmV0dXJuIHZhbHVlLmxlbmd0aCA9PT0gMDtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbn1cclxuIiwiPG1yeC1tb2RhbFxyXG4gIFt0aXRsZV09XCJ0aXRsZVwiXHJcbiAgc2l6ZT1cImxhcmdlXCJcclxuICAoY2xvc2UpPVwiY2xvc2UoKVwiXHJcbiAgKG9rKT1cIm9rKClcIlxyXG4+XHJcbiAgPGFwcC1mb3JtLWRpc3BlbnNlci1tb2RhbFxyXG4gICAgW3NlY3Rpb25TZXR0aW5nc109XCJzZXR0aW5nc1wiXHJcbiAgICBbdmFsdWVzXT1cInJvd01vZGVsLmRhdGFcIlxyXG4gICAgW3ZhbHVlTW9kZV09XCInbWFudWFsJ1wiXHJcbiAgICAoY2hhbmdlZCk9XCJjb21wb25lbnRWYWx1ZUNoYW5nZWQoJGV2ZW50KVwiXHJcbiAgPjwvYXBwLWZvcm0tZGlzcGVuc2VyLW1vZGFsPlxyXG5cclxuICA8bmctdGVtcGxhdGUgI2Zvb3RlckNvbnRlbnQ+XHJcbiAgICA8bXJ4LWJ1dHRvblxyXG4gICAgICBbY3VzdG9tQ2xhc3Nlc109XCInbXItMydcIlxyXG4gICAgICBbdHlwZV09XCInc2Vjb25kYXJ5J1wiXHJcbiAgICAgIFtzaXplXT1cIidtZWRpdW0nXCJcclxuICAgICAgKGNsaWNrKT1cImNsb3NlKClcIlxyXG4gICAgPtCe0YLQvNC10L3QsFxyXG4gICAgPC9tcngtYnV0dG9uPlxyXG4gICAgPG1yeC1idXR0b25cclxuICAgICAgW3R5cGVdPVwiJ3ByaW1hcnknXCJcclxuICAgICAgW3NpemVdPVwiJ21lZGl1bSdcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiZW1wdHlSb3dcIlxyXG4gICAgICAoY2xpY2spPVwib2soKVwiXHJcbiAgICA+e3sgb2tUZXh0IH19XHJcbiAgICA8L21yeC1idXR0b24+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuPC9tcngtbW9kYWw+XHJcbiJdfQ==
|
|
@@ -1495,6 +1495,7 @@ class InputDateComponent extends BaseFieldComponent {
|
|
|
1495
1495
|
this._millisecondsInDay = 1000 * 60 * 60 * 24;
|
|
1496
1496
|
this._isInit = false;
|
|
1497
1497
|
this._isUpdatingInternal = false;
|
|
1498
|
+
this._format = '';
|
|
1498
1499
|
this.dateModel = '';
|
|
1499
1500
|
this.modelCounter = 0;
|
|
1500
1501
|
}
|
|
@@ -1507,6 +1508,25 @@ class InputDateComponent extends BaseFieldComponent {
|
|
|
1507
1508
|
}
|
|
1508
1509
|
return super.getInvalid;
|
|
1509
1510
|
}
|
|
1511
|
+
get dateFormat() {
|
|
1512
|
+
switch (this.settings.options.format) {
|
|
1513
|
+
case ('дд.мм.гггг'):
|
|
1514
|
+
this._format = 'dd.MM.yyyy';
|
|
1515
|
+
break;
|
|
1516
|
+
case ('мм.гггг'):
|
|
1517
|
+
this._format = 'MM.yyyy';
|
|
1518
|
+
break;
|
|
1519
|
+
case ('гггг'):
|
|
1520
|
+
this._format = 'yyyy';
|
|
1521
|
+
break;
|
|
1522
|
+
default:
|
|
1523
|
+
this._format = 'dd.MM.yyyy';
|
|
1524
|
+
}
|
|
1525
|
+
if (this.settings.options.viewType === 'date-time') {
|
|
1526
|
+
this._format += ' HH:mm';
|
|
1527
|
+
}
|
|
1528
|
+
return this._format;
|
|
1529
|
+
}
|
|
1510
1530
|
get value() {
|
|
1511
1531
|
if (this.settings.options.range) {
|
|
1512
1532
|
return [this.modelStart.value, this.modelEnd.value];
|
|
@@ -1657,11 +1677,11 @@ class InputDateComponent extends BaseFieldComponent {
|
|
|
1657
1677
|
}
|
|
1658
1678
|
}
|
|
1659
1679
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: InputDateComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
1660
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: InputDateComponent, selector: "app-input-date", usesInheritance: true, ngImport: i0, template: "@if (settings) {\r\n <div class=\"input-date-content\">\r\n <div class=\"row\">\r\n <div class=\"col\" [class.col-8]=\"settings.options.counter\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n <mrx-input-date-time\r\n [dateFormat]=\"settings.options.format\"\r\n [ngModel]=\"dateModel\"\r\n [fields]=\"autosaveFields\"\r\n [range]=\"settings.options.range\"\r\n [datePlaceholder]=\"(settings.options.range ? settings.options.placeholder + ' - ' + settings.options.placeholder : settings.options.placeholder) || ''\"\r\n [isManualInput]=\"!settings.options.range\"\r\n [timepicker]=\"getViewTypeTimepicker\"\r\n [invalid]=\"getInvalid\"\r\n [invalidMessage]=\"getInvalidMessage\"\r\n [minDate]=\"settings.options.minDate\"\r\n [maxDate]=\"settings.options.maxDate\"\r\n [disabled]=\"disabled\"\r\n (modelChange)=\"updateValue($event)\"\r\n ></mrx-input-date-time>\r\n\r\n @if(!!settings.options.minDate) {\r\n <mrx-hint-error-message \r\n message=\"\u041C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u2014 {{ settings.options.minDate | dateTimeFormat: 'mos' :
|
|
1680
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: InputDateComponent, selector: "app-input-date", usesInheritance: true, ngImport: i0, template: "@if (settings) {\r\n <div class=\"input-date-content\">\r\n <div class=\"row\">\r\n <div class=\"col\" [class.col-8]=\"settings.options.counter\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n <mrx-input-date-time\r\n [dateFormat]=\"settings.options.format\"\r\n [ngModel]=\"dateModel\"\r\n [fields]=\"autosaveFields\"\r\n [range]=\"settings.options.range\"\r\n [datePlaceholder]=\"(settings.options.range ? settings.options.placeholder + ' - ' + settings.options.placeholder : settings.options.placeholder) || ''\"\r\n [isManualInput]=\"!settings.options.range\"\r\n [timepicker]=\"getViewTypeTimepicker\"\r\n [invalid]=\"getInvalid\"\r\n [invalidMessage]=\"getInvalidMessage\"\r\n [minDate]=\"settings.options.minDate\"\r\n [maxDate]=\"settings.options.maxDate\"\r\n [disabled]=\"disabled\"\r\n (modelChange)=\"updateValue($event)\"\r\n ></mrx-input-date-time>\r\n\r\n @if(!!settings.options.minDate) {\r\n <mrx-hint-error-message \r\n message=\"\u041C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u2014 {{ settings.options.minDate | dateTimeFormat: 'mos' : dateFormat}}\"\r\n ></mrx-hint-error-message>\r\n }\r\n\r\n @if(!!settings.options.maxDate) {\r\n <mrx-hint-error-message \r\n message=\"\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u2014 {{ settings.options.maxDate | dateTimeFormat: 'mos' : dateFormat}}\"\r\n ></mrx-hint-error-message>\r\n }\r\n </div>\r\n\r\n @if (settings.options.counter && settings.options.range) {\r\n <div class=\"col col-4\">\r\n <mrx-label>\r\n {{ settings.options.counterLabel }}\r\n </mrx-label>\r\n <mrx-input-number\r\n [ngModel]=\"modelCounter\"\r\n [placeholder]=\"'0'\"\r\n [disabled]=\"!settings.options.counterEditable\"\r\n (ngModelChange)=\"updateCounter($event)\"\r\n ></mrx-input-number>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n}\r\n", styles: [""], dependencies: [{ kind: "component", type: i1$2.LabelComponent, selector: "mrx-label", inputs: ["requiredHidden", "required", "boldLabel", "disabled", "placeholder", "label", "customClasses", "triggerTextPosition", "isPublicInfo", "publicInfoTooltip", "isSwitch", "switchLabel", "switchValue", "switchSize", "isCheckbox", "checkboxLabel", "checkboxValue", "counter", "linkText", "linkPrevent", "linkType", "linkMonochrome", "href", "triggerType", "tooltip", "tooltipInitialVisible", "isSaveToStorage"], outputs: ["changeSwitchValue", "changeCheckboxValue", "clickedLink"] }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i1$2.InputNumberComponent, selector: "mrx-input-number", inputs: ["fields", "placeholder", "innerClass", "customClasses", "required", "allowNegative", "size", "separator", "decimalSeparator", "decimals", "isNullableValue", "isAutoCorrectingValue", "invalid", "checkInvalid", "numberType", "invalidMessage", "disabled", "readonly", "minValue", "maxValue"], outputs: ["modelChange", "modelChangeBlur"] }, { kind: "component", type: i1$2.InputDateTimeComponent, selector: "mrx-input-date-time", inputs: ["inputMask", "dateFormat", "fields", "size", "customClasses", "dateLabel", "timeLabel", "datePlaceholder", "timePlaceholder", "disabled", "readonly", "required", "timepicker", "range", "timezone", "inline", "isManualInput", "addMinTime", "addMaxTime", "addMinTimeObj", "addMaxTimeObj", "disableValidate", "disableIncludes", "container", "invalid", "invalidMessage", "checkInvalid", "minDate", "maxDate", "calendarPosition"], outputs: ["changed", "modelChange", "blurred"] }, { kind: "component", type: i1$2.HintErrorMessageComponent, selector: "mrx-hint-error-message", inputs: ["message", "value", "maxValue", "minValue", "minLength", "maxLength", "checkInvalid"] }, { kind: "pipe", type: i1$2.DateTimeFormatPipe, name: "dateTimeFormat" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1661
1681
|
}
|
|
1662
1682
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: InputDateComponent, decorators: [{
|
|
1663
1683
|
type: Component,
|
|
1664
|
-
args: [{ selector: 'app-input-date', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (settings) {\r\n <div class=\"input-date-content\">\r\n <div class=\"row\">\r\n <div class=\"col\" [class.col-8]=\"settings.options.counter\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n <mrx-input-date-time\r\n [dateFormat]=\"settings.options.format\"\r\n [ngModel]=\"dateModel\"\r\n [fields]=\"autosaveFields\"\r\n [range]=\"settings.options.range\"\r\n [datePlaceholder]=\"(settings.options.range ? settings.options.placeholder + ' - ' + settings.options.placeholder : settings.options.placeholder) || ''\"\r\n [isManualInput]=\"!settings.options.range\"\r\n [timepicker]=\"getViewTypeTimepicker\"\r\n [invalid]=\"getInvalid\"\r\n [invalidMessage]=\"getInvalidMessage\"\r\n [minDate]=\"settings.options.minDate\"\r\n [maxDate]=\"settings.options.maxDate\"\r\n [disabled]=\"disabled\"\r\n (modelChange)=\"updateValue($event)\"\r\n ></mrx-input-date-time>\r\n\r\n @if(!!settings.options.minDate) {\r\n <mrx-hint-error-message \r\n message=\"\u041C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u2014 {{ settings.options.minDate | dateTimeFormat: 'mos' :
|
|
1684
|
+
args: [{ selector: 'app-input-date', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (settings) {\r\n <div class=\"input-date-content\">\r\n <div class=\"row\">\r\n <div class=\"col\" [class.col-8]=\"settings.options.counter\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n <mrx-input-date-time\r\n [dateFormat]=\"settings.options.format\"\r\n [ngModel]=\"dateModel\"\r\n [fields]=\"autosaveFields\"\r\n [range]=\"settings.options.range\"\r\n [datePlaceholder]=\"(settings.options.range ? settings.options.placeholder + ' - ' + settings.options.placeholder : settings.options.placeholder) || ''\"\r\n [isManualInput]=\"!settings.options.range\"\r\n [timepicker]=\"getViewTypeTimepicker\"\r\n [invalid]=\"getInvalid\"\r\n [invalidMessage]=\"getInvalidMessage\"\r\n [minDate]=\"settings.options.minDate\"\r\n [maxDate]=\"settings.options.maxDate\"\r\n [disabled]=\"disabled\"\r\n (modelChange)=\"updateValue($event)\"\r\n ></mrx-input-date-time>\r\n\r\n @if(!!settings.options.minDate) {\r\n <mrx-hint-error-message \r\n message=\"\u041C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u2014 {{ settings.options.minDate | dateTimeFormat: 'mos' : dateFormat}}\"\r\n ></mrx-hint-error-message>\r\n }\r\n\r\n @if(!!settings.options.maxDate) {\r\n <mrx-hint-error-message \r\n message=\"\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u2014 {{ settings.options.maxDate | dateTimeFormat: 'mos' : dateFormat}}\"\r\n ></mrx-hint-error-message>\r\n }\r\n </div>\r\n\r\n @if (settings.options.counter && settings.options.range) {\r\n <div class=\"col col-4\">\r\n <mrx-label>\r\n {{ settings.options.counterLabel }}\r\n </mrx-label>\r\n <mrx-input-number\r\n [ngModel]=\"modelCounter\"\r\n [placeholder]=\"'0'\"\r\n [disabled]=\"!settings.options.counterEditable\"\r\n (ngModelChange)=\"updateCounter($event)\"\r\n ></mrx-input-number>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n}\r\n" }]
|
|
1665
1685
|
}] });
|
|
1666
1686
|
|
|
1667
1687
|
class InputInnComponent extends BaseFieldComponent {
|
|
@@ -1961,6 +1981,7 @@ class InputTableModalComponent extends ModalServiceComponent {
|
|
|
1961
1981
|
super();
|
|
1962
1982
|
this.dialogRef = dialogRef;
|
|
1963
1983
|
this.store = store;
|
|
1984
|
+
this.emptyRow = true;
|
|
1964
1985
|
this.title = data.title;
|
|
1965
1986
|
this.okText = data.okText;
|
|
1966
1987
|
this.settings = data.settings;
|
|
@@ -1977,6 +1998,7 @@ class InputTableModalComponent extends ModalServiceComponent {
|
|
|
1977
1998
|
else {
|
|
1978
1999
|
this._transformValues(valueModel);
|
|
1979
2000
|
}
|
|
2001
|
+
this.emptyRow = this.rowModel.data.every(x => this.isEmpty(x.value, x.valueType));
|
|
1980
2002
|
}
|
|
1981
2003
|
ok() {
|
|
1982
2004
|
if (!this._isValid()) {
|
|
@@ -2025,11 +2047,22 @@ class InputTableModalComponent extends ModalServiceComponent {
|
|
|
2025
2047
|
}
|
|
2026
2048
|
return components;
|
|
2027
2049
|
}
|
|
2050
|
+
isEmpty(value, type) {
|
|
2051
|
+
if (type === ValueType.Undefined)
|
|
2052
|
+
return true;
|
|
2053
|
+
if (value === null || value === undefined)
|
|
2054
|
+
return true;
|
|
2055
|
+
if (type === "string" || type === "guid")
|
|
2056
|
+
return value === "";
|
|
2057
|
+
if (Array.isArray(value))
|
|
2058
|
+
return value.length === 0;
|
|
2059
|
+
return false;
|
|
2060
|
+
}
|
|
2028
2061
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: InputTableModalComponent, deps: [{ token: i1$2.ModalRef }, { token: i2.Store }, { token: MODAL_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2029
2062
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: InputTableModalComponent, isStandalone: true, selector: "app-input-table-modal", providers: [
|
|
2030
2063
|
provideNgxMask(),
|
|
2031
2064
|
ReferenceService // для компонента список
|
|
2032
|
-
], usesInheritance: true, ngImport: i0, template: "<mrx-modal\r\n [title]=\"title\"\r\n size=\"large\"\r\n (close)=\"close()\"\r\n (ok)=\"ok()\"\r\n>\r\n <app-form-dispenser-modal\r\n [sectionSettings]=\"settings\"\r\n [values]=\"rowModel.data\"\r\n [valueMode]=\"'manual'\"\r\n (changed)=\"componentValueChanged($event)\"\r\n ></app-form-dispenser-modal>\r\n\r\n <ng-template #footerContent>\r\n <mrx-button\r\n [customClasses]=\"'mr-3'\"\r\n [type]=\"'secondary'\"\r\n [size]=\"'medium'\"\r\n (click)=\"close()\"\r\n >\u041E\u0442\u043C\u0435\u043D\u0430\r\n </mrx-button>\r\n <mrx-button\r\n [type]=\"'primary'\"\r\n [size]=\"'medium'\"\r\n (click)=\"ok()\"\r\n >{{ okText }}\r\n </mrx-button>\r\n </ng-template>\r\n</mrx-modal>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: ModalModule }, { kind: "component", type: i1$2.ModalComponent, selector: "mrx-modal", inputs: ["title", "message", "alert", "okText", "closeText", "size", "color", "customClasses", "expandable", "isEmbed", "isClose", "isBack", "backText", "enableFooter", "alignButtons", "isLoading", "iconPosition"], outputs: ["ok", "close", "back", "expand"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i1$2.ButtonComponent, selector: "mrx-button", inputs: ["size", "type", "color", "iconPosition", "active", "disabled", "isLoading", "iconOnly", "customClasses", "label", "icon", "iconClass", "buttonType", "href", "target", "routerLink", "queryParams"], outputs: ["mrxClick"] }, { kind: "component", type: FormDispenserModal, selector: "app-form-dispenser-modal", inputs: ["sectionSettings", "values", "valueMode"], outputs: ["changed"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2065
|
+
], usesInheritance: true, ngImport: i0, template: "<mrx-modal\r\n [title]=\"title\"\r\n size=\"large\"\r\n (close)=\"close()\"\r\n (ok)=\"ok()\"\r\n>\r\n <app-form-dispenser-modal\r\n [sectionSettings]=\"settings\"\r\n [values]=\"rowModel.data\"\r\n [valueMode]=\"'manual'\"\r\n (changed)=\"componentValueChanged($event)\"\r\n ></app-form-dispenser-modal>\r\n\r\n <ng-template #footerContent>\r\n <mrx-button\r\n [customClasses]=\"'mr-3'\"\r\n [type]=\"'secondary'\"\r\n [size]=\"'medium'\"\r\n (click)=\"close()\"\r\n >\u041E\u0442\u043C\u0435\u043D\u0430\r\n </mrx-button>\r\n <mrx-button\r\n [type]=\"'primary'\"\r\n [size]=\"'medium'\"\r\n [disabled]=\"emptyRow\"\r\n (click)=\"ok()\"\r\n >{{ okText }}\r\n </mrx-button>\r\n </ng-template>\r\n</mrx-modal>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: ModalModule }, { kind: "component", type: i1$2.ModalComponent, selector: "mrx-modal", inputs: ["title", "message", "alert", "okText", "closeText", "size", "color", "customClasses", "expandable", "isEmbed", "isClose", "isBack", "backText", "enableFooter", "alignButtons", "isLoading", "iconPosition"], outputs: ["ok", "close", "back", "expand"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i1$2.ButtonComponent, selector: "mrx-button", inputs: ["size", "type", "color", "iconPosition", "active", "disabled", "isLoading", "iconOnly", "customClasses", "label", "icon", "iconClass", "buttonType", "href", "target", "routerLink", "queryParams"], outputs: ["mrxClick"] }, { kind: "component", type: FormDispenserModal, selector: "app-form-dispenser-modal", inputs: ["sectionSettings", "values", "valueMode"], outputs: ["changed"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2033
2066
|
}
|
|
2034
2067
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: InputTableModalComponent, decorators: [{
|
|
2035
2068
|
type: Component,
|
|
@@ -2040,7 +2073,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
2040
2073
|
], providers: [
|
|
2041
2074
|
provideNgxMask(),
|
|
2042
2075
|
ReferenceService // для компонента список
|
|
2043
|
-
], template: "<mrx-modal\r\n [title]=\"title\"\r\n size=\"large\"\r\n (close)=\"close()\"\r\n (ok)=\"ok()\"\r\n>\r\n <app-form-dispenser-modal\r\n [sectionSettings]=\"settings\"\r\n [values]=\"rowModel.data\"\r\n [valueMode]=\"'manual'\"\r\n (changed)=\"componentValueChanged($event)\"\r\n ></app-form-dispenser-modal>\r\n\r\n <ng-template #footerContent>\r\n <mrx-button\r\n [customClasses]=\"'mr-3'\"\r\n [type]=\"'secondary'\"\r\n [size]=\"'medium'\"\r\n (click)=\"close()\"\r\n >\u041E\u0442\u043C\u0435\u043D\u0430\r\n </mrx-button>\r\n <mrx-button\r\n [type]=\"'primary'\"\r\n [size]=\"'medium'\"\r\n (click)=\"ok()\"\r\n >{{ okText }}\r\n </mrx-button>\r\n </ng-template>\r\n</mrx-modal>\r\n" }]
|
|
2076
|
+
], template: "<mrx-modal\r\n [title]=\"title\"\r\n size=\"large\"\r\n (close)=\"close()\"\r\n (ok)=\"ok()\"\r\n>\r\n <app-form-dispenser-modal\r\n [sectionSettings]=\"settings\"\r\n [values]=\"rowModel.data\"\r\n [valueMode]=\"'manual'\"\r\n (changed)=\"componentValueChanged($event)\"\r\n ></app-form-dispenser-modal>\r\n\r\n <ng-template #footerContent>\r\n <mrx-button\r\n [customClasses]=\"'mr-3'\"\r\n [type]=\"'secondary'\"\r\n [size]=\"'medium'\"\r\n (click)=\"close()\"\r\n >\u041E\u0442\u043C\u0435\u043D\u0430\r\n </mrx-button>\r\n <mrx-button\r\n [type]=\"'primary'\"\r\n [size]=\"'medium'\"\r\n [disabled]=\"emptyRow\"\r\n (click)=\"ok()\"\r\n >{{ okText }}\r\n </mrx-button>\r\n </ng-template>\r\n</mrx-modal>\r\n" }]
|
|
2044
2077
|
}], ctorParameters: () => [{ type: i1$2.ModalRef }, { type: i2.Store }, { type: undefined, decorators: [{
|
|
2045
2078
|
type: Inject,
|
|
2046
2079
|
args: [MODAL_DATA]
|