@valtimo/components 4.15.2-next-main.14 → 4.15.3-next-main.15

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 (202) hide show
  1. package/bundles/valtimo-components.umd.js +4795 -4793
  2. package/bundles/valtimo-components.umd.js.map +1 -1
  3. package/bundles/valtimo-components.umd.min.js +1 -1
  4. package/bundles/valtimo-components.umd.min.js.map +1 -1
  5. package/esm2015/lib/alert/alert.component.js +141 -141
  6. package/esm2015/lib/alert/alert.module.js +27 -27
  7. package/esm2015/lib/alert/alert.service.js +80 -80
  8. package/esm2015/lib/bpmn-js-diagram/bpmn-js-diagram.component.js +159 -159
  9. package/esm2015/lib/bpmn-js-diagram/bpmn-js-diagram.module.js +29 -29
  10. package/esm2015/lib/breadcrumb-navigation/breadcrumb-navigation.component.js +92 -92
  11. package/esm2015/lib/breadcrumb-navigation/breadcrumb-navigation.module.js +33 -33
  12. package/esm2015/lib/camunda/form/camunda-form.components.js +36 -36
  13. package/esm2015/lib/camunda/form/camunda-form.module.js +37 -37
  14. package/esm2015/lib/camunda/form/custom/camunda-custom-form.component.js +41 -41
  15. package/esm2015/lib/camunda/form/custom/camunda-custom-form.module.js +33 -33
  16. package/esm2015/lib/camunda/form/generated/camunda-generated-form.component.js +68 -68
  17. package/esm2015/lib/camunda/form/generated/camunda-generated-form.module.js +62 -62
  18. package/esm2015/lib/camunda/form/generated/formfield/boolean/camunda-boolean-formfield.component.js +27 -27
  19. package/esm2015/lib/camunda/form/generated/formfield/camunda-formfield-generator.directive.js +63 -63
  20. package/esm2015/lib/camunda/form/generated/formfield/camunda-formfield.service.js +66 -66
  21. package/esm2015/lib/camunda/form/generated/formfield/choicefield/camunda-choicefield-formfield.component.js +37 -37
  22. package/esm2015/lib/camunda/form/generated/formfield/date/camunda-date-formfield.component.js +65 -65
  23. package/esm2015/lib/camunda/form/generated/formfield/enum/camunda-enum-formfield.component.js +30 -30
  24. package/esm2015/lib/camunda/form/generated/formfield/formfield.model.js +15 -15
  25. package/esm2015/lib/camunda/form/generated/formfield/long/camunda-long-formfield.component.js +27 -27
  26. package/esm2015/lib/camunda/form/generated/formfield/string/camunda-string-formfield.component.js +27 -27
  27. package/esm2015/lib/camunda/form/generated/formfield/textarea/camunda-textarea-formfield.component.js +27 -27
  28. package/esm2015/lib/camunda/form/generated/formfield/validation/camunda-formfield-validation.component.js +35 -35
  29. package/esm2015/lib/camunda/form/generated/formfield/validation/date.validators.js +59 -59
  30. package/esm2015/lib/card/card.component.js +36 -36
  31. package/esm2015/lib/card/card.module.js +29 -29
  32. package/esm2015/lib/components.module.js +21 -21
  33. package/esm2015/lib/data-list/data-list.component.js +33 -33
  34. package/esm2015/lib/data-list/data-list.module.js +29 -29
  35. package/esm2015/lib/dropzone/dropzone.component.js +142 -142
  36. package/esm2015/lib/dropzone/dropzone.module.js +31 -31
  37. package/esm2015/lib/field-auto-focus/field-auto-focus.directive.js +34 -34
  38. package/esm2015/lib/field-auto-focus/field-auto-focus.module.js +31 -31
  39. package/esm2015/lib/file-size/file-size.module.js +29 -29
  40. package/esm2015/lib/file-size/file-size.pipe.js +44 -44
  41. package/esm2015/lib/filter-sidebar/filter-sidebar.component.js +45 -45
  42. package/esm2015/lib/filter-sidebar/filter-sidebar.module.js +29 -29
  43. package/esm2015/lib/form-io/form-io-builder.component.js +38 -38
  44. package/esm2015/lib/form-io/form-io-uploader/form-io-uploader-edit-form.js +89 -89
  45. package/esm2015/lib/form-io/form-io-uploader/form-io-uploader.component.js +71 -71
  46. package/esm2015/lib/form-io/form-io-uploader/form-io-uploader.formio.js +25 -25
  47. package/esm2015/lib/form-io/form-io.component.js +157 -157
  48. package/esm2015/lib/form-io/form-io.module.js +55 -55
  49. package/esm2015/lib/form-io/formio-config.js +21 -21
  50. package/esm2015/lib/form-io/services/form-io-dom.service.js +22 -22
  51. package/esm2015/lib/form-io/services/form-io-state.service.js +23 -23
  52. package/esm2015/lib/left-sidebar/left-sidebar.component.js +113 -113
  53. package/esm2015/lib/left-sidebar/left-sidebar.module.js +33 -33
  54. package/esm2015/lib/list/ListFilterPipe.directive.js +34 -34
  55. package/esm2015/lib/list/list.component.js +176 -176
  56. package/esm2015/lib/list/list.module.js +32 -32
  57. package/esm2015/lib/menu/menu-item-text.component.js +27 -27
  58. package/esm2015/lib/menu/menu-routing.module.js +28 -28
  59. package/esm2015/lib/menu/menu.component.js +64 -64
  60. package/esm2015/lib/menu/menu.init.js +33 -33
  61. package/esm2015/lib/menu/menu.module.js +38 -38
  62. package/esm2015/lib/menu/menu.service.js +126 -126
  63. package/esm2015/lib/menu/submenu-item-text.component.js +27 -27
  64. package/esm2015/lib/modal/modal.component.js +47 -47
  65. package/esm2015/lib/modal/modal.module.js +27 -27
  66. package/esm2015/lib/page-header/page-header.component.js +28 -28
  67. package/esm2015/lib/page-header/page-header.module.js +33 -33
  68. package/esm2015/lib/page-title/page-title.component.js +75 -75
  69. package/esm2015/lib/page-title/page-title.module.js +31 -31
  70. package/esm2015/lib/progress-bar/progress-bar.component.js +25 -25
  71. package/esm2015/lib/progress-bar/progress-bar.module.js +29 -29
  72. package/esm2015/lib/right-sidebar/right-sidebar.component.js +130 -130
  73. package/esm2015/lib/right-sidebar/right-sidebar.module.js +48 -48
  74. package/esm2015/lib/searchable-dropdown/searchable-dropdown.component.js +184 -184
  75. package/esm2015/lib/searchable-dropdown/searchable-dropdown.module.js +28 -28
  76. package/esm2015/lib/searchable-dropdown-select/searchable-dropdown-select.component.js +51 -51
  77. package/esm2015/lib/searchable-dropdown-select/searchable-dropdown-select.module.js +29 -29
  78. package/esm2015/lib/spinner/spinner.component.js +45 -43
  79. package/esm2015/lib/spinner/spinner.module.js +35 -35
  80. package/esm2015/lib/timeline/timeline.component.js +28 -28
  81. package/esm2015/lib/timeline/timeline.module.js +31 -31
  82. package/esm2015/lib/topbar/topbar.component.js +28 -28
  83. package/esm2015/lib/topbar/topbar.module.js +31 -31
  84. package/esm2015/lib/uploader/uploader-drag-drop.directive.js +48 -48
  85. package/esm2015/lib/uploader/uploader.component.js +69 -69
  86. package/esm2015/lib/uploader/uploader.module.js +32 -32
  87. package/esm2015/lib/version/version.service.js +37 -37
  88. package/esm2015/lib/view-content/type-converters/booleanTypeConverter.js +28 -28
  89. package/esm2015/lib/view-content/type-converters/dateTypeConverter.js +29 -29
  90. package/esm2015/lib/view-content/type-converters/enumTypeConverter.js +23 -23
  91. package/esm2015/lib/view-content/type-converters/relatedFilesTypeConverter.js +23 -23
  92. package/esm2015/lib/view-content/type-converters/stringReplaceUnderscoreTypeConverter.js +26 -26
  93. package/esm2015/lib/view-content/type-converters/stringTypeConverter.js +23 -23
  94. package/esm2015/lib/view-content/type-converters/type-converters.model.js +36 -36
  95. package/esm2015/lib/view-content/view-content.service.js +50 -50
  96. package/esm2015/lib/webcam/webcam.component.js +102 -102
  97. package/esm2015/lib/webcam/webcam.module.js +31 -31
  98. package/esm2015/lib/widget/widget.component.js +79 -79
  99. package/esm2015/lib/widget/widget.module.js +29 -29
  100. package/esm2015/public_api.js +83 -83
  101. package/esm2015/valtimo-components.js +26 -26
  102. package/fesm2015/valtimo-components.js +4303 -4301
  103. package/fesm2015/valtimo-components.js.map +1 -1
  104. package/lib/alert/alert.component.d.ts +21 -21
  105. package/lib/alert/alert.module.d.ts +2 -2
  106. package/lib/alert/alert.service.d.ts +21 -21
  107. package/lib/bpmn-js-diagram/bpmn-js-diagram.component.d.ts +27 -27
  108. package/lib/bpmn-js-diagram/bpmn-js-diagram.module.d.ts +2 -2
  109. package/lib/breadcrumb-navigation/breadcrumb-navigation.component.d.ts +14 -14
  110. package/lib/breadcrumb-navigation/breadcrumb-navigation.module.d.ts +2 -2
  111. package/lib/camunda/form/camunda-form.components.d.ts +9 -9
  112. package/lib/camunda/form/camunda-form.module.d.ts +2 -2
  113. package/lib/camunda/form/custom/camunda-custom-form.component.d.ts +8 -8
  114. package/lib/camunda/form/custom/camunda-custom-form.module.d.ts +2 -2
  115. package/lib/camunda/form/generated/camunda-generated-form.component.d.ts +19 -19
  116. package/lib/camunda/form/generated/camunda-generated-form.module.d.ts +2 -2
  117. package/lib/camunda/form/generated/formfield/boolean/camunda-boolean-formfield.component.d.ts +7 -7
  118. package/lib/camunda/form/generated/formfield/camunda-formfield-generator.directive.d.ts +13 -13
  119. package/lib/camunda/form/generated/formfield/camunda-formfield.service.d.ts +7 -7
  120. package/lib/camunda/form/generated/formfield/choicefield/camunda-choicefield-formfield.component.d.ts +12 -12
  121. package/lib/camunda/form/generated/formfield/date/camunda-date-formfield.component.d.ts +14 -14
  122. package/lib/camunda/form/generated/formfield/enum/camunda-enum-formfield.component.d.ts +10 -10
  123. package/lib/camunda/form/generated/formfield/formfield.model.d.ts +20 -20
  124. package/lib/camunda/form/generated/formfield/long/camunda-long-formfield.component.d.ts +7 -7
  125. package/lib/camunda/form/generated/formfield/string/camunda-string-formfield.component.d.ts +7 -7
  126. package/lib/camunda/form/generated/formfield/textarea/camunda-textarea-formfield.component.d.ts +7 -7
  127. package/lib/camunda/form/generated/formfield/validation/camunda-formfield-validation.component.d.ts +10 -10
  128. package/lib/camunda/form/generated/formfield/validation/date.validators.d.ts +3 -3
  129. package/lib/card/card.component.d.ts +16 -16
  130. package/lib/card/card.module.d.ts +2 -2
  131. package/lib/components.module.d.ts +2 -2
  132. package/lib/data-list/data-list.component.d.ts +7 -7
  133. package/lib/data-list/data-list.module.d.ts +2 -2
  134. package/lib/dropzone/dropzone.component.d.ts +38 -38
  135. package/lib/dropzone/dropzone.module.d.ts +2 -2
  136. package/lib/field-auto-focus/field-auto-focus.directive.d.ts +6 -6
  137. package/lib/field-auto-focus/field-auto-focus.module.d.ts +2 -2
  138. package/lib/file-size/file-size.module.d.ts +2 -2
  139. package/lib/file-size/file-size.pipe.d.ts +5 -5
  140. package/lib/filter-sidebar/filter-sidebar.component.d.ts +8 -8
  141. package/lib/filter-sidebar/filter-sidebar.module.d.ts +2 -2
  142. package/lib/form-io/form-io-builder.component.d.ts +8 -8
  143. package/lib/form-io/form-io-uploader/form-io-uploader-edit-form.d.ts +61 -61
  144. package/lib/form-io/form-io-uploader/form-io-uploader.component.d.ts +29 -29
  145. package/lib/form-io/form-io-uploader/form-io-uploader.formio.d.ts +3 -3
  146. package/lib/form-io/form-io.component.d.ts +44 -44
  147. package/lib/form-io/form-io.module.d.ts +2 -2
  148. package/lib/form-io/formio-config.d.ts +6 -6
  149. package/lib/form-io/services/form-io-dom.service.d.ts +6 -6
  150. package/lib/form-io/services/form-io-state.service.d.ts +10 -10
  151. package/lib/left-sidebar/left-sidebar.component.d.ts +34 -34
  152. package/lib/left-sidebar/left-sidebar.module.d.ts +2 -2
  153. package/lib/list/ListFilterPipe.directive.d.ts +4 -4
  154. package/lib/list/list.component.d.ts +43 -43
  155. package/lib/list/list.module.d.ts +2 -2
  156. package/lib/menu/menu-item-text.component.d.ts +4 -4
  157. package/lib/menu/menu-routing.module.d.ts +2 -2
  158. package/lib/menu/menu.component.d.ts +18 -18
  159. package/lib/menu/menu.init.d.ts +3 -3
  160. package/lib/menu/menu.module.d.ts +2 -2
  161. package/lib/menu/menu.service.d.ts +23 -23
  162. package/lib/menu/submenu-item-text.component.d.ts +4 -4
  163. package/lib/modal/modal.component.d.ts +12 -12
  164. package/lib/modal/modal.module.d.ts +2 -2
  165. package/lib/page-header/page-header.component.d.ts +5 -5
  166. package/lib/page-header/page-header.module.d.ts +2 -2
  167. package/lib/page-title/page-title.component.d.ts +19 -19
  168. package/lib/page-title/page-title.module.d.ts +2 -2
  169. package/lib/progress-bar/progress-bar.component.d.ts +2 -2
  170. package/lib/progress-bar/progress-bar.module.d.ts +2 -2
  171. package/lib/right-sidebar/right-sidebar.component.d.ts +34 -34
  172. package/lib/right-sidebar/right-sidebar.module.d.ts +2 -2
  173. package/lib/searchable-dropdown/searchable-dropdown.component.d.ts +39 -39
  174. package/lib/searchable-dropdown/searchable-dropdown.module.d.ts +2 -2
  175. package/lib/searchable-dropdown-select/searchable-dropdown-select.component.d.ts +19 -19
  176. package/lib/searchable-dropdown-select/searchable-dropdown-select.module.d.ts +2 -2
  177. package/lib/spinner/spinner.component.d.ts +10 -9
  178. package/lib/spinner/spinner.module.d.ts +2 -2
  179. package/lib/timeline/timeline.component.d.ts +4 -4
  180. package/lib/timeline/timeline.module.d.ts +2 -2
  181. package/lib/topbar/topbar.component.d.ts +3 -3
  182. package/lib/topbar/topbar.module.d.ts +2 -2
  183. package/lib/uploader/uploader-drag-drop.directive.d.ts +7 -7
  184. package/lib/uploader/uploader.component.d.ts +15 -15
  185. package/lib/uploader/uploader.module.d.ts +2 -2
  186. package/lib/version/version.service.d.ts +8 -8
  187. package/lib/view-content/type-converters/booleanTypeConverter.d.ts +5 -5
  188. package/lib/view-content/type-converters/dateTypeConverter.d.ts +5 -5
  189. package/lib/view-content/type-converters/enumTypeConverter.d.ts +5 -5
  190. package/lib/view-content/type-converters/relatedFilesTypeConverter.d.ts +5 -5
  191. package/lib/view-content/type-converters/stringReplaceUnderscoreTypeConverter.d.ts +6 -6
  192. package/lib/view-content/type-converters/stringTypeConverter.d.ts +5 -5
  193. package/lib/view-content/type-converters/type-converters.model.d.ts +5 -5
  194. package/lib/view-content/view-content.service.d.ts +8 -8
  195. package/lib/webcam/webcam.component.d.ts +20 -20
  196. package/lib/webcam/webcam.module.d.ts +2 -2
  197. package/lib/widget/widget.component.d.ts +28 -28
  198. package/lib/widget/widget.module.d.ts +2 -2
  199. package/package.json +1 -1
  200. package/public_api.d.ts +65 -65
  201. package/valtimo-components.d.ts +26 -26
  202. package/valtimo-components.metadata.json +1 -1
