ngx-render-material-forms 2.5.11 → 2.5.13

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 (156) hide show
  1. package/esm2022/lib/FormioControl.mjs +36 -0
  2. package/esm2022/lib/components/Base.mjs +32 -0
  3. package/esm2022/lib/components/MaterialComponent.mjs +148 -0
  4. package/esm2022/lib/components/MaterialNestedComponent.mjs +38 -0
  5. package/esm2022/lib/components/Webform.mjs +18 -0
  6. package/{esm2020 → esm2022}/lib/components/add-on-products/add-on-products.component.mjs +841 -842
  7. package/esm2022/lib/components/button/button.component.mjs +101 -0
  8. package/esm2022/lib/components/calendar/calendar.component.mjs +127 -0
  9. package/esm2022/lib/components/checkbox/checkbox.component.mjs +53 -0
  10. package/esm2022/lib/components/columns/columns.component.mjs +58 -0
  11. package/esm2022/lib/components/common.service.mjs +255 -0
  12. package/esm2022/lib/components/confirmation-dialog/confirmation-dialog.component.mjs +24 -0
  13. package/esm2022/lib/components/container/container.component.mjs +24 -0
  14. package/{esm2020 → esm2022}/lib/components/content/content.component.mjs +18 -18
  15. package/esm2022/lib/components/currency/currency.component.mjs +41 -0
  16. package/esm2022/lib/components/datagrid/datagrid.component.mjs +693 -0
  17. package/esm2022/lib/components/date/date.component.mjs +336 -0
  18. package/{esm2020 → esm2022}/lib/components/day/day.component.mjs +75 -75
  19. package/esm2022/lib/components/editgrid/editgrid.component.mjs +243 -0
  20. package/esm2022/lib/components/email/email.component.mjs +28 -0
  21. package/esm2022/lib/components/fieldset/fieldset.component.mjs +49 -0
  22. package/esm2022/lib/components/formio-form-field/formio-form-field.component.mjs +56 -0
  23. package/esm2022/lib/components/formio.wizard.mjs +88 -0
  24. package/{esm2020 → esm2022}/lib/components/hidden/hidden.component.mjs +20 -20
  25. package/esm2022/lib/components/html/html.component.mjs +29 -0
  26. package/esm2022/lib/components/index.mjs +125 -0
  27. package/{esm2020 → esm2022}/lib/components/label/label.component.mjs +17 -17
  28. package/esm2022/lib/components/number/number.component.mjs +65 -0
  29. package/esm2022/lib/components/panel/panel.component.mjs +56 -0
  30. package/esm2022/lib/components/password/password.component.mjs +28 -0
  31. package/esm2022/lib/components/phonenumber/phonenumber.component.mjs +28 -0
  32. package/esm2022/lib/components/radio/radio.component.mjs +93 -0
  33. package/esm2022/lib/components/select/select.component.mjs +592 -0
  34. package/esm2022/lib/components/selectboxes/selectboxes.component.mjs +99 -0
  35. package/esm2022/lib/components/signature/signature.component.mjs +99 -0
  36. package/esm2022/lib/components/survey/survey.component.mjs +166 -0
  37. package/esm2022/lib/components/table/table.component.mjs +96 -0
  38. package/esm2022/lib/components/tabs/tabs.component.mjs +42 -0
  39. package/esm2022/lib/components/tags/tags.component.mjs +114 -0
  40. package/esm2022/lib/components/textarea/textarea.component.mjs +94 -0
  41. package/esm2022/lib/components/textfield/textfield.component.mjs +122 -0
  42. package/esm2022/lib/components/time/time.component.mjs +205 -0
  43. package/esm2022/lib/components/url/url.component.mjs +28 -0
  44. package/esm2022/lib/components/well/well.component.mjs +41 -0
  45. package/{esm2020 → esm2022}/lib/const/ButtonsThemes.mjs +16 -16
  46. package/{esm2020 → esm2022}/lib/const/LabelPositions.mjs +9 -9
  47. package/esm2022/lib/directives/mask.directive.mjs +65 -0
  48. package/esm2022/lib/formio.component.mjs +77 -0
  49. package/{esm2020 → esm2022}/lib/ngx-render-material-forms.component.mjs +15 -15
  50. package/esm2022/lib/ngx-render-material-forms.module.mjs +324 -0
  51. package/{esm2020 → esm2022}/lib/ngx-render-material-forms.service.mjs +14 -14
  52. package/{esm2020 → esm2022}/lib/renderer.mjs +12 -12
  53. package/{esm2020 → esm2022}/ngx-render-material-forms.js +4 -4
  54. package/{esm2020 → esm2022}/public-api.mjs +6 -6
  55. package/{fesm2020 → fesm2022}/ngx-render-material-forms.js +4195 -4272
  56. package/fesm2022/ngx-render-material-forms.mjs.map +1 -0
  57. package/index.d.ts +5 -5
  58. package/lib/FormioControl.d.ts +7 -7
  59. package/lib/components/Base.d.ts +2 -2
  60. package/lib/components/MaterialComponent.d.ts +30 -30
  61. package/lib/components/MaterialNestedComponent.d.ts +13 -13
  62. package/lib/components/Webform.d.ts +1 -1
  63. package/lib/components/add-on-products/add-on-products.component.d.ts +142 -142
  64. package/lib/components/button/button.component.d.ts +30 -30
  65. package/lib/components/calendar/calendar.component.d.ts +34 -34
  66. package/lib/components/checkbox/checkbox.component.d.ts +9 -9
  67. package/lib/components/columns/columns.component.d.ts +12 -12
  68. package/lib/components/common.service.d.ts +86 -86
  69. package/lib/components/confirmation-dialog/confirmation-dialog.component.d.ts +11 -11
  70. package/lib/components/container/container.component.d.ts +8 -8
  71. package/lib/components/content/content.component.d.ts +8 -8
  72. package/lib/components/currency/currency.component.d.ts +10 -10
  73. package/lib/components/datagrid/datagrid.component.d.ts +81 -81
  74. package/lib/components/date/date.component.d.ts +40 -40
  75. package/lib/components/day/day.component.d.ts +16 -16
  76. package/lib/components/editgrid/editgrid.component.d.ts +50 -50
  77. package/lib/components/email/email.component.d.ts +9 -9
  78. package/lib/components/fieldset/fieldset.component.d.ts +8 -8
  79. package/lib/components/formio-form-field/formio-form-field.component.d.ts +18 -18
  80. package/lib/components/formio.wizard.d.ts +19 -19
  81. package/lib/components/hidden/hidden.component.d.ts +8 -8
  82. package/lib/components/html/html.component.d.ts +11 -11
  83. package/lib/components/index.d.ts +2 -2
  84. package/lib/components/label/label.component.d.ts +6 -6
  85. package/lib/components/number/number.component.d.ts +18 -18
  86. package/lib/components/panel/panel.component.d.ts +8 -8
  87. package/lib/components/password/password.component.d.ts +9 -9
  88. package/lib/components/phonenumber/phonenumber.component.d.ts +9 -9
  89. package/lib/components/radio/radio.component.d.ts +12 -12
  90. package/lib/components/select/select.component.d.ts +77 -77
  91. package/lib/components/selectboxes/selectboxes.component.d.ts +15 -15
  92. package/lib/components/signature/signature.component.d.ts +12 -12
  93. package/lib/components/survey/survey.component.d.ts +14 -14
  94. package/lib/components/table/table.component.d.ts +12 -12
  95. package/lib/components/tabs/tabs.component.d.ts +9 -9
  96. package/lib/components/tags/tags.component.d.ts +15 -15
  97. package/lib/components/textarea/textarea.component.d.ts +13 -13
  98. package/lib/components/textfield/textfield.component.d.ts +18 -18
  99. package/lib/components/time/time.component.d.ts +27 -27
  100. package/lib/components/url/url.component.d.ts +9 -9
  101. package/lib/components/well/well.component.d.ts +8 -8
  102. package/lib/const/ButtonsThemes.d.ts +14 -14
  103. package/lib/const/LabelPositions.d.ts +8 -8
  104. package/lib/directives/mask.directive.d.ts +17 -17
  105. package/lib/formio.component.d.ts +15 -15
  106. package/lib/ngx-render-material-forms.component.d.ts +8 -8
  107. package/lib/ngx-render-material-forms.module.d.ts +110 -112
  108. package/lib/ngx-render-material-forms.service.d.ts +6 -6
  109. package/lib/renderer.d.ts +8 -8
  110. package/package.json +5 -11
  111. package/public-api.d.ts +3 -3
  112. package/esm2020/lib/FormioControl.mjs +0 -36
  113. package/esm2020/lib/components/Base.mjs +0 -32
  114. package/esm2020/lib/components/MaterialComponent.mjs +0 -148
  115. package/esm2020/lib/components/MaterialNestedComponent.mjs +0 -38
  116. package/esm2020/lib/components/Webform.mjs +0 -18
  117. package/esm2020/lib/components/button/button.component.mjs +0 -102
  118. package/esm2020/lib/components/calendar/calendar.component.mjs +0 -129
  119. package/esm2020/lib/components/checkbox/checkbox.component.mjs +0 -54
  120. package/esm2020/lib/components/columns/columns.component.mjs +0 -69
  121. package/esm2020/lib/components/common.service.mjs +0 -256
  122. package/esm2020/lib/components/confirmation-dialog/confirmation-dialog.component.mjs +0 -25
  123. package/esm2020/lib/components/container/container.component.mjs +0 -25
  124. package/esm2020/lib/components/currency/currency.component.mjs +0 -43
  125. package/esm2020/lib/components/datagrid/datagrid.component.mjs +0 -694
  126. package/esm2020/lib/components/date/date.component.mjs +0 -337
  127. package/esm2020/lib/components/editgrid/editgrid.component.mjs +0 -243
  128. package/esm2020/lib/components/email/email.component.mjs +0 -30
  129. package/esm2020/lib/components/fieldset/fieldset.component.mjs +0 -50
  130. package/esm2020/lib/components/formio-form-field/formio-form-field.component.mjs +0 -57
  131. package/esm2020/lib/components/formio.wizard.mjs +0 -88
  132. package/esm2020/lib/components/html/html.component.mjs +0 -29
  133. package/esm2020/lib/components/index.mjs +0 -125
  134. package/esm2020/lib/components/number/number.component.mjs +0 -67
  135. package/esm2020/lib/components/panel/panel.component.mjs +0 -57
  136. package/esm2020/lib/components/password/password.component.mjs +0 -30
  137. package/esm2020/lib/components/phonenumber/phonenumber.component.mjs +0 -30
  138. package/esm2020/lib/components/radio/radio.component.mjs +0 -96
  139. package/esm2020/lib/components/select/select.component.mjs +0 -593
  140. package/esm2020/lib/components/selectboxes/selectboxes.component.mjs +0 -102
  141. package/esm2020/lib/components/signature/signature.component.mjs +0 -103
  142. package/esm2020/lib/components/survey/survey.component.mjs +0 -167
  143. package/esm2020/lib/components/table/table.component.mjs +0 -97
  144. package/esm2020/lib/components/tabs/tabs.component.mjs +0 -43
  145. package/esm2020/lib/components/tags/tags.component.mjs +0 -115
  146. package/esm2020/lib/components/textarea/textarea.component.mjs +0 -98
  147. package/esm2020/lib/components/textfield/textfield.component.mjs +0 -124
  148. package/esm2020/lib/components/time/time.component.mjs +0 -206
  149. package/esm2020/lib/components/url/url.component.mjs +0 -30
  150. package/esm2020/lib/components/well/well.component.mjs +0 -43
  151. package/esm2020/lib/directives/mask.directive.mjs +0 -65
  152. package/esm2020/lib/formio.component.mjs +0 -80
  153. package/esm2020/lib/ngx-render-material-forms.module.mjs +0 -378
  154. package/fesm2015/ngx-render-material-forms.js +0 -5850
  155. package/fesm2015/ngx-render-material-forms.mjs.map +0 -1
  156. package/fesm2020/ngx-render-material-forms.mjs.map +0 -1
