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
package/README.md ADDED
@@ -0,0 +1,24 @@
1
+ # NgxRenderMaterialForms
2
+
3
+ This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 9.1.13.
4
+
5
+ ## Code scaffolding
6
+
7
+ Run `ng generate component component-name --project NgxRenderMaterialForms` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project NgxRenderMaterialForms`.
8
+ > Note: Don't forget to add `--project NgxRenderMaterialForms` or else it will be added to the default project in your `angular.json` file.
9
+
10
+ ## Build
11
+
12
+ Run `ng build NgxRenderMaterialForms` to build the project. The build artifacts will be stored in the `dist/` directory.
13
+
14
+ ## Publishing
15
+
16
+ After building your library with `ng build NgxRenderMaterialForms`, go to the dist folder `cd dist/ngx-render-material-forms` and run `npm publish`.
17
+
18
+ ## Running unit tests
19
+
20
+ Run `ng test NgxRenderMaterialForms` to execute the unit tests via [Karma](https://karma-runner.github.io).
21
+
22
+ ## Further help
23
+
24
+ To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md).
@@ -0,0 +1,36 @@
1
+ import { FormControl } from '@angular/forms';
2
+ import unescape from 'lodash/unescape';
3
+ // @dynamic
4
+ export class FormioControl extends FormControl {
5
+ constructor(...args) {
6
+ super(args[0], [], [FormioControl.customValidator.bind(FormioControl)]);
7
+ }
8
+ static customValidator(control) {
9
+ return new Promise((resolve) => {
10
+ if (control.instance) {
11
+ control.instance.validateResolve = resolve;
12
+ }
13
+ else {
14
+ resolve(null);
15
+ }
16
+ });
17
+ }
18
+ setInstance(instance) {
19
+ this.instance = instance;
20
+ const setCustomValidity = instance.setCustomValidity;
21
+ instance.setCustomValidity = (message, dirty, external, isWarning = false) => {
22
+ let decodedMessage = message;
23
+ if (Array.isArray(message)) {
24
+ decodedMessage = message.map(msg => Object.assign(msg, { message: unescape(msg.message) }));
25
+ }
26
+ else if (message) {
27
+ decodedMessage = unescape(message);
28
+ }
29
+ setCustomValidity.call(instance, decodedMessage, dirty, external, isWarning);
30
+ if (instance.validateResolve) {
31
+ instance.validateResolve(decodedMessage ? { custom: true } : null);
32
+ }
33
+ };
34
+ }
35
+ }
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRm9ybWlvQ29udHJvbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25neC1yZW5kZXItbWF0ZXJpYWwtZm9ybXMvc3JjL2xpYi9Gb3JtaW9Db250cm9sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQW9CLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0QsT0FBTyxRQUFRLE1BQU0saUJBQWlCLENBQUM7QUFFdkMsV0FBVztBQUNYLE1BQU0sT0FBTyxhQUFjLFNBQVEsV0FBVztJQWE1QyxZQUFZLEdBQUcsSUFBSTtRQUNqQixLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBWkQsTUFBTSxDQUFDLGVBQWUsQ0FBQyxPQUFzQjtRQUMzQyxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDN0IsSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFO2dCQUNwQixPQUFPLENBQUMsUUFBUSxDQUFDLGVBQWUsR0FBRyxPQUFPLENBQUM7YUFDNUM7aUJBQU07Z0JBQ0wsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ2Y7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFNRCxXQUFXLENBQUMsUUFBYTtRQUN2QixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixNQUFNLGlCQUFpQixHQUFHLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQztRQUNyRCxRQUFRLENBQUMsaUJBQWlCLEdBQUcsQ0FBQyxPQUFZLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxTQUFTLEdBQUcsS0FBSyxFQUFFLEVBQUU7WUFDaEYsSUFBSSxjQUFjLEdBQUcsT0FBTyxDQUFDO1lBQzdCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDMUIsY0FBYyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQzdGO2lCQUNJLElBQUksT0FBTyxFQUFFO2dCQUNoQixjQUFjLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ3BDO1lBRUQsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUM3RSxJQUFJLFFBQVEsQ0FBQyxlQUFlLEVBQUU7Z0JBQzVCLFFBQVEsQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDbEU7UUFDSCxDQUFDLENBQUM7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtQ29udHJvbCwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB1bmVzY2FwZSBmcm9tICdsb2Rhc2gvdW5lc2NhcGUnO1xuXG4vLyBAZHluYW1pY1xuZXhwb3J0IGNsYXNzIEZvcm1pb0NvbnRyb2wgZXh0ZW5kcyBGb3JtQ29udHJvbCB7XG4gIHB1YmxpYyBpbnN0YW5jZTogYW55O1xuXG4gIHN0YXRpYyBjdXN0b21WYWxpZGF0b3IoY29udHJvbDogRm9ybWlvQ29udHJvbCk6IFByb21pc2U8VmFsaWRhdGlvbkVycm9ycz4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgaWYgKGNvbnRyb2wuaW5zdGFuY2UpIHtcbiAgICAgICAgY29udHJvbC5pbnN0YW5jZS52YWxpZGF0ZVJlc29sdmUgPSByZXNvbHZlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzb2x2ZShudWxsKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKC4uLmFyZ3MpIHtcbiAgICBzdXBlcihhcmdzWzBdLCBbXSwgW0Zvcm1pb0NvbnRyb2wuY3VzdG9tVmFsaWRhdG9yLmJpbmQoRm9ybWlvQ29udHJvbCldKTtcbiAgfVxuXG4gIHNldEluc3RhbmNlKGluc3RhbmNlOiBhbnkpIHtcbiAgICB0aGlzLmluc3RhbmNlID0gaW5zdGFuY2U7XG4gICAgY29uc3Qgc2V0Q3VzdG9tVmFsaWRpdHkgPSBpbnN0YW5jZS5zZXRDdXN0b21WYWxpZGl0eTtcbiAgICBpbnN0YW5jZS5zZXRDdXN0b21WYWxpZGl0eSA9IChtZXNzYWdlOiBhbnksIGRpcnR5LCBleHRlcm5hbCwgaXNXYXJuaW5nID0gZmFsc2UpID0+IHtcbiAgICAgIGxldCBkZWNvZGVkTWVzc2FnZSA9IG1lc3NhZ2U7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShtZXNzYWdlKSkge1xuICAgICAgICBkZWNvZGVkTWVzc2FnZSA9IG1lc3NhZ2UubWFwKG1zZyA9PiBPYmplY3QuYXNzaWduKG1zZywgeyBtZXNzYWdlOiB1bmVzY2FwZShtc2cubWVzc2FnZSkgfSkpO1xuICAgICAgfVxuICAgICAgZWxzZSBpZiAobWVzc2FnZSkge1xuICAgICAgICBkZWNvZGVkTWVzc2FnZSA9IHVuZXNjYXBlKG1lc3NhZ2UpO1xuICAgICAgfVxuXG4gICAgICBzZXRDdXN0b21WYWxpZGl0eS5jYWxsKGluc3RhbmNlLCBkZWNvZGVkTWVzc2FnZSwgZGlydHksIGV4dGVybmFsLCBpc1dhcm5pbmcpO1xuICAgICAgaWYgKGluc3RhbmNlLnZhbGlkYXRlUmVzb2x2ZSkge1xuICAgICAgICBpbnN0YW5jZS52YWxpZGF0ZVJlc29sdmUoZGVjb2RlZE1lc3NhZ2UgPyB7Y3VzdG9tOiB0cnVlfSA6IG51bGwpO1xuICAgICAgfVxuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,32 @@
1
+ import FormioComponent from 'formiojs/components/_classes/component/Component.js';
2
+ export default (() => {
3
+ const beforeSubmit = FormioComponent.prototype.beforeSubmit;
4
+ FormioComponent.prototype.beforeSubmit = function (...args) {
5
+ if (this.materialComponent) {
6
+ this.materialComponent.beforeSubmit();
7
+ }
8
+ return beforeSubmit.call(this, ...args);
9
+ };
10
+ Object.defineProperty(FormioComponent.prototype, 'disabled', {
11
+ set(disabled) {
12
+ this._disabled = disabled;
13
+ if (this.materialComponent) {
14
+ this.materialComponent.setDisabled(disabled);
15
+ }
16
+ }
17
+ });
18
+ Object.defineProperty(FormioComponent.prototype, 'visible', {
19
+ set(visible) {
20
+ if (this._visible !== visible) {
21
+ this._visible = visible;
22
+ this.clearOnHide();
23
+ this.redraw();
24
+ }
25
+ if (this.materialComponent) {
26
+ this.materialComponent.setVisible(visible);
27
+ }
28
+ }
29
+ });
30
+ return FormioComponent;
31
+ })();
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZW5kZXItbWF0ZXJpYWwtZm9ybXMvc3JjL2xpYi9jb21wb25lbnRzL0Jhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxlQUFlLE1BQU0scURBQXFELENBQUM7QUFFbEYsZUFBZSxDQUFDLEdBQUcsRUFBRTtJQUNuQixNQUFNLFlBQVksR0FBRyxlQUFlLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQztJQUM1RCxlQUFlLENBQUMsU0FBUyxDQUFDLFlBQVksR0FBRyxVQUFTLEdBQUcsSUFBSTtRQUN2RCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUMxQixJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDdkM7UUFDRCxPQUFPLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDMUMsQ0FBQyxDQUFDO0lBRUYsTUFBTSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRTtRQUMzRCxHQUFHLENBQUMsUUFBUTtZQUNWLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO1lBQzFCLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO2dCQUMxQixJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQzlDO1FBQ0gsQ0FBQztLQUNGLENBQUMsQ0FBQztJQUVILE1BQU0sQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUU7UUFDMUQsR0FBRyxDQUFDLE9BQU87WUFDVCxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssT0FBTyxFQUFFO2dCQUM3QixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztnQkFDeEIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUNuQixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7YUFDZjtZQUNELElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO2dCQUMxQixJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQzVDO1FBQ0gsQ0FBQztLQUNGLENBQUMsQ0FBQztJQUNILE9BQU8sZUFBZSxDQUFDO0FBQ3pCLENBQUMsQ0FBQyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgRm9ybWlvQ29tcG9uZW50IGZyb20gJ2Zvcm1pb2pzL2NvbXBvbmVudHMvX2NsYXNzZXMvY29tcG9uZW50L0NvbXBvbmVudC5qcyc7XG5cbmV4cG9ydCBkZWZhdWx0ICgoKSA9PiB7XG4gIGNvbnN0IGJlZm9yZVN1Ym1pdCA9IEZvcm1pb0NvbXBvbmVudC5wcm90b3R5cGUuYmVmb3JlU3VibWl0O1xuICBGb3JtaW9Db21wb25lbnQucHJvdG90eXBlLmJlZm9yZVN1Ym1pdCA9IGZ1bmN0aW9uKC4uLmFyZ3MpIHtcbiAgICBpZiAodGhpcy5tYXRlcmlhbENvbXBvbmVudCkge1xuICAgICAgdGhpcy5tYXRlcmlhbENvbXBvbmVudC5iZWZvcmVTdWJtaXQoKTtcbiAgICB9XG4gICAgcmV0dXJuIGJlZm9yZVN1Ym1pdC5jYWxsKHRoaXMsIC4uLmFyZ3MpO1xuICB9O1xuXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShGb3JtaW9Db21wb25lbnQucHJvdG90eXBlLCAnZGlzYWJsZWQnLCB7XG4gICAgc2V0KGRpc2FibGVkKSB7XG4gICAgICB0aGlzLl9kaXNhYmxlZCA9IGRpc2FibGVkO1xuICAgICAgaWYgKHRoaXMubWF0ZXJpYWxDb21wb25lbnQpIHtcbiAgICAgICAgdGhpcy5tYXRlcmlhbENvbXBvbmVudC5zZXREaXNhYmxlZChkaXNhYmxlZCk7XG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRm9ybWlvQ29tcG9uZW50LnByb3RvdHlwZSwgJ3Zpc2libGUnLCB7XG4gICAgc2V0KHZpc2libGUpIHtcbiAgICAgIGlmICh0aGlzLl92aXNpYmxlICE9PSB2aXNpYmxlKSB7XG4gICAgICAgIHRoaXMuX3Zpc2libGUgPSB2aXNpYmxlO1xuICAgICAgICB0aGlzLmNsZWFyT25IaWRlKCk7XG4gICAgICAgIHRoaXMucmVkcmF3KCk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5tYXRlcmlhbENvbXBvbmVudCkge1xuICAgICAgICB0aGlzLm1hdGVyaWFsQ29tcG9uZW50LnNldFZpc2libGUodmlzaWJsZSk7XG4gICAgICB9XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIEZvcm1pb0NvbXBvbmVudDtcbn0pKCk7XG5cbiJdfQ==
@@ -0,0 +1,145 @@
1
+ import { Component, Input, ViewChild } from '@angular/core';
2
+ import FormioComponent from './Base';
3
+ import Validator from 'formiojs/validator/Validator.js';
4
+ import { FormioControl } from '../FormioControl';
5
+ import get from 'lodash/get';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/material/card";
8
+ export class MaterialComponent {
9
+ constructor(element, ref) {
10
+ this.element = element;
11
+ this.ref = ref;
12
+ this.control = new FormioControl();
13
+ }
14
+ setInstance(instance) {
15
+ this.control.setInstance(instance);
16
+ instance.materialComponent = this;
17
+ this.instance = instance;
18
+ this.instance.disabled = this.instance.shouldDisabled;
19
+ this.setVisible(this.instance.visible);
20
+ this.renderComponents();
21
+ }
22
+ ngOnInit() {
23
+ if (this.instance) {
24
+ if (this.shouldValidateOnInit()) {
25
+ this.storeFormData();
26
+ this.validateOnInit();
27
+ }
28
+ this.instance.component.defaultValue ? this.setValue(this.instance.component.defaultValue) : '';
29
+ }
30
+ }
31
+ validateOnInit() {
32
+ const { key } = this.instance.component;
33
+ const validationValue = this.getFormValue(this.instance.path);
34
+ if (validationValue === null) {
35
+ return;
36
+ }
37
+ this.instance.setPristine(false);
38
+ const validationResult = Validator.checkComponent(this.instance, { [key]: validationValue }, { [key]: validationValue });
39
+ if (validationResult.length) {
40
+ this.instance.setCustomValidity(validationResult, false);
41
+ if (!!validationValue) {
42
+ this.control.markAsTouched();
43
+ }
44
+ this.ref.detectChanges();
45
+ }
46
+ }
47
+ storeFormData() {
48
+ if (this.instance.parent && this.instance.parent.submission && this.instance.parent.submission.data) {
49
+ sessionStorage.setItem('formData', JSON.stringify(this.instance.parent.submission.data));
50
+ }
51
+ }
52
+ getFormValue(path) {
53
+ const formData = JSON.parse(sessionStorage.getItem('formData'));
54
+ if (!formData) {
55
+ return null;
56
+ }
57
+ return get(formData, path);
58
+ }
59
+ renderComponents() { }
60
+ onChange(keepInputRaw) {
61
+ let value = this.getValue();
62
+ if (value === undefined || value === null) {
63
+ value = this.instance.emptyValue;
64
+ }
65
+ if (this.input && this.input.nativeElement.mask && value && !keepInputRaw) {
66
+ this.input.nativeElement.mask.textMaskInputElement.update(value);
67
+ this.control.setValue(this.input.nativeElement.value);
68
+ value = this.getValue();
69
+ }
70
+ this.instance.updateValue(value, { modified: true });
71
+ }
72
+ getValue() {
73
+ return this.control.value;
74
+ }
75
+ setValue(value) {
76
+ this.control.setValue(value);
77
+ }
78
+ beforeSubmit() {
79
+ this.control.markAsTouched();
80
+ }
81
+ hasError() {
82
+ return !!this.instance && !!this.instance.error;
83
+ }
84
+ shouldValidateOnInit() {
85
+ if (!this.instance) {
86
+ return;
87
+ }
88
+ return this.instance.options.validateOnInit
89
+ || this.instance.parent.options.validateOnInit;
90
+ }
91
+ setDisabled(disabled) {
92
+ if (disabled) {
93
+ this.control.disable();
94
+ }
95
+ else {
96
+ this.control.enable();
97
+ }
98
+ }
99
+ setVisible(visible) {
100
+ if (this.element && this.element.nativeElement) {
101
+ if (visible) {
102
+ this.element.nativeElement.removeAttribute('hidden');
103
+ this.element.nativeElement.style.visibility = 'visible';
104
+ this.element.nativeElement.style.position = 'relative';
105
+ }
106
+ else {
107
+ this.element.nativeElement.setAttribute('hidden', true);
108
+ this.element.nativeElement.style.visibility = 'hidden';
109
+ this.element.nativeElement.style.position = 'absolute';
110
+ }
111
+ }
112
+ }
113
+ ngAfterViewInit() {
114
+ if (this.element && this.element.nativeElement && this.instance) {
115
+ // Add custom classes to elements.
116
+ if (this.instance.component.customClass) {
117
+ this.element.nativeElement.classList.add(this.instance.component.customClass);
118
+ }
119
+ }
120
+ if (this.input) {
121
+ // Set the input masks.
122
+ this.instance.setInputMask(this.input.nativeElement);
123
+ this.instance.addFocusBlurEvents(this.input.nativeElement);
124
+ }
125
+ }
126
+ }
127
+ MaterialComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MaterialComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
128
+ MaterialComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: MaterialComponent, selector: "mat-formio-comp", inputs: { instance: "instance", control: "control" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: '<mat-card>Unknown Component: {{ instance.component.type }}</mat-card>', isInline: true, dependencies: [{ kind: "component", type: i1.MatCard, selector: "mat-card", exportAs: ["matCard"] }] });
129
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MaterialComponent, decorators: [{
130
+ type: Component,
131
+ args: [{
132
+ selector: 'mat-formio-comp',
133
+ template: '<mat-card>Unknown Component: {{ instance.component.type }}</mat-card>'
134
+ }]
135
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { instance: [{
136
+ type: Input
137
+ }], input: [{
138
+ type: ViewChild,
139
+ args: ['input']
140
+ }], control: [{
141
+ type: Input
142
+ }] } });
143
+ FormioComponent.MaterialComponent = MaterialComponent;
144
+ export { FormioComponent };
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWF0ZXJpYWxDb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmVuZGVyLW1hdGVyaWFsLWZvcm1zL3NyYy9saWIvY29tcG9uZW50cy9NYXRlcmlhbENvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQXVELE1BQU0sZUFBZSxDQUFDO0FBQ2hILE9BQU8sZUFBZSxNQUFNLFFBQVEsQ0FBQztBQUNyQyxPQUFPLFNBQVMsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxHQUFHLE1BQU0sWUFBWSxDQUFDOzs7QUFNN0IsTUFBTSxPQUFPLGlCQUFpQjtJQUk1QixZQUFtQixPQUFtQixFQUFTLEdBQXNCO1FBQWxELFlBQU8sR0FBUCxPQUFPLENBQVk7UUFBUyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUQ1RCxZQUFPLEdBQWtCLElBQUksYUFBYSxFQUFFLENBQUM7SUFDa0IsQ0FBQztJQUV6RSxXQUFXLENBQUMsUUFBYTtRQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNuQyxRQUFRLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDO1FBQ3RELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixJ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R0FBakIsaUJBQWlCLDZNQUZsQix1RUFBdUU7MkZBRXRFLGlCQUFpQjtrQkFKN0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixRQUFRLEVBQUUsdUVBQXVFO2lCQUNsRjtpSUFFVSxRQUFRO3NCQUFoQixLQUFLO2dCQUNjLEtBQUs7c0JBQXhCLFNBQVM7dUJBQUMsT0FBTztnQkFDVCxPQUFPO3NCQUFmLEtBQUs7O0FBK0lSLGVBQWUsQ0FBQyxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5wdXQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgQ2hhbmdlRGV0ZWN0b3JSZWYsIEFmdGVyVmlld0luaXQsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgRm9ybWlvQ29tcG9uZW50IGZyb20gJy4vQmFzZSc7XG5pbXBvcnQgVmFsaWRhdG9yIGZyb20gJ2Zvcm1pb2pzL3ZhbGlkYXRvci9WYWxpZGF0b3IuanMnO1xuaW1wb3J0IHsgRm9ybWlvQ29udHJvbCB9IGZyb20gJy4uL0Zvcm1pb0NvbnRyb2wnO1xuaW1wb3J0IGdldCBmcm9tICdsb2Rhc2gvZ2V0JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWF0LWZvcm1pby1jb21wJyxcbiAgdGVtcGxhdGU6ICc8bWF0LWNhcmQ+VW5rbm93biBDb21wb25lbnQ6IHt7IGluc3RhbmNlLmNvbXBvbmVudC50eXBlIH19PC9tYXQtY2FyZD4nXG59KVxuZXhwb3J0IGNsYXNzIE1hdGVyaWFsQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25Jbml0IHtcbiAgQElucHV0KCkgaW5zdGFuY2U6IGFueTtcbiAgQFZpZXdDaGlsZCgnaW5wdXQnKSBpbnB1dDogRWxlbWVudFJlZjtcbiAgQElucHV0KCkgY29udHJvbDogRm9ybWlvQ29udHJvbCA9IG5ldyBGb3JtaW9Db250cm9sKCk7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBlbGVtZW50OiBFbGVtZW50UmVmLCBwdWJsaWMgcmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBzZXRJbnN0YW5jZShpbnN0YW5jZTogYW55KSB7XG4gICAgdGhpcy5jb250cm9sLnNldEluc3RhbmNlKGluc3RhbmNlKTtcbiAgICBpbnN0YW5jZS5tYXRlcmlhbENvbXBvbmVudCA9IHRoaXM7XG4gICAgdGhpcy5pbnN0YW5jZSA9IGluc3RhbmNlO1xuICAgIHRoaXMuaW5zdGFuY2UuZGlzYWJsZWQgPSB0aGlzLmluc3RhbmNlLnNob3VsZERpc2FibGVkO1xuICAgIHRoaXMuc2V0VmlzaWJsZSh0aGlzLmluc3RhbmNlLnZpc2libGUpO1xuICAgIHRoaXMucmVuZGVyQ29tcG9uZW50cygpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMuaW5zdGFuY2UpIHtcbiAgICAgIGlmICh0aGlzLnNob3VsZFZhbGlkYXRlT25Jbml0KCkpIHtcbiAgICAgICAgdGhpcy5zdG9yZUZvcm1EYXRhKCk7XG4gICAgICAgIHRoaXMudmFsaWRhdGVPbkluaXQoKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuaW5zdGFuY2UuY29tcG9uZW50LmRlZmF1bHRWYWx1ZSA/IHRoaXMuc2V0VmFsdWUodGhpcy5pbnN0YW5jZS5jb21wb25lbnQuZGVmYXVsdFZhbHVlKSA6ICcnO1xuICAgIH1cbiAgfVxuXG4gIHZhbGlkYXRlT25Jbml0KCkge1xuICAgIGNvbnN0IHtrZXl9ID0gdGhpcy5pbnN0YW5jZS5jb21wb25lbnQ7XG4gICAgY29uc3QgdmFsaWRhdGlvblZhbHVlID0gdGhpcy5nZXRGb3JtVmFsdWUodGhpcy5pbnN0YW5jZS5wYXRoKTtcblxuICAgIGlmICh2YWxpZGF0aW9uVmFsdWUgPT09IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmluc3RhbmNlLnNldFByaXN0aW5lKGZhbHNlKTtcblxuICAgIGNvbnN0IHZhbGlkYXRpb25SZXN1bHQgPSBWYWxpZGF0b3IuY2hlY2tDb21wb25lbnQoXG4gICAgICB0aGlzLmluc3RhbmNlLFxuICAgICAge1trZXldOiB2YWxpZGF0aW9uVmFsdWV9LFxuICAgICAge1trZXldOiB2YWxpZGF0aW9uVmFsdWV9XG4gICAgKTtcblxuICAgIGlmICh2YWxpZGF0aW9uUmVzdWx0Lmxlbmd0aCkge1xuICAgICAgdGhpcy5pbnN0YW5jZS5zZXRDdXN0b21WYWxpZGl0eSh2YWxpZGF0aW9uUmVzdWx0LCBmYWxzZSk7XG4gICAgICBpZiAoISF2YWxpZGF0aW9uVmFsdWUpIHtcbiAgICAgICAgdGhpcy5jb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgIH1cbiAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gIH1cblxuICBzdG9yZUZvcm1EYXRhKCkge1xuICAgIGlmICh0aGlzLmluc3RhbmNlLnBhcmVudCAmJiB0aGlzLmluc3RhbmNlLnBhcmVudC5zdWJtaXNzaW9uICYmIHRoaXMuaW5zdGFuY2UucGFyZW50LnN1Ym1pc3Npb24uZGF0YSkge1xuICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnZm9ybURhdGEnLCBKU09OLnN0cmluZ2lmeSh0aGlzLmluc3RhbmNlLnBhcmVudC5zdWJtaXNzaW9uLmRhdGEpKTtcbiAgICB9XG4gIH1cblxuICBnZXRGb3JtVmFsdWUocGF0aCkge1xuICAgIGNvbnN0IGZvcm1EYXRhID0gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdmb3JtRGF0YScpKTtcblxuICAgIGlmICghZm9ybURhdGEpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiBnZXQoZm9ybURhdGEsIHBhdGgpO1xuICB9XG5cbiAgcmVuZGVyQ29tcG9uZW50cygpIHt9XG5cbiAgb25DaGFuZ2Uoa2VlcElucHV0UmF3PzogYm9vbGVhbikge1xuICAgIGxldCB2YWx1ZSA9IHRoaXMuZ2V0VmFsdWUoKTtcblxuICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSBudWxsKSB7XG4gICAgICB2YWx1ZSA9IHRoaXMuaW5zdGFuY2UuZW1wdHlWYWx1ZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pbnB1dCAmJiB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQubWFzayAmJiB2YWx1ZSAmJiAha2VlcElucHV0UmF3KSB7XG4gICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQubWFzay50ZXh0TWFza0lucHV0RWxlbWVudC51cGRhdGUodmFsdWUpO1xuICAgICAgdGhpcy5jb250cm9sLnNldFZhbHVlKHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSk7XG4gICAgICB2YWx1ZSA9IHRoaXMuZ2V0VmFsdWUoKTtcbiAgICB9XG4gICAgdGhpcy5pbnN0YW5jZS51cGRhdGVWYWx1ZSh2YWx1ZSwge21vZGlmaWVkOiB0cnVlfSk7XG4gIH1cblxuICBnZXRWYWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sLnZhbHVlO1xuICB9XG5cbiAgc2V0VmFsdWUodmFsdWUpIHtcbiAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUodmFsdWUpO1xuICB9XG5cbiAgYmVmb3JlU3VibWl0KCkge1xuICAgIHRoaXMuY29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gIH1cblxuICBoYXNFcnJvcigpIHtcbiAgICByZXR1cm4gISF0aGlzLmluc3RhbmNlICYmICEhdGhpcy5pbnN0YW5jZS5lcnJvcjtcbiAgfVxuXG4gIHNob3VsZFZhbGlkYXRlT25Jbml0KCkge1xuICAgIGlmICghdGhpcy5pbnN0YW5jZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmluc3RhbmNlLm9wdGlvbnMudmFsaWRhdGVPbkluaXRcbiAgICAgIHx8IHRoaXMuaW5zdGFuY2UucGFyZW50Lm9wdGlvbnMudmFsaWRhdGVPbkluaXQ7XG4gIH1cblxuICBzZXREaXNhYmxlZChkaXNhYmxlZCkge1xuICAgIGlmIChkaXNhYmxlZCkge1xuICAgICAgdGhpcy5jb250cm9sLmRpc2FibGUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb250cm9sLmVuYWJsZSgpO1xuICAgIH1cbiAgfVxuXG4gIHNldFZpc2libGUodmlzaWJsZSkge1xuICAgIGlmICh0aGlzLmVsZW1lbnQgJiYgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgIGlmICh2aXNpYmxlKSB7XG4gICAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgnaGlkZGVuJyk7XG4gICAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnN0eWxlLnZpc2liaWxpdHkgPSAndmlzaWJsZSc7XG4gICAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnN0eWxlLnBvc2l0aW9uID0gJ3JlbGF0aXZlJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgnaGlkZGVuJywgdHJ1ZSk7XG4gICAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJztcbiAgICAgICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBpZiAodGhpcy5lbGVtZW50ICYmIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50ICYmIHRoaXMuaW5zdGFuY2UpIHtcbiAgICAgIC8vIEFkZCBjdXN0b20gY2xhc3NlcyB0byBlbGVtZW50cy5cbiAgICAgIGlmICh0aGlzLmluc3RhbmNlLmNvbXBvbmVudC5jdXN0b21DbGFzcykge1xuICAgICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKHRoaXMuaW5zdGFuY2UuY29tcG9uZW50LmN1c3RvbUNsYXNzKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5pbnB1dCkge1xuICAgICAgLy8gU2V0IHRoZSBpbnB1dCBtYXNrcy5cbiAgICAgIHRoaXMuaW5zdGFuY2Uuc2V0SW5wdXRNYXNrKHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudCk7XG4gICAgICB0aGlzLmluc3RhbmNlLmFkZEZvY3VzQmx1ckV2ZW50cyh0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cbiAgfVxufVxuXG5Gb3JtaW9Db21wb25lbnQuTWF0ZXJpYWxDb21wb25lbnQgPSBNYXRlcmlhbENvbXBvbmVudDtcbmV4cG9ydCB7IEZvcm1pb0NvbXBvbmVudCB9O1xuIl19
@@ -0,0 +1,38 @@
1
+ import { Component, ViewChildren, ViewContainerRef } from '@angular/core';
2
+ import { MaterialComponent } from './MaterialComponent';
3
+ import * as i0 from "@angular/core";
4
+ export class MaterialNestedComponent extends MaterialComponent {
5
+ setInstance(instance) {
6
+ instance.viewContainer = () => {
7
+ return this.viewContainers ? this.viewContainers[0] : null;
8
+ };
9
+ super.setInstance(instance);
10
+ }
11
+ renderComponents() {
12
+ if (this.instance.renderComponents) {
13
+ this.instance.renderComponents();
14
+ }
15
+ }
16
+ render() {
17
+ this.viewContainers = this.components.toArray();
18
+ this.renderComponents();
19
+ this.ref.detectChanges();
20
+ }
21
+ ngAfterViewInit() {
22
+ this.components.changes.subscribe(() => this.render());
23
+ this.render();
24
+ }
25
+ }
26
+ MaterialNestedComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MaterialNestedComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
27
+ MaterialNestedComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: MaterialNestedComponent, selector: "mat-formio-nested", viewQueries: [{ propertyName: "components", predicate: ["components"], descendants: true, read: ViewContainerRef }], usesInheritance: true, ngImport: i0, template: '<ng-template #components></ng-template>', isInline: true });
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MaterialNestedComponent, decorators: [{
29
+ type: Component,
30
+ args: [{
31
+ selector: 'mat-formio-nested',
32
+ template: '<ng-template #components></ng-template>'
33
+ }]
34
+ }], propDecorators: { components: [{
35
+ type: ViewChildren,
36
+ args: ['components', { read: ViewContainerRef }]
37
+ }] } });
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWF0ZXJpYWxOZXN0ZWRDb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmVuZGVyLW1hdGVyaWFsLWZvcm1zL3NyYy9saWIvY29tcG9uZW50cy9NYXRlcmlhbE5lc3RlZENvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBYSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBTXhELE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxpQkFBaUI7SUFHNUQsV0FBVyxDQUFDLFFBQWE7UUFDdkIsUUFBUSxDQUFDLGFBQWEsR0FBRyxHQUFHLEVBQUU7WUFDNUIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDN0QsQ0FBQyxDQUFDO1FBQ0YsS0FBSyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixFQUFFO1lBQ2xDLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztTQUNsQztJQUNILENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2hELElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2hCLENBQUM7O29IQXpCVSx1QkFBdUI7d0dBQXZCLHVCQUF1QixpSUFFQyxnQkFBZ0Isb0RBSnpDLHlDQUF5QzsyRkFFeEMsdUJBQXVCO2tCQUpuQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFFBQVEsRUFBRSx5Q0FBeUM7aUJBQ3BEOzhCQUd1RCxVQUFVO3NCQUEvRCxZQUFZO3VCQUFDLFlBQVksRUFBRSxFQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgUXVlcnlMaXN0LCBWaWV3Q2hpbGRyZW4sIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdGVyaWFsQ29tcG9uZW50IH0gZnJvbSAnLi9NYXRlcmlhbENvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21hdC1mb3JtaW8tbmVzdGVkJyxcbiAgdGVtcGxhdGU6ICc8bmctdGVtcGxhdGUgI2NvbXBvbmVudHM+PC9uZy10ZW1wbGF0ZT4nXG59KVxuZXhwb3J0IGNsYXNzIE1hdGVyaWFsTmVzdGVkQ29tcG9uZW50IGV4dGVuZHMgTWF0ZXJpYWxDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgcHVibGljIHZpZXdDb250YWluZXJzO1xuICBAVmlld0NoaWxkcmVuKCdjb21wb25lbnRzJywge3JlYWQ6IFZpZXdDb250YWluZXJSZWZ9KSBjb21wb25lbnRzOiBRdWVyeUxpc3Q8Vmlld0NvbnRhaW5lclJlZj47XG4gIHNldEluc3RhbmNlKGluc3RhbmNlOiBhbnkpIHtcbiAgICBpbnN0YW5jZS52aWV3Q29udGFpbmVyID0gKCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMudmlld0NvbnRhaW5lcnMgPyB0aGlzLnZpZXdDb250YWluZXJzWzBdIDogbnVsbDtcbiAgICB9O1xuICAgIHN1cGVyLnNldEluc3RhbmNlKGluc3RhbmNlKTtcbiAgfVxuXG4gIHJlbmRlckNvbXBvbmVudHMoKSB7XG4gICAgaWYgKHRoaXMuaW5zdGFuY2UucmVuZGVyQ29tcG9uZW50cykge1xuICAgICAgdGhpcy5pbnN0YW5jZS5yZW5kZXJDb21wb25lbnRzKCk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIHRoaXMudmlld0NvbnRhaW5lcnMgPSB0aGlzLmNvbXBvbmVudHMudG9BcnJheSgpO1xuICAgIHRoaXMucmVuZGVyQ29tcG9uZW50cygpO1xuICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLmNvbXBvbmVudHMuY2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4gdGhpcy5yZW5kZXIoKSk7XG4gICAgdGhpcy5yZW5kZXIoKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,19 @@
1
+ import Webform from 'formiojs/Webform.js';
2
+ console.log('Webform=>', Webform);
3
+ Webform.prototype.redraw = function () {
4
+ return this.render();
5
+ };
6
+ Webform.prototype.clear = function () {
7
+ const viewContainer = this.viewContainer ? this.viewContainer() : null;
8
+ if (viewContainer) {
9
+ viewContainer.clear();
10
+ }
11
+ };
12
+ Webform.prototype.render = function () {
13
+ if (this.viewContainer && this.viewContainer()) {
14
+ this.clear();
15
+ this.renderComponents();
16
+ this.setValue(this._submission);
17
+ }
18
+ };
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2ViZm9ybS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZW5kZXItbWF0ZXJpYWwtZm9ybXMvc3JjL2xpYi9jb21wb25lbnRzL1dlYmZvcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxPQUFPLE1BQU0scUJBQXFCLENBQUM7QUFDMUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUE7QUFDakMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUc7SUFDekIsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7QUFDdkIsQ0FBQyxDQUFDO0FBQ0YsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEdBQUc7SUFDeEIsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDdkUsSUFBSSxhQUFhLEVBQUU7UUFDakIsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO0tBQ3ZCO0FBQ0gsQ0FBQyxDQUFDO0FBQ0YsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUc7SUFDekIsSUFBSSxJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRTtRQUM5QyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDYixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztLQUNqQztBQUNILENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBXZWJmb3JtIGZyb20gJ2Zvcm1pb2pzL1dlYmZvcm0uanMnO1xuY29uc29sZS5sb2coJ1dlYmZvcm09PicsIFdlYmZvcm0pXG5XZWJmb3JtLnByb3RvdHlwZS5yZWRyYXcgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIHRoaXMucmVuZGVyKCk7XG59O1xuV2ViZm9ybS5wcm90b3R5cGUuY2xlYXIgPSBmdW5jdGlvbigpIHtcbiAgY29uc3Qgdmlld0NvbnRhaW5lciA9IHRoaXMudmlld0NvbnRhaW5lciA/IHRoaXMudmlld0NvbnRhaW5lcigpIDogbnVsbDtcbiAgaWYgKHZpZXdDb250YWluZXIpIHtcbiAgICB2aWV3Q29udGFpbmVyLmNsZWFyKCk7IFxuICB9XG59O1xuV2ViZm9ybS5wcm90b3R5cGUucmVuZGVyID0gZnVuY3Rpb24oKSB7XG4gIGlmICh0aGlzLnZpZXdDb250YWluZXIgJiYgdGhpcy52aWV3Q29udGFpbmVyKCkpIHtcbiAgICB0aGlzLmNsZWFyKCk7XG4gICAgdGhpcy5yZW5kZXJDb21wb25lbnRzKCk7XG4gICAgdGhpcy5zZXRWYWx1ZSh0aGlzLl9zdWJtaXNzaW9uKTtcbiAgfVxufTtcbiJdfQ==
@@ -0,0 +1,91 @@
1
+ import { Component } from '@angular/core';
2
+ import ButtonComponent from 'formiojs/components/button/Button.js';
3
+ import { MaterialComponent } from '../MaterialComponent';
4
+ import { AngularButtonsThemes, ButtonsThemes } from '../../const/ButtonsThemes';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/common";
7
+ import * as i2 from "@angular/material/button";
8
+ import * as i3 from "@angular/material/icon";
9
+ import * as i4 from "@angular/flex-layout/extended";
10
+ export class MaterialButtonComponent extends MaterialComponent {
11
+ constructor() {
12
+ super(...arguments);
13
+ this.loading = false;
14
+ this.done = false;
15
+ this.error = false;
16
+ this.disabled = false;
17
+ this.clicked = false;
18
+ }
19
+ get color() {
20
+ if (this.error) {
21
+ return AngularButtonsThemes.WARN;
22
+ }
23
+ const theme = this.angularButtonTheme;
24
+ return theme || AngularButtonsThemes.PRIMARY;
25
+ }
26
+ get angularButtonTheme() {
27
+ switch (this.instance.component.theme) {
28
+ case ButtonsThemes.PRIMARY:
29
+ return AngularButtonsThemes.PRIMARY;
30
+ case ButtonsThemes.WARNING:
31
+ return AngularButtonsThemes.ACCENT;
32
+ case ButtonsThemes.DANGER:
33
+ return AngularButtonsThemes.WARN;
34
+ case ButtonsThemes.SECONDARY:
35
+ return AngularButtonsThemes.BASIC;
36
+ default:
37
+ return '';
38
+ }
39
+ }
40
+ get buttonClass() {
41
+ let className = this.instance.component.block ? 'mat-formio-button-block' : '';
42
+ className += this.instance.component.size ? ` mat-formio-button-${this.instance.component.size}` : '';
43
+ className += !this.angularButtonTheme ? ` mat-formio-theme-${this.instance.component.theme}` : '';
44
+ return className;
45
+ }
46
+ onClick(event) {
47
+ this.clicked = true;
48
+ this.instance.onClick(event);
49
+ }
50
+ getValue() {
51
+ return this.clicked;
52
+ }
53
+ setState(loading, error, done) {
54
+ this.loading = loading;
55
+ this.done = done;
56
+ this.error = error;
57
+ }
58
+ getIconFontSet(icon) {
59
+ const fontSet = icon.split(' ')[0];
60
+ return fontSet;
61
+ }
62
+ getIconName(icon) {
63
+ return icon.replace(this.getIconFontSet(icon), '');
64
+ }
65
+ setInstance(instance) {
66
+ const retVal = super.setInstance(instance);
67
+ this.disabled = instance.shouldDisabled;
68
+ instance.on('submitButton', () => this.setState(true, false, false));
69
+ instance.on('submitDone', () => this.setState(false, false, true));
70
+ instance.on('submitError', () => this.setState(false, true, false));
71
+ instance.on('requestButton', () => this.setState(true, false, false));
72
+ instance.on('requestDone', () => this.setState(false, false, true));
73
+ instance.on('change', (event) => {
74
+ this.disabled = this.instance.shouldDisabled || (this.instance.component.disableOnInvalid && !event.isValid);
75
+ if (event.isValid) {
76
+ this.loading = false;
77
+ this.error = false;
78
+ }
79
+ });
80
+ return retVal;
81
+ }
82
+ }
83
+ MaterialButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MaterialButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
84
+ MaterialButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: MaterialButtonComponent, selector: "mat-formio-button", usesInheritance: true, ngImport: i0, template: "<button *ngIf=\"instance\"\n [ngClass]=\"buttonClass\"\n type=\"{{ instance.component.action }}\"\n mat-raised-button [color]=\"color\"\n [disabled]=\"disabled\"\n (click)=\"instance.onClick($event)\"\n>\n <mat-icon *ngIf=\"instance.component.leftIcon\">{{instance.component.leftIcon}}</mat-icon>\n <mat-icon *ngIf=\"done\">done</mat-icon>\n <mat-icon *ngIf=\"error\">close</mat-icon>\n <mat-icon class=\"mat-icon-spin\" *ngIf=\"loading\">autorenew</mat-icon>\n {{ instance.component.label }}\n <mat-icon *ngIf=\"instance.component.rightIcon\">{{instance.component.rightIcon}}</mat-icon>\n</button>\n", styles: ["@-webkit-keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host .mat-icon-spin{-webkit-animation-name:spin;animation-name:spin;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-timing-function:linear;animation-timing-function:linear}.mat-formio-theme-success{background-color:#63d644!important}.mat-formio-theme-info{background-color:#49d9f4!important}.mat-formio-button-sm{font-size:14px;padding:8px 12px}.mat-formio-button-xs{font-size:14px;padding:4px 6px}.mat-formio-button-md{font-size:15px;padding:8px 12px}.mat-formio-button-lg{font-size:19px;padding:16px 20px}.mat-formio-button-block{display:block;width:100%}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i4.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"] }] });
85
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MaterialButtonComponent, decorators: [{
86
+ type: Component,
87
+ args: [{ selector: 'mat-formio-button', template: "<button *ngIf=\"instance\"\n [ngClass]=\"buttonClass\"\n type=\"{{ instance.component.action }}\"\n mat-raised-button [color]=\"color\"\n [disabled]=\"disabled\"\n (click)=\"instance.onClick($event)\"\n>\n <mat-icon *ngIf=\"instance.component.leftIcon\">{{instance.component.leftIcon}}</mat-icon>\n <mat-icon *ngIf=\"done\">done</mat-icon>\n <mat-icon *ngIf=\"error\">close</mat-icon>\n <mat-icon class=\"mat-icon-spin\" *ngIf=\"loading\">autorenew</mat-icon>\n {{ instance.component.label }}\n <mat-icon *ngIf=\"instance.component.rightIcon\">{{instance.component.rightIcon}}</mat-icon>\n</button>\n", styles: ["@-webkit-keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host .mat-icon-spin{-webkit-animation-name:spin;animation-name:spin;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-timing-function:linear;animation-timing-function:linear}.mat-formio-theme-success{background-color:#63d644!important}.mat-formio-theme-info{background-color:#49d9f4!important}.mat-formio-button-sm{font-size:14px;padding:8px 12px}.mat-formio-button-xs{font-size:14px;padding:4px 6px}.mat-formio-button-md{font-size:15px;padding:8px 12px}.mat-formio-button-lg{font-size:19px;padding:16px 20px}.mat-formio-button-block{display:block;width:100%}\n"] }]
88
+ }] });
89
+ ButtonComponent.MaterialComponent = MaterialButtonComponent;
90
+ export { ButtonComponent };
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZW5kZXItbWF0ZXJpYWwtZm9ybXMvc3JjL2xpYi9jb21wb25lbnRzL2J1dHRvbi9idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJlbmRlci1tYXRlcmlhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sZUFBZSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7O0FBT2hGLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxpQkFBaUI7SUFMOUQ7O1FBTVMsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixTQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2IsVUFBSyxHQUFHLEtBQUssQ0FBQztRQUNkLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsWUFBTyxHQUFHLEtBQUssQ0FBQztLQTZFeEI7SUEzRUMsSUFBSSxLQUFLO1FBQ1AsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2QsT0FBTyxvQkFBb0IsQ0FBQyxJQUFJLENBQUM7U0FDbEM7UUFDRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUM7UUFDdEMsT0FBTyxLQUFLLElBQUksb0JBQW9CLENBQUMsT0FBTyxDQUFDO0lBQy9DLENBQUM7SUFFRCxJQUFJLGtCQUFrQjtRQUNwQixRQUFRLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRTtZQUNyQyxL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Q0FBQyxDQUFDLENBQUM7UUFDdEUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDcEUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUM5QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDN0csSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFO2dCQUNqQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztnQkFDckIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7YUFDcEI7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7O29IQWpGVSx1QkFBdUI7d0dBQXZCLHVCQUF1QixnRkNWcEMsbW9CQWNBOzJGREphLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSxtQkFBbUI7O0FBdUYvQixlQUFlLENBQUMsaUJBQWlCLEdBQUcsdUJBQXVCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG4gaW1wb3J0IEJ1dHRvbkNvbXBvbmVudCBmcm9tICdmb3JtaW9qcy9jb21wb25lbnRzL2J1dHRvbi9CdXR0b24uanMnO1xuaW1wb3J0IHsgTWF0ZXJpYWxDb21wb25lbnQgfSBmcm9tICcuLi9NYXRlcmlhbENvbXBvbmVudCc7XG5pbXBvcnQgeyBBbmd1bGFyQnV0dG9uc1RoZW1lcywgQnV0dG9uc1RoZW1lcyB9IGZyb20gJy4uLy4uL2NvbnN0L0J1dHRvbnNUaGVtZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtYXQtZm9ybWlvLWJ1dHRvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9idXR0b24uY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIE1hdGVyaWFsQnV0dG9uQ29tcG9uZW50IGV4dGVuZHMgTWF0ZXJpYWxDb21wb25lbnQge1xuICBwdWJsaWMgbG9hZGluZyA9IGZhbHNlO1xuICBwdWJsaWMgZG9uZSA9IGZhbHNlO1xuICBwdWJsaWMgZXJyb3IgPSBmYWxzZTtcbiAgcHVibGljIGRpc2FibGVkID0gZmFsc2U7XG4gIHB1YmxpYyBjbGlja2VkID0gZmFsc2U7XG5cbiAgZ2V0IGNvbG9yKCkge1xuICAgIGlmICh0aGlzLmVycm9yKSB7XG4gICAgICByZXR1cm4gQW5ndWxhckJ1dHRvbnNUaGVtZXMuV0FSTjtcbiAgICB9XG4gICAgY29uc3QgdGhlbWUgPSB0aGlzLmFuZ3VsYXJCdXR0b25UaGVtZTtcbiAgICByZXR1cm4gdGhlbWUgfHwgQW5ndWxhckJ1dHRvbnNUaGVtZXMuUFJJTUFSWTtcbiAgfVxuXG4gIGdldCBhbmd1bGFyQnV0dG9uVGhlbWUoKSB7XG4gICAgc3dpdGNoICh0aGlzLmluc3RhbmNlLmNvbXBvbmVudC50aGVtZSkge1xuICAgICAgY2FzZSBCdXR0b25zVGhlbWVzLlBSSU1BUlk6XG4gICAgICAgIHJldHVybiBBbmd1bGFyQnV0dG9uc1RoZW1lcy5QUklNQVJZO1xuXG4gICAgICBjYXNlIEJ1dHRvbnNUaGVtZXMuV0FSTklORzpcbiAgICAgICAgcmV0dXJuIEFuZ3VsYXJCdXR0b25zVGhlbWVzLkFDQ0VOVDtcblxuICAgICAgY2FzZSBCdXR0b25zVGhlbWVzLkRBTkdFUjpcbiAgICAgICAgcmV0dXJuIEFuZ3VsYXJCdXR0b25zVGhlbWVzLldBUk47XG5cbiAgICAgIGNhc2UgQnV0dG9uc1RoZW1lcy5TRUNPTkRBUlk6XG4gICAgICAgIHJldHVybiBBbmd1bGFyQnV0dG9uc1RoZW1lcy5CQVNJQztcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgfVxuXG4gIGdldCBidXR0b25DbGFzcygpIHtcbiAgICBsZXQgY2xhc3NOYW1lID0gdGhpcy5pbnN0YW5jZS5jb21wb25lbnQuYmxvY2sgPyAnbWF0LWZvcm1pby1idXR0b24tYmxvY2snIDogJyc7XG4gICAgY2xhc3NOYW1lICs9IHRoaXMuaW5zdGFuY2UuY29tcG9uZW50LnNpemUgPyBgIG1hdC1mb3JtaW8tYnV0dG9uLSR7dGhpcy5pbnN0YW5jZS5jb21wb25lbnQuc2l6ZX1gIDogJyc7XG4gICAgY2xhc3NOYW1lICs9ICF0aGlzLmFuZ3VsYXJCdXR0b25UaGVtZSA/IGAgbWF0LWZvcm1pby10aGVtZS0ke3RoaXMuaW5zdGFuY2UuY29tcG9uZW50LnRoZW1lfWAgOiAnJztcbiAgICByZXR1cm4gY2xhc3NOYW1lO1xuICB9XG5cbiAgb25DbGljayhldmVudCkge1xuICAgIHRoaXMuY2xpY2tlZCA9IHRydWU7XG4gICAgdGhpcy5pbnN0YW5jZS5vbkNsaWNrKGV2ZW50KTtcbiAgfVxuXG4gIGdldFZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLmNsaWNrZWQ7XG4gIH1cblxuICBzZXRTdGF0ZShsb2FkaW5nLCBlcnJvciwgZG9uZSkge1xuICAgIHRoaXMubG9hZGluZyA9IGxvYWRpbmc7XG4gICAgdGhpcy5kb25lID0gZG9uZTtcbiAgICB0aGlzLmVycm9yID0gZXJyb3I7XG4gIH1cblxuICBnZXRJY29uRm9udFNldChpY29uOiBzdHJpbmcpIHtcbiAgICBjb25zdCBmb250U2V0ID0gaWNvbi5zcGxpdCgnICcpWzBdO1xuICAgIHJldHVybiBmb250U2V0O1xuICB9XG5cbiAgZ2V0SWNvbk5hbWUoaWNvbjogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGljb24ucmVwbGFjZSh0aGlzLmdldEljb25Gb250U2V0KGljb24pLCAnJyk7XG4gIH1cblxuICBzZXRJbnN0YW5jZShpbnN0YW5jZSkge1xuICAgIGNvbnN0IHJldFZhbCA9IHN1cGVyLnNldEluc3RhbmNlKGluc3RhbmNlKTtcbiAgICB0aGlzLmRpc2FibGVkID0gaW5zdGFuY2Uuc2hvdWxkRGlzYWJsZWQ7XG4gICAgaW5zdGFuY2Uub24oJ3N1Ym1pdEJ1dHRvbicsICgpID0+IHRoaXMuc2V0U3RhdGUodHJ1ZSwgZmFsc2UsIGZhbHNlKSk7XG4gICAgaW5zdGFuY2Uub24oJ3N1Ym1pdERvbmUnLCAoKSA9PiB0aGlzLnNldFN0YXRlKGZhbHNlLCBmYWxzZSwgdHJ1ZSkpO1xuICAgIGluc3RhbmNlLm9uKCdzdWJtaXRFcnJvcicsICgpID0+IHRoaXMuc2V0U3RhdGUoZmFsc2UsIHRydWUsIGZhbHNlKSk7XG4gICAgaW5zdGFuY2Uub24oJ3JlcXVlc3RCdXR0b24nLCAoKSA9PiB0aGlzLnNldFN0YXRlKHRydWUsIGZhbHNlLCBmYWxzZSkpO1xuICAgIGluc3RhbmNlLm9uKCdyZXF1ZXN0RG9uZScsICgpID0+IHRoaXMuc2V0U3RhdGUoZmFsc2UsIGZhbHNlLCB0cnVlKSk7XG4gICAgaW5zdGFuY2Uub24oJ2NoYW5nZScsIChldmVudCkgPT4ge1xuICAgICAgdGhpcy5kaXNhYmxlZCA9IHRoaXMuaW5zdGFuY2Uuc2hvdWxkRGlzYWJsZWQgfHwgKHRoaXMuaW5zdGFuY2UuY29tcG9uZW50LmRpc2FibGVPbkludmFsaWQgJiYgIWV2ZW50LmlzVmFsaWQpO1xuICAgICAgaWYgKGV2ZW50LmlzVmFsaWQpIHtcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZXJyb3IgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcmV0VmFsO1xuICB9XG59XG5CdXR0b25Db21wb25lbnQuTWF0ZXJpYWxDb21wb25lbnQgPSBNYXRlcmlhbEJ1dHRvbkNvbXBvbmVudDtcbmV4cG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9O1xuIiwiPGJ1dHRvbiAqbmdJZj1cImluc3RhbmNlXCJcbiAgICAgICAgW25nQ2xhc3NdPVwiYnV0dG9uQ2xhc3NcIlxuICAgICAgICB0eXBlPVwie3sgaW5zdGFuY2UuY29tcG9uZW50LmFjdGlvbiB9fVwiXG4gICAgICAgIG1hdC1yYWlzZWQtYnV0dG9uIFtjb2xvcl09XCJjb2xvclwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIChjbGljayk9XCJpbnN0YW5jZS5vbkNsaWNrKCRldmVudClcIlxuPlxuICA8bWF0LWljb24gKm5nSWY9XCJpbnN0YW5jZS5jb21wb25lbnQubGVmdEljb25cIj57e2luc3RhbmNlLmNvbXBvbmVudC5sZWZ0SWNvbn19PC9tYXQtaWNvbj5cbiAgPG1hdC1pY29uICpuZ0lmPVwiZG9uZVwiPmRvbmU8L21hdC1pY29uPlxuICA8bWF0LWljb24gKm5nSWY9XCJlcnJvclwiPmNsb3NlPC9tYXQtaWNvbj5cbiAgPG1hdC1pY29uIGNsYXNzPVwibWF0LWljb24tc3BpblwiICpuZ0lmPVwibG9hZGluZ1wiPmF1dG9yZW5ldzwvbWF0LWljb24+XG4gIHt7IGluc3RhbmNlLmNvbXBvbmVudC5sYWJlbCB9fVxuICA8bWF0LWljb24gKm5nSWY9XCJpbnN0YW5jZS5jb21wb25lbnQucmlnaHRJY29uXCI+e3tpbnN0YW5jZS5jb21wb25lbnQucmlnaHRJY29ufX08L21hdC1pY29uPlxuPC9idXR0b24+XG4iXX0=
@@ -0,0 +1,129 @@
1
+ import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
+ import { MaterialComponent } from '../MaterialComponent';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ import * as i2 from "@angular/material/datepicker";
6
+ import * as i3 from "@angular/flex-layout/flex";
7
+ import * as i4 from "@angular/flex-layout/extended";
8
+ import * as i5 from "@angular/material/card";
9
+ import * as i6 from "../time/time.component";
10
+ export class MaterialCalendarComponent extends MaterialComponent {
11
+ constructor() {
12
+ super(...arguments);
13
+ this.timeSelectEvent = new EventEmitter();
14
+ this.dateSelectEvent = new EventEmitter();
15
+ }
16
+ setInstance(instance) {
17
+ super.setInstance(instance);
18
+ }
19
+ setExistedDate(value) {
20
+ this.selectedDate = value;
21
+ }
22
+ setExistedTime(value, forTime) {
23
+ this.selectedTime = value;
24
+ this.time.setValue(forTime);
25
+ }
26
+ onDate(event) {
27
+ this.selectedDate = event;
28
+ this.dateSelectEvent.emit(this.selectedDate);
29
+ }
30
+ onTime(event) {
31
+ this.selectedTime = event.value;
32
+ this.timeSelectEvent.emit(this.selectedTime);
33
+ }
34
+ getPopupStyles() {
35
+ return {
36
+ position: 'absolute',
37
+ zIndex: '1000',
38
+ display: 'flex',
39
+ maxWidth: '100%',
40
+ maxHeight: '100%',
41
+ top: '90px',
42
+ left: '30px'
43
+ };
44
+ }
45
+ }
46
+ MaterialCalendarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MaterialCalendarComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
47
+ MaterialCalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: MaterialCalendarComponent, selector: "mat-formio-calendar", inputs: { enableDate: "enableDate", enableTime: "enableTime", minDate: "minDate", maxDate: "maxDate", dateFilter: "dateFilter", hourStep: "hourStep", minuteStep: "minuteStep" }, outputs: { timeSelectEvent: "timeSelectEvent", dateSelectEvent: "dateSelectEvent" }, viewQueries: [{ propertyName: "time", first: true, predicate: ["time"], descendants: true }], usesInheritance: true, ngImport: i0, template: `
48
+ <div class="container" fxLayout="row" fxLayout.xs="column" fxLayoutGap="0.5%">
49
+ <div [ngStyle]="getPopupStyles()">
50
+ <mat-card style="padding: 0;">
51
+ <mat-calendar
52
+ [dateFilter]="dateFilter"
53
+ [maxDate]="maxDate"
54
+ [minDate]="minDate"
55
+ [selected]="selectedDate"
56
+ (selectedChange)="onDate($event)"
57
+ class="calendar"
58
+ *ngIf="enableDate !== false"
59
+ >
60
+ </mat-calendar>
61
+ <mat-formio-time
62
+ #time
63
+ [hourStep]="hourStep"
64
+ [instance]="instance"
65
+ [renderElementOnly]="true"
66
+ [minuteStep]="minuteStep"
67
+ (selectedEvent)="onTime($event)"
68
+ class="ml-3 formio-time"
69
+ *ngIf="enableTime"
70
+ >
71
+ </mat-formio-time>
72
+ </mat-card>
73
+ </div>
74
+ </div>
75
+ `, isInline: true, styles: [".calendar,.formio-time{padding:16px;background-color:#fff;box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f}.formio-time{display:flex}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.MatCalendar, selector: "mat-calendar", inputs: ["headerComponent", "startAt", "startView", "selected", "minDate", "maxDate", "dateFilter", "dateClass", "comparisonStart", "comparisonEnd"], outputs: ["selectedChange", "yearSelected", "monthSelected", "viewChanged", "_userSelection"], exportAs: ["matCalendar"] }, { kind: "directive", type: i3.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i3.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i4.DefaultStyleDirective, selector: " [ngStyle], [ngStyle.xs], [ngStyle.sm], [ngStyle.md], [ngStyle.lg], [ngStyle.xl], [ngStyle.lt-sm], [ngStyle.lt-md], [ngStyle.lt-lg], [ngStyle.lt-xl], [ngStyle.gt-xs], [ngStyle.gt-sm], [ngStyle.gt-md], [ngStyle.gt-lg]", inputs: ["ngStyle", "ngStyle.xs", "ngStyle.sm", "ngStyle.md", "ngStyle.lg", "ngStyle.xl", "ngStyle.lt-sm", "ngStyle.lt-md", "ngStyle.lt-lg", "ngStyle.lt-xl", "ngStyle.gt-xs", "ngStyle.gt-sm", "ngStyle.gt-md", "ngStyle.gt-lg"] }, { kind: "component", type: i5.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "component", type: i6.MaterialTimeComponent, selector: "mat-formio-time", inputs: ["hourStep", "minuteStep", "secondStep", "renderElementOnly"], outputs: ["selectedEvent"] }] });
76
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MaterialCalendarComponent, decorators: [{
77
+ type: Component,
78
+ args: [{ selector: 'mat-formio-calendar', template: `
79
+ <div class="container" fxLayout="row" fxLayout.xs="column" fxLayoutGap="0.5%">
80
+ <div [ngStyle]="getPopupStyles()">
81
+ <mat-card style="padding: 0;">
82
+ <mat-calendar
83
+ [dateFilter]="dateFilter"
84
+ [maxDate]="maxDate"
85
+ [minDate]="minDate"
86
+ [selected]="selectedDate"
87
+ (selectedChange)="onDate($event)"
88
+ class="calendar"
89
+ *ngIf="enableDate !== false"
90
+ >
91
+ </mat-calendar>
92
+ <mat-formio-time
93
+ #time
94
+ [hourStep]="hourStep"
95
+ [instance]="instance"
96
+ [renderElementOnly]="true"
97
+ [minuteStep]="minuteStep"
98
+ (selectedEvent)="onTime($event)"
99
+ class="ml-3 formio-time"
100
+ *ngIf="enableTime"
101
+ >
102
+ </mat-formio-time>
103
+ </mat-card>
104
+ </div>
105
+ </div>
106
+ `, styles: [".calendar,.formio-time{padding:16px;background-color:#fff;box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f}.formio-time{display:flex}\n"] }]
107
+ }], propDecorators: { time: [{
108
+ type: ViewChild,
109
+ args: ['time']
110
+ }], enableDate: [{
111
+ type: Input
112
+ }], enableTime: [{
113
+ type: Input
114
+ }], minDate: [{
115
+ type: Input
116
+ }], maxDate: [{
117
+ type: Input
118
+ }], dateFilter: [{
119
+ type: Input
120
+ }], hourStep: [{
121
+ type: Input
122
+ }], minuteStep: [{
123
+ type: Input
124
+ }], timeSelectEvent: [{
125
+ type: Output
126
+ }], dateSelectEvent: [{
127
+ type: Output
128
+ }] } });
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJlbmRlci1tYXRlcmlhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvY2FsZW5kYXIvY2FsZW5kYXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBWSxNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7OztBQTZDekQsTUFBTSxPQUFPLHlCQUEwQixTQUFRLGlCQUFpQjtJQTVDaEU7O1FBMERZLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUMxQyxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7S0FvQ3JEO0lBbENDLFdBQVcsQ0FBQyxRQUFhO1FBQ3ZCLEtBQUssQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFLO1FBQ2xCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQzVCLENBQUM7SUFFRCxjQUFjLENBQUMsS0FBSyxFQUFFLE9BQU87UUFDM0IsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLO1FBQ1YsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSztRQUNWLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztRQUNoQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELGNBQWM7UUFDWixPQUFPO1lBQ0wsUUFBUSxFQUFFLFVBQVU7WUFDcEIsTUFBTSxFQUFFLE1BQU07WUFDZCxPQUFPLEVBQUUsTUFBTTtZQUNmLFFBQVEsRUFBRSxNQUFNO1lBQ2hCLFNBQVMsRUFBRSxNQUFNO1lBQ2pCLEdBQUcsRUFBRSxNQUFNO1lBQ1gsSUFBSSxFQUFFLE1BQU07U0FDYixDQUFBO0lBQ0gsQ0FBQzs7c0hBbERVLHlCQUF5QjswR0FBekIseUJBQXlCLHViQS9CMUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0QlQ7MkZBR1UseUJBQXlCO2tCQTVDckMsU0FBUzsrQkFDRSxxQkFBcUIsWUFZckI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0QlQ7OEJBUWtCLElBQUk7c0JBQXRCLFNBQVM7dUJBQUMsTUFBTTtnQkFFUixVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDSSxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLGVBQWU7c0JBQXhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgTmdNb2R1bGUsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdGVyaWFsQ29tcG9uZW50IH0gZnJvbSAnLi4vTWF0ZXJpYWxDb21wb25lbnQnO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWF0LWZvcm1pby1jYWxlbmRhcicsXG4gIHN0eWxlczogW1xuICAgIGAuY2FsZW5kYXIsIC5mb3JtaW8tdGltZSB7XG4gICAgICBwYWRkaW5nOiAxNnB4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICBib3gtc2hhZG93OiAwIDJweCAxcHggLTFweCByZ2JhKDAsMCwwLC4yKSwgMCAxcHggMXB4IDAgcmdiYSgwLDAsMCwuMTQpLCAwIDFweCAzcHggMCByZ2JhKDAsMCwwLC4xMik7XG4gICAgfVxuICAgIC5mb3JtaW8tdGltZSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cbiAgICBgXG4gIF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiIGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXQueHM9XCJjb2x1bW5cIiBmeExheW91dEdhcD1cIjAuNSVcIj5cbiAgICAgIDxkaXYgW25nU3R5bGVdPVwiZ2V0UG9wdXBTdHlsZXMoKVwiPlxuICAgICAgICA8bWF0LWNhcmQgc3R5bGU9XCJwYWRkaW5nOiAwO1wiPlxuICAgICAgICAgIDxtYXQtY2FsZW5kYXJcbiAgICAgICAgICAgICAgICAgIFtkYXRlRmlsdGVyXT1cImRhdGVGaWx0ZXJcIlxuICAgICAgICAgICAgICAgICAgW21heERhdGVdPVwibWF4RGF0ZVwiXG4gICAgICAgICAgICAgICAgICBbbWluRGF0ZV09XCJtaW5EYXRlXCJcbiAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZF09XCJzZWxlY3RlZERhdGVcIlxuICAgICAgICAgICAgICAgICAgKHNlbGVjdGVkQ2hhbmdlKT1cIm9uRGF0ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2FsZW5kYXJcIlxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJlbmFibGVEYXRlICE9PSBmYWxzZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgIDwvbWF0LWNhbGVuZGFyPlxuICAgICAgICAgIDxtYXQtZm9ybWlvLXRpbWVcbiAgICAgICAgICAgICAgICAgICN0aW1lXG4gICAgICAgICAgICAgICAgICBbaG91clN0ZXBdPVwiaG91clN0ZXBcIlxuICAgICAgICAgICAgICAgICAgW2luc3RhbmNlXT1cImluc3RhbmNlXCJcbiAgICAgICAgICAgICAgICAgIFtyZW5kZXJFbGVtZW50T25seV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgIFttaW51dGVTdGVwXT1cIm1pbnV0ZVN0ZXBcIlxuICAgICAgICAgICAgICAgICAgKHNlbGVjdGVkRXZlbnQpPVwib25UaW1lKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtbC0zIGZvcm1pby10aW1lXCJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZW5hYmxlVGltZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgIDwvbWF0LWZvcm1pby10aW1lPlxuICAgICAgICA8L21hdC1jYXJkPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIGBcbn0pXG5cbmV4cG9ydCBjbGFzcyBNYXRlcmlhbENhbGVuZGFyQ29tcG9uZW50IGV4dGVuZHMgTWF0ZXJpYWxDb21wb25lbnQge1xuICBwdWJsaWMgc2VsZWN0ZWREYXRlOiBhbnk7XG4gIHB1YmxpYyBzZWxlY3RlZFRpbWU6IGFueTtcbiAgcHVibGljIHNlbGVjdGVkVGltZUNvbXBvbmVudDogYW55O1xuXG4gIEBWaWV3Q2hpbGQoJ3RpbWUnKSB0aW1lO1xuXG4gIEBJbnB1dCgpIGVuYWJsZURhdGU6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGVuYWJsZVRpbWU6IGJvb2xlYW47XG4gIEBJbnB1dCgpIG1pbkRhdGU6IGFueTtcbiAgQElucHV0KCkgbWF4RGF0ZTogYW55O1xuICBASW5wdXQoKSBkYXRlRmlsdGVyOiBhbnk7XG4gIEBJbnB1dCgpIGhvdXJTdGVwOiBhbnk7XG4gIEBJbnB1dCgpIG1pbnV0ZVN0ZXA6IGFueTtcbiAgQE91dHB1dCgpIHRpbWVTZWxlY3RFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgZGF0ZVNlbGVjdEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgc2V0SW5zdGFuY2UoaW5zdGFuY2U6IGFueSkge1xuICAgIHN1cGVyLnNldEluc3RhbmNlKGluc3RhbmNlKTtcbiAgfVxuXG4gIHNldEV4aXN0ZWREYXRlKHZhbHVlKSB7XG4gICAgdGhpcy5zZWxlY3RlZERhdGUgPSB2YWx1ZTtcbiAgfVxuXG4gIHNldEV4aXN0ZWRUaW1lKHZhbHVlLCBmb3JUaW1lKSB7XG4gICAgdGhpcy5zZWxlY3RlZFRpbWUgPSB2YWx1ZTtcbiAgICB0aGlzLnRpbWUuc2V0VmFsdWUoZm9yVGltZSk7XG4gIH1cblxuICBvbkRhdGUoZXZlbnQpe1xuICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gZXZlbnQ7XG4gICAgdGhpcy5kYXRlU2VsZWN0RXZlbnQuZW1pdCh0aGlzLnNlbGVjdGVkRGF0ZSk7XG4gIH1cblxuICBvblRpbWUoZXZlbnQpIHtcbiAgICB0aGlzLnNlbGVjdGVkVGltZSA9IGV2ZW50LnZhbHVlO1xuICAgIHRoaXMudGltZVNlbGVjdEV2ZW50LmVtaXQodGhpcy5zZWxlY3RlZFRpbWUpO1xuICB9XG5cbiAgZ2V0UG9wdXBTdHlsZXMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgekluZGV4OiAnMTAwMCcsXG4gICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICBtYXhXaWR0aDogJzEwMCUnLFxuICAgICAgbWF4SGVpZ2h0OiAnMTAwJScsXG4gICAgICB0b3A6ICc5MHB4JyxcbiAgICAgIGxlZnQ6ICczMHB4J1xuICAgIH1cbiAgfVxufVxuIl19