ngx-render-material-forms 2.5.18 → 2.5.20

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 (157) hide show
  1. package/esm2020/lib/FormioControl.mjs +36 -0
  2. package/esm2020/lib/components/Base.mjs +32 -0
  3. package/esm2020/lib/components/MaterialComponent.mjs +145 -0
  4. package/esm2020/lib/components/MaterialNestedComponent.mjs +38 -0
  5. package/esm2020/lib/components/Webform.mjs +18 -0
  6. package/esm2020/lib/components/add-on-products/add-on-products.component.mjs +842 -0
  7. package/esm2020/lib/components/button/button.component.mjs +102 -0
  8. package/esm2020/lib/components/calendar/calendar.component.mjs +129 -0
  9. package/esm2020/lib/components/checkbox/checkbox.component.mjs +54 -0
  10. package/esm2020/lib/components/columns/columns.component.mjs +69 -0
  11. package/esm2020/lib/components/common.service.mjs +256 -0
  12. package/esm2020/lib/components/confirmation-dialog/confirmation-dialog.component.mjs +25 -0
  13. package/esm2020/lib/components/container/container.component.mjs +25 -0
  14. package/{esm2022 → esm2020}/lib/components/content/content.component.mjs +18 -18
  15. package/esm2020/lib/components/currency/currency.component.mjs +43 -0
  16. package/esm2020/lib/components/datagrid/datagrid.component.mjs +694 -0
  17. package/esm2020/lib/components/date/date.component.mjs +363 -0
  18. package/{esm2022 → esm2020}/lib/components/day/day.component.mjs +75 -75
  19. package/esm2020/lib/components/editgrid/editgrid.component.mjs +243 -0
  20. package/esm2020/lib/components/email/email.component.mjs +30 -0
  21. package/esm2020/lib/components/fieldset/fieldset.component.mjs +50 -0
  22. package/esm2020/lib/components/formio-form-field/formio-form-field.component.mjs +57 -0
  23. package/esm2020/lib/components/formio.wizard.mjs +88 -0
  24. package/{esm2022 → esm2020}/lib/components/hidden/hidden.component.mjs +20 -20
  25. package/esm2020/lib/components/html/html.component.mjs +29 -0
  26. package/esm2020/lib/components/index.mjs +125 -0
  27. package/{esm2022 → esm2020}/lib/components/label/label.component.mjs +17 -17
  28. package/esm2020/lib/components/number/number.component.mjs +67 -0
  29. package/esm2020/lib/components/panel/panel.component.mjs +57 -0
  30. package/esm2020/lib/components/password/password.component.mjs +30 -0
  31. package/esm2020/lib/components/phonenumber/phonenumber.component.mjs +30 -0
  32. package/esm2020/lib/components/radio/radio.component.mjs +96 -0
  33. package/esm2020/lib/components/select/select.component.mjs +593 -0
  34. package/esm2020/lib/components/selectboxes/selectboxes.component.mjs +102 -0
  35. package/esm2020/lib/components/signature/signature.component.mjs +103 -0
  36. package/esm2020/lib/components/survey/survey.component.mjs +167 -0
  37. package/esm2020/lib/components/table/table.component.mjs +97 -0
  38. package/esm2020/lib/components/tabs/tabs.component.mjs +43 -0
  39. package/esm2020/lib/components/tags/tags.component.mjs +117 -0
  40. package/esm2020/lib/components/textarea/textarea.component.mjs +98 -0
  41. package/esm2020/lib/components/textfield/textfield.component.mjs +124 -0
  42. package/esm2020/lib/components/time/time.component.mjs +206 -0
  43. package/esm2020/lib/components/url/url.component.mjs +30 -0
  44. package/esm2020/lib/components/well/well.component.mjs +43 -0
  45. package/{esm2022 → esm2020}/lib/const/ButtonsThemes.mjs +16 -16
  46. package/{esm2022 → esm2020}/lib/const/LabelPositions.mjs +9 -9
  47. package/esm2020/lib/directives/mask.directive.mjs +65 -0
  48. package/esm2020/lib/formio.component.mjs +80 -0
  49. package/{esm2022 → esm2020}/lib/ngx-render-material-forms.component.mjs +15 -15
  50. package/esm2020/lib/ngx-render-material-forms.module.mjs +378 -0
  51. package/{esm2022 → esm2020}/lib/ngx-render-material-forms.service.mjs +14 -14
  52. package/{esm2022 → esm2020}/lib/renderer.mjs +12 -12
  53. package/{esm2022 → esm2020}/ngx-render-material-forms.js +4 -4
  54. package/{esm2022 → esm2020}/public-api.mjs +6 -6
  55. package/fesm2015/ngx-render-material-forms.js +5874 -0
  56. package/fesm2015/ngx-render-material-forms.mjs.map +1 -0
  57. package/{fesm2022 → fesm2020}/ngx-render-material-forms.js +4316 -4222
  58. package/fesm2020/ngx-render-material-forms.mjs.map +1 -0
  59. package/index.d.ts +5 -5
  60. package/lib/FormioControl.d.ts +7 -7
  61. package/lib/components/Base.d.ts +2 -2
  62. package/lib/components/MaterialComponent.d.ts +30 -30
  63. package/lib/components/MaterialNestedComponent.d.ts +13 -13
  64. package/lib/components/Webform.d.ts +1 -1
  65. package/lib/components/add-on-products/add-on-products.component.d.ts +142 -142
  66. package/lib/components/button/button.component.d.ts +30 -30
  67. package/lib/components/calendar/calendar.component.d.ts +34 -34
  68. package/lib/components/checkbox/checkbox.component.d.ts +9 -9
  69. package/lib/components/columns/columns.component.d.ts +12 -12
  70. package/lib/components/common.service.d.ts +86 -86
  71. package/lib/components/confirmation-dialog/confirmation-dialog.component.d.ts +11 -11
  72. package/lib/components/container/container.component.d.ts +8 -8
  73. package/lib/components/content/content.component.d.ts +8 -8
  74. package/lib/components/currency/currency.component.d.ts +10 -10
  75. package/lib/components/datagrid/datagrid.component.d.ts +81 -81
  76. package/lib/components/date/date.component.d.ts +45 -40
  77. package/lib/components/day/day.component.d.ts +16 -16
  78. package/lib/components/editgrid/editgrid.component.d.ts +50 -50
  79. package/lib/components/email/email.component.d.ts +9 -9
  80. package/lib/components/fieldset/fieldset.component.d.ts +8 -8
  81. package/lib/components/formio-form-field/formio-form-field.component.d.ts +18 -18
  82. package/lib/components/formio.wizard.d.ts +19 -19
  83. package/lib/components/hidden/hidden.component.d.ts +8 -8
  84. package/lib/components/html/html.component.d.ts +11 -11
  85. package/lib/components/index.d.ts +2 -2
  86. package/lib/components/label/label.component.d.ts +6 -6
  87. package/lib/components/number/number.component.d.ts +18 -18
  88. package/lib/components/panel/panel.component.d.ts +8 -8
  89. package/lib/components/password/password.component.d.ts +9 -9
  90. package/lib/components/phonenumber/phonenumber.component.d.ts +9 -9
  91. package/lib/components/radio/radio.component.d.ts +12 -12
  92. package/lib/components/select/select.component.d.ts +77 -77
  93. package/lib/components/selectboxes/selectboxes.component.d.ts +15 -15
  94. package/lib/components/signature/signature.component.d.ts +12 -12
  95. package/lib/components/survey/survey.component.d.ts +14 -14
  96. package/lib/components/table/table.component.d.ts +12 -12
  97. package/lib/components/tabs/tabs.component.d.ts +9 -9
  98. package/lib/components/tags/tags.component.d.ts +15 -15
  99. package/lib/components/textarea/textarea.component.d.ts +13 -13
  100. package/lib/components/textfield/textfield.component.d.ts +18 -18
  101. package/lib/components/time/time.component.d.ts +27 -27
  102. package/lib/components/url/url.component.d.ts +9 -9
  103. package/lib/components/well/well.component.d.ts +8 -8
  104. package/lib/const/ButtonsThemes.d.ts +14 -14
  105. package/lib/const/LabelPositions.d.ts +8 -8
  106. package/lib/directives/mask.directive.d.ts +17 -17
  107. package/lib/formio.component.d.ts +15 -15
  108. package/lib/ngx-render-material-forms.component.d.ts +8 -8
  109. package/lib/ngx-render-material-forms.module.d.ts +112 -110
  110. package/lib/ngx-render-material-forms.service.d.ts +6 -6
  111. package/lib/renderer.d.ts +8 -8
  112. package/package.json +11 -5
  113. package/public-api.d.ts +3 -3
  114. package/esm2022/lib/FormioControl.mjs +0 -36
  115. package/esm2022/lib/components/Base.mjs +0 -32
  116. package/esm2022/lib/components/MaterialComponent.mjs +0 -148
  117. package/esm2022/lib/components/MaterialNestedComponent.mjs +0 -38
  118. package/esm2022/lib/components/Webform.mjs +0 -18
  119. package/esm2022/lib/components/add-on-products/add-on-products.component.mjs +0 -841
  120. package/esm2022/lib/components/button/button.component.mjs +0 -101
  121. package/esm2022/lib/components/calendar/calendar.component.mjs +0 -127
  122. package/esm2022/lib/components/checkbox/checkbox.component.mjs +0 -53
  123. package/esm2022/lib/components/columns/columns.component.mjs +0 -58
  124. package/esm2022/lib/components/common.service.mjs +0 -255
  125. package/esm2022/lib/components/confirmation-dialog/confirmation-dialog.component.mjs +0 -24
  126. package/esm2022/lib/components/container/container.component.mjs +0 -24
  127. package/esm2022/lib/components/currency/currency.component.mjs +0 -41
  128. package/esm2022/lib/components/datagrid/datagrid.component.mjs +0 -693
  129. package/esm2022/lib/components/date/date.component.mjs +0 -336
  130. package/esm2022/lib/components/editgrid/editgrid.component.mjs +0 -243
  131. package/esm2022/lib/components/email/email.component.mjs +0 -28
  132. package/esm2022/lib/components/fieldset/fieldset.component.mjs +0 -49
  133. package/esm2022/lib/components/formio-form-field/formio-form-field.component.mjs +0 -56
  134. package/esm2022/lib/components/formio.wizard.mjs +0 -88
  135. package/esm2022/lib/components/html/html.component.mjs +0 -29
  136. package/esm2022/lib/components/index.mjs +0 -125
  137. package/esm2022/lib/components/number/number.component.mjs +0 -65
  138. package/esm2022/lib/components/panel/panel.component.mjs +0 -56
  139. package/esm2022/lib/components/password/password.component.mjs +0 -28
  140. package/esm2022/lib/components/phonenumber/phonenumber.component.mjs +0 -28
  141. package/esm2022/lib/components/radio/radio.component.mjs +0 -93
  142. package/esm2022/lib/components/select/select.component.mjs +0 -592
  143. package/esm2022/lib/components/selectboxes/selectboxes.component.mjs +0 -99
  144. package/esm2022/lib/components/signature/signature.component.mjs +0 -99
  145. package/esm2022/lib/components/survey/survey.component.mjs +0 -166
  146. package/esm2022/lib/components/table/table.component.mjs +0 -96
  147. package/esm2022/lib/components/tabs/tabs.component.mjs +0 -42
  148. package/esm2022/lib/components/tags/tags.component.mjs +0 -114
  149. package/esm2022/lib/components/textarea/textarea.component.mjs +0 -94
  150. package/esm2022/lib/components/textfield/textfield.component.mjs +0 -122
  151. package/esm2022/lib/components/time/time.component.mjs +0 -205
  152. package/esm2022/lib/components/url/url.component.mjs +0 -28
  153. package/esm2022/lib/components/well/well.component.mjs +0 -41
  154. package/esm2022/lib/directives/mask.directive.mjs +0 -65
  155. package/esm2022/lib/formio.component.mjs +0 -77
  156. package/esm2022/lib/ngx-render-material-forms.module.mjs +0 -332
  157. package/fesm2022/ngx-render-material-forms.mjs.map +0 -1
