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
@@ -0,0 +1,102 @@
1
+ import { Component } from '@angular/core';
2
+ import { MaterialRadioComponent } from '../radio/radio.component';
3
+ import SelectBoxesComponent from 'formiojs/components/selectboxes/SelectBoxes.js';
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/form-field";
8
+ import * as i4 from "@angular/material/checkbox";
9
+ import * as i5 from "@angular/flex-layout/flex";
10
+ import * as i6 from "../formio-form-field/formio-form-field.component";
11
+ import * as i7 from "../label/label.component";
12
+ export class MaterialSelectBoxesComponent extends MaterialRadioComponent {
13
+ constructor() {
14
+ super(...arguments);
15
+ this.value = {};
16
+ this.disabled = false;
17
+ }
18
+ setInstance(instance) {
19
+ instance.component.values.forEach((option) => {
20
+ this.value[option.value] = false;
21
+ });
22
+ super.setInstance(instance);
23
+ }
24
+ getValue() {
25
+ return this.value;
26
+ }
27
+ setValue(value) {
28
+ const normalizedValue = this.instance.normalizeValue(value);
29
+ for (const prop in normalizedValue) {
30
+ if (normalizedValue.hasOwnProperty(prop)) {
31
+ this.value[prop] = normalizedValue[prop];
32
+ }
33
+ }
34
+ }
35
+ setDisabled(disabled) {
36
+ this.disabled = !!disabled;
37
+ }
38
+ onChange() {
39
+ this.instance.updateValue(this.getValue(), { modified: true });
40
+ this.instance.triggerChange({ modified: true });
41
+ }
42
+ }
43
+ MaterialSelectBoxesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialSelectBoxesComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
44
+ MaterialSelectBoxesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: MaterialSelectBoxesComponent, selector: "mat-formio-selectboxes", usesInheritance: true, ngImport: i0, template: `
45
+ <mat-formio-form-field [instance]="instance" [componentTemplate]="componentTemplate"></mat-formio-form-field>
46
+ <ng-template #componentTemplate let-hasLabel>
47
+ <div fxLayout="column">
48
+ <mat-label *ngIf="hasLabel">
49
+ <span [instance]="instance" matFormioLabel></span>
50
+ </mat-label>
51
+ <div
52
+ fxFlexOffset="10px"
53
+ fxLayout="{{ getLayout() }}"
54
+ fxLayoutGap="10px"
55
+ >
56
+ <mat-checkbox
57
+ *ngFor="let option of instance.component.values"
58
+ (change)="onChange()"
59
+ [(ngModel)]="value[option.value]"
60
+ [disabled]="disabled"
61
+ >
62
+ {{ option.label }}
63
+ </mat-checkbox>
64
+ <mat-error *ngIf="instance.error">{{ instance.error.message }}</mat-error>
65
+ </div>
66
+ </div>
67
+ </ng-template>
68
+ `, 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.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "component", type: i4.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i5.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i5.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i5.DefaultFlexOffsetDirective, selector: " [fxFlexOffset], [fxFlexOffset.xs], [fxFlexOffset.sm], [fxFlexOffset.md], [fxFlexOffset.lg], [fxFlexOffset.xl], [fxFlexOffset.lt-sm], [fxFlexOffset.lt-md], [fxFlexOffset.lt-lg], [fxFlexOffset.lt-xl], [fxFlexOffset.gt-xs], [fxFlexOffset.gt-sm], [fxFlexOffset.gt-md], [fxFlexOffset.gt-lg]", inputs: ["fxFlexOffset", "fxFlexOffset.xs", "fxFlexOffset.sm", "fxFlexOffset.md", "fxFlexOffset.lg", "fxFlexOffset.xl", "fxFlexOffset.lt-sm", "fxFlexOffset.lt-md", "fxFlexOffset.lt-lg", "fxFlexOffset.lt-xl", "fxFlexOffset.gt-xs", "fxFlexOffset.gt-sm", "fxFlexOffset.gt-md", "fxFlexOffset.gt-lg"] }, { 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"] }] });
69
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialSelectBoxesComponent, decorators: [{
70
+ type: Component,
71
+ args: [{
72
+ selector: 'mat-formio-selectboxes',
73
+ template: `
74
+ <mat-formio-form-field [instance]="instance" [componentTemplate]="componentTemplate"></mat-formio-form-field>
75
+ <ng-template #componentTemplate let-hasLabel>
76
+ <div fxLayout="column">
77
+ <mat-label *ngIf="hasLabel">
78
+ <span [instance]="instance" matFormioLabel></span>
79
+ </mat-label>
80
+ <div
81
+ fxFlexOffset="10px"
82
+ fxLayout="{{ getLayout() }}"
83
+ fxLayoutGap="10px"
84
+ >
85
+ <mat-checkbox
86
+ *ngFor="let option of instance.component.values"
87
+ (change)="onChange()"
88
+ [(ngModel)]="value[option.value]"
89
+ [disabled]="disabled"
90
+ >
91
+ {{ option.label }}
92
+ </mat-checkbox>
93
+ <mat-error *ngIf="instance.error">{{ instance.error.message }}</mat-error>
94
+ </div>
95
+ </div>
96
+ </ng-template>
97
+ `
98
+ }]
99
+ }] });
100
+ SelectBoxesComponent.MaterialComponent = MaterialSelectBoxesComponent;
101
+ export { SelectBoxesComponent };
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0Ym94ZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJlbmRlci1tYXRlcmlhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0Ym94ZXMvc2VsZWN0Ym94ZXMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbEUsT0FBTyxvQkFBb0IsTUFBTSxnREFBZ0QsQ0FBQzs7Ozs7Ozs7O0FBNkJsRixNQUFNLE9BQU8sNEJBQTZCLFNBQVEsc0JBQXNCO0lBNUJ4RTs7UUE2QlMsVUFBSyxHQUFRLEVBQUUsQ0FBQztRQUNoQixhQUFRLEdBQUcsS0FBSyxDQUFDO0tBOEJ6QjtJQTVCQyxXQUFXLENBQUMsUUFBUTtRQUNsQixRQUFRLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUMzQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUM7UUFDSCxLQUFLLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBSztRQUNaLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVELEtBQUssTUFBTSxJQUFJLElBQUksZUFBZSxFQUFFO1lBQ2xDLElBQUksZUFBZSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDeEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDMUM7U0FDRjtJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsUUFBUTtRQUNsQixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUM7SUFDN0IsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO0lBQ2hELENBQUM7O3lIQS9CVSw0QkFBNEI7NkdBQTVCLDRCQUE0QixxRkExQjdCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F3QlQ7MkZBRVUsNEJBQTRCO2tCQTVCeEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsd0JBQXdCO29CQUNsQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXdCVDtpQkFDRjs7QUFrQ0Qsb0JBQW9CLENBQUMsaUJBQWlCLEdBQUcsNEJBQTRCLENBQUM7QUFDdEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0ZXJpYWxSYWRpb0NvbXBvbmVudCB9IGZyb20gJy4uL3JhZGlvL3JhZGlvLmNvbXBvbmVudCc7XHJcbmltcG9ydCBTZWxlY3RCb3hlc0NvbXBvbmVudCBmcm9tICdmb3JtaW9qcy9jb21wb25lbnRzL3NlbGVjdGJveGVzL1NlbGVjdEJveGVzLmpzJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdtYXQtZm9ybWlvLXNlbGVjdGJveGVzJyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPG1hdC1mb3JtaW8tZm9ybS1maWVsZCBbaW5zdGFuY2VdPVwiaW5zdGFuY2VcIiBbY29tcG9uZW50VGVtcGxhdGVdPVwiY29tcG9uZW50VGVtcGxhdGVcIj48L21hdC1mb3JtaW8tZm9ybS1maWVsZD5cclxuICAgIDxuZy10ZW1wbGF0ZSAjY29tcG9uZW50VGVtcGxhdGUgbGV0LWhhc0xhYmVsPlxyXG4gICAgICA8ZGl2IGZ4TGF5b3V0PVwiY29sdW1uXCI+XHJcbiAgICAgICAgPG1hdC1sYWJlbCAqbmdJZj1cImhhc0xhYmVsXCI+XHJcbiAgICAgICAgICA8c3BhbiBbaW5zdGFuY2VdPVwiaW5zdGFuY2VcIiBtYXRGb3JtaW9MYWJlbD48L3NwYW4+XHJcbiAgICAgICAgPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgZnhGbGV4T2Zmc2V0PVwiMTBweFwiXHJcbiAgICAgICAgICAgICAgICBmeExheW91dD1cInt7IGdldExheW91dCgpIH19XCJcclxuICAgICAgICAgICAgICAgIGZ4TGF5b3V0R2FwPVwiMTBweFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG1hdC1jaGVja2JveFxyXG4gICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGluc3RhbmNlLmNvbXBvbmVudC52YWx1ZXNcIlxyXG4gICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uQ2hhbmdlKClcIlxyXG4gICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInZhbHVlW29wdGlvbi52YWx1ZV1cIlxyXG4gICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICB7eyBvcHRpb24ubGFiZWwgfX1cclxuICAgICAgICAgIDwvbWF0LWNoZWNrYm94PlxyXG4gICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImluc3RhbmNlLmVycm9yXCI+e3sgaW5zdGFuY2UuZXJyb3IubWVzc2FnZSB9fTwvbWF0LWVycm9yPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgYFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWF0ZXJpYWxTZWxlY3RCb3hlc0NvbXBvbmVudCBleHRlbmRzIE1hdGVyaWFsUmFkaW9Db21wb25lbnQge1xyXG4gIHB1YmxpYyB2YWx1ZTogYW55ID0ge307XHJcbiAgcHVibGljIGRpc2FibGVkID0gZmFsc2U7XHJcblxyXG4gIHNldEluc3RhbmNlKGluc3RhbmNlKSB7XHJcbiAgICBpbnN0YW5jZS5jb21wb25lbnQudmFsdWVzLmZvckVhY2goKG9wdGlvbikgPT4ge1xyXG4gICAgICB0aGlzLnZhbHVlW29wdGlvbi52YWx1ZV0gPSBmYWxzZTtcclxuICAgIH0pO1xyXG4gICAgc3VwZXIuc2V0SW5zdGFuY2UoaW5zdGFuY2UpO1xyXG4gIH1cclxuXHJcbiAgZ2V0VmFsdWUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy52YWx1ZTtcclxuICB9XHJcblxyXG4gIHNldFZhbHVlKHZhbHVlKSB7XHJcbiAgICBjb25zdCBub3JtYWxpemVkVmFsdWUgPSB0aGlzLmluc3RhbmNlLm5vcm1hbGl6ZVZhbHVlKHZhbHVlKTtcclxuICAgIGZvciAoY29uc3QgcHJvcCBpbiBub3JtYWxpemVkVmFsdWUpIHtcclxuICAgICAgaWYgKG5vcm1hbGl6ZWRWYWx1ZS5oYXNPd25Qcm9wZXJ0eShwcm9wKSkge1xyXG4gICAgICAgIHRoaXMudmFsdWVbcHJvcF0gPSBub3JtYWxpemVkVmFsdWVbcHJvcF07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldERpc2FibGVkKGRpc2FibGVkKSB7XHJcbiAgICB0aGlzLmRpc2FibGVkID0gISFkaXNhYmxlZDtcclxuICB9XHJcblxyXG4gIG9uQ2hhbmdlKCkge1xyXG4gICAgdGhpcy5pbnN0YW5jZS51cGRhdGVWYWx1ZSh0aGlzLmdldFZhbHVlKCksIHttb2RpZmllZDogdHJ1ZX0pO1xyXG4gICAgdGhpcy5pbnN0YW5jZS50cmlnZ2VyQ2hhbmdlKHttb2RpZmllZDogdHJ1ZX0pO1xyXG4gIH1cclxufVxyXG5TZWxlY3RCb3hlc0NvbXBvbmVudC5NYXRlcmlhbENvbXBvbmVudCA9IE1hdGVyaWFsU2VsZWN0Qm94ZXNDb21wb25lbnQ7XHJcbmV4cG9ydCB7IFNlbGVjdEJveGVzQ29tcG9uZW50IH07XHJcbiJdfQ==
@@ -0,0 +1,103 @@
1
+ import { Component, ViewChild } from '@angular/core';
2
+ import { MaterialComponent } from '../MaterialComponent';
3
+ import SignatureComponent from 'formiojs/components/signature/Signature.js';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ import * as i2 from "@angular/material/form-field";
7
+ import * as i3 from "@angular/material/button";
8
+ import * as i4 from "@angular/material/icon";
9
+ import * as i5 from "@angular/flex-layout/flex";
10
+ import * as i6 from "@angular/flex-layout/extended";
11
+ import * as i7 from "../formio-form-field/formio-form-field.component";
12
+ import * as i8 from "../label/label.component";
13
+ export class MaterialSignatureComponent extends MaterialComponent {
14
+ renderComponents() {
15
+ if (this.signatureElement) {
16
+ this.instance.attach(this.signatureElement.nativeElement);
17
+ }
18
+ }
19
+ ngAfterViewInit() {
20
+ this.renderComponents();
21
+ }
22
+ }
23
+ MaterialSignatureComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialSignatureComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
24
+ MaterialSignatureComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: MaterialSignatureComponent, selector: "mat-formio-signature", viewQueries: [{ propertyName: "signatureElement", first: true, predicate: ["signature"], descendants: true }], usesInheritance: true, ngImport: i0, template: `
25
+ <mat-formio-form-field [instance]="instance" [componentTemplate]="componentTemplate"></mat-formio-form-field>
26
+ <ng-template #componentTemplate let-hasLabel>
27
+ <div #signature>
28
+
29
+ <mat-label *ngIf="hasLabel">
30
+ <span [instance]="instance" matFormioLabel></span>
31
+ </mat-label>
32
+
33
+ <button mat-icon-button [ngStyle]="{position: 'absolute'}" ref="refresh">
34
+ <mat-icon>refresh</mat-icon>
35
+ </button>
36
+
37
+ <div class="signature-pad-body"
38
+ [ngStyle]="{width: instance.component.width, height: instance.component.height, padding: 0, margin: 0}"
39
+ [attr.tabindex]="instance.component.tabindex || 0"
40
+ ref="padBody"
41
+ >
42
+ <canvas class="signature-pad-canvas"
43
+ [attr.height]="instance.component.height"
44
+ ref="canvas"
45
+ ></canvas>
46
+ <img fxFlexFill [ngStyle]="{display: 'none' }" ref="signatureImage">
47
+ </div>
48
+ <div *ngIf="instance.component.footer"
49
+ class="signature-pad-footer"
50
+ fxLayout="row"
51
+ fxLayoutAlign="center center"
52
+ >
53
+ <mat-hint>{{ instance.t(instance.component.footer) }}</mat-hint>
54
+ </div>
55
+ </div>
56
+ </ng-template>
57
+ `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "component", type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i5.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i5.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i5.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "directive", type: i6.DefaultStyleDirective, selector: " [ngStyle], [ngStyle.xs], [ngStyle.sm], [ngStyle.md], [ngStyle.lg], [ngStyle.xl], [ngStyle.lt-sm], [ngStyle.lt-md], [ngStyle.lt-lg], [ngStyle.lt-xl], [ngStyle.gt-xs], [ngStyle.gt-sm], [ngStyle.gt-md], [ngStyle.gt-lg]", inputs: ["ngStyle", "ngStyle.xs", "ngStyle.sm", "ngStyle.md", "ngStyle.lg", "ngStyle.xl", "ngStyle.lt-sm", "ngStyle.lt-md", "ngStyle.lt-lg", "ngStyle.lt-xl", "ngStyle.gt-xs", "ngStyle.gt-sm", "ngStyle.gt-md", "ngStyle.gt-lg"] }, { kind: "component", type: i7.FormioFormFieldComponent, selector: "mat-formio-form-field", inputs: ["labelTemplate", "renderTopLabel", "showDescription", "renderElementOnly", "instance", "componentTemplate"] }, { kind: "component", type: i8.LabelComponent, selector: "span[matFormioLabel]", inputs: ["instance"] }] });
58
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialSignatureComponent, decorators: [{
59
+ type: Component,
60
+ args: [{
61
+ selector: 'mat-formio-signature',
62
+ template: `
63
+ <mat-formio-form-field [instance]="instance" [componentTemplate]="componentTemplate"></mat-formio-form-field>
64
+ <ng-template #componentTemplate let-hasLabel>
65
+ <div #signature>
66
+
67
+ <mat-label *ngIf="hasLabel">
68
+ <span [instance]="instance" matFormioLabel></span>
69
+ </mat-label>
70
+
71
+ <button mat-icon-button [ngStyle]="{position: 'absolute'}" ref="refresh">
72
+ <mat-icon>refresh</mat-icon>
73
+ </button>
74
+
75
+ <div class="signature-pad-body"
76
+ [ngStyle]="{width: instance.component.width, height: instance.component.height, padding: 0, margin: 0}"
77
+ [attr.tabindex]="instance.component.tabindex || 0"
78
+ ref="padBody"
79
+ >
80
+ <canvas class="signature-pad-canvas"
81
+ [attr.height]="instance.component.height"
82
+ ref="canvas"
83
+ ></canvas>
84
+ <img fxFlexFill [ngStyle]="{display: 'none' }" ref="signatureImage">
85
+ </div>
86
+ <div *ngIf="instance.component.footer"
87
+ class="signature-pad-footer"
88
+ fxLayout="row"
89
+ fxLayoutAlign="center center"
90
+ >
91
+ <mat-hint>{{ instance.t(instance.component.footer) }}</mat-hint>
92
+ </div>
93
+ </div>
94
+ </ng-template>
95
+ `
96
+ }]
97
+ }], propDecorators: { signatureElement: [{
98
+ type: ViewChild,
99
+ args: ['signature']
100
+ }] } });
101
+ SignatureComponent.MaterialComponent = MaterialSignatureComponent;
102
+ export { SignatureComponent };
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmF0dXJlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZW5kZXItbWF0ZXJpYWwtZm9ybXMvc3JjL2xpYi9jb21wb25lbnRzL3NpZ25hdHVyZS9zaWduYXR1cmUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUE2QixNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLGtCQUFrQixNQUFNLDRDQUE0QyxDQUFDOzs7Ozs7Ozs7O0FBc0M1RSxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsaUJBQWlCO0lBRy9ELGdCQUFnQjtRQUNkLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUMzRDtJQUNILENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQzs7dUhBWFUsMEJBQTBCOzJHQUExQiwwQkFBMEIsa01BbkMzQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUNUOzJGQUVVLDBCQUEwQjtrQkFyQ3RDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQ1Q7aUJBQ0Y7OEJBRXlCLGdCQUFnQjtzQkFBdkMsU0FBUzt1QkFBQyxXQUFXOztBQVl4QixrQkFBa0IsQ0FBQyxpQkFBaUIsR0FBRywwQkFBMEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0NoaWxkLCBFbGVtZW50UmVmLCBBZnRlclZpZXdJbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdGVyaWFsQ29tcG9uZW50IH0gZnJvbSAnLi4vTWF0ZXJpYWxDb21wb25lbnQnO1xyXG5pbXBvcnQgU2lnbmF0dXJlQ29tcG9uZW50IGZyb20gJ2Zvcm1pb2pzL2NvbXBvbmVudHMvc2lnbmF0dXJlL1NpZ25hdHVyZS5qcyc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbWF0LWZvcm1pby1zaWduYXR1cmUnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8bWF0LWZvcm1pby1mb3JtLWZpZWxkIFtpbnN0YW5jZV09XCJpbnN0YW5jZVwiIFtjb21wb25lbnRUZW1wbGF0ZV09XCJjb21wb25lbnRUZW1wbGF0ZVwiPjwvbWF0LWZvcm1pby1mb3JtLWZpZWxkPlxyXG4gICAgPG5nLXRlbXBsYXRlICNjb21wb25lbnRUZW1wbGF0ZSBsZXQtaGFzTGFiZWw+XHJcbiAgICAgIDxkaXYgI3NpZ25hdHVyZT5cclxuXHJcbiAgICAgICAgPG1hdC1sYWJlbCAqbmdJZj1cImhhc0xhYmVsXCI+XHJcbiAgICAgICAgICA8c3BhbiBbaW5zdGFuY2VdPVwiaW5zdGFuY2VcIiBtYXRGb3JtaW9MYWJlbD48L3NwYW4+XHJcbiAgICAgICAgPC9tYXQtbGFiZWw+XHJcblxyXG4gICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIFtuZ1N0eWxlXT1cIntwb3NpdGlvbjogJ2Fic29sdXRlJ31cIiByZWY9XCJyZWZyZXNoXCI+XHJcbiAgICAgICAgICA8bWF0LWljb24+cmVmcmVzaDwvbWF0LWljb24+XHJcbiAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzaWduYXR1cmUtcGFkLWJvZHlcIlxyXG4gICAgICAgICAgICAgW25nU3R5bGVdPVwie3dpZHRoOiBpbnN0YW5jZS5jb21wb25lbnQud2lkdGgsIGhlaWdodDogaW5zdGFuY2UuY29tcG9uZW50LmhlaWdodCwgcGFkZGluZzogMCwgbWFyZ2luOiAwfVwiXHJcbiAgICAgICAgICAgICBbYXR0ci50YWJpbmRleF09XCJpbnN0YW5jZS5jb21wb25lbnQudGFiaW5kZXggfHwgMFwiXHJcbiAgICAgICAgICAgICByZWY9XCJwYWRCb2R5XCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8Y2FudmFzIGNsYXNzPVwic2lnbmF0dXJlLXBhZC1jYW52YXNcIlxyXG4gICAgICAgICAgICAgICAgICBbYXR0ci5oZWlnaHRdPVwiaW5zdGFuY2UuY29tcG9uZW50LmhlaWdodFwiXHJcbiAgICAgICAgICAgICAgICAgIHJlZj1cImNhbnZhc1wiXHJcbiAgICAgICAgICA+PC9jYW52YXM+XHJcbiAgICAgICAgICA8aW1nIGZ4RmxleEZpbGwgW25nU3R5bGVdPVwie2Rpc3BsYXk6ICdub25lJyB9XCIgcmVmPVwic2lnbmF0dXJlSW1hZ2VcIj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiaW5zdGFuY2UuY29tcG9uZW50LmZvb3RlclwiXHJcbiAgICAgICAgICAgICBjbGFzcz1cInNpZ25hdHVyZS1wYWQtZm9vdGVyXCJcclxuICAgICAgICAgICAgIGZ4TGF5b3V0PVwicm93XCJcclxuICAgICAgICAgICAgIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bWF0LWhpbnQ+e3sgaW5zdGFuY2UudChpbnN0YW5jZS5jb21wb25lbnQuZm9vdGVyKSB9fTwvbWF0LWhpbnQ+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICBgXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNYXRlcmlhbFNpZ25hdHVyZUNvbXBvbmVudCBleHRlbmRzIE1hdGVyaWFsQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQFZpZXdDaGlsZCgnc2lnbmF0dXJlJykgc2lnbmF0dXJlRWxlbWVudDogRWxlbWVudFJlZjtcclxuXHJcbiAgcmVuZGVyQ29tcG9uZW50cygpIHtcclxuICAgIGlmICh0aGlzLnNpZ25hdHVyZUVsZW1lbnQpIHtcclxuICAgICAgdGhpcy5pbnN0YW5jZS5hdHRhY2godGhpcy5zaWduYXR1cmVFbGVtZW50Lm5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5yZW5kZXJDb21wb25lbnRzKCk7XHJcbiAgfVxyXG59XHJcblNpZ25hdHVyZUNvbXBvbmVudC5NYXRlcmlhbENvbXBvbmVudCA9IE1hdGVyaWFsU2lnbmF0dXJlQ29tcG9uZW50O1xyXG5leHBvcnQgeyBTaWduYXR1cmVDb21wb25lbnQgfTtcclxuIl19
@@ -0,0 +1,167 @@
1
+ import { Component } from '@angular/core';
2
+ import { MaterialComponent } from '../MaterialComponent';
3
+ import SurveyComponent from 'formiojs/components/survey/Survey.js';
4
+ import { FormControl } from '@angular/forms';
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/radio";
10
+ import * as i5 from "@angular/flex-layout/flex";
11
+ import * as i6 from "../formio-form-field/formio-form-field.component";
12
+ import * as i7 from "../label/label.component";
13
+ export class MaterialSurveyComponent extends MaterialComponent {
14
+ constructor() {
15
+ super(...arguments);
16
+ this.controls = {};
17
+ }
18
+ getFormControl(question) {
19
+ if (!this.controls[question]) {
20
+ this.controls[question] = new FormControl();
21
+ if (this.instance.shouldDisabled) {
22
+ this.controls[question].disable();
23
+ }
24
+ }
25
+ return this.controls[question];
26
+ }
27
+ setDisabled(disabled) {
28
+ const method = disabled ? 'disable' : 'enable';
29
+ for (const question in this.controls) {
30
+ if (this.controls.hasOwnProperty(question)) {
31
+ this.controls[question][method]();
32
+ }
33
+ }
34
+ }
35
+ getValue() {
36
+ const values = {};
37
+ for (const question in this.controls) {
38
+ if (this.controls.hasOwnProperty(question)) {
39
+ values[question] = this.controls[question].value || false;
40
+ }
41
+ }
42
+ return values;
43
+ }
44
+ setValue(value) {
45
+ for (const question in value) {
46
+ if (value.hasOwnProperty(question)) {
47
+ const control = this.getFormControl(question);
48
+ if (control) {
49
+ control.setValue(value[question] || false);
50
+ }
51
+ }
52
+ }
53
+ }
54
+ getUniqueName(question) {
55
+ return `${this.instance.id}-${question}`;
56
+ }
57
+ }
58
+ MaterialSurveyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialSurveyComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
59
+ MaterialSurveyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: MaterialSurveyComponent, selector: "mat-formio-survey", usesInheritance: true, ngImport: i0, template: `
60
+
61
+ <mat-formio-form-field
62
+ [instance]="instance"
63
+ [componentTemplate]="componentTemplate"
64
+ [showDescription]="false"
65
+ ></mat-formio-form-field>
66
+ <ng-template #componentTemplate let-hasLabel>
67
+
68
+ <table class="mat-elevation-z8 mat-table" fxFill>
69
+ <thead>
70
+ <tr class="mat-header-row">
71
+ <th class="mat-header-cell">
72
+ <h2 *ngIf="hasLabel">
73
+ <span [instance]="instance" matFormioLabel></span>
74
+ </h2>
75
+ </th>
76
+ <th class="mat-header-cell"
77
+ *ngFor="let value of instance.component.values"
78
+ style="text-align: center;"
79
+ >
80
+ {{ value.label }}
81
+ </th>
82
+ </tr>
83
+ </thead>
84
+
85
+ <tbody>
86
+ <tr class="mat-row" *ngFor="let question of instance.component.questions; index as i;">
87
+ <td class="mat-cell">{{ question.label }}</td>
88
+ <td class="mat-cell"
89
+ *ngFor="let value of instance.component.values; index as j;"
90
+ style="text-align: center;"
91
+ >
92
+ <mat-radio-group (change)="onChange()"
93
+ [formControl]="getFormControl(question.value)"
94
+ [name]="getUniqueName(question.value)"
95
+ >
96
+ <mat-radio-button [value]="value.value"></mat-radio-button>
97
+ </mat-radio-group>
98
+ </td>
99
+ </tr>
100
+ <mat-hint *ngIf="instance.component.description" class="mat-formio-component-description">
101
+ {{ instance.component.description }}
102
+ </mat-hint>
103
+ </tbody>
104
+
105
+ <mat-error *ngIf="instance.error">{{ instance.error.message }}</mat-error>
106
+ </table>
107
+ </ng-template>
108
+ `, 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.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i4.MatRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }, { kind: "component", type: i4.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { kind: "directive", type: i5.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { 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"] }] });
109
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialSurveyComponent, decorators: [{
110
+ type: Component,
111
+ args: [{
112
+ selector: 'mat-formio-survey',
113
+ template: `
114
+
115
+ <mat-formio-form-field
116
+ [instance]="instance"
117
+ [componentTemplate]="componentTemplate"
118
+ [showDescription]="false"
119
+ ></mat-formio-form-field>
120
+ <ng-template #componentTemplate let-hasLabel>
121
+
122
+ <table class="mat-elevation-z8 mat-table" fxFill>
123
+ <thead>
124
+ <tr class="mat-header-row">
125
+ <th class="mat-header-cell">
126
+ <h2 *ngIf="hasLabel">
127
+ <span [instance]="instance" matFormioLabel></span>
128
+ </h2>
129
+ </th>
130
+ <th class="mat-header-cell"
131
+ *ngFor="let value of instance.component.values"
132
+ style="text-align: center;"
133
+ >
134
+ {{ value.label }}
135
+ </th>
136
+ </tr>
137
+ </thead>
138
+
139
+ <tbody>
140
+ <tr class="mat-row" *ngFor="let question of instance.component.questions; index as i;">
141
+ <td class="mat-cell">{{ question.label }}</td>
142
+ <td class="mat-cell"
143
+ *ngFor="let value of instance.component.values; index as j;"
144
+ style="text-align: center;"
145
+ >
146
+ <mat-radio-group (change)="onChange()"
147
+ [formControl]="getFormControl(question.value)"
148
+ [name]="getUniqueName(question.value)"
149
+ >
150
+ <mat-radio-button [value]="value.value"></mat-radio-button>
151
+ </mat-radio-group>
152
+ </td>
153
+ </tr>
154
+ <mat-hint *ngIf="instance.component.description" class="mat-formio-component-description">
155
+ {{ instance.component.description }}
156
+ </mat-hint>
157
+ </tbody>
158
+
159
+ <mat-error *ngIf="instance.error">{{ instance.error.message }}</mat-error>
160
+ </table>
161
+ </ng-template>
162
+ `
163
+ }]
164
+ }] });
165
+ SurveyComponent.MaterialComponent = MaterialSurveyComponent;
166
+ export { SurveyComponent };
167
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VydmV5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZW5kZXItbWF0ZXJpYWwtZm9ybXMvc3JjL2xpYi9jb21wb25lbnRzL3N1cnZleS9zdXJ2ZXkuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxlQUFlLE1BQU0sc0NBQXNDLENBQUM7QUFDbkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7QUF1RDdDLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxpQkFBaUI7SUFyRDlEOztRQXNEUyxhQUFRLEdBQVEsRUFBRSxDQUFDO0tBNEMzQjtJQTNDQyxjQUFjLENBQUMsUUFBUTtRQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUM1QixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7WUFDNUMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsRUFBRTtnQkFDaEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQzthQUNuQztTQUNGO1FBQ0QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxXQUFXLENBQUMsUUFBUTtRQUNsQixNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO1FBQy9DLEtBQUssTUFBTSxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNwQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUMxQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7YUFDbkM7U0FDRjtJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLEtBQUssTUFBTSxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNwQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUMxQyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDO2FBQzNEO1NBQ0Y7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQUs7UUFDWixLQUFLLE1BQU0sUUFBUSxJQUFJLEtBQUssRUFBRTtZQUM1QixJQUFJLEtBQUssQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQ2xDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzlDLElBQUksT0FBTyxFQUFFO29CQUNYLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDO2lCQUM1QzthQUNGO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsYUFBYSxDQUFDLFFBQVE7UUFDcEIsT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxJQUFJLFFBQVEsRUFBRSxDQUFDO0lBQzNDLENBQUM7O29IQTVDVSx1QkFBdUI7d0dBQXZCLHVCQUF1QixnRkFuRHRCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBaURUOzJGQUVRLHVCQUF1QjtrQkFyRG5DLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBaURUO2lCQUNKOztBQStDRCxlQUFlLENBQUMsaUJBQWlCLEdBQUcsdUJBQXVCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdGVyaWFsQ29tcG9uZW50IH0gZnJvbSAnLi4vTWF0ZXJpYWxDb21wb25lbnQnO1xyXG5pbXBvcnQgU3VydmV5Q29tcG9uZW50IGZyb20gJ2Zvcm1pb2pzL2NvbXBvbmVudHMvc3VydmV5L1N1cnZleS5qcyc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ21hdC1mb3JtaW8tc3VydmV5JyxcclxuICAgIHRlbXBsYXRlOiBgXHJcblxyXG4gICAgICA8bWF0LWZvcm1pby1mb3JtLWZpZWxkXHJcbiAgICAgICAgICAgICAgW2luc3RhbmNlXT1cImluc3RhbmNlXCJcclxuICAgICAgICAgICAgICBbY29tcG9uZW50VGVtcGxhdGVdPVwiY29tcG9uZW50VGVtcGxhdGVcIlxyXG4gICAgICAgICAgICAgIFtzaG93RGVzY3JpcHRpb25dPVwiZmFsc2VcIlxyXG4gICAgICA+PC9tYXQtZm9ybWlvLWZvcm0tZmllbGQ+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSAjY29tcG9uZW50VGVtcGxhdGUgbGV0LWhhc0xhYmVsPlxyXG5cclxuICAgICAgICA8dGFibGUgY2xhc3M9XCJtYXQtZWxldmF0aW9uLXo4IG1hdC10YWJsZVwiIGZ4RmlsbD5cclxuICAgICAgICAgIDx0aGVhZD5cclxuICAgICAgICAgIDx0ciBjbGFzcz1cIm1hdC1oZWFkZXItcm93XCI+XHJcbiAgICAgICAgICAgIDx0aCBjbGFzcz1cIm1hdC1oZWFkZXItY2VsbFwiPlxyXG4gICAgICAgICAgICAgIDxoMiAqbmdJZj1cImhhc0xhYmVsXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBbaW5zdGFuY2VdPVwiaW5zdGFuY2VcIiBtYXRGb3JtaW9MYWJlbD48L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9oMj5cclxuICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgPHRoIGNsYXNzPVwibWF0LWhlYWRlci1jZWxsXCJcclxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCB2YWx1ZSBvZiBpbnN0YW5jZS5jb21wb25lbnQudmFsdWVzXCJcclxuICAgICAgICAgICAgICAgIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyO1wiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICB7eyB2YWx1ZS5sYWJlbCB9fVxyXG4gICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgPC90cj5cclxuICAgICAgICAgIDwvdGhlYWQ+XHJcblxyXG4gICAgICAgICAgPHRib2R5PlxyXG4gICAgICAgICAgPHRyIGNsYXNzPVwibWF0LXJvd1wiICpuZ0Zvcj1cImxldCBxdWVzdGlvbiBvZiBpbnN0YW5jZS5jb21wb25lbnQucXVlc3Rpb25zOyBpbmRleCBhcyBpO1wiPlxyXG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJtYXQtY2VsbFwiPnt7IHF1ZXN0aW9uLmxhYmVsIH19PC90ZD5cclxuICAgICAgICAgICAgPHRkIGNsYXNzPVwibWF0LWNlbGxcIlxyXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHZhbHVlIG9mIGluc3RhbmNlLmNvbXBvbmVudC52YWx1ZXM7IGluZGV4IGFzIGo7XCJcclxuICAgICAgICAgICAgICAgIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyO1wiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8bWF0LXJhZGlvLWdyb3VwIChjaGFuZ2UpPVwib25DaGFuZ2UoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZ2V0Rm9ybUNvbnRyb2wocXVlc3Rpb24udmFsdWUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cImdldFVuaXF1ZU5hbWUocXVlc3Rpb24udmFsdWUpXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvbiBbdmFsdWVdPVwidmFsdWUudmFsdWVcIj48L21hdC1yYWRpby1idXR0b24+XHJcbiAgICAgICAgICAgICAgPC9tYXQtcmFkaW8tZ3JvdXA+XHJcbiAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgPG1hdC1oaW50ICpuZ0lmPVwiaW5zdGFuY2UuY29tcG9uZW50LmRlc2NyaXB0aW9uXCIgY2xhc3M9XCJtYXQtZm9ybWlvLWNvbXBvbmVudC1kZXNjcmlwdGlvblwiPlxyXG4gICAgICAgICAgICB7eyBpbnN0YW5jZS5jb21wb25lbnQuZGVzY3JpcHRpb24gfX1cclxuICAgICAgICAgIDwvbWF0LWhpbnQ+XHJcbiAgICAgICAgICA8L3Rib2R5PlxyXG5cclxuICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJpbnN0YW5jZS5lcnJvclwiPnt7IGluc3RhbmNlLmVycm9yLm1lc3NhZ2UgfX08L21hdC1lcnJvcj5cclxuICAgICAgICA8L3RhYmxlPlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgYFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWF0ZXJpYWxTdXJ2ZXlDb21wb25lbnQgZXh0ZW5kcyBNYXRlcmlhbENvbXBvbmVudCB7XHJcbiAgcHVibGljIGNvbnRyb2xzOiBhbnkgPSB7fTtcclxuICBnZXRGb3JtQ29udHJvbChxdWVzdGlvbikge1xyXG4gICAgaWYgKCF0aGlzLmNvbnRyb2xzW3F1ZXN0aW9uXSkge1xyXG4gICAgICB0aGlzLmNvbnRyb2xzW3F1ZXN0aW9uXSA9IG5ldyBGb3JtQ29udHJvbCgpO1xyXG4gICAgICBpZiAodGhpcy5pbnN0YW5jZS5zaG91bGREaXNhYmxlZCkge1xyXG4gICAgICAgIHRoaXMuY29udHJvbHNbcXVlc3Rpb25dLmRpc2FibGUoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuY29udHJvbHNbcXVlc3Rpb25dO1xyXG4gIH1cclxuXHJcbiAgc2V0RGlzYWJsZWQoZGlzYWJsZWQpIHtcclxuICAgIGNvbnN0IG1ldGhvZCA9IGRpc2FibGVkID8gJ2Rpc2FibGUnIDogJ2VuYWJsZSc7XHJcbiAgICBmb3IgKGNvbnN0IHF1ZXN0aW9uIGluIHRoaXMuY29udHJvbHMpIHtcclxuICAgICAgaWYgKHRoaXMuY29udHJvbHMuaGFzT3duUHJvcGVydHkocXVlc3Rpb24pKSB7XHJcbiAgICAgICAgdGhpcy5jb250cm9sc1txdWVzdGlvbl1bbWV0aG9kXSgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRWYWx1ZSgpIHtcclxuICAgIGNvbnN0IHZhbHVlcyA9IHt9O1xyXG4gICAgZm9yIChjb25zdCBxdWVzdGlvbiBpbiB0aGlzLmNvbnRyb2xzKSB7XHJcbiAgICAgIGlmICh0aGlzLmNvbnRyb2xzLmhhc093blByb3BlcnR5KHF1ZXN0aW9uKSkge1xyXG4gICAgICAgIHZhbHVlc1txdWVzdGlvbl0gPSB0aGlzLmNvbnRyb2xzW3F1ZXN0aW9uXS52YWx1ZSB8fCBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHZhbHVlcztcclxuICB9XHJcblxyXG4gIHNldFZhbHVlKHZhbHVlKSB7XHJcbiAgICBmb3IgKGNvbnN0IHF1ZXN0aW9uIGluIHZhbHVlKSB7XHJcbiAgICAgIGlmICh2YWx1ZS5oYXNPd25Qcm9wZXJ0eShxdWVzdGlvbikpIHtcclxuICAgICAgICBjb25zdCBjb250cm9sID0gdGhpcy5nZXRGb3JtQ29udHJvbChxdWVzdGlvbik7XHJcbiAgICAgICAgaWYgKGNvbnRyb2wpIHtcclxuICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUodmFsdWVbcXVlc3Rpb25dIHx8IGZhbHNlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFVuaXF1ZU5hbWUocXVlc3Rpb24pIHtcclxuICAgIHJldHVybiBgJHt0aGlzLmluc3RhbmNlLmlkfS0ke3F1ZXN0aW9ufWA7XHJcbiAgfVxyXG59XHJcblN1cnZleUNvbXBvbmVudC5NYXRlcmlhbENvbXBvbmVudCA9IE1hdGVyaWFsU3VydmV5Q29tcG9uZW50O1xyXG5leHBvcnQgeyBTdXJ2ZXlDb21wb25lbnQgfTtcclxuIl19
@@ -0,0 +1,97 @@
1
+ import { Component } from '@angular/core';
2
+ import { MaterialNestedComponent } from '../MaterialNestedComponent';
3
+ import TableComponent from 'formiojs/components/table/Table.js';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ import * as i2 from "@angular/flex-layout/extended";
7
+ export class MaterialTableComponent extends MaterialNestedComponent {
8
+ setInstance(instance) {
9
+ super.setInstance(instance);
10
+ instance.viewContainer = (component) => {
11
+ return this.viewContainers ?
12
+ this.viewContainers[(component.tableRow * this.instance.component.numCols) + component.tableColumn] :
13
+ null;
14
+ };
15
+ }
16
+ getTableColClasses() {
17
+ if (!this.instance) {
18
+ return;
19
+ }
20
+ const { condensed, cellAlignment } = this.instance.component;
21
+ return {
22
+ 'is-condensed': condensed,
23
+ ...(cellAlignment && { [cellAlignment]: true })
24
+ };
25
+ }
26
+ }
27
+ MaterialTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialTableComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
28
+ MaterialTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: MaterialTableComponent, selector: "mat-formio-table", usesInheritance: true, ngImport: i0, template: `
29
+ <table class="mat-table" style="width: 100%;" [ngClass]="{'is-bordered' : instance.component.bordered}">
30
+ <thead>
31
+ <tr class="mat-header-row">
32
+ <th *ngFor="let header of instance.component.header"
33
+ class="mat-header-cell"
34
+ >
35
+ {{ instance.t(header) }}
36
+ </th>
37
+ </tr>
38
+ </thead>
39
+
40
+ <tbody>
41
+ <tr *ngFor="let row of instance.table; let i = index"
42
+ role="row"
43
+ class="mat-row"
44
+ [ngClass]="{
45
+ 'is-hover': instance.component.hover,
46
+ 'is-striped': instance.component.striped && i % 2 === 0
47
+ }"
48
+ >
49
+ <td *ngFor="let col of row"
50
+ role="gridcell"
51
+ class="mat-cell"
52
+ [ngClass]="getTableColClasses()"
53
+ >
54
+ <ng-template #components></ng-template>
55
+ </td>
56
+ </tr>
57
+ </tbody>
58
+ </table>
59
+ `, isInline: true, styles: [".mat-table.is-bordered{border:1px solid #ddd}.mat-row.is-hover:hover{background-color:#f5f5f5}.mat-cell{padding:8px}.mat-cell.is-condensed{padding:3px}.mat-row.is-striped{background-color:#eee}.mat-cell.center{text-align:center}.mat-cell.right{text-align:right}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }] });
60
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialTableComponent, decorators: [{
61
+ type: Component,
62
+ args: [{ selector: 'mat-formio-table', template: `
63
+ <table class="mat-table" style="width: 100%;" [ngClass]="{'is-bordered' : instance.component.bordered}">
64
+ <thead>
65
+ <tr class="mat-header-row">
66
+ <th *ngFor="let header of instance.component.header"
67
+ class="mat-header-cell"
68
+ >
69
+ {{ instance.t(header) }}
70
+ </th>
71
+ </tr>
72
+ </thead>
73
+
74
+ <tbody>
75
+ <tr *ngFor="let row of instance.table; let i = index"
76
+ role="row"
77
+ class="mat-row"
78
+ [ngClass]="{
79
+ 'is-hover': instance.component.hover,
80
+ 'is-striped': instance.component.striped && i % 2 === 0
81
+ }"
82
+ >
83
+ <td *ngFor="let col of row"
84
+ role="gridcell"
85
+ class="mat-cell"
86
+ [ngClass]="getTableColClasses()"
87
+ >
88
+ <ng-template #components></ng-template>
89
+ </td>
90
+ </tr>
91
+ </tbody>
92
+ </table>
93
+ `, styles: [".mat-table.is-bordered{border:1px solid #ddd}.mat-row.is-hover:hover{background-color:#f5f5f5}.mat-cell{padding:8px}.mat-cell.is-condensed{padding:3px}.mat-row.is-striped{background-color:#eee}.mat-cell.center{text-align:center}.mat-cell.right{text-align:right}\n"] }]
94
+ }] });
95
+ TableComponent.MaterialComponent = MaterialTableComponent;
96
+ export { TableComponent };
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJlbmRlci1tYXRlcmlhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUvdGFibGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDckUsT0FBTyxjQUFjLE1BQU0sb0NBQW9DLENBQUM7Ozs7QUFzQ2hFLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSx1QkFBdUI7SUFFakUsV0FBVyxDQUFDLFFBQWE7UUFDdkIsS0FBSyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM1QixRQUFRLENBQUMsYUFBYSxHQUFHLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDckMsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxTQUFTLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxHQUFHLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO2dCQUNyRyxJQUFJLENBQUM7UUFDVCxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2xCLE9BQU87U0FDUjtRQUNELE1BQU0sRUFBQyxTQUFTLEVBQUUsYUFBYSxFQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUM7UUFDM0QsT0FBTztZQUNMLGNBQWMsRUFBRSxTQUFTO1lBQ3pCLEdBQUcsQ0FBQyxhQUFhLElBQUksRUFBQyxDQUFDLGFBQWEsQ0FBQyxFQUFFLElBQUksRUFBQyxDQUFDO1NBQzlDLENBQUE7SUFDSCxDQUFDOzttSEFwQlUsc0JBQXNCO3VHQUF0QixzQkFBc0IsK0VBakN2Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQStCVDsyRkFFVSxzQkFBc0I7a0JBcENsQyxTQUFTOytCQUNFLGtCQUFrQixZQUVsQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQStCVDs7QUF3QkgsY0FBYyxDQUFDLGlCQUFpQixHQUFHLHNCQUFzQixDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbE5lc3RlZENvbXBvbmVudCB9IGZyb20gJy4uL01hdGVyaWFsTmVzdGVkQ29tcG9uZW50JztcclxuaW1wb3J0IFRhYmxlQ29tcG9uZW50IGZyb20gJ2Zvcm1pb2pzL2NvbXBvbmVudHMvdGFibGUvVGFibGUuanMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdtYXQtZm9ybWlvLXRhYmxlJyxcclxuICBzdHlsZVVybHM6IFsgJy4vdGFibGUuY29tcG9uZW50LmNzcycgXSxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgICA8dGFibGUgY2xhc3M9XCJtYXQtdGFibGVcIiBzdHlsZT1cIndpZHRoOiAxMDAlO1wiIFtuZ0NsYXNzXT1cInsnaXMtYm9yZGVyZWQnIDogaW5zdGFuY2UuY29tcG9uZW50LmJvcmRlcmVkfVwiPlxyXG4gICAgICAgIDx0aGVhZD5cclxuICAgICAgICA8dHIgY2xhc3M9XCJtYXQtaGVhZGVyLXJvd1wiPlxyXG4gICAgICAgICAgPHRoICpuZ0Zvcj1cImxldCBoZWFkZXIgb2YgaW5zdGFuY2UuY29tcG9uZW50LmhlYWRlclwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJtYXQtaGVhZGVyLWNlbGxcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICB7eyBpbnN0YW5jZS50KGhlYWRlcikgfX1cclxuICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgPC90cj5cclxuICAgICAgICA8L3RoZWFkPlxyXG5cclxuICAgICAgICA8dGJvZHk+XHJcbiAgICAgICAgPHRyICpuZ0Zvcj1cImxldCByb3cgb2YgaW5zdGFuY2UudGFibGU7IGxldCBpID0gaW5kZXhcIlxyXG4gICAgICAgICAgICByb2xlPVwicm93XCJcclxuICAgICAgICAgICAgY2xhc3M9XCJtYXQtcm93XCJcclxuICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAgICAgJ2lzLWhvdmVyJzogaW5zdGFuY2UuY29tcG9uZW50LmhvdmVyLFxyXG4gICAgICAgICAgICAgICAgJ2lzLXN0cmlwZWQnOiBpbnN0YW5jZS5jb21wb25lbnQuc3RyaXBlZCAmJiBpICUgMiA9PT0gMFxyXG4gICAgICAgICAgICAgIH1cIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDx0ZCAqbmdGb3I9XCJsZXQgY29sIG9mIHJvd1wiXHJcbiAgICAgICAgICAgICAgcm9sZT1cImdyaWRjZWxsXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cIm1hdC1jZWxsXCJcclxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJnZXRUYWJsZUNvbENsYXNzZXMoKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjY29tcG9uZW50cz48L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgPC90ZD5cclxuICAgICAgICA8L3RyPlxyXG4gICAgICAgIDwvdGJvZHk+XHJcbiAgICAgIDwvdGFibGU+XHJcbiAgYFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWF0ZXJpYWxUYWJsZUNvbXBvbmVudCBleHRlbmRzIE1hdGVyaWFsTmVzdGVkQ29tcG9uZW50IHtcclxuXHJcbiAgc2V0SW5zdGFuY2UoaW5zdGFuY2U6IGFueSkge1xyXG4gICAgc3VwZXIuc2V0SW5zdGFuY2UoaW5zdGFuY2UpO1xyXG4gICAgaW5zdGFuY2Uudmlld0NvbnRhaW5lciA9IChjb21wb25lbnQpID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMudmlld0NvbnRhaW5lcnMgP1xyXG4gICAgICAgIHRoaXMudmlld0NvbnRhaW5lcnNbKGNvbXBvbmVudC50YWJsZVJvdyAqIHRoaXMuaW5zdGFuY2UuY29tcG9uZW50Lm51bUNvbHMpICsgY29tcG9uZW50LnRhYmxlQ29sdW1uXSA6XHJcbiAgICAgICAgbnVsbDtcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBnZXRUYWJsZUNvbENsYXNzZXMoKSB7XHJcbiAgICBpZiAoIXRoaXMuaW5zdGFuY2UpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3Qge2NvbmRlbnNlZCwgY2VsbEFsaWdubWVudH0gPSB0aGlzLmluc3RhbmNlLmNvbXBvbmVudDtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICdpcy1jb25kZW5zZWQnOiBjb25kZW5zZWQsXHJcbiAgICAgIC4uLihjZWxsQWxpZ25tZW50ICYmIHtbY2VsbEFsaWdubWVudF06IHRydWV9KVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5UYWJsZUNvbXBvbmVudC5NYXRlcmlhbENvbXBvbmVudCA9IE1hdGVyaWFsVGFibGVDb21wb25lbnQ7XHJcbmV4cG9ydCB7IFRhYmxlQ29tcG9uZW50IH07XHJcbiJdfQ==
@@ -0,0 +1,43 @@
1
+ import { Component } from '@angular/core';
2
+ import { MaterialNestedComponent } from '../MaterialNestedComponent';
3
+ import TabsComponent from 'formiojs/components/tabs/Tabs.js';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ import * as i2 from "@angular/material/tabs";
7
+ import * as i3 from "@angular/flex-layout/flex";
8
+ export class MaterialTabsComponent extends MaterialNestedComponent {
9
+ setInstance(instance) {
10
+ super.setInstance(instance);
11
+ instance.viewContainer = (component) => {
12
+ return this.viewContainers ? this.viewContainers[component.tab] : null;
13
+ };
14
+ }
15
+ }
16
+ MaterialTabsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialTabsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
17
+ MaterialTabsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: MaterialTabsComponent, selector: "mat-formio-tabs", usesInheritance: true, ngImport: i0, template: `
18
+ <mat-tab-group>
19
+ <mat-tab *ngFor="let tab of instance.component.components" [label]="tab.label">
20
+ <div fxLayout="column" fxLayoutGap="1em" style="border: 1px dotted rgba(0, 0, 0, 0.125)">
21
+ <ng-template #components></ng-template>
22
+ </div>
23
+ </mat-tab>
24
+ </mat-tab-group>
25
+ `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i2.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple"], exportAs: ["matTabGroup"] }, { kind: "component", type: i2.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass"], exportAs: ["matTab"] }, { kind: "directive", type: i3.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i3.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }] });
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialTabsComponent, decorators: [{
27
+ type: Component,
28
+ args: [{
29
+ selector: 'mat-formio-tabs',
30
+ template: `
31
+ <mat-tab-group>
32
+ <mat-tab *ngFor="let tab of instance.component.components" [label]="tab.label">
33
+ <div fxLayout="column" fxLayoutGap="1em" style="border: 1px dotted rgba(0, 0, 0, 0.125)">
34
+ <ng-template #components></ng-template>
35
+ </div>
36
+ </mat-tab>
37
+ </mat-tab-group>
38
+ `
39
+ }]
40
+ }] });
41
+ TabsComponent.MaterialComponent = MaterialTabsComponent;
42
+ export { TabsComponent };
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmVuZGVyLW1hdGVyaWFsLWZvcm1zL3NyYy9saWIvY29tcG9uZW50cy90YWJzL3RhYnMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDckUsT0FBTyxhQUFhLE1BQU0sa0NBQWtDLENBQUM7Ozs7O0FBYzdELE1BQU0sT0FBTyxxQkFBc0IsU0FBUSx1QkFBdUI7SUFDaEUsV0FBVyxDQUFDLFFBQWE7UUFDdkIsS0FBSyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM1QixRQUFRLENBQUMsYUFBYSxHQUFHLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDckMsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ3pFLENBQUMsQ0FBQztJQUNKLENBQUM7O2tIQU5VLHFCQUFxQjtzR0FBckIscUJBQXFCLDhFQVZ0Qjs7Ozs7Ozs7R0FRVDsyRkFFVSxxQkFBcUI7a0JBWmpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsUUFBUSxFQUFFOzs7Ozs7OztHQVFUO2lCQUNGOztBQVNELGFBQWEsQ0FBQyxpQkFBaUIsR0FBRyxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0ZXJpYWxOZXN0ZWRDb21wb25lbnQgfSBmcm9tICcuLi9NYXRlcmlhbE5lc3RlZENvbXBvbmVudCc7XHJcbmltcG9ydCBUYWJzQ29tcG9uZW50IGZyb20gJ2Zvcm1pb2pzL2NvbXBvbmVudHMvdGFicy9UYWJzLmpzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbWF0LWZvcm1pby10YWJzJyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPG1hdC10YWItZ3JvdXA+XHJcbiAgICAgIDxtYXQtdGFiICpuZ0Zvcj1cImxldCB0YWIgb2YgaW5zdGFuY2UuY29tcG9uZW50LmNvbXBvbmVudHNcIiBbbGFiZWxdPVwidGFiLmxhYmVsXCI+XHJcbiAgICAgICAgPGRpdiBmeExheW91dD1cImNvbHVtblwiIGZ4TGF5b3V0R2FwPVwiMWVtXCIgc3R5bGU9XCJib3JkZXI6IDFweCBkb3R0ZWQgcmdiYSgwLCAwLCAwLCAwLjEyNSlcIj5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjY29tcG9uZW50cz48L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L21hdC10YWI+XHJcbiAgICA8L21hdC10YWItZ3JvdXA+XHJcbiAgYFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWF0ZXJpYWxUYWJzQ29tcG9uZW50IGV4dGVuZHMgTWF0ZXJpYWxOZXN0ZWRDb21wb25lbnQge1xyXG4gIHNldEluc3RhbmNlKGluc3RhbmNlOiBhbnkpIHtcclxuICAgIHN1cGVyLnNldEluc3RhbmNlKGluc3RhbmNlKTtcclxuICAgIGluc3RhbmNlLnZpZXdDb250YWluZXIgPSAoY29tcG9uZW50KSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLnZpZXdDb250YWluZXJzID8gdGhpcy52aWV3Q29udGFpbmVyc1tjb21wb25lbnQudGFiXSA6IG51bGw7XHJcbiAgICB9O1xyXG4gIH1cclxufVxyXG5UYWJzQ29tcG9uZW50Lk1hdGVyaWFsQ29tcG9uZW50ID0gTWF0ZXJpYWxUYWJzQ29tcG9uZW50O1xyXG5leHBvcnQgeyBUYWJzQ29tcG9uZW50IH07XHJcbiJdfQ==