@@ -0,0 +1,99 @@
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 "../formio-form-field/formio-form-field.component";
10
+ import * as i6 from "../label/label.component";
11
+ export class MaterialSelectBoxesComponent extends MaterialRadioComponent {
12
+ constructor() {
13
+ super(...arguments);
14
+ this.value = {};
15
+ this.disabled = false;
16
+ }
17
+ setInstance(instance) {
18
+ instance.component.values.forEach((option) => {
19
+ this.value[option.value] = false;
20
+ });
21
+ super.setInstance(instance);
22
+ }
23
+ getValue() {
24
+ return this.value;
25
+ }
26
+ setValue(value) {
27
+ const normalizedValue = this.instance.normalizeValue(value);
28
+ for (const prop in normalizedValue) {
29
+ if (normalizedValue.hasOwnProperty(prop)) {
30
+ this.value[prop] = normalizedValue[prop];
31
+ }
32
+ }
33
+ }
34
+ setDisabled(disabled) {
35
+ this.disabled = !!disabled;
36
+ }
37
+ onChange() {
38
+ this.instance.updateValue(this.getValue(), { modified: true });
39
+ this.instance.triggerChange({ modified: true });
40
+ }
41
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MaterialSelectBoxesComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
42
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MaterialSelectBoxesComponent, selector: "mat-formio-selectboxes", usesInheritance: true, ngImport: i0, template: `
43
+ <mat-formio-form-field [instance]="instance" [componentTemplate]="componentTemplate"></mat-formio-form-field>
44
+ <ng-template #componentTemplate let-hasLabel>
45
+ <div style="display:flex; flex-direction:column;">
46
+ <mat-label *ngIf="hasLabel">
47
+ <span [instance]="instance" matFormioLabel></span>
48
+ </mat-label>
49
+ <div
50
+ style="display:flex; margin-left:10px; gap:10px;"
51
+ [style.flex-direction]="getLayout()"
52
+ >
53
+ <mat-checkbox
54
+ *ngFor="let option of instance.component.values"
55
+ (change)="onChange()"
56
+ [(ngModel)]="value[option.value]"
57
+ [disabled]="disabled"
58
+ >
59
+ {{ option.label }}
60
+ </mat-checkbox>
61
+ <mat-error *ngIf="instance.error">{{ instance.error.message }}</mat-error>
62
+ </div>
63
+ </div>
64
+ </ng-template>
65
+ `, 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.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i4.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { 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"] }] }); }
66
+ }
67
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MaterialSelectBoxesComponent, decorators: [{
68
+ type: Component,
69
+ args: [{
70
+ selector: 'mat-formio-selectboxes',
71
+ template: `
72
+ <mat-formio-form-field [instance]="instance" [componentTemplate]="componentTemplate"></mat-formio-form-field>
73
+ <ng-template #componentTemplate let-hasLabel>
74
+ <div style="display:flex; flex-direction:column;">
75
+ <mat-label *ngIf="hasLabel">
76
+ <span [instance]="instance" matFormioLabel></span>
77
+ </mat-label>
78
+ <div
79
+ style="display:flex; margin-left:10px; gap:10px;"
80
+ [style.flex-direction]="getLayout()"
81
+ >
82
+ <mat-checkbox
83
+ *ngFor="let option of instance.component.values"
84
+ (change)="onChange()"
85
+ [(ngModel)]="value[option.value]"
86
+ [disabled]="disabled"
87
+ >
88
+ {{ option.label }}
89
+ </mat-checkbox>
90
+ <mat-error *ngIf="instance.error">{{ instance.error.message }}</mat-error>
91
+ </div>
92
+ </div>
93
+ </ng-template>
94
+ `
95
+ }]
96
+ }] });
97
+ SelectBoxesComponent.MaterialComponent = MaterialSelectBoxesComponent;
98
+ export { SelectBoxesComponent };
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0Ym94ZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJlbmRlci1tYXRlcmlhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0Ym94ZXMvc2VsZWN0Ym94ZXMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbEUsT0FBTyxvQkFBb0IsTUFBTSxnREFBZ0QsQ0FBQzs7Ozs7Ozs7QUE0QmxGLE1BQU0sT0FBTyw0QkFBNkIsU0FBUSxzQkFBc0I7SUEzQnhFOztRQTRCUyxVQUFLLEdBQVEsRUFBRSxDQUFDO1FBQ2hCLGFBQVEsR0FBRyxLQUFLLENBQUM7S0E4QnpCO0lBNUJDLFdBQVcsQ0FBQyxRQUFRO1FBQ2xCLFFBQVEsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQzNDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQztRQUNILEtBQUssQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFLO1FBQ1osTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUQsS0FBSyxNQUFNLElBQUksSUFBSSxlQUFlLEVBQUUsQ0FBQztZQUNuQyxJQUFJLGVBQWUsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDekMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDM0MsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFDLFFBQVE7UUFDbEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDO0lBQzdCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztJQUNoRCxDQUFDOytHQS9CVSw0QkFBNEI7bUdBQTVCLDRCQUE0QixxRkF6QjdCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVCVDs7NEZBRVUsNEJBQTRCO2tCQTNCeEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsd0JBQXdCO29CQUNsQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUJUO2lCQUNGOztBQWtDRCxvQkFBb0IsQ0FBQyxpQkFBaUIsR0FBRyw0QkFBNEIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbFJhZGlvQ29tcG9uZW50IH0gZnJvbSAnLi4vcmFkaW8vcmFkaW8uY29tcG9uZW50JztcclxuaW1wb3J0IFNlbGVjdEJveGVzQ29tcG9uZW50IGZyb20gJ2Zvcm1pb2pzL2NvbXBvbmVudHMvc2VsZWN0Ym94ZXMvU2VsZWN0Qm94ZXMuanMnO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ21hdC1mb3JtaW8tc2VsZWN0Ym94ZXMnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8bWF0LWZvcm1pby1mb3JtLWZpZWxkIFtpbnN0YW5jZV09XCJpbnN0YW5jZVwiIFtjb21wb25lbnRUZW1wbGF0ZV09XCJjb21wb25lbnRUZW1wbGF0ZVwiPjwvbWF0LWZvcm1pby1mb3JtLWZpZWxkPlxyXG4gICAgPG5nLXRlbXBsYXRlICNjb21wb25lbnRUZW1wbGF0ZSBsZXQtaGFzTGFiZWw+XHJcbiAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OmZsZXg7IGZsZXgtZGlyZWN0aW9uOmNvbHVtbjtcIj5cclxuICAgICAgICA8bWF0LWxhYmVsICpuZ0lmPVwiaGFzTGFiZWxcIj5cclxuICAgICAgICAgIDxzcGFuIFtpbnN0YW5jZV09XCJpbnN0YW5jZVwiIG1hdEZvcm1pb0xhYmVsPjwvc3Bhbj5cclxuICAgICAgICA8L21hdC1sYWJlbD5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICBzdHlsZT1cImRpc3BsYXk6ZmxleDsgbWFyZ2luLWxlZnQ6MTBweDsgZ2FwOjEwcHg7XCJcclxuICAgICAgICAgICAgICAgIFtzdHlsZS5mbGV4LWRpcmVjdGlvbl09XCJnZXRMYXlvdXQoKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG1hdC1jaGVja2JveFxyXG4gICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGluc3RhbmNlLmNvbXBvbmVudC52YWx1ZXNcIlxyXG4gICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uQ2hhbmdlKClcIlxyXG4gICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInZhbHVlW29wdGlvbi52YWx1ZV1cIlxyXG4gICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICB7eyBvcHRpb24ubGFiZWwgfX1cclxuICAgICAgICAgIDwvbWF0LWNoZWNrYm94PlxyXG4gICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImluc3RhbmNlLmVycm9yXCI+e3sgaW5zdGFuY2UuZXJyb3IubWVzc2FnZSB9fTwvbWF0LWVycm9yPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgYFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWF0ZXJpYWxTZWxlY3RCb3hlc0NvbXBvbmVudCBleHRlbmRzIE1hdGVyaWFsUmFkaW9Db21wb25lbnQge1xyXG4gIHB1YmxpYyB2YWx1ZTogYW55ID0ge307XHJcbiAgcHVibGljIGRpc2FibGVkID0gZmFsc2U7XHJcblxyXG4gIHNldEluc3RhbmNlKGluc3RhbmNlKSB7XHJcbiAgICBpbnN0YW5jZS5jb21wb25lbnQudmFsdWVzLmZvckVhY2goKG9wdGlvbikgPT4ge1xyXG4gICAgICB0aGlzLnZhbHVlW29wdGlvbi52YWx1ZV0gPSBmYWxzZTtcclxuICAgIH0pO1xyXG4gICAgc3VwZXIuc2V0SW5zdGFuY2UoaW5zdGFuY2UpO1xyXG4gIH1cclxuXHJcbiAgZ2V0VmFsdWUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy52YWx1ZTtcclxuICB9XHJcblxyXG4gIHNldFZhbHVlKHZhbHVlKSB7XHJcbiAgICBjb25zdCBub3JtYWxpemVkVmFsdWUgPSB0aGlzLmluc3RhbmNlLm5vcm1hbGl6ZVZhbHVlKHZhbHVlKTtcclxuICAgIGZvciAoY29uc3QgcHJvcCBpbiBub3JtYWxpemVkVmFsdWUpIHtcclxuICAgICAgaWYgKG5vcm1hbGl6ZWRWYWx1ZS5oYXNPd25Qcm9wZXJ0eShwcm9wKSkge1xyXG4gICAgICAgIHRoaXMudmFsdWVbcHJvcF0gPSBub3JtYWxpemVkVmFsdWVbcHJvcF07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldERpc2FibGVkKGRpc2FibGVkKSB7XHJcbiAgICB0aGlzLmRpc2FibGVkID0gISFkaXNhYmxlZDtcclxuICB9XHJcblxyXG4gIG9uQ2hhbmdlKCkge1xyXG4gICAgdGhpcy5pbnN0YW5jZS51cGRhdGVWYWx1ZSh0aGlzLmdldFZhbHVlKCksIHttb2RpZmllZDogdHJ1ZX0pO1xyXG4gICAgdGhpcy5pbnN0YW5jZS50cmlnZ2VyQ2hhbmdlKHttb2RpZmllZDogdHJ1ZX0pO1xyXG4gIH1cclxufVxyXG5TZWxlY3RCb3hlc0NvbXBvbmVudC5NYXRlcmlhbENvbXBvbmVudCA9IE1hdGVyaWFsU2VsZWN0Qm94ZXNDb21wb25lbnQ7XHJcbmV4cG9ydCB7IFNlbGVjdEJveGVzQ29tcG9uZW50IH07XHJcbiJdfQ==
@@ -0,0 +1,99 @@
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 "../formio-form-field/formio-form-field.component";
10
+ import * as i6 from "../label/label.component";
11
+ export class MaterialSignatureComponent extends MaterialComponent {
12
+ renderComponents() {
13
+ if (this.signatureElement) {
14
+ this.instance.attach(this.signatureElement.nativeElement);
15
+ }
16
+ }
17
+ ngAfterViewInit() {
18
+ this.renderComponents();
19
+ }
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MaterialSignatureComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
21
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MaterialSignatureComponent, selector: "mat-formio-signature", viewQueries: [{ propertyName: "signatureElement", first: true, predicate: ["signature"], descendants: true }], usesInheritance: true, ngImport: i0, template: `
22
+ <mat-formio-form-field [instance]="instance" [componentTemplate]="componentTemplate"></mat-formio-form-field>
23
+ <ng-template #componentTemplate let-hasLabel>
24
+ <div #signature>
25
+
26
+ <mat-label *ngIf="hasLabel">
27
+ <span [instance]="instance" matFormioLabel></span>
28
+ </mat-label>
29
+
30
+ <button mat-icon-button [ngStyle]="{position: 'absolute'}" ref="refresh">
31
+ <mat-icon>refresh</mat-icon>
32
+ </button>
33
+
34
+ <div class="signature-pad-body"
35
+ [ngStyle]="{width: instance.component.width, height: instance.component.height, padding: 0, margin: 0}"
36
+ [attr.tabindex]="instance.component.tabindex || 0"
37
+ ref="padBody"
38
+ >
39
+ <canvas class="signature-pad-canvas"
40
+ [attr.height]="instance.component.height"
41
+ ref="canvas"
42
+ ></canvas>
43
+ <img style="width:100%; height:100%;" [ngStyle]="{display: 'none'}" ref="signatureImage">
44
+ </div>
45
+ <div *ngIf="instance.component.footer"
46
+ class="signature-pad-footer"
47
+ style="display:flex; flex-direction:row; justify-content:center; align-items:center;"
48
+ >
49
+ <mat-hint>{{ instance.t(instance.component.footer) }}</mat-hint>
50
+ </div>
51
+ </div>
52
+ </ng-template>
53
+ `, 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.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { 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"] }] }); }
54
+ }
55
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MaterialSignatureComponent, decorators: [{
56
+ type: Component,
57
+ args: [{
58
+ selector: 'mat-formio-signature',
59
+ template: `
60
+ <mat-formio-form-field [instance]="instance" [componentTemplate]="componentTemplate"></mat-formio-form-field>
61
+ <ng-template #componentTemplate let-hasLabel>
62
+ <div #signature>
63
+
64
+ <mat-label *ngIf="hasLabel">
65
+ <span [instance]="instance" matFormioLabel></span>
66
+ </mat-label>
67
+
68
+ <button mat-icon-button [ngStyle]="{position: 'absolute'}" ref="refresh">
69
+ <mat-icon>refresh</mat-icon>
70
+ </button>
71
+
72
+ <div class="signature-pad-body"
73
+ [ngStyle]="{width: instance.component.width, height: instance.component.height, padding: 0, margin: 0}"
74
+ [attr.tabindex]="instance.component.tabindex || 0"
75
+ ref="padBody"
76
+ >
77
+ <canvas class="signature-pad-canvas"
78
+ [attr.height]="instance.component.height"
79
+ ref="canvas"
80
+ ></canvas>
81
+ <img style="width:100%; height:100%;" [ngStyle]="{display: 'none'}" ref="signatureImage">
82
+ </div>
83
+ <div *ngIf="instance.component.footer"
84
+ class="signature-pad-footer"
85
+ style="display:flex; flex-direction:row; justify-content:center; align-items:center;"
86
+ >
87
+ <mat-hint>{{ instance.t(instance.component.footer) }}</mat-hint>
88
+ </div>
89
+ </div>
90
+ </ng-template>
91
+ `
92
+ }]
93
+ }], propDecorators: { signatureElement: [{
94
+ type: ViewChild,
95
+ args: ['signature']
96
+ }] } });
97
+ SignatureComponent.MaterialComponent = MaterialSignatureComponent;
98
+ export { SignatureComponent };
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmF0dXJlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZW5kZXItbWF0ZXJpYWwtZm9ybXMvc3JjL2xpYi9jb21wb25lbnRzL3NpZ25hdHVyZS9zaWduYXR1cmUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUE2QixNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLGtCQUFrQixNQUFNLDRDQUE0QyxDQUFDOzs7Ozs7OztBQXFDNUUsTUFBTSxPQUFPLDBCQUEyQixTQUFRLGlCQUFpQjtJQUcvRCxnQkFBZ0I7UUFDZCxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM1RCxDQUFDO0lBQ0gsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMxQixDQUFDOytHQVhVLDBCQUEwQjttR0FBMUIsMEJBQTBCLGtNQWxDM0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBZ0NUOzs0RkFFVSwwQkFBMEI7a0JBcEN0QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQ1Q7aUJBQ0Y7OEJBRXlCLGdCQUFnQjtzQkFBdkMsU0FBUzt1QkFBQyxXQUFXOztBQVl4QixrQkFBa0IsQ0FBQyxpQkFBaUIsR0FBRywwQkFBMEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0NoaWxkLCBFbGVtZW50UmVmLCBBZnRlclZpZXdJbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdGVyaWFsQ29tcG9uZW50IH0gZnJvbSAnLi4vTWF0ZXJpYWxDb21wb25lbnQnO1xyXG5pbXBvcnQgU2lnbmF0dXJlQ29tcG9uZW50IGZyb20gJ2Zvcm1pb2pzL2NvbXBvbmVudHMvc2lnbmF0dXJlL1NpZ25hdHVyZS5qcyc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbWF0LWZvcm1pby1zaWduYXR1cmUnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8bWF0LWZvcm1pby1mb3JtLWZpZWxkIFtpbnN0YW5jZV09XCJpbnN0YW5jZVwiIFtjb21wb25lbnRUZW1wbGF0ZV09XCJjb21wb25lbnRUZW1wbGF0ZVwiPjwvbWF0LWZvcm1pby1mb3JtLWZpZWxkPlxyXG4gICAgPG5nLXRlbXBsYXRlICNjb21wb25lbnRUZW1wbGF0ZSBsZXQtaGFzTGFiZWw+XHJcbiAgICAgIDxkaXYgI3NpZ25hdHVyZT5cclxuXHJcbiAgICAgICAgPG1hdC1sYWJlbCAqbmdJZj1cImhhc0xhYmVsXCI+XHJcbiAgICAgICAgICA8c3BhbiBbaW5zdGFuY2VdPVwiaW5zdGFuY2VcIiBtYXRGb3JtaW9MYWJlbD48L3NwYW4+XHJcbiAgICAgICAgPC9tYXQtbGFiZWw+XHJcblxyXG4gICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIFtuZ1N0eWxlXT1cIntwb3NpdGlvbjogJ2Fic29sdXRlJ31cIiByZWY9XCJyZWZyZXNoXCI+XHJcbiAgICAgICAgICA8bWF0LWljb24+cmVmcmVzaDwvbWF0LWljb24+XHJcbiAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzaWduYXR1cmUtcGFkLWJvZHlcIlxyXG4gICAgICAgICAgICAgW25nU3R5bGVdPVwie3dpZHRoOiBpbnN0YW5jZS5jb21wb25lbnQud2lkdGgsIGhlaWdodDogaW5zdGFuY2UuY29tcG9uZW50LmhlaWdodCwgcGFkZGluZzogMCwgbWFyZ2luOiAwfVwiXHJcbiAgICAgICAgICAgICBbYXR0ci50YWJpbmRleF09XCJpbnN0YW5jZS5jb21wb25lbnQudGFiaW5kZXggfHwgMFwiXHJcbiAgICAgICAgICAgICByZWY9XCJwYWRCb2R5XCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8Y2FudmFzIGNsYXNzPVwic2lnbmF0dXJlLXBhZC1jYW52YXNcIlxyXG4gICAgICAgICAgICAgICAgICBbYXR0ci5oZWlnaHRdPVwiaW5zdGFuY2UuY29tcG9uZW50LmhlaWdodFwiXHJcbiAgICAgICAgICAgICAgICAgIHJlZj1cImNhbnZhc1wiXHJcbiAgICAgICAgICA+PC9jYW52YXM+XHJcbiAgICAgICAgICA8aW1nIHN0eWxlPVwid2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7XCIgW25nU3R5bGVdPVwie2Rpc3BsYXk6ICdub25lJ31cIiByZWY9XCJzaWduYXR1cmVJbWFnZVwiPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJpbnN0YW5jZS5jb21wb25lbnQuZm9vdGVyXCJcclxuICAgICAgICAgICAgIGNsYXNzPVwic2lnbmF0dXJlLXBhZC1mb290ZXJcIlxyXG4gICAgICAgICAgICAgc3R5bGU9XCJkaXNwbGF5OmZsZXg7IGZsZXgtZGlyZWN0aW9uOnJvdzsganVzdGlmeS1jb250ZW50OmNlbnRlcjsgYWxpZ24taXRlbXM6Y2VudGVyO1wiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG1hdC1oaW50Pnt7IGluc3RhbmNlLnQoaW5zdGFuY2UuY29tcG9uZW50LmZvb3RlcikgfX08L21hdC1oaW50PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgYFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWF0ZXJpYWxTaWduYXR1cmVDb21wb25lbnQgZXh0ZW5kcyBNYXRlcmlhbENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xyXG4gIEBWaWV3Q2hpbGQoJ3NpZ25hdHVyZScpIHNpZ25hdHVyZUVsZW1lbnQ6IEVsZW1lbnRSZWY7XHJcblxyXG4gIHJlbmRlckNvbXBvbmVudHMoKSB7XHJcbiAgICBpZiAodGhpcy5zaWduYXR1cmVFbGVtZW50KSB7XHJcbiAgICAgIHRoaXMuaW5zdGFuY2UuYXR0YWNoKHRoaXMuc2lnbmF0dXJlRWxlbWVudC5uYXRpdmVFbGVtZW50KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMucmVuZGVyQ29tcG9uZW50cygpO1xyXG4gIH1cclxufVxyXG5TaWduYXR1cmVDb21wb25lbnQuTWF0ZXJpYWxDb21wb25lbnQgPSBNYXRlcmlhbFNpZ25hdHVyZUNvbXBvbmVudDtcclxuZXhwb3J0IHsgU2lnbmF0dXJlQ29tcG9uZW50IH07XHJcbiJdfQ==
@@ -0,0 +1,166 @@
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 "../formio-form-field/formio-form-field.component";
11
+ import * as i6 from "../label/label.component";
12
+ export class MaterialSurveyComponent extends MaterialComponent {
13
+ constructor() {
14
+ super(...arguments);
15
+ this.controls = {};
16
+ }
17
+ getFormControl(question) {
18
+ if (!this.controls[question]) {
19
+ this.controls[question] = new FormControl();
20
+ if (this.instance.shouldDisabled) {
21
+ this.controls[question].disable();
22
+ }
23
+ }
24
+ return this.controls[question];
25
+ }
26
+ setDisabled(disabled) {
27
+ const method = disabled ? 'disable' : 'enable';
28
+ for (const question in this.controls) {
29
+ if (this.controls.hasOwnProperty(question)) {
30
+ this.controls[question][method]();
31
+ }
32
+ }
33
+ }
34
+ getValue() {
35
+ const values = {};
36
+ for (const question in this.controls) {
37
+ if (this.controls.hasOwnProperty(question)) {
38
+ values[question] = this.controls[question].value || false;
39
+ }
40
+ }
41
+ return values;
42
+ }
43
+ setValue(value) {
44
+ for (const question in value) {
45
+ if (value.hasOwnProperty(question)) {
46
+ const control = this.getFormControl(question);
47
+ if (control) {
48
+ control.setValue(value[question] || false);
49
+ }
50
+ }
51
+ }
52
+ }
53
+ getUniqueName(question) {
54
+ return `${this.instance.id}-${question}`;
55
+ }
56
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MaterialSurveyComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
57
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MaterialSurveyComponent, selector: "mat-formio-survey", usesInheritance: true, ngImport: i0, template: `
58
+
59
+ <mat-formio-form-field
60
+ [instance]="instance"
61
+ [componentTemplate]="componentTemplate"
62
+ [showDescription]="false"
63
+ ></mat-formio-form-field>
64
+ <ng-template #componentTemplate let-hasLabel>
65
+
66
+ <table class="mat-elevation-z8 mat-table" fxFill>
67
+ <thead>
68
+ <tr class="mat-header-row">
69
+ <th class="mat-header-cell">
70
+ <h2 *ngIf="hasLabel">
71
+ <span [instance]="instance" matFormioLabel></span>
72
+ </h2>
73
+ </th>
74
+ <th class="mat-header-cell"
75
+ *ngFor="let value of instance.component.values"
76
+ style="text-align: center;"
77
+ >
78
+ {{ value.label }}
79
+ </th>
80
+ </tr>
81
+ </thead>
82
+
83
+ <tbody>
84
+ <tr class="mat-row" *ngFor="let question of instance.component.questions; index as i;">
85
+ <td class="mat-cell">{{ question.label }}</td>
86
+ <td class="mat-cell"
87
+ *ngFor="let value of instance.component.values; index as j;"
88
+ style="text-align: center;"
89
+ >
90
+ <mat-radio-group (change)="onChange()"
91
+ [formControl]="getFormControl(question.value)"
92
+ [name]="getUniqueName(question.value)"
93
+ >
94
+ <mat-radio-button [value]="value.value"></mat-radio-button>
95
+ </mat-radio-group>
96
+ </td>
97
+ </tr>
98
+ <mat-hint *ngIf="instance.component.description" class="mat-formio-component-description">
99
+ {{ instance.component.description }}
100
+ </mat-hint>
101
+ </tbody>
102
+
103
+ <mat-error *ngIf="instance.error">{{ instance.error.message }}</mat-error>
104
+ </table>
105
+ </ng-template>
106
+ `, 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.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i4.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i4.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }, { 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"] }] }); }
107
+ }
108
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MaterialSurveyComponent, decorators: [{
109
+ type: Component,
110
+ args: [{
111
+ selector: 'mat-formio-survey',
112
+ template: `
113
+
114
+ <mat-formio-form-field
115
+ [instance]="instance"
116
+ [componentTemplate]="componentTemplate"
117
+ [showDescription]="false"
118
+ ></mat-formio-form-field>
119
+ <ng-template #componentTemplate let-hasLabel>
120
+
121
+ <table class="mat-elevation-z8 mat-table" fxFill>
122
+ <thead>
123
+ <tr class="mat-header-row">
124
+ <th class="mat-header-cell">
125
+ <h2 *ngIf="hasLabel">
126
+ <span [instance]="instance" matFormioLabel></span>
127
+ </h2>
128
+ </th>
129
+ <th class="mat-header-cell"
130
+ *ngFor="let value of instance.component.values"
131
+ style="text-align: center;"
132
+ >
133
+ {{ value.label }}
134
+ </th>
135
+ </tr>
136
+ </thead>
137
+
138
+ <tbody>
139
+ <tr class="mat-row" *ngFor="let question of instance.component.questions; index as i;">
140
+ <td class="mat-cell">{{ question.label }}</td>
141
+ <td class="mat-cell"
142
+ *ngFor="let value of instance.component.values; index as j;"
143
+ style="text-align: center;"
144
+ >
145
+ <mat-radio-group (change)="onChange()"
146
+ [formControl]="getFormControl(question.value)"
147
+ [name]="getUniqueName(question.value)"
148
+ >
149
+ <mat-radio-button [value]="value.value"></mat-radio-button>
150
+ </mat-radio-group>
151
+ </td>
152
+ </tr>
153
+ <mat-hint *ngIf="instance.component.description" class="mat-formio-component-description">
154
+ {{ instance.component.description }}
155
+ </mat-hint>
156
+ </tbody>
157
+
158
+ <mat-error *ngIf="instance.error">{{ instance.error.message }}</mat-error>
159
+ </table>
160
+ </ng-template>
161
+ `
162
+ }]
163
+ }] });
164
+ SurveyComponent.MaterialComponent = MaterialSurveyComponent;
165
+ export { SurveyComponent };
166
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VydmV5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZW5kZXItbWF0ZXJpYWwtZm9ybXMvc3JjL2xpYi9jb21wb25lbnRzL3N1cnZleS9zdXJ2ZXkuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxlQUFlLE1BQU0sc0NBQXNDLENBQUM7QUFDbkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7OztBQXVEN0MsTUFBTSxPQUFPLHVCQUF3QixTQUFRLGlCQUFpQjtJQXJEOUQ7O1FBc0RTLGFBQVEsR0FBUSxFQUFFLENBQUM7S0E0QzNCO0lBM0NDLGNBQWMsQ0FBQyxRQUFRO1FBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQzVDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDakMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNwQyxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsV0FBVyxDQUFDLFFBQVE7UUFDbEIsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztRQUMvQyxLQUFLLE1BQU0sUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNyQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7Z0JBQzNDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUNwQyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLEtBQUssTUFBTSxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3JDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztnQkFDM0MsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQztZQUM1RCxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBSztRQUNaLEtBQUssTUFBTSxRQUFRLElBQUksS0FBSyxFQUFFLENBQUM7WUFDN0IsSUFBSSxLQUFLLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7Z0JBQ25DLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzlDLElBQUksT0FBTyxFQUFFLENBQUM7b0JBQ1osT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxDQUFDLENBQUM7Z0JBQzdDLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxhQUFhLENBQUMsUUFBUTtRQUNwQixPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLElBQUksUUFBUSxFQUFFLENBQUM7SUFDM0MsQ0FBQzsrR0E1Q1UsdUJBQXVCO21HQUF2Qix1QkFBdUIsZ0ZBbkR0Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQWlEVDs7NEZBRVEsdUJBQXVCO2tCQXJEbkMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0FpRFQ7aUJBQ0o7O0FBK0NELGVBQWUsQ0FBQyxpQkFBaUIsR0FBRyx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZUFBZSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0ZXJpYWxDb21wb25lbnQgfSBmcm9tICcuLi9NYXRlcmlhbENvbXBvbmVudCc7XHJcbmltcG9ydCBTdXJ2ZXlDb21wb25lbnQgZnJvbSAnZm9ybWlvanMvY29tcG9uZW50cy9zdXJ2ZXkvU3VydmV5LmpzJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnbWF0LWZvcm1pby1zdXJ2ZXknLFxyXG4gICAgdGVtcGxhdGU6IGBcclxuXHJcbiAgICAgIDxtYXQtZm9ybWlvLWZvcm0tZmllbGRcclxuICAgICAgICAgICAgICBbaW5zdGFuY2VdPVwiaW5zdGFuY2VcIlxyXG4gICAgICAgICAgICAgIFtjb21wb25lbnRUZW1wbGF0ZV09XCJjb21wb25lbnRUZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgICAgW3Nob3dEZXNjcmlwdGlvbl09XCJmYWxzZVwiXHJcbiAgICAgID48L21hdC1mb3JtaW8tZm9ybS1maWVsZD5cclxuICAgICAgPG5nLXRlbXBsYXRlICNjb21wb25lbnRUZW1wbGF0ZSBsZXQtaGFzTGFiZWw+XHJcblxyXG4gICAgICAgIDx0YWJsZSBjbGFzcz1cIm1hdC1lbGV2YXRpb24tejggbWF0LXRhYmxlXCIgZnhGaWxsPlxyXG4gICAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgPHRyIGNsYXNzPVwibWF0LWhlYWRlci1yb3dcIj5cclxuICAgICAgICAgICAgPHRoIGNsYXNzPVwibWF0LWhlYWRlci1jZWxsXCI+XHJcbiAgICAgICAgICAgICAgPGgyICpuZ0lmPVwiaGFzTGFiZWxcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIFtpbnN0YW5jZV09XCJpbnN0YW5jZVwiIG1hdEZvcm1pb0xhYmVsPjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2gyPlxyXG4gICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICA8dGggY2xhc3M9XCJtYXQtaGVhZGVyLWNlbGxcIlxyXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHZhbHVlIG9mIGluc3RhbmNlLmNvbXBvbmVudC52YWx1ZXNcIlxyXG4gICAgICAgICAgICAgICAgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7XCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIHt7IHZhbHVlLmxhYmVsIH19XHJcbiAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgPC90aGVhZD5cclxuXHJcbiAgICAgICAgICA8dGJvZHk+XHJcbiAgICAgICAgICA8dHIgY2xhc3M9XCJtYXQtcm93XCIgKm5nRm9yPVwibGV0IHF1ZXN0aW9uIG9mIGluc3RhbmNlLmNvbXBvbmVudC5xdWVzdGlvbnM7IGluZGV4IGFzIGk7XCI+XHJcbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cIm1hdC1jZWxsXCI+e3sgcXVlc3Rpb24ubGFiZWwgfX08L3RkPlxyXG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJtYXQtY2VsbFwiXHJcbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgdmFsdWUgb2YgaW5zdGFuY2UuY29tcG9uZW50LnZhbHVlczsgaW5kZXggYXMgajtcIlxyXG4gICAgICAgICAgICAgICAgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7XCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxtYXQtcmFkaW8tZ3JvdXAgKGNoYW5nZSk9XCJvbkNoYW5nZSgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJnZXRGb3JtQ29udHJvbChxdWVzdGlvbi52YWx1ZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25hbWVdPVwiZ2V0VW5pcXVlTmFtZShxdWVzdGlvbi52YWx1ZSlcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIFt2YWx1ZV09XCJ2YWx1ZS52YWx1ZVwiPjwvbWF0LXJhZGlvLWJ1dHRvbj5cclxuICAgICAgICAgICAgICA8L21hdC1yYWRpby1ncm91cD5cclxuICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICA8bWF0LWhpbnQgKm5nSWY9XCJpbnN0YW5jZS5jb21wb25lbnQuZGVzY3JpcHRpb25cIiBjbGFzcz1cIm1hdC1mb3JtaW8tY29tcG9uZW50LWRlc2NyaXB0aW9uXCI+XHJcbiAgICAgICAgICAgIHt7IGluc3RhbmNlLmNvbXBvbmVudC5kZXNjcmlwdGlvbiB9fVxyXG4gICAgICAgICAgPC9tYXQtaGludD5cclxuICAgICAgICAgIDwvdGJvZHk+XHJcblxyXG4gICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImluc3RhbmNlLmVycm9yXCI+e3sgaW5zdGFuY2UuZXJyb3IubWVzc2FnZSB9fTwvbWF0LWVycm9yPlxyXG4gICAgICAgIDwvdGFibGU+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICBgXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNYXRlcmlhbFN1cnZleUNvbXBvbmVudCBleHRlbmRzIE1hdGVyaWFsQ29tcG9uZW50IHtcclxuICBwdWJsaWMgY29udHJvbHM6IGFueSA9IHt9O1xyXG4gIGdldEZvcm1Db250cm9sKHF1ZXN0aW9uKSB7XHJcbiAgICBpZiAoIXRoaXMuY29udHJvbHNbcXVlc3Rpb25dKSB7XHJcbiAgICAgIHRoaXMuY29udHJvbHNbcXVlc3Rpb25dID0gbmV3IEZvcm1Db250cm9sKCk7XHJcbiAgICAgIGlmICh0aGlzLmluc3RhbmNlLnNob3VsZERpc2FibGVkKSB7XHJcbiAgICAgICAgdGhpcy5jb250cm9sc1txdWVzdGlvbl0uZGlzYWJsZSgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5jb250cm9sc1txdWVzdGlvbl07XHJcbiAgfVxyXG5cclxuICBzZXREaXNhYmxlZChkaXNhYmxlZCkge1xyXG4gICAgY29uc3QgbWV0aG9kID0gZGlzYWJsZWQgPyAnZGlzYWJsZScgOiAnZW5hYmxlJztcclxuICAgIGZvciAoY29uc3QgcXVlc3Rpb24gaW4gdGhpcy5jb250cm9scykge1xyXG4gICAgICBpZiAodGhpcy5jb250cm9scy5oYXNPd25Qcm9wZXJ0eShxdWVzdGlvbikpIHtcclxuICAgICAgICB0aGlzLmNvbnRyb2xzW3F1ZXN0aW9uXVttZXRob2RdKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFZhbHVlKCkge1xyXG4gICAgY29uc3QgdmFsdWVzID0ge307XHJcbiAgICBmb3IgKGNvbnN0IHF1ZXN0aW9uIGluIHRoaXMuY29udHJvbHMpIHtcclxuICAgICAgaWYgKHRoaXMuY29udHJvbHMuaGFzT3duUHJvcGVydHkocXVlc3Rpb24pKSB7XHJcbiAgICAgICAgdmFsdWVzW3F1ZXN0aW9uXSA9IHRoaXMuY29udHJvbHNbcXVlc3Rpb25dLnZhbHVlIHx8IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdmFsdWVzO1xyXG4gIH1cclxuXHJcbiAgc2V0VmFsdWUodmFsdWUpIHtcclxuICAgIGZvciAoY29uc3QgcXVlc3Rpb24gaW4gdmFsdWUpIHtcclxuICAgICAgaWYgKHZhbHVlLmhhc093blByb3BlcnR5KHF1ZXN0aW9uKSkge1xyXG4gICAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmdldEZvcm1Db250cm9sKHF1ZXN0aW9uKTtcclxuICAgICAgICBpZiAoY29udHJvbCkge1xyXG4gICAgICAgICAgY29udHJvbC5zZXRWYWx1ZSh2YWx1ZVtxdWVzdGlvbl0gfHwgZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0VW5pcXVlTmFtZShxdWVzdGlvbikge1xyXG4gICAgcmV0dXJuIGAke3RoaXMuaW5zdGFuY2UuaWR9LSR7cXVlc3Rpb259YDtcclxuICB9XHJcbn1cclxuU3VydmV5Q29tcG9uZW50Lk1hdGVyaWFsQ29tcG9uZW50ID0gTWF0ZXJpYWxTdXJ2ZXlDb21wb25lbnQ7XHJcbmV4cG9ydCB7IFN1cnZleUNvbXBvbmVudCB9O1xyXG4iXX0=
@@ -0,0 +1,96 @@
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
+ export class MaterialTableComponent extends MaterialNestedComponent {
7
+ setInstance(instance) {
8
+ super.setInstance(instance);
9
+ instance.viewContainer = (component) => {
10
+ return this.viewContainers ?
11
+ this.viewContainers[(component.tableRow * this.instance.component.numCols) + component.tableColumn] :
12
+ null;
13
+ };
14
+ }
15
+ getTableColClasses() {
16
+ if (!this.instance) {
17
+ return;
18
+ }
19
+ const { condensed, cellAlignment } = this.instance.component;
20
+ return {
21
+ 'is-condensed': condensed,
22
+ ...(cellAlignment && { [cellAlignment]: true })
23
+ };
24
+ }
25
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MaterialTableComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
26
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MaterialTableComponent, selector: "mat-formio-table", usesInheritance: true, ngImport: i0, template: `
27
+ <table class="mat-table" style="width: 100%;" [ngClass]="{'is-bordered' : instance.component.bordered}">
28
+ <thead>
29
+ <tr class="mat-header-row">
30
+ <th *ngFor="let header of instance.component.header"
31
+ class="mat-header-cell"
32
+ >
33
+ {{ instance.t(header) }}
34
+ </th>
35
+ </tr>
36
+ </thead>
37
+
38
+ <tbody>
39
+ <tr *ngFor="let row of instance.table; let i = index"
40
+ role="row"
41
+ class="mat-row"
42
+ [ngClass]="{
43
+ 'is-hover': instance.component.hover,
44
+ 'is-striped': instance.component.striped && i % 2 === 0
45
+ }"
46
+ >
47
+ <td *ngFor="let col of row"
48
+ role="gridcell"
49
+ class="mat-cell"
50
+ [ngClass]="getTableColClasses()"
51
+ >
52
+ <ng-template #components></ng-template>
53
+ </td>
54
+ </tr>
55
+ </tbody>
56
+ </table>
57
+ `, isInline: true, styles: [".mat-mdc-table.is-bordered{border:1px solid #ddd}.mat-mdc-row.is-hover:hover{background-color:#f5f5f5}.mat-mdc-cell{padding:8px}.mat-mdc-cell.is-condensed{padding:3px}.mat-mdc-row.is-striped{background-color:#eee}.mat-mdc-cell.center{text-align:center}.mat-mdc-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"] }] }); }
58
+ }
59
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MaterialTableComponent, decorators: [{
60
+ type: Component,
61
+ args: [{ selector: 'mat-formio-table', template: `
62
+ <table class="mat-table" style="width: 100%;" [ngClass]="{'is-bordered' : instance.component.bordered}">
63
+ <thead>
64
+ <tr class="mat-header-row">
65
+ <th *ngFor="let header of instance.component.header"
66
+ class="mat-header-cell"
67
+ >
68
+ {{ instance.t(header) }}
69
+ </th>
70
+ </tr>
71
+ </thead>
72
+
73
+ <tbody>
74
+ <tr *ngFor="let row of instance.table; let i = index"
75
+ role="row"
76
+ class="mat-row"
77
+ [ngClass]="{
78
+ 'is-hover': instance.component.hover,
79
+ 'is-striped': instance.component.striped && i % 2 === 0
80
+ }"
81
+ >
82
+ <td *ngFor="let col of row"
83
+ role="gridcell"
84
+ class="mat-cell"
85
+ [ngClass]="getTableColClasses()"
86
+ >
87
+ <ng-template #components></ng-template>
88
+ </td>
89
+ </tr>
90
+ </tbody>
91
+ </table>
92
+ `, styles: [".mat-mdc-table.is-bordered{border:1px solid #ddd}.mat-mdc-row.is-hover:hover{background-color:#f5f5f5}.mat-mdc-cell{padding:8px}.mat-mdc-cell.is-condensed{padding:3px}.mat-mdc-row.is-striped{background-color:#eee}.mat-mdc-cell.center{text-align:center}.mat-mdc-cell.right{text-align:right}\n"] }]
93
+ }] });
94
+ TableComponent.MaterialComponent = MaterialTableComponent;
95
+ export { TableComponent };
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJlbmRlci1tYXRlcmlhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUvdGFibGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDckUsT0FBTyxjQUFjLE1BQU0sb0NBQW9DLENBQUM7OztBQXNDaEUsTUFBTSxPQUFPLHNCQUF1QixTQUFRLHVCQUF1QjtJQUVqRSxXQUFXLENBQUMsUUFBYTtRQUN2QixLQUFLLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzVCLFFBQVEsQ0FBQyxhQUFhLEdBQUcsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUNyQyxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFDMUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEdBQUcsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7Z0JBQ3JHLElBQUksQ0FBQztRQUNULENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNuQixPQUFPO1FBQ1QsQ0FBQztRQUNELE1BQU0sRUFBQyxTQUFTLEVBQUUsYUFBYSxFQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUM7UUFDM0QsT0FBTztZQUNMLGNBQWMsRUFBRSxTQUFTO1lBQ3pCLEdBQUcsQ0FBQyxhQUFhLElBQUksRUFBQyxDQUFDLGFBQWEsQ0FBQyxFQUFFLElBQUksRUFBQyxDQUFDO1NBQzlDLENBQUE7SUFDSCxDQUFDOytHQXBCVSxzQkFBc0I7bUdBQXRCLHNCQUFzQiwrRUFqQ3ZCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0JUOzs0RkFFVSxzQkFBc0I7a0JBcENsQyxTQUFTOytCQUNFLGtCQUFrQixZQUVsQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQStCVDs7QUF3QkgsY0FBYyxDQUFDLGlCQUFpQixHQUFHLHNCQUFzQixDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbE5lc3RlZENvbXBvbmVudCB9IGZyb20gJy4uL01hdGVyaWFsTmVzdGVkQ29tcG9uZW50JztcclxuaW1wb3J0IFRhYmxlQ29tcG9uZW50IGZyb20gJ2Zvcm1pb2pzL2NvbXBvbmVudHMvdGFibGUvVGFibGUuanMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdtYXQtZm9ybWlvLXRhYmxlJyxcclxuICBzdHlsZVVybHM6IFsgJy4vdGFibGUuY29tcG9uZW50LmNzcycgXSxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgICA8dGFibGUgY2xhc3M9XCJtYXQtdGFibGVcIiBzdHlsZT1cIndpZHRoOiAxMDAlO1wiIFtuZ0NsYXNzXT1cInsnaXMtYm9yZGVyZWQnIDogaW5zdGFuY2UuY29tcG9uZW50LmJvcmRlcmVkfVwiPlxyXG4gICAgICAgIDx0aGVhZD5cclxuICAgICAgICA8dHIgY2xhc3M9XCJtYXQtaGVhZGVyLXJvd1wiPlxyXG4gICAgICAgICAgPHRoICpuZ0Zvcj1cImxldCBoZWFkZXIgb2YgaW5zdGFuY2UuY29tcG9uZW50LmhlYWRlclwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJtYXQtaGVhZGVyLWNlbGxcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICB7eyBpbnN0YW5jZS50KGhlYWRlcikgfX1cclxuICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgPC90cj5cclxuICAgICAgICA8L3RoZWFkPlxyXG5cclxuICAgICAgICA8dGJvZHk+XHJcbiAgICAgICAgPHRyICpuZ0Zvcj1cImxldCByb3cgb2YgaW5zdGFuY2UudGFibGU7IGxldCBpID0gaW5kZXhcIlxyXG4gICAgICAgICAgICByb2xlPVwicm93XCJcclxuICAgICAgICAgICAgY2xhc3M9XCJtYXQtcm93XCJcclxuICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAgICAgJ2lzLWhvdmVyJzogaW5zdGFuY2UuY29tcG9uZW50LmhvdmVyLFxyXG4gICAgICAgICAgICAgICAgJ2lzLXN0cmlwZWQnOiBpbnN0YW5jZS5jb21wb25lbnQuc3RyaXBlZCAmJiBpICUgMiA9PT0gMFxyXG4gICAgICAgICAgICAgIH1cIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDx0ZCAqbmdGb3I9XCJsZXQgY29sIG9mIHJvd1wiXHJcbiAgICAgICAgICAgICAgcm9sZT1cImdyaWRjZWxsXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cIm1hdC1jZWxsXCJcclxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJnZXRUYWJsZUNvbENsYXNzZXMoKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjY29tcG9uZW50cz48L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgPC90ZD5cclxuICAgICAgICA8L3RyPlxyXG4gICAgICAgIDwvdGJvZHk+XHJcbiAgICAgIDwvdGFibGU+XHJcbiAgYFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWF0ZXJpYWxUYWJsZUNvbXBvbmVudCBleHRlbmRzIE1hdGVyaWFsTmVzdGVkQ29tcG9uZW50IHtcclxuXHJcbiAgc2V0SW5zdGFuY2UoaW5zdGFuY2U6IGFueSkge1xyXG4gICAgc3VwZXIuc2V0SW5zdGFuY2UoaW5zdGFuY2UpO1xyXG4gICAgaW5zdGFuY2Uudmlld0NvbnRhaW5lciA9IChjb21wb25lbnQpID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMudmlld0NvbnRhaW5lcnMgP1xyXG4gICAgICAgIHRoaXMudmlld0NvbnRhaW5lcnNbKGNvbXBvbmVudC50YWJsZVJvdyAqIHRoaXMuaW5zdGFuY2UuY29tcG9uZW50Lm51bUNvbHMpICsgY29tcG9uZW50LnRhYmxlQ29sdW1uXSA6XHJcbiAgICAgICAgbnVsbDtcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBnZXRUYWJsZUNvbENsYXNzZXMoKSB7XHJcbiAgICBpZiAoIXRoaXMuaW5zdGFuY2UpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3Qge2NvbmRlbnNlZCwgY2VsbEFsaWdubWVudH0gPSB0aGlzLmluc3RhbmNlLmNvbXBvbmVudDtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICdpcy1jb25kZW5zZWQnOiBjb25kZW5zZWQsXHJcbiAgICAgIC4uLihjZWxsQWxpZ25tZW50ICYmIHtbY2VsbEFsaWdubWVudF06IHRydWV9KVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5UYWJsZUNvbXBvbmVudC5NYXRlcmlhbENvbXBvbmVudCA9IE1hdGVyaWFsVGFibGVDb21wb25lbnQ7XHJcbmV4cG9ydCB7IFRhYmxlQ29tcG9uZW50IH07XHJcbiJdfQ==
@@ -0,0 +1,42 @@
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
+ export class MaterialTabsComponent extends MaterialNestedComponent {
8
+ setInstance(instance) {
9
+ super.setInstance(instance);
10
+ instance.viewContainer = (component) => {
11
+ return this.viewContainers ? this.viewContainers[component.tab] : null;
12
+ };
13
+ }
14
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MaterialTabsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
15
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MaterialTabsComponent, selector: "mat-formio-tabs", usesInheritance: true, ngImport: i0, template: `
16
+ <mat-tab-group>
17
+ <mat-tab *ngFor="let tab of instance.component.components" [label]="tab.label">
18
+ <div style="display:flex; flex-direction:column; gap:1em; border: 1px dotted rgba(0, 0, 0, 0.125)">
19
+ <ng-template #components></ng-template>
20
+ </div>
21
+ </mat-tab>
22
+ </mat-tab-group>
23
+ `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i2.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass"], exportAs: ["matTab"] }, { kind: "component", type: i2.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "fitInkBarToContent", "mat-stretch-tabs", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration", "contentTabIndex", "disablePagination", "disableRipple", "preserveContent", "backgroundColor", "aria-label", "aria-labelledby"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["matTabGroup"] }] }); }
24
+ }
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MaterialTabsComponent, decorators: [{
26
+ type: Component,
27
+ args: [{
28
+ selector: 'mat-formio-tabs',
29
+ template: `
30
+ <mat-tab-group>
31
+ <mat-tab *ngFor="let tab of instance.component.components" [label]="tab.label">
32
+ <div style="display:flex; flex-direction:column; gap:1em; border: 1px dotted rgba(0, 0, 0, 0.125)">
33
+ <ng-template #components></ng-template>
34
+ </div>
35
+ </mat-tab>
36
+ </mat-tab-group>
37
+ `
38
+ }]
39
+ }] });
40
+ TabsComponent.MaterialComponent = MaterialTabsComponent;
41
+ export { TabsComponent };
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmVuZGVyLW1hdGVyaWFsLWZvcm1zL3NyYy9saWIvY29tcG9uZW50cy90YWJzL3RhYnMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDckUsT0FBTyxhQUFhLE1BQU0sa0NBQWtDLENBQUM7Ozs7QUFjN0QsTUFBTSxPQUFPLHFCQUFzQixTQUFRLHVCQUF1QjtJQUNoRSxXQUFXLENBQUMsUUFBYTtRQUN2QixLQUFLLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzVCLFFBQVEsQ0FBQyxhQUFhLEdBQUcsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUNyQyxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDekUsQ0FBQyxDQUFDO0lBQ0osQ0FBQzsrR0FOVSxxQkFBcUI7bUdBQXJCLHFCQUFxQiw4RUFWdEI7Ozs7Ozs7O0dBUVQ7OzRGQUVVLHFCQUFxQjtrQkFaakMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixRQUFRLEVBQUU7Ozs7Ozs7O0dBUVQ7aUJBQ0Y7O0FBU0QsYUFBYSxDQUFDLGlCQUFpQixHQUFHLHFCQUFxQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxhQUFhLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbE5lc3RlZENvbXBvbmVudCB9IGZyb20gJy4uL01hdGVyaWFsTmVzdGVkQ29tcG9uZW50JztcclxuaW1wb3J0IFRhYnNDb21wb25lbnQgZnJvbSAnZm9ybWlvanMvY29tcG9uZW50cy90YWJzL1RhYnMuanMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdtYXQtZm9ybWlvLXRhYnMnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8bWF0LXRhYi1ncm91cD5cclxuICAgICAgPG1hdC10YWIgKm5nRm9yPVwibGV0IHRhYiBvZiBpbnN0YW5jZS5jb21wb25lbnQuY29tcG9uZW50c1wiIFtsYWJlbF09XCJ0YWIubGFiZWxcIj5cclxuICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTpmbGV4OyBmbGV4LWRpcmVjdGlvbjpjb2x1bW47IGdhcDoxZW07IGJvcmRlcjogMXB4IGRvdHRlZCByZ2JhKDAsIDAsIDAsIDAuMTI1KVwiPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNjb21wb25lbnRzPjwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbWF0LXRhYj5cclxuICAgIDwvbWF0LXRhYi1ncm91cD5cclxuICBgXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNYXRlcmlhbFRhYnNDb21wb25lbnQgZXh0ZW5kcyBNYXRlcmlhbE5lc3RlZENvbXBvbmVudCB7XHJcbiAgc2V0SW5zdGFuY2UoaW5zdGFuY2U6IGFueSkge1xyXG4gICAgc3VwZXIuc2V0SW5zdGFuY2UoaW5zdGFuY2UpO1xyXG4gICAgaW5zdGFuY2Uudmlld0NvbnRhaW5lciA9IChjb21wb25lbnQpID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMudmlld0NvbnRhaW5lcnMgPyB0aGlzLnZpZXdDb250YWluZXJzW2NvbXBvbmVudC50YWJdIDogbnVsbDtcclxuICAgIH07XHJcbiAgfVxyXG59XHJcblRhYnNDb21wb25lbnQuTWF0ZXJpYWxDb21wb25lbnQgPSBNYXRlcmlhbFRhYnNDb21wb25lbnQ7XHJcbmV4cG9ydCB7IFRhYnNDb21wb25lbnQgfTtcclxuIl19