@@ -1,114 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import { COMMA, ENTER } from '@angular/cdk/keycodes';
3
- import TagsComponent from 'formiojs/components/tags/Tags.js';
4
- import { MaterialComponent } from '../MaterialComponent';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/common";
7
- import * as i2 from "@angular/forms";
8
- import * as i3 from "@angular/material/form-field";
9
- import * as i4 from "@angular/material/chips";
10
- import * as i5 from "@angular/material/icon";
11
- import * as i6 from "../formio-form-field/formio-form-field.component";
12
- import * as i7 from "../label/label.component";
13
- export class MaterialTagsComponent extends MaterialComponent {
14
- constructor() {
15
- super(...arguments);
16
- this.separatorKeysCodes = [ENTER, COMMA];
17
- this.tags = [];
18
- }
19
- add(event) {
20
- const input = event.input;
21
- const value = event.value;
22
- if ((value || '').trim()) {
23
- this.tags.push(value.trim());
24
- }
25
- if (input) {
26
- input.value = '';
27
- }
28
- this.onChange();
29
- }
30
- remove(index) {
31
- if (index >= 0 && index < this.tags.length) {
32
- this.tags.splice(index, 1);
33
- }
34
- this.onChange();
35
- }
36
- getValue() {
37
- return (this.instance.component.storeas === 'string') ? this.tags.join(this.instance.delimiter) : this.tags;
38
- }
39
- setValue(value) {
40
- if (typeof value === 'string') {
41
- value = value.split(this.instance.delimiter);
42
- }
43
- if (value && !Array.isArray(value)) {
44
- value = [value];
45
- }
46
- this.tags = value;
47
- }
48
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MaterialTagsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
49
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MaterialTagsComponent, selector: "mat-formio-tags", usesInheritance: true, ngImport: i0, template: `
50
- <mat-formio-form-field [instance]="instance" [componentTemplate]="componentTemplate"></mat-formio-form-field>
51
- <ng-template #componentTemplate let-hasLabel>
52
- <mat-form-field class="example-chip-list" fxFill>
53
-
54
- <mat-label *ngIf="hasLabel">
55
- <span [instance]="instance" matFormioLabel></span>
56
- </mat-label>
57
-
58
- <mat-chip-grid #chipList [attr.aria-label]="instance.component.label">
59
- <mat-chip-row *ngFor="let tag of tags; index as i;"
60
- [removable]="true"
61
- (removed)="remove(i)"
62
- >
63
- {{tag}}
64
- <mat-icon matChipRemove>cancel</mat-icon>
65
- </mat-chip-row>
66
-
67
- <input [formControl]="control"
68
- [matChipInputFor]="chipList"
69
- [matChipInputSeparatorKeyCodes]="separatorKeysCodes"
70
- [matChipInputAddOnBlur]="true"
71
- (matChipInputTokenEnd)="add($event)"
72
- >
73
- </mat-chip-grid>
74
- </mat-form-field>
75
- </ng-template>
76
- `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "component", type: i4.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i4.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i4.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i4.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.FormioFormFieldComponent, selector: "mat-formio-form-field", inputs: ["labelTemplate", "renderTopLabel", "showDescription", "renderElementOnly", "instance", "componentTemplate"] }, { kind: "component", type: i7.LabelComponent, selector: "span[matFormioLabel]", inputs: ["instance"] }] }); }
77
- }
78
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MaterialTagsComponent, decorators: [{
79
- type: Component,
80
- args: [{
81
- selector: 'mat-formio-tags',
82
- template: `
83
- <mat-formio-form-field [instance]="instance" [componentTemplate]="componentTemplate"></mat-formio-form-field>
84
- <ng-template #componentTemplate let-hasLabel>
85
- <mat-form-field class="example-chip-list" fxFill>
86
-
87
- <mat-label *ngIf="hasLabel">
88
- <span [instance]="instance" matFormioLabel></span>
89
- </mat-label>
90
-
91
- <mat-chip-grid #chipList [attr.aria-label]="instance.component.label">
92
- <mat-chip-row *ngFor="let tag of tags; index as i;"
93
- [removable]="true"
94
- (removed)="remove(i)"
95
- >
96
- {{tag}}
97
- <mat-icon matChipRemove>cancel</mat-icon>
98
- </mat-chip-row>
99
-
100
- <input [formControl]="control"
101
- [matChipInputFor]="chipList"
102
- [matChipInputSeparatorKeyCodes]="separatorKeysCodes"
103
- [matChipInputAddOnBlur]="true"
104
- (matChipInputTokenEnd)="add($event)"
105
- >
106
- </mat-chip-grid>
107
- </mat-form-field>
108
- </ng-template>
109
- `
110
- }]
111
- }] });
112
- TagsComponent.MaterialComponent = MaterialTagsComponent;
113
- export { TagsComponent };
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFncy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmVuZGVyLW1hdGVyaWFsLWZvcm1zL3NyYy9saWIvY29tcG9uZW50cy90YWdzL3RhZ3MuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLGFBQWEsTUFBTSxrQ0FBa0MsQ0FBQztBQUM3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7O0FBa0N6RCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsaUJBQWlCO0lBL0I1RDs7UUFnQ1csdUJBQWtCLEdBQWEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDdkQsU0FBSSxHQUFhLEVBQUUsQ0FBQztLQWlDckI7SUFoQ0MsR0FBRyxDQUFDLEtBQXdCO1FBQzFCLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDMUIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDL0IsQ0FBQztRQUNELElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixLQUFLLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNuQixDQUFDO1FBQ0QsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSztRQUNWLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUMzQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDN0IsQ0FBQztRQUNELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDOUcsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFLO1FBQ1osSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM5QixLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQy9DLENBQUM7UUFDRCxJQUFJLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNuQyxLQUFLLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsQixDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7SUFDcEIsQ0FBQzsrR0FsQ1UscUJBQXFCO21HQUFyQixxQkFBcUIsOEVBN0J0Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMkJUOzs0RkFFVSxxQkFBcUI7a0JBL0JqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMkJUO2lCQUNGOztBQXFDQSxhQUFxQixDQUFDLGlCQUFpQixHQUFHLHFCQUFxQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDT01NQSwgRU5URVIgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xyXG5pbXBvcnQgVGFnc0NvbXBvbmVudCBmcm9tICdmb3JtaW9qcy9jb21wb25lbnRzL3RhZ3MvVGFncy5qcyc7XHJcbmltcG9ydCB7IE1hdGVyaWFsQ29tcG9uZW50IH0gZnJvbSAnLi4vTWF0ZXJpYWxDb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRDaGlwSW5wdXRFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoaXBzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbWF0LWZvcm1pby10YWdzJyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPG1hdC1mb3JtaW8tZm9ybS1maWVsZCBbaW5zdGFuY2VdPVwiaW5zdGFuY2VcIiBbY29tcG9uZW50VGVtcGxhdGVdPVwiY29tcG9uZW50VGVtcGxhdGVcIj48L21hdC1mb3JtaW8tZm9ybS1maWVsZD5cclxuICAgIDxuZy10ZW1wbGF0ZSAjY29tcG9uZW50VGVtcGxhdGUgbGV0LWhhc0xhYmVsPlxyXG4gICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJleGFtcGxlLWNoaXAtbGlzdFwiIGZ4RmlsbD5cclxuXHJcbiAgICAgICAgPG1hdC1sYWJlbCAqbmdJZj1cImhhc0xhYmVsXCI+XHJcbiAgICAgICAgICA8c3BhbiBbaW5zdGFuY2VdPVwiaW5zdGFuY2VcIiBtYXRGb3JtaW9MYWJlbD48L3NwYW4+XHJcbiAgICAgICAgPC9tYXQtbGFiZWw+XHJcblxyXG4gICAgICAgIDxtYXQtY2hpcC1ncmlkICNjaGlwTGlzdCBbYXR0ci5hcmlhLWxhYmVsXT1cImluc3RhbmNlLmNvbXBvbmVudC5sYWJlbFwiPlxyXG4gICAgICAgICAgPG1hdC1jaGlwLXJvdyAqbmdGb3I9XCJsZXQgdGFnIG9mIHRhZ3M7IGluZGV4IGFzIGk7XCJcclxuICAgICAgICAgICAgICAgICAgICBbcmVtb3ZhYmxlXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIChyZW1vdmVkKT1cInJlbW92ZShpKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHt7dGFnfX1cclxuICAgICAgICAgICAgPG1hdC1pY29uIG1hdENoaXBSZW1vdmU+Y2FuY2VsPC9tYXQtaWNvbj5cclxuICAgICAgICAgIDwvbWF0LWNoaXAtcm93PlxyXG5cclxuICAgICAgICAgIDxpbnB1dCBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICAgW21hdENoaXBJbnB1dEZvcl09XCJjaGlwTGlzdFwiXHJcbiAgICAgICAgICAgICAgICAgW21hdENoaXBJbnB1dFNlcGFyYXRvcktleUNvZGVzXT1cInNlcGFyYXRvcktleXNDb2Rlc1wiXHJcbiAgICAgICAgICAgICAgICAgW21hdENoaXBJbnB1dEFkZE9uQmx1cl09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAobWF0Q2hpcElucHV0VG9rZW5FbmQpPVwiYWRkKCRldmVudClcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgIDwvbWF0LWNoaXAtZ3JpZD5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgYFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWF0ZXJpYWxUYWdzQ29tcG9uZW50IGV4dGVuZHMgTWF0ZXJpYWxDb21wb25lbnQge1xyXG4gIHJlYWRvbmx5IHNlcGFyYXRvcktleXNDb2RlczogbnVtYmVyW10gPSBbRU5URVIsIENPTU1BXTtcclxuICB0YWdzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIGFkZChldmVudDogTWF0Q2hpcElucHV0RXZlbnQpOiB2b2lkIHtcclxuICAgIGNvbnN0IGlucHV0ID0gZXZlbnQuaW5wdXQ7XHJcbiAgICBjb25zdCB2YWx1ZSA9IGV2ZW50LnZhbHVlO1xyXG4gICAgaWYgKCh2YWx1ZSB8fCAnJykudHJpbSgpKSB7XHJcbiAgICAgIHRoaXMudGFncy5wdXNoKHZhbHVlLnRyaW0oKSk7XHJcbiAgICB9XHJcbiAgICBpZiAoaW5wdXQpIHtcclxuICAgICAgaW5wdXQudmFsdWUgPSAnJztcclxuICAgIH1cclxuICAgIHRoaXMub25DaGFuZ2UoKTtcclxuICB9XHJcblxyXG4gIHJlbW92ZShpbmRleCk6IHZvaWQge1xyXG4gICAgaWYgKGluZGV4ID49IDAgJiYgaW5kZXggPCB0aGlzLnRhZ3MubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMudGFncy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5vbkNoYW5nZSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0VmFsdWUoKSB7XHJcbiAgICByZXR1cm4gKHRoaXMuaW5zdGFuY2UuY29tcG9uZW50LnN0b3JlYXMgPT09ICdzdHJpbmcnKSA/IHRoaXMudGFncy5qb2luKHRoaXMuaW5zdGFuY2UuZGVsaW1pdGVyKSA6IHRoaXMudGFncztcclxuICB9XHJcblxyXG4gIHNldFZhbHVlKHZhbHVlKSB7XHJcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xyXG4gICAgICB2YWx1ZSA9IHZhbHVlLnNwbGl0KHRoaXMuaW5zdGFuY2UuZGVsaW1pdGVyKTtcclxuICAgIH1cclxuICAgIGlmICh2YWx1ZSAmJiAhQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcclxuICAgICAgdmFsdWUgPSBbdmFsdWVdO1xyXG4gICAgfVxyXG4gICAgdGhpcy50YWdzID0gdmFsdWU7XHJcbiAgfVxyXG59XHJcbihUYWdzQ29tcG9uZW50IGFzIGFueSkuTWF0ZXJpYWxDb21wb25lbnQgPSBNYXRlcmlhbFRhZ3NDb21wb25lbnQ7XHJcbmV4cG9ydCB7IFRhZ3NDb21wb25lbnQgfTtcclxuIl19
@@ -1,94 +0,0 @@
1
- import { Component, ViewChild } from '@angular/core';
2
- import { MaterialComponent } from '../MaterialComponent';
3
- import TextAreaComponent from 'formiojs/components/textarea/TextArea.js';
4
- import isNil from 'lodash/isNil';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/common";
7
- import * as i2 from "@angular/forms";
8
- import * as i3 from "@angular/material/input";
9
- import * as i4 from "@angular/material/form-field";
10
- import * as i5 from "../formio-form-field/formio-form-field.component";
11
- import * as i6 from "../label/label.component";
12
- export class MaterialTextareaComponent extends MaterialComponent {
13
- ngAfterViewInit() {
14
- if (this.element && this.element.nativeElement && this.instance) {
15
- // Add custom classes to elements.
16
- if (this.instance.component.customClass) {
17
- this.element.nativeElement.classList.add(this.instance.component.customClass);
18
- }
19
- }
20
- // Attach the element so the wysiwyg will work.
21
- this.instance.attachElement(this.textarea.nativeElement);
22
- }
23
- getErrorMessage() {
24
- // Check if instance and necessary properties exist
25
- if (this.instance && this.instance.parent && this.instance.parent._data) {
26
- if (this.instance.parent._data.submit) {
27
- this.control.markAllAsTouched();
28
- }
29
- }
30
- // Return the error message if it exists
31
- return this.instance.error ? this.instance.error.message : '';
32
- }
33
- getValue() {
34
- return isNil(this.control.value) ? '' : this.control.value;
35
- }
36
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MaterialTextareaComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
37
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MaterialTextareaComponent, selector: "mat-formio-textarea", viewQueries: [{ propertyName: "textarea", first: true, predicate: ["textarea"], descendants: true }], usesInheritance: true, ngImport: i0, template: `
38
- <mat-formio-form-field [instance]="instance" [componentTemplate]="componentTemplate"></mat-formio-form-field>
39
- <ng-template #componentTemplate let-hasLabel>
40
- <mat-form-field class="mat-formio-textarea"
41
- [ngClass]="{'editor-enabled': !!instance.component.editor}"
42
- style="width:100%; align-self:center;"
43
- >
44
- <mat-label style="width:100%;" *ngIf="hasLabel">
45
- <span [instance]="instance" matFormioLabel></span>
46
- </mat-label>
47
- <span *ngIf="instance.component.prefix" matPrefix>{{ instance.component.prefix }}&nbsp;</span>
48
- <textarea matInput
49
- [placeholder]="instance.component.placeholder"
50
- [formControl]="control"
51
- [rows]="(instance.component.rows || 3)"
52
- (input)="onChange()"
53
- #textarea
54
- >
55
- </textarea>
56
- <span *ngIf="instance.component.suffix" matSuffix>{{ instance.component.suffix }}</span>
57
- <mat-error *ngIf="instance.error">{{ getErrorMessage() }}</mat-error>
58
- </mat-form-field>
59
- </ng-template>
60
- `, isInline: true, styles: [".mat-mdc-input-element{min-height:16px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i4.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i4.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i5.FormioFormFieldComponent, selector: "mat-formio-form-field", inputs: ["labelTemplate", "renderTopLabel", "showDescription", "renderElementOnly", "instance", "componentTemplate"] }, { kind: "component", type: i6.LabelComponent, selector: "span[matFormioLabel]", inputs: ["instance"] }] }); }
61
- }
62
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MaterialTextareaComponent, decorators: [{
63
- type: Component,
64
- args: [{ selector: 'mat-formio-textarea', template: `
65
- <mat-formio-form-field [instance]="instance" [componentTemplate]="componentTemplate"></mat-formio-form-field>
66
- <ng-template #componentTemplate let-hasLabel>
67
- <mat-form-field class="mat-formio-textarea"
68
- [ngClass]="{'editor-enabled': !!instance.component.editor}"
69
- style="width:100%; align-self:center;"
70
- >
71
- <mat-label style="width:100%;" *ngIf="hasLabel">
72
- <span [instance]="instance" matFormioLabel></span>
73
- </mat-label>
74
- <span *ngIf="instance.component.prefix" matPrefix>{{ instance.component.prefix }}&nbsp;</span>
75
- <textarea matInput
76
- [placeholder]="instance.component.placeholder"
77
- [formControl]="control"
78
- [rows]="(instance.component.rows || 3)"
79
- (input)="onChange()"
80
- #textarea
81
- >
82
- </textarea>
83
- <span *ngIf="instance.component.suffix" matSuffix>{{ instance.component.suffix }}</span>
84
- <mat-error *ngIf="instance.error">{{ getErrorMessage() }}</mat-error>
85
- </mat-form-field>
86
- </ng-template>
87
- `, styles: [".mat-mdc-input-element{min-height:16px}\n"] }]
88
- }], propDecorators: { textarea: [{
89
- type: ViewChild,
90
- args: ['textarea']
91
- }] } });
92
- TextAreaComponent.MaterialComponent = MaterialTextareaComponent;
93
- export { TextAreaComponent };
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGFyZWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJlbmRlci1tYXRlcmlhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvdGV4dGFyZWEvdGV4dGFyZWEuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUE2QixNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLGlCQUFpQixNQUFNLDBDQUEwQyxDQUFDO0FBQ3pFLE9BQU8sS0FBSyxNQUFNLGNBQWMsQ0FBQzs7Ozs7Ozs7QUE4QmpDLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxpQkFBaUI7SUFHOUQsZUFBZTtRQUNiLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEUsa0NBQWtDO1lBQ2xDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDaEYsQ0FBQztRQUNILENBQUM7UUFDRCwrQ0FBK0M7UUFDL0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsZUFBZTtRQUNiLG1EQUFtRDtRQUNuRCxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDeEUsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUNsQyxDQUFDO1FBQ0gsQ0FBQztRQUVELHdDQUF3QztRQUN4QyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNoRSxDQUFDO0lBR0QsUUFBUTtRQUNOLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDN0QsQ0FBQzsrR0E3QlUseUJBQXlCO21HQUF6Qix5QkFBeUIsd0xBekIxQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1QlQ7OzRGQUVVLHlCQUF5QjtrQkE1QnJDLFNBQVM7K0JBQ0UscUJBQXFCLFlBRXJCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVCVDs4QkFHc0IsUUFBUTtzQkFBOUIsU0FBUzt1QkFBQyxVQUFVOztBQThCdkIsaUJBQWlCLENBQUMsaUJBQWlCLEdBQUcseUJBQXlCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgQWZ0ZXJWaWV3SW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbENvbXBvbmVudCB9IGZyb20gJy4uL01hdGVyaWFsQ29tcG9uZW50JztcclxuaW1wb3J0IFRleHRBcmVhQ29tcG9uZW50IGZyb20gJ2Zvcm1pb2pzL2NvbXBvbmVudHMvdGV4dGFyZWEvVGV4dEFyZWEuanMnO1xyXG5pbXBvcnQgaXNOaWwgZnJvbSAnbG9kYXNoL2lzTmlsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbWF0LWZvcm1pby10ZXh0YXJlYScsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdGV4dGFyZWEuY29tcG9uZW50LmNzcyddLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8bWF0LWZvcm1pby1mb3JtLWZpZWxkIFtpbnN0YW5jZV09XCJpbnN0YW5jZVwiIFtjb21wb25lbnRUZW1wbGF0ZV09XCJjb21wb25lbnRUZW1wbGF0ZVwiPjwvbWF0LWZvcm1pby1mb3JtLWZpZWxkPlxyXG4gICAgPG5nLXRlbXBsYXRlICNjb21wb25lbnRUZW1wbGF0ZSBsZXQtaGFzTGFiZWw+XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cIm1hdC1mb3JtaW8tdGV4dGFyZWFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydlZGl0b3ItZW5hYmxlZCc6ICEhaW5zdGFuY2UuY29tcG9uZW50LmVkaXRvcn1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDoxMDAlOyBhbGlnbi1zZWxmOmNlbnRlcjtcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPG1hdC1sYWJlbCBzdHlsZT1cIndpZHRoOjEwMCU7XCIgKm5nSWY9XCJoYXNMYWJlbFwiPlxyXG4gICAgICAgICAgPHNwYW4gW2luc3RhbmNlXT1cImluc3RhbmNlXCIgbWF0Rm9ybWlvTGFiZWw+PC9zcGFuPlxyXG4gICAgICAgIDwvbWF0LWxhYmVsPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwiaW5zdGFuY2UuY29tcG9uZW50LnByZWZpeFwiIG1hdFByZWZpeD57eyBpbnN0YW5jZS5jb21wb25lbnQucHJlZml4IH19Jm5ic3A7PC9zcGFuPlxyXG4gICAgICAgIDx0ZXh0YXJlYSBtYXRJbnB1dFxyXG4gICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiaW5zdGFuY2UuY29tcG9uZW50LnBsYWNlaG9sZGVyXCJcclxuICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgICBbcm93c109XCIoaW5zdGFuY2UuY29tcG9uZW50LnJvd3MgfHwgMylcIlxyXG4gICAgICAgICAgICAgICAgICAoaW5wdXQpPVwib25DaGFuZ2UoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAjdGV4dGFyZWFcclxuICAgICAgICA+XHJcbiAgICAgICAgPC90ZXh0YXJlYT5cclxuICAgICAgICA8c3BhbiAqbmdJZj1cImluc3RhbmNlLmNvbXBvbmVudC5zdWZmaXhcIiBtYXRTdWZmaXg+e3sgaW5zdGFuY2UuY29tcG9uZW50LnN1ZmZpeCB9fTwvc3Bhbj5cclxuICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiaW5zdGFuY2UuZXJyb3JcIj57eyBnZXRFcnJvck1lc3NhZ2UoKSB9fTwvbWF0LWVycm9yPlxyXG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICBgXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNYXRlcmlhbFRleHRhcmVhQ29tcG9uZW50IGV4dGVuZHMgTWF0ZXJpYWxDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcclxuICBAVmlld0NoaWxkKCd0ZXh0YXJlYScpIHRleHRhcmVhOiBFbGVtZW50UmVmO1xyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICBpZiAodGhpcy5lbGVtZW50ICYmIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50ICYmIHRoaXMuaW5zdGFuY2UpIHtcclxuICAgICAgLy8gQWRkIGN1c3RvbSBjbGFzc2VzIHRvIGVsZW1lbnRzLlxyXG4gICAgICBpZiAodGhpcy5pbnN0YW5jZS5jb21wb25lbnQuY3VzdG9tQ2xhc3MpIHtcclxuICAgICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKHRoaXMuaW5zdGFuY2UuY29tcG9uZW50LmN1c3RvbUNsYXNzKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy8gQXR0YWNoIHRoZSBlbGVtZW50IHNvIHRoZSB3eXNpd3lnIHdpbGwgd29yay5cclxuICAgIHRoaXMuaW5zdGFuY2UuYXR0YWNoRWxlbWVudCh0aGlzLnRleHRhcmVhLm5hdGl2ZUVsZW1lbnQpO1xyXG4gIH1cclxuXHJcbiAgZ2V0RXJyb3JNZXNzYWdlKCkge1xyXG4gICAgLy8gQ2hlY2sgaWYgaW5zdGFuY2UgYW5kIG5lY2Vzc2FyeSBwcm9wZXJ0aWVzIGV4aXN0XHJcbiAgICBpZiAodGhpcy5pbnN0YW5jZSAmJiB0aGlzLmluc3RhbmNlLnBhcmVudCAmJiB0aGlzLmluc3RhbmNlLnBhcmVudC5fZGF0YSkge1xyXG4gICAgICBpZiAodGhpcy5pbnN0YW5jZS5wYXJlbnQuX2RhdGEuc3VibWl0KSB7XHJcbiAgICAgICAgdGhpcy5jb250cm9sLm1hcmtBbGxBc1RvdWNoZWQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIFJldHVybiB0aGUgZXJyb3IgbWVzc2FnZSBpZiBpdCBleGlzdHNcclxuICAgIHJldHVybiB0aGlzLmluc3RhbmNlLmVycm9yID8gdGhpcy5pbnN0YW5jZS5lcnJvci5tZXNzYWdlIDogJyc7XHJcbiAgfVxyXG5cclxuXHJcbiAgZ2V0VmFsdWUoKSB7XHJcbiAgICByZXR1cm4gaXNOaWwodGhpcy5jb250cm9sLnZhbHVlKSA/ICcnIDogdGhpcy5jb250cm9sLnZhbHVlO1xyXG4gIH1cclxufVxyXG5UZXh0QXJlYUNvbXBvbmVudC5NYXRlcmlhbENvbXBvbmVudCA9IE1hdGVyaWFsVGV4dGFyZWFDb21wb25lbnQ7XHJcbmV4cG9ydCB7IFRleHRBcmVhQ29tcG9uZW50IH07XHJcbiJdfQ==
@@ -1,122 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import TextFieldComponent from 'formiojs/components/textfield/TextField.js';
3
- import { MaterialComponent } from '../MaterialComponent';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/common";
6
- import * as i2 from "@angular/forms";
7
- import * as i3 from "@angular/material/input";
8
- import * as i4 from "@angular/material/form-field";
9
- import * as i5 from "../formio-form-field/formio-form-field.component";
10
- import * as i6 from "../label/label.component";
11
- export const TEXTFIELD_TEMPLATE = `
12
- <mat-formio-form-field [instance]="instance" [componentTemplate]="componentTemplate"></mat-formio-form-field>
13
- <ng-template #componentTemplate let-hasLabel>
14
- <mat-form-field [appearance]="getFormFieldAppearance()" fxFill>
15
-
16
- <mat-label *ngIf="hasLabel">
17
- <span [instance]="instance" matFormioLabel></span>
18
- </mat-label>
19
-
20
- <span *ngIf="instance.component.prefix && instance.type !== 'currency'"
21
- matPrefix
22
- >
23
- {{ instance.component.prefix }}&nbsp;
24
- </span>
25
- <input matInput
26
- type="{{ inputType }}"
27
- [formControl]="control"
28
- [placeholder]="instance.component.placeholder"
29
- (input)="onChange()" #input
30
- [ngClass]="{ 'show-invalid': inputType=='email' }"
31
- >
32
- <span *ngIf="instance.component.suffix" matSuffix>{{ instance.component.suffix }}</span>
33
-
34
- <mat-hint *ngIf="instance.component.showWordCount || instance.component.showCharCount">
35
- {{ getHint() }}
36
- </mat-hint>
37
-
38
- <br/>
39
- <mat-error *ngIf="isError()" >{{ getErrorMessage() }}</mat-error>
40
- </mat-form-field>
41
- </ng-template>
42
- `;
43
- export class MaterialTextfieldComponent extends MaterialComponent {
44
- constructor() {
45
- super(...arguments);
46
- this.inputType = 'text';
47
- }
48
- ngAfterContentInit() {
49
- if (this.instance && this.control && this.instance.component.disabled) {
50
- this.control.disable();
51
- }
52
- }
53
- getHint() {
54
- if (!this.instance || !this.control || !this.control.value) {
55
- return '';
56
- }
57
- const { showWordCount, showCharCount } = this.instance.component;
58
- if (showWordCount && showCharCount) {
59
- return `${this.getWordsCount()} words, ${this.control.value.length} characters`;
60
- }
61
- else if (showWordCount) {
62
- return `${this.getWordsCount()} words`;
63
- }
64
- else {
65
- return `${this.control.value.length} characters`;
66
- }
67
- }
68
- getWordsCount() {
69
- const matches = this.control.value ? this.control.value.match(/[\w\d’'-]+/gi) : [];
70
- return matches ? matches.length : 0;
71
- }
72
- getFormFieldAppearance() {
73
- const appearances = ['legacy', 'standard', 'fill', 'outline'];
74
- const appearance = this.instance.component.appearance ? this.instance.component.appearance.toLowerCase() : '';
75
- return appearances.includes(appearance) ? appearance : 'outline';
76
- }
77
- isError() {
78
- if (this.instance.error) {
79
- this.control.setErrors(this.instance.component.validate);
80
- return true;
81
- }
82
- else {
83
- return false;
84
- }
85
- }
86
- getErrorMessage() {
87
- if (this.instance.error && this.instance.error.messages) {
88
- const { messages } = this.instance.error;
89
- if (messages.length) {
90
- for (const msg of messages) {
91
- //this.control.hasError(msg.context.validator)
92
- if (this.instance.type == 'phoneNumber' || this.instance.type == 'email') {
93
- this.controlHasError = true;
94
- }
95
- else {
96
- this.controlHasError = this.control.hasError(msg.context.validator);
97
- }
98
- if (msg.context && this.controlHasError) {
99
- if (this.instance && this.instance.parent && this.instance.parent._data) {
100
- if (this.instance.parent._data.submit) {
101
- this.control.markAllAsTouched();
102
- }
103
- }
104
- return this.instance.error ? this.instance.error.message : '';
105
- }
106
- }
107
- }
108
- }
109
- }
110
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MaterialTextfieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
111
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MaterialTextfieldComponent, selector: "mat-formio-textfield", usesInheritance: true, ngImport: i0, template: "\n <mat-formio-form-field [instance]=\"instance\" [componentTemplate]=\"componentTemplate\"></mat-formio-form-field>\n <ng-template #componentTemplate let-hasLabel>\n <mat-form-field [appearance]=\"getFormFieldAppearance()\" fxFill>\n\n <mat-label *ngIf=\"hasLabel\">\n <span [instance]=\"instance\" matFormioLabel></span>\n </mat-label>\n\n <span *ngIf=\"instance.component.prefix && instance.type !== 'currency'\"\n matPrefix\n >\n {{ instance.component.prefix }}&nbsp;\n </span>\n <input matInput\n type=\"{{ inputType }}\"\n [formControl]=\"control\"\n [placeholder]=\"instance.component.placeholder\"\n (input)=\"onChange()\" #input\n [ngClass]=\"{ 'show-invalid': inputType=='email' }\"\n >\n <span *ngIf=\"instance.component.suffix\" matSuffix>{{ instance.component.suffix }}</span>\n\n <mat-hint *ngIf=\"instance.component.showWordCount || instance.component.showCharCount\">\n {{ getHint() }}\n </mat-hint>\n\n <br/>\n <mat-error *ngIf=\"isError()\" >{{ getErrorMessage() }}</mat-error>\n </mat-form-field>\n </ng-template>\n", isInline: true, dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i4.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i4.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i4.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i5.FormioFormFieldComponent, selector: "mat-formio-form-field", inputs: ["labelTemplate", "renderTopLabel", "showDescription", "renderElementOnly", "instance", "componentTemplate"] }, { kind: "component", type: i6.LabelComponent, selector: "span[matFormioLabel]", inputs: ["instance"] }] }); }
112
- }
113
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MaterialTextfieldComponent, decorators: [{
114
- type: Component,
115
- args: [{
116
- selector: 'mat-formio-textfield',
117
- template: TEXTFIELD_TEMPLATE
118
- }]
119
- }] });
120
- TextFieldComponent.MaterialComponent = MaterialTextfieldComponent;
121
- export { TextFieldComponent };
122
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZW5kZXItbWF0ZXJpYWwtZm9ybXMvc3JjL2xpYi9jb21wb25lbnRzL3RleHRmaWVsZC90ZXh0ZmllbGQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQTRCLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sa0JBQWtCLE1BQU0sNENBQTRDLENBQUM7QUFDNUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7O0FBRXpELE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBK0JqQyxDQUFDO0FBTUYsTUFBTSxPQUFPLDBCQUEyQixTQUFRLGlCQUFpQjtJQUpqRTs7UUFLUyxjQUFTLEdBQUcsTUFBTSxDQUFDO0tBc0UzQjtJQW5FQyxrQkFBa0I7UUFDaEIsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDdEUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN6QixDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzNELE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUVELE1BQU0sRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUM7UUFFakUsSUFBSSxhQUFhLElBQUksYUFBYSxFQUFFLENBQUM7WUFD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QyxnQkFBZ0IsRUFBRSxDQUFDOzRCQUNsQyxDQUFDO3dCQUNILENBQUM7d0JBQ0QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQ2hFLENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQzsrR0F0RVUsMEJBQTBCO21HQUExQiwwQkFBMEI7OzRGQUExQiwwQkFBMEI7a0JBSnRDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsUUFBUSxFQUFFLGtCQUFrQjtpQkFDN0I7O0FBeUVELGtCQUFrQixDQUFDLGlCQUFpQixHQUFHLDBCQUEwQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIEFmdGVyQ29udGVudEluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IFRleHRGaWVsZENvbXBvbmVudCBmcm9tICdmb3JtaW9qcy9jb21wb25lbnRzL3RleHRmaWVsZC9UZXh0RmllbGQuanMnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbENvbXBvbmVudCB9IGZyb20gJy4uL01hdGVyaWFsQ29tcG9uZW50JztcclxuXHJcbmV4cG9ydCBjb25zdCBURVhURklFTERfVEVNUExBVEUgPSBgXHJcbiAgPG1hdC1mb3JtaW8tZm9ybS1maWVsZCBbaW5zdGFuY2VdPVwiaW5zdGFuY2VcIiBbY29tcG9uZW50VGVtcGxhdGVdPVwiY29tcG9uZW50VGVtcGxhdGVcIj48L21hdC1mb3JtaW8tZm9ybS1maWVsZD5cclxuICA8bmctdGVtcGxhdGUgI2NvbXBvbmVudFRlbXBsYXRlIGxldC1oYXNMYWJlbD5cclxuICAgIDxtYXQtZm9ybS1maWVsZCBbYXBwZWFyYW5jZV09XCJnZXRGb3JtRmllbGRBcHBlYXJhbmNlKClcIiBmeEZpbGw+XHJcblxyXG4gICAgICA8bWF0LWxhYmVsICpuZ0lmPVwiaGFzTGFiZWxcIj5cclxuICAgICAgICAgIDxzcGFuIFtpbnN0YW5jZV09XCJpbnN0YW5jZVwiIG1hdEZvcm1pb0xhYmVsPjwvc3Bhbj5cclxuICAgICAgPC9tYXQtbGFiZWw+XHJcblxyXG4gICAgICA8c3BhbiAqbmdJZj1cImluc3RhbmNlLmNvbXBvbmVudC5wcmVmaXggJiYgaW5zdGFuY2UudHlwZSAhPT0gJ2N1cnJlbmN5J1wiXHJcbiAgICAgICAgICAgIG1hdFByZWZpeFxyXG4gICAgICA+XHJcbiAgICAgICAge3sgaW5zdGFuY2UuY29tcG9uZW50LnByZWZpeCB9fSZuYnNwO1xyXG4gICAgICA8L3NwYW4+XHJcbiAgICAgIDxpbnB1dCBtYXRJbnB1dFxyXG4gICAgICAgICAgICB0eXBlPVwie3sgaW5wdXRUeXBlIH19XCJcclxuICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIlxyXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiaW5zdGFuY2UuY29tcG9uZW50LnBsYWNlaG9sZGVyXCJcclxuICAgICAgICAgICAgKGlucHV0KT1cIm9uQ2hhbmdlKClcIiAjaW5wdXRcclxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnc2hvdy1pbnZhbGlkJzogaW5wdXRUeXBlPT0nZW1haWwnIH1cIlxyXG4gICAgICA+XHJcbiAgICAgIDxzcGFuICpuZ0lmPVwiaW5zdGFuY2UuY29tcG9uZW50LnN1ZmZpeFwiIG1hdFN1ZmZpeD57eyBpbnN0YW5jZS5jb21wb25lbnQuc3VmZml4IH19PC9zcGFuPlxyXG5cclxuICAgICAgPG1hdC1oaW50ICpuZ0lmPVwiaW5zdGFuY2UuY29tcG9uZW50LnNob3dXb3JkQ291bnQgfHwgaW5zdGFuY2UuY29tcG9uZW50LnNob3dDaGFyQ291bnRcIj5cclxuICAgICAgICB7eyBnZXRIaW50KCkgfX1cclxuICAgICAgPC9tYXQtaGludD5cclxuXHJcbiAgICAgIDxici8+XHJcbiAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJpc0Vycm9yKClcIiA+e3sgZ2V0RXJyb3JNZXNzYWdlKCkgfX08L21hdC1lcnJvcj5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuYDtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbWF0LWZvcm1pby10ZXh0ZmllbGQnLFxyXG4gIHRlbXBsYXRlOiBURVhURklFTERfVEVNUExBVEVcclxufSlcclxuZXhwb3J0IGNsYXNzIE1hdGVyaWFsVGV4dGZpZWxkQ29tcG9uZW50IGV4dGVuZHMgTWF0ZXJpYWxDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0IHtcclxuICBwdWJsaWMgaW5wdXRUeXBlID0gJ3RleHQnO1xyXG4gIGNvbnRyb2xIYXNFcnJvcjogYm9vbGVhbjtcclxuXHJcbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xyXG4gICAgaWYgKHRoaXMuaW5zdGFuY2UgJiYgdGhpcy5jb250cm9sICYmIHRoaXMuaW5zdGFuY2UuY29tcG9uZW50LmRpc2FibGVkKSB7XHJcbiAgICAgIHRoaXMuY29udHJvbC5kaXNhYmxlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRIaW50KCkge1xyXG4gICAgaWYgKCF0aGlzLmluc3RhbmNlIHx8ICF0aGlzLmNvbnRyb2wgfHwgIXRoaXMuY29udHJvbC52YWx1ZSkge1xyXG4gICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgeyBzaG93V29yZENvdW50LCBzaG93Q2hhckNvdW50IH0gPSB0aGlzLmluc3RhbmNlLmNvbXBvbmVudDtcclxuXHJcbiAgICBpZiAoc2hvd1dvcmRDb3VudCAmJiBzaG93Q2hhckNvdW50KSB7XHJcbiAgICAgIHJldHVybiBgJHt0aGlzLmdldFdvcmRzQ291bnQoKX0gd29yZHMsICR7dGhpcy5jb250cm9sLnZhbHVlLmxlbmd0aH0gY2hhcmFjdGVyc2A7XHJcbiAgICB9IGVsc2UgaWYgKHNob3dXb3JkQ291bnQpIHtcclxuICAgICAgcmV0dXJuIGAke3RoaXMuZ2V0V29yZHNDb3VudCgpfSB3b3Jkc2A7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gYCR7dGhpcy5jb250cm9sLnZhbHVlLmxlbmd0aH0gY2hhcmFjdGVyc2A7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRXb3Jkc0NvdW50KCkge1xyXG4gICAgY29uc3QgbWF0Y2hlcyA9IHRoaXMuY29udHJvbC52YWx1ZSA/IHRoaXMuY29udHJvbC52YWx1ZS5tYXRjaCgvW1xcd1xcZOKAmSctXSsvZ2kpIDogW107XHJcbiAgICByZXR1cm4gbWF0Y2hlcyA/IG1hdGNoZXMubGVuZ3RoIDogMDtcclxuICB9XHJcblxyXG4gIGdldEZvcm1GaWVsZEFwcGVhcmFuY2UoKSB7XHJcbiAgICBjb25zdCBhcHBlYXJhbmNlcyA9IFsnbGVnYWN5JywgJ3N0YW5kYXJkJywgJ2ZpbGwnLCAnb3V0bGluZSddO1xyXG4gICAgY29uc3QgYXBwZWFyYW5jZSA9IHRoaXMuaW5zdGFuY2UuY29tcG9uZW50LmFwcGVhcmFuY2UgPyB0aGlzLmluc3RhbmNlLmNvbXBvbmVudC5hcHBlYXJhbmNlLnRvTG93ZXJDYXNlKCkgOiAnJztcclxuICAgIHJldHVybiBhcHBlYXJhbmNlcy5pbmNsdWRlcyhhcHBlYXJhbmNlKSA/IGFwcGVhcmFuY2UgOiAnb3V0bGluZSc7XHJcbiAgfVxyXG5cclxuICBpc0Vycm9yKCkge1xyXG4gICAgaWYgKHRoaXMuaW5zdGFuY2UuZXJyb3IpIHtcclxuICAgICAgdGhpcy5jb250cm9sLnNldEVycm9ycyh0aGlzLmluc3RhbmNlLmNvbXBvbmVudC52YWxpZGF0ZSk7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldEVycm9yTWVzc2FnZSgpIHtcclxuICAgIGlmICh0aGlzLmluc3RhbmNlLmVycm9yICYmIHRoaXMuaW5zdGFuY2UuZXJyb3IubWVzc2FnZXMpIHtcclxuICAgICAgY29uc3QgeyBtZXNzYWdlcyB9ID0gdGhpcy5pbnN0YW5jZS5lcnJvcjtcclxuXHJcbiAgICAgIGlmIChtZXNzYWdlcy5sZW5ndGgpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IG1zZyBvZiBtZXNzYWdlcykge1xyXG4gICAgICAgICAgLy90aGlzLmNvbnRyb2wuaGFzRXJyb3IobXNnLmNvbnRleHQudmFsaWRhdG9yKVxyXG4gICAgICAgICAgaWYgKHRoaXMuaW5zdGFuY2UudHlwZSA9PSAncGhvbmVOdW1iZXInIHx8IHRoaXMuaW5zdGFuY2UudHlwZSA9PSAnZW1haWwnKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29udHJvbEhhc0Vycm9yID0gdHJ1ZTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29udHJvbEhhc0Vycm9yID0gdGhpcy5jb250cm9sLmhhc0Vycm9yKG1zZy5jb250ZXh0LnZhbGlkYXRvcilcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChtc2cuY29udGV4dCAmJiB0aGlzLmNvbnRyb2xIYXNFcnJvcikge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5pbnN0YW5jZSAmJiB0aGlzLmluc3RhbmNlLnBhcmVudCAmJiB0aGlzLmluc3RhbmNlLnBhcmVudC5fZGF0YSkge1xyXG4gICAgICAgICAgICAgIGlmICh0aGlzLmluc3RhbmNlLnBhcmVudC5fZGF0YS5zdWJtaXQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbC5tYXJrQWxsQXNUb3VjaGVkKCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmluc3RhbmNlLmVycm9yID8gdGhpcy5pbnN0YW5jZS5lcnJvci5tZXNzYWdlIDogJyc7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblRleHRGaWVsZENvbXBvbmVudC5NYXRlcmlhbENvbXBvbmVudCA9IE1hdGVyaWFsVGV4dGZpZWxkQ29tcG9uZW50O1xyXG5leHBvcnQgeyBUZXh0RmllbGRDb21wb25lbnQgfTtcclxuIl19
@@ -1,205 +0,0 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import { FormControl } from '@angular/forms';
3
- import { MaterialComponent } from '../MaterialComponent';
4
- import TimeComponent from 'formiojs/components/time/Time.js';
5
- import * as moment_ from 'moment';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/common";
8
- import * as i2 from "@angular/forms";
9
- import * as i3 from "@angular/material/form-field";
10
- import * as i4 from "../formio-form-field/formio-form-field.component";
11
- import * as i5 from "../label/label.component";
12
- export class MaterialTimeComponent extends MaterialComponent {
13
- constructor() {
14
- super(...arguments);
15
- this.disabled = false;
16
- this.period = 'AM';
17
- this.hourControl = new FormControl();
18
- this.minuteControl = new FormControl();
19
- this.secondControl = new FormControl();
20
- this.selectedEvent = new EventEmitter();
21
- this.hourStep = 1;
22
- this.minuteStep = 1;
23
- this.secondStep = 1;
24
- this.renderElementOnly = false;
25
- }
26
- setDisabled(disabled) {
27
- if (disabled) {
28
- this.hourControl.disable();
29
- this.minuteControl.disable();
30
- this.secondControl.disable();
31
- }
32
- }
33
- get dataFormat() {
34
- let format = this.instance.component.dataFormat;
35
- format = format ? format : 'HH:mm';
36
- return format;
37
- }
38
- setInstance(instance) {
39
- super.setInstance(instance);
40
- // this.control.setValue('00:00:00');
41
- this.onChange();
42
- }
43
- onChange() {
44
- const hours = this.hourControl.value;
45
- const minutes = this.minuteControl.value || '00';
46
- const seconds = this.secondControl.value || '';
47
- const rawValue = `${hours || '00'}:${minutes}${seconds ? ':' + seconds : ''} ${this.period}`;
48
- let value = this.getTwentyFourHourTime(rawValue);
49
- if (!hours) {
50
- value = this.instance.emptyValue;
51
- }
52
- this.control.setValue(value);
53
- if (this.instance) {
54
- super.onChange();
55
- }
56
- this.selectedEvent.emit(this.control);
57
- }
58
- setValue(value) {
59
- if (!value) {
60
- return;
61
- }
62
- super.setValue(value);
63
- const [hourValue, minuteValue, period] = value.split(':');
64
- this.hourControl.setValue(hourValue);
65
- this.minuteControl.setValue(minuteValue);
66
- // fix for default value with seconds instead of period
67
- this.period = period === ('AM' || 'PM') ? period : this.period;
68
- }
69
- getTwentyFourHourTime(amPmString) {
70
- const moment = moment_;
71
- return moment(amPmString, ['h:mm:ss A']).format(this.dataFormat);
72
- }
73
- changePeriod() {
74
- this.period = this.period === 'AM' ? 'PM' : 'AM';
75
- this.onChange();
76
- }
77
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MaterialTimeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
78
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MaterialTimeComponent, selector: "mat-formio-time", inputs: { hourStep: "hourStep", minuteStep: "minuteStep", secondStep: "secondStep", renderElementOnly: "renderElementOnly" }, outputs: { selectedEvent: "selectedEvent" }, usesInheritance: true, ngImport: i0, template: `
79
- <mat-formio-form-field
80
- [instance]="instance"
81
- [componentTemplate]="componentTemplate"
82
- [renderElementOnly]="renderElementOnly"
83
- ></mat-formio-form-field>
84
- <ng-template #componentTemplate let-hasLabel>
85
- <mat-label style="width:100%;" *ngIf="hasLabel">
86
- <span [instance]="instance" matFormioLabel></span>
87
- </mat-label>
88
-
89
- <div style="display: block">
90
- <div style="display:flex; flex-direction:row; gap:5%;">
91
- <input
92
- [formControl]="hourControl"
93
- [step]="hourStep"
94
- [min]="0"
95
- [max]="12"
96
- type="number"
97
- style="flex: 0 1 25%;"
98
- (input)="onChange()"
99
- >
100
- <input
101
- [formControl]="minuteControl"
102
- [step]="minuteStep"
103
- [min]="0"
104
- [max]="59"
105
- type="number"
106
- style="flex: 0 1 25%;"
107
- (input)="onChange()"
108
- >
109
- <input
110
- [formControl]="secondControl"
111
- [step]="secondStep"
112
- [min]="0"
113
- [max]="59"
114
- type="number"
115
- style="flex: 0 1 25%;"
116
- (input)="onChange()"
117
- *ngIf="instance?.component?.dataFormat === 'HH:mm:ss' ||
118
- instance?.component?.dataFormat === 'HH:mm:ss.SSS'"
119
- >
120
- <button
121
- [disabled]="instance?.component?.disabled"
122
- style="flex: 0 1 25%;"
123
- (click)="changePeriod()"
124
- >
125
- {{period}}
126
- </button>
127
- </div>
128
- <mat-error *ngIf="instance.error">{{ instance.error.message }}</mat-error>
129
- </div>
130
- </ng-template>
131
- `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.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: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i2.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i4.FormioFormFieldComponent, selector: "mat-formio-form-field", inputs: ["labelTemplate", "renderTopLabel", "showDescription", "renderElementOnly", "instance", "componentTemplate"] }, { kind: "component", type: i5.LabelComponent, selector: "span[matFormioLabel]", inputs: ["instance"] }] }); }
132
- }
133
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MaterialTimeComponent, decorators: [{
134
- type: Component,
135
- args: [{
136
- selector: 'mat-formio-time',
137
- template: `
138
- <mat-formio-form-field
139
- [instance]="instance"
140
- [componentTemplate]="componentTemplate"
141
- [renderElementOnly]="renderElementOnly"
142
- ></mat-formio-form-field>
143
- <ng-template #componentTemplate let-hasLabel>
144
- <mat-label style="width:100%;" *ngIf="hasLabel">
145
- <span [instance]="instance" matFormioLabel></span>
146
- </mat-label>
147
-
148
- <div style="display: block">
149
- <div style="display:flex; flex-direction:row; gap:5%;">
150
- <input
151
- [formControl]="hourControl"
152
- [step]="hourStep"
153
- [min]="0"
154
- [max]="12"
155
- type="number"
156
- style="flex: 0 1 25%;"
157
- (input)="onChange()"
158
- >
159
- <input
160
- [formControl]="minuteControl"
161
- [step]="minuteStep"
162
- [min]="0"
163
- [max]="59"
164
- type="number"
165
- style="flex: 0 1 25%;"
166
- (input)="onChange()"
167
- >
168
- <input
169
- [formControl]="secondControl"
170
- [step]="secondStep"
171
- [min]="0"
172
- [max]="59"
173
- type="number"
174
- style="flex: 0 1 25%;"
175
- (input)="onChange()"
176
- *ngIf="instance?.component?.dataFormat === 'HH:mm:ss' ||
177
- instance?.component?.dataFormat === 'HH:mm:ss.SSS'"
178
- >
179
- <button
180
- [disabled]="instance?.component?.disabled"
181
- style="flex: 0 1 25%;"
182
- (click)="changePeriod()"
183
- >
184
- {{period}}
185
- </button>
186
- </div>
187
- <mat-error *ngIf="instance.error">{{ instance.error.message }}</mat-error>
188
- </div>
189
- </ng-template>
190
- `
191
- }]
192
- }], propDecorators: { selectedEvent: [{
193
- type: Output
194
- }], hourStep: [{
195
- type: Input
196
- }], minuteStep: [{
197
- type: Input
198
- }], secondStep: [{
199
- type: Input
200
- }], renderElementOnly: [{
201
- type: Input
202
- }] } });
203
- TimeComponent.MaterialComponent = MaterialTimeComponent;
204
- export { TimeComponent };
205
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmVuZGVyLW1hdGVyaWFsLWZvcm1zL3NyYy9saWIvY29tcG9uZW50cy90aW1lL3RpbWUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sYUFBYSxNQUFNLGtDQUFrQyxDQUFDO0FBQzdELE9BQU8sS0FBSyxPQUFPLE1BQU0sUUFBUSxDQUFDOzs7Ozs7O0FBMkRsQyxNQUFNLE9BQU8scUJBQXNCLFNBQVEsaUJBQWlCO0lBMUQ1RDs7UUEyRFMsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixXQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ2QsZ0JBQVcsR0FBZ0IsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUM3QyxrQkFBYSxHQUFnQixJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQy9DLGtCQUFhLEdBQWdCLElBQUksV0FBVyxFQUFFLENBQUM7UUFDNUMsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ3pDLGFBQVEsR0FBRyxDQUFDLENBQUM7UUFDYixlQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsZUFBVSxHQUFHLENBQUMsQ0FBQztRQUNmLHNCQUFpQixHQUFHLEtBQUssQ0FBQztLQTZEcEM7SUEzREMsV0FBVyxDQUFDLFFBQVE7UUFDbEIsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNiLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUs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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxRFQ7OzRGQUdVLHFCQUFxQjtrQkExRGpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFEVDtpQkFDRjs4QkFRVyxhQUFhO3NCQUF0QixNQUFNO2dCQUNFLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSzs7QUErRFIsYUFBYSxDQUFDLGlCQUFpQixHQUFHLHFCQUFxQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxhQUFhLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0ZXJpYWxDb21wb25lbnQgfSBmcm9tICcuLi9NYXRlcmlhbENvbXBvbmVudCc7XHJcbmltcG9ydCBUaW1lQ29tcG9uZW50IGZyb20gJ2Zvcm1pb2pzL2NvbXBvbmVudHMvdGltZS9UaW1lLmpzJztcclxuaW1wb3J0ICogYXMgbW9tZW50XyBmcm9tICdtb21lbnQnO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ21hdC1mb3JtaW8tdGltZScsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxtYXQtZm9ybWlvLWZvcm0tZmllbGRcclxuICAgICAgW2luc3RhbmNlXT1cImluc3RhbmNlXCJcclxuICAgICAgW2NvbXBvbmVudFRlbXBsYXRlXT1cImNvbXBvbmVudFRlbXBsYXRlXCJcclxuICAgICAgW3JlbmRlckVsZW1lbnRPbmx5XT1cInJlbmRlckVsZW1lbnRPbmx5XCJcclxuICAgID48L21hdC1mb3JtaW8tZm9ybS1maWVsZD5cclxuICAgIDxuZy10ZW1wbGF0ZSAjY29tcG9uZW50VGVtcGxhdGUgbGV0LWhhc0xhYmVsPlxyXG4gICAgICA8bWF0LWxhYmVsIHN0eWxlPVwid2lkdGg6MTAwJTtcIiAqbmdJZj1cImhhc0xhYmVsXCI+XHJcbiAgICAgICAgPHNwYW4gW2luc3RhbmNlXT1cImluc3RhbmNlXCIgbWF0Rm9ybWlvTGFiZWw+PC9zcGFuPlxyXG4gICAgICA8L21hdC1sYWJlbD5cclxuXHJcbiAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBibG9ja1wiPlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OmZsZXg7IGZsZXgtZGlyZWN0aW9uOnJvdzsgZ2FwOjUlO1wiPlxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJob3VyQ29udHJvbFwiXHJcbiAgICAgICAgICAgIFtzdGVwXT1cImhvdXJTdGVwXCJcclxuICAgICAgICAgICAgW21pbl09XCIwXCJcclxuICAgICAgICAgICAgW21heF09XCIxMlwiXHJcbiAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxyXG4gICAgICAgICAgICBzdHlsZT1cImZsZXg6IDAgMSAyNSU7XCJcclxuICAgICAgICAgICAgKGlucHV0KT1cIm9uQ2hhbmdlKClcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJtaW51dGVDb250cm9sXCJcclxuICAgICAgICAgICAgW3N0ZXBdPVwibWludXRlU3RlcFwiXHJcbiAgICAgICAgICAgIFttaW5dPVwiMFwiXHJcbiAgICAgICAgICAgIFttYXhdPVwiNTlcIlxyXG4gICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgc3R5bGU9XCJmbGV4OiAwIDEgMjUlO1wiXHJcbiAgICAgICAgICAgIChpbnB1dCk9XCJvbkNoYW5nZSgpXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwic2Vjb25kQ29udHJvbFwiXHJcbiAgICAgICAgICAgIFtzdGVwXT1cInNlY29uZFN0ZXBcIlxyXG4gICAgICAgICAgICBbbWluXT1cIjBcIlxyXG4gICAgICAgICAgICBbbWF4XT1cIjU5XCJcclxuICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXHJcbiAgICAgICAgICAgIHN0eWxlPVwiZmxleDogMCAxIDI1JTtcIlxyXG4gICAgICAgICAgICAoaW5wdXQpPVwib25DaGFuZ2UoKVwiXHJcbiAgICAgICAgICAgICpuZ0lmPVwiaW5zdGFuY2U/LmNvbXBvbmVudD8uZGF0YUZvcm1hdCA9PT0gJ0hIOm1tOnNzJyB8fFxyXG4gICAgICAgICAgICAgaW5zdGFuY2U/LmNvbXBvbmVudD8uZGF0YUZvcm1hdCA9PT0gJ0hIOm1tOnNzLlNTUydcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiaW5zdGFuY2U/LmNvbXBvbmVudD8uZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICBzdHlsZT1cImZsZXg6IDAgMSAyNSU7XCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cImNoYW5nZVBlcmlvZCgpXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge3twZXJpb2R9fVxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImluc3RhbmNlLmVycm9yXCI+e3sgaW5zdGFuY2UuZXJyb3IubWVzc2FnZSB9fTwvbWF0LWVycm9yPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgYFxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIE1hdGVyaWFsVGltZUNvbXBvbmVudCBleHRlbmRzIE1hdGVyaWFsQ29tcG9uZW50IHtcclxuICBwdWJsaWMgZGlzYWJsZWQgPSBmYWxzZTtcclxuICBwdWJsaWMgcGVyaW9kID0gJ0FNJztcclxuICBwdWJsaWMgaG91ckNvbnRyb2w6IEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XHJcbiAgcHVibGljIG1pbnV0ZUNvbnRyb2w6IEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XHJcbiAgcHVibGljIHNlY29uZENvbnRyb2w6IEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XHJcbiAgQE91dHB1dCgpIHNlbGVjdGVkRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBASW5wdXQoKSBob3VyU3RlcCA9IDE7XHJcbiAgQElucHV0KCkgbWludXRlU3RlcCA9IDE7XHJcbiAgQElucHV0KCkgc2Vjb25kU3RlcCA9IDE7XHJcbiAgQElucHV0KCkgcmVuZGVyRWxlbWVudE9ubHkgPSBmYWxzZTtcclxuXHJcbiAgc2V0RGlzYWJsZWQoZGlzYWJsZWQpIHtcclxuICAgIGlmIChkaXNhYmxlZCkge1xyXG4gICAgICB0aGlzLmhvdXJDb250cm9sLmRpc2FibGUoKTtcclxuICAgICAgdGhpcy5taW51dGVDb250cm9sLmRpc2FibGUoKTtcclxuICAgICAgdGhpcy5zZWNvbmRDb250cm9sLmRpc2FibGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldCBkYXRhRm9ybWF0KCkge1xyXG4gICAgbGV0IGZvcm1hdCA9IHRoaXMuaW5zdGFuY2UuY29tcG9uZW50LmRhdGFGb3JtYXQ7XHJcbiAgICBmb3JtYXQgPSBmb3JtYXQgPyBmb3JtYXQgOiAnSEg6bW0nO1xyXG4gICAgcmV0dXJuIGZvcm1hdDtcclxuICB9XHJcblxyXG4gIHNldEluc3RhbmNlKGluc3RhbmNlKSB7XHJcbiAgICBzdXBlci5zZXRJbnN0YW5jZShpbnN0YW5jZSk7XHJcbiAgICAvLyB0aGlzLmNvbnRyb2wuc2V0VmFsdWUoJzAwOjAwOjAwJyk7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKCk7XHJcbiAgfVxyXG5cclxuICBvbkNoYW5nZSgpIHtcclxuICAgIGNvbnN0IGhvdXJzID0gdGhpcy5ob3VyQ29udHJvbC52YWx1ZTtcclxuICAgIGNvbnN0IG1pbnV0ZXMgPSB0aGlzLm1pbnV0ZUNvbnRyb2wudmFsdWUgfHwgJzAwJztcclxuICAgIGNvbnN0IHNlY29uZHMgPSB0aGlzLnNlY29uZENvbnRyb2wudmFsdWUgfHwgJyc7XHJcbiAgICBjb25zdCByYXdWYWx1ZSA9IGAke2hvdXJzIHx8ICcwMCd9OiR7bWludXRlc30ke3NlY29uZHMgPyAnOicgKyBzZWNvbmRzIDogJyd9ICR7dGhpcy5wZXJpb2R9YDtcclxuICAgIGxldCB2YWx1ZSA9IHRoaXMuZ2V0VHdlbnR5Rm91ckhvdXJUaW1lKHJhd1ZhbHVlKTtcclxuXHJcbiAgICBpZiAoIWhvdXJzKSB7XHJcbiAgICAgIHZhbHVlID0gdGhpcy5pbnN0YW5jZS5lbXB0eVZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZSh2YWx1ZSk7XHJcbiAgICBpZiAodGhpcy5pbnN0YW5jZSkge1xyXG4gICAgICBzdXBlci5vbkNoYW5nZSgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZWxlY3RlZEV2ZW50LmVtaXQodGhpcy5jb250cm9sKTtcclxuICB9XHJcblxyXG4gIHNldFZhbHVlKHZhbHVlKSB7XHJcbiAgICBpZiAoIXZhbHVlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHN1cGVyLnNldFZhbHVlKHZhbHVlKTtcclxuICAgIGNvbnN0IFtob3VyVmFsdWUsIG1pbnV0ZVZhbHVlLCBwZXJpb2RdID0gdmFsdWUuc3BsaXQoJzonKTtcclxuICAgIHRoaXMuaG91ckNvbnRyb2wuc2V0VmFsdWUoaG91clZhbHVlKTtcclxuICAgIHRoaXMubWludXRlQ29udHJvbC5zZXRWYWx1ZShtaW51dGVWYWx1ZSk7XHJcbiAgICAvLyBmaXggZm9yIGRlZmF1bHQgdmFsdWUgd2l0aCBzZWNvbmRzIGluc3RlYWQgb2YgcGVyaW9kXHJcbiAgICB0aGlzLnBlcmlvZCA9IHBlcmlvZCA9PT0gKCdBTScgfHwgJ1BNJykgPyBwZXJpb2QgOiB0aGlzLnBlcmlvZDtcclxuICB9XHJcblxyXG4gIGdldFR3ZW50eUZvdXJIb3VyVGltZShhbVBtU3RyaW5nKSB7XHJcbiAgICBjb25zdCBtb21lbnQgPSBtb21lbnRfO1xyXG4gICAgcmV0dXJuIG1vbWVudChhbVBtU3RyaW5nLCBbJ2g6bW06c3MgQSddKS5mb3JtYXQodGhpcy5kYXRhRm9ybWF0KTtcclxuICB9XHJcblxyXG4gIGNoYW5nZVBlcmlvZCgpIHtcclxuICAgIHRoaXMucGVyaW9kID0gdGhpcy5wZXJpb2QgPT09ICdBTScgPyAnUE0nIDogJ0FNJztcclxuICAgIHRoaXMub25DaGFuZ2UoKTtcclxuICB9XHJcbn1cclxuXHJcblRpbWVDb21wb25lbnQuTWF0ZXJpYWxDb21wb25lbnQgPSBNYXRlcmlhbFRpbWVDb21wb25lbnQ7XHJcbmV4cG9ydCB7IFRpbWVDb21wb25lbnQgfTtcclxuIl19