ngx-render-material-forms 0.0.1

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 (109) hide show
  1. package/README.md +24 -0
  2. package/esm2020/lib/FormioControl.mjs +36 -0
  3. package/esm2020/lib/components/Base.mjs +32 -0
  4. package/esm2020/lib/components/MaterialComponent.mjs +145 -0
  5. package/esm2020/lib/components/MaterialNestedComponent.mjs +38 -0
  6. package/esm2020/lib/components/Webform.mjs +19 -0
  7. package/esm2020/lib/components/button/button.component.mjs +91 -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/container/container.component.mjs +25 -0
  12. package/esm2020/lib/components/content/content.component.mjs +18 -0
  13. package/esm2020/lib/components/currency/currency.component.mjs +35 -0
  14. package/esm2020/lib/components/datagrid/datagrid.component.mjs +244 -0
  15. package/esm2020/lib/components/date/date.component.mjs +325 -0
  16. package/esm2020/lib/components/day/day.component.mjs +154 -0
  17. package/esm2020/lib/components/editgrid/editgrid.component.mjs +243 -0
  18. package/esm2020/lib/components/email/email.component.mjs +29 -0
  19. package/esm2020/lib/components/fieldset/fieldset.component.mjs +50 -0
  20. package/esm2020/lib/components/formio-form-field/formio-form-field.component.mjs +57 -0
  21. package/esm2020/lib/components/formio.wizard.mjs +88 -0
  22. package/esm2020/lib/components/hidden/hidden.component.mjs +20 -0
  23. package/esm2020/lib/components/html/html.component.mjs +29 -0
  24. package/esm2020/lib/components/index.mjs +125 -0
  25. package/esm2020/lib/components/label/label.component.mjs +17 -0
  26. package/esm2020/lib/components/number/number.component.mjs +66 -0
  27. package/esm2020/lib/components/panel/panel.component.mjs +57 -0
  28. package/esm2020/lib/components/password/password.component.mjs +29 -0
  29. package/esm2020/lib/components/phonenumber/phonenumber.component.mjs +29 -0
  30. package/esm2020/lib/components/radio/radio.component.mjs +96 -0
  31. package/esm2020/lib/components/select/select.component.mjs +186 -0
  32. package/esm2020/lib/components/selectboxes/selectboxes.component.mjs +102 -0
  33. package/esm2020/lib/components/signature/signature.component.mjs +103 -0
  34. package/esm2020/lib/components/survey/survey.component.mjs +167 -0
  35. package/esm2020/lib/components/table/table.component.mjs +97 -0
  36. package/esm2020/lib/components/tabs/tabs.component.mjs +43 -0
  37. package/esm2020/lib/components/tags/tags.component.mjs +117 -0
  38. package/esm2020/lib/components/textarea/textarea.component.mjs +82 -0
  39. package/esm2020/lib/components/textfield/textfield.component.mjs +108 -0
  40. package/esm2020/lib/components/time/time.component.mjs +206 -0
  41. package/esm2020/lib/components/url/url.component.mjs +29 -0
  42. package/esm2020/lib/components/well/well.component.mjs +43 -0
  43. package/esm2020/lib/const/ButtonsThemes.mjs +17 -0
  44. package/esm2020/lib/const/LabelPositions.mjs +10 -0
  45. package/esm2020/lib/directives/mask.directive.mjs +65 -0
  46. package/esm2020/lib/formio.component.mjs +80 -0
  47. package/esm2020/lib/ngx-render-material-forms.component.mjs +22 -0
  48. package/esm2020/lib/ngx-render-material-forms.module.mjs +344 -0
  49. package/esm2020/lib/ngx-render-material-forms.service.mjs +14 -0
  50. package/esm2020/lib/renderer.mjs +13 -0
  51. package/esm2020/ngx-render-material-forms.mjs +5 -0
  52. package/esm2020/public-api.mjs +7 -0
  53. package/fesm2015/ngx-render-material-forms - Copy.mjs +3787 -0
  54. package/fesm2015/ngx-render-material-forms.js +3787 -0
  55. package/fesm2015/ngx-render-material-forms.mjs.map +1 -0
  56. package/fesm2020/ngx-render-material-forms.mjs +3788 -0
  57. package/fesm2020/ngx-render-material-forms.mjs.map +1 -0
  58. package/index.d.ts +5 -0
  59. package/lib/FormioControl.d.ts +7 -0
  60. package/lib/components/Base.d.ts +2 -0
  61. package/lib/components/MaterialComponent.d.ts +30 -0
  62. package/lib/components/MaterialNestedComponent.d.ts +13 -0
  63. package/lib/components/Webform.d.ts +1 -0
  64. package/lib/components/button/button.component.d.ts +23 -0
  65. package/lib/components/calendar/calendar.component.d.ts +34 -0
  66. package/lib/components/checkbox/checkbox.component.d.ts +9 -0
  67. package/lib/components/columns/columns.component.d.ts +12 -0
  68. package/lib/components/container/container.component.d.ts +8 -0
  69. package/lib/components/content/content.component.d.ts +8 -0
  70. package/lib/components/currency/currency.component.d.ts +10 -0
  71. package/lib/components/datagrid/datagrid.component.d.ts +22 -0
  72. package/lib/components/date/date.component.d.ts +40 -0
  73. package/lib/components/day/day.component.d.ts +16 -0
  74. package/lib/components/editgrid/editgrid.component.d.ts +50 -0
  75. package/lib/components/email/email.component.d.ts +9 -0
  76. package/lib/components/fieldset/fieldset.component.d.ts +8 -0
  77. package/lib/components/formio-form-field/formio-form-field.component.d.ts +18 -0
  78. package/lib/components/formio.wizard.d.ts +19 -0
  79. package/lib/components/hidden/hidden.component.d.ts +8 -0
  80. package/lib/components/html/html.component.d.ts +11 -0
  81. package/lib/components/index.d.ts +2 -0
  82. package/lib/components/label/label.component.d.ts +6 -0
  83. package/lib/components/number/number.component.d.ts +18 -0
  84. package/lib/components/panel/panel.component.d.ts +8 -0
  85. package/lib/components/password/password.component.d.ts +9 -0
  86. package/lib/components/phonenumber/phonenumber.component.d.ts +9 -0
  87. package/lib/components/radio/radio.component.d.ts +12 -0
  88. package/lib/components/select/select.component.d.ts +25 -0
  89. package/lib/components/selectboxes/selectboxes.component.d.ts +15 -0
  90. package/lib/components/signature/signature.component.d.ts +12 -0
  91. package/lib/components/survey/survey.component.d.ts +14 -0
  92. package/lib/components/table/table.component.d.ts +12 -0
  93. package/lib/components/tabs/tabs.component.d.ts +9 -0
  94. package/lib/components/tags/tags.component.d.ts +15 -0
  95. package/lib/components/textarea/textarea.component.d.ts +12 -0
  96. package/lib/components/textfield/textfield.component.d.ts +17 -0
  97. package/lib/components/time/time.component.d.ts +27 -0
  98. package/lib/components/url/url.component.d.ts +9 -0
  99. package/lib/components/well/well.component.d.ts +8 -0
  100. package/lib/const/ButtonsThemes.d.ts +14 -0
  101. package/lib/const/LabelPositions.d.ts +8 -0
  102. package/lib/directives/mask.directive.d.ts +17 -0
  103. package/lib/formio.component.d.ts +15 -0
  104. package/lib/ngx-render-material-forms.component.d.ts +8 -0
  105. package/lib/ngx-render-material-forms.module.d.ts +106 -0
  106. package/lib/ngx-render-material-forms.service.d.ts +6 -0
  107. package/lib/renderer.d.ts +8 -0
  108. package/package.json +38 -0
  109. package/public-api.d.ts +3 -0