@@ -1,72 +1,72 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import { BehaviorSubject } from 'rxjs';
3
- import { FormIoStateService } from '../services/form-io-state.service';
4
- import { take } from 'rxjs/operators';
5
- import { FormIoDomService } from '../services/form-io-dom.service';
6
- import { DownloadService, UploadProviderService } from '@valtimo/resource';
7
- export class FormIoUploaderComponent {
8
- constructor(uploadProviderService, stateService, domService, downloadService) {
9
- this.uploadProviderService = uploadProviderService;
10
- this.stateService = stateService;
11
- this.domService = domService;
12
- this.downloadService = downloadService;
13
- this.valueChange = new EventEmitter();
14
- this.uploading$ = new BehaviorSubject(false);
15
- this._value = [];
16
- }
17
- get value() {
18
- return this._value;
19
- }
20
- set value(value) {
21
- if (Array.isArray(value)) {
22
- this._value = value;
23
- }
24
- }
25
- downloadFile(resourceFile) {
26
- this.uploadProviderService.getResource(resourceFile.data.resourceId).subscribe((resource) => {
27
- this.downloadService.downloadFile(resource.url, resource.resource.name);
28
- });
29
- }
30
- fileSelected(file) {
31
- this.domService.toggleSubmitButton(true);
32
- this.uploading$.next(true);
33
- this.stateService.documentDefinitionName$.pipe(take(1)).subscribe((name) => {
34
- this.uploadProviderService.uploadFile(file, name).subscribe((result) => {
35
- this.domService.toggleSubmitButton(false);
36
- this.uploading$.next(false);
37
- this._value.push(result);
38
- this.valueChange.emit(this._value);
39
- });
40
- });
41
- }
42
- deleteFile(resourceId) {
43
- this.domService.toggleSubmitButton(true);
44
- this._value = this._value.filter((file) => { var _a; return (file === null || file === void 0 ? void 0 : file.data) ? ((_a = file === null || file === void 0 ? void 0 : file.data) === null || _a === void 0 ? void 0 : _a.resourceId) !== resourceId : true; });
45
- this.valueChange.emit(this._value);
46
- }
47
- }
48
- FormIoUploaderComponent.decorators = [
49
- { type: Component, args: [{
50
- selector: 'valtimo-formio-uploader',
51
- template: "<valtimo-dropzone\n (fileSelected)=\"fileSelected($event)\"\n [acceptedFiles]=\"null\"\n [disabled]=\"disabled\"\n [hideFilePreview]=\"true\"\n [hideTitle]=\"hideTitle\"\n [maxFileSize]=\"maxFileSize\"\n [showMaxFileSize]=\"!hideMaxFileSize\"\n [subtitle]=\"subtitle\"\n [title]=\"title\"\n [camera]=\"camera\"\n [uploading]=\"uploading$ | async\"\n></valtimo-dropzone>\n\n<div class=\"file-preview\" *ngFor=\"let resource of _value\">\n <div class=\"file-preview-name\">\n <a href=\"#\" (click)=\"downloadFile(resource)\">\n {{resource.originalName}}\n </a>\n </div>\n <div class=\"file-preview-size\">\n <span>\n {{resource.size | filesize}}\n </span>\n </div>\n <div class=\"file-preview-delete\" *ngIf=\"!disabled\">\n <a (click)=\"deleteFile(resource.data.resourceId)\">\n <i class=\"icon fa fa-trash\"></i>\n </a>\n </div>\n</div>\n",
52
- styles: [".progress-bar-container{padding:15px 20px}::ng-deep .formio-component-valtimo-file .btn-secondary,::ng-deep .formio-component-valtimo-file .formio-button-add-another{display:none}::ng-deep .formio-component-valtimo-file td{border:none;padding:0!important}::ng-deep .formio-component-valtimo-file .table{border:none;border-collapse:collapse;margin:10px 0}.dropzone-container{margin-bottom:12px}.file-preview{border:1px solid #dee2e6;display:flex;margin-top:-1px}.file-preview div{padding:12px 10px}.file-preview .file-preview-name{width:65%}.file-preview .file-preview-size{width:35%}.file-preview .icon{color:#a1a1a1;cursor:pointer;font-size:1.3846rem;line-height:18px}.file-preview .icon:hover{color:grey}"]
53
- },] }
54
- ];
55
- FormIoUploaderComponent.ctorParameters = () => [
56
- { type: UploadProviderService },
57
- { type: FormIoStateService },
58
- { type: FormIoDomService },
59
- { type: DownloadService }
60
- ];
61
- FormIoUploaderComponent.propDecorators = {
62
- disabled: [{ type: Input }],
63
- title: [{ type: Input }],
64
- hideTitle: [{ type: Input }],
65
- subtitle: [{ type: Input }],
66
- maxFileSize: [{ type: Input }],
67
- hideMaxFileSize: [{ type: Input }],
68
- camera: [{ type: Input }],
69
- valueChange: [{ type: Output }],
70
- value: [{ type: Input }]
71
- };
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { BehaviorSubject } from 'rxjs';
3
+ import { FormIoStateService } from '../services/form-io-state.service';
4
+ import { take } from 'rxjs/operators';
5
+ import { FormIoDomService } from '../services/form-io-dom.service';
6
+ import { DownloadService, UploadProviderService } from '@valtimo/resource';
7
+ export class FormIoUploaderComponent {
8
+ constructor(uploadProviderService, stateService, domService, downloadService) {
9
+ this.uploadProviderService = uploadProviderService;
10
+ this.stateService = stateService;
11
+ this.domService = domService;
12
+ this.downloadService = downloadService;
13
+ this.valueChange = new EventEmitter();
14
+ this.uploading$ = new BehaviorSubject(false);
15
+ this._value = [];
16
+ }
17
+ get value() {
18
+ return this._value;
19
+ }
20
+ set value(value) {
21
+ if (Array.isArray(value)) {
22
+ this._value = value;
23
+ }
24
+ }
25
+ downloadFile(resourceFile) {
26
+ this.uploadProviderService.getResource(resourceFile.data.resourceId).subscribe((resource) => {
27
+ this.downloadService.downloadFile(resource.url, resource.resource.name);
28
+ });
29
+ }
30
+ fileSelected(file) {
31
+ this.domService.toggleSubmitButton(true);
32
+ this.uploading$.next(true);
33
+ this.stateService.documentDefinitionName$.pipe(take(1)).subscribe((name) => {
34
+ this.uploadProviderService.uploadFile(file, name).subscribe((result) => {
35
+ this.domService.toggleSubmitButton(false);
36
+ this.uploading$.next(false);
37
+ this._value.push(result);
38
+ this.valueChange.emit(this._value);
39
+ });
40
+ });
41
+ }
42
+ deleteFile(resourceId) {
43
+ this.domService.toggleSubmitButton(true);
44
+ this._value = this._value.filter((file) => { var _a; return (file === null || file === void 0 ? void 0 : file.data) ? ((_a = file === null || file === void 0 ? void 0 : file.data) === null || _a === void 0 ? void 0 : _a.resourceId) !== resourceId : true; });
45
+ this.valueChange.emit(this._value);
46
+ }
47
+ }
48
+ FormIoUploaderComponent.decorators = [
49
+ { type: Component, args: [{
50
+ selector: 'valtimo-formio-uploader',
51
+ template: "<valtimo-dropzone\n (fileSelected)=\"fileSelected($event)\"\n [acceptedFiles]=\"null\"\n [disabled]=\"disabled\"\n [hideFilePreview]=\"true\"\n [hideTitle]=\"hideTitle\"\n [maxFileSize]=\"maxFileSize\"\n [showMaxFileSize]=\"!hideMaxFileSize\"\n [subtitle]=\"subtitle\"\n [title]=\"title\"\n [camera]=\"camera\"\n [uploading]=\"uploading$ | async\"\n></valtimo-dropzone>\n\n<div class=\"file-preview\" *ngFor=\"let resource of _value\">\n <div class=\"file-preview-name\">\n <a href=\"#\" (click)=\"downloadFile(resource)\">\n {{resource.originalName}}\n </a>\n </div>\n <div class=\"file-preview-size\">\n <span>\n {{resource.size | filesize}}\n </span>\n </div>\n <div class=\"file-preview-delete\" *ngIf=\"!disabled\">\n <a (click)=\"deleteFile(resource.data.resourceId)\">\n <i class=\"icon fa fa-trash\"></i>\n </a>\n </div>\n</div>\n",
52
+ styles: [".progress-bar-container{padding:15px 20px}::ng-deep .formio-component-valtimo-file .btn-secondary,::ng-deep .formio-component-valtimo-file .formio-button-add-another{display:none}::ng-deep .formio-component-valtimo-file td{border:none;padding:0!important}::ng-deep .formio-component-valtimo-file .table{border:none;border-collapse:collapse;margin:10px 0}.dropzone-container{margin-bottom:12px}.file-preview{border:1px solid #dee2e6;display:flex;margin-top:-1px}.file-preview div{padding:12px 10px}.file-preview .file-preview-name{width:65%}.file-preview .file-preview-size{width:35%}.file-preview .icon{color:#a1a1a1;cursor:pointer;font-size:1.3846rem;line-height:18px}.file-preview .icon:hover{color:grey}"]
53
+ },] }
54
+ ];
55
+ FormIoUploaderComponent.ctorParameters = () => [
56
+ { type: UploadProviderService },
57
+ { type: FormIoStateService },
58
+ { type: FormIoDomService },
59
+ { type: DownloadService }
60
+ ];
61
+ FormIoUploaderComponent.propDecorators = {
62
+ disabled: [{ type: Input }],
63
+ title: [{ type: Input }],
64
+ hideTitle: [{ type: Input }],
65
+ subtitle: [{ type: Input }],
66
+ maxFileSize: [{ type: Input }],
67
+ hideMaxFileSize: [{ type: Input }],
68
+ camera: [{ type: Input }],
69
+ valueChange: [{ type: Output }],
70
+ value: [{ type: Input }]
71
+ };
72
72
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1pby11cGxvYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2NvbXBvbmVudHMvc3JjL2xpYi9mb3JtLWlvL2Zvcm0taW8tdXBsb2FkZXIvZm9ybS1pby11cGxvYWRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVyRSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRXJDLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwQyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUNqRSxPQUFPLEVBQUMsZUFBZSxFQUFFLHFCQUFxQixFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFPekUsTUFBTSxPQUFPLHVCQUF1QjtJQVlsQyxZQUNtQixxQkFBNEMsRUFDNUMsWUFBZ0MsRUFDaEMsVUFBNEIsRUFDNUIsZUFBZ0M7UUFIaEMsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUM1QyxpQkFBWSxHQUFaLFlBQVksQ0FBb0I7UUFDaEMsZUFBVSxHQUFWLFVBQVUsQ0FBa0I7UUFDNUIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBUnpDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQXVCLENBQUM7UUFFdkQsZUFBVSxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBVTFELFdBQU0sR0FBd0IsRUFBRSxDQUFDO0lBRmpDLENBQUM7SUFJRCxJQUFXLEtBQUs7UUFDZCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUVELElBQ1csS0FBSyxDQUFDLEtBQTBCO1FBQ3pDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN4QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztTQUNyQjtJQUNILENBQUM7SUFFRCxZQUFZLENBQUMsWUFBMEI7UUFDckMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQXFCLEVBQUUsRUFBRTtZQUN2RyxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUUsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsWUFBWSxDQUFDLElBQVU7UUFDckIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsWUFBWSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUN6RSxJQUFJLENBQUMscUJBQXFCLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDckUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDMUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN6QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDckMsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxVQUFVLENBQUMsVUFBa0I7UUFDM0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBa0IsRUFBRSxFQUFFLFdBQUMsT0FBQSxDQUFBLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDLE9BQUEsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLElBQUksMENBQUUsVUFBVSxNQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBLEVBQUEsQ0FBQyxDQUFDO1FBQ3BILElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNyQyxDQUFDOzs7WUE3REYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSx5QkFBeUI7Z0JBQ25DLHM4QkFBZ0Q7O2FBRWpEOzs7WUFOd0IscUJBQXFCO1lBSHRDLGtCQUFrQjtZQUVsQixnQkFBZ0I7WUFDaEIsZUFBZTs7O3VCQVFwQixLQUFLO29CQUNMLEtBQUs7d0JBQ0wsS0FBSzt1QkFDTCxLQUFLOzBCQUNMLEtBQUs7OEJBQ0wsS0FBSztxQkFDTCxLQUFLOzBCQUNMLE1BQU07b0JBa0JOLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Rm9ybWlvQ3VzdG9tQ29tcG9uZW50fSBmcm9tICdhbmd1bGFyLWZvcm1pbyc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1Jlc291cmNlRHRvLCBSZXNvdXJjZUZpbGV9IGZyb20gJ0B2YWx0aW1vL2NvbnRyYWN0JztcbmltcG9ydCB7Rm9ybUlvU3RhdGVTZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlcy9mb3JtLWlvLXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHt0YWtlfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0Zvcm1Jb0RvbVNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2VzL2Zvcm0taW8tZG9tLnNlcnZpY2UnO1xuaW1wb3J0IHtEb3dubG9hZFNlcnZpY2UsIFVwbG9hZFByb3ZpZGVyU2VydmljZX0gZnJvbSAnQHZhbHRpbW8vcmVzb3VyY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLWZvcm1pby11cGxvYWRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLWlvLXVwbG9hZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS1pby11cGxvYWRlci5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1Jb1VwbG9hZGVyQ29tcG9uZW50IGltcGxlbWVudHMgRm9ybWlvQ3VzdG9tQ29tcG9uZW50PEFycmF5PFJlc291cmNlRmlsZT4+IHtcbiAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGhpZGVUaXRsZTogYm9vbGVhbjtcbiAgQElucHV0KCkgc3VidGl0bGU6IHN0cmluZztcbiAgQElucHV0KCkgbWF4RmlsZVNpemU6IG51bWJlcjtcbiAgQElucHV0KCkgaGlkZU1heEZpbGVTaXplOiBib29sZWFuO1xuICBASW5wdXQoKSBjYW1lcmE6IGJvb2xlYW47XG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8QXJyYXk8UmVzb3VyY2VGaWxlPj4oKTtcblxuICByZWFkb25seSB1cGxvYWRpbmckID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSB1cGxvYWRQcm92aWRlclNlcnZpY2U6IFVwbG9hZFByb3ZpZGVyU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0YXRlU2VydmljZTogRm9ybUlvU3RhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZG9tU2VydmljZTogRm9ybUlvRG9tU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRvd25sb2FkU2VydmljZTogRG93bmxvYWRTZXJ2aWNlLFxuICApIHtcbiAgfVxuXG4gIF92YWx1ZTogQXJyYXk8UmVzb3VyY2VGaWxlPiA9IFtdO1xuXG4gIHB1YmxpYyBnZXQgdmFsdWUoKTogQXJyYXk8UmVzb3VyY2VGaWxlPiB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCB2YWx1ZSh2YWx1ZTogQXJyYXk8UmVzb3VyY2VGaWxlPikge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICBkb3dubG9hZEZpbGUocmVzb3VyY2VGaWxlOiBSZXNvdXJjZUZpbGUpIHtcbiAgICB0aGlzLnVwbG9hZFByb3ZpZGVyU2VydmljZS5nZXRSZXNvdXJjZShyZXNvdXJjZUZpbGUuZGF0YS5yZXNvdXJjZUlkKS5zdWJzY3JpYmUoKHJlc291cmNlOiBSZXNvdXJjZUR0bykgPT4ge1xuICAgICAgdGhpcy5kb3dubG9hZFNlcnZpY2UuZG93bmxvYWRGaWxlKHJlc291cmNlLnVybCwgcmVzb3VyY2UucmVzb3VyY2UubmFtZSk7XG4gICAgfSk7XG4gIH1cblxuICBmaWxlU2VsZWN0ZWQoZmlsZTogRmlsZSkge1xuICAgIHRoaXMuZG9tU2VydmljZS50b2dnbGVTdWJtaXRCdXR0b24odHJ1ZSk7XG4gICAgdGhpcy51cGxvYWRpbmckLm5leHQodHJ1ZSk7XG4gICAgdGhpcy5zdGF0ZVNlcnZpY2UuZG9jdW1lbnREZWZpbml0aW9uTmFtZSQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKG5hbWUpID0+IHtcbiAgICAgIHRoaXMudXBsb2FkUHJvdmlkZXJTZXJ2aWNlLnVwbG9hZEZpbGUoZmlsZSwgbmFtZSkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgICAgdGhpcy5kb21TZXJ2aWNlLnRvZ2dsZVN1Ym1pdEJ1dHRvbihmYWxzZSk7XG4gICAgICAgIHRoaXMudXBsb2FkaW5nJC5uZXh0KGZhbHNlKTtcbiAgICAgICAgdGhpcy5fdmFsdWUucHVzaChyZXN1bHQpO1xuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy5fdmFsdWUpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBkZWxldGVGaWxlKHJlc291cmNlSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuZG9tU2VydmljZS50b2dnbGVTdWJtaXRCdXR0b24odHJ1ZSk7XG4gICAgdGhpcy5fdmFsdWUgPSB0aGlzLl92YWx1ZS5maWx0ZXIoKGZpbGU6IFJlc291cmNlRmlsZSkgPT4gZmlsZT8uZGF0YSA/IGZpbGU/LmRhdGE/LnJlc291cmNlSWQgIT09IHJlc291cmNlSWQgOiB0cnVlKTtcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy5fdmFsdWUpO1xuICB9XG59XG4iXX0=
@@ -1,26 +1,26 @@
1
- import { createCustomFormioComponent, registerCustomFormioComponentWithClass } from 'angular-formio';
2
- import { FormIoUploaderComponent } from './form-io-uploader.component';
3
- import { formIoUploaderEditForm } from './form-io-uploader-edit-form';
4
- export const customUploaderType = 'valtimo-file';
5
- const COMPONENT_OPTIONS = {
6
- type: customUploaderType,
7
- selector: 'valtimo-form-io-uploader',
8
- title: 'Valtimo File Upload',
9
- group: 'basic',
10
- icon: 'upload',
11
- // set empty value to force formio to accept arrays as valid input value for this field type
12
- emptyValue: [],
13
- editForm: formIoUploaderEditForm,
14
- };
15
- export function registerFormioUploadComponent(injector) {
16
- const originalUploadComponent = createCustomFormioComponent(COMPONENT_OPTIONS);
17
- // override setValue function to allow for setting an array value
18
- class UploaderComponent extends originalUploadComponent {
19
- setValue(value) {
20
- this._customAngularElement.value = value;
21
- return true;
22
- }
23
- }
24
- registerCustomFormioComponentWithClass(COMPONENT_OPTIONS, FormIoUploaderComponent, UploaderComponent, injector);
25
- }
1
+ import { createCustomFormioComponent, registerCustomFormioComponentWithClass } from 'angular-formio';
2
+ import { FormIoUploaderComponent } from './form-io-uploader.component';
3
+ import { formIoUploaderEditForm } from './form-io-uploader-edit-form';
4
+ export const customUploaderType = 'valtimo-file';
5
+ const COMPONENT_OPTIONS = {
6
+ type: customUploaderType,
7
+ selector: 'valtimo-form-io-uploader',
8
+ title: 'Valtimo File Upload',
9
+ group: 'basic',
10
+ icon: 'upload',
11
+ // set empty value to force formio to accept arrays as valid input value for this field type
12
+ emptyValue: [],
13
+ editForm: formIoUploaderEditForm,
14
+ };
15
+ export function registerFormioUploadComponent(injector) {
16
+ const originalUploadComponent = createCustomFormioComponent(COMPONENT_OPTIONS);
17
+ // override setValue function to allow for setting an array value
18
+ class UploaderComponent extends originalUploadComponent {
19
+ setValue(value) {
20
+ this._customAngularElement.value = value;
21
+ return true;
22
+ }
23
+ }
24
+ registerCustomFormioComponentWithClass(COMPONENT_OPTIONS, FormIoUploaderComponent, UploaderComponent, injector);
25
+ }
26
26
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1pby11cGxvYWRlci5mb3JtaW8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2NvbXBvbmVudHMvc3JjL2xpYi9mb3JtLWlvL2Zvcm0taW8tdXBsb2FkZXIvZm9ybS1pby11cGxvYWRlci5mb3JtaW8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLDJCQUEyQixFQUE2QixzQ0FBc0MsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzlILE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3JFLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBRXBFLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLGNBQWMsQ0FBQztBQUVqRCxNQUFNLGlCQUFpQixHQUE4QjtJQUNuRCxJQUFJLEVBQUUsa0JBQWtCO0lBQ3hCLFFBQVEsRUFBRSwwQkFBMEI7SUFDcEMsS0FBSyxFQUFFLHFCQUFxQjtJQUM1QixLQUFLLEVBQUUsT0FBTztJQUNkLElBQUksRUFBRSxRQUFRO0lBQ2QsNEZBQTRGO0lBQzVGLFVBQVUsRUFBRSxFQUFFO0lBQ2QsUUFBUSxFQUFFLHNCQUFzQjtDQUNqQyxDQUFDO0FBRUYsTUFBTSxVQUFVLDZCQUE2QixDQUFDLFFBQWtCO0lBRTlELE1BQU0sdUJBQXVCLEdBQUcsMkJBQTJCLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUUvRSxpRUFBaUU7SUFDakUsTUFBTSxpQkFBa0IsU0FBUSx1QkFBdUI7UUFDckQsUUFBUSxDQUFFLEtBQUs7WUFDYixJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztZQUN6QyxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7S0FDRjtJQUNELHNDQUFzQyxDQUNwQyxpQkFBaUIsRUFDakIsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixRQUFRLENBQ1QsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdG9yfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Y3JlYXRlQ3VzdG9tRm9ybWlvQ29tcG9uZW50LCBGb3JtaW9DdXN0b21Db21wb25lbnRJbmZvLCByZWdpc3RlckN1c3RvbUZvcm1pb0NvbXBvbmVudFdpdGhDbGFzc30gZnJvbSAnYW5ndWxhci1mb3JtaW8nO1xuaW1wb3J0IHtGb3JtSW9VcGxvYWRlckNvbXBvbmVudH0gZnJvbSAnLi9mb3JtLWlvLXVwbG9hZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQge2Zvcm1Jb1VwbG9hZGVyRWRpdEZvcm19IGZyb20gJy4vZm9ybS1pby11cGxvYWRlci1lZGl0LWZvcm0nO1xuXG5leHBvcnQgY29uc3QgY3VzdG9tVXBsb2FkZXJUeXBlID0gJ3ZhbHRpbW8tZmlsZSc7XG5cbmNvbnN0IENPTVBPTkVOVF9PUFRJT05TOiBGb3JtaW9DdXN0b21Db21wb25lbnRJbmZvID0ge1xuICB0eXBlOiBjdXN0b21VcGxvYWRlclR5cGUsXG4gIHNlbGVjdG9yOiAndmFsdGltby1mb3JtLWlvLXVwbG9hZGVyJyxcbiAgdGl0bGU6ICdWYWx0aW1vIEZpbGUgVXBsb2FkJyxcbiAgZ3JvdXA6ICdiYXNpYycsXG4gIGljb246ICd1cGxvYWQnLFxuICAvLyBzZXQgZW1wdHkgdmFsdWUgdG8gZm9yY2UgZm9ybWlvIHRvIGFjY2VwdCBhcnJheXMgYXMgdmFsaWQgaW5wdXQgdmFsdWUgZm9yIHRoaXMgZmllbGQgdHlwZVxuICBlbXB0eVZhbHVlOiBbXSxcbiAgZWRpdEZvcm06IGZvcm1Jb1VwbG9hZGVyRWRpdEZvcm0sXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJGb3JtaW9VcGxvYWRDb21wb25lbnQoaW5qZWN0b3I6IEluamVjdG9yKSB7XG5cbiAgY29uc3Qgb3JpZ2luYWxVcGxvYWRDb21wb25lbnQgPSBjcmVhdGVDdXN0b21Gb3JtaW9Db21wb25lbnQoQ09NUE9ORU5UX09QVElPTlMpO1xuXG4gIC8vIG92ZXJyaWRlIHNldFZhbHVlIGZ1bmN0aW9uIHRvIGFsbG93IGZvciBzZXR0aW5nIGFuIGFycmF5IHZhbHVlXG4gIGNsYXNzIFVwbG9hZGVyQ29tcG9uZW50IGV4dGVuZHMgb3JpZ2luYWxVcGxvYWRDb21wb25lbnQge1xuICAgIHNldFZhbHVlICh2YWx1ZSk6IGJvb2xlYW4ge1xuICAgICAgdGhpcy5fY3VzdG9tQW5ndWxhckVsZW1lbnQudmFsdWUgPSB2YWx1ZTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuICByZWdpc3RlckN1c3RvbUZvcm1pb0NvbXBvbmVudFdpdGhDbGFzcyhcbiAgICBDT01QT05FTlRfT1BUSU9OUyxcbiAgICBGb3JtSW9VcGxvYWRlckNvbXBvbmVudCxcbiAgICBVcGxvYWRlckNvbXBvbmVudCxcbiAgICBpbmplY3RvclxuICApO1xufVxuIl19
@@ -1,158 +1,158 @@
1
- /*
2
- * Copyright 2015-2020 Ritense BV, the Netherlands.
3
- *
4
- * Licensed under EUPL, Version 1.2 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" basis,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
- import { Component, EventEmitter, Input, Output } from '@angular/core';
17
- import { UserProviderService } from '@valtimo/security';
18
- import { Formio } from 'angular-formio';
19
- import jwt_decode from 'jwt-decode';
20
- import { NGXLogger } from 'ngx-logger';
21
- import { from, Subject, timer } from 'rxjs';
22
- import { switchMap, take } from 'rxjs/operators';
23
- import { FormIoStateService } from './services/form-io-state.service';
24
- import { ActivatedRoute } from '@angular/router';
25
- export class FormioComponent {
26
- constructor(userProviderService, logger, stateService, route) {
27
- this.userProviderService = userProviderService;
28
- this.logger = logger;
29
- this.stateService = stateService;
30
- this.route = route;
31
- this.submission = {};
32
- this.submit = new EventEmitter();
33
- this.change = new EventEmitter();
34
- this.refreshForm = new EventEmitter();
35
- this.errors = [];
36
- }
37
- ngOnInit() {
38
- const documentDefinitionName = this.route.snapshot.paramMap.get('documentDefinitionName');
39
- const formDefinition = this.form;
40
- this.loadUserLanguageSetting();
41
- this.formDefinition = formDefinition;
42
- this.errors = [];
43
- if (this.formHasLegacyUpload(formDefinition)) {
44
- this.setInitialToken();
45
- }
46
- if (documentDefinitionName) {
47
- this.stateService.setDocumentDefinitionName(documentDefinitionName);
48
- }
49
- this.subscribeFormRefresh();
50
- }
51
- ngOnChanges(changes) {
52
- const currentForm = changes.form.currentValue;
53
- this.formDefinition = currentForm;
54
- this.loadUserLanguageSetting();
55
- this.reloadForm();
56
- if (this.formHasLegacyUpload(currentForm)) {
57
- this.setInitialToken();
58
- }
59
- if (changes.formDefinitionRefresh$) {
60
- this.unsubscribeFormRefresh();
61
- this.subscribeFormRefresh();
62
- }
63
- }
64
- ngOnDestroy() {
65
- this.unsubscribeFormRefresh();
66
- if (this.tokenRefreshTimerSubscription) {
67
- this.tokenRefreshTimerSubscription.unsubscribe();
68
- }
69
- }
70
- loadUserLanguageSetting() {
71
- this.language = localStorage.getItem('langKey') || '';
72
- }
73
- reloadForm() {
74
- this.refreshForm.emit({
75
- form: this.formDefinition
76
- });
77
- }
78
- showErrors(errors) {
79
- this.errors = errors;
80
- }
81
- onSubmit(submission) {
82
- this.errors = [];
83
- this.submit.emit(submission);
84
- }
85
- formReady(form) {
86
- this.reloadForm();
87
- this.stateService.currentForm = form;
88
- }
89
- onChange(object) {
90
- this.change.emit(object);
91
- }
92
- formHasLegacyUpload(formDefinition) {
93
- const stringifiedFormDefinition = JSON.stringify(formDefinition);
94
- const legacyUploadString = '"type":"file"';
95
- return stringifiedFormDefinition.includes(legacyUploadString);
96
- }
97
- setInitialToken() {
98
- this.userProviderService.getToken().then((token) => {
99
- this.setToken(token);
100
- });
101
- }
102
- setToken(token) {
103
- Formio.setToken(token);
104
- this.setTimerForTokenRefresh(token);
105
- this.logger.debug('New token set for form.io.');
106
- }
107
- setTimerForTokenRefresh(token) {
108
- const tokenExp = jwt_decode(token).exp * 1000;
109
- const expiryTime = tokenExp - Date.now() - 1000;
110
- this.tokenRefreshTimerSubscription = timer(expiryTime).subscribe(() => {
111
- this.refreshToken();
112
- });
113
- this.logger.debug(`Timer for form.io token refresh set for: ${expiryTime}ms.`);
114
- }
115
- refreshToken() {
116
- from(this.userProviderService.updateToken(-1))
117
- .pipe(switchMap(() => this.userProviderService.getToken()), take(1))
118
- .subscribe(token => {
119
- this.setToken(token);
120
- });
121
- }
122
- subscribeFormRefresh() {
123
- if (this.formRefresh$) {
124
- this.formRefreshSubscription = this.formRefresh$.subscribe((refreshValue) => {
125
- if (refreshValue) {
126
- this.refreshForm.emit(refreshValue);
127
- }
128
- });
129
- }
130
- }
131
- unsubscribeFormRefresh() {
132
- if (this.formRefreshSubscription) {
133
- this.formRefreshSubscription.unsubscribe();
134
- }
135
- }
136
- }
137
- FormioComponent.decorators = [
138
- { type: Component, args: [{
139
- selector: 'valtimo-form-io',
140
- template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div>\n <div *ngIf=\"errors.length > 0\" class=\"alert alert-danger pt-5 pb-5 mb-2\">\n <ol>\n <li *ngFor=\"let error of errors\">\n {{error}}\n </li>\n </ol>\n </div>\n <formio [submission]=\"submission\"\n [form]=\"formDefinition\"\n [refresh]=\"refreshForm\"\n [options]=\"options\"\n [language]=\"language\"\n (submit)=\"onSubmit($event)\"\n (ready)=\"formReady($event)\"\n (change)=\"onChange($event)\"\n >\n </formio>\n</div>\n",
141
- styles: [""]
142
- },] }
143
- ];
144
- FormioComponent.ctorParameters = () => [
145
- { type: UserProviderService },
146
- { type: NGXLogger },
147
- { type: FormIoStateService },
148
- { type: ActivatedRoute }
149
- ];
150
- FormioComponent.propDecorators = {
151
- form: [{ type: Input }],
152
- options: [{ type: Input }],
153
- submission: [{ type: Input }],
154
- formRefresh$: [{ type: Input }],
155
- submit: [{ type: Output }],
156
- change: [{ type: Output }]
157
- };
1
+ /*
2
+ * Copyright 2015-2020 Ritense BV, the Netherlands.
3
+ *
4
+ * Licensed under EUPL, Version 1.2 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" basis,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
17
+ import { UserProviderService } from '@valtimo/security';
18
+ import { Formio } from 'angular-formio';
19
+ import jwt_decode from 'jwt-decode';
20
+ import { NGXLogger } from 'ngx-logger';
21
+ import { from, Subject, timer } from 'rxjs';
22
+ import { switchMap, take } from 'rxjs/operators';
23
+ import { FormIoStateService } from './services/form-io-state.service';
24
+ import { ActivatedRoute } from '@angular/router';
25
+ export class FormioComponent {
26
+ constructor(userProviderService, logger, stateService, route) {
27
+ this.userProviderService = userProviderService;
28
+ this.logger = logger;
29
+ this.stateService = stateService;
30
+ this.route = route;
31
+ this.submission = {};
32
+ this.submit = new EventEmitter();
33
+ this.change = new EventEmitter();
34
+ this.refreshForm = new EventEmitter();
35
+ this.errors = [];
36
+ }
37
+ ngOnInit() {
38
+ const documentDefinitionName = this.route.snapshot.paramMap.get('documentDefinitionName');
39
+ const formDefinition = this.form;
40
+ this.loadUserLanguageSetting();
41
+ this.formDefinition = formDefinition;
42
+ this.errors = [];
43
+ if (this.formHasLegacyUpload(formDefinition)) {
44
+ this.setInitialToken();
45
+ }
46
+ if (documentDefinitionName) {
47
+ this.stateService.setDocumentDefinitionName(documentDefinitionName);
48
+ }
49
+ this.subscribeFormRefresh();
50
+ }
51
+ ngOnChanges(changes) {
52
+ const currentForm = changes.form.currentValue;
53
+ this.formDefinition = currentForm;
54
+ this.loadUserLanguageSetting();
55
+ this.reloadForm();
56
+ if (this.formHasLegacyUpload(currentForm)) {
57
+ this.setInitialToken();
58
+ }
59
+ if (changes.formDefinitionRefresh$) {
60
+ this.unsubscribeFormRefresh();
61
+ this.subscribeFormRefresh();
62
+ }
63
+ }
64
+ ngOnDestroy() {
65
+ this.unsubscribeFormRefresh();
66
+ if (this.tokenRefreshTimerSubscription) {
67
+ this.tokenRefreshTimerSubscription.unsubscribe();
68
+ }
69
+ }
70
+ loadUserLanguageSetting() {
71
+ this.language = localStorage.getItem('langKey') || '';
72
+ }
73
+ reloadForm() {
74
+ this.refreshForm.emit({
75
+ form: this.formDefinition
76
+ });
77
+ }
78
+ showErrors(errors) {
79
+ this.errors = errors;
80
+ }
81
+ onSubmit(submission) {
82
+ this.errors = [];
83
+ this.submit.emit(submission);
84
+ }
85
+ formReady(form) {
86
+ this.reloadForm();
87
+ this.stateService.currentForm = form;
88
+ }
89
+ onChange(object) {
90
+ this.change.emit(object);
91
+ }
92
+ formHasLegacyUpload(formDefinition) {
93
+ const stringifiedFormDefinition = JSON.stringify(formDefinition);
94
+ const legacyUploadString = '"type":"file"';
95
+ return stringifiedFormDefinition.includes(legacyUploadString);
96
+ }
97
+ setInitialToken() {
98
+ this.userProviderService.getToken().then((token) => {
99
+ this.setToken(token);
100
+ });
101
+ }
102
+ setToken(token) {
103
+ Formio.setToken(token);
104
+ this.setTimerForTokenRefresh(token);
105
+ this.logger.debug('New token set for form.io.');
106
+ }
107
+ setTimerForTokenRefresh(token) {
108
+ const tokenExp = jwt_decode(token).exp * 1000;
109
+ const expiryTime = tokenExp - Date.now() - 1000;
110
+ this.tokenRefreshTimerSubscription = timer(expiryTime).subscribe(() => {
111
+ this.refreshToken();
112
+ });
113
+ this.logger.debug(`Timer for form.io token refresh set for: ${expiryTime}ms.`);
114
+ }
115
+ refreshToken() {
116
+ from(this.userProviderService.updateToken(-1))
117
+ .pipe(switchMap(() => this.userProviderService.getToken()), take(1))
118
+ .subscribe(token => {
119
+ this.setToken(token);
120
+ });
121
+ }
122
+ subscribeFormRefresh() {
123
+ if (this.formRefresh$) {
124
+ this.formRefreshSubscription = this.formRefresh$.subscribe((refreshValue) => {
125
+ if (refreshValue) {
126
+ this.refreshForm.emit(refreshValue);
127
+ }
128
+ });
129
+ }
130
+ }
131
+ unsubscribeFormRefresh() {
132
+ if (this.formRefreshSubscription) {
133
+ this.formRefreshSubscription.unsubscribe();
134
+ }
135
+ }
136
+ }
137
+ FormioComponent.decorators = [
138
+ { type: Component, args: [{
139
+ selector: 'valtimo-form-io',
140
+ template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div>\n <div *ngIf=\"errors.length > 0\" class=\"alert alert-danger pt-5 pb-5 mb-2\">\n <ol>\n <li *ngFor=\"let error of errors\">\n {{error}}\n </li>\n </ol>\n </div>\n <formio [submission]=\"submission\"\n [form]=\"formDefinition\"\n [refresh]=\"refreshForm\"\n [options]=\"options\"\n [language]=\"language\"\n (submit)=\"onSubmit($event)\"\n (ready)=\"formReady($event)\"\n (change)=\"onChange($event)\"\n >\n </formio>\n</div>\n",
141
+ styles: [""]
142
+ },] }
143
+ ];
144
+ FormioComponent.ctorParameters = () => [
145
+ { type: UserProviderService },
146
+ { type: NGXLogger },
147
+ { type: FormIoStateService },
148
+ { type: ActivatedRoute }
149
+ ];
150
+ FormioComponent.propDecorators = {
151
+ form: [{ type: Input }],
152
+ options: [{ type: Input }],
153
+ submission: [{ type: Input }],
154
+ formRefresh$: [{ type: Input }],
155
+ submit: [{ type: Output }],
156
+ change: [{ type: Output }]
157
+ };
158
158
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1pby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2NvbXBvbmVudHMvc3JjL2xpYi9mb3JtLWlvL2Zvcm0taW8uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFnQyxNQUFNLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBRWxILE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ3RELE9BQU8sRUFBQyxNQUFNLEVBQXVELE1BQU0sZ0JBQWdCLENBQUM7QUFFNUYsT0FBTyxVQUFVLE1BQU0sWUFBWSxDQUFDO0FBQ3BDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxZQUFZLENBQUM7QUFDckMsT0FBTyxFQUFDLElBQUksRUFBRSxPQUFPLEVBQWdCLEtBQUssRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUN4RCxPQUFPLEVBQUMsU0FBUyxFQUFFLElBQUksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQy9DLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQ3BFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQU8vQyxNQUFNLE9BQU8sZUFBZTtJQWUxQixZQUNVLG1CQUF3QyxFQUN4QyxNQUFpQixFQUNSLFlBQWdDLEVBQ2hDLEtBQXFCO1FBSDlCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUNSLGlCQUFZLEdBQVosWUFBWSxDQUFvQjtRQUNoQyxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQWhCL0IsZUFBVSxHQUFpQixFQUFFLENBQUM7UUFFN0IsV0FBTSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQy9DLFdBQU0s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QUU7WUFDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxvQkFBb0I7UUFDMUIsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFO2dCQUMxRSxJQUFJLFlBQVksRUFBRTtvQkFDaEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7aUJBQ3JDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFTyxzQkFBc0I7UUFDNUIsSUFBSSxJQUFJLENBQUMsdUJBQXVCLEVBQUU7WUFDaEMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQzVDO0lBQ0gsQ0FBQzs7O1lBMUpGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsaUJBQWlCO2dCQUMzQix3cUNBQXVDOzthQUV4Qzs7O1lBZE8sbUJBQW1CO1lBSW5CLFNBQVM7WUFHVCxrQkFBa0I7WUFDbEIsY0FBYzs7O21CQVFuQixLQUFLO3NCQUNMLEtBQUs7eUJBQ0wsS0FBSzsyQkFDTCxLQUFLO3FCQUNMLE1BQU07cUJBQ04sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDIwIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXN9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3JtaW9TdWJtaXNzaW9uLCBWYWx0aW1vRm9ybWlvT3B0aW9uc30gZnJvbSAnQHZhbHRpbW8vY29udHJhY3QnO1xuaW1wb3J0IHtVc2VyUHJvdmlkZXJTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9zZWN1cml0eSc7XG5pbXBvcnQge0Zvcm1pbywgRm9ybWlvQ29tcG9uZW50IGFzIEZvcm1Jb1NvdXJjZUNvbXBvbmVudCwgRm9ybWlvRm9ybX0gZnJvbSAnYW5ndWxhci1mb3JtaW8nO1xuaW1wb3J0IHtGb3JtaW9SZWZyZXNoVmFsdWV9IGZyb20gJ2FuZ3VsYXItZm9ybWlvL2Zvcm1pby5jb21tb24nO1xuaW1wb3J0IGp3dF9kZWNvZGUgZnJvbSAnand0LWRlY29kZSc7XG5pbXBvcnQge05HWExvZ2dlcn0gZnJvbSAnbmd4LWxvZ2dlcic7XG5pbXBvcnQge2Zyb20sIFN1YmplY3QsIFN1YnNjcmlwdGlvbiwgdGltZXJ9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtzd2l0Y2hNYXAsIHRha2V9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7Rm9ybUlvU3RhdGVTZXJ2aWNlfSBmcm9tICcuL3NlcnZpY2VzL2Zvcm0taW8tc3RhdGUuc2VydmljZSc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLWZvcm0taW8nLFxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1pby5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Zvcm0taW8uY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1pb0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBmb3JtOiBhbnk7XG4gIEBJbnB1dCgpIG9wdGlvbnM6IFZhbHRpbW9Gb3JtaW9PcHRpb25zO1xuICBASW5wdXQoKSBzdWJtaXNzaW9uPzogb2JqZWN0IHwge30gPSB7fTtcbiAgQElucHV0KCkgZm9ybVJlZnJlc2gkITogU3ViamVjdDxGb3JtaW9SZWZyZXNoVmFsdWU+O1xuICBAT3V0cHV0KCkgc3VibWl0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIHJlZnJlc2hGb3JtOiBFdmVudEVtaXR0ZXI8Rm9ybWlvUmVmcmVzaFZhbHVlPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgZm9ybURlZmluaXRpb246IEZvcm1pb0Zvcm07XG4gIGxhbmd1YWdlOiBzdHJpbmc7XG4gIHB1YmxpYyBlcnJvcnM6IHN0cmluZ1tdID0gW107XG5cbiAgcHJpdmF0ZSB0b2tlblJlZnJlc2hUaW1lclN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIGZvcm1SZWZyZXNoU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB1c2VyUHJvdmlkZXJTZXJ2aWNlOiBVc2VyUHJvdmlkZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgbG9nZ2VyOiBOR1hMb2dnZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdGF0ZVNlcnZpY2U6IEZvcm1Jb1N0YXRlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVxuICApIHtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGNvbnN0IGRvY3VtZW50RGVmaW5pdGlvbk5hbWUgPSB0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtTWFwLmdldCgnZG9jdW1lbnREZWZpbml0aW9uTmFtZScpO1xuICAgIGNvbnN0IGZvcm1EZWZpbml0aW9uID0gdGhpcy5mb3JtO1xuXG4gICAgdGhpcy5sb2FkVXNlckxhbmd1YWdlU2V0dGluZygpO1xuICAgIHRoaXMuZm9ybURlZmluaXRpb24gPSBmb3JtRGVmaW5pdGlvbjtcbiAgICB0aGlzLmVycm9ycyA9IFtdO1xuXG4gICAgaWYgKHRoaXMuZm9ybUhhc0xlZ2FjeVVwbG9hZChmb3JtRGVmaW5pdGlvbikpIHtcbiAgICAgIHRoaXMuc2V0SW5pdGlhbFRva2VuKCk7XG4gICAgfVxuXG4gICAgaWYgKGRvY3VtZW50RGVmaW5pdGlvbk5hbWUpIHtcbiAgICAgIHRoaXMuc3RhdGVTZXJ2aWNlLnNldERvY3VtZW50RGVmaW5pdGlvbk5hbWUoZG9jdW1lbnREZWZpbml0aW9uTmFtZSk7XG4gICAgfVxuXG4gICAgdGhpcy5zdWJzY3JpYmVGb3JtUmVmcmVzaCgpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGNvbnN0IGN1cnJlbnRGb3JtID0gY2hhbmdlcy5mb3JtLmN1cnJlbnRWYWx1ZTtcbiAgICB0aGlzLmZvcm1EZWZpbml0aW9uID0gY3VycmVudEZvcm07XG4gICAgdGhpcy5sb2FkVXNlckxhbmd1YWdlU2V0dGluZygpO1xuICAgIHRoaXMucmVsb2FkRm9ybSgpO1xuXG4gICAgaWYgKHRoaXMuZm9ybUhhc0xlZ2FjeVVwbG9hZChjdXJyZW50Rm9ybSkpIHtcbiAgICAgIHRoaXMuc2V0SW5pdGlhbFRva2VuKCk7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXMuZm9ybURlZmluaXRpb25SZWZyZXNoJCkge1xuICAgICAgdGhpcy51bnN1YnNjcmliZUZvcm1SZWZyZXNoKCk7XG4gICAgICB0aGlzLnN1YnNjcmliZUZvcm1SZWZyZXNoKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy51bnN1YnNjcmliZUZvcm1SZWZyZXNoKCk7XG5cbiAgICBpZiAodGhpcy50b2tlblJlZnJlc2hUaW1lclN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy50b2tlblJlZnJlc2hUaW1lclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIGxvYWRVc2VyTGFuZ3VhZ2VTZXR0aW5nKCk6IHZvaWQge1xuICAgIHRoaXMubGFuZ3VhZ2UgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbGFuZ0tleScpIHx8ICcnO1xuICB9XG5cbiAgcmVsb2FkRm9ybSgpIHtcbiAgICB0aGlzLnJlZnJlc2hGb3JtLmVtaXQoe1xuICAgICAgZm9ybTogdGhpcy5mb3JtRGVmaW5pdGlvblxuICAgIH0pO1xuICB9XG5cbiAgc2hvd0Vycm9ycyhlcnJvcnM6IHN0cmluZ1tdKSB7XG4gICAgdGhpcy5lcnJvcnMgPSBlcnJvcnM7XG4gIH1cblxuICBvblN1Ym1pdChzdWJtaXNzaW9uOiBGb3JtaW9TdWJtaXNzaW9uKSB7XG4gICAgdGhpcy5lcnJvcnMgPSBbXTtcbiAgICB0aGlzLnN1Ym1pdC5lbWl0KHN1Ym1pc3Npb24pO1xuICB9XG5cbiAgZm9ybVJlYWR5KGZvcm06IEZvcm1Jb1NvdXJjZUNvbXBvbmVudCk6IHZvaWQge1xuICAgIHRoaXMucmVsb2FkRm9ybSgpO1xuICAgIHRoaXMuc3RhdGVTZXJ2aWNlLmN1cnJlbnRGb3JtID0gZm9ybTtcbiAgfVxuXG4gIG9uQ2hhbmdlKG9iamVjdDogYW55KTogdm9pZCB7XG4gICAgdGhpcy5jaGFuZ2UuZW1pdChvYmplY3QpO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtSGFzTGVnYWN5VXBsb2FkKGZvcm1EZWZpbml0aW9uOiBhbnkpOiBib29sZWFuIHtcbiAgICBjb25zdCBzdHJpbmdpZmllZEZvcm1EZWZpbml0aW9uID0gSlNPTi5zdHJpbmdpZnkoZm9ybURlZmluaXRpb24pO1xuICAgIGNvbnN0IGxlZ2FjeVVwbG9hZFN0cmluZyA9ICdcInR5cGVcIjpcImZpbGVcIic7XG5cbiAgICByZXR1cm4gc3RyaW5naWZpZWRGb3JtRGVmaW5pdGlvbi5pbmNsdWRlcyhsZWdhY3lVcGxvYWRTdHJpbmcpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRJbml0aWFsVG9rZW4oKTogdm9pZCB7XG4gICAgdGhpcy51c2VyUHJvdmlkZXJTZXJ2aWNlLmdldFRva2VuKCkudGhlbigodG9rZW46IHN0cmluZykgPT4ge1xuICAgICAgdGhpcy5zZXRUb2tlbih0b2tlbik7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNldFRva2VuKHRva2VuOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBGb3JtaW8uc2V0VG9rZW4odG9rZW4pO1xuICAgIHRoaXMuc2V0VGltZXJGb3JUb2tlblJlZnJlc2godG9rZW4pO1xuXG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ05ldyB0b2tlbiBzZXQgZm9yIGZvcm0uaW8uJyk7XG4gIH1cblxuICBwcml2YXRlIHNldFRpbWVyRm9yVG9rZW5SZWZyZXNoKHRva2VuOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCB0b2tlbkV4cCA9IChqd3RfZGVjb2RlKHRva2VuKSBhcyBhbnkpLmV4cCAqIDEwMDA7XG4gICAgY29uc3QgZXhwaXJ5VGltZSA9IHRva2VuRXhwIC0gRGF0ZS5ub3coKSAtIDEwMDA7XG4gICAgdGhpcy50b2tlblJlZnJlc2hUaW1lclN1YnNjcmlwdGlvbiA9IHRpbWVyKGV4cGlyeVRpbWUpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnJlZnJlc2hUb2tlbigpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5sb2dnZXIuZGVidWcoYFRpbWVyIGZvciBmb3JtLmlvIHRva2VuIHJlZnJlc2ggc2V0IGZvcjogJHtleHBpcnlUaW1lfW1zLmApO1xuICB9XG5cbiAgcHJpdmF0ZSByZWZyZXNoVG9rZW4oKTogdm9pZCB7XG4gICAgZnJvbSh0aGlzLnVzZXJQcm92aWRlclNlcnZpY2UudXBkYXRlVG9rZW4oLTEpKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLnVzZXJQcm92aWRlclNlcnZpY2UuZ2V0VG9rZW4oKSksXG4gICAgICAgIHRha2UoMSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUodG9rZW4gPT4ge1xuICAgICAgICB0aGlzLnNldFRva2VuKHRva2VuKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzdWJzY3JpYmVGb3JtUmVmcmVzaCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5mb3JtUmVmcmVzaCQpIHtcbiAgICAgIHRoaXMuZm9ybVJlZnJlc2hTdWJzY3JpcHRpb24gPSB0aGlzLmZvcm1SZWZyZXNoJC5zdWJzY3JpYmUoKHJlZnJlc2hWYWx1ZSkgPT4ge1xuICAgICAgICBpZiAocmVmcmVzaFZhbHVlKSB7XG4gICAgICAgICAgdGhpcy5yZWZyZXNoRm9ybS5lbWl0KHJlZnJlc2hWYWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdW5zdWJzY3JpYmVGb3JtUmVmcmVzaCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5mb3JtUmVmcmVzaFN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5mb3JtUmVmcmVzaFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxufVxuIl19