bpm-core 0.0.103 → 0.0.104

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. package/fesm2022/bpm-core.mjs +226 -229
  2. package/fesm2022/bpm-core.mjs.map +1 -1
  3. package/lib/components/shared-components/form-field/checkbox/checkbox.component.d.ts +2 -1
  4. package/lib/components/shared-components/form-field/control-value-accessor.directive.d.ts +1 -1
  5. package/lib/components/shared-components/form-field/shared-imports.d.ts +1 -1
  6. package/lib/components/shared-components/form-field/textarea/special-chars.directive.d.ts +1 -1
  7. package/lib/components/shared-components/title-section/title-section.component.d.ts +1 -1
  8. package/lib/pipes/currency.pipe.d.ts +1 -1
  9. package/lib/pipes/format-as-password.pipe.d.ts +1 -1
  10. package/lib/validators/string-to-boolean.pipe.d.ts +1 -1
  11. package/lib/validators/text.directive.d.ts +1 -1
  12. package/lib/validators/timer.pipe.d.ts +1 -1
  13. package/package.json +2 -4
  14. package/esm2022/bpm-core.mjs +0 -5
  15. package/esm2022/lib/app/app.component.mjs +0 -79
  16. package/esm2022/lib/classes/form-validation.mjs +0 -80
  17. package/esm2022/lib/classes/index.mjs +0 -2
  18. package/esm2022/lib/components/app-component-sections/activities/activities.component.mjs +0 -44
  19. package/esm2022/lib/components/app-component-sections/approvals/approvals.component.mjs +0 -23
  20. package/esm2022/lib/components/app-component-sections/approvals-workflow/approvals-workflow.component.mjs +0 -113
  21. package/esm2022/lib/components/app-component-sections/faq-sidenav/faq-sidenav.component.mjs +0 -25
  22. package/esm2022/lib/components/app-component-sections/faqs/faqs.component.mjs +0 -27
  23. package/esm2022/lib/components/app-component-sections/faqs/index.mjs +0 -2
  24. package/esm2022/lib/components/app-component-sections/feedback-section/feedback-section.component.mjs +0 -237
  25. package/esm2022/lib/components/app-component-sections/form-section/form-section.component.mjs +0 -255
  26. package/esm2022/lib/components/app-component-sections/index.mjs +0 -9
  27. package/esm2022/lib/components/app-component-sections/layout/header/header.component.mjs +0 -79
  28. package/esm2022/lib/components/app-component-sections/layout/layout.component.mjs +0 -89
  29. package/esm2022/lib/components/app-component-sections/layout/side-nav/side-nav.component.mjs +0 -158
  30. package/esm2022/lib/components/app-component-sections/main-request-details/main-request-details.component.mjs +0 -34
  31. package/esm2022/lib/components/app-component-sections/previous-requests/previous-requests.component.mjs +0 -345
  32. package/esm2022/lib/components/app-component-sections/profile-section/profile-section.component.mjs +0 -45
  33. package/esm2022/lib/components/app-component-sections/service-header/service-header.component.mjs +0 -271
  34. package/esm2022/lib/components/app-component-sections/status/status.component.mjs +0 -38
  35. package/esm2022/lib/components/app-component-sections/workflow-section/workflow-section.component.mjs +0 -164
  36. package/esm2022/lib/components/shared-components/action-buttons/action-buttons.component.mjs +0 -138
  37. package/esm2022/lib/components/shared-components/dialogs/confirm-dialog/confirm-dialog.component.mjs +0 -30
  38. package/esm2022/lib/components/shared-components/dialogs/delete-dialog/delete-dialog.component.mjs +0 -29
  39. package/esm2022/lib/components/shared-components/dialogs/submit-dialog/submit-dialog.component.mjs +0 -67
  40. package/esm2022/lib/components/shared-components/form-field/add-attachment-section/add-attachment-section.component.mjs +0 -138
  41. package/esm2022/lib/components/shared-components/form-field/attachment-section/attachment-section.component.mjs +0 -234
  42. package/esm2022/lib/components/shared-components/form-field/base-component/base-component.component.mjs +0 -198
  43. package/esm2022/lib/components/shared-components/form-field/checkbox/checkbox.component.mjs +0 -91
  44. package/esm2022/lib/components/shared-components/form-field/control-value-accessor.directive.mjs +0 -185
  45. package/esm2022/lib/components/shared-components/form-field/custom-searchable-autocomplete/custom-searchable.component.mjs +0 -131
  46. package/esm2022/lib/components/shared-components/form-field/date-picker/date-format.mjs +0 -31
  47. package/esm2022/lib/components/shared-components/form-field/date-picker/date-picker.component.mjs +0 -175
  48. package/esm2022/lib/components/shared-components/form-field/date-range-picker/date-range-picker.component.mjs +0 -186
  49. package/esm2022/lib/components/shared-components/form-field/doc-uploader/docs-uploader.component.mjs +0 -525
  50. package/esm2022/lib/components/shared-components/form-field/form-label/form-label.component.mjs +0 -33
  51. package/esm2022/lib/components/shared-components/form-field/index.mjs +0 -26
  52. package/esm2022/lib/components/shared-components/form-field/info-item/info-item.component.mjs +0 -76
  53. package/esm2022/lib/components/shared-components/form-field/input/input.component.mjs +0 -71
  54. package/esm2022/lib/components/shared-components/form-field/input-autocomplete/index.mjs +0 -3
  55. package/esm2022/lib/components/shared-components/form-field/input-autocomplete/input-autocomplete.model.mjs +0 -2
  56. package/esm2022/lib/components/shared-components/form-field/input-currency/input-currency.component.mjs +0 -73
  57. package/esm2022/lib/components/shared-components/form-field/input-email/input-email.component.mjs +0 -69
  58. package/esm2022/lib/components/shared-components/form-field/input-mask/input-mask.component.mjs +0 -61
  59. package/esm2022/lib/components/shared-components/form-field/input-number/input-number.component.mjs +0 -74
  60. package/esm2022/lib/components/shared-components/form-field/input-telephone/input-telephone.component.mjs +0 -85
  61. package/esm2022/lib/components/shared-components/form-field/radio/radio.component.mjs +0 -52
  62. package/esm2022/lib/components/shared-components/form-field/repeated-list/repeated-list.component.mjs +0 -32
  63. package/esm2022/lib/components/shared-components/form-field/search-employee/search-employee.component.mjs +0 -192
  64. package/esm2022/lib/components/shared-components/form-field/select/select.component.mjs +0 -191
  65. package/esm2022/lib/components/shared-components/form-field/shared-imports.mjs +0 -36
  66. package/esm2022/lib/components/shared-components/form-field/table-list/table-list.component.mjs +0 -116
  67. package/esm2022/lib/components/shared-components/form-field/textarea/special-chars.directive.mjs +0 -39
  68. package/esm2022/lib/components/shared-components/form-field/textarea/textarea.component.mjs +0 -57
  69. package/esm2022/lib/components/shared-components/form-field/toggle-button/toggle-button.component.mjs +0 -90
  70. package/esm2022/lib/components/shared-components/form-field/validation-errors/validation-errors.component.mjs +0 -43
  71. package/esm2022/lib/components/shared-components/index.mjs +0 -9
  72. package/esm2022/lib/components/shared-components/table/table.component.mjs +0 -243
  73. package/esm2022/lib/components/shared-components/terms-conditions/terms-conditions.component.mjs +0 -31
  74. package/esm2022/lib/components/shared-components/title-section/title-section.component.mjs +0 -31
  75. package/esm2022/lib/constants/constants.mjs +0 -149
  76. package/esm2022/lib/constants/index.mjs +0 -2
  77. package/esm2022/lib/directives/ar.directive.mjs +0 -54
  78. package/esm2022/lib/directives/currency.directive.mjs +0 -77
  79. package/esm2022/lib/directives/en.directive.mjs +0 -51
  80. package/esm2022/lib/directives/number.directive.mjs +0 -68
  81. package/esm2022/lib/directives/skip-location.directive.mjs +0 -28
  82. package/esm2022/lib/enums/actions.enum.mjs +0 -22
  83. package/esm2022/lib/enums/colors.enum.mjs +0 -6
  84. package/esm2022/lib/enums/events.enum.mjs +0 -6
  85. package/esm2022/lib/functions/data-to-blob.mjs +0 -12
  86. package/esm2022/lib/functions/encode-password.mjs +0 -14
  87. package/esm2022/lib/functions/handel-error-response.mjs +0 -12
  88. package/esm2022/lib/functions/index.mjs +0 -5
  89. package/esm2022/lib/functions/is-valid-data.mjs +0 -42
  90. package/esm2022/lib/helpers/shared.helper.mjs +0 -26
  91. package/esm2022/lib/hooks/index.mjs +0 -3
  92. package/esm2022/lib/hooks/load-form.mjs +0 -13
  93. package/esm2022/lib/hooks/save-form.mjs +0 -18
  94. package/esm2022/lib/i18n/ar.mjs +0 -200
  95. package/esm2022/lib/i18n/en.mjs +0 -204
  96. package/esm2022/lib/i18n/index.mjs +0 -3
  97. package/esm2022/lib/interfaces/action.interface.mjs +0 -2
  98. package/esm2022/lib/interfaces/api-response.interface.mjs +0 -2
  99. package/esm2022/lib/interfaces/document-file.interface.mjs +0 -2
  100. package/esm2022/lib/interfaces/form-items.interface.mjs +0 -2
  101. package/esm2022/lib/interfaces/form.interface.mjs +0 -150
  102. package/esm2022/lib/interfaces/igate-user.interface.mjs +0 -2
  103. package/esm2022/lib/interfaces/index.mjs +0 -8
  104. package/esm2022/lib/interfaces/lov-list.interface.mjs +0 -2
  105. package/esm2022/lib/interfaces/lov.interface.mjs +0 -2
  106. package/esm2022/lib/interfaces/shared.interface.mjs +0 -2
  107. package/esm2022/lib/pipes/currency.pipe.mjs +0 -66
  108. package/esm2022/lib/pipes/format-as-password.pipe.mjs +0 -19
  109. package/esm2022/lib/pipes/index.mjs +0 -3
  110. package/esm2022/lib/pipes/status-style.pipe.mjs +0 -57
  111. package/esm2022/lib/pipes/translate.pipe.mjs +0 -36
  112. package/esm2022/lib/regex/index.mjs +0 -2
  113. package/esm2022/lib/regex/regex-patterns.mjs +0 -4
  114. package/esm2022/lib/services/action.service.ts.mjs +0 -25
  115. package/esm2022/lib/services/core.service.ts.mjs +0 -527
  116. package/esm2022/lib/services/feedBack.service.mjs +0 -81
  117. package/esm2022/lib/services/i18n.service.mjs +0 -36
  118. package/esm2022/lib/services/index.mjs +0 -6
  119. package/esm2022/lib/services/sidenav.service.mjs +0 -36
  120. package/esm2022/lib/testComponent/config/segment-dynamic-loader.config.mjs +0 -8
  121. package/esm2022/lib/testComponent/general-approver-section/general-approver-section.component.mjs +0 -90
  122. package/esm2022/lib/testComponent/request-details-section/request-details-section.component.mjs +0 -482
  123. package/esm2022/lib/testComponent/services/i18n.service.mjs +0 -39
  124. package/esm2022/lib/testComponent/services/segment-dynamic-loader.service.mjs +0 -54
  125. package/esm2022/lib/validators/id.validator.mjs +0 -66
  126. package/esm2022/lib/validators/index.mjs +0 -8
  127. package/esm2022/lib/validators/string-to-boolean.pipe.mjs +0 -16
  128. package/esm2022/lib/validators/text.directive.mjs +0 -50
  129. package/esm2022/lib/validators/timer.pipe.mjs +0 -19
  130. package/esm2022/public-api.mjs +0 -19