@@ -0,0 +1,54 @@
1
+ import { Component } from '@angular/core';
2
+ import { MaterialComponent } from '../MaterialComponent';
3
+ // import CheckboxComponent from 'formiojs/components/checkbox/Checkbox.js';
4
+ import CheckboxComponent from 'formiojs/components/checkbox/Checkbox.js';
5
+ import _ from 'lodash';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/common";
8
+ import * as i2 from "@angular/forms";
9
+ import * as i3 from "@angular/material/form-field";
10
+ import * as i4 from "@angular/material/checkbox";
11
+ import * as i5 from "@angular/material/tooltip";
12
+ import * as i6 from "@angular/material/icon";
13
+ import * as i7 from "@angular/flex-layout/extended";
14
+ import * as i8 from "../label/label.component";
15
+ export class MaterialCheckboxComponent extends MaterialComponent {
16
+ getValue() {
17
+ return _.isNil(this.control.value) ? '' : this.control.value;
18
+ }
19
+ }
20
+ MaterialCheckboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MaterialCheckboxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
21
+ MaterialCheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: MaterialCheckboxComponent, selector: "mat-formio-checkbox", usesInheritance: true, ngImport: i0, template: `
22
+ <mat-checkbox (change)="onChange()" [ngClass]="{'validation-error' : !!instance.error}"
23
+ [formControl]="control"
24
+ >
25
+ <span matFormioLabel [instance]="instance"></span>
26
+ <mat-icon *ngIf="instance.component.tooltip" matSuffix
27
+ matTooltip="{{ instance.component.tooltip }}" style="font-size: 1rem;">info
28
+ </mat-icon>
29
+ </mat-checkbox>
30
+ <mat-hint>
31
+ {{ instance.component.description }}
32
+ </mat-hint>
33
+ <mat-error *ngIf="instance.error">{{ instance.error.message }}</mat-error>
34
+ `, isInline: true, styles: ["::ng-deep .mat-checkbox.validation-error .mat-checkbox-frame{border-color:red}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.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: i3.MatSuffix, selector: "[matSuffix]" }, { kind: "component", type: i4.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i5.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i7.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"] }, { kind: "component", type: i8.LabelComponent, selector: "span[matFormioLabel]", inputs: ["instance"] }] });
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MaterialCheckboxComponent, decorators: [{
36
+ type: Component,
37
+ args: [{ selector: 'mat-formio-checkbox', template: `
38
+ <mat-checkbox (change)="onChange()" [ngClass]="{'validation-error' : !!instance.error}"
39
+ [formControl]="control"
40
+ >
41
+ <span matFormioLabel [instance]="instance"></span>
42
+ <mat-icon *ngIf="instance.component.tooltip" matSuffix
43
+ matTooltip="{{ instance.component.tooltip }}" style="font-size: 1rem;">info
44
+ </mat-icon>
45
+ </mat-checkbox>
46
+ <mat-hint>
47
+ {{ instance.component.description }}
48
+ </mat-hint>
49
+ <mat-error *ngIf="instance.error">{{ instance.error.message }}</mat-error>
50
+ `, styles: ["::ng-deep .mat-checkbox.validation-error .mat-checkbox-frame{border-color:red}\n"] }]
51
+ }] });
52
+ CheckboxComponent.MaterialComponent = MaterialCheckboxComponent;
53
+ export { CheckboxComponent };
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJlbmRlci1tYXRlcmlhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsNEVBQTRFO0FBQzVFLE9BQU8saUJBQWlCLE1BQU0sMENBQTBDLENBQUM7QUFDekUsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDOzs7Ozs7Ozs7O0FBb0J2QixNQUFNLE9BQU8seUJBQTBCLFNBQVEsaUJBQWlCO0lBQzlELFFBQVE7UUFDTixPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUMvRCxDQUFDOztzSEFIVSx5QkFBeUI7MEdBQXpCLHlCQUF5QixrRkFoQjFCOzs7Ozs7Ozs7Ozs7O0dBYVQ7MkZBR1UseUJBQXlCO2tCQWxCckMsU0FBUzsrQkFDRSxxQkFBcUIsWUFDckI7Ozs7Ozs7Ozs7Ozs7R0FhVDs7QUFRSCxpQkFBaUIsQ0FBQyxpQkFBaUIsR0FBRyx5QkFBeUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0ZXJpYWxDb21wb25lbnQgfSBmcm9tICcuLi9NYXRlcmlhbENvbXBvbmVudCc7XG4vLyBpbXBvcnQgQ2hlY2tib3hDb21wb25lbnQgZnJvbSAnZm9ybWlvanMvY29tcG9uZW50cy9jaGVja2JveC9DaGVja2JveC5qcyc7XG5pbXBvcnQgQ2hlY2tib3hDb21wb25lbnQgZnJvbSAnZm9ybWlvanMvY29tcG9uZW50cy9jaGVja2JveC9DaGVja2JveC5qcyc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtYXQtZm9ybWlvLWNoZWNrYm94JyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8bWF0LWNoZWNrYm94IChjaGFuZ2UpPVwib25DaGFuZ2UoKVwiIFtuZ0NsYXNzXT1cInsndmFsaWRhdGlvbi1lcnJvcicgOiAhIWluc3RhbmNlLmVycm9yfVwiXG4gICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiXG4gICAgPlxuICAgICAgPHNwYW4gbWF0Rm9ybWlvTGFiZWwgW2luc3RhbmNlXT1cImluc3RhbmNlXCI+PC9zcGFuPlxuICAgICAgPG1hdC1pY29uICpuZ0lmPVwiaW5zdGFuY2UuY29tcG9uZW50LnRvb2x0aXBcIiBtYXRTdWZmaXhcbiAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwie3sgaW5zdGFuY2UuY29tcG9uZW50LnRvb2x0aXAgfX1cIiBzdHlsZT1cImZvbnQtc2l6ZTogMXJlbTtcIj5pbmZvXG4gICAgICA8L21hdC1pY29uPlxuICAgIDwvbWF0LWNoZWNrYm94PlxuICAgIDxtYXQtaGludD5cbiAgICAgIHt7IGluc3RhbmNlLmNvbXBvbmVudC5kZXNjcmlwdGlvbiAgfX1cbiAgICA8L21hdC1oaW50PlxuICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJpbnN0YW5jZS5lcnJvclwiPnt7IGluc3RhbmNlLmVycm9yLm1lc3NhZ2UgfX08L21hdC1lcnJvcj5cbiAgYCxcbiAgc3R5bGVzOlsnOjpuZy1kZWVwIC5tYXQtY2hlY2tib3gudmFsaWRhdGlvbi1lcnJvciAubWF0LWNoZWNrYm94LWZyYW1lIHtib3JkZXItY29sb3I6IHJlZDsgfSddXG59KVxuZXhwb3J0IGNsYXNzIE1hdGVyaWFsQ2hlY2tib3hDb21wb25lbnQgZXh0ZW5kcyBNYXRlcmlhbENvbXBvbmVudCB7XG4gIGdldFZhbHVlKCkge1xuICAgIHJldHVybiBfLmlzTmlsKHRoaXMuY29udHJvbC52YWx1ZSkgPyAnJyA6IHRoaXMuY29udHJvbC52YWx1ZTtcbiAgfVxufVxuQ2hlY2tib3hDb21wb25lbnQuTWF0ZXJpYWxDb21wb25lbnQgPSBNYXRlcmlhbENoZWNrYm94Q29tcG9uZW50O1xuZXhwb3J0IHsgQ2hlY2tib3hDb21wb25lbnQgfTtcbiJdfQ==
@@ -0,0 +1,69 @@
1
+ import { Component } from '@angular/core';
2
+ import { MaterialNestedComponent } from '../MaterialNestedComponent';
3
+ import ColumnsComponent from 'formiojs/components/columns/Columns.js';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ import * as i2 from "@angular/flex-layout/flex";
7
+ export class MaterialColumnsComponent extends MaterialNestedComponent {
8
+ constructor() {
9
+ super(...arguments);
10
+ this.flexGap = 0.5;
11
+ this.totalSpace = 0;
12
+ }
13
+ setInstance(instance) {
14
+ this.totalSpace = 100 - ((instance.component.columns.length - 1) * this.flexGap);
15
+ super.setInstance(instance);
16
+ instance.viewContainer = (component) => {
17
+ return this.viewContainers ? this.viewContainers[component.column] : null;
18
+ };
19
+ }
20
+ flexWidth(column, index) {
21
+ if (index >= (this.instance.component.columns.length - 1)) {
22
+ return Math.ceil(((parseFloat(column.width) / 12) * this.totalSpace)) + '%';
23
+ }
24
+ else {
25
+ return Math.floor(((parseFloat(column.width) / 12) * this.totalSpace)) + '%';
26
+ }
27
+ }
28
+ }
29
+ MaterialColumnsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MaterialColumnsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
30
+ MaterialColumnsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: MaterialColumnsComponent, selector: "mat-formio-columns", usesInheritance: true, ngImport: i0, template: `
31
+ <div class="container"
32
+ fxLayout="row"
33
+ fxLayout.xs="column"
34
+ fxLayoutWrap
35
+ fxLayoutGap="{{ flexGap }}%"
36
+ fxLayoutAlign="center"
37
+ >
38
+ <div
39
+ *ngFor="let column of instance.component.columns; let i = index"
40
+ [fxFlex]="flexWidth(column, i)"
41
+ fxLayout="column"
42
+ fxLayoutGap="1em">
43
+ <ng-template #components></ng-template>
44
+ </div>
45
+ </div>
46
+ `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.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: i2.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: i2.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: i2.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }] });
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MaterialColumnsComponent, decorators: [{
48
+ type: Component,
49
+ args: [{ selector: 'mat-formio-columns', template: `
50
+ <div class="container"
51
+ fxLayout="row"
52
+ fxLayout.xs="column"
53
+ fxLayoutWrap
54
+ fxLayoutGap="{{ flexGap }}%"
55
+ fxLayoutAlign="center"
56
+ >
57
+ <div
58
+ *ngFor="let column of instance.component.columns; let i = index"
59
+ [fxFlex]="flexWidth(column, i)"
60
+ fxLayout="column"
61
+ fxLayoutGap="1em">
62
+ <ng-template #components></ng-template>
63
+ </div>
64
+ </div>
65
+ ` }]
66
+ }] });
67
+ ColumnsComponent.MaterialComponent = MaterialColumnsComponent;
68
+ export { ColumnsComponent };
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmVuZGVyLW1hdGVyaWFsLWZvcm1zL3NyYy9saWIvY29tcG9uZW50cy9jb2x1bW5zL2NvbHVtbnMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDckUsT0FBTyxnQkFBZ0IsTUFBTSx3Q0FBd0MsQ0FBQzs7OztBQXVCdEUsTUFBTSxPQUFPLHdCQUF5QixTQUFRLHVCQUF1QjtJQXJCckU7O1FBc0JTLFlBQU8sR0FBRyxHQUFHLENBQUM7UUFDZCxlQUFVLEdBQUcsQ0FBQyxDQUFDO0tBZ0J2QjtJQWZDLFdBQVcsQ0FBQyxRQUFhO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pGLEtBQUssQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUIsUUFBUSxDQUFDLGFBQWEsR0FBRyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ3JDLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUM1RSxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQsU0FBUyxDQUFDLE1BQU0sRUFBRSxLQUFLO1FBQ3JCLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFBRTtZQUN6RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO1NBQzdFO2FBQU07WUFDTCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO1NBQzlFO0lBQ0gsQ0FBQzs7cUhBakJVLHdCQUF3Qjt5R0FBeEIsd0JBQXdCLGlGQW5CekI7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQlQ7MkZBR1Usd0JBQXdCO2tCQXJCcEMsU0FBUzsrQkFDRSxvQkFBb0IsWUFDcEI7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQlQ7O0FBc0JILGdCQUFnQixDQUFDLGlCQUFpQixHQUFHLHdCQUF3QixDQUFDO0FBQzlELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRlcmlhbE5lc3RlZENvbXBvbmVudCB9IGZyb20gJy4uL01hdGVyaWFsTmVzdGVkQ29tcG9uZW50JztcbmltcG9ydCBDb2x1bW5zQ29tcG9uZW50IGZyb20gJ2Zvcm1pb2pzL2NvbXBvbmVudHMvY29sdW1ucy9Db2x1bW5zLmpzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWF0LWZvcm1pby1jb2x1bW5zJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCJcbiAgICAgICAgIGZ4TGF5b3V0PVwicm93XCJcbiAgICAgICAgIGZ4TGF5b3V0LnhzPVwiY29sdW1uXCJcbiAgICAgICAgIGZ4TGF5b3V0V3JhcFxuICAgICAgICAgZnhMYXlvdXRHYXA9XCJ7eyBmbGV4R2FwIH19JVwiXG4gICAgICAgICBmeExheW91dEFsaWduPVwiY2VudGVyXCJcbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgaW5zdGFuY2UuY29tcG9uZW50LmNvbHVtbnM7IGxldCBpID0gaW5kZXhcIlxuICAgICAgICBbZnhGbGV4XT1cImZsZXhXaWR0aChjb2x1bW4sIGkpXCJcbiAgICAgICAgZnhMYXlvdXQ9XCJjb2x1bW5cIlxuICAgICAgICBmeExheW91dEdhcD1cIjFlbVwiPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2NvbXBvbmVudHM+PC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZXM6IFtdXG59KVxuZXhwb3J0IGNsYXNzIE1hdGVyaWFsQ29sdW1uc0NvbXBvbmVudCBleHRlbmRzIE1hdGVyaWFsTmVzdGVkQ29tcG9uZW50IHtcbiAgcHVibGljIGZsZXhHYXAgPSAwLjU7XG4gIHB1YmxpYyB0b3RhbFNwYWNlID0gMDtcbiAgc2V0SW5zdGFuY2UoaW5zdGFuY2U6IGFueSkge1xuICAgIHRoaXMudG90YWxTcGFjZSA9IDEwMCAtICgoaW5zdGFuY2UuY29tcG9uZW50LmNvbHVtbnMubGVuZ3RoIC0gMSkgKiB0aGlzLmZsZXhHYXApO1xuICAgIHN1cGVyLnNldEluc3RhbmNlKGluc3RhbmNlKTtcbiAgICBpbnN0YW5jZS52aWV3Q29udGFpbmVyID0gKGNvbXBvbmVudCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMudmlld0NvbnRhaW5lcnMgPyB0aGlzLnZpZXdDb250YWluZXJzW2NvbXBvbmVudC5jb2x1bW5dIDogbnVsbDtcbiAgICB9O1xuICB9XG5cbiAgZmxleFdpZHRoKGNvbHVtbiwgaW5kZXgpIHtcbiAgICBpZiAoaW5kZXggPj0gKHRoaXMuaW5zdGFuY2UuY29tcG9uZW50LmNvbHVtbnMubGVuZ3RoIC0gMSkpIHtcbiAgICAgIHJldHVybiBNYXRoLmNlaWwoKChwYXJzZUZsb2F0KGNvbHVtbi53aWR0aCkgLyAxMikgKiB0aGlzLnRvdGFsU3BhY2UpKSArICclJztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIE1hdGguZmxvb3IoKChwYXJzZUZsb2F0KGNvbHVtbi53aWR0aCkgLyAxMikgKiB0aGlzLnRvdGFsU3BhY2UpKSArICclJztcbiAgICB9XG4gIH1cbn1cbkNvbHVtbnNDb21wb25lbnQuTWF0ZXJpYWxDb21wb25lbnQgPSBNYXRlcmlhbENvbHVtbnNDb21wb25lbnQ7XG5leHBvcnQgeyBDb2x1bW5zQ29tcG9uZW50IH07XG4iXX0=
@@ -0,0 +1,25 @@
1
+ import { Component } from '@angular/core';
2
+ import { MaterialNestedComponent } from '../MaterialNestedComponent';
3
+ import ContainerComponent from 'formiojs/components/container/Container.js';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/flex-layout/flex";
6
+ export class MaterialContainerComponent extends MaterialNestedComponent {
7
+ }
8
+ MaterialContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MaterialContainerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
9
+ MaterialContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: MaterialContainerComponent, selector: "mat-formio-container", usesInheritance: true, ngImport: i0, template: `
10
+ <div fxLayout="column" fxLayoutGap="1em">
11
+ <ng-template #components></ng-template>
12
+ </div>`, isInline: true, dependencies: [{ kind: "directive", type: i1.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: i1.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"] }] });
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MaterialContainerComponent, decorators: [{
14
+ type: Component,
15
+ args: [{
16
+ selector: 'mat-formio-container',
17
+ template: `
18
+ <div fxLayout="column" fxLayoutGap="1em">
19
+ <ng-template #components></ng-template>
20
+ </div>`
21
+ }]
22
+ }] });
23
+ ContainerComponent.MaterialComponent = MaterialContainerComponent;
24
+ export { ContainerComponent };
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZW5kZXItbWF0ZXJpYWwtZm9ybXMvc3JjL2xpYi9jb21wb25lbnRzL2NvbnRhaW5lci9jb250YWluZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDckUsT0FBTyxrQkFBa0IsTUFBTSw0Q0FBNEMsQ0FBQzs7O0FBUTVFLE1BQU0sT0FBTywwQkFBMkIsU0FBUSx1QkFBdUI7O3VIQUExRCwwQkFBMEI7MkdBQTFCLDBCQUEwQixtRkFMM0I7OztXQUdEOzJGQUVFLDBCQUEwQjtrQkFQdEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxRQUFRLEVBQUU7OztXQUdEO2lCQUNWOztBQUVELGtCQUFrQixDQUFDLGlCQUFpQixHQUFHLDBCQUEwQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRlcmlhbE5lc3RlZENvbXBvbmVudCB9IGZyb20gJy4uL01hdGVyaWFsTmVzdGVkQ29tcG9uZW50JztcbmltcG9ydCBDb250YWluZXJDb21wb25lbnQgZnJvbSAnZm9ybWlvanMvY29tcG9uZW50cy9jb250YWluZXIvQ29udGFpbmVyLmpzJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21hdC1mb3JtaW8tY29udGFpbmVyJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhMYXlvdXRHYXA9XCIxZW1cIj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjY29tcG9uZW50cz48L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PmBcbn0pXG5leHBvcnQgY2xhc3MgTWF0ZXJpYWxDb250YWluZXJDb21wb25lbnQgZXh0ZW5kcyBNYXRlcmlhbE5lc3RlZENvbXBvbmVudCB7IH1cbkNvbnRhaW5lckNvbXBvbmVudC5NYXRlcmlhbENvbXBvbmVudCA9IE1hdGVyaWFsQ29udGFpbmVyQ29tcG9uZW50O1xuZXhwb3J0IHsgQ29udGFpbmVyQ29tcG9uZW50IH07XG4iXX0=
@@ -0,0 +1,18 @@
1
+ import { Component } from '@angular/core';
2
+ import { MaterialComponent } from '../MaterialComponent';
3
+ import ContentComponent from 'formiojs/components/content/Content.js';
4
+ import * as i0 from "@angular/core";
5
+ export class MaterialContentComponent extends MaterialComponent {
6
+ }
7
+ MaterialContentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MaterialContentComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
8
+ MaterialContentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: MaterialContentComponent, selector: "mat-formio-content", usesInheritance: true, ngImport: i0, template: `<div [innerHTML]="instance.content"></div>`, isInline: true });
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MaterialContentComponent, decorators: [{
10
+ type: Component,
11
+ args: [{
12
+ selector: 'mat-formio-content',
13
+ template: `<div [innerHTML]="instance.content"></div>`
14
+ }]
15
+ }] });
16
+ ContentComponent.MaterialComponent = MaterialContentComponent;
17
+ export { ContentComponent };
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmVuZGVyLW1hdGVyaWFsLWZvcm1zL3NyYy9saWIvY29tcG9uZW50cy9jb250ZW50L2NvbnRlbnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxnQkFBZ0IsTUFBTSx3Q0FBd0MsQ0FBQzs7QUFLdEUsTUFBTSxPQUFPLHdCQUF5QixTQUFRLGlCQUFpQjs7cUhBQWxELHdCQUF3Qjt5R0FBeEIsd0JBQXdCLGlGQUZ6Qiw0Q0FBNEM7MkZBRTNDLHdCQUF3QjtrQkFKcEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixRQUFRLEVBQUUsNENBQTRDO2lCQUN2RDs7QUFFRCxnQkFBZ0IsQ0FBQyxpQkFBaUIsR0FBRyx3QkFBd0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0ZXJpYWxDb21wb25lbnQgfSBmcm9tICcuLi9NYXRlcmlhbENvbXBvbmVudCc7XG5pbXBvcnQgQ29udGVudENvbXBvbmVudCBmcm9tICdmb3JtaW9qcy9jb21wb25lbnRzL2NvbnRlbnQvQ29udGVudC5qcyc7XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtYXQtZm9ybWlvLWNvbnRlbnQnLFxuICB0ZW1wbGF0ZTogYDxkaXYgW2lubmVySFRNTF09XCJpbnN0YW5jZS5jb250ZW50XCI+PC9kaXY+YFxufSlcbmV4cG9ydCBjbGFzcyBNYXRlcmlhbENvbnRlbnRDb21wb25lbnQgZXh0ZW5kcyBNYXRlcmlhbENvbXBvbmVudCB7fVxuQ29udGVudENvbXBvbmVudC5NYXRlcmlhbENvbXBvbmVudCA9IE1hdGVyaWFsQ29udGVudENvbXBvbmVudDtcbmV4cG9ydCB7IENvbnRlbnRDb21wb25lbnQgfTtcbiJdfQ==
@@ -0,0 +1,35 @@
1
+ import { Component } from '@angular/core';
2
+ import { TEXTFIELD_TEMPLATE } from '../textfield/textfield.component';
3
+ import { MaterialNumberComponent } from '../number/number.component';
4
+ import CurrencyComponent from 'formiojs/components/currency/Currency.js';
5
+ import _ from 'lodash';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/common";
8
+ import * as i2 from "@angular/forms";
9
+ import * as i3 from "@angular/material/form-field";
10
+ import * as i4 from "@angular/material/input";
11
+ import * as i5 from "@angular/flex-layout/flex";
12
+ import * as i6 from "../formio-form-field/formio-form-field.component";
13
+ import * as i7 from "../label/label.component";
14
+ export class MaterialCurrencyComponent extends MaterialNumberComponent {
15
+ constructor() {
16
+ super(...arguments);
17
+ this.inputType = 'text';
18
+ }
19
+ onChange() {
20
+ const newValue = _.isNil(this.getValue()) ? '' : this.getValue();
21
+ this.instance.updateValue(newValue, { modified: true });
22
+ }
23
+ }
24
+ MaterialCurrencyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MaterialCurrencyComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
25
+ MaterialCurrencyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: MaterialCurrencyComponent, selector: "mat-formio-currency", usesInheritance: true, ngImport: i0, template: "\n <mat-formio-form-field [instance]=\"instance\" [componentTemplate]=\"componentTemplate\"></mat-formio-form-field>\n <ng-template #componentTemplate let-hasLabel>\n <mat-form-field [appearance]=\"getFormFieldAppearance()\" fxFill>\n\n <mat-label *ngIf=\"hasLabel\">\n <span [instance]=\"instance\" matFormioLabel></span>\n </mat-label>\n\n <span *ngIf=\"instance.component.prefix && instance.type !== 'currency'\"\n matPrefix\n >\n {{ instance.component.prefix }}&nbsp;\n </span>\n <input matInput\n type=\"{{ inputType }}\"\n [formControl]=\"control\"\n [placeholder]=\"instance.component.placeholder\"\n (input)=\"onChange()\" #input\n >\n <span *ngIf=\"instance.component.suffix\" matSuffix>{{ instance.component.suffix }}</span>\n\n <mat-hint *ngIf=\"instance.component.showWordCount || instance.component.showCharCount\">\n {{ getHint() }}\n </mat-hint>\n\n <br/>\n <mat-error *ngIf=\"isError()\" >{{ getErrorMessage() }}</mat-error>\n </mat-form-field>\n </ng-template>\n", isInline: true, dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatPrefix, selector: "[matPrefix]" }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix]" }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "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"] }] });
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MaterialCurrencyComponent, decorators: [{
27
+ type: Component,
28
+ args: [{
29
+ selector: 'mat-formio-currency',
30
+ template: TEXTFIELD_TEMPLATE
31
+ }]
32
+ }] });
33
+ CurrencyComponent.MaterialComponent = MaterialCurrencyComponent;
34
+ export { CurrencyComponent };
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY3kuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJlbmRlci1tYXRlcmlhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvY3VycmVuY3kvY3VycmVuY3kuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDckUsT0FBTyxpQkFBaUIsTUFBTSwwQ0FBMEMsQ0FBQztBQUN6RSxPQUFPLENBQUMsTUFBTSxRQUFRLENBQUM7Ozs7Ozs7OztBQU12QixNQUFNLE9BQU8seUJBQTBCLFNBQVEsdUJBQXVCO0lBSnRFOztRQUtTLGNBQVMsR0FBRyxNQUFNLENBQUM7S0FNM0I7SUFKQyxRQUFRO1FBQ04sTUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7SUFDeEQsQ0FBQzs7c0hBTlUseUJBQXlCOzBHQUF6Qix5QkFBeUI7MkZBQXpCLHlCQUF5QjtrQkFKckMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUscUJBQXFCO29CQUMvQixRQUFRLEVBQUUsa0JBQWtCO2lCQUM3Qjs7QUFTRCxpQkFBaUIsQ0FBQyxpQkFBaUIsR0FBRyx5QkFBeUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVEVYVEZJRUxEX1RFTVBMQVRFIH0gZnJvbSAnLi4vdGV4dGZpZWxkL3RleHRmaWVsZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0ZXJpYWxOdW1iZXJDb21wb25lbnQgfSBmcm9tICcuLi9udW1iZXIvbnVtYmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgQ3VycmVuY3lDb21wb25lbnQgZnJvbSAnZm9ybWlvanMvY29tcG9uZW50cy9jdXJyZW5jeS9DdXJyZW5jeS5qcyc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtYXQtZm9ybWlvLWN1cnJlbmN5JyxcbiAgdGVtcGxhdGU6IFRFWFRGSUVMRF9URU1QTEFURVxufSlcbmV4cG9ydCBjbGFzcyBNYXRlcmlhbEN1cnJlbmN5Q29tcG9uZW50IGV4dGVuZHMgTWF0ZXJpYWxOdW1iZXJDb21wb25lbnQge1xuICBwdWJsaWMgaW5wdXRUeXBlID0gJ3RleHQnO1xuXG4gIG9uQ2hhbmdlKCkge1xuICAgIGNvbnN0IG5ld1ZhbHVlID0gXy5pc05pbCh0aGlzLmdldFZhbHVlKCkpID8gJycgOiB0aGlzLmdldFZhbHVlKCk7XG4gICAgdGhpcy5pbnN0YW5jZS51cGRhdGVWYWx1ZShuZXdWYWx1ZSwge21vZGlmaWVkOiB0cnVlfSk7XG4gIH1cbn1cbkN1cnJlbmN5Q29tcG9uZW50Lk1hdGVyaWFsQ29tcG9uZW50ID0gTWF0ZXJpYWxDdXJyZW5jeUNvbXBvbmVudDtcbmV4cG9ydCB7IEN1cnJlbmN5Q29tcG9uZW50IH07XG4iXX0=
@@ -0,0 +1,244 @@
1
+ import { Component } from '@angular/core';
2
+ import { MatTableDataSource } from '@angular/material/table';
3
+ import { MaterialNestedComponent } from '../MaterialNestedComponent';
4
+ import DataGridComponent from 'formiojs/components/datagrid/DataGrid.js';
5
+ import { moveItemInArray } from '@angular/cdk/drag-drop';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/common";
8
+ import * as i2 from "@angular/material/button";
9
+ import * as i3 from "@angular/material/table";
10
+ import * as i4 from "@angular/material/icon";
11
+ import * as i5 from "@angular/flex-layout/flex";
12
+ import * as i6 from "@angular/material/card";
13
+ import * as i7 from "@angular/cdk/drag-drop";
14
+ import * as i8 from "../formio-form-field/formio-form-field.component";
15
+ import * as i9 from "../label/label.component";
16
+ export class MaterialDataGridComponent extends MaterialNestedComponent {
17
+ constructor() {
18
+ super(...arguments);
19
+ this.dataSource = new MatTableDataSource();
20
+ }
21
+ getColumnLabel(column) {
22
+ return column.label || column.key;
23
+ }
24
+ setInstance(instance) {
25
+ super.setInstance(instance);
26
+ this.dataSource.data = instance.dataValue;
27
+ this.columns = {};
28
+ this.displayedColumns = [];
29
+ this.formColumns = [];
30
+ instance.getColumns().map((column) => {
31
+ this.formColumns.push(column.key);
32
+ this.displayedColumns.push(column.key);
33
+ this.columns[column.key] = column;
34
+ });
35
+ this.displayedColumns.push('__removeRow');
36
+ if (this.instance.component.reorder) {
37
+ this.displayedColumns.push('position');
38
+ }
39
+ instance.viewContainer = (component) => {
40
+ let viewContainer;
41
+ if (this.instance.component.disabled) {
42
+ component.component.disabled = true;
43
+ }
44
+ this.viewContainers.forEach((container) => {
45
+ const td = container.element.nativeElement.parentNode;
46
+ if (component.rowIndex === parseInt(td.getAttribute('rowIndex'), 10) &&
47
+ component.component.key === td.getAttribute('component')) {
48
+ viewContainer = container;
49
+ }
50
+ });
51
+ return viewContainer ? viewContainer : null;
52
+ };
53
+ }
54
+ addAnother() {
55
+ this.checkRowsNumber();
56
+ this.instance.addRow();
57
+ if (this.dataSource.data.length < this.instance.rows.length) {
58
+ this.dataSource.data.push({});
59
+ }
60
+ this.dataSource.data = [...this.dataSource.data];
61
+ }
62
+ checkRowsNumber() {
63
+ while (this.instance.rows.length < this.dataSource.data.length) {
64
+ this.instance.addRow();
65
+ }
66
+ }
67
+ removeRow(index) {
68
+ this.instance.removeRow(index);
69
+ this.dataSource.data.splice(index, 1);
70
+ this.dataSource.data = [...this.dataSource.data];
71
+ }
72
+ dropTable(event) {
73
+ const prevIndex = this.dataSource.data.findIndex((d) => d === event.item.data);
74
+ moveItemInArray(this.control.value, prevIndex, event.currentIndex);
75
+ this.renderComponents();
76
+ }
77
+ renderComponents() {
78
+ this.instance.getRows();
79
+ this.instance.setValue(this.control.value || []);
80
+ }
81
+ setValue(value) {
82
+ const gridLength = value ? value.length : 0;
83
+ while (this.instance.rows.length < gridLength) {
84
+ this.addAnother();
85
+ this.instance.dataValue = value;
86
+ this.instance.setValue(value);
87
+ }
88
+ if (!value && this.instance.component.clearOnHide) {
89
+ this.dataSource = new MatTableDataSource(this.instance.defaultValue);
90
+ }
91
+ super.setValue(value);
92
+ }
93
+ }
94
+ MaterialDataGridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MaterialDataGridComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
95
+ MaterialDataGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: MaterialDataGridComponent, selector: "mat-formio-datagrid", usesInheritance: true, ngImport: i0, template: `
96
+ <mat-formio-form-field [instance]="instance"
97
+ [componentTemplate]="componentTemplate"
98
+ [labelTemplate]="labelTemplate"
99
+ ></mat-formio-form-field>
100
+ <ng-template #componentTemplate let-hasLabel>
101
+ <mat-card fxFill>
102
+ <ng-container *ngIf="hasLabel">
103
+ <ng-container *ngTemplateOutlet="labelTemplate"></ng-container>
104
+ </ng-container>
105
+ <mat-card-content>
106
+ <mat-card-actions
107
+ *ngIf="instance.hasAddButton() && (instance.component.addAnotherPosition === 'both' || instance.component.addAnotherPosition === 'top')">
108
+ <button mat-raised-button color="primary" (click)="addAnother()">
109
+ <mat-icon>add</mat-icon>
110
+ {{instance.component.addAnother || 'Add Another'}}
111
+ </button>
112
+ </mat-card-actions>
113
+ <table
114
+ mat-table
115
+ [dataSource]="dataSource"
116
+ class="mat-elevation-z8"
117
+ fxFill
118
+ cdkDropList
119
+ [cdkDropListData]="dataSource"
120
+ (cdkDropListDropped)="dropTable($event)">
121
+ >
122
+ <ng-container *ngFor="let column of formColumns" [matColumnDef]="column">
123
+ <th mat-header-cell *matHeaderCellDef>{{ getColumnLabel(columns[column]) }}</th>
124
+ <td mat-cell *matCellDef="let i = index;" [attr.rowIndex]="i" [attr.component]="column">
125
+ <ng-template #components></ng-template>
126
+ </td>
127
+ </ng-container>
128
+ <ng-container matColumnDef="__removeRow">
129
+ <th mat-header-cell *matHeaderCellDef></th>
130
+ <td mat-cell *matCellDef="let i = index;">
131
+ <button mat-button *ngIf="instance.hasRemoveButtons()" (click)="removeRow(i)">
132
+ <mat-icon aria-hidden="false" aria-label="Remove row">delete</mat-icon>
133
+ </button>
134
+ </td>
135
+ </ng-container>
136
+ <ng-container matColumnDef="position" *ngIf="instance.component.reorder">
137
+ <th mat-header-cell *matHeaderCellDef> No.</th>
138
+ <td mat-cell *matCellDef="let element">
139
+ <mat-icon cdkDragHandle>reorder</mat-icon>
140
+ </td>
141
+ </ng-container>
142
+ <tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
143
+ <div *ngIf="instance?.component?.reorder">
144
+ <tr class="datagrid-row" mat-row *matRowDef="let row; columns: displayedColumns;" cdkDrag
145
+ [cdkDragData]="row"></tr>
146
+ </div>
147
+ <div *ngIf="!instance?.component?.reorder">
148
+ <tr class="datagrid-row" mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
149
+ </div>
150
+ </table>
151
+ </mat-card-content>
152
+ <mat-card-actions *ngIf="instance.hasAddButton() && instance.component.addAnotherPosition !== 'top'">
153
+ <button mat-raised-button color="primary" (click)="addAnother()">
154
+ <mat-icon>add</mat-icon>
155
+ {{instance.component.addAnother || 'Add Another'}}
156
+ </button>
157
+ </mat-card-actions>
158
+ </mat-card>
159
+ </ng-template>
160
+
161
+ <ng-template #labelTemplate>
162
+ <mat-card-title>
163
+ <span [instance]="instance" matFormioLabel></span>
164
+ </mat-card-title>
165
+ </ng-template>
166
+ `, isInline: true, styles: [".datagrid-row{height:auto}\n"], 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: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.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: i3.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i3.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i3.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i3.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i3.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i3.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i3.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i3.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i3.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i3.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i5.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "component", type: i6.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i6.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "directive", type: i6.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "directive", type: i6.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i7.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i7.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i7.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i8.FormioFormFieldComponent, selector: "mat-formio-form-field", inputs: ["labelTemplate", "renderTopLabel", "showDescription", "renderElementOnly", "instance", "componentTemplate"] }, { kind: "component", type: i9.LabelComponent, selector: "span[matFormioLabel]", inputs: ["instance"] }] });
167
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MaterialDataGridComponent, decorators: [{
168
+ type: Component,
169
+ args: [{ selector: 'mat-formio-datagrid', template: `
170
+ <mat-formio-form-field [instance]="instance"
171
+ [componentTemplate]="componentTemplate"
172
+ [labelTemplate]="labelTemplate"
173
+ ></mat-formio-form-field>
174
+ <ng-template #componentTemplate let-hasLabel>
175
+ <mat-card fxFill>
176
+ <ng-container *ngIf="hasLabel">
177
+ <ng-container *ngTemplateOutlet="labelTemplate"></ng-container>
178
+ </ng-container>
179
+ <mat-card-content>
180
+ <mat-card-actions
181
+ *ngIf="instance.hasAddButton() && (instance.component.addAnotherPosition === 'both' || instance.component.addAnotherPosition === 'top')">
182
+ <button mat-raised-button color="primary" (click)="addAnother()">
183
+ <mat-icon>add</mat-icon>
184
+ {{instance.component.addAnother || 'Add Another'}}
185
+ </button>
186
+ </mat-card-actions>
187
+ <table
188
+ mat-table
189
+ [dataSource]="dataSource"
190
+ class="mat-elevation-z8"
191
+ fxFill
192
+ cdkDropList
193
+ [cdkDropListData]="dataSource"
194
+ (cdkDropListDropped)="dropTable($event)">
195
+ >
196
+ <ng-container *ngFor="let column of formColumns" [matColumnDef]="column">
197
+ <th mat-header-cell *matHeaderCellDef>{{ getColumnLabel(columns[column]) }}</th>
198
+ <td mat-cell *matCellDef="let i = index;" [attr.rowIndex]="i" [attr.component]="column">
199
+ <ng-template #components></ng-template>
200
+ </td>
201
+ </ng-container>
202
+ <ng-container matColumnDef="__removeRow">
203
+ <th mat-header-cell *matHeaderCellDef></th>
204
+ <td mat-cell *matCellDef="let i = index;">
205
+ <button mat-button *ngIf="instance.hasRemoveButtons()" (click)="removeRow(i)">
206
+ <mat-icon aria-hidden="false" aria-label="Remove row">delete</mat-icon>
207
+ </button>
208
+ </td>
209
+ </ng-container>
210
+ <ng-container matColumnDef="position" *ngIf="instance.component.reorder">
211
+ <th mat-header-cell *matHeaderCellDef> No.</th>
212
+ <td mat-cell *matCellDef="let element">
213
+ <mat-icon cdkDragHandle>reorder</mat-icon>
214
+ </td>
215
+ </ng-container>
216
+ <tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
217
+ <div *ngIf="instance?.component?.reorder">
218
+ <tr class="datagrid-row" mat-row *matRowDef="let row; columns: displayedColumns;" cdkDrag
219
+ [cdkDragData]="row"></tr>
220
+ </div>
221
+ <div *ngIf="!instance?.component?.reorder">
222
+ <tr class="datagrid-row" mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
223
+ </div>
224
+ </table>
225
+ </mat-card-content>
226
+ <mat-card-actions *ngIf="instance.hasAddButton() && instance.component.addAnotherPosition !== 'top'">
227
+ <button mat-raised-button color="primary" (click)="addAnother()">
228
+ <mat-icon>add</mat-icon>
229
+ {{instance.component.addAnother || 'Add Another'}}
230
+ </button>
231
+ </mat-card-actions>
232
+ </mat-card>
233
+ </ng-template>
234
+
235
+ <ng-template #labelTemplate>
236
+ <mat-card-title>
237
+ <span [instance]="instance" matFormioLabel></span>
238
+ </mat-card-title>
239
+ </ng-template>
240
+ `, styles: [".datagrid-row{height:auto}\n"] }]
241
+ }] });
242
+ DataGridComponent.MaterialComponent = MaterialDataGridComponent;
243
+ export { DataGridComponent };
244
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWdyaWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJlbmRlci1tYXRlcmlhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvZGF0YWdyaWQvZGF0YWdyaWQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDckUsT0FBTyxpQkFBaUIsTUFBTSwwQ0FBMEMsQ0FBQztBQUN6RSxPQUFPLEVBQWMsZUFBZSxFQUFpQixNQUFNLHdCQUF3QixDQUFDOzs7Ozs7Ozs7OztBQWdGcEYsTUFBTSxPQUFPLHlCQUEwQixTQUFRLHVCQUF1QjtJQTlFdEU7O1FBa0ZFLGVBQVUsR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7S0FzRnZDO0lBcEZDLGNBQWMsQ0FBQyxNQUFNO1FBQ25CLE9BQU8sTUFBTSxDQUFDLEtBQUssSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxXQUFXLENBQUMsUUFBYTtRQUN2QixLQUFLLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUM7UUFDMUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUN0QixRQUFRLENBQUMsVUFBVSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDbkMsSUFBSSxDQUFDLFdBQVcsQ0FB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QyxTQUFTOytCQUNFLHFCQUFxQixZQUNyQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1RVQ7O0FBZ0dILGlCQUFpQixDQUFDLGlCQUFpQixHQUFHLHlCQUF5QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdFRhYmxlRGF0YVNvdXJjZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcbmltcG9ydCB7IE1hdGVyaWFsTmVzdGVkQ29tcG9uZW50IH0gZnJvbSAnLi4vTWF0ZXJpYWxOZXN0ZWRDb21wb25lbnQnO1xuaW1wb3J0IERhdGFHcmlkQ29tcG9uZW50IGZyb20gJ2Zvcm1pb2pzL2NvbXBvbmVudHMvZGF0YWdyaWQvRGF0YUdyaWQuanMnO1xuaW1wb3J0IHtDZGtEcmFnRHJvcCwgbW92ZUl0ZW1JbkFycmF5LCBEcmFnRHJvcE1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQge01hdFRhYmxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtYXQtZm9ybWlvLWRhdGFncmlkJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8bWF0LWZvcm1pby1mb3JtLWZpZWxkIFtpbnN0YW5jZV09XCJpbnN0YW5jZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbY29tcG9uZW50VGVtcGxhdGVdPVwiY29tcG9uZW50VGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsVGVtcGxhdGVdPVwibGFiZWxUZW1wbGF0ZVwiXG4gICAgPjwvbWF0LWZvcm1pby1mb3JtLWZpZWxkPlxuICAgIDxuZy10ZW1wbGF0ZSAjY29tcG9uZW50VGVtcGxhdGUgbGV0LWhhc0xhYmVsPlxuICAgICAgPG1hdC1jYXJkIGZ4RmlsbD5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhhc0xhYmVsXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxhYmVsVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxtYXQtY2FyZC1jb250ZW50PlxuICAgICAgICAgIDxtYXQtY2FyZC1hY3Rpb25zXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cImluc3RhbmNlLmhhc0FkZEJ1dHRvbigpICYmIChpbnN0YW5jZS5jb21wb25lbnQuYWRkQW5vdGhlclBvc2l0aW9uID09PSAnYm90aCcgfHwgaW5zdGFuY2UuY29tcG9uZW50LmFkZEFub3RoZXJQb3NpdGlvbiA9PT0gJ3RvcCcpXCI+XG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJhZGRBbm90aGVyKClcIj5cbiAgICAgICAgICAgICAgPG1hdC1pY29uPmFkZDwvbWF0LWljb24+XG4gICAgICAgICAgICAgIHt7aW5zdGFuY2UuY29tcG9uZW50LmFkZEFub3RoZXIgfHwgJ0FkZCBBbm90aGVyJ319XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L21hdC1jYXJkLWFjdGlvbnM+XG4gICAgICAgICAgPHRhYmxlXG4gICAgICAgICAgICAgICAgICBtYXQtdGFibGVcbiAgICAgICAgICAgICAgICAgIFtkYXRhU291cmNlXT1cImRhdGFTb3VyY2VcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtYXQtZWxldmF0aW9uLXo4XCJcbiAgICAgICAgICAgICAgICAgIGZ4RmlsbFxuICAgICAgICAgICAgICAgICAgY2RrRHJvcExpc3RcbiAgICAgICAgICAgICAgICAgIFtjZGtEcm9wTGlzdERhdGFdPVwiZGF0YVNvdXJjZVwiXG4gICAgICAgICAgICAgICAgICAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3BUYWJsZSgkZXZlbnQpXCI+XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgZm9ybUNvbHVtbnNcIiBbbWF0Q29sdW1uRGVmXT1cImNvbHVtblwiPlxuICAgICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPnt7IGdldENvbHVtbkxhYmVsKGNvbHVtbnNbY29sdW1uXSkgfX08L3RoPlxuICAgICAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgaSA9IGluZGV4O1wiIFthdHRyLnJvd0luZGV4XT1cImlcIiBbYXR0ci5jb21wb25lbnRdPVwiY29sdW1uXCI+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNjb21wb25lbnRzPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiX19yZW1vdmVSb3dcIj5cbiAgICAgICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj48L3RoPlxuICAgICAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgaSA9IGluZGV4O1wiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiAqbmdJZj1cImluc3RhbmNlLmhhc1JlbW92ZUJ1dHRvbnMoKVwiIChjbGljayk9XCJyZW1vdmVSb3coaSlcIj5cbiAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBhcmlhLWhpZGRlbj1cImZhbHNlXCIgYXJpYS1sYWJlbD1cIlJlbW92ZSByb3dcIj5kZWxldGU8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInBvc2l0aW9uXCIgKm5nSWY9XCJpbnN0YW5jZS5jb21wb25lbnQucmVvcmRlclwiPlxuICAgICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBOby48L3RoPlxuICAgICAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjZGtEcmFnSGFuZGxlPnJlb3JkZXI8L21hdC1pY29uPlxuICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8dHIgbWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cImRpc3BsYXllZENvbHVtbnNcIj48L3RyPlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImluc3RhbmNlPy5jb21wb25lbnQ/LnJlb3JkZXJcIj5cbiAgICAgICAgICAgICAgPHRyIGNsYXNzPVwiZGF0YWdyaWQtcm93XCIgbWF0LXJvdyAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogZGlzcGxheWVkQ29sdW1ucztcIiBjZGtEcmFnXG4gICAgICAgICAgICAgICAgICBbY2RrRHJhZ0RhdGFdPVwicm93XCI+PC90cj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFpbnN0YW5jZT8uY29tcG9uZW50Py5yZW9yZGVyXCI+XG4gICAgICAgICAgICAgIDx0ciBjbGFzcz1cImRhdGFncmlkLXJvd1wiIG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IGRpc3BsYXllZENvbHVtbnM7XCI+PC90cj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvdGFibGU+XG4gICAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cbiAgICAgICAgPG1hdC1jYXJkLWFjdGlvbnMgKm5nSWY9XCJpbnN0YW5jZS5oYXNBZGRCdXR0b24oKSAmJiBpbnN0YW5jZS5jb21wb25lbnQuYWRkQW5vdGhlclBvc2l0aW9uICE9PSAndG9wJ1wiPlxuICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cImFkZEFub3RoZXIoKVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uPmFkZDwvbWF0LWljb24+XG4gICAgICAgICAgICB7e2luc3RhbmNlLmNvbXBvbmVudC5hZGRBbm90aGVyIHx8ICdBZGQgQW5vdGhlcid9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L21hdC1jYXJkLWFjdGlvbnM+XG4gICAgICA8L21hdC1jYXJkPlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctdGVtcGxhdGUgI2xhYmVsVGVtcGxhdGU+XG4gICAgICA8bWF0LWNhcmQtdGl0bGU+XG4gICAgICAgIDxzcGFuIFtpbnN0YW5jZV09XCJpbnN0YW5jZVwiIG1hdEZvcm1pb0xhYmVsPjwvc3Bhbj5cbiAgICAgIDwvbWF0LWNhcmQtdGl0bGU+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgJy5kYXRhZ3JpZC1yb3cgeyBoZWlnaHQ6IGF1dG87IH0nXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgTWF0ZXJpYWxEYXRhR3JpZENvbXBvbmVudCBleHRlbmRzIE1hdGVyaWFsTmVzdGVkQ29tcG9uZW50IHtcbiAgZGlzcGxheWVkQ29sdW1uczogc3RyaW5nW107XG4gIGZvcm1Db2x1bW5zOiBzdHJpbmdbXTtcbiAgY29sdW1uczogYW55O1xuICBkYXRhU291cmNlID0gbmV3IE1hdFRhYmxlRGF0YVNvdXJjZSgpO1xuXG4gIGdldENvbHVtbkxhYmVsKGNvbHVtbikge1xuICAgIHJldHVybiBjb2x1bW4ubGFiZWwgfHwgY29sdW1uLmtleTtcbiAgfVxuXG4gIHNldEluc3RhbmNlKGluc3RhbmNlOiBhbnkpIHtcbiAgICBzdXBlci5zZXRJbnN0YW5jZShpbnN0YW5jZSk7XG4gICAgdGhpcy5kYXRhU291cmNlLmRhdGEgPSBpbnN0YW5jZS5kYXRhVmFsdWU7XG4gICAgdGhpcy5jb2x1bW5zID0ge307XG4gICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zID0gW107XG4gICAgdGhpcy5mb3JtQ29sdW1ucyA9IFtdO1xuICAgIGluc3RhbmNlLmdldENvbHVtbnMoKS5tYXAoKGNvbHVtbikgPT4ge1xuICAgICAgdGhpcy5mb3JtQ29sdW1ucy5wdXNoKGNvbHVtbi5rZXkpO1xuICAgICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLnB1c2goY29sdW1uLmtleSk7XG4gICAgICB0aGlzLmNvbHVtbnNbY29sdW1uLmtleV0gPSBjb2x1bW47XG4gICAgfSk7XG4gICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLnB1c2goJ19fcmVtb3ZlUm93Jyk7XG4gICAgaWYgKHRoaXMuaW5zdGFuY2UuY29tcG9uZW50LnJlb3JkZXIpIHtcbiAgICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucy5wdXNoKCdwb3NpdGlvbicpO1xuICAgIH1cbiAgICBpbnN0YW5jZS52aWV3Q29udGFpbmVyID0gKGNvbXBvbmVudCkgPT4ge1xuICAgICAgbGV0IHZpZXdDb250YWluZXI7XG4gICAgICBpZiAodGhpcy5pbnN0YW5jZS5jb21wb25lbnQuZGlzYWJsZWQpIHtcbiAgICAgICAgY29tcG9uZW50LmNvbXBvbmVudC5kaXNhYmxlZCA9IHRydWU7XG4gICAgICB9XG4gICAgICB0aGlzLnZpZXdDb250YWluZXJzLmZvckVhY2goKGNvbnRhaW5lcikgPT4ge1xuICAgICAgICBjb25zdCB0ZCA9IGNvbnRhaW5lci5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQucGFyZW50Tm9kZTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGNvbXBvbmVudC5yb3dJbmRleCA9PT0gcGFyc2VJbnQodGQuZ2V0QXR0cmlidXRlKCdyb3dJbmRleCcpLCAxMCkgJiZcbiAgICAgICAgICBjb21wb25lbnQuY29tcG9uZW50LmtleSA9PT0gdGQuZ2V0QXR0cmlidXRlKCdjb21wb25lbnQnKVxuICAgICAgICApIHtcbiAgICAgICAgICB2aWV3Q29udGFpbmVyID0gY29udGFpbmVyO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIHZpZXdDb250YWluZXIgPyB2aWV3Q29udGFpbmVyIDogbnVsbDtcbiAgICB9O1xuICB9XG5cbiAgYWRkQW5vdGhlcigpIHtcbiAgICB0aGlzLmNoZWNrUm93c051bWJlcigpO1xuICAgIHRoaXMuaW5zdGFuY2UuYWRkUm93KCk7XG4gICAgaWYgKHRoaXMuZGF0YVNvdXJjZS5kYXRhLmxlbmd0aCA8IHRoaXMuaW5zdGFuY2Uucm93cy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhLnB1c2goe30pO1xuICAgIH1cbiAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YSA9IFsuLi50aGlzLmRhdGFTb3VyY2UuZGF0YV07XG4gIH1cblxuICBjaGVja1Jvd3NOdW1iZXIoKSB7XG4gICAgd2hpbGUgKHRoaXMuaW5zdGFuY2Uucm93cy5sZW5ndGggPCB0aGlzLmRhdGFTb3VyY2UuZGF0YS5sZW5ndGgpIHtcbiAgICAgIHRoaXMuaW5zdGFuY2UuYWRkUm93KCk7XG4gICAgfVxuICB9XG5cbiAgcmVtb3ZlUm93KGluZGV4KSB7XG4gICAgdGhpcy5pbnN0YW5jZS5yZW1vdmVSb3coaW5kZXgpO1xuICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhLnNwbGljZShpbmRleCwgMSk7XG4gICAgdGhpcy5kYXRhU291cmNlLmRhdGEgPSBbLi4udGhpcy5kYXRhU291cmNlLmRhdGFdO1xuICB9XG5cbiAgZHJvcFRhYmxlKGV2ZW50OiBDZGtEcmFnRHJvcDxhbnk+KSB7XG4gICAgY29uc3QgcHJldkluZGV4ID0gdGhpcy5kYXRhU291cmNlLmRhdGEuZmluZEluZGV4KChkKSA9PiBkID09PSBldmVudC5pdGVtLmRhdGEpO1xuICAgIG1vdmVJdGVtSW5BcnJheSh0aGlzLmNvbnRyb2wudmFsdWUsIHByZXZJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcbiAgICB0aGlzLnJlbmRlckNvbXBvbmVudHMoKTtcbiAgfVxuXG4gIHJlbmRlckNvbXBvbmVudHMoKSB7XG4gICAgdGhpcy5pbnN0YW5jZS5nZXRSb3dzKCk7XG4gICAgdGhpcy5pbnN0YW5jZS5zZXRWYWx1ZSh0aGlzLmNvbnRyb2wudmFsdWUgfHwgW10pO1xuICB9XG5cbiAgc2V0VmFsdWUodmFsdWU6IFtdIHwgbnVsbCkge1xuICAgIGNvbnN0IGdyaWRMZW5ndGggPSB2YWx1ZSA/IHZhbHVlLmxlbmd0aCA6IDA7XG5cbiAgICB3aGlsZSAodGhpcy5pbnN0YW5jZS5yb3dzLmxlbmd0aCA8IGdyaWRMZW5ndGgpIHtcbiAgICAgIHRoaXMuYWRkQW5vdGhlcigpO1xuICAgICAgdGhpcy5pbnN0YW5jZS5kYXRhVmFsdWUgPSB2YWx1ZTtcbiAgICAgIHRoaXMuaW5zdGFuY2Uuc2V0VmFsdWUodmFsdWUpO1xuICAgIH1cblxuICAgIGlmICghdmFsdWUgJiYgdGhpcy5pbnN0YW5jZS5jb21wb25lbnQuY2xlYXJPbkhpZGUpIHtcbiAgICAgIHRoaXMuZGF0YVNvdXJjZSA9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2UodGhpcy5pbnN0YW5jZS5kZWZhdWx0VmFsdWUpO1xuICAgIH1cbiAgICBzdXBlci5zZXRWYWx1ZSh2YWx1ZSk7XG4gIH1cbn1cbkRhdGFHcmlkQ29tcG9uZW50Lk1hdGVyaWFsQ29tcG9uZW50ID0gTWF0ZXJpYWxEYXRhR3JpZENvbXBvbmVudDtcbmV4cG9ydCB7IERhdGFHcmlkQ29tcG9uZW50IH07XG4iXX0=