@@ -1,186 +0,0 @@
1
- /* eslint-disable @angular-eslint/component-selector */
2
- /* eslint-disable @typescript-eslint/no-empty-function */
3
- import { Component, CUSTOM_ELEMENTS_SCHEMA, DestroyRef, forwardRef, inject, Inject, Input, ViewChild, } from '@angular/core';
4
- import { ControlValueAccessorDirective } from '../control-value-accessor.directive';
5
- import { NG_VALUE_ACCESSOR, Validators, } from '@angular/forms';
6
- import { MatDatepicker } from '@angular/material/datepicker';
7
- import { MAT_DATE_FORMATS } from '@angular/material/core';
8
- import { CustomDateFormat } from '../date-picker/date-format';
9
- import { format } from 'date-fns';
10
- import { MatDatePickerImports, MatFormImports, Shareds } from '../shared-imports';
11
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
12
- import * as i0 from "@angular/core";
13
- import * as i1 from "@angular/material/datepicker";
14
- import * as i2 from "@angular/material/core";
15
- import * as i3 from "@angular/material/form-field";
16
- import * as i4 from "../form-label/form-label.component";
17
- import * as i5 from "../validation-errors/validation-errors.component";
18
- import * as i6 from "../info-item/info-item.component";
19
- import * as i7 from "@angular/forms";
20
- import * as i8 from "@angular/common";
21
- import * as i9 from "../../../../pipes/translate.pipe";
22
- const YEAR_ONLY_FORMAT = {
23
- parse: {
24
- dateInput: 'YYYY',
25
- },
26
- display: {
27
- dateInput: 'YYYY',
28
- monthYearLabel: 'YYYY',
29
- dateA11yLabel: 'LL',
30
- monthYearA11yLabel: 'YYYY',
31
- },
32
- };
33
- export class DateRangePickerComponent extends ControlValueAccessorDirective {
34
- className = 'white-input';
35
- yearOnly;
36
- dateFormat;
37
- datepicker;
38
- calendarType;
39
- startInputValue;
40
- endInputValue;
41
- destroyRef = inject(DestroyRef);
42
- dateRange;
43
- ngOnInit() {
44
- super.ngOnInit();
45
- this.actionStateService.resetAction$
46
- .pipe(takeUntilDestroyed(this.destroyRef))
47
- .subscribe(res => {
48
- if (!this.isReadOnly && this.control.enabled) {
49
- this.control.reset();
50
- }
51
- });
52
- }
53
- ngAfterViewInit() {
54
- if (!this.isReadOnly && this.yearOnly)
55
- this.activateYearOnlyMode();
56
- }
57
- ngOnChanges(changes) {
58
- this.setDateFormControl();
59
- }
60
- setDateFormControl() {
61
- const today = new Date();
62
- const currentYear = today.getFullYear();
63
- const currentMonth = today.getMonth();
64
- const currentDay = today.getDate();
65
- if (this.minDate) {
66
- if (this.minDate == 'today') {
67
- this.minDateValue = new Date(currentYear, currentMonth, currentDay);
68
- }
69
- }
70
- if (this.maxDate) {
71
- if (this.maxDate == 'today') {
72
- this.maxDateValue = new Date(currentYear, currentMonth, currentDay);
73
- }
74
- if (this.maxDate == 'oneYear') {
75
- this.maxDateValue = new Date(currentYear + 1, currentMonth, currentDay - 1);
76
- }
77
- }
78
- if (this.customMaxDate) {
79
- const date = new Date(this.customMaxDate);
80
- this.maxDateValue = new Date(date.getFullYear(), date.getMonth(), date.getDate());
81
- }
82
- if (this.customMinDate) {
83
- const date = new Date(this.customMinDate);
84
- this.minDateValue = new Date(date.getFullYear(), date.getMonth(), date.getDate());
85
- }
86
- if (this.required)
87
- this.control.addValidators(Validators.required);
88
- }
89
- focusPicker(picker) {
90
- picker.open();
91
- this.control.markAsTouched();
92
- }
93
- startDateChange(event) {
94
- if (event?.value && !this.isDisabled) {
95
- if (this.startDateControl.value) {
96
- this.startDateControl.setValue(format(new Date(event.value), "yyyy-MM-dd'T'HH:mm:ss.SSSxxx"));
97
- }
98
- }
99
- }
100
- endDateChange(event) {
101
- if (event?.value && !this.isDisabled) {
102
- if (this.startDateControl.value && this.endDateControl.value) {
103
- this.endDateControl.setValue(format(new Date(event.value), "yyyy-MM-dd'T'HH:mm:ss.SSSxxx"));
104
- this.setDateRangeControlValue();
105
- }
106
- }
107
- }
108
- setDateRangeControlValue() {
109
- this.dateRange = {
110
- startDate: this.startDateControl.value,
111
- endDate: this.endDateControl.value,
112
- };
113
- this.control.setValue(this.dateRange);
114
- }
115
- clearDateValue(event) {
116
- this.dateRange = null;
117
- this.startInputValue = null;
118
- this.endInputValue = null;
119
- this.control.reset();
120
- this.endDateControl.reset();
121
- this.startDateControl.reset();
122
- this.control.markAsTouched();
123
- this.endDateControl.markAsTouched();
124
- this.startDateControl.markAsTouched();
125
- }
126
- activateYearOnlyMode() {
127
- this.dateFormat.updateDateFormat(YEAR_ONLY_FORMAT.parse, YEAR_ONLY_FORMAT.display);
128
- if (this.control) {
129
- this.control.setValue(format(new Date(this.control.value), 'yyyy'));
130
- }
131
- this.datepicker.startView = 'multi-year';
132
- this.datepicker.yearSelected.subscribe((e) => {
133
- this.control.setValue(format(new Date(e), 'yyyy'));
134
- this.datepicker.close();
135
- });
136
- this.datepicker.openedStream.subscribe(() => {
137
- document.body.classList.add('year-only');
138
- });
139
- this.datepicker.closedStream.subscribe(() => {
140
- document.body.classList.remove('year-only');
141
- });
142
- }
143
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: DateRangePickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
144
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: DateRangePickerComponent, isStandalone: true, selector: "app-date-range-picker", inputs: { className: "className", yearOnly: "yearOnly", calendarType: "calendarType" }, providers: [
145
- {
146
- provide: NG_VALUE_ACCESSOR,
147
- useExisting: forwardRef(() => DateRangePickerComponent),
148
- multi: true,
149
- },
150
- {
151
- provide: MAT_DATE_FORMATS,
152
- useClass: CustomDateFormat,
153
- },
154
- ], viewQueries: [{ propertyName: "datepicker", first: true, predicate: MatDatepicker, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if(!isReadOnly) {\r\n @if(label) {\r\n <app-form-label [label]=\"label\" [optional]=\"required || mandatory ? false : true\" [tooltip]=\"tooltip\"></app-form-label>\r\n }\r\n\r\n<div class=\"datePicker\">\r\n <mat-form-field class=\"date-range primary-form {{ className }}\"\r\n [ngClass]=\"{\r\n 'custom-validation-error': !startDateControl.value && !endDateControl.value && startDateControl.touched\r\n }\">\r\n <label class=\"mat-form-content\">\r\n <mat-date-range-input\r\n [rangePicker]=\"picker\"\r\n [min]=\"minDateValue\"\r\n [max]=\"maxDateValue\"\r\n >\r\n <input\r\n matStartDate\r\n placeholder=\"{{ 'startDate' | translate }}\"\r\n [formControl]=\"startDateControl\"\r\n (dateInput)=\"startDateChange($event)\"\r\n (click)=\"focusPicker(picker)\"\r\n readonly\r\n />\r\n <input\r\n matEndDate\r\n placeholder=\"{{ 'endDate' | translate }}\"\r\n [formControl]=\"endDateControl\"\r\n (dateInput)=\"endDateChange($event)\"\r\n (click)=\"focusPicker(picker)\"\r\n readonly\r\n />\r\n </mat-date-range-input>\r\n </label>\r\n\r\n @if(control?.value) {\r\n <ds-icon\r\n matSuffix\r\n icon=\"close\"\r\n class=\"fc-coral fs-10 mx-2 cursor-pointer\"\r\n (click)=\"clearDateValue($event)\"\r\n ></ds-icon>\r\n }\r\n\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\" [disableRipple]=\"true\">\r\n <i class=\"sfi sfi-calendar-o fc-black font-18\" matDatepickerToggleIcon></i>\r\n </mat-datepicker-toggle>\r\n\r\n <mat-date-range-picker #picker></mat-date-range-picker>\r\n </mat-form-field>\r\n</div>\r\n<app-validation-errors [errors]=\"control.errors\"></app-validation-errors>\r\n\r\n\r\n} @else if(isReadOnly && control.value) {\r\n<ng-container>\r\n <app-info-item\r\n class=\"info-item w-100\"\r\n type=\"date\"\r\n [insideTable]=\"insideTable\"\r\n [dateType]=\"calendarType\"\r\n [label]=\"label\"\r\n [value]=\"{\r\n startDate: control?.value?.startDate,\r\n endDate: control?.value?.endDate\r\n }\"\r\n [hasLabel]=\"!!label\"\r\n >\r\n </app-info-item>\r\n</ng-container>\r\n}\r\n", styles: [":host{flex-grow:1}\n"], dependencies: [{ kind: "component", type: i1.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "ngmodule", type: i1.MatDatepickerModule }, { kind: "directive", type: i1.MatDatepickerToggleIcon, selector: "[matDatepickerToggleIcon]" }, { kind: "component", type: i1.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i1.MatStartDate, selector: "input[matStartDate]", outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i1.MatEndDate, selector: "input[matEndDate]", outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i1.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }, { kind: "ngmodule", type: i2.MatNativeDateModule }, { kind: "ngmodule", type: i3.MatFormFieldModule }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i4.FormLabelComponent, selector: "app-form-label", inputs: ["tooltip", "label", "optional"] }, { kind: "component", type: i5.ValidationErrorsComponent, selector: "app-validation-errors", inputs: ["errors", "customErrorMessages"] }, { kind: "component", type: i6.InfoItemComponent, selector: "app-info-item", inputs: ["label", "value", "name", "type", "dateType", "multiple", "insideTable", "hasLabel", "arrayList", "actionType", "download"] }, { kind: "ngmodule", type: i7.ReactiveFormsModule }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i8.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i9.TranslatePipe, name: "translate" }] });
155
- }
156
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: DateRangePickerComponent, decorators: [{
157
- type: Component,
158
- args: [{ selector: 'app-date-range-picker', schemas: [CUSTOM_ELEMENTS_SCHEMA], standalone: true, providers: [
159
- {
160
- provide: NG_VALUE_ACCESSOR,
161
- useExisting: forwardRef(() => DateRangePickerComponent),
162
- multi: true,
163
- },
164
- {
165
- provide: MAT_DATE_FORMATS,
166
- useClass: CustomDateFormat,
167
- },
168
- ], imports: [
169
- ...MatDatePickerImports,
170
- ...MatFormImports,
171
- ...Shareds
172
- ], template: "@if(!isReadOnly) {\r\n @if(label) {\r\n <app-form-label [label]=\"label\" [optional]=\"required || mandatory ? false : true\" [tooltip]=\"tooltip\"></app-form-label>\r\n }\r\n\r\n<div class=\"datePicker\">\r\n <mat-form-field class=\"date-range primary-form {{ className }}\"\r\n [ngClass]=\"{\r\n 'custom-validation-error': !startDateControl.value && !endDateControl.value && startDateControl.touched\r\n }\">\r\n <label class=\"mat-form-content\">\r\n <mat-date-range-input\r\n [rangePicker]=\"picker\"\r\n [min]=\"minDateValue\"\r\n [max]=\"maxDateValue\"\r\n >\r\n <input\r\n matStartDate\r\n placeholder=\"{{ 'startDate' | translate }}\"\r\n [formControl]=\"startDateControl\"\r\n (dateInput)=\"startDateChange($event)\"\r\n (click)=\"focusPicker(picker)\"\r\n readonly\r\n />\r\n <input\r\n matEndDate\r\n placeholder=\"{{ 'endDate' | translate }}\"\r\n [formControl]=\"endDateControl\"\r\n (dateInput)=\"endDateChange($event)\"\r\n (click)=\"focusPicker(picker)\"\r\n readonly\r\n />\r\n </mat-date-range-input>\r\n </label>\r\n\r\n @if(control?.value) {\r\n <ds-icon\r\n matSuffix\r\n icon=\"close\"\r\n class=\"fc-coral fs-10 mx-2 cursor-pointer\"\r\n (click)=\"clearDateValue($event)\"\r\n ></ds-icon>\r\n }\r\n\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\" [disableRipple]=\"true\">\r\n <i class=\"sfi sfi-calendar-o fc-black font-18\" matDatepickerToggleIcon></i>\r\n </mat-datepicker-toggle>\r\n\r\n <mat-date-range-picker #picker></mat-date-range-picker>\r\n </mat-form-field>\r\n</div>\r\n<app-validation-errors [errors]=\"control.errors\"></app-validation-errors>\r\n\r\n\r\n} @else if(isReadOnly && control.value) {\r\n<ng-container>\r\n <app-info-item\r\n class=\"info-item w-100\"\r\n type=\"date\"\r\n [insideTable]=\"insideTable\"\r\n [dateType]=\"calendarType\"\r\n [label]=\"label\"\r\n [value]=\"{\r\n startDate: control?.value?.startDate,\r\n endDate: control?.value?.endDate\r\n }\"\r\n [hasLabel]=\"!!label\"\r\n >\r\n </app-info-item>\r\n</ng-container>\r\n}\r\n", styles: [":host{flex-grow:1}\n"] }]
173
- }], propDecorators: { className: [{
174
- type: Input
175
- }], yearOnly: [{
176
- type: Input
177
- }], dateFormat: [{
178
- type: Inject,
179
- args: [MAT_DATE_FORMATS]
180
- }], datepicker: [{
181
- type: ViewChild,
182
- args: [MatDatepicker]
183
- }], calendarType: [{
184
- type: Input
185
- }] } });
186
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzL2Zvcm0tZmllbGQvZGF0ZS1yYW5nZS1waWNrZXIvZGF0ZS1yYW5nZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzL2Zvcm0tZmllbGQvZGF0ZS1yYW5nZS1waWNrZXIvZGF0ZS1yYW5nZS1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELHlEQUF5RDtBQUN6RCxPQUFPLEVBQ0wsU0FBUyxFQUNULHNCQUFzQixFQUN0QixVQUFVLEVBQ1YsVUFBVSxFQUNWLE1BQU0sRUFDTixNQUFNLEVBQ04sS0FBSyxFQUVMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNwRixPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFVBQVUsR0FDWCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxjQUFjLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0s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dUVBOzsyRkRYYSx3QkFBd0I7a0JBdkJwQyxTQUFTOytCQUNFLHVCQUF1QixXQUd4QixDQUFDLHNCQUFzQixDQUFDLGNBQ3JCLElBQUksYUFDTDt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSx5QkFBeUIsQ0FBQzs0QkFDdkQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLGdCQUFnQjs0QkFDekIsUUFBUSxFQUFFLGdCQUFnQjt5QkFDM0I7cUJBQ0YsV0FDUTt3QkFDUCxHQUFHLG9CQUFvQjt3QkFDdkIsR0FBRyxjQUFjO3dCQUNqQixHQUFHLE9BQU87cUJBQ1g7OEJBS1EsU0FBUztzQkFBakIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUMyQixVQUFVO3NCQUExQyxNQUFNO3VCQUFDLGdCQUFnQjtnQkFDRSxVQUFVO3NCQUFuQyxTQUFTO3VCQUFDLGFBQWE7Z0JBQ2YsWUFBWTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3IgKi9cclxuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uICovXHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsXHJcbiAgRGVzdHJveVJlZixcclxuICBmb3J3YXJkUmVmLFxyXG4gIGluamVjdCxcclxuICBJbmplY3QsXHJcbiAgSW5wdXQsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yRGlyZWN0aXZlIH0gZnJvbSAnLi4vY29udHJvbC12YWx1ZS1hY2Nlc3Nvci5kaXJlY3RpdmUnO1xyXG5pbXBvcnQge1xyXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gIFZhbGlkYXRvcnMsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXREYXRlcGlja2VyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XHJcbmltcG9ydCB7IE1BVF9EQVRFX0ZPUk1BVFMgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcclxuaW1wb3J0IHsgQ3VzdG9tRGF0ZUZvcm1hdCB9IGZyb20gJy4uL2RhdGUtcGlja2VyL2RhdGUtZm9ybWF0JztcclxuaW1wb3J0IHsgZm9ybWF0IH0gZnJvbSAnZGF0ZS1mbnMnO1xyXG5pbXBvcnQgeyBNYXREYXRlUGlja2VySW1wb3J0cywgTWF0Rm9ybUltcG9ydHMsIFNoYXJlZHMgfSBmcm9tICcuLi9zaGFyZWQtaW1wb3J0cyc7XHJcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcclxuXHJcbmNvbnN0IFlFQVJfT05MWV9GT1JNQVQgPSB7XHJcbiAgcGFyc2U6IHtcclxuICAgIGRhdGVJbnB1dDogJ1lZWVknLFxyXG4gIH0sXHJcbiAgZGlzcGxheToge1xyXG4gICAgZGF0ZUlucHV0OiAnWVlZWScsXHJcbiAgICBtb250aFllYXJMYWJlbDogJ1lZWVknLFxyXG4gICAgZGF0ZUExMXlMYWJlbDogJ0xMJyxcclxuICAgIG1vbnRoWWVhckExMXlMYWJlbDogJ1lZWVknLFxyXG4gIH0sXHJcbn07XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1kYXRlLXJhbmdlLXBpY2tlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGUtcmFuZ2UtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9kYXRlLXJhbmdlLXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxyXG4gIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRGF0ZVJhbmdlUGlja2VyQ29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBNQVRfREFURV9GT1JNQVRTLFxyXG4gICAgICB1c2VDbGFzczogQ3VzdG9tRGF0ZUZvcm1hdCxcclxuICAgIH0sXHJcbiAgXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICAuLi5NYXREYXRlUGlja2VySW1wb3J0cyxcclxuICAgIC4uLk1hdEZvcm1JbXBvcnRzLFxyXG4gICAgLi4uU2hhcmVkc1xyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEYXRlUmFuZ2VQaWNrZXJDb21wb25lbnQ8XHJcbiAgVHlwZVxyXG4+IGV4dGVuZHMgQ29udHJvbFZhbHVlQWNjZXNzb3JEaXJlY3RpdmU8VHlwZT4ge1xyXG4gIEBJbnB1dCgpIGNsYXNzTmFtZSA9ICd3aGl0ZS1pbnB1dCc7XHJcbiAgQElucHV0KCkgeWVhck9ubHk6IGJvb2xlYW47XHJcbiAgQEluamVjdChNQVRfREFURV9GT1JNQVRTKSBwdWJsaWMgZGF0ZUZvcm1hdDogQ3VzdG9tRGF0ZUZvcm1hdDtcclxuICBAVmlld0NoaWxkKE1hdERhdGVwaWNrZXIpIGRhdGVwaWNrZXI6IE1hdERhdGVwaWNrZXI8YW55PjtcclxuICBASW5wdXQoKSBjYWxlbmRhclR5cGUhOiBzdHJpbmc7XHJcbiAgc3RhcnRJbnB1dFZhbHVlOiBzdHJpbmc7XHJcbiAgZW5kSW5wdXRWYWx1ZTogc3RyaW5nO1xyXG4gIGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XHJcbiAgZGF0ZVJhbmdlOiBhbnk7XHJcbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpXHJcbiAgICB0aGlzLmFjdGlvblN0YXRlU2VydmljZS5yZXNldEFjdGlvbiRcclxuICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxyXG4gICAgLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICBpZiAoIXRoaXMuaXNSZWFkT25seSAmJiB0aGlzLmNvbnRyb2wuZW5hYmxlZCkge1xyXG4gICAgICAgIHRoaXMuY29udHJvbC5yZXNldCgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuaXNSZWFkT25seSAmJiB0aGlzLnllYXJPbmx5KSB0aGlzLmFjdGl2YXRlWWVhck9ubHlNb2RlKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICB0aGlzLnNldERhdGVGb3JtQ29udHJvbCgpO1xyXG4gIH1cclxuXHJcbiAgc2V0RGF0ZUZvcm1Db250cm9sKCkge1xyXG4gICAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpO1xyXG4gICAgY29uc3QgY3VycmVudFllYXIgPSB0b2RheS5nZXRGdWxsWWVhcigpO1xyXG4gICAgY29uc3QgY3VycmVudE1vbnRoID0gdG9kYXkuZ2V0TW9udGgoKTtcclxuICAgIGNvbnN0IGN1cnJlbnREYXkgPSB0b2RheS5nZXREYXRlKCk7XHJcbiAgICBpZiAodGhpcy5taW5EYXRlKSB7XHJcbiAgICAgIGlmICh0aGlzLm1pbkRhdGUgPT0gJ3RvZGF5Jykge1xyXG4gICAgICAgIHRoaXMubWluRGF0ZVZhbHVlID0gbmV3IERhdGUoY3VycmVudFllYXIsIGN1cnJlbnRNb250aCwgY3VycmVudERheSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5tYXhEYXRlKSB7XHJcbiAgICAgIGlmICh0aGlzLm1heERhdGUgPT0gJ3RvZGF5Jykge1xyXG4gICAgICAgIHRoaXMubWF4RGF0ZVZhbHVlID0gbmV3IERhdGUoY3VycmVudFllYXIsIGN1cnJlbnRNb250aCwgY3VycmVudERheSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMubWF4RGF0ZSA9PSAnb25lWWVhcicpIHtcclxuICAgICAgICB0aGlzLm1heERhdGVWYWx1ZSA9IG5ldyBEYXRlKFxyXG4gICAgICAgICAgY3VycmVudFllYXIgKyAxLFxyXG4gICAgICAgICAgY3VycmVudE1vbnRoLFxyXG4gICAgICAgICAgY3VycmVudERheSAtIDFcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5jdXN0b21NYXhEYXRlKSB7XHJcbiAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh0aGlzLmN1c3RvbU1heERhdGUpO1xyXG4gICAgICB0aGlzLm1heERhdGVWYWx1ZSA9IG5ldyBEYXRlKFxyXG4gICAgICAgIGRhdGUuZ2V0RnVsbFllYXIoKSxcclxuICAgICAgICBkYXRlLmdldE1vbnRoKCksXHJcbiAgICAgICAgZGF0ZS5nZXREYXRlKClcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmN1c3RvbU1pbkRhdGUpIHtcclxuICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHRoaXMuY3VzdG9tTWluRGF0ZSk7XHJcbiAgICAgIHRoaXMubWluRGF0ZVZhbHVlID0gbmV3IERhdGUoXHJcbiAgICAgICAgZGF0ZS5nZXRGdWxsWWVhcigpLFxyXG4gICAgICAgIGRhdGUuZ2V0TW9udGgoKSxcclxuICAgICAgICBkYXRlLmdldERhdGUoKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnJlcXVpcmVkKSB0aGlzLmNvbnRyb2wuYWRkVmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICB9XHJcblxyXG4gIGZvY3VzUGlja2VyKHBpY2tlcikge1xyXG4gICAgcGlja2VyLm9wZW4oKTtcclxuICAgIHRoaXMuY29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgfVxyXG5cclxuICBzdGFydERhdGVDaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKGV2ZW50Py52YWx1ZSAmJiAhdGhpcy5pc0Rpc2FibGVkKSB7XHJcbiAgICAgIGlmICh0aGlzLnN0YXJ0RGF0ZUNvbnRyb2wudmFsdWUpIHtcclxuICAgICAgICB0aGlzLnN0YXJ0RGF0ZUNvbnRyb2wuc2V0VmFsdWUoXHJcbiAgICAgICAgICBmb3JtYXQobmV3IERhdGUoZXZlbnQudmFsdWUpLCBcInl5eXktTU0tZGQnVCdISDptbTpzcy5TU1N4eHhcIilcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBlbmREYXRlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmIChldmVudD8udmFsdWUgJiYgIXRoaXMuaXNEaXNhYmxlZCkge1xyXG4gICAgICBpZiAodGhpcy5zdGFydERhdGVDb250cm9sLnZhbHVlICYmIHRoaXMuZW5kRGF0ZUNvbnRyb2wudmFsdWUpIHtcclxuICAgICAgICB0aGlzLmVuZERhdGVDb250cm9sLnNldFZhbHVlKFxyXG4gICAgICAgICAgZm9ybWF0KG5ldyBEYXRlKGV2ZW50LnZhbHVlKSwgXCJ5eXl5LU1NLWRkJ1QnSEg6bW06c3MuU1NTeHh4XCIpXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLnNldERhdGVSYW5nZUNvbnRyb2xWYWx1ZSgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXREYXRlUmFuZ2VDb250cm9sVmFsdWUoKSB7XHJcbiAgICB0aGlzLmRhdGVSYW5nZSA9IHtcclxuICAgICAgc3RhcnREYXRlOiB0aGlzLnN0YXJ0RGF0ZUNvbnRyb2wudmFsdWUsXHJcbiAgICAgIGVuZERhdGU6IHRoaXMuZW5kRGF0ZUNvbnRyb2wudmFsdWUsXHJcbiAgICB9O1xyXG4gICAgdGhpcy5jb250cm9sLnNldFZhbHVlKHRoaXMuZGF0ZVJhbmdlKTtcclxuICB9XHJcblxyXG4gIGNsZWFyRGF0ZVZhbHVlKGV2ZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLmRhdGVSYW5nZSA9IG51bGw7XHJcbiAgICB0aGlzLnN0YXJ0SW5wdXRWYWx1ZSA9IG51bGw7XHJcbiAgICB0aGlzLmVuZElucHV0VmFsdWUgPSBudWxsO1xyXG4gICAgdGhpcy5jb250cm9sLnJlc2V0KCk7XHJcbiAgICB0aGlzLmVuZERhdGVDb250cm9sLnJlc2V0KCk7XHJcbiAgICB0aGlzLnN0YXJ0RGF0ZUNvbnRyb2wucmVzZXQoKTtcclxuICAgIHRoaXMuY29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgICB0aGlzLmVuZERhdGVDb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgIHRoaXMuc3RhcnREYXRlQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFjdGl2YXRlWWVhck9ubHlNb2RlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5kYXRlRm9ybWF0LnVwZGF0ZURhdGVGb3JtYXQoXHJcbiAgICAgIFlFQVJfT05MWV9GT1JNQVQucGFyc2UsXHJcbiAgICAgIFlFQVJfT05MWV9GT1JNQVQuZGlzcGxheVxyXG4gICAgKTtcclxuICAgIGlmICh0aGlzLmNvbnRyb2wpIHtcclxuICAgICAgdGhpcy5jb250cm9sLnNldFZhbHVlKGZvcm1hdChuZXcgRGF0ZSh0aGlzLmNvbnRyb2wudmFsdWUpLCAneXl5eScpKTtcclxuICAgIH1cclxuICAgIHRoaXMuZGF0ZXBpY2tlci5zdGFydFZpZXcgPSAnbXVsdGkteWVhcic7XHJcbiAgICB0aGlzLmRhdGVwaWNrZXIueWVhclNlbGVjdGVkLnN1YnNjcmliZSgoZSkgPT4ge1xyXG4gICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUoZm9ybWF0KG5ldyBEYXRlKGUpLCAneXl5eScpKTtcclxuICAgICAgdGhpcy5kYXRlcGlja2VyLmNsb3NlKCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuZGF0ZXBpY2tlci5vcGVuZWRTdHJlYW0uc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKCd5ZWFyLW9ubHknKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5kYXRlcGlja2VyLmNsb3NlZFN0cmVhbS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoJ3llYXItb25seScpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIkBpZighaXNSZWFkT25seSkge1xyXG4gIEBpZihsYWJlbCkge1xyXG4gICAgPGFwcC1mb3JtLWxhYmVsIFtsYWJlbF09XCJsYWJlbFwiIFtvcHRpb25hbF09XCJyZXF1aXJlZCB8fCBtYW5kYXRvcnkgPyBmYWxzZSA6IHRydWVcIiBbdG9vbHRpcF09XCJ0b29sdGlwXCI+PC9hcHAtZm9ybS1sYWJlbD5cclxuICB9XHJcblxyXG48ZGl2IGNsYXNzPVwiZGF0ZVBpY2tlclwiPlxyXG4gIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImRhdGUtcmFuZ2UgcHJpbWFyeS1mb3JtIHt7IGNsYXNzTmFtZSB9fVwiXHJcbiAgW25nQ2xhc3NdPVwie1xyXG4gICAgJ2N1c3RvbS12YWxpZGF0aW9uLWVycm9yJzogIXN0YXJ0RGF0ZUNvbnRyb2wudmFsdWUgJiYgIWVuZERhdGVDb250cm9sLnZhbHVlICYmIHN0YXJ0RGF0ZUNvbnRyb2wudG91Y2hlZFxyXG4gICB9XCI+XHJcbiAgICA8bGFiZWwgY2xhc3M9XCJtYXQtZm9ybS1jb250ZW50XCI+XHJcbiAgICAgIDxtYXQtZGF0ZS1yYW5nZS1pbnB1dFxyXG4gICAgICAgIFtyYW5nZVBpY2tlcl09XCJwaWNrZXJcIlxyXG4gICAgICAgIFttaW5dPVwibWluRGF0ZVZhbHVlXCJcclxuICAgICAgICBbbWF4XT1cIm1heERhdGVWYWx1ZVwiXHJcbiAgICAgID5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIG1hdFN0YXJ0RGF0ZVxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnc3RhcnREYXRlJyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwic3RhcnREYXRlQ29udHJvbFwiXHJcbiAgICAgICAgICAoZGF0ZUlucHV0KT1cInN0YXJ0RGF0ZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgIChjbGljayk9XCJmb2N1c1BpY2tlcihwaWNrZXIpXCJcclxuICAgICAgICAgIHJlYWRvbmx5XHJcbiAgICAgICAgLz5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIG1hdEVuZERhdGVcclxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2VuZERhdGUnIHwgdHJhbnNsYXRlIH19XCJcclxuICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJlbmREYXRlQ29udHJvbFwiXHJcbiAgICAgICAgICAoZGF0ZUlucHV0KT1cImVuZERhdGVDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAoY2xpY2spPVwiZm9jdXNQaWNrZXIocGlja2VyKVwiXHJcbiAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvbWF0LWRhdGUtcmFuZ2UtaW5wdXQ+XHJcbiAgICA8L2xhYmVsPlxyXG5cclxuICAgIEBpZihjb250cm9sPy52YWx1ZSkge1xyXG4gICAgPGRzLWljb25cclxuICAgICAgbWF0U3VmZml4XHJcbiAgICAgIGljb249XCJjbG9zZVwiXHJcbiAgICAgIGNsYXNzPVwiZmMtY29yYWwgZnMtMTAgbXgtMiBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgIChjbGljayk9XCJjbGVhckRhdGVWYWx1ZSgkZXZlbnQpXCJcclxuICAgID48L2RzLWljb24+XHJcbiAgICB9XHJcblxyXG4gICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBtYXRTdWZmaXggW2Zvcl09XCJwaWNrZXJcIiBbZGlzYWJsZVJpcHBsZV09XCJ0cnVlXCI+XHJcbiAgICAgIDxpIGNsYXNzPVwic2ZpIHNmaS1jYWxlbmRhci1vIGZjLWJsYWNrIGZvbnQtMThcIiBtYXREYXRlcGlja2VyVG9nZ2xlSWNvbj48L2k+XHJcbiAgICA8L21hdC1kYXRlcGlja2VyLXRvZ2dsZT5cclxuXHJcbiAgICA8bWF0LWRhdGUtcmFuZ2UtcGlja2VyICNwaWNrZXI+PC9tYXQtZGF0ZS1yYW5nZS1waWNrZXI+XHJcbiAgPC9tYXQtZm9ybS1maWVsZD5cclxuPC9kaXY+XHJcbjxhcHAtdmFsaWRhdGlvbi1lcnJvcnMgW2Vycm9yc109XCJjb250cm9sLmVycm9yc1wiPjwvYXBwLXZhbGlkYXRpb24tZXJyb3JzPlxyXG5cclxuXHJcbn0gQGVsc2UgaWYoaXNSZWFkT25seSAmJiBjb250cm9sLnZhbHVlKSB7XHJcbjxuZy1jb250YWluZXI+XHJcbiAgPGFwcC1pbmZvLWl0ZW1cclxuICAgIGNsYXNzPVwiaW5mby1pdGVtIHctMTAwXCJcclxuICAgIHR5cGU9XCJkYXRlXCJcclxuICAgIFtpbnNpZGVUYWJsZV09XCJpbnNpZGVUYWJsZVwiXHJcbiAgICBbZGF0ZVR5cGVdPVwiY2FsZW5kYXJUeXBlXCJcclxuICAgIFtsYWJlbF09XCJsYWJlbFwiXHJcbiAgICBbdmFsdWVdPVwie1xyXG4gICAgICBzdGFydERhdGU6IGNvbnRyb2w/LnZhbHVlPy5zdGFydERhdGUsXHJcbiAgICAgIGVuZERhdGU6IGNvbnRyb2w/LnZhbHVlPy5lbmREYXRlXHJcbiAgICB9XCJcclxuICAgIFtoYXNMYWJlbF09XCIhIWxhYmVsXCJcclxuICA+XHJcbiAgPC9hcHAtaW5mby1pdGVtPlxyXG48L25nLWNvbnRhaW5lcj5cclxufVxyXG4iXX0=