@valtimo/components 5.14.0 → 5.15.0

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 (100) hide show
  1. package/esm2020/lib/components/alert/alert.component.mjs +3 -3
  2. package/esm2020/lib/components/alert/alert.module.mjs +4 -4
  3. package/esm2020/lib/components/alert/alert.service.mjs +3 -3
  4. package/esm2020/lib/components/bpmn-js-diagram/bpmn-js-diagram.component.mjs +3 -3
  5. package/esm2020/lib/components/bpmn-js-diagram/bpmn-js-diagram.module.mjs +4 -4
  6. package/esm2020/lib/components/breadcrumb-navigation/breadcrumb-navigation.component.mjs +3 -3
  7. package/esm2020/lib/components/breadcrumb-navigation/breadcrumb-navigation.module.mjs +4 -4
  8. package/esm2020/lib/components/camunda/form/camunda-form.components.mjs +3 -3
  9. package/esm2020/lib/components/camunda/form/camunda-form.module.mjs +4 -4
  10. package/esm2020/lib/components/camunda/form/custom/camunda-custom-form.component.mjs +3 -3
  11. package/esm2020/lib/components/camunda/form/custom/camunda-custom-form.module.mjs +4 -4
  12. package/esm2020/lib/components/camunda/form/generated/camunda-generated-form.component.mjs +3 -3
  13. package/esm2020/lib/components/camunda/form/generated/camunda-generated-form.module.mjs +4 -4
  14. package/esm2020/lib/components/camunda/form/generated/formfield/boolean/camunda-boolean-formfield.component.mjs +3 -3
  15. package/esm2020/lib/components/camunda/form/generated/formfield/camunda-formfield-generator.directive.mjs +3 -3
  16. package/esm2020/lib/components/camunda/form/generated/formfield/camunda-formfield.service.mjs +3 -3
  17. package/esm2020/lib/components/camunda/form/generated/formfield/choicefield/camunda-choicefield-formfield.component.mjs +3 -3
  18. package/esm2020/lib/components/camunda/form/generated/formfield/date/camunda-date-formfield.component.mjs +3 -3
  19. package/esm2020/lib/components/camunda/form/generated/formfield/enum/camunda-enum-formfield.component.mjs +3 -3
  20. package/esm2020/lib/components/camunda/form/generated/formfield/long/camunda-long-formfield.component.mjs +3 -3
  21. package/esm2020/lib/components/camunda/form/generated/formfield/string/camunda-string-formfield.component.mjs +3 -3
  22. package/esm2020/lib/components/camunda/form/generated/formfield/textarea/camunda-textarea-formfield.component.mjs +3 -3
  23. package/esm2020/lib/components/camunda/form/generated/formfield/validation/camunda-formfield-validation.component.mjs +3 -3
  24. package/esm2020/lib/components/card/card.component.mjs +3 -3
  25. package/esm2020/lib/components/card/card.module.mjs +4 -4
  26. package/esm2020/lib/components/components.module.mjs +4 -4
  27. package/esm2020/lib/components/data-list/data-list.component.mjs +3 -3
  28. package/esm2020/lib/components/data-list/data-list.module.mjs +4 -4
  29. package/esm2020/lib/components/documenten-api-metadata-modal/documenten-api-metadata-modal.component.mjs +3 -3
  30. package/esm2020/lib/components/documenten-api-metadata-modal/documenten-api-metadata-modal.module.mjs +4 -4
  31. package/esm2020/lib/components/dropzone/dropzone.component.mjs +3 -3
  32. package/esm2020/lib/components/dropzone/dropzone.module.mjs +4 -4
  33. package/esm2020/lib/components/field-auto-focus/field-auto-focus.directive.mjs +3 -3
  34. package/esm2020/lib/components/field-auto-focus/field-auto-focus.module.mjs +4 -4
  35. package/esm2020/lib/components/file-size/file-size.module.mjs +4 -4
  36. package/esm2020/lib/components/file-size/file-size.pipe.mjs +3 -3
  37. package/esm2020/lib/components/filter-sidebar/filter-sidebar.component.mjs +3 -3
  38. package/esm2020/lib/components/filter-sidebar/filter-sidebar.module.mjs +4 -4
  39. package/esm2020/lib/components/form-io/documenten-api-uploader/documenten-api-uploader.component.mjs +3 -3
  40. package/esm2020/lib/components/form-io/form-io-builder.component.mjs +3 -3
  41. package/esm2020/lib/components/form-io/form-io-uploader/form-io-uploader.component.mjs +3 -3
  42. package/esm2020/lib/components/form-io/form-io.component.mjs +7 -5
  43. package/esm2020/lib/components/form-io/form-io.module.mjs +4 -4
  44. package/esm2020/lib/components/form-io/services/form-io-dom.service.mjs +3 -3
  45. package/esm2020/lib/components/form-io/services/form-io-state.service.mjs +3 -3
  46. package/esm2020/lib/components/left-sidebar/left-sidebar.component.mjs +3 -3
  47. package/esm2020/lib/components/left-sidebar/left-sidebar.module.mjs +4 -4
  48. package/esm2020/lib/components/list/ListFilterPipe.directive.mjs +3 -3
  49. package/esm2020/lib/components/list/list.component.mjs +3 -3
  50. package/esm2020/lib/components/list/list.module.mjs +4 -4
  51. package/esm2020/lib/components/menu/menu-item-text.component.mjs +3 -3
  52. package/esm2020/lib/components/menu/menu-routing.module.mjs +4 -4
  53. package/esm2020/lib/components/menu/menu.component.mjs +3 -3
  54. package/esm2020/lib/components/menu/menu.module.mjs +4 -4
  55. package/esm2020/lib/components/menu/menu.service.mjs +52 -32
  56. package/esm2020/lib/components/menu/submenu-item-text.component.mjs +21 -11
  57. package/esm2020/lib/components/modal/modal.component.mjs +3 -3
  58. package/esm2020/lib/components/modal/modal.module.mjs +4 -4
  59. package/esm2020/lib/components/multiselect-dropdown/multiselect-dropdown.component.mjs +3 -3
  60. package/esm2020/lib/components/multiselect-dropdown/multiselect-dropdown.module.mjs +4 -4
  61. package/esm2020/lib/components/page-header/page-header.component.mjs +3 -3
  62. package/esm2020/lib/components/page-header/page-header.module.mjs +4 -4
  63. package/esm2020/lib/components/page-title/page-title.component.mjs +3 -3
  64. package/esm2020/lib/components/page-title/page-title.module.mjs +4 -4
  65. package/esm2020/lib/components/progress-bar/progress-bar.component.mjs +3 -3
  66. package/esm2020/lib/components/progress-bar/progress-bar.module.mjs +4 -4
  67. package/esm2020/lib/components/right-sidebar/right-sidebar.component.mjs +3 -3
  68. package/esm2020/lib/components/right-sidebar/right-sidebar.module.mjs +4 -4
  69. package/esm2020/lib/components/search-fields/search-fields.component.mjs +3 -3
  70. package/esm2020/lib/components/search-fields/search-fields.module.mjs +4 -4
  71. package/esm2020/lib/components/searchable-dropdown/searchable-dropdown.component.mjs +3 -3
  72. package/esm2020/lib/components/searchable-dropdown/searchable-dropdown.module.mjs +4 -4
  73. package/esm2020/lib/components/searchable-dropdown-select/searchable-dropdown-select.component.mjs +3 -3
  74. package/esm2020/lib/components/searchable-dropdown-select/searchable-dropdown-select.module.mjs +4 -4
  75. package/esm2020/lib/components/spinner/spinner.component.mjs +3 -3
  76. package/esm2020/lib/components/spinner/spinner.module.mjs +4 -4
  77. package/esm2020/lib/components/timeline/timeline.component.mjs +3 -3
  78. package/esm2020/lib/components/timeline/timeline.module.mjs +4 -4
  79. package/esm2020/lib/components/topbar/topbar.component.mjs +3 -3
  80. package/esm2020/lib/components/topbar/topbar.module.mjs +4 -4
  81. package/esm2020/lib/components/uploader/uploader-drag-drop.directive.mjs +3 -3
  82. package/esm2020/lib/components/uploader/uploader.component.mjs +3 -3
  83. package/esm2020/lib/components/uploader/uploader.module.mjs +4 -4
  84. package/esm2020/lib/components/version/version.service.mjs +3 -3
  85. package/esm2020/lib/components/view-content/view-content.service.mjs +3 -3
  86. package/esm2020/lib/components/webcam/webcam.component.mjs +3 -3
  87. package/esm2020/lib/components/webcam/webcam.module.mjs +4 -4
  88. package/esm2020/lib/components/widget/widget.component.mjs +3 -3
  89. package/esm2020/lib/components/widget/widget.module.mjs +4 -4
  90. package/esm2020/lib/services/valtimo-modal.service.mjs +3 -3
  91. package/fesm2015/valtimo-components.mjs +385 -359
  92. package/fesm2015/valtimo-components.mjs.map +1 -1
  93. package/fesm2020/valtimo-components.mjs +391 -359
  94. package/fesm2020/valtimo-components.mjs.map +1 -1
  95. package/lib/components/form-io/form-io.component.d.ts +2 -1
  96. package/lib/components/form-io/form-io.component.d.ts.map +1 -1
  97. package/lib/components/menu/menu.service.d.ts +3 -2
  98. package/lib/components/menu/menu.service.d.ts.map +1 -1
  99. package/lib/components/menu/submenu-item-text.component.d.ts.map +1 -1
  100. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"valtimo-components.mjs","sources":["../../../../projects/valtimo/components/src/lib/models/alert.model.ts","../../../../projects/valtimo/components/src/lib/models/form-io.model.ts","../../../../projects/valtimo/components/src/lib/models/timeline.model.ts","../../../../projects/valtimo/components/src/lib/models/index.ts","../../../../projects/valtimo/components/src/lib/services/valtimo-modal.service.ts","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/formfield/validation/date.validators.ts","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/formfield/camunda-formfield.service.ts","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/formfield/validation/camunda-formfield-validation.component.ts","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/formfield/validation/camunda-formfield-validation.component.html","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/formfield/string/camunda-string-formfield.component.ts","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/formfield/string/camunda-string-formfield.component.html","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/formfield/boolean/camunda-boolean-formfield.component.ts","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/formfield/boolean/camunda-boolean-formfield.component.html","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/formfield/date/camunda-date-formfield.component.ts","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/formfield/date/camunda-date-formfield.component.html","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/formfield/long/camunda-long-formfield.component.ts","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/formfield/long/camunda-long-formfield.component.html","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/formfield/enum/camunda-enum-formfield.component.ts","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/formfield/enum/camunda-enum-formfield.component.html","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/formfield/textarea/camunda-textarea-formfield.component.ts","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/formfield/textarea/camunda-textarea-formfield.component.html","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/formfield/choicefield/camunda-choicefield-formfield.component.ts","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/formfield/choicefield/camunda-choicefield-formfield.component.html","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/formfield/camunda-formfield-generator.directive.ts","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/camunda-generated-form.component.ts","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/camunda-generated-form.component.html","../../../../projects/valtimo/components/src/lib/components/camunda/form/custom/camunda-custom-form.component.ts","../../../../projects/valtimo/components/src/lib/components/camunda/form/custom/camunda-custom-form.component.html","../../../../projects/valtimo/components/src/lib/components/camunda/form/camunda-form.components.ts","../../../../projects/valtimo/components/src/lib/components/camunda/form/camunda-form.component.html","../../../../projects/valtimo/components/src/lib/components/camunda/form/custom/camunda-custom-form.module.ts","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/camunda-generated-form.module.ts","../../../../projects/valtimo/components/src/lib/components/camunda/form/camunda-form.module.ts","../../../../projects/valtimo/components/src/lib/components/topbar/topbar.component.ts","../../../../projects/valtimo/components/src/lib/components/topbar/topbar.component.html","../../../../projects/valtimo/components/src/lib/components/topbar/topbar.module.ts","../../../../projects/valtimo/components/src/lib/components/menu/menu.service.ts","../../../../projects/valtimo/components/src/lib/components/menu/menu-routing.module.ts","../../../../projects/valtimo/components/src/lib/components/menu/menu-item-text.component.ts","../../../../projects/valtimo/components/src/lib/components/menu/submenu-item-text.component.ts","../../../../projects/valtimo/components/src/lib/components/menu/menu.component.ts","../../../../projects/valtimo/components/src/lib/components/menu/menu.component.html","../../../../projects/valtimo/components/src/lib/components/menu/menu.module.ts","../../../../projects/valtimo/components/src/lib/components/menu/menu.init.ts","../../../../projects/valtimo/components/src/lib/components/version/version.service.ts","../../../../projects/valtimo/components/src/lib/components/right-sidebar/right-sidebar.component.ts","../../../../projects/valtimo/components/src/lib/components/right-sidebar/right-sidebar.component.html","../../../../projects/valtimo/components/src/lib/components/right-sidebar/right-sidebar.module.ts","../../../../projects/valtimo/components/src/lib/components/page-title/page-title.component.ts","../../../../projects/valtimo/components/src/lib/components/page-title/page-title.component.html","../../../../projects/valtimo/components/src/lib/components/left-sidebar/left-sidebar.component.ts","../../../../projects/valtimo/components/src/lib/components/left-sidebar/left-sidebar.component.html","../../../../projects/valtimo/components/src/lib/components/page-title/page-title.module.ts","../../../../projects/valtimo/components/src/lib/components/left-sidebar/left-sidebar.module.ts","../../../../projects/valtimo/components/src/lib/components/view-content/type-converters/stringTypeConverter.ts","../../../../projects/valtimo/components/src/lib/components/view-content/type-converters/booleanTypeConverter.ts","../../../../projects/valtimo/components/src/lib/components/view-content/type-converters/dateTypeConverter.ts","../../../../projects/valtimo/components/src/lib/components/view-content/type-converters/enumTypeConverter.ts","../../../../projects/valtimo/components/src/lib/components/view-content/type-converters/stringReplaceUnderscoreTypeConverter.ts","../../../../projects/valtimo/components/src/lib/components/view-content/type-converters/relatedFilesTypeConverter.ts","../../../../projects/valtimo/components/src/lib/components/view-content/type-converters/type-converters.model.ts","../../../../projects/valtimo/components/src/lib/components/view-content/view-content.service.ts","../../../../projects/valtimo/components/src/lib/components/list/ListFilterPipe.directive.ts","../../../../projects/valtimo/components/src/lib/components/list/list.component.ts","../../../../projects/valtimo/components/src/lib/components/list/list.component.html","../../../../projects/valtimo/components/src/lib/components/card/card.component.ts","../../../../projects/valtimo/components/src/lib/components/card/card.component.html","../../../../projects/valtimo/components/src/lib/components/card/card.module.ts","../../../../projects/valtimo/components/src/lib/components/list/list.module.ts","../../../../projects/valtimo/components/src/lib/components/breadcrumb-navigation/breadcrumb-navigation.component.ts","../../../../projects/valtimo/components/src/lib/components/breadcrumb-navigation/breadcrumb-navigation.component.html","../../../../projects/valtimo/components/src/lib/components/page-header/page-header.component.ts","../../../../projects/valtimo/components/src/lib/components/page-header/page-header.component.html","../../../../projects/valtimo/components/src/lib/components/breadcrumb-navigation/breadcrumb-navigation.module.ts","../../../../projects/valtimo/components/src/lib/components/page-header/page-header.module.ts","../../../../projects/valtimo/components/src/lib/components/widget/widget.component.ts","../../../../projects/valtimo/components/src/lib/components/widget/widget.component.html","../../../../projects/valtimo/components/src/lib/components/widget/widget.module.ts","../../../../projects/valtimo/components/src/lib/components/field-auto-focus/field-auto-focus.directive.ts","../../../../projects/valtimo/components/src/lib/components/field-auto-focus/field-auto-focus.module.ts","../../../../projects/valtimo/components/src/lib/components/bpmn-js-diagram/bpmn-js-diagram.component.ts","../../../../projects/valtimo/components/src/lib/components/bpmn-js-diagram/bpmn-js-diagram.component.html","../../../../projects/valtimo/components/src/lib/components/bpmn-js-diagram/bpmn-js-diagram.module.ts","../../../../projects/valtimo/components/src/lib/components/timeline/timeline.component.ts","../../../../projects/valtimo/components/src/lib/components/timeline/timeline.component.html","../../../../projects/valtimo/components/src/lib/components/timeline/timeline.module.ts","../../../../projects/valtimo/components/src/lib/components/components.module.ts","../../../../projects/valtimo/components/src/lib/components/filter-sidebar/filter-sidebar.component.ts","../../../../projects/valtimo/components/src/lib/components/filter-sidebar/filter-sidebar.component.html","../../../../projects/valtimo/components/src/lib/components/filter-sidebar/filter-sidebar.module.ts","../../../../projects/valtimo/components/src/lib/components/uploader/uploader-drag-drop.directive.ts","../../../../projects/valtimo/components/src/lib/components/file-size/file-size.pipe.ts","../../../../projects/valtimo/components/src/lib/components/uploader/uploader.component.ts","../../../../projects/valtimo/components/src/lib/components/uploader/uploader.component.html","../../../../projects/valtimo/components/src/lib/components/file-size/file-size.module.ts","../../../../projects/valtimo/components/src/lib/components/uploader/uploader.module.ts","../../../../projects/valtimo/components/src/lib/components/alert/alert.service.ts","../../../../projects/valtimo/components/src/lib/components/alert/alert.component.ts","../../../../projects/valtimo/components/src/lib/components/alert/alert.component.html","../../../../projects/valtimo/components/src/lib/components/alert/alert.module.ts","../../../../projects/valtimo/components/src/lib/components/data-list/data-list.component.ts","../../../../projects/valtimo/components/src/lib/components/data-list/data-list.component.html","../../../../projects/valtimo/components/src/lib/components/data-list/data-list.module.ts","../../../../projects/valtimo/components/src/lib/components/form-io/services/form-io-state.service.ts","../../../../projects/valtimo/components/src/lib/components/form-io/form-io.component.ts","../../../../projects/valtimo/components/src/lib/components/form-io/form-io.component.html","../../../../projects/valtimo/components/src/lib/components/form-io/form-io-builder.component.ts","../../../../projects/valtimo/components/src/lib/components/form-io/form-io-builder.component.html","../../../../projects/valtimo/components/src/lib/components/form-io/formio-config.ts","../../../../projects/valtimo/components/src/lib/components/form-io/services/form-io-dom.service.ts","../../../../projects/valtimo/components/src/lib/components/progress-bar/progress-bar.component.ts","../../../../projects/valtimo/components/src/lib/components/progress-bar/progress-bar.component.html","../../../../projects/valtimo/components/src/lib/components/webcam/webcam.component.ts","../../../../projects/valtimo/components/src/lib/components/webcam/webcam.component.html","../../../../projects/valtimo/components/src/lib/components/dropzone/dropzone.component.ts","../../../../projects/valtimo/components/src/lib/components/dropzone/dropzone.component.html","../../../../projects/valtimo/components/src/lib/components/form-io/form-io-uploader/form-io-uploader.component.ts","../../../../projects/valtimo/components/src/lib/components/form-io/form-io-uploader/form-io-uploader.component.html","../../../../projects/valtimo/components/src/lib/components/progress-bar/progress-bar.module.ts","../../../../projects/valtimo/components/src/lib/components/webcam/webcam.module.ts","../../../../projects/valtimo/components/src/lib/components/dropzone/dropzone.module.ts","../../../../projects/valtimo/components/src/lib/components/documenten-api-metadata-modal/documenten-api-metadata-modal.component.ts","../../../../projects/valtimo/components/src/lib/components/documenten-api-metadata-modal/documenten-api-metadata-modal.component.html","../../../../projects/valtimo/components/src/lib/components/form-io/documenten-api-uploader/documenten-api-uploader.component.ts","../../../../projects/valtimo/components/src/lib/components/form-io/documenten-api-uploader/documenten-api-uploader.component.html","../../../../projects/valtimo/components/src/lib/components/documenten-api-metadata-modal/documenten-api-metadata-modal.module.ts","../../../../projects/valtimo/components/src/lib/components/form-io/form-io.module.ts","../../../../projects/valtimo/components/src/lib/components/modal/modal.component.ts","../../../../projects/valtimo/components/src/lib/components/modal/modal.component.html","../../../../projects/valtimo/components/src/lib/components/modal/modal.module.ts","../../../../projects/valtimo/components/src/lib/components/spinner/spinner.component.ts","../../../../projects/valtimo/components/src/lib/components/spinner/spinner.component.html","../../../../projects/valtimo/components/src/lib/components/spinner/spinner.module.ts","../../../../projects/valtimo/components/src/lib/components/searchable-dropdown/searchable-dropdown.component.ts","../../../../projects/valtimo/components/src/lib/components/searchable-dropdown/searchable-dropdown.component.html","../../../../projects/valtimo/components/src/lib/components/searchable-dropdown/searchable-dropdown.module.ts","../../../../projects/valtimo/components/src/lib/components/form-io/form-io-uploader/form-io-uploader-edit-form.ts","../../../../projects/valtimo/components/src/lib/components/form-io/form-io-uploader/form-io-uploader.formio.ts","../../../../projects/valtimo/components/src/lib/components/form-io/documenten-api-uploader/documenten-api-uploader-edit-form.ts","../../../../projects/valtimo/components/src/lib/components/form-io/documenten-api-uploader/documenten-api-uploader.formio.ts","../../../../projects/valtimo/components/src/lib/components/form-io/form-io-resource-selector/form-io-resource-selector.formio.ts","../../../../projects/valtimo/components/src/lib/components/searchable-dropdown-select/searchable-dropdown-select.component.ts","../../../../projects/valtimo/components/src/lib/components/searchable-dropdown-select/searchable-dropdown-select.component.html","../../../../projects/valtimo/components/src/lib/components/searchable-dropdown-select/searchable-dropdown-select.module.ts","../../../../projects/valtimo/components/src/lib/components/multiselect-dropdown/multiselect-dropdown.component.ts","../../../../projects/valtimo/components/src/lib/components/multiselect-dropdown/multiselect-dropdown.component.html","../../../../projects/valtimo/components/src/lib/components/multiselect-dropdown/multiselect-dropdown.module.ts","../../../../projects/valtimo/components/src/lib/components/search-fields/search-fields.component.ts","../../../../projects/valtimo/components/src/lib/components/search-fields/search-fields.component.html","../../../../projects/valtimo/components/src/lib/components/search-fields/search-fields.module.ts","../../../../projects/valtimo/components/src/public_api.ts","../../../../projects/valtimo/components/src/valtimo-components.ts"],"sourcesContent":["/*\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\nexport class Alert {\n type: AlertType;\n message: string;\n confirmations: Array<AlertConfirmation>;\n confirm: any;\n iconClass: string;\n constructor(init?: Partial<Alert>) {\n Object.assign(this, init);\n }\n}\n\nexport interface AlertConfirmation {\n label: string;\n class: string;\n value: any;\n}\n\nexport enum AlertType {\n Success,\n Error,\n Info,\n Warning,\n Notification,\n ModalNotification,\n}\n","/*\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\nimport {\n AlertsOptions,\n ErrorsOptions,\n FormioBeforeSubmit,\n FormioHookOptions,\n FormioOptions,\n} from '@formio/angular/formio.common';\n\nexport interface FormioSubmission {\n data: {\n submit: boolean;\n };\n metadata: object;\n state: string;\n}\n\nexport interface ResourceOption {\n label: string;\n value: string;\n}\n\nexport class AlertsOptionsImpl implements AlertsOptions {\n submitMessage: string;\n\n constructor(submitMessage: string) {\n this.submitMessage = submitMessage;\n }\n}\n\nexport interface ValtimoFormioOptions extends FormioOptions {\n setAlertMessage(submitMessage: string);\n setHooks(submitFunction: FormioBeforeSubmit);\n}\n\nexport class FormioOptionsImpl implements ValtimoFormioOptions {\n errors?: ErrorsOptions;\n alerts?: AlertsOptions;\n disableAlerts?: boolean;\n i18n?: object;\n fileService?: object;\n hooks?: FormioHookOptions;\n readonly?: boolean;\n decimalSeparator?: string;\n thousandsSeparator?: string;\n\n constructor() {}\n\n setAlertMessage(submitMessage: string) {\n this.alerts = new AlertsOptionsImpl(submitMessage);\n }\n\n setHooks(beforeSubmit: FormioBeforeSubmit) {\n this.hooks = {beforeSubmit};\n }\n}\n","/*\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\nexport interface TimelineItem {\n date: string;\n time: string;\n user: string;\n activity: string;\n summaryTranslationKey: string;\n summaryTranslationParams: object;\n}\n\nexport class TimelineItemImpl implements TimelineItem {\n private readonly _date: string;\n private readonly _time: string;\n private readonly _user: string;\n private readonly _activity: string;\n private readonly _summaryTranslationKey: string;\n private readonly _summaryTranslationParams: object;\n\n constructor(\n date: string,\n time: string,\n user: string,\n activity: string,\n summaryTranslationKey: string,\n summaryTranslationParams: object\n ) {\n this._date = date;\n this._time = time;\n this._user = user;\n this._activity = activity;\n this._summaryTranslationKey = summaryTranslationKey;\n this._summaryTranslationParams = summaryTranslationParams;\n }\n\n get date(): string {\n return this._date;\n }\n\n get time(): string {\n return this._time;\n }\n\n get user(): string {\n return this._user;\n }\n\n get activity(): string {\n return this._activity;\n }\n\n get summaryTranslationKey(): string {\n return this._summaryTranslationKey;\n }\n\n get summaryTranslationParams(): object {\n return this._summaryTranslationParams;\n }\n}\n","/*\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\nexport * from './alert.model';\nexport * from './form-io.model';\nexport * from './pagination.model';\nexport * from './searchable-dropdown.model';\nexport * from './timeline.model';\nexport * from './version.model';\nexport * from './list.model';\nexport * from './documenten-api-metadata.model';\n","import {Injectable} from '@angular/core';\nimport {BehaviorSubject, Observable, Subject} from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ValtimoModalService {\n private readonly _scrollToTop$ = new Subject<null>();\n private readonly _documentDefinitionName$ = new BehaviorSubject<string>('');\n\n get scrollToTop$(): Observable<null> {\n return this._scrollToTop$.asObservable();\n }\n\n get documentDefinitionName$(): Observable<string> {\n return this._documentDefinitionName$.asObservable();\n }\n\n scrollToTop(): void {\n this._scrollToTop$.next(null);\n }\n\n setDocumentDefinitionName(documentDefinitionName: string): void {\n this._documentDefinitionName$.next(documentDefinitionName);\n }\n}\n","/*\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\nimport moment from 'moment';\nimport {AbstractControl, ValidatorFn} from '@angular/forms';\n\nmoment.locale(localStorage.getItem('langKey'));\nconst DATE_FORMAT = 'DD-MM-YYYY';\n\nexport function minDate(minDateIn: string): ValidatorFn {\n return (control: AbstractControl): {[key: string]: any} | null => {\n if (!control.value) {\n return null;\n }\n const controlDate = moment.utc(control.value).startOf('day');\n const momentMinDate = moment.utc(minDateIn, DATE_FORMAT, true);\n\n if (!controlDate.isSameOrAfter(momentMinDate)) {\n return {\n minDate: {\n minDate: momentMinDate.format(DATE_FORMAT),\n actual: controlDate.format(DATE_FORMAT),\n },\n };\n } else {\n return null;\n }\n };\n}\n\nexport function maxDate(maxDateIn: string): ValidatorFn {\n return (control: AbstractControl): {[key: string]: any} | null => {\n if (!control.value) {\n return null;\n }\n const controlDate = moment.utc(control.value).startOf('day');\n const momentMaxDate = moment.utc(maxDateIn, DATE_FORMAT, true);\n\n if (!controlDate.isSameOrBefore(momentMaxDate)) {\n return {\n maxDate: {\n maxDate: momentMaxDate.format(DATE_FORMAT),\n actual: controlDate.format(DATE_FORMAT),\n },\n };\n } else {\n return null;\n }\n };\n}\n","/*\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\nimport {Injectable} from '@angular/core';\nimport {Validators} from '@angular/forms';\nimport {maxDate, minDate} from './validation/date.validators';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CamundaFormfieldService {\n constructor() {}\n\n public isFormFieldDisabled(formField) {\n return formField.validationConstraints.filter(vc => vc.name === 'readonly').length > 0;\n }\n\n public getMinDate(formField) {\n return formField.validationConstraints.filter(\n vc => vc.name === 'minDate' && vc.configuration\n )[0];\n }\n\n public getMaxDate(formField) {\n return formField.validationConstraints.filter(\n vc => vc.name === 'maxDate' && vc.configuration\n )[0];\n }\n\n public getValidatorTypes(formField) {\n const validatorTypes = [];\n formField.validationConstraints.forEach(validationConstraint => {\n if (validationConstraint.name === 'required') {\n validatorTypes.push(Validators.required);\n }\n if (validationConstraint.name === 'minlength') {\n validatorTypes.push(Validators.minLength(+validationConstraint.configuration));\n }\n if (validationConstraint.name === 'maxlength') {\n validatorTypes.push(Validators.maxLength(+validationConstraint.configuration));\n }\n if (validationConstraint.name === 'min') {\n validatorTypes.push(Validators.min(+validationConstraint.configuration));\n }\n if (validationConstraint.name === 'max') {\n validatorTypes.push(Validators.max(+validationConstraint.configuration));\n }\n if (validationConstraint.name === 'minDate') {\n validatorTypes.push(minDate(validationConstraint.configuration));\n }\n if (validationConstraint.name === 'maxDate') {\n validatorTypes.push(maxDate(validationConstraint.configuration));\n }\n });\n return validatorTypes;\n }\n}\n","/*\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\nimport {Component, Input, OnInit} from '@angular/core';\nimport {FormGroup} from '@angular/forms';\nimport {FormField} from '../formfield.model';\n\n@Component({\n selector: 'valtimo-camunda-formfield-validation',\n templateUrl: './camunda-formfield-validation.component.html',\n})\nexport class CamundaFormfieldValidationComponent implements OnInit {\n @Input() public formGroup: FormGroup;\n @Input() public formField: FormField;\n\n formControl: any;\n\n constructor() {}\n\n ngOnInit(): void {\n this.formControl = this.formGroup.get(this.formField.id);\n }\n}\n","<!--\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<ul\n class=\"parsley-errors-list filled\"\n *ngIf=\"formControl.invalid && (formControl.dirty || formControl.touched)\"\n>\n <li *ngIf=\"formControl.errors.required\">This field is required.</li>\n <li *ngIf=\"formControl.errors.minlength\">\n This field should be more than {{ formControl.errors.minlength.requiredLength }} characters.\n </li>\n <li *ngIf=\"formControl.errors.maxlength\">\n This field cannot be more than {{ formControl.errors.maxlength.requiredLength }} characters.\n </li>\n <li *ngIf=\"formControl.errors.min\">\n This field should be more than {{ formControl.errors.min.min }}.\n </li>\n <li *ngIf=\"formControl.errors.max\">\n This field should be less or equal to {{ formControl.errors.max.max }}.\n </li>\n <li *ngIf=\"formControl.errors.minDate\">\n This field should be more than {{ formControl.errors.minDate.minDate }}.\n </li>\n <li *ngIf=\"formControl.errors.maxDate\">\n This field should be less or equal to {{ formControl.errors.maxDate.maxDate }}.\n </li>\n</ul>\n","/*\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\nimport {Component} from '@angular/core';\nimport {FormGroup} from '@angular/forms';\nimport {FormField} from '../formfield.model';\n\n@Component({\n selector: 'valtimo-camunda-string-formfield',\n templateUrl: './camunda-string-formfield.component.html',\n})\nexport class CamundaStringFormfieldComponent {\n public formGroup: FormGroup;\n public formField: FormField;\n\n constructor() {}\n}\n","<!--\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 class=\"form-group row\" *ngIf=\"formGroup\" [formGroup]=\"formGroup\">\n <label for=\"{{ formField.id }}\" class=\"col-12 col-sm-3 col-form-label text-sm-right\">\n {{ formField.label }}\n </label>\n <div class=\"col-12 col-sm-8 col-lg-6\">\n <input\n id=\"{{ formField.id }}\"\n class=\"form-control\"\n type=\"text\"\n [attr.placeholder]=\"formField.defaultValue\"\n [formControlName]=\"formField.id\"\n />\n <valtimo-camunda-formfield-validation [formGroup]=\"formGroup\" [formField]=\"formField\">\n </valtimo-camunda-formfield-validation>\n </div>\n</div>\n","/*\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\nimport {Component} from '@angular/core';\nimport {FormGroup} from '@angular/forms';\nimport {FormField} from '../formfield.model';\n\n@Component({\n selector: 'valtimo-camunda-boolean-formfield',\n templateUrl: './camunda-boolean-formfield.component.html',\n})\nexport class CamundaBooleanFormfieldComponent {\n public formGroup: FormGroup;\n public formField: FormField;\n\n constructor() {}\n}\n","<!--\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 class=\"form-group row\" *ngIf=\"formGroup\" [formGroup]=\"formGroup\">\n <label class=\"col-12 col-sm-3 col-form-label text-sm-right\">\n {{ formField.label }}\n </label>\n <div class=\"col-12 col-sm-8 col-lg-6 form-check mt-1\">\n <label for=\"yes_{{ formField.id }}\" class=\"custom-control custom-radio custom-control-inline\">\n <input\n class=\"custom-control-input\"\n id=\"yes_{{ formField.id }}\"\n type=\"radio\"\n [value]=\"true\"\n [formControlName]=\"formField.id\"\n />\n <span class=\"custom-control-label custom-control-color\">Yes</span>\n </label>\n <label for=\"no_{{ formField.id }}\" class=\"custom-control custom-radio custom-control-inline\">\n <input\n class=\"custom-control-input\"\n id=\"no_{{ formField.id }}\"\n type=\"radio\"\n [value]=\"false\"\n [formControlName]=\"formField.id\"\n />\n <span class=\"custom-control-label custom-control-color\">No</span>\n </label>\n <valtimo-camunda-formfield-validation [formGroup]=\"formGroup\" [formField]=\"formField\">\n </valtimo-camunda-formfield-validation>\n </div>\n</div>\n","/*\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\nimport {AfterViewInit, Component, OnInit} from '@angular/core';\nimport {FormGroup} from '@angular/forms';\nimport {FormField} from '../formfield.model';\nimport {CamundaFormfieldService} from '../camunda-formfield.service';\nimport moment from 'moment';\n\nmoment.locale(localStorage.getItem('langKey'));\n// eslint-disable-next-line no-var\ndeclare var $;\n\n@Component({\n selector: 'valtimo-camunda-date-formfield',\n templateUrl: './camunda-date-formfield.component.html',\n})\nexport class CamundaDateFormfieldComponent implements OnInit, AfterViewInit {\n public formGroup: FormGroup;\n public formField: FormField;\n\n private INPUT_SELECTOR: string;\n private datePickerOptions: any = {};\n\n constructor(private formFieldService: CamundaFormfieldService) {}\n\n ngOnInit(): void {\n this.INPUT_SELECTOR = '#' + this.formField.id;\n this.datePickerOptions = {\n autoclose: true,\n componentIcon: '.mdi.mdi-calendar',\n navIcons: {\n rightIcon: 'mdi mdi-chevron-right',\n leftIcon: 'mdi mdi-chevron-left',\n },\n format: 'dd-mm-yyyy',\n };\n }\n\n ngAfterViewInit(): void {\n const formGroup = this.formGroup;\n const formField = this.formField;\n\n const maxDate = this.formFieldService.getMaxDate(this.formField);\n if (maxDate) {\n this.datePickerOptions.endDate = maxDate.configuration;\n }\n\n const minDate = this.formFieldService.getMinDate(this.formField);\n if (minDate) {\n this.datePickerOptions.startDate = minDate.configuration;\n }\n\n $(this.INPUT_SELECTOR).datetimepicker(this.datePickerOptions);\n $(this.INPUT_SELECTOR).on('changeDate', function (e) {\n formGroup.patchValue({\n [formField.id]: moment(e.date.valueOf()).format('DD/MM/YYYY'),\n });\n });\n }\n}\n","<!--\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 class=\"form-group row\" *ngIf=\"formGroup\" [formGroup]=\"formGroup\">\n <label for=\"{{ formField.id }}\" class=\"col-12 col-sm-3 col-form-label text-sm-right\">\n {{ formField.label }}\n </label>\n <div class=\"col-12 col-sm-8 col-lg-6 pt1\">\n <input\n type=\"input\"\n class=\"form-control\"\n data-min-view=\"2\"\n id=\"{{ formField.id }}\"\n autocomplete=\"off\"\n [formControlName]=\"formField.id\"\n />\n <valtimo-camunda-formfield-validation [formGroup]=\"formGroup\" [formField]=\"formField\">\n </valtimo-camunda-formfield-validation>\n </div>\n</div>\n","/*\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\nimport {Component} from '@angular/core';\nimport {FormGroup} from '@angular/forms';\nimport {FormField} from '../formfield.model';\n\n@Component({\n selector: 'valtimo-camunda-long-formfield',\n templateUrl: './camunda-long-formfield.component.html',\n})\nexport class CamundaLongFormfieldComponent {\n public formGroup: FormGroup;\n public formField: FormField;\n\n constructor() {}\n}\n","<!--\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 class=\"form-group row\" *ngIf=\"formGroup\" [formGroup]=\"formGroup\">\n <label for=\"{{ formField.id }}\" class=\"col-12 col-sm-3 col-form-label text-sm-right\">\n {{ formField.label }}\n </label>\n <div class=\"col-12 col-sm-8 col-lg-6\">\n <input\n id=\"{{ formField.id }}\"\n class=\"form-control\"\n type=\"number\"\n [attr.placeholder]=\"formField.defaultValue\"\n [formControlName]=\"formField.id\"\n />\n <valtimo-camunda-formfield-validation [formGroup]=\"formGroup\" [formField]=\"formField\">\n </valtimo-camunda-formfield-validation>\n </div>\n</div>\n","/*\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\nimport {Component, OnInit} from '@angular/core';\nimport {FormGroup} from '@angular/forms';\nimport {FormField} from '../formfield.model';\n\n@Component({\n selector: 'valtimo-camunda-enum-formfield',\n templateUrl: './camunda-enum-formfield.component.html',\n})\nexport class CamundaEnumFormfieldComponent implements OnInit {\n public formGroup: FormGroup;\n public formField: FormField;\n\n public valueKeys;\n\n constructor() {}\n\n ngOnInit(): void {\n this.valueKeys = Object.keys(this.formField.type.values);\n }\n}\n","<!--\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 class=\"form-group row\" [formGroup]=\"formGroup\">\n <label for=\"{{ formField.id }}\" class=\"col-12 col-sm-3 col-form-label text-sm-right\">\n {{ formField.label }}\n </label>\n <div class=\"col-12 col-sm-8 col-lg-6\">\n <select class=\"form-control\" id=\"{{ formField.id }}\" [formControlName]=\"formField.id\">\n <option selected=\"selected\" value=\"\"></option>\n <option *ngFor=\"let key of valueKeys\" [value]=\"key\" id=\"option_{{ key }}\">\n {{ formField.type.values[key] }}\n </option>\n </select>\n <valtimo-camunda-formfield-validation [formGroup]=\"formGroup\" [formField]=\"formField\">\n </valtimo-camunda-formfield-validation>\n </div>\n</div>\n","/*\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\nimport {Component} from '@angular/core';\nimport {FormGroup} from '@angular/forms';\nimport {FormField} from '../formfield.model';\n\n@Component({\n selector: 'valtimo-camunda-textarea-formfield',\n templateUrl: './camunda-textarea-formfield.component.html',\n})\nexport class CamundaTextareaFormfieldComponent {\n public formGroup: FormGroup;\n public formField: FormField;\n\n constructor() {}\n}\n","<!--\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 class=\"form-group row\" *ngIf=\"formGroup\" [formGroup]=\"formGroup\">\n <label for=\"{{ formField.id }}\" class=\"col-12 col-sm-3 col-form-label text-sm-right\">\n {{ formField.label }}\n </label>\n <div class=\"col-12 col-sm-8 col-lg-6\">\n <textarea\n id=\"{{ formField.id }}\"\n class=\"form-control\"\n [attr.placeholder]=\"formField.defaultValue\"\n [formControlName]=\"formField.id\"\n ></textarea>\n <valtimo-camunda-formfield-validation [formGroup]=\"formGroup\" [formField]=\"formField\">\n </valtimo-camunda-formfield-validation>\n </div>\n</div>\n","/*\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\nimport {Component, OnInit} from '@angular/core';\nimport {FormGroup} from '@angular/forms';\nimport {FormField} from '../formfield.model';\nimport {ChoicefieldService} from '@valtimo/choicefield';\n\n@Component({\n selector: 'valtimo-camunda-choicefield-formfield',\n templateUrl: './camunda-choicefield-formfield.component.html',\n})\nexport class CamundaChoicefieldFormfieldComponent implements OnInit {\n public formGroup: FormGroup;\n public formField: FormField;\n public choicefieldValues: Array<any> = [];\n\n constructor(private choicefieldService: ChoicefieldService) {}\n\n ngOnInit(): void {\n this.choicefieldService\n .getChoiceFieldValuesByName(this.formField.properties['choicefield'])\n .subscribe(data => {\n this.choicefieldValues = data;\n });\n }\n}\n","<!--\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 class=\"form-group row\" [formGroup]=\"formGroup\">\n <label for=\"{{ formField.id }}\" class=\"col-12 col-sm-3 col-form-label text-sm-right\">\n {{ formField.label }}\n </label>\n <div class=\"col-12 col-sm-8 col-lg-6\">\n <select class=\"form-control\" id=\"{{ formField.id }}\" [formControlName]=\"formField.id\">\n <option selected=\"selected\" value=\"\"></option>\n <ng-container *ngFor=\"let choicefieldValue of choicefieldValues\">\n <option\n *ngIf=\"!choicefieldValue.deprecated\"\n [value]=\"choicefieldValue.value\"\n id=\"option_{{ choicefieldValue.value }}\"\n >\n {{ choicefieldValue.name }}\n </option>\n </ng-container>\n </select>\n <valtimo-camunda-formfield-validation [formGroup]=\"formGroup\" [formField]=\"formField\">\n </valtimo-camunda-formfield-validation>\n </div>\n</div>\n","/*\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\nimport {\n ComponentFactoryResolver,\n ComponentRef,\n Directive,\n Input,\n OnInit,\n ViewContainerRef,\n} from '@angular/core';\nimport {FormGroup} from '@angular/forms';\nimport {FormField} from './formfield.model';\nimport {CamundaStringFormfieldComponent} from './string/camunda-string-formfield.component';\nimport {CamundaBooleanFormfieldComponent} from './boolean/camunda-boolean-formfield.component';\nimport {CamundaDateFormfieldComponent} from './date/camunda-date-formfield.component';\nimport {CamundaLongFormfieldComponent} from './long/camunda-long-formfield.component';\nimport {CamundaEnumFormfieldComponent} from './enum/camunda-enum-formfield.component';\nimport {CamundaTextareaFormfieldComponent} from './textarea/camunda-textarea-formfield.component';\nimport {CamundaChoicefieldFormfieldComponent} from './choicefield/camunda-choicefield-formfield.component';\n\n@Directive({\n selector: '[valtimoCamundaFormfieldGenerator]',\n})\nexport class CamundaFormfieldGeneratorDirective implements OnInit {\n @Input() formField: FormField;\n\n @Input() formGroup: FormGroup;\n\n private readonly COMPONENTS = {\n string: CamundaStringFormfieldComponent,\n boolean: CamundaBooleanFormfieldComponent,\n date: CamundaDateFormfieldComponent,\n long: CamundaLongFormfieldComponent,\n enum: CamundaEnumFormfieldComponent,\n textarea: CamundaTextareaFormfieldComponent,\n choicefield: CamundaChoicefieldFormfieldComponent,\n };\n\n private component: ComponentRef<any>;\n\n constructor(\n private viewContainerRef: ViewContainerRef,\n private componentFactoryResolver: ComponentFactoryResolver\n ) {}\n\n ngOnInit(): void {\n const typeName = this.formField.typeName.toLowerCase();\n if (!this.COMPONENTS[typeName]) {\n throw new Error('Could not find component for formfield type: ' + typeName);\n }\n const component = this.COMPONENTS[typeName];\n const factory = this.componentFactoryResolver.resolveComponentFactory(component);\n this.component = this.viewContainerRef.createComponent(factory);\n this.component.instance.formGroup = this.formGroup;\n this.component.instance.formField = this.formField;\n }\n}\n","/*\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\nimport {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport {FormBuilder, FormControl, FormGroup} from '@angular/forms';\nimport {FormField} from './formfield/formfield.model';\nimport {CamundaFormfieldService} from './formfield/camunda-formfield.service';\nimport {Location} from '@angular/common';\n\n@Component({\n selector: 'valtimo-camunda-generated-form',\n templateUrl: './camunda-generated-form.component.html',\n})\nexport class CamundaGeneratedFormComponent implements OnInit {\n @Output() submitted: EventEmitter<any> = new EventEmitter<any>();\n @Input() formFields: FormField[] = [];\n public formGroup: FormGroup;\n\n constructor(\n private formBuilder: FormBuilder,\n private camundaFormFieldService: CamundaFormfieldService,\n private location: Location\n ) {}\n\n ngOnInit(): void {\n this.formGroup = this.createFormGroup();\n }\n\n private createFormGroup() {\n const group = this.formBuilder.group({});\n this.formFields.forEach(formField => {\n const control = new FormControl(\n {\n value: formField.defaultValue,\n disabled: this.camundaFormFieldService.isFormFieldDisabled(formField),\n },\n this.camundaFormFieldService.getValidatorTypes(formField)\n );\n group.addControl(formField.id, control);\n });\n return group;\n }\n\n public reset() {\n this.formGroup.reset();\n }\n\n public back() {\n this.location.back();\n }\n\n public handleSubmit(event) {\n event.preventDefault();\n event.stopPropagation();\n this.submitted.emit(this.formGroup.value);\n }\n}\n","<!--\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<form [formGroup]=\"formGroup\" (ngSubmit)=\"handleSubmit($event)\">\n <ng-container\n *ngFor=\"let formField of formFields\"\n valtimoCamundaFormfieldGenerator\n [formGroup]=\"formGroup\"\n [formField]=\"formField\"\n >\n <ng-content></ng-content>\n </ng-container>\n <div class=\"row pt-3 mt-1\">\n <div class=\"col-sm-12\">\n <div class=\"text-right\">\n <button\n class=\"btn btn-space btn-default float-left\"\n type=\"button\"\n (click)=\"back()\"\n id=\"back-button\"\n >\n Back\n </button>\n <button\n class=\"btn btn-space btn-secondary\"\n type=\"button\"\n (click)=\"reset()\"\n id=\"reset-button\"\n >\n Reset\n </button>\n <button\n class=\"btn btn-space btn-primary\"\n [disabled]=\"!formGroup.disabled && !formGroup.valid\"\n type=\"submit\"\n id=\"submit-button\"\n >\n Submit\n </button>\n </div>\n </div>\n </div>\n</form>\n","/*\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\nimport {\n Component,\n ComponentFactoryResolver,\n Input,\n OnInit,\n Type,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\n\n@Component({\n selector: 'valtimo-custom-form',\n templateUrl: './camunda-custom-form.component.html',\n styleUrls: ['./camunda-custom-form.component.css'],\n})\nexport class CamundaCustomFormComponent implements OnInit {\n @Input() componentName: string;\n @ViewChild('customFormContainer', {read: ViewContainerRef, static: true}) viewContainerRef;\n\n constructor(private resolver: ComponentFactoryResolver) {}\n\n ngOnInit() {\n const factories = Array.from(this.resolver['_factories'].keys());\n const factoryClass = factories.find((x: any) => x.name === this.componentName) as any;\n const cmpFactory = this.resolver.resolveComponentFactory(factoryClass);\n this.viewContainerRef.createComponent(cmpFactory);\n }\n}\n","<!--\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<ng-template #customFormContainer></ng-template>\n","/*\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\nimport {Component, EventEmitter, Input, Output} from '@angular/core';\nimport {FormField} from './generated/formfield/formfield.model';\n\n@Component({\n selector: 'valtimo-camunda-form',\n templateUrl: './camunda-form.component.html',\n})\nexport class CamundaFormComponent {\n @Input() componentName: string;\n @Input() formFields: FormField[];\n @Output() submitted?: EventEmitter<any> = new EventEmitter();\n\n constructor() {}\n\n onSubmitted(event) {\n this.submitted.emit(event);\n }\n}\n","<!--\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<ng-container *ngIf=\"!componentName && submitted\">\n <valtimo-camunda-generated-form\n *ngIf=\"formFields\"\n [formFields]=\"formFields\"\n (submitted)=\"onSubmitted($event)\"\n >\n </valtimo-camunda-generated-form>\n</ng-container>\n<ng-container *ngIf=\"componentName\">\n <valtimo-custom-form [componentName]=\"componentName\"></valtimo-custom-form>\n</ng-container>\n","/*\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\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {CamundaCustomFormComponent} from './camunda-custom-form.component';\n\n@NgModule({\n declarations: [CamundaCustomFormComponent],\n imports: [CommonModule],\n exports: [CamundaCustomFormComponent],\n})\nexport class CamundaCustomFormModule {}\n","/*\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\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {CamundaGeneratedFormComponent} from './camunda-generated-form.component';\nimport {ReactiveFormsModule} from '@angular/forms';\nimport {CamundaStringFormfieldComponent} from './formfield/string/camunda-string-formfield.component';\nimport {CamundaFormfieldGeneratorDirective} from './formfield/camunda-formfield-generator.directive';\nimport {CamundaBooleanFormfieldComponent} from './formfield/boolean/camunda-boolean-formfield.component';\nimport {CamundaDateFormfieldComponent} from './formfield/date/camunda-date-formfield.component';\nimport {CamundaLongFormfieldComponent} from './formfield/long/camunda-long-formfield.component';\nimport {CamundaEnumFormfieldComponent} from './formfield/enum/camunda-enum-formfield.component';\nimport {CamundaTextareaFormfieldComponent} from './formfield/textarea/camunda-textarea-formfield.component';\nimport {CamundaChoicefieldFormfieldComponent} from './formfield/choicefield/camunda-choicefield-formfield.component';\nimport {CamundaFormfieldValidationComponent} from './formfield/validation/camunda-formfield-validation.component';\n\n@NgModule({\n declarations: [\n CamundaStringFormfieldComponent,\n CamundaBooleanFormfieldComponent,\n CamundaDateFormfieldComponent,\n CamundaFormfieldGeneratorDirective,\n CamundaLongFormfieldComponent,\n CamundaEnumFormfieldComponent,\n CamundaTextareaFormfieldComponent,\n CamundaChoicefieldFormfieldComponent,\n CamundaFormfieldValidationComponent,\n CamundaGeneratedFormComponent,\n ],\n imports: [CommonModule, ReactiveFormsModule],\n exports: [CamundaGeneratedFormComponent],\n})\nexport class CamundaGeneratedFormModule {}\n","/*\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\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {CamundaFormComponent} from './camunda-form.components';\nimport {CamundaCustomFormModule} from './custom/camunda-custom-form.module';\nimport {CamundaGeneratedFormModule} from './generated/camunda-generated-form.module';\n\n@NgModule({\n declarations: [CamundaFormComponent],\n imports: [CommonModule, CamundaGeneratedFormModule, CamundaCustomFormModule],\n exports: [CamundaFormComponent],\n})\nexport class CamundaFormModule {}\n","/*\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\nimport {Component, OnInit} from '@angular/core';\nimport {KeycloakService} from 'keycloak-angular';\nimport {from, switchMap, map} from 'rxjs';\nimport {ConfigService} from '@valtimo/config';\n\n@Component({\n selector: 'valtimo-topbar',\n templateUrl: './topbar.component.html',\n styleUrls: ['./topbar.component.scss'],\n})\nexport class TopbarComponent implements OnInit {\n showUserNameInTopBar!: boolean;\n\n readonly userFullName$ = from(this.keyCloakService.isLoggedIn()).pipe(\n switchMap(() => this.keyCloakService.loadUserProfile()),\n map(profile => `${profile.firstName} ${profile.lastName}`)\n );\n\n constructor(\n private readonly keyCloakService: KeycloakService,\n private readonly configService: ConfigService\n ) {}\n\n ngOnInit(): void {\n this.showUserNameInTopBar = this.configService.config.featureToggles?.showUserNameInTopBar;\n }\n}\n","<!--\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<nav class=\"navbar navbar-expand fixed-top be-top-header\">\n <div class=\"container-fluid\">\n <div class=\"be-navbar-header\">\n <a class=\"navbar-brand\" [routerLink]=\"['/']\"></a>\n </div>\n <div class=\"be-right-navbar\">\n <!-- important empty div: in order to made float-right element works on mobile -->\n <div></div>\n <ul class=\"nav navbar-nav be-user-nav float-right be-icons-nav\">\n <ng-container *ngTemplateOutlet=\"userFullName\"></ng-container>\n <li class=\"nav-item dropdown special\">\n <a class=\"nav-link be-toggle-right-sidebar\" href=\"#\" role=\"button\" aria-expanded=\"false\">\n <i class=\"mdi mdi-account-circle user-icon\"></i>\n </a>\n </li>\n </ul>\n </div>\n </div>\n</nav>\n\n<ng-template #userFullName>\n <li class=\"nav-item\" *ngIf=\"showUserNameInTopBar\">\n <div class=\"user-full-name\" *ngIf=\"{userFullName: userFullName$ | async} as obs\">\n <v-paragraph [loading]=\"!obs.userFullName\">{{ obs.userFullName }}</v-paragraph>\n </div>\n </li>\n</ng-template>\n","/*\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\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {TopbarComponent} from './topbar.component';\nimport {RouterModule} from '@angular/router';\nimport {ParagraphModule} from '@valtimo/user-interface';\n\n@NgModule({\n declarations: [TopbarComponent],\n imports: [CommonModule, RouterModule, ParagraphModule],\n exports: [TopbarComponent],\n})\nexport class TopbarModule {}\n","/*\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\nimport {Injectable} from '@angular/core';\nimport {MenuConfig, MenuItem, MenuIncludeService, IncludeFunction} from '@valtimo/config';\nimport {NGXLogger} from 'ngx-logger';\nimport {ConfigService} from '@valtimo/config';\nimport {BehaviorSubject, Observable} from 'rxjs';\nimport {DocumentService} from '@valtimo/document';\nimport {UserProviderService} from '@valtimo/security';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MenuService {\n public includeFunctionObservables: {[key: string]: Observable<boolean>} = {};\n\n private _menuItems$ = new BehaviorSubject<MenuItem[]>(undefined);\n private menuConfig: MenuConfig;\n\n constructor(\n private readonly configService: ConfigService,\n private readonly documentService: DocumentService,\n private readonly userProviderService: UserProviderService,\n private readonly logger: NGXLogger,\n private readonly menuIncludeService: MenuIncludeService\n ) {\n this.menuConfig = configService.config.menu;\n }\n\n init(): void {\n this.reload();\n this.logger.debug('Menu initialized');\n }\n\n public get menuItems$(): Observable<MenuItem[]> {\n return this._menuItems$.asObservable();\n }\n\n public reload(): void {\n return this._menuItems$.next(this.loadMenuItems());\n }\n\n private loadMenuItems(): MenuItem[] {\n let menuItems: MenuItem[] = [];\n this.menuConfig.menuItems.forEach((menuItem: MenuItem) => {\n if (menuItem.includeFunction !== undefined) {\n this.includeFunctionObservables[menuItem.title] =\n this.menuIncludeService.getIncludeFunction(menuItem.includeFunction);\n }\n\n menuItem.show = true;\n menuItems.push(menuItem);\n });\n menuItems = this.sortMenuItems(menuItems);\n this.appendDossierSubMenuItems(menuItems).subscribe(\n value => (menuItems = this.applyMenuRoleSecurity(value))\n );\n return menuItems;\n }\n\n private sortMenuItems(menuItems: MenuItem[]): MenuItem[] {\n return menuItems.sort((a, b) => a.sequence - b.sequence);\n }\n\n private appendDossierSubMenuItems(menuItems: MenuItem[]): Observable<MenuItem[]> {\n return new Observable(subscriber => {\n this.logger.debug('appendDossierSubMenuItems');\n this.documentService.getAllDefinitions().subscribe(definitions => {\n const dossierMenuItems: MenuItem[] = definitions.content.map(\n (definition, index) =>\n ({\n link: ['/dossiers/' + definition.id.name],\n title: definition.schema.title,\n iconClass: 'icon mdi mdi-dot-circle',\n sequence: index,\n show: true,\n } as MenuItem)\n );\n this.logger.debug('found dossierMenuItems', dossierMenuItems);\n const menuItemIndex = menuItems.findIndex(({title}) => title === 'Dossiers');\n if (menuItemIndex > 0) {\n const dossierMenu = menuItems[menuItemIndex];\n this.logger.debug('updating dossierMenu', dossierMenu);\n dossierMenu.children = dossierMenuItems;\n menuItems[menuItemIndex] = dossierMenu;\n }\n subscriber.next(menuItems);\n this.logger.debug('appendDossierSubMenuItems finished');\n });\n });\n }\n\n private applyMenuRoleSecurity(menuItems: MenuItem[]): MenuItem[] {\n this.userProviderService.getUserSubject().subscribe(user => {\n if (user.roles != null) {\n this.logger.debug('applyMenuRoleSecurity');\n const userRoles = user.roles;\n menuItems.forEach((menuItem: MenuItem) => {\n const access = this.determineRoleAccess(menuItem, userRoles);\n this.logger.debug('Menu: check role access', menuItem.roles, access);\n if (menuItem.show !== access) {\n this.logger.debug('Menu: Change access', menuItem, access);\n menuItem.show = access;\n }\n });\n }\n });\n return menuItems;\n }\n\n private determineRoleAccess(menuItem: MenuItem, roles: string[]): boolean {\n if (!menuItem.roles) {\n return true;\n } else if (menuItem.roles.some(role => roles.includes(role))) {\n return true;\n } else {\n return false;\n }\n }\n}\n","/*\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\nimport {RouterModule, Routes} from '@angular/router';\nimport {NgModule} from '@angular/core';\n\nconst routes: Routes = [];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class MenuRoutingModule {}\n","/*\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\nimport {Component, Input} from '@angular/core';\nimport {MenuItem} from '@valtimo/config';\n\n@Component({\n selector: 'valtimo-menu-item-text',\n template: `\n <i\n class=\"{{ menuItem.iconClass }}\"\n container=\"body\"\n placement=\"right\"\n ngbTooltip=\"{{ menuItem.title | translate }}\"\n autoClose=\"true\"\n >\n </i>\n <span\n *ngIf=\"{\n translation: menuItem.title | translate,\n pageTranslation: 'pages.' + menuItem.title.toLowerCase() + '.title' | translate\n } as obs\"\n >{{\n (obs.pageTranslation !== 'pages.' + menuItem.title.toLowerCase() + '.title'\n ? obs.pageTranslation\n : '') ||\n (obs.translation !== menuItem.title ? obs.translation : '') ||\n menuItem.title\n }}</span\n >\n `,\n})\nexport class MenuItemTextComponent {\n @Input() menuItem: MenuItem;\n}\n","/*\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\nimport {Component, Input} from '@angular/core';\nimport {MenuItem} from '@valtimo/config';\n\n@Component({\n selector: 'valtimo-submenu-item-text',\n template: `\n <span\n [ngClass]=\"submenuItem.textClass\"\n *ngIf=\"{\n translation: submenuItem.title | translate,\n pageTranslation: 'pages.' + submenuItem.title.toLowerCase() + '.title' | translate\n } as obs\"\n >\n {{\n (obs.pageTranslation !== 'pages.' + submenuItem.title.toLowerCase() + '.title'\n ? obs.pageTranslation\n : '') ||\n (obs.translation !== submenuItem.title ? obs.translation : '') ||\n submenuItem.title\n }}\n <ng-container *ngIf=\"!submenuItem.link\">&gt;</ng-container>\n </span>\n `,\n})\nexport class SubmenuItemTextComponent {\n @Input() submenuItem: MenuItem;\n}\n","/*\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\nimport {Component, ElementRef, OnDestroy, OnInit, Renderer2} from '@angular/core';\nimport {Event, NavigationEnd, Router} from '@angular/router';\nimport {MenuItem} from '@valtimo/config';\nimport {Observable, Subscription} from 'rxjs';\nimport {MenuService} from './menu.service';\n\n@Component({\n selector: 'valtimo-menu',\n templateUrl: './menu.component.html',\n styleUrls: ['./menu.component.css'],\n})\nexport class MenuComponent implements OnInit, OnDestroy {\n public menuItems: MenuItem[];\n public includeFunctionObservables: {[key: string]: Observable<boolean>} = {};\n private routerSubscription: Subscription;\n private menuItemSubscription: Subscription;\n\n constructor(\n private menuService: MenuService,\n private elRef: ElementRef,\n private renderer: Renderer2,\n private router: Router\n ) {\n this.includeFunctionObservables = this.menuService.includeFunctionObservables;\n }\n\n ngOnInit(): void {\n this.openRouterSubscription();\n this.menuItemSubscription = this.menuService.menuItems$.subscribe(\n value => (this.menuItems = value)\n );\n }\n\n ngOnDestroy(): void {\n this.routerSubscription.unsubscribe();\n this.menuItemSubscription.unsubscribe();\n }\n\n private openRouterSubscription(): void {\n this.routerSubscription = this.router.events.subscribe((event: Event) => {\n if (event instanceof NavigationEnd) {\n this.closeSubMenu();\n }\n });\n }\n\n public closeSubMenu() {\n const visibleSubMenuElm = this.elRef.nativeElement.querySelector('.sub-menu.visible');\n if (visibleSubMenuElm) {\n this.renderer.removeClass(visibleSubMenuElm, 'visible');\n const topLevelMenuItem = this.elRef.nativeElement.querySelector('li.parent.open');\n if (topLevelMenuItem) {\n this.renderer.removeClass(topLevelMenuItem, 'open');\n }\n }\n }\n}\n","<!--\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<ul class=\"sidebar-elements\">\n <ng-container *ngFor=\"let menuItem of menuItems\">\n <li\n [class.parent]=\"menuItem.children\"\n [hidden]=\"!menuItem.show\"\n [routerLinkActive]=\"'active'\"\n [routerLinkActiveOptions]=\"{exact: true}\"\n [ngClass]=\"{\n 'menu-item--hidden': menuItem.includeFunction !== undefined,\n 'menu-item--visible':\n menuItem.includeFunction !== undefined &&\n (includeFunctionObservables[menuItem.title] | async)\n }\"\n >\n <a *ngIf=\"menuItem.link\" [routerLink]=\"menuItem.link\" class=\"sub-item\">\n <valtimo-menu-item-text [menuItem]=\"menuItem\"></valtimo-menu-item-text>\n </a>\n <a *ngIf=\"!menuItem.link\" class=\"sub-item\">\n <valtimo-menu-item-text [menuItem]=\"menuItem\"></valtimo-menu-item-text>\n </a>\n <ng-container *ngIf=\"menuItem.children\">\n <ul class=\"sub-menu\">\n <li class=\"title\">{{ menuItem.title | translate }}</li>\n <li\n *ngFor=\"let subMenuItem of menuItem.children\"\n [routerLinkActive]=\"'active'\"\n [routerLinkActiveOptions]=\"{exact: true}\"\n >\n <a *ngIf=\"subMenuItem.link\" [routerLink]=\"subMenuItem.link\">\n <valtimo-submenu-item-text [submenuItem]=\"subMenuItem\"></valtimo-submenu-item-text>\n </a>\n <a *ngIf=\"!subMenuItem.link\">\n <valtimo-submenu-item-text [submenuItem]=\"subMenuItem\"></valtimo-submenu-item-text>\n </a>\n </li>\n </ul>\n </ng-container>\n </li>\n </ng-container>\n</ul>\n","/*\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\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {MenuComponent} from './menu.component';\nimport {RouterModule} from '@angular/router';\nimport {NgbTooltipModule} from '@ng-bootstrap/ng-bootstrap';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {MenuItemTextComponent} from './menu-item-text.component';\nimport {SubmenuItemTextComponent} from './submenu-item-text.component';\n\n@NgModule({\n declarations: [MenuComponent, MenuItemTextComponent, SubmenuItemTextComponent],\n imports: [CommonModule, RouterModule, NgbTooltipModule, TranslateModule],\n exports: [MenuComponent],\n providers: [],\n})\nexport class MenuModule {}\n","/*\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\nimport {Injector} from '@angular/core';\nimport {NGXLogger} from 'ngx-logger';\nimport {MenuService} from './menu.service';\n\nexport function menuInitializer(injector: Injector, logger: NGXLogger): () => Promise<any> {\n const menuService = injector.get<MenuService>(MenuService);\n return (): Promise<any> =>\n new Promise<void>((resolve, reject) => {\n try {\n logger.debug('menu initializer before init');\n menuService.init();\n logger.debug('menu initializer after init');\n resolve();\n } catch (error) {\n logger.debug('menu initializer error', error);\n reject(error);\n }\n });\n}\n","/*\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\nimport {Injectable} from '@angular/core';\nimport {HttpClient} from '@angular/common/http';\nimport {Observable} from 'rxjs';\nimport {ValtimoVersion} from '../../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class VersionService {\n constructor(private http: HttpClient) {}\n\n public getVersion(): Observable<ValtimoVersion> {\n // TODO: this hardcoded string should be taken care of with the introduction of a config service\n return this.http.get<ValtimoVersion>(`/api/valtimo/version`);\n }\n}\n","/*\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\nimport {HttpClient} from '@angular/common/http';\nimport {Component, OnInit} from '@angular/core';\nimport {FormBuilder, FormControl, FormGroup} from '@angular/forms';\nimport {TranslateService} from '@ngx-translate/core';\nimport {ContextService} from '@valtimo/context';\nimport {ValtimoVersion} from '../../models';\nimport {UserIdentity} from '@valtimo/config';\nimport {UserProviderService} from '@valtimo/security';\nimport {NGXLogger} from 'ngx-logger';\nimport {combineLatest} from 'rxjs';\nimport {VersionService} from '../version/version.service';\n\n@Component({\n selector: 'valtimo-right-sidebar',\n templateUrl: './right-sidebar.component.html',\n styleUrls: ['./right-sidebar.component.css'],\n})\nexport class RightSidebarComponent implements OnInit {\n public userIdentity: UserIdentity;\n public frequencies: Array<any>;\n public settingsForm: FormGroup;\n public build: ValtimoVersion;\n public userContexts: Array<any>;\n public userContextActive: any;\n\n constructor(\n private userProviderService: UserProviderService,\n private formBuilder: FormBuilder,\n private versionService: VersionService,\n public translate: TranslateService,\n private contextService: ContextService,\n private http: HttpClient,\n private logger: NGXLogger\n ) {}\n\n ngOnInit() {\n this.frequencies = [\n 'emailNotificationOnMonday',\n 'emailNotificationOnTuesday',\n 'emailNotificationOnWednesday',\n 'emailNotificationOnThursday',\n 'emailNotificationOnFriday',\n 'emailNotificationOnSaturday',\n 'emailNotificationOnSunday',\n ];\n this.settingsForm = this.formBuilder.group({\n taskNotifications: new FormControl(false),\n emailNotifications: new FormControl(false),\n emailNotificationOnMonday: new FormControl(false),\n emailNotificationOnTuesday: new FormControl(false),\n emailNotificationOnWednesday: new FormControl(false),\n emailNotificationOnThursday: new FormControl(false),\n emailNotificationOnFriday: new FormControl(false),\n emailNotificationOnSaturday: new FormControl(false),\n emailNotificationOnSunday: new FormControl(false),\n });\n this.getUserSettings();\n }\n\n private loadContextSwitch() {\n combineLatest([\n this.contextService.getUserContexts(),\n this.contextService.getUserContextActive(),\n ]).subscribe(([userContexts, userContextActive]) => {\n this.userContextActive = userContextActive;\n this.userContexts = userContexts;\n });\n }\n\n public setUserContext(contextId: number) {\n this.contextService.setUserContext(contextId).subscribe();\n location.href = '/';\n }\n\n public loadUserSettingsTab() {\n this.userProviderService.getEmailNotificationSettings().subscribe(results => {\n if (results !== null) {\n this.settingsForm.controls.taskNotifications.setValue(results.taskNotifications);\n this.settingsForm.controls.emailNotifications.setValue(results.emailNotifications);\n this.settingsForm.controls.emailNotificationOnMonday.setValue(\n results.emailNotificationOnMonday\n );\n this.settingsForm.controls.emailNotificationOnTuesday.setValue(\n results.emailNotificationOnTuesday\n );\n this.settingsForm.controls.emailNotificationOnWednesday.setValue(\n results.emailNotificationOnWednesday\n );\n this.settingsForm.controls.emailNotificationOnThursday.setValue(\n results.emailNotificationOnThursday\n );\n this.settingsForm.controls.emailNotificationOnFriday.setValue(\n results.emailNotificationOnFriday\n );\n this.settingsForm.controls.emailNotificationOnSaturday.setValue(\n results.emailNotificationOnSaturday\n );\n this.settingsForm.controls.emailNotificationOnSunday.setValue(\n results.emailNotificationOnSunday\n );\n } else {\n // default is true in the database, even if api returns no content\n this.settingsForm.controls.taskNotifications.setValue(true);\n }\n });\n this.getVersion();\n }\n\n public getUserSettings() {\n this.userProviderService.getUserSubject().subscribe(userIdentity => {\n this.logger.debug('user', userIdentity);\n this.userIdentity = userIdentity;\n this.loadContextSwitch();\n });\n }\n\n public getVersion() {\n this.versionService.getVersion().subscribe((build: ValtimoVersion) => {\n this.build = build;\n });\n }\n\n onSettingsSubmit() {\n if (!this.settingsForm.pristine) {\n this.userProviderService.updateEmailNotificationSettings(this.settingsForm.value).subscribe();\n }\n }\n\n updateUserLanguage(langKey: string) {\n this.translate.use(langKey).subscribe(() => {\n localStorage.setItem('langKey', langKey);\n });\n }\n\n logout() {\n this.userProviderService.logout();\n }\n}\n","<!--\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<nav class=\"be-right-sidebar\">\n <div class=\"sb-content\">\n <div class=\"tab-navigation\">\n <ul class=\"nav nav-tabs nav-justified\" role=\"tablist\">\n <li class=\"nav-item\" role=\"presentation\">\n <a\n class=\"nav-link active\"\n href=\"#account\"\n aria-controls=\"account\"\n role=\"tab\"\n data-toggle=\"tab\"\n translate=\"account.title\"\n ></a>\n </li>\n <li class=\"nav-item\" role=\"presentation\">\n <a\n class=\"nav-link\"\n (click)=\"loadUserSettingsTab()\"\n href=\"#settings\"\n aria-controls=\"settings\"\n role=\"tab\"\n data-toggle=\"tab\"\n translate=\"settings.title\"\n ></a>\n </li>\n </ul>\n </div>\n <div class=\"tab-panel\">\n <div class=\"tab-content\">\n <!-- account -->\n <div class=\"tab-pane tab-account active\" id=\"account\" role=\"tabpanel\">\n <div class=\"p-3 be-scroller-settings\" *ngIf=\"userIdentity\">\n <div class=\"content\">\n <div class=\"category-title border-0 m-0\">\n <div class=\"p-0 text-muted\">\n <dl class=\"row mb-0\">\n <dt class=\"col-sm-3\">Email</dt>\n <dd class=\"col-sm-9 mb-0 text-bold\">{{ userIdentity.email }}</dd>\n <ng-container *ngIf=\"userIdentity.username\">\n <dt class=\"col-sm-3\">Username</dt>\n <dd class=\"col-sm-9 mb-0 text-bold\">{{ userIdentity.username }}</dd>\n </ng-container>\n <dt class=\"col-sm-3\">Name</dt>\n <dd class=\"col-sm-9 mb-0 text-bold\">\n {{ userIdentity.firstName + ' ' + userIdentity.lastName }}\n </dd>\n </dl>\n </div>\n </div>\n <!-- context switch -->\n <ul class=\"settings-list\" *ngIf=\"userContexts?.length > 1\">\n <li ngbTooltip=\"{{ 'settings.context.title' | translate }}\">\n <select\n class=\"form-control\"\n #contextSelect\n (change)=\"setUserContext(+contextSelect.value)\"\n >\n <option\n *ngFor=\"let context of userContexts\"\n [value]=\"context.id\"\n [selected]=\"context.id === userContextActive.id\"\n >\n {{ context.name }}\n </option>\n </select>\n </li>\n </ul>\n <ul class=\"list-group list-group-flush m-0\">\n <li class=\"bg-transparent list-group-item px-0\">\n <a\n href=\"https://docs.valtimo.nl\"\n target=\"_blank\"\n class=\"d-block\"\n translate=\"account.links.help\"\n ></a>\n </li>\n <li class=\"bg-transparent list-group-item px-0\">\n <a\n href=\"https://www.valtimo.nl/feedback/\"\n target=\"_blank\"\n class=\"d-block\"\n translate=\"account.links.feedback\"\n ></a>\n </li>\n <li class=\"bg-transparent list-group-item px-0\">\n <a\n href=\"https://forum.valtimo.nl\"\n target=\"_blank\"\n class=\"d-block\"\n translate=\"account.links.forum\"\n ></a>\n </li>\n <li class=\"bg-transparent list-group-item px-0\">\n <a\n href=\"javascript:void(0)\"\n class=\"d-block\"\n (click)=\"logout()\"\n translate=\"account.links.signOut\"\n ></a>\n </li>\n </ul>\n </div>\n </div>\n </div>\n\n <!-- settings -->\n <div class=\"tab-pane tab-settings\" id=\"settings\" role=\"tabpanel\">\n <div class=\"p-3 be-scroller-settings\">\n <div class=\"content\">\n <span class=\"category-title\" translate=\"settings.language.title\"></span>\n <ul class=\"settings-list\">\n <li>\n <select\n class=\"form-control\"\n #langSelect\n (change)=\"updateUserLanguage(langSelect.value)\"\n >\n <option\n *ngFor=\"let lang of translate.getLangs()\"\n [value]=\"lang\"\n [selected]=\"lang === translate.currentLang\"\n >\n {{ 'settings.language.options.' + lang | translate }}\n </option>\n </select>\n </li>\n </ul>\n\n <form [formGroup]=\"settingsForm\">\n <span class=\"category-title\" translate=\"settings.notification.title\"></span>\n <ul class=\"settings-list m-0\">\n <li>\n <div class=\"switch-button switch-button-sm switch-button-success\">\n <input\n type=\"checkbox\"\n formControlName=\"taskNotifications\"\n id=\"taskNotifications\"\n (ngModelChange)=\"onSettingsSubmit()\"\n /><span> <label for=\"taskNotifications\"></label></span>\n </div>\n <span class=\"name\" translate=\"settings.notification.taskNotifications\"></span>\n <div\n class=\"text-muted info-text\"\n translate=\"settings.notification.taskNotificationsIntro\"\n ></div>\n </li>\n\n <li>\n <div class=\"switch-button switch-button-sm switch-button-success\">\n <input\n type=\"checkbox\"\n formControlName=\"emailNotifications\"\n id=\"emailNotifications\"\n (ngModelChange)=\"onSettingsSubmit()\"\n /><span> <label for=\"emailNotifications\"></label></span>\n </div>\n <span class=\"name\" translate=\"settings.notification.emailNotifications\"></span>\n <div\n class=\"text-muted info-text\"\n translate=\"settings.notification.emailNotificationsIntro\"\n ></div>\n </li>\n </ul>\n\n <div *ngIf=\"settingsForm.value.emailNotifications\">\n <ul class=\"settings-list\">\n <li *ngFor=\"let frequency of frequencies\">\n <div class=\"switch-button switch-button-sm switch-button-success\">\n <input\n type=\"checkbox\"\n formControlName=\"{{ frequency }}\"\n id=\"{{ frequency }}\"\n (ngModelChange)=\"onSettingsSubmit()\"\n /><span> <label for=\"{{ frequency }}\"></label></span>\n </div>\n <span class=\"name\">{{\n 'settings.notification.' + frequency | translate\n }}</span>\n </li>\n </ul>\n </div>\n </form>\n\n <div class=\"version-holder\">\n <span class=\"category-title\" translate=\"settings.version.title\"></span>\n <ul class=\"settings-list\">\n <li *ngIf=\"build\">\n <div class=\"name\">{{ build.title }}</div>\n <div class=\"text-muted\">{{ build.version }}</div>\n </li>\n </ul>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</nav>\n","/*\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\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {RightSidebarComponent} from './right-sidebar.component';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {RouterModule} from '@angular/router';\nimport {HttpClient} from '@angular/common/http';\nimport {TranslateLoader, TranslateModule} from '@ngx-translate/core';\nimport {HttpLoaderFactory} from '@valtimo/config';\nimport {NgbTooltipModule} from '@ng-bootstrap/ng-bootstrap';\n\n@NgModule({\n declarations: [RightSidebarComponent],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n RouterModule,\n TranslateModule.forRoot({\n loader: {\n provide: TranslateLoader,\n useFactory: HttpLoaderFactory,\n deps: [HttpClient],\n },\n }),\n NgbTooltipModule,\n ],\n exports: [RightSidebarComponent],\n})\nexport class RightSidebarModule {}\n","/*\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\nimport {Component, OnDestroy, OnInit} from '@angular/core';\nimport {ActivatedRoute, NavigationEnd, Router} from '@angular/router';\nimport {Title} from '@angular/platform-browser';\nimport {filter} from 'rxjs/operators';\nimport {BehaviorSubject, combineLatest, Subscription} from 'rxjs';\nimport {TranslateService} from '@ngx-translate/core';\nimport {NGXLogger} from 'ngx-logger';\n\n@Component({\n selector: 'valtimo-page-title',\n templateUrl: './page-title.component.html',\n styleUrls: ['./page-title.component.css'],\n})\nexport class PageTitleComponent implements OnInit, OnDestroy {\n public appTitle = 'Valtimo';\n readonly translatedTitle$ = new BehaviorSubject<string>('');\n private routerTranslateSubscription!: Subscription;\n\n constructor(\n private router: Router,\n private activatedRoute: ActivatedRoute,\n private titleService: Title,\n private translateService: TranslateService,\n private logger: NGXLogger\n ) {}\n\n ngOnInit() {\n this.openRouterTranslateSubscription();\n }\n\n ngOnDestroy() {\n this.routerTranslateSubscription?.unsubscribe();\n }\n\n private openRouterTranslateSubscription(): void {\n this.routerTranslateSubscription = combineLatest([\n this.router.events,\n this.translateService.stream('key'),\n ]).subscribe(() => {\n const routeTitle =\n this.activatedRoute?.snapshot?.firstChild?.data?.title ||\n this.activatedRoute?.snapshot?.firstChild?.children[0]?.data?.title;\n const routeTitleTranslation = this.translateService.instant(routeTitle);\n const routeTitlePageTranslationString = `pages.${routeTitle.toLowerCase()}.title`;\n const routeTitlePageTranslation = this.translateService.instant(\n routeTitlePageTranslationString\n );\n const translatedRouteTitle =\n routeTitle &&\n ((routeTitlePageTranslation !== routeTitlePageTranslationString\n ? routeTitlePageTranslation\n : '') ||\n (routeTitle !== routeTitleTranslation ? routeTitleTranslation : '') ||\n routeTitle);\n\n if (translatedRouteTitle) {\n this.logger.debug('PageTitle: setTitle translated async', translatedRouteTitle);\n this.translatedTitle$.next(translatedRouteTitle);\n this.titleService.setTitle(this.appTitle + ' - ' + translatedRouteTitle);\n } else {\n this.logger.debug('PageTitle: setTitle default', this.appTitle);\n this.translatedTitle$.next('');\n this.titleService.setTitle(this.appTitle);\n }\n });\n }\n}\n","<!--\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<ng-container *ngIf=\"{title: translatedTitle$ | async} as obs\">\n <h2 class=\"page-head-title\" *ngIf=\"obs.title !== ''\"><span [innerHTML]=\"obs.title\"></span></h2>\n</ng-container>\n","/*\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\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {TranslateService} from '@ngx-translate/core';\nimport {BehaviorSubject, combineLatest, fromEvent, Subscription} from 'rxjs';\nimport {debounceTime, map, take} from 'rxjs/operators';\nimport {ConfigService, CustomLeftSidebar} from '@valtimo/config';\n\n@Component({\n selector: 'valtimo-left-sidebar',\n templateUrl: './left-sidebar.component.html',\n styleUrls: ['./left-sidebar.component.css'],\n})\nexport class LeftSidebarComponent implements OnInit, AfterViewInit, OnDestroy {\n @ViewChild('toggleButton') toggleButtonRef: ElementRef;\n\n @Input() menuIsOpen: boolean;\n @Output() menuWidthChanged: EventEmitter<number> = new EventEmitter();\n\n readonly menuTooltipText$ = this.translateService.stream('interface.mainMenu');\n readonly toggleMenuText$ = this.translateService.stream('interface.toggleMenu');\n\n readonly mouseIsOnResizeBorder$ = new BehaviorSubject<boolean>(false);\n readonly menuWidth$ = new BehaviorSubject<number>(undefined);\n readonly isResizing$ = new BehaviorSubject<boolean>(false);\n\n private bodyStyle: any;\n\n private xOnClick: number;\n private menuWidthOnClick: number;\n\n private mouseXSubscription: Subscription;\n private mouseUpSubscription: Subscription;\n\n private defaultMenuWidth!: number;\n private maxMenuWidth!: number;\n private minMenuWidth!: number;\n\n private readonly mouseX$ = fromEvent(document.body, 'mousemove').pipe(\n map((e: MouseEvent) => e.pageX)\n );\n\n constructor(\n private translateService: TranslateService,\n private readonly elementRef: ElementRef,\n private readonly configService: ConfigService\n ) {\n this.bodyStyle = elementRef.nativeElement.ownerDocument.body.style;\n }\n\n ngOnInit(): void {\n const customLeftSidebar = this.configService.config.customLeftSidebar;\n\n this.setInitialWidth(customLeftSidebar);\n }\n\n ngAfterViewInit(): void {\n this.mouseXSubscription = combineLatest([this.mouseX$, this.isResizing$])\n .pipe(debounceTime(3))\n .subscribe(([x, isResizing]) => {\n const menuOpen = this.menuIsOpen;\n\n if (isResizing) {\n const offSetWidth = this.xOnClick - x;\n const newMenuWidth = this.menuWidthOnClick - offSetWidth;\n const snapMargin = 35;\n const snapInside = newMenuWidth < this.minMenuWidth - snapMargin;\n const snapOutside = !menuOpen && offSetWidth < -snapMargin;\n\n if (menuOpen && newMenuWidth <= this.maxMenuWidth && newMenuWidth >= this.minMenuWidth) {\n this.setMenuWidth(newMenuWidth);\n } else if (snapInside || snapOutside) {\n this.snapMenu(snapInside ? this.menuWidthOnClick : this.defaultMenuWidth);\n }\n }\n });\n\n this.mouseUpSubscription = fromEvent(document, 'mouseup').subscribe(() => {\n this.stopResizing();\n });\n }\n\n ngOnDestroy(): void {\n this.mouseXSubscription.unsubscribe();\n this.mouseUpSubscription.unsubscribe();\n }\n\n enterBorder(): void {\n this.mouseIsOnResizeBorder$.next(true);\n }\n\n leaveBorder(): void {\n this.mouseIsOnResizeBorder$.next(false);\n }\n\n resizeBorderClick(e: MouseEvent): void {\n this.menuWidth$.pipe(take(1)).subscribe(menuWidth => {\n this.menuWidthOnClick = menuWidth;\n this.xOnClick = e.pageX;\n this.bodyStyle.userSelect = 'none';\n this.bodyStyle.cursor = 'col-resize';\n this.isResizing$.next(true);\n });\n }\n\n private setInitialWidth(customLeftSidebar: CustomLeftSidebar | undefined): void {\n const localMenuWidth = localStorage.getItem('menuWidth');\n const localMenuWidthNumber = localMenuWidth ? Number(localMenuWidth) : undefined;\n\n this.defaultMenuWidth = localMenuWidthNumber || customLeftSidebar?.defaultMenuWidth || 230;\n this.maxMenuWidth = customLeftSidebar?.maxMenuWidth || 330;\n this.minMenuWidth = customLeftSidebar?.minMenuWidth || 120;\n this.setMenuWidth(this.defaultMenuWidth);\n }\n\n private snapMenu(snapTo: number): void {\n this.stopResizing();\n this.setMenuWidth(snapTo);\n setTimeout(() => {\n this.toggleButtonRef.nativeElement.click();\n });\n }\n\n private stopResizing(): void {\n this.bodyStyle.cursor = 'auto';\n this.bodyStyle.userSelect = 'auto';\n this.isResizing$.next(false);\n localStorage.setItem('menuWidth', this.menuWidth$.getValue().toString());\n }\n\n private setMenuWidth(width: number): void {\n this.menuWidth$.next(width);\n this.menuWidthChanged.emit(width);\n }\n}\n","<!--\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<ng-container *ngIf=\"{isResizing: isResizing$ | async} as obs\">\n <div\n class=\"be-left-sidebar\"\n [style.width.px]=\"menuIsOpen ? (menuWidth$ | async) : null\"\n [ngClass]=\"{'no-transition': obs.isResizing}\"\n >\n <div class=\"left-sidebar-wrapper\">\n <a class=\"left-sidebar-toggle\" href=\"javascript:void(0);\"\n ><valtimo-page-title></valtimo-page-title\n ></a>\n <div class=\"progress-widget\" style=\"padding: 20px 0\">\n <ul class=\"sidebar-elements\">\n <li>\n <a\n #toggleButton\n class=\"be-toggle-left-sidebar\"\n href=\"javascript:void(0);\"\n [title]=\"menuTooltipText$ | async\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n width=\"1em\"\n height=\"1em\"\n style=\"-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg)\"\n viewBox=\"0 0 24 24\"\n transform=\"rotate(360)\"\n >\n <path [ngClass]=\"menuIsOpen ? 'd-1' : 'd-1-flipped'\" />\n <path [ngClass]=\"menuIsOpen ? 'd-2' : 'd-2-flipped'\" />\n <path [ngClass]=\"menuIsOpen ? 'd-3' : 'd-3-flipped'\" />\n <path [ngClass]=\"menuIsOpen ? 'd-4' : 'd-4-flipped'\" />\n </svg>\n <span>{{ toggleMenuText$ | async }}</span>\n </a>\n </li>\n </ul>\n </div>\n <div class=\"left-sidebar-spacer\">\n <div class=\"left-sidebar-scroll\">\n <div class=\"left-sidebar-content\">\n <valtimo-menu></valtimo-menu>\n </div>\n </div>\n </div>\n </div>\n <div\n class=\"resize-border\"\n (mouseenter)=\"enterBorder()\"\n (mouseleave)=\"leaveBorder()\"\n (mousedown)=\"resizeBorderClick($event)\"\n [ngClass]=\"{'resize-hover': (mouseIsOnResizeBorder$ | async) || obs.isResizing}\"\n ></div>\n </div>\n</ng-container>\n","/*\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\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {PageTitleComponent} from './page-title.component';\nimport {TranslateModule} from '@ngx-translate/core';\n\n@NgModule({\n declarations: [PageTitleComponent],\n imports: [CommonModule, TranslateModule],\n exports: [PageTitleComponent],\n})\nexport class PageTitleModule {}\n","/*\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\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {LeftSidebarComponent} from './left-sidebar.component';\nimport {PageTitleModule} from '../page-title/page-title.module';\nimport {MenuModule} from '../menu/menu.module';\n\n@NgModule({\n declarations: [LeftSidebarComponent],\n imports: [CommonModule, MenuModule, PageTitleModule],\n exports: [LeftSidebarComponent],\n})\nexport class LeftSidebarModule {}\n","/*\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\nimport {TypeConverter} from './type-converters.model';\n\nexport class StringTypeConverter implements TypeConverter {\n getTypeString(): string {\n return 'string';\n }\n\n convert(value: any, definition: any): string {\n return value;\n }\n}\n","/*\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\nimport {TypeConverter} from './type-converters.model';\n\nexport class BooleanTypeConverter implements TypeConverter {\n getTypeString(): string {\n return 'boolean';\n }\n\n convert(value: any, definition: any): string {\n if (!definition.enum) {\n return value ? 'Yes' : 'No';\n } else {\n return value ? definition.enum[0] || 'Yes' : definition.enum[1] || 'No';\n }\n }\n}\n","/*\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\nimport {TypeConverter} from './type-converters.model';\nimport moment from 'moment';\n\nmoment.locale(localStorage.getItem('langKey'));\n\nexport class DateTypeConverter implements TypeConverter {\n getTypeString(): string {\n return 'date';\n }\n\n convert(value: any, definition: any): string {\n if (!value) {\n return '-';\n }\n\n return moment(value).format(definition?.format || 'DD-MM-YYYY, hh:mm A');\n }\n}\n","/*\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\nimport {TypeConverter} from './type-converters.model';\n\nexport class EnumTypeConverter implements TypeConverter {\n getTypeString(): string {\n return 'enum';\n }\n\n convert(value: any, definition: any): string {\n return definition.enum[value];\n }\n}\n","/*\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\nimport {TypeConverter} from './type-converters.model';\n\nexport class StringReplaceUnderscoreTypeConverter implements TypeConverter {\n public regExpStringRemoveUnderscore = /_/g;\n\n getTypeString(): string {\n return 'stringReplaceUnderscore';\n }\n\n convert(value: any, definition: any): string {\n return value.replace(this.regExpStringRemoveUnderscore, ' ');\n }\n}\n","/*\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\nimport {TypeConverter} from './type-converters.model';\n\nexport class RelatedFilesTypeConverter implements TypeConverter {\n getTypeString(): string {\n return 'relatedFiles';\n }\n\n convert(value: any, definition: any): string {\n return value.length || '-';\n }\n}\n","/*\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\nimport {StringTypeConverter} from './stringTypeConverter';\nimport {BooleanTypeConverter} from './booleanTypeConverter';\nimport {DateTypeConverter} from './dateTypeConverter';\nimport {EnumTypeConverter} from './enumTypeConverter';\nimport {StringReplaceUnderscoreTypeConverter} from './stringReplaceUnderscoreTypeConverter';\nimport {RelatedFilesTypeConverter} from './relatedFilesTypeConverter';\n\nconst stringTypeConverter = new StringTypeConverter();\nconst booleanTypeConverter = new BooleanTypeConverter();\nconst dateTypeConverter = new DateTypeConverter();\nconst enumTypeConverter = new EnumTypeConverter();\nconst stringReplaceUnderscoreTypeConverter = new StringReplaceUnderscoreTypeConverter();\nconst relatedFilesTypeConverter = new RelatedFilesTypeConverter();\n\n// TODO: Via injection\nexport const TYPE_CONVERTERS: Array<TypeConverter> = [\n stringTypeConverter,\n booleanTypeConverter,\n dateTypeConverter,\n enumTypeConverter,\n stringReplaceUnderscoreTypeConverter,\n relatedFilesTypeConverter,\n];\n\nexport interface TypeConverter {\n getTypeString(): string;\n\n convert(value: any, definition: any): string;\n}\n","/*\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\nimport {Injectable} from '@angular/core';\nimport {StringTypeConverter} from './type-converters/stringTypeConverter';\nimport {TYPE_CONVERTERS, TypeConverter} from './type-converters/type-converters.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ViewContentService {\n private converters: {[key: string]: TypeConverter} = {};\n private defaultConverter: TypeConverter;\n\n constructor() {\n this.defaultConverter = new StringTypeConverter();\n\n TYPE_CONVERTERS.forEach(converter => this.addConverter(converter));\n }\n\n public get(value: any, definition: any) {\n const separator = ':';\n if (!definition.viewType) {\n definition.viewType = typeof value;\n }\n\n if (definition.viewType.includes(separator)) {\n // Get the substring of the string after the separator (:) and assign it to a new key\n definition.format = definition.viewType.slice(\n this.getSeparatorIndex(definition, separator) + 1\n );\n\n // Remove the substring after the separator and the separator from the string and assign it back to the viewType\n definition.viewType = definition.viewType.slice(\n 0,\n this.getSeparatorIndex(definition, separator)\n );\n }\n\n if (typeof this.converters[definition.viewType] !== 'undefined') {\n return this.converters[definition.viewType].convert(value, definition);\n } else {\n return this.defaultConverter.convert(value, definition);\n }\n }\n\n public addConverter(converter: TypeConverter) {\n if (typeof this.converters[converter.getTypeString()] !== 'undefined') {\n throw new Error('Converter with name ' + converter.getTypeString() + ' already exists');\n }\n\n this.converters[converter.getTypeString()] = converter;\n }\n\n getSeparatorIndex(definition, separator) {\n return definition.viewType.indexOf(separator);\n }\n}\n","/*\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\nimport {Pipe, PipeTransform} from '@angular/core';\n\n@Pipe({\n name: 'listFilter',\n})\nexport class ListFilterPipe implements PipeTransform {\n transform(list: any[], filterText: string): any {\n list = list || [];\n if (!filterText) {\n return list;\n }\n return list.filter(item =>\n Object.keys(item).some(\n k => item[k] != null && item[k].toString().toLowerCase().includes(filterText.toLowerCase())\n )\n );\n }\n}\n","/*\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\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport {Direction, SortState} from '@valtimo/document';\nimport {NGXLogger} from 'ngx-logger';\nimport {BehaviorSubject, fromEvent} from 'rxjs';\nimport {debounceTime, take} from 'rxjs/operators';\nimport {ViewContentService} from '../view-content/view-content.service';\n\n@Component({\n selector: 'valtimo-list',\n templateUrl: './list.component.html',\n styleUrls: ['./list.component.scss'],\n})\nexport class ListComponent implements OnChanges, OnInit, AfterViewInit {\n private static PAGINATION_SIZE = 'PaginationSize';\n\n @Input() items: Array<any>;\n @Input() fields: Array<any>;\n @Input() pagination?: any;\n @Input() viewMode?: boolean;\n @Input() isSearchable?: boolean;\n @Input() header?: boolean;\n @Input() actions: any[] = [];\n @Input() paginationIdentifier?: string;\n @Input() initialSortState: SortState;\n @Input() lastColumnTemplate?: TemplateRef<any>;\n\n @Output() rowClicked: EventEmitter<any> = new EventEmitter();\n @Output() paginationClicked: EventEmitter<any> = new EventEmitter();\n @Output() paginationSet: EventEmitter<any> = new EventEmitter();\n @Output() search: EventEmitter<any> = new EventEmitter();\n @Output() sortChanged: EventEmitter<SortState> = new EventEmitter();\n\n public headerProvided = false;\n public viewListAs: string;\n public searchModel: string;\n public regExpStringRemoveUnderscore = /_/g;\n @ViewChild('searchBox') searchBox: ElementRef;\n\n readonly sort$ = new BehaviorSubject<SortState>({\n state: {name: '', direction: 'DESC'},\n isSorting: false,\n });\n\n constructor(private viewContentService: ViewContentService, private logger: NGXLogger) {\n this.viewListAs = localStorage.getItem('viewListAs') || 'table';\n }\n\n loadPaginationSize(): void {\n const entries = localStorage.getItem(\n `${this.paginationIdentifier}${ListComponent.PAGINATION_SIZE}`\n );\n if (entries !== null) {\n this.pagination.size = +entries;\n this.paginationSet.emit(+entries);\n this.logger.debug('Pagination loaded from local storage for this list. Current: ', entries);\n } else {\n this.logger.debug(\n 'Pagination does NOT exist in local storage for this list. Will use default. Change it to create an entry.'\n );\n this.paginationSet.emit(10);\n }\n }\n\n setPaginationSize(numberOfEntries: string) {\n localStorage.setItem(\n `${this.paginationIdentifier}${ListComponent.PAGINATION_SIZE}`,\n numberOfEntries\n );\n this.pagination.size = numberOfEntries;\n this.logger.debug('Pagination set in local storage for this list: ', numberOfEntries);\n this.paginationSet.emit(numberOfEntries);\n }\n\n ngOnInit() {\n if (this.pagination) {\n this.loadPaginationSize();\n }\n\n if (this.initialSortState) {\n this.sort$.next(this.initialSortState);\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.items && changes.items.currentValue) {\n this.transformListItemsMatchFields();\n }\n\n if (changes?.initialSortState?.currentValue) {\n this.sort$.next(changes?.initialSortState?.currentValue);\n }\n }\n\n ngAfterViewInit() {\n if (this.isSearchable) {\n fromEvent(this.searchBox.nativeElement, 'keyup')\n .pipe(debounceTime(500))\n .subscribe(() => {\n const value = this.searchBox.nativeElement.value;\n if (this.search.observers.length > 0) {\n // custom search callbak is specified, perhaps to query on the server side\n this.search.emit(value);\n } else {\n this.searchModel = value;\n }\n });\n }\n }\n\n public transformListItemsMatchFields() {\n if (this.items && this.fields) {\n this.items.forEach(item => {\n item.listItemFields = this.fields.map(field => ({\n key: field.key,\n label: field.label,\n type: field.type || '',\n value: this.resolveObject(field, item),\n }));\n });\n }\n }\n\n public onClickRow(item) {\n this.rowClicked.emit(item);\n }\n\n public resolveObject(definition: any, obj: any) {\n const definitionKey = definition.key;\n const customPropString = '$.';\n const key = definitionKey.includes(customPropString)\n ? definitionKey.split(customPropString)[1]\n : definitionKey;\n const resolvedObjValue = key.split('.').reduce(function (prev, curr) {\n return prev ? prev[curr] : null;\n }, obj || self);\n return this.viewContentService.get(resolvedObjValue, definition);\n }\n\n public switchView(type) {\n localStorage.setItem('viewListAs', type);\n this.viewListAs = type;\n }\n\n public getTotalPageCount() {\n return Math.ceil(this.pagination.collectionSize / this.pagination.size);\n }\n\n public onClickPagination(page) {\n this.paginationClicked.emit(page);\n }\n\n public handleFieldClick(key: string, sortable: boolean): void {\n const desc: Direction = 'DESC';\n const asc: Direction = 'ASC';\n\n if (!sortable) {\n return;\n }\n\n this.sort$.pipe(take(1)).subscribe(sort => {\n let newState: SortState;\n\n if (sort.state.name === key) {\n if (!sort.isSorting) {\n newState = {state: {...sort.state, direction: desc}, isSorting: true};\n } else {\n if (sort.state.direction === desc) {\n newState = {...sort, state: {...sort.state, direction: asc}};\n } else {\n newState = {state: {...sort.state, direction: desc}, isSorting: false};\n }\n }\n } else {\n newState = {state: {name: key, direction: desc}, isSorting: true};\n }\n\n this.sort$.next(newState);\n this.sortChanged.emit(newState);\n });\n }\n}\n","<!--\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=\"(items?.length > 0 && fields?.length > 0) || header\">\n <div\n class=\"d-flex align-items-center search-holder bg-light\"\n [ngClass]=\"{'pb-4 pt-4': !header}\"\n *ngIf=\"isSearchable || viewMode || header\"\n >\n <div class=\"align-self-start\">\n <ng-content select=\"[header]\"></ng-content>\n </div>\n\n <div class=\"ml-auto row\">\n <input\n *ngIf=\"isSearchable\"\n class=\"form-control col-sm-8\"\n type=\"text\"\n placeholder=\"{{ 'list.search' | translate }}\"\n #searchBox\n />\n\n <div\n class=\"switch-view-holder btn-group col-sm-4 mt-1 mt-sm-0\"\n role=\"group\"\n *ngIf=\"viewMode\"\n >\n <button\n class=\"btn\"\n [ngClass]=\"viewListAs === 'table' ? 'btn-primary' : 'btn-default'\"\n (click)=\"switchView('table')\"\n >\n <i class=\"icon mdi mdi-view-headline view-icon\"></i>\n </button>\n <button\n class=\"btn\"\n [ngClass]=\"viewListAs === 'tile' ? 'btn-primary' : 'btn-default'\"\n (click)=\"switchView('tile')\"\n >\n <i class=\"icon mdi mdi-view-module view-icon\"></i>\n </button>\n </div>\n </div>\n </div>\n </div>\n\n <ng-content select=\"[tabs]\"></ng-content>\n\n <div *ngIf=\"items?.length > 0 && fields?.length > 0\">\n <div class=\"table-responsive noSwipe\" *ngIf=\"!viewMode || viewListAs === 'table'\">\n <table class=\"table table-striped table-hover m-0\" *ngIf=\"sort$ | async as sort\">\n <thead>\n <tr>\n <th\n *ngFor=\"let field of fields\"\n (click)=\"handleFieldClick(field.key, field.sortable)\"\n [ngClass]=\"{\n sortable: field.sortable,\n 'is-being-sorted': field.key === sort.state.name && sort.isSorting,\n ascending: sort.state.direction === 'ASC'\n }\"\n >\n {{ field.label }}\n </th>\n <th *ngFor=\"let action of actions\">\n {{ action.columnName }}\n </th>\n </tr>\n </thead>\n <tbody>\n <tr\n [ngClass]=\"{'click-able': this.rowClicked.observers.length > 0}\"\n *ngFor=\"let item of items | listFilter: searchModel; let i = index\"\n (click)=\"onClickRow(item)\"\n >\n <td class=\"align-top\" *ngFor=\"let listItemField of item.listItemFields\">\n <ng-container *ngIf=\"listItemField.type === ''\">\n {{ listItemField.value || '-' }}\n </ng-container>\n\n <ng-container\n *ngIf=\"listItemField.type === 'dropdownActions'\"\n [ngTemplateOutlet]=\"dropdownActions\"\n [ngTemplateOutletContext]=\"{listItemField: listItemField, item: item}\"\n ></ng-container>\n </td>\n <td class=\"align-top\" *ngFor=\"let action of actions\">\n <i\n class=\"action-icon\"\n style=\"cursor: pointer\"\n [ngClass]=\"action.iconClass\"\n (click)=\"action.callback(item, $event)\"\n ></i>\n </td>\n <td *ngIf=\"lastColumnTemplate\">\n <ng-container\n *ngTemplateOutlet=\"lastColumnTemplate; context: {index: i, length: items.length}\"\n ></ng-container>\n </td>\n </tr>\n <tr>\n <td *ngIf=\"(items | listFilter: searchModel).length === 0\" [colSpan]=\"fields.length\">\n {{ 'list.noMatchingItems' | translate }}<i>\"{{ searchModel }}\"</i>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n\n <div class=\"container-fluid\" *ngIf=\"viewMode && viewListAs === 'tile'\">\n <div class=\"row p-2\">\n <div\n class=\"col-12 col-sm-6 col-xl-4 p-2\"\n *ngFor=\"let item of items | listFilter: searchModel\"\n (click)=\"onClickRow(item)\"\n >\n <div class=\"click-able tile-holder p-4\">\n <dl class=\"row mb-0\" *ngFor=\"let listItemField of item.listItemFields\">\n <dt class=\"col-12 col-md-5 text-xl-right\">{{ listItemField.label }}</dt>\n <dd class=\"col-12 col-md-7\">{{ listItemField.value || '-' }}</dd>\n </dl>\n </div>\n </div>\n <div class=\"col-12\" *ngIf=\"(items | listFilter: searchModel).length === 0\">\n {{ 'list.noMatchingItems' | translate }}<i>\"{{ searchModel }}\"</i>\n </div>\n </div>\n </div>\n </div>\n\n <div\n class=\"pagination-holder bg-light px-4 pt-4 pb-2 overflow-auto row mr-0 ml-0\"\n *ngIf=\"pagination && items?.length > 0 && fields?.length > 0\"\n >\n <div class=\"float-left page-count col-4\">\n <strong>{{\n 'list.currentPage' | translate: {current: pagination.page, total: getTotalPageCount()}\n }}</strong>\n <br />\n {{\n pagination.collectionSize === 1\n ? ('list.showingResult' | translate: {number: (items | listFilter: searchModel).length})\n : ('list.showingResults'\n | translate\n : {\n number: (items | listFilter: searchModel).length,\n total: pagination.collectionSize\n })\n }}\n </div>\n <div class=\"col-4 text-center\">\n {{ 'list.show' | translate }}\n <select [(ngModel)]=\"pagination.size\" (ngModelChange)=\"setPaginationSize($event)\">\n <option [ngValue]=\"10\">10</option>\n <option [ngValue]=\"25\">25</option>\n <option [ngValue]=\"50\">50</option>\n <option [ngValue]=\"100\">100</option>\n </select>\n {{ 'list.entries' | translate }}\n </div>\n <div class=\"col-4\">\n <ngb-pagination\n *ngIf=\"pagination.collectionSize > pagination.size\"\n class=\"float-right\"\n [collectionSize]=\"pagination.collectionSize\"\n [(page)]=\"pagination.page\"\n [pageSize]=\"pagination.size\"\n [maxSize]=\"pagination.maxPaginationItemSize\"\n [rotate]=\"true\"\n (pageChange)=\"onClickPagination(pagination.page)\"\n ></ngb-pagination>\n </div>\n </div>\n\n <div id=\"no-results\" class=\"p-5\" *ngIf=\"items?.length === 0\">\n {{ 'list.noResults' | translate }}\n </div>\n\n <div id=\"no-field-definitions\" class=\"p-5\" *ngIf=\"items?.length > 0 && fields?.length === 0\">\n {{ 'list.noFieldDefinitions' | translate }}\n </div>\n</div>\n\n<ng-template #dropdownActions let-listItemField=\"listItemField\" let-item=\"item\">\n <div class=\"dropdown\" *ngIf=\"listItemField?.value.length > 0\">\n <a\n style=\"cursor: pointer\"\n class=\"dropdown-toggle d-block\"\n id=\"dropdownMenu\"\n data-toggle=\"dropdown\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n >\n <i class=\"action-icon icon mdi mdi-dots-vertical\"></i>\n </a>\n <div class=\"dropdown-menu\" aria-labelledby=\"dropdownMenu\">\n <a\n (click)=\"action.callback(item, $event)\"\n class=\"dropdown-item p-2\"\n *ngFor=\"let action of listItemField.value\"\n >\n <ng-container *ngIf=\"action.iconClass !== null\">\n <i [ngClass]=\"action.iconClass\"></i>\n </ng-container>\n {{ action?.label || '-' }}\n </a>\n </div>\n </div>\n</ng-template>\n","/*\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\nimport {Component, Input, OnInit} from '@angular/core';\n\n/**\n * Component used to display a card element\n */\n@Component({\n selector: 'valtimo-card',\n templateUrl: './card.component.html',\n styleUrls: ['./card.component.css'],\n})\nexport class CardComponent implements OnInit {\n /**\n * The main title used on the card\n */\n @Input() title?: string;\n\n /**\n * The smaller font size sub title used on the card\n */\n @Input() subtitle?: string;\n\n constructor() {}\n\n ngOnInit() {}\n}\n","<!--\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 class=\"card card-border-color card-border-color-primary\">\n <div *ngIf=\"title || subtitle\" class=\"card-header card-header-divider\">\n <span *ngIf=\"title\">{{ title }}</span>\n <span *ngIf=\"subtitle\" class=\"card-subtitle\">{{ subtitle }}</span>\n </div>\n <div class=\"card-body\">\n <ng-content></ng-content>\n </div>\n</div>\n","/*\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\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {CardComponent} from './card.component';\n\n@NgModule({\n declarations: [CardComponent],\n imports: [CommonModule],\n exports: [CardComponent],\n})\nexport class CardModule {}\n","/*\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\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {NgbPaginationModule} from '@ng-bootstrap/ng-bootstrap';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {CardModule} from '../card/card.module';\nimport {ListComponent} from './list.component';\nimport {ListFilterPipe} from './ListFilterPipe.directive';\n\n@NgModule({\n declarations: [ListComponent, ListFilterPipe],\n imports: [CommonModule, CardModule, NgbPaginationModule, FormsModule, TranslateModule],\n exports: [ListComponent, ListFilterPipe],\n})\nexport class ListModule {}\n","/*\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\nimport {Component, OnDestroy, OnInit} from '@angular/core';\nimport {ActivatedRoute, NavigationEnd, PRIMARY_OUTLET, Router} from '@angular/router';\nimport {filter, map} from 'rxjs/operators';\nimport {Subscription} from 'rxjs';\n\n@Component({\n selector: 'valtimo-breadcrumb-navigation',\n templateUrl: './breadcrumb-navigation.component.html',\n styleUrls: ['./breadcrumb-navigation.component.css'],\n})\nexport class BreadcrumbNavigationComponent implements OnInit, OnDestroy {\n public breadcrumbs: Array<any> = [];\n public appTitle = 'Valtimo';\n private routerSub = Subscription.EMPTY;\n\n constructor(private router: Router, private route: ActivatedRoute) {}\n\n ngOnInit() {\n this.setBreadcrumbs(this.route);\n this.routerSub = this.router.events\n .pipe(filter(event => event instanceof NavigationEnd))\n .pipe(map(() => this.route))\n .pipe(\n map(route => {\n while (route.firstChild) {\n route = route.firstChild;\n }\n return route;\n })\n )\n .pipe(filter(route => route.outlet === PRIMARY_OUTLET))\n .subscribe(route => {\n this.setBreadcrumbs(route);\n });\n }\n\n private setBreadcrumbs(route: ActivatedRoute) {\n while (route.firstChild) {\n route = route.firstChild;\n }\n if (route.outlet === PRIMARY_OUTLET) {\n const snapshot = route.snapshot;\n const activeRoute = {\n url: snapshot.url.join('/'),\n path: snapshot.routeConfig.path,\n label: snapshot.data['title'],\n params: snapshot.params,\n };\n this.generateBreadcrumbs(activeRoute);\n }\n }\n\n private generateBreadcrumbs(activeBreadcrumb: any) {\n this.breadcrumbs = [];\n this.router.config.map(routerConfig => {\n if (\n activeBreadcrumb.path.indexOf(routerConfig.path + '/') === 0 &&\n activeBreadcrumb.path !== routerConfig.path &&\n routerConfig.path !== ''\n ) {\n const parentRoute = {\n url: routerConfig.path.replace(/:(.+?)\\b/g, (_, p1) => activeBreadcrumb.params[p1]),\n path: routerConfig.path,\n label: routerConfig.data['title'],\n params: activeBreadcrumb.params,\n };\n const exist = this.breadcrumbs.findIndex(item => item.url === parentRoute.url);\n if (exist === -1) {\n this.breadcrumbs.push(parentRoute);\n }\n }\n });\n }\n\n ngOnDestroy() {\n this.routerSub.unsubscribe();\n }\n}\n","<!--\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<nav aria-label=\"breadcrumb\" role=\"navigation\">\n <ol class=\"breadcrumb page-head-nav\">\n <li class=\"breadcrumb-item\">\n <a [routerLink]=\"['/']\">{{ appTitle }}</a>\n </li>\n <li class=\"breadcrumb-item\" *ngFor=\"let item of breadcrumbs\">\n <a [routerLink]=\"[item.url]\">{{ item.label | translate }}</a>\n </li>\n </ol>\n</nav>\n","/*\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\nimport {Component, OnInit} from '@angular/core';\nimport {UserInterfaceService} from '@valtimo/user-interface';\n\n@Component({\n selector: 'valtimo-page-header',\n templateUrl: './page-header.component.html',\n styleUrls: ['./page-header.component.css'],\n})\nexport class PageHeaderComponent implements OnInit {\n readonly showPageHeader$ = this.userInterfaceService.showPageHeader$;\n\n constructor(private readonly userInterfaceService: UserInterfaceService) {}\n\n ngOnInit() {}\n}\n","<!--\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 class=\"page-head\" [ngClass]=\"{'page-head--hidden': (showPageHeader$ | async) === false}\">\n <valtimo-page-title></valtimo-page-title>\n <valtimo-breadcrumb-navigation></valtimo-breadcrumb-navigation>\n</div>\n","/*\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\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {RouterModule} from '@angular/router';\nimport {BreadcrumbNavigationComponent} from './breadcrumb-navigation.component';\nimport {TranslateModule} from '@ngx-translate/core';\n\n@NgModule({\n declarations: [BreadcrumbNavigationComponent],\n imports: [CommonModule, RouterModule, TranslateModule],\n exports: [BreadcrumbNavigationComponent],\n})\nexport class BreadcrumbNavigationModule {}\n","/*\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\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {PageHeaderComponent} from './page-header.component';\nimport {PageTitleModule} from '../page-title/page-title.module';\nimport {BreadcrumbNavigationModule} from '../breadcrumb-navigation/breadcrumb-navigation.module';\n\n@NgModule({\n declarations: [PageHeaderComponent],\n imports: [CommonModule, PageTitleModule, BreadcrumbNavigationModule],\n exports: [PageHeaderComponent],\n})\nexport class PageHeaderModule {}\n","/*\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\nimport {Component, Input, OnInit} from '@angular/core';\n\n/**\n * Component used to display a widget element\n */\n@Component({\n selector: 'valtimo-widget',\n templateUrl: './widget.component.html',\n styleUrls: ['./widget.component.css'],\n})\nexport class WidgetComponent implements OnInit {\n @Input() type?: string;\n @Input() name?: string;\n @Input() icon?: string;\n @Input() contrast?: string;\n @Input() divider?: string;\n @Input() title?: string;\n @Input() subtitle?: string;\n @Input() collapseAble?: string;\n @Input() collapse?: string;\n @Input() additionalClasses?: string;\n\n public cardClassName: string;\n public contrastClass: string;\n public dividerClass: string;\n public isCollapsed: boolean;\n\n ngOnInit(): void {\n this.setCardClassName();\n this.setType();\n this.setAdditionalClasses();\n this.setContrast();\n this.setDivider();\n this.setCollapse();\n }\n\n public toggleContent(): void {\n if (this.collapseAble) {\n this.isCollapsed = !this.isCollapsed;\n }\n }\n\n private setCardClassName(): void {\n this.cardClassName = 'card-full-default';\n }\n\n private setType(): void {\n if (this.type) {\n this.cardClassName = `card-full-${this.type}`;\n }\n }\n\n private setAdditionalClasses(): void {\n if (this.additionalClasses) {\n this.cardClassName = `${this.cardClassName} ${this.additionalClasses}`;\n }\n }\n\n private setContrast(): void {\n if (this.contrast) {\n this.contrastClass = 'card-header-contrast';\n }\n }\n\n private setDivider(): void {\n if (this.divider) {\n this.dividerClass = 'card-header-divider';\n }\n }\n\n private setCollapse(): void {\n this.isCollapsed = !(this.collapseAble && this.collapse === 'hide');\n }\n}\n","<!--\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 class=\"card card-border card-contrast {{ cardClassName }}\">\n <div class=\"card-header {{ contrastClass }} {{ dividerClass }}\" *ngIf=\"title || subtitle\">\n <div class=\"row\">\n <div class=\"col-7\" [ngClass]=\"{clickable: collapseAble}\" (click)=\"toggleContent()\">\n <!-- Title -->\n <div *ngIf=\"title\" class=\"text-truncate\">{{ title }}</div>\n <!-- Sub title -->\n <div *ngIf=\"subtitle\" class=\"card-subtitle text-truncate\">{{ subtitle }}</div>\n </div>\n\n <!-- Tools-->\n <div class=\"tools col-5 text-right\">\n <!-- Collapse content -->\n <a\n class=\"icon mdi\"\n *ngIf=\"collapseAble\"\n [ngClass]=\"{'mdi-chevron-up': isCollapsed, 'mdi-chevron-down': !isCollapsed}\"\n (click)=\"toggleContent()\"\n ></a>\n </div>\n </div>\n </div>\n <!-- content -->\n <div [hidden]=\"!isCollapsed\">\n <ng-content></ng-content>\n </div>\n</div>\n","/*\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\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {WidgetComponent} from './widget.component';\n\n@NgModule({\n declarations: [WidgetComponent],\n imports: [CommonModule],\n exports: [WidgetComponent],\n})\nexport class WidgetModule {}\n","/*\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\nimport {AfterContentInit, Directive, ElementRef} from '@angular/core';\n\n@Directive({\n selector: '[valtimoFieldAutoFocus]',\n})\nexport class FieldAutoFocusDirective implements AfterContentInit {\n constructor(private el: ElementRef) {}\n\n public ngAfterContentInit() {\n setTimeout(() => {\n this.el.nativeElement.focus();\n }, 300);\n }\n}\n","/*\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\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {FieldAutoFocusDirective} from './field-auto-focus.directive';\n\n@NgModule({\n declarations: [FieldAutoFocusDirective],\n exports: [FieldAutoFocusDirective],\n imports: [CommonModule],\n})\nexport class FieldAutoFocusModule {}\n","/*\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\nimport {\n AfterContentInit,\n Component,\n ElementRef,\n Input,\n OnDestroy,\n Output,\n ViewChild,\n EventEmitter,\n OnInit,\n} from '@angular/core';\nimport BpmnJS from 'bpmn-js/dist/bpmn-navigated-viewer.production.min.js';\nimport heatmap from 'heatmap.js-fixed/build/heatmap.js';\n\n@Component({\n selector: 'valtimo-bpmn-js-diagram',\n templateUrl: './bpmn-js-diagram.component.html',\n styleUrls: ['./bpmn-js-diagram.component.css'],\n})\nexport class BpmnJsDiagramComponent implements OnInit, AfterContentInit, OnDestroy {\n private bpmnJS: BpmnJS;\n private heatMapInstance: any;\n\n @ViewChild('ref', {static: true}) public el: ElementRef;\n @Output() public importDone: EventEmitter<any> = new EventEmitter();\n @Input() public bpmn20Xml: any;\n @Input() public heatmapDuration?: any;\n @Input() public heatmapCount?: any;\n @Input() public historicActivityInstances?: any;\n\n public heatmapMode: boolean;\n public heatPoints = {data: []};\n public min: number;\n public max: number;\n\n constructor() {}\n\n ngOnInit(): void {\n this.bpmnJS = new BpmnJS();\n this.bpmnJS.on('import.done', ({error}) => {\n if (!error) {\n const canvas = this.bpmnJS.get('canvas');\n const eventBus = this.bpmnJS.get('eventBus');\n\n if (this.historicActivityInstances) {\n this.historicActivityInstances.forEach(instance => {\n canvas.addMarker(\n instance.activityId,\n instance.endTime ? 'highlight-overlay-past' : 'highlight-overlay-current'\n );\n });\n }\n\n canvas.zoom('fit-viewport', 'auto');\n\n if (this.heatmapDuration || this.heatmapCount) {\n eventBus.on('canvas.init', () => {\n if (this.heatmapMode) {\n this.clearHeatmap();\n }\n this.getHeatmapData();\n });\n eventBus.on('canvas.viewbox.changing', () => {\n if (this.heatmapMode) {\n this.clearHeatmap();\n }\n });\n eventBus.on('canvas.viewbox.changed', () => {\n this.getHeatmapData();\n });\n }\n }\n });\n }\n\n ngAfterContentInit(): void {\n this.bpmnJS.importXML(this.bpmn20Xml);\n this.bpmnJS.attachTo(this.el.nativeElement);\n }\n\n getHeatmapData() {\n let inputData: any;\n let valueKey: any;\n\n this.heatPoints = {data: []};\n this.min = 0;\n this.max = 0;\n\n if (this.heatmapDuration) {\n inputData = this.heatmapDuration;\n valueKey = 'averageDurationInMilliseconds';\n } else if (this.heatmapCount) {\n inputData = this.heatmapCount;\n valueKey = 'totalCount';\n }\n\n if (inputData) {\n Object.keys(inputData).forEach(key => {\n const diagramContainer = this.el.nativeElement.querySelector('svg').getBoundingClientRect();\n const diagramElm = this.el.nativeElement\n .querySelector(`g[data-element-id=${key}]`)\n .getBoundingClientRect();\n this.setMax(key);\n this.heatPoints.data.push({\n x: Math.round(diagramElm.x - diagramContainer.x + diagramElm.width / 2),\n y: Math.round(diagramElm.y - diagramContainer.y + diagramElm.height / 2),\n value: inputData[key][valueKey],\n radius: diagramElm.width / 2,\n });\n if (inputData[key].count > 0) {\n this.addCounterActiveOverlays(key, inputData);\n }\n });\n\n if (this.heatmapMode) {\n this.showHeatmap();\n }\n }\n }\n\n setMax(key: any) {\n if (this.heatmapDuration) {\n this.max = Math.max(this.heatmapDuration[key].averageDurationInMilliseconds, this.max);\n } else if (this.heatmapCount) {\n this.max = Math.max(\n this.heatmapCount[key].totalCount + this.heatmapCount[key].count,\n this.max\n );\n }\n }\n\n addCounterActiveOverlays(key: any, inputData: any) {\n const overlays = this.bpmnJS.get('overlays');\n overlays.add(key, {\n position: {\n bottom: -10,\n left: 0,\n },\n show: {\n minZoom: 0,\n maxZoom: 5.0,\n },\n html: `<span class=\"badge badge-pill badge-primary\">${inputData[key].count}</span>`,\n });\n }\n\n showHeatmap() {\n this.heatMapInstance = heatmap.create({\n radius: 54,\n blur: 0.7,\n maxOpacity: 0.4,\n minOpacity: 0,\n container: this.el.nativeElement,\n });\n this.heatMapInstance.setData({\n min: this.min,\n max: this.max,\n data: this.heatPoints.data,\n });\n }\n\n clearHeatmap() {\n this.heatMapInstance.setData({data: []});\n }\n\n toggleHeatmap() {\n this.heatmapMode = !this.heatmapMode;\n if (this.heatmapMode) {\n this.showHeatmap();\n } else {\n this.clearHeatmap();\n }\n }\n\n ngOnDestroy(): void {\n this.bpmnJS.destroy();\n }\n}\n","<!--\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 class=\"p-4\" *ngIf=\"heatmapDuration || heatmapCount\">\n <div class=\"switch-button switch-button-sm switch-button-success\">\n <input\n type=\"checkbox\"\n id=\"toggleHeatmap\"\n [checked]=\"heatmapMode\"\n (click)=\"toggleHeatmap()\"\n /><span> <label for=\"toggleHeatmap\"></label></span>\n </div>\n</div>\n\n<div #ref class=\"diagram-container\"></div>\n\n<div *ngIf=\"historicActivityInstances\" class=\"p-4 text-center legenda-holder\">\n <span\n ><div class=\"legenda highlight-overlay-past\"></div>\n Executed tasks</span\n >\n <span class=\"ml-3\"\n ><div class=\"legenda highlight-overlay-current\"></div>\n Current tasks</span\n >\n</div>\n\n<div *ngIf=\"heatmapDuration || heatmapCount\" class=\"p-4 text-center legenda-holder\">\n <span\n ><span class=\"badge badge-pill badge-primary\">N</span>&nbsp;&nbsp;Amount of currently active\n instances of this task.</span\n >\n <span\n >&nbsp;&nbsp;|&nbsp;&nbsp;Red/yellow/green orbs: The amount of times the task is executed in\n comparison to the other tasks.</span\n >\n</div>\n","/*\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\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {BpmnJsDiagramComponent} from './bpmn-js-diagram.component';\n\n@NgModule({\n declarations: [BpmnJsDiagramComponent],\n imports: [CommonModule],\n exports: [BpmnJsDiagramComponent],\n})\nexport class BpmnJsDiagramModule {}\n","/*\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\nimport {Component, Input} from '@angular/core';\nimport {TimelineItem} from '../../models';\n\n@Component({\n selector: 'valtimo-timeline',\n templateUrl: './timeline.component.html',\n styleUrls: ['./timeline.component.css'],\n})\nexport class TimelineComponent {\n @Input() items: Array<TimelineItem>;\n}\n","<!--\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 id=\"no-results\" class=\"p-5\" *ngIf=\"items?.length === 0\">No result found</div>\n <div class=\"pb-5\" *ngIf=\"items?.length > 0\">\n <ul class=\"timeline mb-0 py-5\">\n <li class=\"timeline-item status-done\" *ngFor=\"let item of items\">\n <div class=\"timeline-date\">\n <span>{{ item.date }}</span>\n </div>\n <div class=\"timeline-content mt-1\">\n <div class=\"timeline-header p-0\">\n <span class=\"timeline-time\">{{ item.time }}</span>\n <span class=\"timeline-author\">{{ item.user }}</span>\n <br />\n <p class=\"timeline-activity\">{{ item.activity }}</p>\n <div class=\"timeline-summary\">\n <p>{{ item.summaryTranslationKey | translate: item.summaryTranslationParams }}</p>\n </div>\n </div>\n </div>\n </li>\n </ul>\n </div>\n</div>\n","/*\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\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {TimelineComponent} from './timeline.component';\nimport {TranslateModule} from '@ngx-translate/core';\n\n@NgModule({\n declarations: [TimelineComponent],\n imports: [CommonModule, TranslateModule],\n exports: [TimelineComponent],\n})\nexport class TimelineModule {}\n","/*\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\nimport {NgModule} from '@angular/core';\n\n@NgModule()\nexport class ComponentsModule {}\n","/*\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\nimport {Component, OnDestroy, OnInit} from '@angular/core';\n\n// eslint-disable-next-line no-var\ndeclare var $;\n\n@Component({\n selector: 'valtimo-filter-sidebar',\n templateUrl: './filter-sidebar.component.html',\n styleUrls: ['./filter-sidebar.component.css'],\n})\nexport class FilterSidebarComponent implements OnInit, OnDestroy {\n public filterSidebar: string;\n\n constructor() {\n this.filterSidebar = localStorage.getItem('filterSidebar') || 'show';\n }\n\n ngOnInit() {\n if (this.filterSidebar === 'show') {\n localStorage.setItem('filterSidebar', 'show');\n $('.be-content').addClass('be-aside');\n }\n $('[data-toggle=\"tooltip\"]').tooltip();\n }\n\n ngOnDestroy() {\n $('.be-content').removeClass('be-aside');\n }\n\n toggleFilterSidebar() {\n const beContent = $('.be-content');\n beContent.toggleClass('be-aside');\n this.filterSidebar = beContent.hasClass('be-aside') ? 'show' : 'hide';\n localStorage.setItem('filterSidebar', this.filterSidebar);\n }\n}\n","<!--\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 <a\n class=\"toggle-filter-sidebar\"\n data-toggle=\"tooltip\"\n data-trigger=\"hover\"\n data-placement=\"right\"\n title=\"Show / hide\"\n href=\"javascript:void(0)\"\n (click)=\"toggleFilterSidebar()\"\n [ngClass]=\"this.filterSidebar === 'show' && 'toggle-expanded'\"\n >\n <div class=\"icon-container p-0 bg-transparent\">\n <i class=\"click-able icon shadow mdi mdi-filter-variant\"></i>\n </div>\n </a>\n <aside class=\"page-aside p-4 mb-4 bg-light filter-holder\" *ngIf=\"this.filterSidebar === 'show'\">\n <ng-content></ng-content>\n </aside>\n</div>\n","/*\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\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {FilterSidebarComponent} from './filter-sidebar.component';\n\n@NgModule({\n declarations: [FilterSidebarComponent],\n imports: [CommonModule],\n exports: [FilterSidebarComponent],\n})\nexport class FilterSidebarModule {}\n","/*\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\nimport {Directive, EventEmitter, HostListener, Output} from '@angular/core';\n\n@Directive({\n selector: '[valtimoUploaderDragDrop]',\n})\nexport class UploaderDragDropDirective {\n @Output() fileDropped = new EventEmitter<any>();\n\n @HostListener('dragover', ['$event']) onDragOver(evt) {\n evt.preventDefault();\n evt.stopPropagation();\n }\n\n @HostListener('dragleave', ['$event'])\n public onDragLeave(evt) {\n evt.preventDefault();\n evt.stopPropagation();\n }\n\n @HostListener('drop', ['$event'])\n public ondrop(evt) {\n evt.preventDefault();\n evt.stopPropagation();\n const files = evt.dataTransfer.files;\n if (files.length > 0) {\n this.fileDropped.emit(files);\n }\n }\n}\n","/*\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\nimport {Pipe, PipeTransform} from '@angular/core';\n\n@Pipe({\n name: 'filesize',\n})\nexport class FileSizePipe implements PipeTransform {\n private units = ['bytes', 'KB', 'MB', 'GB', 'TB', 'PB'];\n\n transform(bytes: number = 0, precision: number = 2): string {\n if (isNaN(parseFloat(String(bytes))) || !isFinite(bytes)) {\n return '?';\n }\n\n let unit = 0;\n\n while (bytes >= 1024) {\n bytes /= 1024;\n unit++;\n }\n\n return bytes.toFixed(+precision) + ' ' + this.units[unit];\n }\n}\n","/*\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\nimport {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport {S3Service, S3Resource} from '@valtimo/resource';\n\n@Component({\n selector: 'valtimo-uploader',\n templateUrl: './uploader.component.html',\n styleUrls: ['./uploader.component.css'],\n})\nexport class UploaderComponent implements OnInit {\n public resources: any = [];\n @Output() resourcesChanged: EventEmitter<any> = new EventEmitter();\n @Output() resourceRegistered: EventEmitter<S3Resource> = new EventEmitter();\n @Input() showFileList = true;\n\n constructor(private s3Service: S3Service) {}\n\n ngOnInit() {}\n\n onFileFieldChange(files) {\n for (const file of files) {\n this.uploadFile(file);\n }\n }\n\n uploadFile(file: File) {\n this.s3Service.getPreSignedUrl(file.name).subscribe(value => {\n const preSignedUrl: URL = new URL(value);\n this.s3Service.upload(preSignedUrl, file).subscribe(result => {\n const s3ResourceDTO = new S3Resource(file, preSignedUrl);\n this.s3Service.registerResource(s3ResourceDTO).subscribe(resource => {\n this.resources.push(resource);\n this.resourceRegistered.emit(resource);\n this.resourcesChanged.emit(this.resources);\n });\n });\n });\n }\n\n deleteResource(resource) {\n this.s3Service.delete(resource.id).subscribe(result => {\n const index = this.resources.findIndex(res => res.id === resource.id);\n this.resources.splice(index, 1);\n this.resourcesChanged.emit(this.resources);\n });\n }\n}\n","<!--\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 class=\"upload-file-container p-5\"\n (click)=\"fileInput.click()\"\n valtimoUploaderDragDrop\n (fileDropped)=\"onFileFieldChange($event)\"\n>\n <span class=\"align-middle\"><i class=\"mdi mdi-cloud-upload\"></i></span>\n <input hidden type=\"file\" #fileInput (change)=\"onFileFieldChange($event.target.files)\" multiple />\n</div>\n<div *ngIf=\"showFileList\">\n <div class=\"files-list px-3 py-2\" *ngFor=\"let resource of resources\">\n <p class=\"m-0\">\n <strong>{{ resource.name }}</strong\n ><br />\n {{ resource.sizeInBytes | filesize }}\n </p>\n <button class=\"delete-file\" (click)=\"deleteResource(resource)\">\n <i class=\"icon mdi mdi-delete text-danger\"></i>\n </button>\n </div>\n</div>\n","/*\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\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {FileSizePipe} from './file-size.pipe';\n\n@NgModule({\n declarations: [FileSizePipe],\n imports: [CommonModule],\n exports: [FileSizePipe],\n})\nexport class FileSizeModule {}\n","/*\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\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {UploaderComponent} from './uploader.component';\nimport {UploaderDragDropDirective} from './uploader-drag-drop.directive';\nimport {FileSizeModule} from '../file-size/file-size.module';\n\n@NgModule({\n declarations: [UploaderComponent, UploaderDragDropDirective],\n imports: [CommonModule, FileSizeModule],\n exports: [UploaderComponent, UploaderDragDropDirective],\n})\nexport class UploaderModule {}\n","/*\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\nimport {EventEmitter, Injectable} from '@angular/core';\nimport {NavigationStart, Router} from '@angular/router';\nimport {Observable, Subject} from 'rxjs';\nimport {Alert, AlertType} from '../../models';\n\n@Injectable({providedIn: 'root'})\nexport class AlertService {\n public confirmed: EventEmitter<any> = new EventEmitter();\n private subject = new Subject<Alert>();\n\n constructor(private router: Router) {\n // clear alert messages on route change unless 'keepAfterRouteChange' flag is true\n this.router.events.subscribe(event => {\n if (event instanceof NavigationStart) {\n // clear alert messages\n this.clear();\n }\n });\n }\n\n // enable subscribing to alerts observable\n onAlert(): Observable<Alert> {\n return this.subject.asObservable();\n }\n\n // convenience methods\n success(message: string, confirmations?: any, iconClass?: string) {\n this.alert(new Alert({message, type: AlertType.Success, confirmations, iconClass}));\n }\n\n error(message: string, confirmations?: any, iconClass?: string) {\n this.alert(new Alert({message, type: AlertType.Error, confirmations, iconClass}));\n }\n\n info(message: string, confirmations?: any, iconClass?: string) {\n this.alert(new Alert({message, type: AlertType.Info, confirmations, iconClass}));\n }\n\n warning(message: string, confirmations?: any, iconClass?: string) {\n this.alert(new Alert({message, type: AlertType.Warning, confirmations, iconClass}));\n }\n\n notification(message: string, confirmations?: any, iconClass?: string) {\n this.alert(new Alert({message, type: AlertType.Notification, confirmations, iconClass}));\n }\n\n modalNotification(message: string, confirmations?: any, iconClass?: string) {\n this.alert(new Alert({message, type: AlertType.ModalNotification, confirmations, iconClass}));\n }\n\n // main alert method\n alert(alert: Alert) {\n this.subject.next(alert);\n }\n\n // clear alerts\n clear() {\n this.subject.next(new Alert({}));\n }\n\n // emit confirm\n emitAlertConfirmEvent(alert: Alert) {\n this.confirmed.emit(alert);\n }\n\n getAlertConfirmChangeEmitter() {\n return this.confirmed;\n }\n}\n","/*\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\nimport {AfterContentInit, Component, OnDestroy, OnInit} from '@angular/core';\nimport {Subscription} from 'rxjs';\nimport {Alert, AlertType} from '../../models';\nimport {AlertService} from './alert.service';\n\n// eslint-disable-next-line no-var\ndeclare var $;\n\n@Component({\n selector: 'valtimo-alert',\n templateUrl: './alert.component.html',\n styleUrls: ['./alert.component.css'],\n})\nexport class AlertComponent implements OnInit, AfterContentInit, OnDestroy {\n alerts: Alert[] = [];\n subscription: Subscription;\n autoCloseInMS: number;\n\n constructor(private alertService: AlertService) {\n this.autoCloseInMS = 5000;\n }\n\n ngOnInit() {}\n\n ngAfterContentInit() {\n this.subscription = this.alertService.onAlert().subscribe(alert => {\n if (!alert.message) {\n // clear alerts when an empty alert is received\n this.alerts = [];\n return;\n }\n\n // set empty array when an empty alert confirmations is received\n if (!alert.confirmations) {\n alert.confirmations = [];\n }\n\n // add alert to array if not exist\n const alertExist = this.alerts.filter(x => x.message === alert.message);\n if (alertExist.length === 0) {\n this.alerts.push(alert);\n }\n\n if (this.inModal(alert)) {\n setTimeout(() => {\n this.openModal();\n }, 300);\n }\n\n // auto close except alert confirmations not empty\n if (this.autoCloseInMS > 0 && alert.confirmations.length === 0) {\n setTimeout(() => {\n this.removeAlert(alert);\n }, this.autoCloseInMS);\n }\n });\n }\n\n closeModal() {\n $('#modalNotification').modal('hide');\n }\n\n openModal() {\n $('#modalNotification').modal('show');\n }\n\n alertConfirm(alert: Alert, confirm: any) {\n alert.confirm = confirm;\n this.alertService.emitAlertConfirmEvent(alert);\n this.removeAlert(alert);\n }\n\n ngOnDestroy() {\n // unsubscribe to avoid memory leaks\n this.subscription.unsubscribe();\n }\n\n removeAlert(alert: Alert) {\n if (this.inModal(alert)) {\n this.closeModal();\n }\n // remove specified alert from array\n this.alerts = this.alerts.filter(x => x.message !== alert.message);\n }\n\n inModal(alert: Alert) {\n if (!alert) {\n return;\n }\n\n // return true based on AlertType.ModalNotification\n switch (alert.type) {\n case AlertType.ModalNotification:\n return true;\n default:\n return false;\n }\n }\n\n cssClass(alert: Alert) {\n if (!alert) {\n return;\n }\n\n // return css class based on alert type\n switch (alert.type) {\n case AlertType.Success:\n return 'alert alert-success';\n case AlertType.Error:\n return 'alert alert-danger';\n case AlertType.Info:\n return 'alert alert-info';\n case AlertType.Warning:\n return 'alert alert-warning';\n case AlertType.Notification:\n return 'alert alert-light';\n case AlertType.ModalNotification:\n return 'alert alert-light';\n }\n }\n\n cssIconClass(alert: Alert) {\n if (!alert) {\n return;\n }\n\n // return css class based on alert type\n switch (alert.type) {\n case AlertType.Success:\n return 'mdi mdi-check';\n case AlertType.Error:\n return 'mdi mdi-close-circle-o';\n case AlertType.Info:\n return 'mdi mdi-info-outline';\n case AlertType.Warning:\n return 'mdi mdi-alert-triangle';\n case AlertType.Notification:\n return 'mdi mdi-notifications';\n case AlertType.ModalNotification:\n return 'mdi mdi-notifications';\n }\n }\n}\n","<!--\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 *ngFor=\"let alert of alerts\" class=\"{{ cssClass(alert) }} rounded-0 m-0 alert-dismissable\">\n <div *ngIf=\"inModal(alert)\">\n <!-- Modal -->\n <div class=\"modal fade\" id=\"modalNotification\" tabindex=\"-1\" role=\"dialog\">\n <div class=\"modal-dialog\" role=\"document\">\n <div class=\"modal-content\">\n <div class=\"modal-body p-0\">\n <button class=\"close\" type=\"button\" (click)=\"removeAlert(alert)\">\n <span class=\"mdi mdi-close\" aria-hidden=\"true\"></span>\n </button>\n <div class=\"icon\">\n <span class=\"{{ alert.iconClass || cssIconClass(alert) }}\"></span>\n </div>\n <div class=\"message\">\n <div [innerHTML]=\"alert.message\"></div>\n </div>\n </div>\n <div class=\"modal-footer pt-0\" *ngIf=\"alert.confirmations?.length\">\n <button\n class=\"{{ confirmation.class }} mr-2\"\n *ngFor=\"let confirmation of alert.confirmations\"\n (click)=\"alertConfirm(alert, confirmation.value)\"\n >\n {{ confirmation.label }}\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"!inModal(alert)\" class=\"alert-block\">\n <div class=\"icon\"><span class=\"{{ alert.iconClass || cssIconClass(alert) }}\"></span></div>\n <div class=\"message\">\n <div [innerHTML]=\"alert.message\"></div>\n <div class=\"mt-3\" *ngIf=\"alert.confirmations?.length\">\n <button\n class=\"{{ confirmation.class }} mr-2\"\n *ngFor=\"let confirmation of alert.confirmations\"\n (click)=\"alertConfirm(alert, confirmation.value)\"\n >\n {{ confirmation.label }}\n </button>\n </div>\n </div>\n <button class=\"close\" type=\"button\" (click)=\"removeAlert(alert)\">\n <span class=\"mdi mdi-close\" aria-hidden=\"true\"></span>\n </button>\n </div>\n</div>\n","/*\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\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {AlertComponent} from './alert.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [AlertComponent],\n exports: [AlertComponent],\n})\nexport class AlertModule {}\n","/*\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\nimport {Component, Input, OnInit} from '@angular/core';\n\n@Component({\n selector: 'valtimo-data-list',\n templateUrl: './data-list.component.html',\n styleUrls: ['./data-list.component.css'],\n})\nexport class DataListComponent implements OnInit {\n @Input() collection?: Array<any>;\n @Input() object?: any;\n\n constructor() {}\n\n ngOnInit() {}\n}\n","<!--\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 *ngIf=\"collection\">\n <dl class=\"row mb-0\" *ngFor=\"let item of collection\">\n <dd class=\"col-12 col-md-4 col-lg-3\">{{ item.label }}</dd>\n <dt class=\"col-12 col-md-8 col-lg-9\" [innerHTML]=\"item.value || '-'\"></dt>\n </dl>\n</div>\n\n<div *ngIf=\"object\">\n <dl class=\"row mb-0\" *ngFor=\"let item of object | keyvalue\">\n <dd class=\"col-12 col-md-4 col-lg-3\">{{ item.key }}</dd>\n <dt class=\"col-12 col-md-8 col-lg-9\" [innerHTML]=\"item.value || '-'\"></dt>\n </dl>\n</div>\n","/*\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\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {DataListComponent} from './data-list.component';\n\n@NgModule({\n declarations: [DataListComponent],\n imports: [CommonModule],\n exports: [DataListComponent],\n})\nexport class DataListModule {}\n","/*\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\nimport {Injectable} from '@angular/core';\nimport {BehaviorSubject, Observable} from 'rxjs';\nimport {FormioComponent} from '@formio/angular';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FormIoStateService {\n private _documentDefinitionName$ = new BehaviorSubject<string>(undefined);\n private _documentId$ = new BehaviorSubject<string>(undefined);\n\n private _currentForm$ = new BehaviorSubject<FormioComponent>(undefined);\n\n public get documentDefinitionName$(): Observable<string> {\n return this._documentDefinitionName$.asObservable();\n }\n\n public setDocumentDefinitionName(documentDefinitionName: string) {\n this._documentDefinitionName$.next(documentDefinitionName);\n }\n\n public get documentId$(): Observable<string> {\n return this._documentId$.asObservable();\n }\n\n public setDocumentId(documentId: string) {\n this._documentId$.next(documentId);\n }\n\n public get currentForm$(): Observable<FormioComponent> {\n return this._currentForm$.asObservable();\n }\n\n public set currentForm(form: FormioComponent) {\n this._currentForm$.next(form);\n }\n}\n","/*\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\nimport {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport {FormioSubmission, ValtimoFormioOptions} from '../../models';\nimport {ValtimoModalService} from '../../services/valtimo-modal.service';\nimport {UserProviderService} from '@valtimo/security';\nimport {Formio, FormioComponent as FormIoSourceComponent, FormioForm} from '@formio/angular';\nimport {FormioRefreshValue} from '@formio/angular/formio.common';\nimport jwt_decode from 'jwt-decode';\nimport {NGXLogger} from 'ngx-logger';\nimport {from, Subject, Subscription, timer} from 'rxjs';\nimport {map, switchMap, take} from 'rxjs/operators';\nimport {FormIoStateService} from './services/form-io-state.service';\nimport {ActivatedRoute} from '@angular/router';\nimport {TranslateService} from '@ngx-translate/core';\n\n@Component({\n selector: 'valtimo-form-io',\n templateUrl: './form-io.component.html',\n styleUrls: ['./form-io.component.css'],\n})\nexport class FormioComponent implements OnInit, OnChanges, OnDestroy {\n @Input() form: any;\n @Input() options: ValtimoFormioOptions;\n @Input() submission?: object = {};\n @Input() formRefresh$!: Subject<FormioRefreshValue>;\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() submit: EventEmitter<any> = new EventEmitter();\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() change: EventEmitter<any> = new EventEmitter();\n refreshForm: EventEmitter<FormioRefreshValue> = new EventEmitter();\n formDefinition: FormioForm;\n public errors: string[] = [];\n\n private tokenRefreshTimerSubscription: Subscription;\n private formRefreshSubscription: Subscription;\n\n readonly currentLanguage$ = this.translateService\n .stream('key')\n .pipe(map(() => this.translateService.currentLang));\n\n constructor(\n private userProviderService: UserProviderService,\n private logger: NGXLogger,\n private readonly stateService: FormIoStateService,\n private readonly route: ActivatedRoute,\n private readonly translateService: TranslateService,\n private readonly modalService: ValtimoModalService\n ) {}\n\n ngOnInit() {\n const documentDefinitionName = this.route.snapshot.paramMap.get('documentDefinitionName');\n const documentId = this.route.snapshot.paramMap.get('documentId');\n\n this.formDefinition = this.form;\n this.errors = [];\n\n this.setInitialToken();\n\n if (documentDefinitionName) {\n this.stateService.setDocumentDefinitionName(documentDefinitionName);\n }\n if (documentId) {\n this.stateService.setDocumentId(documentId);\n }\n\n this.subscribeFormRefresh();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.formDefinition = changes.form.currentValue;\n this.reloadForm();\n\n this.setInitialToken();\n\n if (changes.formDefinitionRefresh$) {\n this.unsubscribeFormRefresh();\n this.subscribeFormRefresh();\n }\n }\n\n ngOnDestroy(): void {\n this.unsubscribeFormRefresh();\n\n this.tokenRefreshTimerSubscription?.unsubscribe();\n }\n\n reloadForm() {\n this.refreshForm.emit({\n form: this.formDefinition,\n });\n }\n\n showErrors(errors: string[]) {\n this.errors = errors;\n }\n\n onSubmit(submission: FormioSubmission) {\n this.errors = [];\n this.submit.emit(submission);\n }\n\n formReady(form: FormIoSourceComponent): void {\n this.reloadForm();\n this.stateService.currentForm = form;\n }\n\n onChange(object: any): void {\n this.change.emit(object);\n }\n\n nextPage(): void {\n this.scrollToTop();\n }\n\n prevPage(): void {\n this.scrollToTop();\n }\n\n private scrollToTop(): void {\n this.modalService.scrollToTop();\n }\n\n private setInitialToken(): void {\n this.userProviderService.getToken().then((token: string) => {\n this.setToken(token);\n });\n }\n\n private setToken(token: string): void {\n Formio.setToken(token);\n localStorage.setItem('formioToken', token);\n this.setTimerForTokenRefresh(token);\n\n this.logger.debug('New token set for form.io.');\n }\n\n private setTimerForTokenRefresh(token: string): void {\n const tokenExp = (jwt_decode(token) as any).exp * 1000;\n const expiryTime = tokenExp - Date.now() - 1000;\n if (!this.tokenRefreshTimerSubscription) {\n this.tokenRefreshTimerSubscription = timer(expiryTime).subscribe(() => {\n this.refreshToken();\n });\n }\n\n this.logger.debug(`Timer for form.io token refresh set for: ${expiryTime}ms.`);\n }\n\n private refreshToken(): void {\n from(this.userProviderService.updateToken(-1))\n .pipe(\n switchMap(() => this.userProviderService.getToken()),\n take(1)\n )\n .subscribe(token => {\n this.setToken(token);\n });\n }\n\n private subscribeFormRefresh(): void {\n if (this.formRefresh$) {\n this.formRefreshSubscription = this.formRefresh$.subscribe(refreshValue => {\n if (refreshValue) {\n this.refreshForm.emit(refreshValue);\n }\n });\n }\n }\n\n private unsubscribeFormRefresh(): void {\n if (this.formRefreshSubscription) {\n this.formRefreshSubscription.unsubscribe();\n }\n }\n}\n","<!--\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\n *ngIf=\"currentLanguage$ | async as currentLanguage\"\n [submission]=\"submission\"\n [form]=\"formDefinition\"\n [refresh]=\"refreshForm\"\n [options]=\"options\"\n [language]=\"currentLanguage\"\n (submit)=\"onSubmit($event)\"\n (ready)=\"formReady($event)\"\n (change)=\"onChange($event)\"\n (nextPage)=\"nextPage()\"\n (prevPage)=\"prevPage()\"\n ></formio>\n</div>\n","/*\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\nimport {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport {Components} from '@formio/angular';\n\n@Component({\n selector: 'valtimo-form-io-builder',\n templateUrl: './form-io-builder.component.html',\n styleUrls: ['./form-io-builder.component.css'],\n})\nexport class FormioBuilderComponent implements OnInit {\n @Input() form: any;\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() change: EventEmitter<any> = new EventEmitter();\n\n constructor() {}\n\n ngOnInit() {\n const originalEditForm = Components.baseEditForm;\n Components.baseEditForm = function (...extend) {\n const editForm = originalEditForm(...extend);\n const keyField = editForm.components\n .find(element => element.key === 'tabs')\n .components.find(element => element.key === 'api')\n .components.find(element => element.key === 'key');\n delete keyField.validate;\n return editForm;\n };\n }\n\n onChange(event) {\n this.change.emit(event);\n }\n}\n","<!--\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 <form-builder [form]=\"form\" (change)=\"onChange($event)\"></form-builder>\n</div>\n","/*\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\nexport const AppConfig = {\n appUrl: 'http://localhost:4200',\n apiUrl: 'http://localhost:4200',\n icons: 'fontawesome',\n formOnly: false,\n};\n","/*\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\nimport {Injectable} from '@angular/core';\nimport {FormIoStateService} from './form-io-state.service';\nimport {take} from 'rxjs/operators';\n\n@Injectable()\nexport class FormIoDomService {\n constructor(private readonly stateService: FormIoStateService) {}\n\n toggleSubmitButton(disabled: boolean): void {\n this.stateService.currentForm$.pipe(take(1)).subscribe(form => {\n const button = form.formioElement.nativeElement\n .getElementsByClassName('formio-component-submit')[0]\n .getElementsByClassName('btn-primary')[0] as HTMLInputElement;\n\n button.disabled = disabled;\n });\n }\n}\n","/*\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\nimport {Component} from '@angular/core';\n\n@Component({\n selector: 'valtimo-progress-bar',\n templateUrl: './progress-bar.component.html',\n styleUrls: ['./progress-bar.component.scss'],\n})\nexport class ProgressBarComponent {}\n","<!--\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 class=\"progress\" style=\"position: relative\">\n <div class=\"progress-bar progress-bar-striped indeterminate\"></div>\n</div>\n","/*\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\nimport {AfterViewInit, Component, EventEmitter, Output} from '@angular/core';\nimport {BehaviorSubject} from 'rxjs';\nimport {take} from 'rxjs/operators';\n\n@Component({\n selector: 'valtimo-webcam',\n templateUrl: './webcam.component.html',\n styleUrls: ['./webcam.component.scss'],\n})\nexport class WebcamComponent implements AfterViewInit {\n @Output() imageSaved = new EventEmitter<File>();\n\n readonly showing$ = new BehaviorSubject<boolean>(false);\n\n readonly stream$ = new BehaviorSubject<MediaStream>(undefined);\n\n readonly picture$ = new BehaviorSubject<{file: File; uri: string}>(undefined);\n\n ngAfterViewInit(): void {\n const video = this.getVideoElement();\n\n setTimeout(() => {\n this.toggleFade();\n });\n\n if (navigator.mediaDevices.getUserMedia) {\n navigator.mediaDevices.getUserMedia({video: true}).then(stream => {\n video.srcObject = stream;\n this.stream$.next(stream);\n });\n }\n }\n\n captureImage(): boolean {\n const video = this.getVideoElement();\n const canvas: HTMLCanvasElement = document.querySelector('#canvas');\n\n canvas.width = 640;\n canvas.height = 480;\n\n const ctx = canvas.getContext('2d');\n\n ctx.drawImage(video, 0, 0, canvas.width, canvas.height);\n\n const dataURI = canvas.toDataURL('image/jpeg');\n\n this.picture$.next({file: this.dataURItoFile(dataURI), uri: dataURI});\n\n return false;\n }\n\n clearImage(): boolean {\n this.picture$.next(undefined);\n\n return false;\n }\n\n close(emitImage: boolean = true): boolean {\n if (!emitImage) {\n this.clearImage();\n }\n\n this.toggleFade();\n this.emitOnTimeOut();\n\n return false;\n }\n\n private stopStream(): void {\n this.stream$.pipe(take(1)).subscribe(mediaStream => {\n if (mediaStream) {\n mediaStream.getTracks().forEach(stream => stream.stop());\n }\n });\n }\n\n private getVideoElement(): HTMLVideoElement {\n return document.querySelector('#videoElement');\n }\n\n private emitOnTimeOut(): void {\n setTimeout(() => {\n this.stopStream();\n this.imageSaved.emit(this.picture$.getValue()?.file);\n }, 250);\n }\n\n private toggleFade(): void {\n this.showing$.next(!this.showing$.getValue());\n }\n\n private dataURItoFile(dataURI): File {\n const binary = atob(dataURI.split(',')[1]);\n const array = [];\n\n for (let i = 0; i < binary.length; i++) {\n array.push(binary.charCodeAt(i));\n }\n\n const blob = new Blob([new Uint8Array(array)], {type: 'image/jpeg'});\n\n const imgFileName = `IMG_${new Date().toISOString().replace(/[-:.]/g, '')}.jpg`;\n\n return new File([blob], imgFileName);\n }\n}\n","<!--\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 (click)=\"close(false)\"\n *ngIf=\"{picture: picture$ | async, stream: stream$ | async} as obs\"\n [ngClass]=\"{showing: showing$ | async}\"\n class=\"webcam-overlay\"\n>\n <div (click)=\"(false); $event.stopPropagation()\" class=\"inner-container\">\n <div class=\"webcam-container modal-content\">\n <div class=\"video-container\">\n <video autoplay=\"true\" id=\"videoElement\"></video>\n <canvas id=\"canvas\"></canvas>\n <img *ngIf=\"obs.picture?.uri\" [src]=\"obs.picture?.uri\" />\n </div>\n <div class=\"button-container\">\n <div class=\"picture-btn\">\n <button\n (click)=\"captureImage()\"\n [disabled]=\"obs.picture?.file || !obs.stream\"\n class=\"btn btn-primary btn-lg\"\n >\n <i class=\"icon mdi mdi-camera mr-1\"></i>{{ 'webcam.takePicture' | translate }}\n </button>\n </div>\n <div class=\"new-btn\">\n <button (click)=\"clearImage()\" [disabled]=\"!obs.picture?.file\" class=\"btn btn-primary\">\n <i class=\"icon mdi mdi-redo mr-1\"></i>{{ 'webcam.redo' | translate }}\n </button>\n </div>\n <div class=\"save-btn\">\n <button (click)=\"close()\" [disabled]=\"!obs.picture?.file\" class=\"btn btn-primary\">\n <i class=\"icon mdi mdi-save mr-1\"></i>{{ 'webcam.save' | translate }}\n </button>\n </div>\n </div>\n </div>\n <div class=\"modal-header\">\n <button (click)=\"close(false)\" aria-label=\"Close\" class=\"close\"><span>×</span></button>\n </div>\n </div>\n</div>\n","/*\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\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {TranslateService} from '@ngx-translate/core';\nimport Dropzone from 'dropzone';\nimport {BehaviorSubject, combineLatest, Observable, Subject, Subscription} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\n@Component({\n selector: 'valtimo-dropzone',\n templateUrl: './dropzone.component.html',\n styleUrls: ['./dropzone.component.scss'],\n})\nexport class DropzoneComponent implements OnInit, AfterViewInit, OnDestroy {\n @ViewChild('dropzone') dropzoneRef: ElementRef<any>;\n\n @Input() title: string;\n @Input() hideTitle: boolean;\n @Input() subtitle: string;\n @Input() externalError$: BehaviorSubject<string> = new BehaviorSubject<string>('');\n @Input() maxFileSize = 5;\n @Input() showMaxFileSize = true;\n @Input() acceptedFiles = '.json';\n @Input() clear$: Subject<any> = new Subject();\n @Input() disabled: boolean;\n @Input() hideFilePreview: boolean;\n @Input() uploading: boolean;\n @Input() camera = false;\n @Input() maxFiles!: number;\n\n @Output() fileSelected: EventEmitter<File> = new EventEmitter();\n readonly file$ = new BehaviorSubject<File>(undefined);\n readonly showingCamera$ = new BehaviorSubject<boolean>(false);\n private clearSubscription: Subscription;\n private dropzone: Dropzone;\n private readonly error$ = new BehaviorSubject<string>('');\n\n private readonly errorMessagesStrings: {[key: string]: string} = {\n tooBig: 'too big',\n wrongType: 'this type',\n };\n\n readonly errorMessage$: Observable<string> = combineLatest([\n this.error$,\n this.translateService.stream('dropzone.error.generic'),\n this.translateService.stream('dropzone.error.tooBig'),\n this.translateService.stream('dropzone.error.wrongType'),\n ]).pipe(\n map(([dropzoneError, generic, tooBig, wrongType]) => {\n const strings = this.errorMessagesStrings;\n\n if (dropzoneError) {\n if (dropzoneError.includes(strings.tooBig)) {\n return tooBig;\n } else if (dropzoneError.includes(strings.wrongType)) {\n return wrongType;\n } else {\n return generic;\n }\n } else {\n return '';\n }\n })\n );\n\n constructor(private readonly translateService: TranslateService) {}\n\n ngOnInit(): void {\n this.clearSubscription = this.clear$.subscribe(() => {\n this.clearFile();\n this.clearError();\n });\n }\n\n ngAfterViewInit() {\n this.initDropzone();\n }\n\n ngOnDestroy(): void {\n this.clearSubscription.unsubscribe();\n }\n\n showCamera(): void {\n this.showingCamera$.next(true);\n }\n\n webcamImageSaved(image: File): void {\n if (image) {\n this.setFile(image);\n }\n\n this.showingCamera$.next(false);\n }\n\n private initDropzone(): void {\n this.dropzone = new Dropzone(this.dropzoneRef.nativeElement, {\n url: '/',\n maxFilesize: this.maxFileSize,\n clickable: this.dropzoneRef.nativeElement,\n autoProcessQueue: false,\n createImageThumbnails: false,\n acceptedFiles: this.acceptedFiles,\n previewTemplate: `<p style='display:none'></p>`,\n ...(this.maxFiles && {maxFiles: this.maxFiles}),\n accept: file => {\n this.dropzone.removeAllFiles();\n this.setFile(file);\n },\n });\n\n this.setDropzoneEvents();\n }\n\n private setDropzoneEvents(): void {\n this.dropzone.on('error', (file, message) => {\n this.clearFile();\n this.error$.next(message.toString());\n });\n }\n\n private clearFile(): void {\n this.file$.next(undefined);\n }\n\n private clearError(): void {\n this.error$.next('');\n }\n\n private setFile(file: File): void {\n this.file$.next(file);\n this.clearError();\n this.fileSelected.emit(file);\n }\n}\n","<!--\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<form #dropzone [ngClass]=\"{disabled: disabled || uploading}\" class=\"dropzone dz-clickable\">\n <div class=\"dz-message\">\n <div class=\"icon large-icon\"><span class=\"mdi mdi-cloud-upload\"></span></div>\n <ng-container *ngTemplateOutlet=\"body\"></ng-container>\n <ng-container *ngIf=\"uploading\">\n <ng-container *ngTemplateOutlet=\"progressBar\"></ng-container>\n </ng-container>\n <div class=\"dropzone-mobile-trigger needsclick\"></div>\n </div>\n <button\n (click)=\"showCamera()\"\n *ngIf=\"camera\"\n type=\"button\"\n class=\"btn btn-primary px-3 webcam-button\"\n >\n <i class=\"icon mdi mdi-camera\" aria-hidden=\"true\"></i>\n </button>\n <ng-container *ngIf=\"showingCamera$ | async\">\n <ng-container *ngTemplateOutlet=\"webcam\"></ng-container>\n </ng-container>\n</form>\n\n<ng-template #body>\n <h2 *ngIf=\"!hideTitle\" class=\"mb-4 mt-2\">{{ title || ('dropzone.drop' | translate) }}</h2>\n <span *ngIf=\"subtitle\" class=\"note mb-3\">{{ subtitle }}</span>\n <span *ngIf=\"showMaxFileSize\" class=\"note mb-3 small-font\"\n >{{ 'dropzone.maxFileSize' | translate }}<b>{{ maxFileSize }}mb</b></span\n >\n <ng-container *ngTemplateOutlet=\"preview\"></ng-container>\n</ng-template>\n\n<ng-template #preview>\n <ng-container\n *ngIf=\"{\n errorMessage: errorMessage$ | async,\n externalError: externalError$ | async,\n file: file$ | async\n } as obs\"\n >\n <ng-container *ngIf=\"obs.externalError || obs.errorMessage\">\n <div class=\"alert alert-danger mt-2 mb-0\">\n <div class=\"message\">\n {{ obs.externalError || obs.errorMessage }}\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"!hideFilePreview && obs.file && !obs.externalError && !obs.errorMessage\">\n <div class=\"file\">\n <i class=\"icon mdi mdi-file-text mr-2\"></i>\n <span class=\"note\">{{ obs.file.name }}</span>\n <span class=\"note file-size\">- {{ obs.file.size | filesize: 2 }}</span>\n </div>\n </ng-container>\n </ng-container>\n</ng-template>\n\n<ng-template #progressBar>\n <div class=\"progress-bar-container\">\n <valtimo-progress-bar></valtimo-progress-bar>\n </div>\n</ng-template>\n\n<ng-template #webcam>\n <valtimo-webcam (imageSaved)=\"webcamImageSaved($event)\"></valtimo-webcam>\n</ng-template>\n","/*\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\nimport {Component, EventEmitter, Input, Output} from '@angular/core';\nimport {FormioCustomComponent} from '@formio/angular';\nimport {BehaviorSubject} from 'rxjs';\nimport {ResourceDto, ResourceFile} from '@valtimo/resource';\nimport {FormIoStateService} from '../services/form-io-state.service';\nimport {take} from 'rxjs/operators';\nimport {FormIoDomService} from '../services/form-io-dom.service';\nimport {DownloadService, UploadProviderService} from '@valtimo/resource';\n\n@Component({\n selector: 'valtimo-formio-uploader',\n templateUrl: './form-io-uploader.component.html',\n styleUrls: ['./form-io-uploader.component.scss'],\n})\nexport class FormIoUploaderComponent implements FormioCustomComponent<Array<ResourceFile>> {\n @Input() disabled: boolean;\n @Input() title: string;\n @Input() hideTitle: boolean;\n @Input() subtitle: string;\n @Input() maxFileSize: number;\n @Input() hideMaxFileSize: boolean;\n @Input() camera: boolean;\n @Output() valueChange = new EventEmitter<Array<ResourceFile>>();\n\n readonly uploading$ = new BehaviorSubject<boolean>(false);\n\n constructor(\n private readonly uploadProviderService: UploadProviderService,\n private readonly stateService: FormIoStateService,\n private readonly domService: FormIoDomService,\n private readonly downloadService: DownloadService\n ) {}\n\n _value: Array<ResourceFile> = [];\n\n public get value(): Array<ResourceFile> {\n return this._value;\n }\n\n @Input()\n public set value(value: Array<ResourceFile>) {\n if (Array.isArray(value)) {\n this._value = value;\n }\n }\n\n downloadFile(resourceFile: ResourceFile) {\n this.uploadProviderService\n .getResource(resourceFile.data.resourceId)\n .subscribe((resource: ResourceDto) => {\n this.downloadService.downloadFile(resource.url, resource.resource.name);\n });\n }\n\n fileSelected(file: File) {\n this.domService.toggleSubmitButton(true);\n this.uploading$.next(true);\n this.stateService.documentDefinitionName$.pipe(take(1)).subscribe(name => {\n this.uploadProviderService.uploadFile(file, name).subscribe(result => {\n this.domService.toggleSubmitButton(false);\n this.uploading$.next(false);\n this._value.push(result);\n this.valueChange.emit(this._value);\n });\n });\n }\n\n deleteFile(resourceId: string): void {\n this.domService.toggleSubmitButton(true);\n this._value = this._value.filter((file: ResourceFile) =>\n file?.data ? file?.data?.resourceId !== resourceId : true\n );\n this.valueChange.emit(this._value);\n }\n}\n","<!--\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<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 mdi mdi-delete\"></i>\n </a>\n </div>\n</div>\n","/*\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\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {ProgressBarComponent} from './progress-bar.component';\n\n@NgModule({\n declarations: [ProgressBarComponent],\n imports: [CommonModule],\n exports: [ProgressBarComponent],\n})\nexport class ProgressBarModule {}\n","/*\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\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {WebcamComponent} from './webcam.component';\nimport {TranslateModule} from '@ngx-translate/core';\n\n@NgModule({\n declarations: [WebcamComponent],\n imports: [CommonModule, TranslateModule],\n exports: [WebcamComponent],\n})\nexport class WebcamModule {}\n","/*\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\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {DropzoneComponent} from './dropzone.component';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {FileSizeModule} from '../file-size/file-size.module';\nimport {ProgressBarModule} from '../progress-bar/progress-bar.module';\nimport {WebcamModule} from '../webcam/webcam.module';\n\n@NgModule({\n declarations: [DropzoneComponent],\n imports: [CommonModule, TranslateModule, FileSizeModule, ProgressBarModule, WebcamModule],\n exports: [DropzoneComponent],\n})\nexport class DropzoneModule {}\n","/*\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\nimport {Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild} from '@angular/core';\nimport {ModalComponent, ModalService, SelectItem} from '@valtimo/user-interface';\nimport {\n BehaviorSubject,\n combineLatest,\n filter,\n from,\n map,\n Observable,\n of,\n Subject,\n Subscription,\n switchMap,\n take,\n} from 'rxjs';\nimport {\n AdditionalDocumentDate,\n ConfidentialityLevel,\n DocumentenApiMetadata,\n DocumentLanguage,\n DocumentStatus,\n} from '../../models';\nimport {TranslateService} from '@ngx-translate/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {DocumentService} from '@valtimo/document';\nimport {KeycloakService} from 'keycloak-angular';\nimport {ValtimoModalService} from '../../services/valtimo-modal.service';\nimport {tap} from 'rxjs/operators';\n\n@Component({\n selector: 'valtimo-documenten-api-metadata-modal',\n templateUrl: './documenten-api-metadata-modal.component.html',\n styleUrls: ['./documenten-api-metadata-modal.component.scss'],\n})\nexport class DocumentenApiMetadataModalComponent implements OnInit, OnDestroy {\n @ViewChild('documentenApiMetadataModal') documentenApiMetadataModal: ModalComponent;\n\n @Input() show$!: Observable<null>;\n @Input() hide$!: Observable<null>;\n @Input() disabled$!: Observable<boolean>;\n @Input() file$!: Observable<File>;\n\n @Input() documentTitle = '';\n @Input() disableDocumentTitle: boolean;\n @Input() filename: string;\n @Input() disableFilename: boolean;\n @Input() author: string;\n @Input() disableAuthor: boolean;\n @Input() status: string;\n @Input() disableStatus: boolean;\n @Input() language: string;\n @Input() disableLanguage: boolean;\n @Input() documentType: string;\n @Input() disableDocumentType: boolean;\n @Input() description: string;\n @Input() disableDescription: boolean;\n @Input() confidentialityLevel: string;\n @Input() disableConfidentialityLevel: boolean;\n\n @Output() metadata: EventEmitter<DocumentenApiMetadata> = new EventEmitter();\n\n readonly CONFIDENTIALITY_LEVELS: Array<ConfidentialityLevel> = [\n 'openbaar',\n 'beperkt_openbaar',\n 'intern',\n 'zaakvertrouwelijk',\n 'vertrouwelijk',\n 'confidentieel',\n 'geheim',\n 'zeer_geheim',\n ];\n readonly confidentialityLevelItems$: Observable<Array<SelectItem>> = this.translateService\n .stream('key')\n .pipe(\n map(() =>\n this.CONFIDENTIALITY_LEVELS.map(confidentialityLevel => ({\n id: confidentialityLevel,\n text: this.translateService.instant(`document.${confidentialityLevel}`),\n }))\n )\n );\n readonly ADDITONAL_DOCUMENT_DATE_OPTIONS: Array<{\n value: AdditionalDocumentDate;\n translationKey: string;\n }> = [\n {\n value: 'neither',\n translationKey: 'document.noAdditionalDate',\n },\n {\n value: 'sent',\n translationKey: 'document.sendDate',\n },\n {\n value: 'received',\n translationKey: 'document.receiptDate',\n },\n ];\n readonly clearStatusSelection$ = new Subject<null>();\n readonly additionalDocumentDate$ = new BehaviorSubject<AdditionalDocumentDate>('neither');\n readonly STATUSES: Array<DocumentStatus> = [\n 'in_bewerking',\n 'ter_vaststelling',\n 'definitief',\n 'gearchiveerd',\n ];\n readonly RECEIPT_STATUSES: Array<DocumentStatus> = ['definitief', 'gearchiveerd'];\n readonly formData$ = new BehaviorSubject<DocumentenApiMetadata>(null);\n readonly statusItems$: Observable<Array<SelectItem>> = combineLatest([\n this.additionalDocumentDate$,\n this.translateService.stream('key'),\n ]).pipe(\n tap(([additionalDocumentDate]) => {\n this.formData$.pipe(take(1)).subscribe(formData => {\n if (\n additionalDocumentDate === 'received' &&\n (formData.status === 'in_bewerking' || formData.status === 'ter_vaststelling')\n ) {\n this.clearStatusSelection$.next(null);\n }\n });\n }),\n map(([additionalDocumentDate]) =>\n (additionalDocumentDate === 'received' ? this.RECEIPT_STATUSES : this.STATUSES).map(\n status => ({\n id: status,\n text: this.translateService.instant(`document.${status}`),\n })\n )\n )\n );\n readonly LANGUAGES: Array<DocumentLanguage> = ['nld', 'eng', 'deu'];\n readonly languageItems$: Observable<Array<SelectItem>> = this.translateService.stream('key').pipe(\n map(() =>\n this.LANGUAGES.map(language => ({\n id: language,\n text: this.translateService.instant(`document.${language}`),\n }))\n )\n );\n readonly documentTypeItems$: Observable<Array<SelectItem>> = combineLatest([\n this.route?.params || of(null),\n this.route?.firstChild?.params || of(null),\n this.valtimoModalService.documentDefinitionName$,\n ]).pipe(\n filter(\n ([params, firstChildParams, documentDefinitionName]) =>\n !!(\n params?.documentDefinitionName ||\n firstChildParams?.documentDefinitionName ||\n documentDefinitionName\n )\n ),\n switchMap(([params, firstChildParams, documentDefinitionName]) =>\n this.documentService.getDocumentTypes(\n params?.documentDefinitionName ||\n firstChildParams?.documentDefinitionName ||\n documentDefinitionName\n )\n ),\n map(documentTypes => documentTypes.map(type => ({id: type.url, text: type.name})))\n );\n readonly showForm$: Observable<boolean> = this.modalService.modalVisible$;\n readonly valid$ = new BehaviorSubject<boolean>(false);\n readonly userEmail$ = from(this.keycloakService.loadUserProfile()).pipe(\n map(userProfile => userProfile?.email || '')\n );\n\n private showSubscription!: Subscription;\n private hideSubscription!: Subscription;\n\n constructor(\n private readonly modalService: ModalService,\n private readonly translateService: TranslateService,\n private readonly route: ActivatedRoute,\n private readonly documentService: DocumentService,\n private readonly keycloakService: KeycloakService,\n private readonly valtimoModalService: ValtimoModalService\n ) {}\n\n ngOnInit(): void {\n this.openShowSubscription();\n this.openHideSubscription();\n }\n\n ngOnDestroy(): void {\n this.showSubscription?.unsubscribe();\n this.hideSubscription?.unsubscribe();\n }\n\n hide(): void {\n this.formData$.next(null);\n this.valid$.next(false);\n this.additionalDocumentDate$.next('neither');\n this.modalService.closeModal();\n }\n\n cancel(): void {\n this.hide();\n }\n\n save(): void {\n combineLatest([this.valid$, this.formData$])\n .pipe(take(1))\n .subscribe(([valid, formData]) => {\n if (valid) {\n this.metadata.emit(formData);\n }\n });\n }\n\n formValueChange(data: DocumentenApiMetadata): void {\n this.formData$.next(data);\n this.setValid(data);\n }\n\n setAdditionalDate(value: AdditionalDocumentDate): void {\n this.additionalDocumentDate$.next(value);\n }\n\n private setValid(data: DocumentenApiMetadata): void {\n this.valid$.next(\n !!(\n data.filename &&\n data.title &&\n data.author &&\n data.creationDate &&\n data.status &&\n data.language &&\n data.informatieobjecttype\n )\n );\n }\n\n private openShowSubscription(): void {\n this.showSubscription = this.show$.subscribe(() => {\n this.modalService.openModal(this.documentenApiMetadataModal);\n });\n }\n\n private openHideSubscription(): void {\n this.hideSubscription = this.hide$.subscribe(() => {\n this.hide();\n });\n }\n}\n","<!--\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<v-modal\n #documentenApiMetadataModal\n (closeEvent)=\"hide()\"\n *ngIf=\"{file: file$ | async, disabled: disabled$ | async, valid: valid$ | async} as obs\"\n>\n <div role=\"header\">\n <div class=\"edit-configuration-title\">\n <v-title [center]=\"true\" [fullWidth]=\"true\" [margin]=\"false\" type=\"h2\">{{\n 'document.fillInMetadata' | translate\n }}</v-title>\n </div>\n </div>\n <div role=\"content\">\n <ng-container *ngTemplateOutlet=\"metadataForm; context: {obs: obs}\"></ng-container>\n </div>\n <div role=\"footer\">\n <div class=\"buttons\">\n <v-button (clickEvent)=\"cancel()\" [disabled]=\"obs.disabled\" type=\"secondary\">{{\n 'document.cancel' | translate\n }}</v-button>\n <v-button\n (clickEvent)=\"save()\"\n [disabled]=\"obs.disabled || !obs.valid\"\n mdiIcon=\"upload\"\n type=\"success\"\n >{{ 'document.upload' | translate }}</v-button\n >\n </div>\n </div>\n</v-modal>\n\n<ng-template #metadataForm let-obs=\"obs\">\n <ng-container *ngIf=\"showForm$ | async\">\n <v-form\n (valueChange)=\"formValueChange($event)\"\n *ngIf=\"additionalDocumentDate$ | async as additionalDate\"\n >\n <v-input\n [defaultValue]=\"filename || obs.file?.name\"\n [disabled]=\"obs.disabled || disableFilename\"\n [fullWidth]=\"true\"\n [margin]=\"true\"\n [required]=\"true\"\n [title]=\"'document.filename' | translate\"\n [tooltip]=\"'document.filenameTooltip' | translate\"\n name=\"filename\"\n >\n </v-input>\n <v-input\n [defaultValue]=\"documentTitle\"\n [disabled]=\"obs.disabled || disableDocumentTitle\"\n [margin]=\"true\"\n [required]=\"true\"\n [title]=\"'document.inputTitle' | translate\"\n [tooltip]=\"'document.inputTitleTooltip' | translate\"\n [widthPx]=\"400\"\n name=\"title\"\n >\n </v-input>\n <v-input\n [defaultValue]=\"author || (userEmail$ | async)\"\n [disabled]=\"obs.disabled || disableAuthor\"\n [margin]=\"true\"\n [required]=\"true\"\n [title]=\"'document.author' | translate\"\n [tooltip]=\"'document.authorTooltip' | translate\"\n [widthPx]=\"300\"\n name=\"author\"\n >\n </v-input>\n <v-select\n *ngIf=\"languageItems$ | async as languageItems\"\n [defaultSelectionId]=\"language || languageItems[0].id\"\n [disabled]=\"obs.disabled || disableLanguage\"\n [items]=\"languageItems\"\n [margin]=\"true\"\n [required]=\"true\"\n [title]=\"'document.language' | translate\"\n [tooltip]=\"'document.languageTooltip' | translate\"\n [widthInPx]=\"200\"\n name=\"language\"\n ></v-select>\n <ng-container *ngIf=\"{documentTypeItems: documentTypeItems$ | async} as obs\">\n <v-select\n [defaultSelectionId]=\"documentType\"\n [disabled]=\"obs.disabled || disableDocumentType\"\n [items]=\"obs.documentTypeItems\"\n [loading]=\"!obs.documentTypeItems\"\n [margin]=\"true\"\n [required]=\"true\"\n [title]=\"'document.informatieobjecttype' | translate\"\n [tooltip]=\"'document.informatieobjecttypeTooltip' | translate\"\n [widthInPx]=\"200\"\n name=\"informatieobjecttype\"\n ></v-select>\n </ng-container>\n <v-date-picker\n [defaultDateIsToday]=\"true\"\n [disabled]=\"obs.disabled\"\n [margin]=\"true\"\n [required]=\"true\"\n [title]=\"'document.creationDate' | translate\"\n [tooltip]=\"'document.creationDateTooltip' | translate\"\n [widthPx]=\"100\"\n name=\"creationDate\"\n ></v-date-picker>\n <ng-container\n *ngTemplateOutlet=\"additionalDatePicker; context: {additionalDate: additionalDate}\"\n ></ng-container>\n <v-date-picker\n *ngIf=\"additionalDate === 'received'\"\n [defaultDateIsToday]=\"true\"\n [disabled]=\"obs.disabled\"\n [margin]=\"true\"\n [title]=\"'document.receiptDate' | translate\"\n [tooltip]=\"'document.receiptDateTooltip' | translate\"\n [widthPx]=\"100\"\n name=\"receiptDate\"\n ></v-date-picker>\n <v-date-picker\n *ngIf=\"additionalDate === 'sent'\"\n [defaultDateIsToday]=\"true\"\n [disabled]=\"obs.disabled\"\n [margin]=\"true\"\n [title]=\"'document.sendDate' | translate\"\n [tooltip]=\"'document.sendDateTooltip' | translate\"\n [widthPx]=\"100\"\n name=\"sendDate\"\n ></v-date-picker>\n <v-select\n [defaultSelectionId]=\"status\"\n [disabled]=\"obs.disabled || disableStatus\"\n [items]=\"statusItems$ | async\"\n [margin]=\"true\"\n [required]=\"true\"\n [title]=\"'document.status' | translate\"\n [tooltip]=\"'document.statusTooltip' | translate\"\n [widthInPx]=\"200\"\n [clearSelectionSubject$]=\"clearStatusSelection$\"\n name=\"status\"\n ></v-select>\n <v-input\n [defaultValue]=\"description\"\n [disabled]=\"obs.disabled || disableDescription\"\n [fullWidth]=\"true\"\n [margin]=\"true\"\n [title]=\"'document.inputDescription' | translate\"\n [tooltip]=\"'document.inputDescriptionTooltip' | translate\"\n name=\"description\"\n >\n </v-input>\n <v-select\n [defaultSelectionId]=\"confidentialityLevel\"\n [disabled]=\"obs.disabled || disableConfidentialityLevel\"\n [items]=\"confidentialityLevelItems$ | async\"\n [margin]=\"true\"\n [title]=\"'document.confidentialityLevel' | translate\"\n [tooltip]=\"'document.confidentialityLevelTooltip' | translate\"\n [widthInPx]=\"200\"\n name=\"confidentialityLevel\"\n ></v-select>\n </v-form>\n </ng-container>\n</ng-template>\n\n<ng-template #additionalDatePicker let-additionalDate=\"additionalDate\">\n <v-input-label\n [title]=\"'document.additionalDate' | translate\"\n [name]=\"'additionalDate'\"\n [tooltip]=\"'document.additionalDateTooltip' | translate\"\n [required]=\"true\"\n >\n </v-input-label>\n <div class=\"col-12 col-sm-8 col-lg-6 form-check mt-1 additional-date\">\n <label\n class=\"custom-control custom-radio custom-control-inline\"\n *ngFor=\"let option of ADDITONAL_DOCUMENT_DATE_OPTIONS\"\n (click)=\"setAdditionalDate(option.value)\"\n >\n <input\n class=\"custom-control-input\"\n type=\"radio\"\n name=\"radio-inline\"\n [checked]=\"additionalDate === option.value\"\n /><span class=\"custom-control-label\">{{ option.translationKey | translate }}</span>\n </label>\n </div>\n</ng-template>\n","/*\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\nimport {Component, EventEmitter, Input, Output} from '@angular/core';\nimport {FormioCustomComponent} from '@formio/angular';\nimport {BehaviorSubject, combineLatest, Observable, of, startWith, Subject, switchMap} from 'rxjs';\nimport {\n DocumentenApiFileReference,\n DownloadService,\n UploadProviderService,\n} from '@valtimo/resource';\nimport {FormIoStateService} from '../services/form-io-state.service';\nimport {FormIoDomService} from '../services/form-io-dom.service';\nimport {DocumentenApiMetadata} from '../../../models';\nimport {filter, map, take, tap} from 'rxjs/operators';\nimport {ValtimoModalService} from '../../../services/valtimo-modal.service';\nimport {UserProviderService} from '@valtimo/security';\nimport {ActivatedRoute} from '@angular/router';\n\n@Component({\n selector: 'valtimo-documenten-api-formio-uploader',\n templateUrl: './documenten-api-uploader.component.html',\n styleUrls: ['./documenten-api-uploader.component.scss'],\n})\nexport class DocumentenApiUploaderComponent\n implements FormioCustomComponent<Array<DocumentenApiFileReference>>\n{\n @Input() disabled: boolean;\n @Input() title: string;\n @Input() hideTitle: boolean;\n @Input() subtitle: string;\n @Input() maxFileSize: number;\n @Input() hideMaxFileSize: boolean;\n @Input() camera: boolean;\n\n @Input() documentTitle: string;\n @Input() disableDocumentTitle: boolean;\n @Input() filename: string;\n @Input() disableFilename: boolean;\n @Input() author: string;\n @Input() disableAuthor: boolean;\n @Input() status: string;\n @Input() disableStatus: boolean;\n @Input() language: string;\n @Input() disableLanguage: boolean;\n @Input() documentType: string;\n @Input() disableDocumentType: boolean;\n @Input() description: string;\n @Input() disableDescription: boolean;\n @Input() confidentialityLevel: string;\n @Input() disableConfidentialityLevel: boolean;\n\n @Output() valueChange = new EventEmitter<Array<DocumentenApiFileReference>>();\n\n readonly uploading$ = new BehaviorSubject<boolean>(false);\n readonly fileToBeUploaded$ = new BehaviorSubject<File | null>(null);\n readonly modalDisabled$ = new BehaviorSubject<boolean>(false);\n readonly showModal$ = new Subject<null>();\n readonly hideModal$ = new Subject<null>();\n readonly uploadProcessLinked$: Observable<boolean | string> = combineLatest([\n this.route?.params || of(null),\n this.route?.firstChild?.params || of(null),\n this.modalService.documentDefinitionName$,\n ]).pipe(\n filter(\n ([params, firstChildParams, documentDefinitionName]) =>\n !!(\n params?.documentDefinitionName ||\n firstChildParams?.documentDefinitionName ||\n documentDefinitionName\n )\n ),\n switchMap(([params, firstChildParams, documentDefinitionName]) =>\n this.uploadProviderService.checkUploadProcessLink(\n params?.documentDefinitionName ||\n firstChildParams?.documentDefinitionName ||\n documentDefinitionName\n )\n ),\n startWith('loading')\n );\n readonly isAdmin$: Observable<boolean> = this.userProviderService\n .getUserSubject()\n .pipe(map(userIdentity => userIdentity?.roles.includes('ROLE_ADMIN')));\n\n constructor(\n private readonly uploadProviderService: UploadProviderService,\n private readonly stateService: FormIoStateService,\n private readonly domService: FormIoDomService,\n private readonly downloadService: DownloadService,\n private readonly modalService: ValtimoModalService,\n private readonly userProviderService: UserProviderService,\n private readonly route: ActivatedRoute\n ) {}\n\n _value: Array<DocumentenApiFileReference> = [];\n\n public get value(): Array<DocumentenApiFileReference> {\n return this._value;\n }\n\n @Input()\n public set value(value: Array<DocumentenApiFileReference>) {\n if (Array.isArray(value)) {\n this._value = value;\n }\n }\n\n fileSelected(file: File): void {\n this.fileToBeUploaded$.next(file);\n this.showModal$.next(null);\n }\n\n deleteFile(id: string): void {\n this.domService.toggleSubmitButton(true);\n this._value = this._value.filter((file: DocumentenApiFileReference) =>\n file?.id ? file?.id !== id : true\n );\n this.valueChange.emit(this._value);\n }\n\n metadataSet(metadata: DocumentenApiMetadata): void {\n this.uploading$.next(true);\n this.hideModal$.next(null);\n this.domService.toggleSubmitButton(true);\n\n this.fileToBeUploaded$\n .pipe(\n take(1),\n switchMap(file => this.uploadProviderService.uploadTempFileWithMetadata(file, metadata)),\n tap(result => {\n this.domService.toggleSubmitButton(false);\n this.uploading$.next(false);\n this._value.push(result);\n this.valueChange.emit(this._value);\n })\n )\n .subscribe();\n }\n}\n","<!--\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<ng-container *ngIf=\"{linked: uploadProcessLinked$ | async, isAdmin: isAdmin$ | async} as obs\">\n <div *ngIf=\"obs.linked === false\">\n <div\n *ngIf=\"obs.isAdmin\"\n [translate]=\"'dossier.documenten.noProcessLinked.adminRole'\"\n class=\"bg-warning text-black mb-2 p-3 text-center\"\n ></div>\n <div\n *ngIf=\"!obs.isAdmin\"\n [translate]=\"'dossier.documenten.noProcessLinked.regularUser'\"\n class=\"bg-warning text-black mb-2 p-3 text-center\"\n ></div>\n </div>\n <valtimo-dropzone\n (fileSelected)=\"fileSelected($event)\"\n [acceptedFiles]=\"null\"\n [camera]=\"camera\"\n [disabled]=\"disabled || obs.linked === false || obs.linked === 'loading'\"\n [hideFilePreview]=\"true\"\n [hideTitle]=\"hideTitle\"\n [maxFileSize]=\"maxFileSize\"\n [maxFiles]=\"1\"\n [showMaxFileSize]=\"!hideMaxFileSize\"\n [subtitle]=\"subtitle\"\n [title]=\"title\"\n [uploading]=\"uploading$ | async\"\n ></valtimo-dropzone>\n</ng-container>\n\n<div *ngFor=\"let resource of _value\" class=\"file-preview\">\n <div class=\"file-preview-name\">\n <span>\n {{ resource.filename }}\n </span>\n </div>\n <div class=\"file-preview-size\">\n <span>\n {{ resource.sizeInBytes | filesize }}\n </span>\n </div>\n <div *ngIf=\"!disabled\" class=\"file-preview-delete\">\n <a (click)=\"deleteFile(resource.id)\">\n <i class=\"icon mdi mdi-delete\"></i>\n </a>\n </div>\n</div>\n\n<valtimo-documenten-api-metadata-modal\n (metadata)=\"metadataSet($event)\"\n [author]=\"author\"\n [confidentialityLevel]=\"confidentialityLevel\"\n [description]=\"description\"\n [disableAuthor]=\"disableAuthor\"\n [disableConfidentialityLevel]=\"disableConfidentialityLevel\"\n [disableDescription]=\"disableDescription\"\n [disableDocumentTitle]=\"disableDocumentTitle\"\n [disableDocumentType]=\"disableDocumentType\"\n [disableFilename]=\"disableFilename\"\n [disableLanguage]=\"disableLanguage\"\n [disableStatus]=\"disableStatus\"\n [disabled$]=\"modalDisabled$\"\n [documentTitle]=\"documentTitle\"\n [documentType]=\"documentType\"\n [file$]=\"fileToBeUploaded$\"\n [filename]=\"filename\"\n [hide$]=\"hideModal$\"\n [language]=\"language\"\n [show$]=\"showModal$\"\n [status]=\"status\"\n></valtimo-documenten-api-metadata-modal>\n","/*\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\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {DocumentenApiMetadataModalComponent} from './documenten-api-metadata-modal.component';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {\n ButtonModule,\n DatePickerModule,\n FormModule,\n InputLabelModule,\n InputModule,\n ModalModule,\n SelectModule,\n TitleModule,\n} from '@valtimo/user-interface';\n\n@NgModule({\n declarations: [DocumentenApiMetadataModalComponent],\n exports: [DocumentenApiMetadataModalComponent],\n imports: [\n CommonModule,\n TranslateModule,\n ModalModule,\n TitleModule,\n ButtonModule,\n TranslateModule,\n FormModule,\n InputModule,\n SelectModule,\n DatePickerModule,\n InputLabelModule,\n ],\n})\nexport class DocumentenApiMetadataModalModule {}\n","/*\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\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {FormioComponent} from './form-io.component';\nimport {FormioBuilderComponent} from './form-io-builder.component';\nimport {FormioAppConfig, FormioModule} from '@formio/angular';\nimport {AppConfig} from './formio-config';\nimport {FormIoUploaderComponent} from './form-io-uploader/form-io-uploader.component';\nimport {DropzoneModule} from '../dropzone/dropzone.module';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {DocumentModule} from '@valtimo/document';\nimport {FormIoDomService} from './services/form-io-dom.service';\nimport {FileSizeModule} from '../file-size/file-size.module';\nimport {ResourceModule} from '@valtimo/resource';\nimport {RouterModule} from '@angular/router';\nimport {DocumentenApiUploaderComponent} from './documenten-api-uploader/documenten-api-uploader.component';\nimport {DocumentenApiMetadataModalModule} from '../documenten-api-metadata-modal/documenten-api-metadata-modal.module';\n\n@NgModule({\n imports: [\n CommonModule,\n FormioModule,\n DropzoneModule,\n TranslateModule,\n DocumentModule,\n FileSizeModule,\n ResourceModule,\n RouterModule,\n DocumentenApiMetadataModalModule,\n ],\n declarations: [\n FormioComponent,\n FormioBuilderComponent,\n FormIoUploaderComponent,\n DocumentenApiUploaderComponent,\n ],\n exports: [\n FormioComponent,\n FormioBuilderComponent,\n FormIoUploaderComponent,\n DocumentenApiUploaderComponent,\n ],\n providers: [FormIoDomService, {provide: FormioAppConfig, useValue: AppConfig}],\n})\nexport class FormIoModule {}\n","/*\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\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n Input,\n OnDestroy,\n OnInit,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport {ValtimoModalService} from '../../services/valtimo-modal.service';\nimport {BehaviorSubject, Subscription} from 'rxjs';\n\n// eslint-disable-next-line no-var\ndeclare var $;\n\n@Component({\n selector: 'valtimo-modal',\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.component.scss'],\n})\nexport class ModalComponent implements AfterViewInit, OnInit, OnDestroy {\n @Input() elementId: string;\n @Input() title = '';\n @Input() subtitle = '';\n @Input() templateBelowSubtitle: TemplateRef<any>;\n @Input() showFooter = false;\n\n @ViewChild('scrollModal') scrollModal: ElementRef<HTMLDivElement>;\n\n readonly modalShowing$ = new BehaviorSubject<boolean>(false);\n\n private scrollSubscription!: Subscription;\n\n private observer!: MutationObserver;\n\n constructor(private readonly modalService: ValtimoModalService) {}\n\n ngOnInit(): void {\n this.openScrollSubscription();\n }\n\n ngAfterViewInit() {\n $(`#${this.elementId}`).modal({show: false});\n this.watchForClassChanges();\n }\n\n show() {\n $(`#${this.elementId}`).modal('show');\n }\n\n hide() {\n $(`#${this.elementId}`).modal('hide');\n }\n\n ngOnDestroy(): void {\n this.scrollSubscription?.unsubscribe();\n this.observer?.disconnect();\n }\n\n private openScrollSubscription(): void {\n this.scrollSubscription = this.modalService.scrollToTop$.subscribe(() => {\n const element = this.scrollModal.nativeElement;\n\n if (element) element.scrollTo(0, 0);\n });\n }\n\n private watchForClassChanges(): void {\n this.observer = new MutationObserver(mutations => {\n mutations?.forEach(mutation => {\n if (mutation?.attributeName === 'class') {\n const modalShowing = (mutation?.target as any)?.classList?.contains('show');\n this.modalShowing$.next(modalShowing);\n }\n });\n });\n const config = {attributes: true, childList: false, characterData: false};\n this.observer.observe(this.scrollModal.nativeElement, config);\n }\n}\n","<!--\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 class=\"modal fade custom-width\" [id]=\"elementId\" role=\"dialog\" aria-modal=\"true\" #scrollModal>\n <div class=\"modal-dialog modal-lg\">\n <div class=\"modal-content\">\n <div class=\"modal-header modal-header-colored colored-header-grey\">\n <div class=\"modal-title\">\n <h4 class=\"title-text mb-2\">{{ title }}</h4>\n <h5 class=\"subtitle-text\">{{ subtitle }}</h5>\n <ng-container *ngIf=\"templateBelowSubtitle\">\n <ng-container *ngTemplateOutlet=\"templateBelowSubtitle\"></ng-container>\n </ng-container>\n </div>\n <div class=\"text-right\">\n <img src=\"assets/modal/header-image.png\" class=\"modal-header-image\" />\n <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\n <span aria-hidden=\"true\">&times;</span>\n </button>\n </div>\n </div>\n <div class=\"modal-body\">\n <ng-content select=\"[body]\"></ng-content>\n </div>\n <div class=\"modal-footer\" *ngIf=\"showFooter\">\n <ng-content select=\"[footer]\"></ng-content>\n </div>\n </div>\n </div>\n</div>\n","/*\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\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {ModalComponent} from './modal.component';\n\n@NgModule({\n declarations: [ModalComponent],\n imports: [CommonModule],\n exports: [ModalComponent],\n})\nexport class ModalModule {}\n","/*\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\nimport {Component, Input} from '@angular/core';\n\n@Component({\n selector: 'valtimo-spinner',\n templateUrl: './spinner.component.html',\n styleUrls: ['./spinner.component.scss'],\n})\nexport class SpinnerComponent {\n @Input() useBootstrapSpinner = true;\n @Input() name: string;\n @Input() type = 'ball-clip-rotate';\n @Input() size = 'medium';\n @Input() color = 'currentColor';\n @Input() bdColor = 'rgba(0,0,0,0)';\n @Input() fullScreen = false;\n @Input() noMarginTop = false;\n}\n","<!--\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<ng-container *ngIf=\"useBootstrapSpinner; else ngxSpinner\">\n <div class=\"spinner-container\" [ngClass]=\"{'no-margin-top': noMarginTop}\">\n <div class=\"spinner-border text-primary\" role=\"status\">\n <span class=\"sr-only\">{{ 'interface.loading' | translate }}</span>\n </div>\n </div>\n</ng-container>\n\n<ng-template #ngxSpinner>\n <ngx-spinner\n [bdColor]=\"bdColor\"\n [fullScreen]=\"fullScreen\"\n [name]=\"name\"\n [color]=\"color\"\n [size]=\"size\"\n [type]=\"type\"\n >\n </ngx-spinner>\n</ng-template>\n","/*\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\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {SpinnerComponent} from './spinner.component';\nimport {NgxSpinnerModule} from 'ngx-spinner';\nimport {TranslateModule} from '@ngx-translate/core';\n\n@NgModule({\n declarations: [SpinnerComponent],\n exports: [SpinnerComponent],\n imports: [CommonModule, NgxSpinnerModule, TranslateModule],\n})\nexport class SpinnerModule {}\n","/*\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\nimport {\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n SimpleChanges,\n ViewChildren,\n} from '@angular/core';\nimport {FormControl} from '@angular/forms';\nimport {DropdownButtonStyle, DropdownItem} from '../../models';\nimport {BehaviorSubject, combineLatest, fromEvent, Subscription} from 'rxjs';\nimport {debounceTime, take} from 'rxjs/operators';\n\n@Component({\n selector: 'valtimo-searchable-dropdown',\n templateUrl: './searchable-dropdown.component.html',\n styleUrls: ['./searchable-dropdown.component.scss'],\n})\nexport class SearchableDropdownComponent implements OnInit, OnDestroy, OnChanges {\n @Input() style: DropdownButtonStyle;\n @Input() items: Array<DropdownItem>;\n @Input() buttonText: string;\n @Input() searchText: string;\n @Input() noResultsText: string;\n @Input() disabled: boolean;\n @Input() width = 250;\n\n @Output() itemSelected = new EventEmitter();\n\n @ViewChildren('button') buttons: QueryList<ElementRef>;\n\n private readonly searchId = 'search';\n\n readonly searchTerm = new FormControl('');\n\n readonly focusedItemId$ = new BehaviorSubject<string>(this.searchId);\n\n readonly open$ = new BehaviorSubject<boolean>(false);\n\n readonly filteredItems$ = new BehaviorSubject<Array<DropdownItem>>(undefined);\n\n private wasInside = false;\n\n private keySubscription: Subscription;\n\n private searchSubscription: Subscription;\n\n private readonly mouseOnList$ = new BehaviorSubject<boolean>(false);\n\n @HostListener('click')\n clickInside() {\n this.wasInside = true;\n }\n\n @HostListener('document:click')\n clickout() {\n if (!this.wasInside) {\n this.closeDropdown();\n }\n this.wasInside = false;\n }\n\n ngOnInit(): void {\n this.openKeysSubscription();\n this.openSearchSubscription();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const itemChanges = changes.items;\n const currenItems = itemChanges.currentValue;\n if (itemChanges && !itemChanges.previousValue && currenItems) {\n this.filteredItems$.next(currenItems);\n }\n }\n\n ngOnDestroy(): void {\n this.keySubscription.unsubscribe();\n this.searchSubscription.unsubscribe();\n }\n\n openDropdown(): void {\n this.open$.next(true);\n }\n\n hoverOverButton(id: string): void {\n this.focusedItemId$.next(id);\n }\n\n mouseEnterList(): void {\n this.mouseOnList$.next(true);\n }\n\n mouseLeaveList(): void {\n this.mouseOnList$.next(false);\n }\n\n resetFocus(): void {\n this.focusedItemId$.next(this.searchId);\n }\n\n submit(id: string): void {\n this.itemSelected.emit(id);\n }\n\n private closeDropdown(): void {\n this.searchTerm.setValue('');\n this.resetFocus();\n this.open$.next(false);\n }\n\n private openKeysSubscription(): void {\n this.keySubscription = fromEvent(document, 'keyup')\n .pipe(debounceTime(50))\n .subscribe((event: KeyboardEvent) => {\n combineLatest([this.mouseOnList$, this.filteredItems$, this.focusedItemId$])\n .pipe(take(1))\n .subscribe(([mouseOnList, items, focusedId]) => {\n const length = items.length;\n const focusedIndex = items.findIndex(item => item.id === focusedId);\n const code = event.code;\n const shiftKey = event.shiftKey;\n const down = 'ArrowDown';\n const tab = 'Tab';\n const up = 'ArrowUp';\n const enter = 'Enter';\n const escape = 'Escape';\n\n // close dropdown on pressing escape\n if (code === escape) {\n this.closeDropdown();\n }\n\n // submit item when focus is on an item in the list and enter is pressed\n if (code === enter && focusedId !== this.searchId) {\n this.submit(focusedId);\n }\n\n // only handle tab or arrow keypresses when items are shown and the mouse is not on the list\n if (length > 0 && !mouseOnList) {\n // handle moving down in the list with arrow down or tab\n if (code === down || (code === tab && !shiftKey)) {\n // move focus to first item in the list when focus is on search box\n if (focusedId === this.searchId) {\n this.focusedItemId$.next(items[0].id);\n this.scrollButtonIntoView(focusedId);\n // move focus to next item in the list if focus is not on last item\n } else if (focusedIndex + 1 < length) {\n this.focusedItemId$.next(items[focusedIndex + 1].id);\n this.scrollButtonIntoView(focusedId);\n }\n // handle moving up in the list with up arrow up or shift+tab\n } else if (\n (code === up || (code === tab && shiftKey)) &&\n focusedId !== this.searchId\n ) {\n // move to previous item if focus is not on the first item in the list\n if (focusedIndex > 0) {\n this.focusedItemId$.next(items[focusedIndex - 1].id);\n this.scrollButtonIntoView(focusedId);\n // move focus to search box if focus is on first item in the list\n } else {\n this.resetFocus();\n }\n }\n }\n });\n });\n }\n\n private openSearchSubscription(): void {\n this.searchSubscription = this.searchTerm.valueChanges.subscribe(searchTerm => {\n this.focusedItemId$.pipe(take(1)).subscribe(focusedItemId => {\n if (!searchTerm) {\n this.filteredItems$.next(this.items);\n } else {\n const filteredItems = this.items.filter(item =>\n item.text.toUpperCase().includes(searchTerm.toUpperCase())\n );\n\n this.filteredItems$.next(filteredItems);\n\n // move focus to search box if filtered list length is 0 or previously focused item is not in filtered list anymore\n if (\n filteredItems.length === 0 ||\n !filteredItems.some(item => item.id === focusedItemId)\n ) {\n this.resetFocus();\n }\n }\n\n // move scrolling button into view to end of queue, so that DOM can be updated first\n setTimeout(() => {\n this.scrollButtonIntoView(focusedItemId);\n });\n });\n });\n }\n\n private scrollButtonIntoView(id: string): void {\n this.filteredItems$.pipe(take(1)).subscribe(items => {\n const focusItemIndex = items.findIndex(item => item.id === id);\n const focusedButton = this.buttons.toArray()[focusItemIndex];\n\n if (focusedButton) {\n focusedButton.nativeElement.scrollIntoView({behavior: 'smooth', block: 'center'});\n }\n });\n }\n}\n","<!--\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<ng-container *ngIf=\"buttonText && items\">\n <ng-container [ngTemplateOutlet]=\"(open$ | async) ? opened : closed\"> </ng-container>\n</ng-container>\n\n<ng-template #closed>\n <ng-container *ngIf=\"style === 'button' || !style\">\n <button\n class=\"btn btn-primary btn-sm searchable-dropdown__size\"\n (click)=\"openDropdown()\"\n [style.width.px]=\"width\"\n >\n {{ buttonText }}\n </button>\n </ng-container>\n <ng-container *ngIf=\"style === 'underlinedText'\">\n <h5\n class=\"searchable-dropdown__underline-button\"\n (click)=\"openDropdown()\"\n [style.width.px]=\"width\"\n >\n <b>\n {{ buttonText }}\n </b>\n </h5>\n </ng-container>\n</ng-template>\n\n<ng-template #opened>\n <div class=\"searchable-dropdown__container\" [style.width.px]=\"width\">\n <div class=\"searchable-dropdown__size searchable-dropdown__search\" [style.width.px]=\"width\">\n <input\n #search\n [ngClass]=\"{disabled: disabled}\"\n [placeholder]=\"searchText\"\n [formControl]=\"searchTerm\"\n />\n {{ search.focus() }}\n </div>\n <div\n class=\"searchable-dropdown__list\"\n (mouseenter)=\"mouseEnterList()\"\n (mouseleave)=\"mouseLeaveList()\"\n >\n <ng-container *ngIf=\"filteredItems$ | async as filteredItems\">\n <ng-container\n *ngIf=\"\n filteredItems.length > 0 && focusedItemId$ | async as focusedItemId;\n else noResults\n \"\n >\n <button\n #button\n *ngFor=\"let item of filteredItems\"\n [ngClass]=\"{focus: focusedItemId === item.id, disabled: disabled}\"\n class=\"searchable-dropdown__button searchable-dropdown__size\"\n (click)=\"submit(item.id)\"\n (mouseenter)=\"hoverOverButton(item.id)\"\n (mouseleave)=\"resetFocus()\"\n [style.width.px]=\"width\"\n >\n <span class=\"searchable-dropdown__button-text\">\n {{ item.text }}\n </span>\n </button>\n </ng-container>\n </ng-container>\n </div>\n </div>\n <ng-container [ngTemplateOutlet]=\"space\"> </ng-container>\n</ng-template>\n\n<ng-template #noResults>\n <div\n class=\"searchable-dropdown__button searchable-dropdown__size disabled\"\n [style.width.px]=\"width\"\n >\n <span class=\"searchable-dropdown__button-text\">{{ noResultsText }}</span>\n </div>\n</ng-template>\n\n<ng-template #space>\n <div\n *ngIf=\"style === 'button' || !style\"\n class=\"searchable-dropdown__size\"\n [style.width.px]=\"width\"\n ></div>\n <h5 *ngIf=\"style === 'underlinedText'\" class=\"searchable-dropdown__underline-button\"><b>-</b></h5>\n</ng-template>\n","/*\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\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {ReactiveFormsModule} from '@angular/forms';\nimport {SearchableDropdownComponent} from './searchable-dropdown.component';\n\n@NgModule({\n declarations: [SearchableDropdownComponent],\n imports: [CommonModule, ReactiveFormsModule],\n exports: [SearchableDropdownComponent],\n})\nexport class SearchableDropdownModule {}\n","/*\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\nexport const formIoUploaderEditForm = () => ({\n components: [\n {key: 'type', type: 'hidden'},\n {\n type: 'textfield',\n input: true,\n key: 'label',\n label: 'Label',\n placeholder: 'Label',\n validate: {\n required: true,\n },\n },\n {\n type: 'textfield',\n input: true,\n key: 'key',\n label: 'Property Name',\n placeholder: 'Property Name',\n tooltip: 'The name of this field in the API endpoint.',\n validate: {\n required: true,\n },\n },\n {\n type: 'textfield',\n input: true,\n key: 'customOptions.title',\n label: 'Title',\n placeholder: 'Title',\n tooltip: 'Leave empty to use the default title',\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.hideTitle',\n label: 'Hide title',\n validate: {\n required: false,\n },\n },\n {\n type: 'textfield',\n input: true,\n key: 'customOptions.subtitle',\n label: 'Subtitle',\n placeholder: 'Title',\n tooltip: 'Leave empty to hide subtitle',\n validate: {\n required: false,\n },\n },\n {\n type: 'number',\n input: true,\n key: 'customOptions.maxFileSize',\n label: 'Maximum file size',\n placeholder: 'Maximum file size',\n defaultValue: 5,\n validate: {\n required: true,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.hideMaxFileSize',\n label: 'Hide maximum file size',\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.camera',\n label: 'Allow camera uploads',\n validate: {\n required: false,\n },\n },\n ],\n});\n","/*\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\nimport {Injector} from '@angular/core';\nimport {\n createCustomFormioComponent,\n FormioCustomComponentInfo,\n registerCustomFormioComponentWithClass,\n} from '@formio/angular';\nimport {FormIoUploaderComponent} from './form-io-uploader.component';\nimport {formIoUploaderEditForm} from './form-io-uploader-edit-form';\n\nexport const customUploaderType = 'valtimo-file';\n\nconst COMPONENT_OPTIONS: FormioCustomComponentInfo = {\n type: customUploaderType,\n selector: 'valtimo-form-io-uploader',\n title: 'Valtimo File Upload',\n group: 'basic',\n icon: 'upload',\n // set empty value to force formio to accept arrays as valid input value for this field type\n emptyValue: [],\n editForm: formIoUploaderEditForm,\n};\n\nexport function registerFormioUploadComponent(injector: Injector) {\n const originalUploadComponent = createCustomFormioComponent(COMPONENT_OPTIONS);\n\n // override setValue function to allow for setting an array value\n class UploaderComponent extends originalUploadComponent {\n setValue(value): boolean {\n this._customAngularElement.value = value;\n return true;\n }\n }\n\n if (!customElements.get(COMPONENT_OPTIONS.selector)) {\n registerCustomFormioComponentWithClass(\n COMPONENT_OPTIONS,\n FormIoUploaderComponent,\n UploaderComponent,\n injector\n );\n }\n}\n","/*\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\nexport const documentenApiUploaderEditForm = () => ({\n components: [\n {key: 'type', type: 'hidden'},\n {\n type: 'textfield',\n input: true,\n key: 'label',\n label: 'Label',\n placeholder: 'Label',\n validate: {\n required: true,\n },\n },\n {\n type: 'textfield',\n input: true,\n key: 'key',\n label: 'Property Name',\n placeholder: 'Property Name',\n tooltip: 'The name of this field in the API endpoint.',\n validate: {\n required: true,\n },\n },\n {\n type: 'textfield',\n input: true,\n key: 'customOptions.title',\n label: 'Title',\n placeholder: 'Title',\n tooltip: 'Leave empty to use the default title',\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.hideTitle',\n label: 'Hide title',\n validate: {\n required: false,\n },\n },\n {\n type: 'textfield',\n input: true,\n key: 'customOptions.subtitle',\n label: 'Subtitle',\n placeholder: 'Title',\n tooltip: 'Leave empty to hide subtitle',\n validate: {\n required: false,\n },\n },\n {\n type: 'number',\n input: true,\n key: 'customOptions.maxFileSize',\n label: 'Maximum file size',\n placeholder: 'Maximum file size',\n defaultValue: 5,\n validate: {\n required: true,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.hideMaxFileSize',\n label: 'Hide maximum file size',\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.camera',\n label: 'Allow camera uploads',\n validate: {\n required: false,\n },\n },\n {\n type: 'textfield',\n input: true,\n key: 'customOptions.documentTitle',\n label: 'Default document title',\n tooltip: 'Leave empty to let the user input their own title',\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.disableDocumentTitle',\n label: 'Disable document title input',\n validate: {\n required: false,\n },\n },\n {\n type: 'textfield',\n input: true,\n key: 'customOptions.filename',\n label: 'Default filename',\n tooltip: 'Leave empty to let the user input their own filename',\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.disableFilename',\n label: 'Disable filename input',\n validate: {\n required: false,\n },\n },\n {\n type: 'textfield',\n input: true,\n key: 'customOptions.author',\n label: 'Default author',\n tooltip: 'Leave empty to let the user input their own author',\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.disableAuthor',\n label: 'Disable author input',\n validate: {\n required: false,\n },\n },\n {\n type: 'select',\n label: 'Default status',\n key: 'customOptions.status',\n placeholder: 'Select a default status',\n data: {\n values: [\n {value: 'in_bewerking', label: 'In editing'},\n {value: 'ter_vaststelling', label: 'To be confirmed'},\n {value: 'definitief', label: 'Definitive'},\n {value: 'gearchiveerd', label: 'Archived'},\n ],\n },\n dataSrc: 'values',\n input: true,\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.disableStatus',\n label: 'Disable status input',\n validate: {\n required: false,\n },\n },\n {\n type: 'select',\n label: 'Default language',\n key: 'customOptions.language',\n placeholder: 'Select a default language',\n data: {\n values: [\n {value: 'nld', label: 'Dutch'},\n {value: 'eng', label: 'English'},\n {value: 'deu', label: 'German'},\n ],\n },\n dataSrc: 'values',\n input: true,\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.disableLanguage',\n label: 'Disable language input',\n validate: {\n required: false,\n },\n },\n {\n type: 'textfield',\n input: true,\n key: 'customOptions.documentType',\n label: 'Default document type url',\n tooltip:\n 'Must match the document type url exactly. Leave empty to let the user input their own document type',\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.disableDocumentType',\n label: 'Disable document type input',\n validate: {\n required: false,\n },\n },\n {\n type: 'textfield',\n input: true,\n key: 'customOptions.description',\n label: 'Default description',\n tooltip: 'Leave empty to let the user input their own description',\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.disableDescription',\n label: 'Disable description input',\n validate: {\n required: false,\n },\n },\n {\n type: 'select',\n label: 'Default confidentiality level',\n key: 'customOptions.confidentialityLevel',\n placeholder: 'Select a default confidentiality level',\n data: {\n values: [\n {value: 'openbaar', label: 'Public'},\n {value: 'beperkt_openbaar', label: 'Restricted public'},\n {value: 'intern', label: 'Internal'},\n {value: 'zaakvertrouwelijk', label: 'Case confidential'},\n {value: 'vertrouwelijk', label: 'Private'},\n {value: 'confidentieel', label: 'Confidential'},\n {value: 'geheim', label: 'Secret'},\n {value: 'zeer_geheim', label: 'Very secret'},\n ],\n },\n dataSrc: 'values',\n input: true,\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.disableConfidentialityLevel',\n label: 'Disable confidentiality level input',\n validate: {\n required: false,\n },\n },\n ],\n});\n","/*\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\nimport {Injector} from '@angular/core';\nimport {\n createCustomFormioComponent,\n FormioCustomComponentInfo,\n registerCustomFormioComponentWithClass,\n} from '@formio/angular';\nimport {DocumentenApiUploaderComponent} from './documenten-api-uploader.component';\nimport {documentenApiUploaderEditForm} from './documenten-api-uploader-edit-form';\n\nexport const customDocumentApiUploaderType = 'documenten-api-file';\n\nconst COMPONENT_OPTIONS: FormioCustomComponentInfo = {\n type: customDocumentApiUploaderType,\n selector: 'documenten-api-form-io-uploader',\n title: 'Documenten API File Upload',\n group: 'advanced',\n icon: 'upload',\n // set empty value to force formio to accept arrays as valid input value for this field type\n emptyValue: [],\n editForm: documentenApiUploaderEditForm,\n};\n\nexport function registerDocumentenApiFormioUploadComponent(injector: Injector) {\n const originalUploadComponent = createCustomFormioComponent(COMPONENT_OPTIONS);\n\n // override setValue function to allow for setting an array value\n class UploaderComponent extends originalUploadComponent {\n setValue(value): boolean {\n this._customAngularElement.value = value;\n return true;\n }\n }\n\n if (!customElements.get(COMPONENT_OPTIONS.selector)) {\n registerCustomFormioComponentWithClass(\n COMPONENT_OPTIONS,\n DocumentenApiUploaderComponent,\n UploaderComponent,\n injector\n );\n }\n}\n","/*\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\nimport {Injector} from '@angular/core';\nimport {Components, Formio} from '@formio/angular';\nimport {DocumentService} from '@valtimo/document';\nimport {FormIoStateService} from '../services/form-io-state.service';\nimport {take} from 'rxjs/operators';\nimport {ResourceOption} from '../../../models';\n\nconst SelectComponent = Components.components.select;\n\nexport function registerFormioFileSelectorComponent(injector: Injector) {\n const documentService = injector.get(DocumentService);\n const stateService = injector.get(FormIoStateService);\n\n const unavailableMessage: ResourceOption = {\n label: 'could not retrieve documents',\n value: null,\n };\n\n function getDocumentResources(documentId: string): Promise<ResourceOption[]> {\n if (!documentId) {\n return new Promise(resolve => {\n resolve([unavailableMessage]);\n });\n }\n return documentService\n .getDocument(documentId)\n .toPromise()\n .then(document =>\n document.relatedFiles.map(relatedFile => ({\n label: relatedFile.fileName,\n value: relatedFile.fileId,\n }))\n )\n .catch(\n () =>\n new Promise(resolve => {\n resolve([unavailableMessage]);\n })\n );\n }\n\n class ResourceSelectorComponent extends SelectComponent {\n static schema(...extend) {\n return SelectComponent.schema({\n type: 'resource-selector',\n label: 'Resource selector',\n key: 'resource-selector',\n dataSrc: 'custom',\n dataType: 'string',\n valueProperty: 'value',\n asyncValues: true,\n data: {\n custom: 'values = instance.getResources()',\n },\n ...extend,\n });\n }\n\n getResources() {\n return stateService.documentId$\n .pipe(take(1))\n .toPromise()\n .then(documentId => getDocumentResources(documentId));\n }\n\n static get builderInfo() {\n return {\n title: 'Document picker',\n icon: 'th-list',\n group: 'basic',\n documentation: '/userguide/#textfield',\n weight: 0,\n schema: ResourceSelectorComponent.schema(),\n };\n }\n }\n\n Formio.use({\n components: {\n 'resource-selector': ResourceSelectorComponent,\n },\n });\n}\n","/*\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\nimport {Component, EventEmitter, Input, Output} from '@angular/core';\nimport {DropdownButtonStyle, DropdownItem} from '../../models';\n\n@Component({\n selector: 'valtimo-searchable-dropdown-select',\n templateUrl: './searchable-dropdown-select.component.html',\n styleUrls: ['./searchable-dropdown-select.component.scss'],\n})\nexport class SearchableDropdownSelectComponent {\n @Input() style: DropdownButtonStyle;\n @Input() items: Array<DropdownItem>;\n @Input() buttonText: string;\n @Input() searchText: string;\n @Input() noResultsText: string;\n @Input() disabled: boolean;\n @Input() selectedText: string;\n @Input() selectedTextValue: string;\n @Input() clearSelectionButtonTitle: string;\n @Input() hasSelection: boolean;\n @Input() width = 250;\n\n @Output() itemSelected = new EventEmitter();\n @Output() clearSelection = new EventEmitter();\n\n onSelect(id: string): void {\n this.itemSelected.emit(id);\n }\n\n onClearSelection(): void {\n this.clearSelection.emit();\n }\n}\n","<!--\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<valtimo-searchable-dropdown\n *ngIf=\"!hasSelection; else selection\"\n [style]=\"style\"\n [items]=\"items\"\n [buttonText]=\"buttonText\"\n [searchText]=\"searchText\"\n [noResultsText]=\"noResultsText\"\n [disabled]=\"disabled\"\n [width]=\"width\"\n (itemSelected)=\"onSelect($event)\"\n>\n</valtimo-searchable-dropdown>\n\n<ng-template #selection>\n <div\n class=\"d-flex flex-row align-items-center\"\n [style.height.px]=\"style === 'button' ? 34 : null\"\n >\n <h5 class=\"selected-text\">\n {{ selectedText }} <b>{{ selectedTextValue }}</b>\n </h5>\n <button\n type=\"button\"\n class=\"close p-0 m-0 ml-2 d-flex text-danger\"\n aria-label=\"Close\"\n (click)=\"onClearSelection()\"\n [title]=\"clearSelectionButtonTitle\"\n >\n <i class=\"clear-icon mdi mdi-close text-danger\"></i>\n </button>\n </div>\n</ng-template>\n","/*\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\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {ReactiveFormsModule} from '@angular/forms';\nimport {SearchableDropdownSelectComponent} from './searchable-dropdown-select.component';\nimport {SearchableDropdownModule} from '../searchable-dropdown/searchable-dropdown.module';\n\n@NgModule({\n declarations: [SearchableDropdownSelectComponent],\n imports: [CommonModule, ReactiveFormsModule, SearchableDropdownModule],\n exports: [SearchableDropdownSelectComponent],\n})\nexport class SearchableDropdownSelectModule {}\n","/*\n * Copyright 2015-2022 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\nimport {Component, EventEmitter, Input, Output} from '@angular/core';\n\n@Component({\n selector: 'valtimo-multiselect-dropdown',\n templateUrl: './multiselect-dropdown.component.html',\n styleUrls: ['./multiselect-dropdown.component.scss'],\n})\nexport class MultiselectDropdownComponent {\n @Input() selectedItems: Array<string>;\n @Input() items = [];\n @Input() placeHolder: string;\n @Input() dropdownSettings = {\n singleSelection: false,\n selectAllText: 'Select All',\n unSelectAllText: 'UnSelect All',\n itemsShowLimit: 3,\n allowSearchFilter: true,\n };\n @Output() itemsSelected = new EventEmitter();\n\n onItemsSelected() {\n this.itemsSelected.emit(this.selectedItems);\n }\n}\n","<!--\n ~ Copyright 2015-2022 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<ng-multiselect-dropdown\n [placeholder]=\"placeHolder\"\n [data]=\"items\"\n [(ngModel)]=\"selectedItems\"\n [settings]=\"dropdownSettings\"\n (onDropDownClose)=\"onItemsSelected()\"\n></ng-multiselect-dropdown>\n","/*\n * Copyright 2015-2022 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\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {MultiselectDropdownComponent} from './multiselect-dropdown.component';\nimport {NgMultiSelectDropDownModule} from 'ng-multiselect-dropdown';\n\n@NgModule({\n declarations: [MultiselectDropdownComponent],\n imports: [CommonModule, ReactiveFormsModule, NgMultiSelectDropDownModule, FormsModule],\n exports: [MultiselectDropdownComponent],\n})\nexport class MultiselectDropdownModule {}\n","/*\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\nimport {Component, EventEmitter, Input, OnDestroy, OnInit, Output} from '@angular/core';\nimport {SearchField, SearchFieldBoolean, SearchFieldValues} from '@valtimo/config';\nimport {BehaviorSubject, map, Observable, Subject, Subscription, take} from 'rxjs';\nimport {SelectItem} from '@valtimo/user-interface';\nimport {TranslateService} from '@ngx-translate/core';\n\n@Component({\n selector: 'valtimo-search-fields',\n templateUrl: './search-fields.component.html',\n styleUrls: ['./search-fields.component.scss'],\n})\nexport class SearchFieldsComponent implements OnInit, OnDestroy {\n @Input() loading: boolean;\n @Input() set searchFields(fields: Array<SearchField>) {\n this.searchFields$.next(fields);\n }\n @Input() set documentDefinitionName(documentDefinitionName: string) {\n this.documentDefinitionName$.pipe(take(1)).subscribe(currentDocumentDefinitionName => {\n if (currentDocumentDefinitionName !== documentDefinitionName) {\n this.documentDefinitionName$.next(documentDefinitionName);\n }\n });\n }\n @Output() doSearch: EventEmitter<SearchFieldValues> = new EventEmitter<SearchFieldValues>();\n\n readonly documentDefinitionName$ = new BehaviorSubject<string>('');\n\n readonly searchFields$ = new BehaviorSubject<Array<SearchField>>([]);\n\n readonly values$ = new BehaviorSubject<SearchFieldValues>({});\n\n readonly hasValidValues$: Observable<boolean> = this.values$.pipe(\n map(values => {\n const hasValues = (Object.keys(values) || []).length > 0;\n const rangeValues =\n (hasValues && Object.values(values)?.filter(value => (value as any).start)) || [];\n const validRangeValues = rangeValues?.filter(\n value => (value as any).start < (value as any).end\n );\n\n return !!(hasValues && rangeValues.length === validRangeValues.length);\n })\n );\n\n readonly expanded$ = new BehaviorSubject<boolean>(false);\n readonly clear$ = new Subject<null>();\n\n private documentDefinitionNameSubscription!: Subscription;\n\n private readonly BOOLEAN_POSITIVE: SearchFieldBoolean = 'booleanPositive';\n private readonly BOOLEAN_NEGATIVE: SearchFieldBoolean = 'booleanNegative';\n\n readonly BOOLEANTYPES: Array<SearchFieldBoolean> = [this.BOOLEAN_POSITIVE, this.BOOLEAN_NEGATIVE];\n readonly booleanItems$: Observable<Array<SelectItem>> = this.translateService.stream('key').pipe(\n map(() =>\n this.BOOLEANTYPES.map(type => ({\n id: type,\n text: this.translateService.instant(`searchFields.${type}`),\n }))\n )\n );\n\n constructor(private readonly translateService: TranslateService) {}\n\n ngOnInit() {\n this.openDocumentDefinitionNameSubscription();\n }\n\n ngOnDestroy(): void {\n this.documentDefinitionNameSubscription?.unsubscribe();\n }\n\n singleValueChange(searchFieldKey: string, value: any, isDateTime?: boolean): void {\n this.values$.pipe(take(1)).subscribe(values => {\n if (value) {\n this.values$.next({...values, [searchFieldKey]: this.getSingleValue(value, isDateTime)});\n } else if (Object.keys(values).includes(searchFieldKey)) {\n const valuesCopy = {...values};\n delete valuesCopy[searchFieldKey];\n this.values$.next(valuesCopy);\n }\n });\n }\n\n multipleValueChange(searchFieldKey: string, value: any, isDateTime?: boolean): void {\n this.values$.pipe(take(1)).subscribe(values => {\n if (value.start && value.end) {\n this.values$.next({\n ...values,\n [searchFieldKey]: {\n start: this.getSingleValue(value.start, isDateTime),\n end: this.getSingleValue(value.end, isDateTime),\n },\n });\n } else if (values[searchFieldKey]) {\n const valuesCopy = {...values};\n delete valuesCopy[searchFieldKey];\n this.values$.next(valuesCopy);\n }\n });\n }\n\n toggleExpanded(): void {\n this.expanded$.pipe(take(1)).subscribe(expanded => {\n this.expanded$.next(!expanded);\n });\n }\n\n search(): void {\n this.values$.pipe(take(1)).subscribe(values => {\n this.doSearch.emit(values);\n });\n }\n\n clear(): void {\n this.clear$.next(null);\n this.doSearch.emit({});\n }\n\n private getSingleValue(value: any, isDateTime?: boolean): any {\n if (isDateTime) {\n return new Date(value).toISOString();\n }\n if (value === this.BOOLEAN_POSITIVE) {\n return true;\n }\n if (value === this.BOOLEAN_NEGATIVE) {\n return false;\n }\n\n return value;\n }\n\n private openDocumentDefinitionNameSubscription(): void {\n this.documentDefinitionNameSubscription = this.documentDefinitionName$.subscribe(() => {\n this.collapse();\n this.clear();\n });\n }\n\n private collapse(): void {\n this.expanded$.next(false);\n }\n}\n","<!--\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 class=\"search fields\">\n <ng-container *ngIf=\"loading\">\n <ng-container *ngTemplateOutlet=\"loadingTemplate\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"!loading\">\n <ng-container *ngTemplateOutlet=\"searchFieldsTemplate\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #loadingTemplate>\n <valtimo-spinner></valtimo-spinner>\n</ng-template>\n\n<ng-template #searchFieldsTemplate>\n <valtimo-widget>\n <div class=\"row\">\n <div class=\"col-12\">\n <ng-container *ngTemplateOutlet=\"buttonAccordion\"></ng-container>\n </div>\n </div>\n <div\n class=\"row p-3\"\n [ngClass]=\"{'row--hidden': (expanded$ | async) === false}\"\n *ngIf=\"searchFields$ | async as searchFields\"\n >\n <ng-container *ngFor=\"let searchField of searchFields; let i = index\">\n <div class=\"col-4\">\n <ng-container\n *ngTemplateOutlet=\"searchFieldTemplate; context: {searchField: searchField}\"\n ></ng-container>\n </div>\n <div class=\"w-100\" *ngIf=\"(i + 1) % 3 === 0\"></div>\n </ng-container>\n <div class=\"col-12\">\n <ng-container\n *ngTemplateOutlet=\"\n buttonsTemplate;\n context: {noSearchFields: !searchFields || searchFields.length === 0}\n \"\n ></ng-container>\n </div>\n </div>\n </valtimo-widget>\n</ng-template>\n\n<ng-template #searchFieldTemplate let-searchField=\"searchField\">\n <ng-container\n *ngIf=\"{\n tooltipKey: 'searchFieldsTooltips.' + searchField.key,\n tooltip: 'searchFieldsTooltips.' + searchField.key | translate,\n searchField,\n title:\n searchField.title ||\n ('searchFields.' + searchField.key !== ('searchFields.' + searchField.key | translate)\n ? ('searchFields.' + searchField.key | translate)\n : searchField.key)\n } as vars\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n searchFieldTemplateText;\n context: {\n searchField: searchField,\n tooltipKey: vars.tooltipKey,\n tooltip: vars.tooltip,\n title: vars.title\n }\n \"\n ></ng-container>\n <ng-container\n *ngTemplateOutlet=\"\n searchFieldTemplateNumber;\n context: {\n searchField: searchField,\n tooltipKey: vars.tooltipKey,\n tooltip: vars.tooltip,\n title: vars.title\n }\n \"\n ></ng-container>\n <ng-container\n *ngTemplateOutlet=\"\n searchFieldTemplateDate;\n context: {\n searchField: searchField,\n tooltipKey: vars.tooltipKey,\n tooltip: vars.tooltip,\n title: vars.title\n }\n \"\n ></ng-container>\n <ng-container\n *ngTemplateOutlet=\"\n searchFieldTemplateBoolean;\n context: {\n searchField: searchField,\n tooltipKey: vars.tooltipKey,\n tooltip: vars.tooltip,\n title: vars.title\n }\n \"\n ></ng-container>\n <ng-container\n *ngTemplateOutlet=\"\n searchFieldTemplateDateTime;\n context: {\n searchField: searchField,\n tooltipKey: vars.tooltipKey,\n tooltip: vars.tooltip,\n title: vars.title\n }\n \"\n ></ng-container>\n <ng-container\n *ngTemplateOutlet=\"\n searchFieldTemplateNumberRange;\n context: {\n searchField: searchField,\n tooltipKey: vars.tooltipKey,\n tooltip: vars.tooltip,\n title: vars.title\n }\n \"\n ></ng-container>\n <ng-container\n *ngTemplateOutlet=\"\n searchFieldTemplateTextRange;\n context: {\n searchField: searchField,\n tooltipKey: vars.tooltipKey,\n tooltip: vars.tooltip,\n title: vars.title\n }\n \"\n ></ng-container>\n <ng-container\n *ngTemplateOutlet=\"\n searchFieldTemplateDateRange;\n context: {\n searchField: searchField,\n tooltipKey: vars.tooltipKey,\n tooltip: vars.tooltip,\n title: vars.title\n }\n \"\n ></ng-container>\n <ng-container\n *ngTemplateOutlet=\"\n searchFieldTemplateDateTimeRange;\n context: {\n searchField: searchField,\n tooltipKey: vars.tooltipKey,\n tooltip: vars.tooltip,\n title: vars.title\n }\n \"\n ></ng-container>\n </ng-container>\n</ng-template>\n\n<ng-template\n #searchFieldTemplateText\n let-searchField=\"searchField\"\n let-tooltip=\"tooltip\"\n let-tooltipKey=\"tooltipKey\"\n let-title=\"title\"\n>\n <v-input\n *ngIf=\"searchField.dataType === 'text' && searchField.fieldType === 'single'\"\n [name]=\"searchField.key\"\n [title]=\"title\"\n [fullWidth]=\"true\"\n [tooltip]=\"tooltip !== tooltipKey && tooltip\"\n (valueChange)=\"singleValueChange(searchField.key, $event)\"\n [smallLabel]=\"true\"\n [clear$]=\"clear$\"\n >\n </v-input>\n</ng-template>\n\n<ng-template\n #searchFieldTemplateNumber\n let-searchField=\"searchField\"\n let-tooltip=\"tooltip\"\n let-tooltipKey=\"tooltipKey\"\n let-title=\"title\"\n>\n <v-input\n *ngIf=\"searchField.dataType === 'number' && searchField.fieldType === 'single'\"\n [name]=\"searchField.key\"\n [title]=\"title\"\n [fullWidth]=\"true\"\n (valueChange)=\"singleValueChange(searchField.key, $event)\"\n type=\"number\"\n [hideNumberSpinBox]=\"true\"\n [tooltip]=\"tooltip !== tooltipKey && tooltip\"\n [smallLabel]=\"true\"\n [clear$]=\"clear$\"\n >\n </v-input>\n</ng-template>\n\n<ng-template\n #searchFieldTemplateDate\n let-searchField=\"searchField\"\n let-tooltip=\"tooltip\"\n let-tooltipKey=\"tooltipKey\"\n let-title=\"title\"\n>\n <v-date-picker\n *ngIf=\"searchField.dataType === 'date' && searchField.fieldType === 'single'\"\n [title]=\"title\"\n [tooltip]=\"tooltip !== tooltipKey && tooltip\"\n [name]=\"searchField.key\"\n fullWidth=\"true\"\n (valueChange)=\"singleValueChange(searchField.key, $event)\"\n [smallLabel]=\"true\"\n [clear$]=\"clear$\"\n ></v-date-picker>\n</ng-template>\n\n<ng-template\n #searchFieldTemplateTextRange\n let-searchField=\"searchField\"\n let-tooltip=\"tooltip\"\n let-tooltipKey=\"tooltipKey\"\n let-title=\"title\"\n>\n <ng-container *ngIf=\"searchField.dataType === 'text' && searchField.fieldType === 'range'\">\n <v-input-label\n [title]=\"title\"\n [tooltip]=\"tooltip !== tooltipKey && tooltip\"\n [small]=\"true\"\n ></v-input-label>\n <v-form\n (valueChange)=\"multipleValueChange(searchField.key, $event)\"\n className=\"multiple-search-fields\"\n >\n <v-input name=\"start\" [fullWidth]=\"true\" [clear$]=\"clear$\"> </v-input>\n <ng-container *ngTemplateOutlet=\"toText\"></ng-container>\n <v-input name=\"end\" [fullWidth]=\"true\" [clear$]=\"clear$\"> </v-input>\n </v-form>\n </ng-container>\n</ng-template>\n\n<ng-template\n #searchFieldTemplateNumberRange\n let-searchField=\"searchField\"\n let-tooltip=\"tooltip\"\n let-tooltipKey=\"tooltipKey\"\n let-title=\"title\"\n>\n <ng-container *ngIf=\"searchField.dataType === 'number' && searchField.fieldType === 'range'\">\n <v-input-label\n [title]=\"title\"\n [tooltip]=\"tooltip !== tooltipKey && tooltip\"\n [small]=\"true\"\n ></v-input-label>\n <v-form\n (valueChange)=\"multipleValueChange(searchField.key, $event)\"\n className=\"multiple-search-fields\"\n >\n <v-input\n name=\"start\"\n [fullWidth]=\"true\"\n type=\"number\"\n [hideNumberSpinBox]=\"true\"\n [clear$]=\"clear$\"\n >\n </v-input>\n <ng-container *ngTemplateOutlet=\"toText\"></ng-container>\n <v-input\n name=\"end\"\n [fullWidth]=\"true\"\n type=\"number\"\n [hideNumberSpinBox]=\"true\"\n [clear$]=\"clear$\"\n >\n </v-input>\n </v-form>\n </ng-container>\n</ng-template>\n\n<ng-template\n #searchFieldTemplateDateRange\n let-searchField=\"searchField\"\n let-tooltip=\"tooltip\"\n let-tooltipKey=\"tooltipKey\"\n let-title=\"title\"\n>\n <ng-container *ngIf=\"searchField.dataType === 'date' && searchField.fieldType === 'range'\">\n <v-input-label\n [title]=\"title\"\n [tooltip]=\"tooltip !== tooltipKey && tooltip\"\n [small]=\"true\"\n ></v-input-label>\n <v-form\n (valueChange)=\"multipleValueChange(searchField.key, $event)\"\n className=\"multiple-search-fields\"\n >\n <v-date-picker name=\"start\" fullWidth=\"true\" [clear$]=\"clear$\"></v-date-picker>\n <ng-container *ngTemplateOutlet=\"toText\"></ng-container>\n <v-date-picker name=\"end\" fullWidth=\"true\" [clear$]=\"clear$\"></v-date-picker>\n </v-form>\n </ng-container>\n</ng-template>\n\n<ng-template\n #searchFieldTemplateBoolean\n let-searchField=\"searchField\"\n let-tooltip=\"tooltip\"\n let-tooltipKey=\"tooltipKey\"\n let-title=\"title\"\n>\n <ng-container *ngIf=\"searchField.dataType === 'boolean'\">\n <v-input-label\n [title]=\"title\"\n [tooltip]=\"tooltip !== tooltipKey && tooltip\"\n [small]=\"true\"\n ></v-input-label>\n <v-select\n *ngIf=\"booleanItems$ | async as booleanItems\"\n [items]=\"booleanItems\"\n [margin]=\"false\"\n [required]=\"false\"\n [widthInPx]=\"200\"\n [name]=\"searchField.key\"\n [clearSelectionSubject$]=\"clear$\"\n (selectedChange)=\"singleValueChange(searchField.key, $event)\"\n ></v-select>\n </ng-container>\n</ng-template>\n\n<ng-template\n #searchFieldTemplateDateTime\n let-searchField=\"searchField\"\n let-tooltip=\"tooltip\"\n let-tooltipKey=\"tooltipKey\"\n let-title=\"title\"\n>\n <v-date-picker\n *ngIf=\"searchField.dataType === 'datetime' && searchField.fieldType === 'single'\"\n [title]=\"title\"\n [tooltip]=\"tooltip !== tooltipKey && tooltip\"\n [name]=\"searchField.key\"\n fullWidth=\"true\"\n (valueChange)=\"singleValueChange(searchField.key, $event, true)\"\n [smallLabel]=\"true\"\n [enableTime]=\"true\"\n [clear$]=\"clear$\"\n ></v-date-picker>\n</ng-template>\n\n<ng-template\n #searchFieldTemplateDateTimeRange\n let-searchField=\"searchField\"\n let-tooltip=\"tooltip\"\n let-tooltipKey=\"tooltipKey\"\n let-title=\"title\"\n>\n <ng-container *ngIf=\"searchField.dataType === 'datetime' && searchField.fieldType === 'range'\">\n <v-input-label\n [title]=\"title\"\n [tooltip]=\"tooltip !== tooltipKey && tooltip\"\n [small]=\"true\"\n ></v-input-label>\n <v-form\n (valueChange)=\"multipleValueChange(searchField.key, $event, true)\"\n className=\"multiple-search-fields\"\n >\n <v-date-picker\n name=\"start\"\n fullWidth=\"true\"\n [enableTime]=\"true\"\n [clear$]=\"clear$\"\n ></v-date-picker>\n <ng-container *ngTemplateOutlet=\"toText\"></ng-container>\n <v-date-picker\n name=\"end\"\n fullWidth=\"true\"\n [enableTime]=\"true\"\n [clear$]=\"clear$\"\n ></v-date-picker>\n </v-form>\n </ng-container>\n</ng-template>\n\n<ng-template #toText>\n <div class=\"to-text\">\n <v-paragraph>{{ 'searchFields.to' | translate }}</v-paragraph>\n </div>\n</ng-template>\n\n<ng-template #buttonsTemplate let-noSearchFields=\"noSearchFields\">\n <ng-container\n *ngTemplateOutlet=\"noSearchFieldsTemplate; context: {noSearchFields: noSearchFields}\"\n ></ng-container>\n <div class=\"buttons-container\" *ngIf=\"{expanded: expanded$ | async} as obs\">\n <div class=\"right-buttons\">\n <button\n (click)=\"clear()\"\n [disabled]=\"loading || noSearchFields\"\n type=\"button\"\n class=\"btn btn-space btn-secondary\"\n *ngIf=\"obs.expanded\"\n >\n {{ 'searchFields.clearButtonText' | translate }}\n </button>\n <button\n (click)=\"search()\"\n [disabled]=\"loading || noSearchFields || (hasValidValues$ | async) === false\"\n type=\"button\"\n class=\"btn btn-space btn-primary\"\n *ngIf=\"obs.expanded\"\n >\n {{ 'searchFields.searchButtonText' | translate }}\n </button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #noSearchFieldsTemplate let-noSearchFields=\"noSearchFields\">\n <div class=\"w-100 mb-3\" *ngIf=\"noSearchFields\">\n <v-paragraph [fullWidth]=\"true\" [center]=\"true\">{{\n 'searchFields.noneConfigured' | translate\n }}</v-paragraph>\n </div>\n</ng-template>\n\n<ng-template #buttonAccordion>\n <div class=\"buttons-container\" *ngIf=\"{expanded: expanded$ | async} as obs\">\n <button\n [disabled]=\"loading\"\n type=\"button\"\n class=\"accordion-button\"\n (click)=\"toggleExpanded()\"\n [ngClass]=\"\n obs.expanded ? 'mdi mdi-chevron-right accordion-button--active' : 'mdi mdi-chevron-down'\n \"\n >\n {{ 'searchFields.searchButtonText' | translate }}\n </button>\n </div>\n</ng-template>\n","/*\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\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {SearchFieldsComponent} from './search-fields.component';\nimport {SpinnerModule} from '../spinner/spinner.module';\nimport {WidgetModule} from '../widget/widget.module';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {\n ButtonModule,\n DatePickerModule,\n FormModule,\n InputLabelModule,\n InputModule,\n ParagraphModule,\n SelectModule,\n} from '@valtimo/user-interface';\n\n@NgModule({\n declarations: [SearchFieldsComponent],\n imports: [\n CommonModule,\n SpinnerModule,\n WidgetModule,\n TranslateModule,\n InputModule,\n FormModule,\n DatePickerModule,\n InputLabelModule,\n ParagraphModule,\n ButtonModule,\n SelectModule,\n ],\n exports: [SearchFieldsComponent],\n})\nexport class SearchFieldsModule {}\n","/*\n * Copyright 2015-2022 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/*\n * Public API Surface of components\n */\n\nexport * from './lib/models';\nexport * from './lib/services/valtimo-modal.service';\n\nexport * from './lib/components/camunda/form/camunda-form.components';\nexport * from './lib/components/camunda/form/camunda-form.module';\n\nexport * from './lib/components/topbar/topbar.component';\nexport * from './lib/components/topbar/topbar.module';\n\nexport * from './lib/components/menu/menu.service';\nexport * from './lib/components/menu/menu-routing.module';\nexport * from './lib/components/menu/menu.module';\nexport * from './lib/components/menu/menu.init';\nexport * from './lib/components/menu/menu.component';\n\nexport * from './lib/components/right-sidebar/right-sidebar.component';\nexport * from './lib/components/right-sidebar/right-sidebar.module';\n\nexport * from './lib/components/left-sidebar/left-sidebar.component';\nexport * from './lib/components/left-sidebar/left-sidebar.module';\n\nexport * from './lib/components/list/list.component';\nexport * from './lib/components/list/ListFilterPipe.directive';\nexport * from './lib/components/list/list.module';\n\nexport * from './lib/components/page-header/page-header.component';\nexport * from './lib/components/page-header/page-header.module';\n\nexport * from './lib/components/page-title/page-title.component';\nexport * from './lib/components/page-title/page-title.module';\n\nexport * from './lib/components/breadcrumb-navigation/breadcrumb-navigation.component';\nexport * from './lib/components/breadcrumb-navigation/breadcrumb-navigation.module';\n\nexport * from './lib/components/breadcrumb-navigation/breadcrumb-navigation.component';\nexport * from './lib/components/breadcrumb-navigation/breadcrumb-navigation.module';\n\nexport * from './lib/components/widget/widget.component';\nexport * from './lib/components/widget/widget.module';\n\nexport * from './lib/components/field-auto-focus/field-auto-focus.directive';\nexport * from './lib/components/field-auto-focus/field-auto-focus.module';\n\nexport * from './lib/components/card/card.component';\nexport * from './lib/components/card/card.module';\n\nexport * from './lib/components/bpmn-js-diagram/bpmn-js-diagram.component';\nexport * from './lib/components/bpmn-js-diagram/bpmn-js-diagram.module';\n\nexport * from './lib/components/timeline/timeline.component';\nexport * from './lib/components/timeline/timeline.module';\n\nexport * from './lib/components/components.module';\n\nexport * from './lib/components/filter-sidebar/filter-sidebar.component';\nexport * from './lib/components/filter-sidebar/filter-sidebar.module';\n\nexport * from './lib/components/uploader/uploader.component';\nexport * from './lib/components/uploader/uploader-drag-drop.directive';\nexport * from './lib/components/uploader/uploader.module';\n\nexport * from './lib/components/file-size/file-size.module';\nexport * from './lib/components/file-size/file-size.pipe';\n\nexport * from './lib/components/alert/alert.component';\nexport * from './lib/components/alert/alert.service';\nexport * from './lib/components/alert/alert.module';\n\nexport * from './lib/components/data-list/data-list.component';\nexport * from './lib/components/data-list/data-list.module';\n\nexport * from './lib/components/view-content/view-content.service';\n\nexport * from './lib/components/form-io/form-io.component';\nexport * from './lib/components/form-io/form-io-builder.component';\nexport * from './lib/components/form-io/form-io.module';\n\nexport * from './lib/components/modal/modal.module';\nexport * from './lib/components/modal/modal.component';\n\nexport * from './lib/components/spinner/spinner.module';\nexport * from './lib/components/spinner/spinner.component';\n\nexport * from './lib/components/searchable-dropdown/searchable-dropdown.module';\nexport * from './lib/components/searchable-dropdown/searchable-dropdown.component';\n\nexport * from './lib/components/dropzone/dropzone.module';\nexport * from './lib/components/dropzone/dropzone.component';\n\nexport * from './lib/components/form-io/form-io-uploader/form-io-uploader.component';\nexport * from './lib/components/form-io/form-io-uploader/form-io-uploader.formio';\n\nexport * from './lib/components/form-io/documenten-api-uploader/documenten-api-uploader.component';\nexport * from './lib/components/form-io/documenten-api-uploader/documenten-api-uploader.formio';\n\nexport * from './lib/components/form-io/form-io-resource-selector/form-io-resource-selector.formio';\n\nexport * from './lib/components/form-io/services/form-io-state.service';\n\nexport * from './lib/components/webcam/webcam.module';\nexport * from './lib/components/webcam/webcam.component';\n\nexport * from './lib/components/progress-bar/progress-bar.module';\nexport * from './lib/components/progress-bar/progress-bar.component';\n\nexport * from './lib/components/searchable-dropdown-select/searchable-dropdown-select.module';\nexport * from './lib/components/searchable-dropdown-select/searchable-dropdown-select.component';\n\nexport * from './lib/components/multiselect-dropdown/multiselect-dropdown.module';\nexport * from './lib/components/multiselect-dropdown/multiselect-dropdown.component';\n\nexport * from './lib/components/documenten-api-metadata-modal/documenten-api-metadata-modal.module';\nexport * from './lib/components/documenten-api-metadata-modal/documenten-api-metadata-modal.component';\n\nexport * from './lib/components/search-fields/search-fields.module';\nexport * from './lib/components/search-fields/search-fields.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.CamundaFormfieldValidationComponent","i2","i1.CamundaFormfieldService","i2.CamundaFormfieldValidationComponent","i3","i4","i1","i2.CamundaFormfieldService","i4.CamundaFormfieldGeneratorDirective","i1.CamundaGeneratedFormComponent","i2.CamundaCustomFormComponent","i5","i1.MenuService","i3.MenuItemTextComponent","i4.SubmenuItemTextComponent","i6","i3.VersionService","i7","i8","i9","map","i3.PageTitleComponent","i4.MenuComponent","i1.ViewContentService","i7.ListFilterPipe","i2.PageTitleComponent","i3.BreadcrumbNavigationComponent","i2.UploaderDragDropDirective","i4.FileSizePipe","i1.AlertService","switchMap","i3.FormIoStateService","i6.ValtimoModalService","i1.FormIoStateService","i2.ProgressBarComponent","i3.WebcamComponent","i5.FileSizePipe","i2.FormIoStateService","i3.FormIoDomService","i4.DropzoneComponent","i6.FileSizePipe","take","filter","i4.ValtimoModalService","i7.DropzoneComponent","i8.DocumentenApiMetadataModalComponent","i10","i11.FileSizePipe","ModalModule","i1.ValtimoModalService","COMPONENT_OPTIONS","i1.SearchableDropdownComponent","i2.SpinnerComponent","i3.WidgetComponent"],"mappings":"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"}
1
+ {"version":3,"file":"valtimo-components.mjs","sources":["../../../../projects/valtimo/components/src/lib/models/alert.model.ts","../../../../projects/valtimo/components/src/lib/models/form-io.model.ts","../../../../projects/valtimo/components/src/lib/models/timeline.model.ts","../../../../projects/valtimo/components/src/lib/models/index.ts","../../../../projects/valtimo/components/src/lib/services/valtimo-modal.service.ts","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/formfield/validation/date.validators.ts","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/formfield/camunda-formfield.service.ts","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/formfield/validation/camunda-formfield-validation.component.ts","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/formfield/validation/camunda-formfield-validation.component.html","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/formfield/string/camunda-string-formfield.component.ts","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/formfield/string/camunda-string-formfield.component.html","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/formfield/boolean/camunda-boolean-formfield.component.ts","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/formfield/boolean/camunda-boolean-formfield.component.html","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/formfield/date/camunda-date-formfield.component.ts","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/formfield/date/camunda-date-formfield.component.html","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/formfield/long/camunda-long-formfield.component.ts","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/formfield/long/camunda-long-formfield.component.html","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/formfield/enum/camunda-enum-formfield.component.ts","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/formfield/enum/camunda-enum-formfield.component.html","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/formfield/textarea/camunda-textarea-formfield.component.ts","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/formfield/textarea/camunda-textarea-formfield.component.html","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/formfield/choicefield/camunda-choicefield-formfield.component.ts","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/formfield/choicefield/camunda-choicefield-formfield.component.html","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/formfield/camunda-formfield-generator.directive.ts","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/camunda-generated-form.component.ts","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/camunda-generated-form.component.html","../../../../projects/valtimo/components/src/lib/components/camunda/form/custom/camunda-custom-form.component.ts","../../../../projects/valtimo/components/src/lib/components/camunda/form/custom/camunda-custom-form.component.html","../../../../projects/valtimo/components/src/lib/components/camunda/form/camunda-form.components.ts","../../../../projects/valtimo/components/src/lib/components/camunda/form/camunda-form.component.html","../../../../projects/valtimo/components/src/lib/components/camunda/form/custom/camunda-custom-form.module.ts","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/camunda-generated-form.module.ts","../../../../projects/valtimo/components/src/lib/components/camunda/form/camunda-form.module.ts","../../../../projects/valtimo/components/src/lib/components/topbar/topbar.component.ts","../../../../projects/valtimo/components/src/lib/components/topbar/topbar.component.html","../../../../projects/valtimo/components/src/lib/components/topbar/topbar.module.ts","../../../../projects/valtimo/components/src/lib/components/menu/menu.service.ts","../../../../projects/valtimo/components/src/lib/components/menu/menu-routing.module.ts","../../../../projects/valtimo/components/src/lib/components/menu/menu-item-text.component.ts","../../../../projects/valtimo/components/src/lib/components/menu/submenu-item-text.component.ts","../../../../projects/valtimo/components/src/lib/components/menu/menu.component.ts","../../../../projects/valtimo/components/src/lib/components/menu/menu.component.html","../../../../projects/valtimo/components/src/lib/components/menu/menu.module.ts","../../../../projects/valtimo/components/src/lib/components/menu/menu.init.ts","../../../../projects/valtimo/components/src/lib/components/version/version.service.ts","../../../../projects/valtimo/components/src/lib/components/right-sidebar/right-sidebar.component.ts","../../../../projects/valtimo/components/src/lib/components/right-sidebar/right-sidebar.component.html","../../../../projects/valtimo/components/src/lib/components/right-sidebar/right-sidebar.module.ts","../../../../projects/valtimo/components/src/lib/components/page-title/page-title.component.ts","../../../../projects/valtimo/components/src/lib/components/page-title/page-title.component.html","../../../../projects/valtimo/components/src/lib/components/left-sidebar/left-sidebar.component.ts","../../../../projects/valtimo/components/src/lib/components/left-sidebar/left-sidebar.component.html","../../../../projects/valtimo/components/src/lib/components/page-title/page-title.module.ts","../../../../projects/valtimo/components/src/lib/components/left-sidebar/left-sidebar.module.ts","../../../../projects/valtimo/components/src/lib/components/view-content/type-converters/stringTypeConverter.ts","../../../../projects/valtimo/components/src/lib/components/view-content/type-converters/booleanTypeConverter.ts","../../../../projects/valtimo/components/src/lib/components/view-content/type-converters/dateTypeConverter.ts","../../../../projects/valtimo/components/src/lib/components/view-content/type-converters/enumTypeConverter.ts","../../../../projects/valtimo/components/src/lib/components/view-content/type-converters/stringReplaceUnderscoreTypeConverter.ts","../../../../projects/valtimo/components/src/lib/components/view-content/type-converters/relatedFilesTypeConverter.ts","../../../../projects/valtimo/components/src/lib/components/view-content/type-converters/type-converters.model.ts","../../../../projects/valtimo/components/src/lib/components/view-content/view-content.service.ts","../../../../projects/valtimo/components/src/lib/components/list/ListFilterPipe.directive.ts","../../../../projects/valtimo/components/src/lib/components/list/list.component.ts","../../../../projects/valtimo/components/src/lib/components/list/list.component.html","../../../../projects/valtimo/components/src/lib/components/card/card.component.ts","../../../../projects/valtimo/components/src/lib/components/card/card.component.html","../../../../projects/valtimo/components/src/lib/components/card/card.module.ts","../../../../projects/valtimo/components/src/lib/components/list/list.module.ts","../../../../projects/valtimo/components/src/lib/components/breadcrumb-navigation/breadcrumb-navigation.component.ts","../../../../projects/valtimo/components/src/lib/components/breadcrumb-navigation/breadcrumb-navigation.component.html","../../../../projects/valtimo/components/src/lib/components/page-header/page-header.component.ts","../../../../projects/valtimo/components/src/lib/components/page-header/page-header.component.html","../../../../projects/valtimo/components/src/lib/components/breadcrumb-navigation/breadcrumb-navigation.module.ts","../../../../projects/valtimo/components/src/lib/components/page-header/page-header.module.ts","../../../../projects/valtimo/components/src/lib/components/widget/widget.component.ts","../../../../projects/valtimo/components/src/lib/components/widget/widget.component.html","../../../../projects/valtimo/components/src/lib/components/widget/widget.module.ts","../../../../projects/valtimo/components/src/lib/components/field-auto-focus/field-auto-focus.directive.ts","../../../../projects/valtimo/components/src/lib/components/field-auto-focus/field-auto-focus.module.ts","../../../../projects/valtimo/components/src/lib/components/bpmn-js-diagram/bpmn-js-diagram.component.ts","../../../../projects/valtimo/components/src/lib/components/bpmn-js-diagram/bpmn-js-diagram.component.html","../../../../projects/valtimo/components/src/lib/components/bpmn-js-diagram/bpmn-js-diagram.module.ts","../../../../projects/valtimo/components/src/lib/components/timeline/timeline.component.ts","../../../../projects/valtimo/components/src/lib/components/timeline/timeline.component.html","../../../../projects/valtimo/components/src/lib/components/timeline/timeline.module.ts","../../../../projects/valtimo/components/src/lib/components/components.module.ts","../../../../projects/valtimo/components/src/lib/components/filter-sidebar/filter-sidebar.component.ts","../../../../projects/valtimo/components/src/lib/components/filter-sidebar/filter-sidebar.component.html","../../../../projects/valtimo/components/src/lib/components/filter-sidebar/filter-sidebar.module.ts","../../../../projects/valtimo/components/src/lib/components/uploader/uploader-drag-drop.directive.ts","../../../../projects/valtimo/components/src/lib/components/file-size/file-size.pipe.ts","../../../../projects/valtimo/components/src/lib/components/uploader/uploader.component.ts","../../../../projects/valtimo/components/src/lib/components/uploader/uploader.component.html","../../../../projects/valtimo/components/src/lib/components/file-size/file-size.module.ts","../../../../projects/valtimo/components/src/lib/components/uploader/uploader.module.ts","../../../../projects/valtimo/components/src/lib/components/alert/alert.service.ts","../../../../projects/valtimo/components/src/lib/components/alert/alert.component.ts","../../../../projects/valtimo/components/src/lib/components/alert/alert.component.html","../../../../projects/valtimo/components/src/lib/components/alert/alert.module.ts","../../../../projects/valtimo/components/src/lib/components/data-list/data-list.component.ts","../../../../projects/valtimo/components/src/lib/components/data-list/data-list.component.html","../../../../projects/valtimo/components/src/lib/components/data-list/data-list.module.ts","../../../../projects/valtimo/components/src/lib/components/form-io/services/form-io-state.service.ts","../../../../projects/valtimo/components/src/lib/components/form-io/form-io.component.ts","../../../../projects/valtimo/components/src/lib/components/form-io/form-io.component.html","../../../../projects/valtimo/components/src/lib/components/form-io/form-io-builder.component.ts","../../../../projects/valtimo/components/src/lib/components/form-io/form-io-builder.component.html","../../../../projects/valtimo/components/src/lib/components/form-io/formio-config.ts","../../../../projects/valtimo/components/src/lib/components/form-io/services/form-io-dom.service.ts","../../../../projects/valtimo/components/src/lib/components/progress-bar/progress-bar.component.ts","../../../../projects/valtimo/components/src/lib/components/progress-bar/progress-bar.component.html","../../../../projects/valtimo/components/src/lib/components/webcam/webcam.component.ts","../../../../projects/valtimo/components/src/lib/components/webcam/webcam.component.html","../../../../projects/valtimo/components/src/lib/components/dropzone/dropzone.component.ts","../../../../projects/valtimo/components/src/lib/components/dropzone/dropzone.component.html","../../../../projects/valtimo/components/src/lib/components/form-io/form-io-uploader/form-io-uploader.component.ts","../../../../projects/valtimo/components/src/lib/components/form-io/form-io-uploader/form-io-uploader.component.html","../../../../projects/valtimo/components/src/lib/components/progress-bar/progress-bar.module.ts","../../../../projects/valtimo/components/src/lib/components/webcam/webcam.module.ts","../../../../projects/valtimo/components/src/lib/components/dropzone/dropzone.module.ts","../../../../projects/valtimo/components/src/lib/components/documenten-api-metadata-modal/documenten-api-metadata-modal.component.ts","../../../../projects/valtimo/components/src/lib/components/documenten-api-metadata-modal/documenten-api-metadata-modal.component.html","../../../../projects/valtimo/components/src/lib/components/form-io/documenten-api-uploader/documenten-api-uploader.component.ts","../../../../projects/valtimo/components/src/lib/components/form-io/documenten-api-uploader/documenten-api-uploader.component.html","../../../../projects/valtimo/components/src/lib/components/documenten-api-metadata-modal/documenten-api-metadata-modal.module.ts","../../../../projects/valtimo/components/src/lib/components/form-io/form-io.module.ts","../../../../projects/valtimo/components/src/lib/components/modal/modal.component.ts","../../../../projects/valtimo/components/src/lib/components/modal/modal.component.html","../../../../projects/valtimo/components/src/lib/components/modal/modal.module.ts","../../../../projects/valtimo/components/src/lib/components/spinner/spinner.component.ts","../../../../projects/valtimo/components/src/lib/components/spinner/spinner.component.html","../../../../projects/valtimo/components/src/lib/components/spinner/spinner.module.ts","../../../../projects/valtimo/components/src/lib/components/searchable-dropdown/searchable-dropdown.component.ts","../../../../projects/valtimo/components/src/lib/components/searchable-dropdown/searchable-dropdown.component.html","../../../../projects/valtimo/components/src/lib/components/searchable-dropdown/searchable-dropdown.module.ts","../../../../projects/valtimo/components/src/lib/components/form-io/form-io-uploader/form-io-uploader-edit-form.ts","../../../../projects/valtimo/components/src/lib/components/form-io/form-io-uploader/form-io-uploader.formio.ts","../../../../projects/valtimo/components/src/lib/components/form-io/documenten-api-uploader/documenten-api-uploader-edit-form.ts","../../../../projects/valtimo/components/src/lib/components/form-io/documenten-api-uploader/documenten-api-uploader.formio.ts","../../../../projects/valtimo/components/src/lib/components/form-io/form-io-resource-selector/form-io-resource-selector.formio.ts","../../../../projects/valtimo/components/src/lib/components/searchable-dropdown-select/searchable-dropdown-select.component.ts","../../../../projects/valtimo/components/src/lib/components/searchable-dropdown-select/searchable-dropdown-select.component.html","../../../../projects/valtimo/components/src/lib/components/searchable-dropdown-select/searchable-dropdown-select.module.ts","../../../../projects/valtimo/components/src/lib/components/multiselect-dropdown/multiselect-dropdown.component.ts","../../../../projects/valtimo/components/src/lib/components/multiselect-dropdown/multiselect-dropdown.component.html","../../../../projects/valtimo/components/src/lib/components/multiselect-dropdown/multiselect-dropdown.module.ts","../../../../projects/valtimo/components/src/lib/components/search-fields/search-fields.component.ts","../../../../projects/valtimo/components/src/lib/components/search-fields/search-fields.component.html","../../../../projects/valtimo/components/src/lib/components/search-fields/search-fields.module.ts","../../../../projects/valtimo/components/src/public_api.ts","../../../../projects/valtimo/components/src/valtimo-components.ts"],"sourcesContent":["/*\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\nexport class Alert {\n type: AlertType;\n message: string;\n confirmations: Array<AlertConfirmation>;\n confirm: any;\n iconClass: string;\n constructor(init?: Partial<Alert>) {\n Object.assign(this, init);\n }\n}\n\nexport interface AlertConfirmation {\n label: string;\n class: string;\n value: any;\n}\n\nexport enum AlertType {\n Success,\n Error,\n Info,\n Warning,\n Notification,\n ModalNotification,\n}\n","/*\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\nimport {\n AlertsOptions,\n ErrorsOptions,\n FormioBeforeSubmit,\n FormioHookOptions,\n FormioOptions,\n} from '@formio/angular/formio.common';\n\nexport interface FormioSubmission {\n data: {\n submit: boolean;\n };\n metadata: object;\n state: string;\n}\n\nexport interface ResourceOption {\n label: string;\n value: string;\n}\n\nexport class AlertsOptionsImpl implements AlertsOptions {\n submitMessage: string;\n\n constructor(submitMessage: string) {\n this.submitMessage = submitMessage;\n }\n}\n\nexport interface ValtimoFormioOptions extends FormioOptions {\n setAlertMessage(submitMessage: string);\n setHooks(submitFunction: FormioBeforeSubmit);\n}\n\nexport class FormioOptionsImpl implements ValtimoFormioOptions {\n errors?: ErrorsOptions;\n alerts?: AlertsOptions;\n disableAlerts?: boolean;\n i18n?: object;\n fileService?: object;\n hooks?: FormioHookOptions;\n readonly?: boolean;\n decimalSeparator?: string;\n thousandsSeparator?: string;\n\n constructor() {}\n\n setAlertMessage(submitMessage: string) {\n this.alerts = new AlertsOptionsImpl(submitMessage);\n }\n\n setHooks(beforeSubmit: FormioBeforeSubmit) {\n this.hooks = {beforeSubmit};\n }\n}\n","/*\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\nexport interface TimelineItem {\n date: string;\n time: string;\n user: string;\n activity: string;\n summaryTranslationKey: string;\n summaryTranslationParams: object;\n}\n\nexport class TimelineItemImpl implements TimelineItem {\n private readonly _date: string;\n private readonly _time: string;\n private readonly _user: string;\n private readonly _activity: string;\n private readonly _summaryTranslationKey: string;\n private readonly _summaryTranslationParams: object;\n\n constructor(\n date: string,\n time: string,\n user: string,\n activity: string,\n summaryTranslationKey: string,\n summaryTranslationParams: object\n ) {\n this._date = date;\n this._time = time;\n this._user = user;\n this._activity = activity;\n this._summaryTranslationKey = summaryTranslationKey;\n this._summaryTranslationParams = summaryTranslationParams;\n }\n\n get date(): string {\n return this._date;\n }\n\n get time(): string {\n return this._time;\n }\n\n get user(): string {\n return this._user;\n }\n\n get activity(): string {\n return this._activity;\n }\n\n get summaryTranslationKey(): string {\n return this._summaryTranslationKey;\n }\n\n get summaryTranslationParams(): object {\n return this._summaryTranslationParams;\n }\n}\n","/*\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\nexport * from './alert.model';\nexport * from './form-io.model';\nexport * from './pagination.model';\nexport * from './searchable-dropdown.model';\nexport * from './timeline.model';\nexport * from './version.model';\nexport * from './list.model';\nexport * from './documenten-api-metadata.model';\n","import {Injectable} from '@angular/core';\nimport {BehaviorSubject, Observable, Subject} from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ValtimoModalService {\n private readonly _scrollToTop$ = new Subject<null>();\n private readonly _documentDefinitionName$ = new BehaviorSubject<string>('');\n\n get scrollToTop$(): Observable<null> {\n return this._scrollToTop$.asObservable();\n }\n\n get documentDefinitionName$(): Observable<string> {\n return this._documentDefinitionName$.asObservable();\n }\n\n scrollToTop(): void {\n this._scrollToTop$.next(null);\n }\n\n setDocumentDefinitionName(documentDefinitionName: string): void {\n this._documentDefinitionName$.next(documentDefinitionName);\n }\n}\n","/*\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\nimport moment from 'moment';\nimport {AbstractControl, ValidatorFn} from '@angular/forms';\n\nmoment.locale(localStorage.getItem('langKey'));\nconst DATE_FORMAT = 'DD-MM-YYYY';\n\nexport function minDate(minDateIn: string): ValidatorFn {\n return (control: AbstractControl): {[key: string]: any} | null => {\n if (!control.value) {\n return null;\n }\n const controlDate = moment.utc(control.value).startOf('day');\n const momentMinDate = moment.utc(minDateIn, DATE_FORMAT, true);\n\n if (!controlDate.isSameOrAfter(momentMinDate)) {\n return {\n minDate: {\n minDate: momentMinDate.format(DATE_FORMAT),\n actual: controlDate.format(DATE_FORMAT),\n },\n };\n } else {\n return null;\n }\n };\n}\n\nexport function maxDate(maxDateIn: string): ValidatorFn {\n return (control: AbstractControl): {[key: string]: any} | null => {\n if (!control.value) {\n return null;\n }\n const controlDate = moment.utc(control.value).startOf('day');\n const momentMaxDate = moment.utc(maxDateIn, DATE_FORMAT, true);\n\n if (!controlDate.isSameOrBefore(momentMaxDate)) {\n return {\n maxDate: {\n maxDate: momentMaxDate.format(DATE_FORMAT),\n actual: controlDate.format(DATE_FORMAT),\n },\n };\n } else {\n return null;\n }\n };\n}\n","/*\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\nimport {Injectable} from '@angular/core';\nimport {Validators} from '@angular/forms';\nimport {maxDate, minDate} from './validation/date.validators';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CamundaFormfieldService {\n constructor() {}\n\n public isFormFieldDisabled(formField) {\n return formField.validationConstraints.filter(vc => vc.name === 'readonly').length > 0;\n }\n\n public getMinDate(formField) {\n return formField.validationConstraints.filter(\n vc => vc.name === 'minDate' && vc.configuration\n )[0];\n }\n\n public getMaxDate(formField) {\n return formField.validationConstraints.filter(\n vc => vc.name === 'maxDate' && vc.configuration\n )[0];\n }\n\n public getValidatorTypes(formField) {\n const validatorTypes = [];\n formField.validationConstraints.forEach(validationConstraint => {\n if (validationConstraint.name === 'required') {\n validatorTypes.push(Validators.required);\n }\n if (validationConstraint.name === 'minlength') {\n validatorTypes.push(Validators.minLength(+validationConstraint.configuration));\n }\n if (validationConstraint.name === 'maxlength') {\n validatorTypes.push(Validators.maxLength(+validationConstraint.configuration));\n }\n if (validationConstraint.name === 'min') {\n validatorTypes.push(Validators.min(+validationConstraint.configuration));\n }\n if (validationConstraint.name === 'max') {\n validatorTypes.push(Validators.max(+validationConstraint.configuration));\n }\n if (validationConstraint.name === 'minDate') {\n validatorTypes.push(minDate(validationConstraint.configuration));\n }\n if (validationConstraint.name === 'maxDate') {\n validatorTypes.push(maxDate(validationConstraint.configuration));\n }\n });\n return validatorTypes;\n }\n}\n","/*\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\nimport {Component, Input, OnInit} from '@angular/core';\nimport {FormGroup} from '@angular/forms';\nimport {FormField} from '../formfield.model';\n\n@Component({\n selector: 'valtimo-camunda-formfield-validation',\n templateUrl: './camunda-formfield-validation.component.html',\n})\nexport class CamundaFormfieldValidationComponent implements OnInit {\n @Input() public formGroup: FormGroup;\n @Input() public formField: FormField;\n\n formControl: any;\n\n constructor() {}\n\n ngOnInit(): void {\n this.formControl = this.formGroup.get(this.formField.id);\n }\n}\n","<!--\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<ul\n class=\"parsley-errors-list filled\"\n *ngIf=\"formControl.invalid && (formControl.dirty || formControl.touched)\"\n>\n <li *ngIf=\"formControl.errors.required\">This field is required.</li>\n <li *ngIf=\"formControl.errors.minlength\">\n This field should be more than {{ formControl.errors.minlength.requiredLength }} characters.\n </li>\n <li *ngIf=\"formControl.errors.maxlength\">\n This field cannot be more than {{ formControl.errors.maxlength.requiredLength }} characters.\n </li>\n <li *ngIf=\"formControl.errors.min\">\n This field should be more than {{ formControl.errors.min.min }}.\n </li>\n <li *ngIf=\"formControl.errors.max\">\n This field should be less or equal to {{ formControl.errors.max.max }}.\n </li>\n <li *ngIf=\"formControl.errors.minDate\">\n This field should be more than {{ formControl.errors.minDate.minDate }}.\n </li>\n <li *ngIf=\"formControl.errors.maxDate\">\n This field should be less or equal to {{ formControl.errors.maxDate.maxDate }}.\n </li>\n</ul>\n","/*\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\nimport {Component} from '@angular/core';\nimport {FormGroup} from '@angular/forms';\nimport {FormField} from '../formfield.model';\n\n@Component({\n selector: 'valtimo-camunda-string-formfield',\n templateUrl: './camunda-string-formfield.component.html',\n})\nexport class CamundaStringFormfieldComponent {\n public formGroup: FormGroup;\n public formField: FormField;\n\n constructor() {}\n}\n","<!--\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 class=\"form-group row\" *ngIf=\"formGroup\" [formGroup]=\"formGroup\">\n <label for=\"{{ formField.id }}\" class=\"col-12 col-sm-3 col-form-label text-sm-right\">\n {{ formField.label }}\n </label>\n <div class=\"col-12 col-sm-8 col-lg-6\">\n <input\n id=\"{{ formField.id }}\"\n class=\"form-control\"\n type=\"text\"\n [attr.placeholder]=\"formField.defaultValue\"\n [formControlName]=\"formField.id\"\n />\n <valtimo-camunda-formfield-validation [formGroup]=\"formGroup\" [formField]=\"formField\">\n </valtimo-camunda-formfield-validation>\n </div>\n</div>\n","/*\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\nimport {Component} from '@angular/core';\nimport {FormGroup} from '@angular/forms';\nimport {FormField} from '../formfield.model';\n\n@Component({\n selector: 'valtimo-camunda-boolean-formfield',\n templateUrl: './camunda-boolean-formfield.component.html',\n})\nexport class CamundaBooleanFormfieldComponent {\n public formGroup: FormGroup;\n public formField: FormField;\n\n constructor() {}\n}\n","<!--\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 class=\"form-group row\" *ngIf=\"formGroup\" [formGroup]=\"formGroup\">\n <label class=\"col-12 col-sm-3 col-form-label text-sm-right\">\n {{ formField.label }}\n </label>\n <div class=\"col-12 col-sm-8 col-lg-6 form-check mt-1\">\n <label for=\"yes_{{ formField.id }}\" class=\"custom-control custom-radio custom-control-inline\">\n <input\n class=\"custom-control-input\"\n id=\"yes_{{ formField.id }}\"\n type=\"radio\"\n [value]=\"true\"\n [formControlName]=\"formField.id\"\n />\n <span class=\"custom-control-label custom-control-color\">Yes</span>\n </label>\n <label for=\"no_{{ formField.id }}\" class=\"custom-control custom-radio custom-control-inline\">\n <input\n class=\"custom-control-input\"\n id=\"no_{{ formField.id }}\"\n type=\"radio\"\n [value]=\"false\"\n [formControlName]=\"formField.id\"\n />\n <span class=\"custom-control-label custom-control-color\">No</span>\n </label>\n <valtimo-camunda-formfield-validation [formGroup]=\"formGroup\" [formField]=\"formField\">\n </valtimo-camunda-formfield-validation>\n </div>\n</div>\n","/*\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\nimport {AfterViewInit, Component, OnInit} from '@angular/core';\nimport {FormGroup} from '@angular/forms';\nimport {FormField} from '../formfield.model';\nimport {CamundaFormfieldService} from '../camunda-formfield.service';\nimport moment from 'moment';\n\nmoment.locale(localStorage.getItem('langKey'));\n// eslint-disable-next-line no-var\ndeclare var $;\n\n@Component({\n selector: 'valtimo-camunda-date-formfield',\n templateUrl: './camunda-date-formfield.component.html',\n})\nexport class CamundaDateFormfieldComponent implements OnInit, AfterViewInit {\n public formGroup: FormGroup;\n public formField: FormField;\n\n private INPUT_SELECTOR: string;\n private datePickerOptions: any = {};\n\n constructor(private formFieldService: CamundaFormfieldService) {}\n\n ngOnInit(): void {\n this.INPUT_SELECTOR = '#' + this.formField.id;\n this.datePickerOptions = {\n autoclose: true,\n componentIcon: '.mdi.mdi-calendar',\n navIcons: {\n rightIcon: 'mdi mdi-chevron-right',\n leftIcon: 'mdi mdi-chevron-left',\n },\n format: 'dd-mm-yyyy',\n };\n }\n\n ngAfterViewInit(): void {\n const formGroup = this.formGroup;\n const formField = this.formField;\n\n const maxDate = this.formFieldService.getMaxDate(this.formField);\n if (maxDate) {\n this.datePickerOptions.endDate = maxDate.configuration;\n }\n\n const minDate = this.formFieldService.getMinDate(this.formField);\n if (minDate) {\n this.datePickerOptions.startDate = minDate.configuration;\n }\n\n $(this.INPUT_SELECTOR).datetimepicker(this.datePickerOptions);\n $(this.INPUT_SELECTOR).on('changeDate', function (e) {\n formGroup.patchValue({\n [formField.id]: moment(e.date.valueOf()).format('DD/MM/YYYY'),\n });\n });\n }\n}\n","<!--\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 class=\"form-group row\" *ngIf=\"formGroup\" [formGroup]=\"formGroup\">\n <label for=\"{{ formField.id }}\" class=\"col-12 col-sm-3 col-form-label text-sm-right\">\n {{ formField.label }}\n </label>\n <div class=\"col-12 col-sm-8 col-lg-6 pt1\">\n <input\n type=\"input\"\n class=\"form-control\"\n data-min-view=\"2\"\n id=\"{{ formField.id }}\"\n autocomplete=\"off\"\n [formControlName]=\"formField.id\"\n />\n <valtimo-camunda-formfield-validation [formGroup]=\"formGroup\" [formField]=\"formField\">\n </valtimo-camunda-formfield-validation>\n </div>\n</div>\n","/*\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\nimport {Component} from '@angular/core';\nimport {FormGroup} from '@angular/forms';\nimport {FormField} from '../formfield.model';\n\n@Component({\n selector: 'valtimo-camunda-long-formfield',\n templateUrl: './camunda-long-formfield.component.html',\n})\nexport class CamundaLongFormfieldComponent {\n public formGroup: FormGroup;\n public formField: FormField;\n\n constructor() {}\n}\n","<!--\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 class=\"form-group row\" *ngIf=\"formGroup\" [formGroup]=\"formGroup\">\n <label for=\"{{ formField.id }}\" class=\"col-12 col-sm-3 col-form-label text-sm-right\">\n {{ formField.label }}\n </label>\n <div class=\"col-12 col-sm-8 col-lg-6\">\n <input\n id=\"{{ formField.id }}\"\n class=\"form-control\"\n type=\"number\"\n [attr.placeholder]=\"formField.defaultValue\"\n [formControlName]=\"formField.id\"\n />\n <valtimo-camunda-formfield-validation [formGroup]=\"formGroup\" [formField]=\"formField\">\n </valtimo-camunda-formfield-validation>\n </div>\n</div>\n","/*\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\nimport {Component, OnInit} from '@angular/core';\nimport {FormGroup} from '@angular/forms';\nimport {FormField} from '../formfield.model';\n\n@Component({\n selector: 'valtimo-camunda-enum-formfield',\n templateUrl: './camunda-enum-formfield.component.html',\n})\nexport class CamundaEnumFormfieldComponent implements OnInit {\n public formGroup: FormGroup;\n public formField: FormField;\n\n public valueKeys;\n\n constructor() {}\n\n ngOnInit(): void {\n this.valueKeys = Object.keys(this.formField.type.values);\n }\n}\n","<!--\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 class=\"form-group row\" [formGroup]=\"formGroup\">\n <label for=\"{{ formField.id }}\" class=\"col-12 col-sm-3 col-form-label text-sm-right\">\n {{ formField.label }}\n </label>\n <div class=\"col-12 col-sm-8 col-lg-6\">\n <select class=\"form-control\" id=\"{{ formField.id }}\" [formControlName]=\"formField.id\">\n <option selected=\"selected\" value=\"\"></option>\n <option *ngFor=\"let key of valueKeys\" [value]=\"key\" id=\"option_{{ key }}\">\n {{ formField.type.values[key] }}\n </option>\n </select>\n <valtimo-camunda-formfield-validation [formGroup]=\"formGroup\" [formField]=\"formField\">\n </valtimo-camunda-formfield-validation>\n </div>\n</div>\n","/*\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\nimport {Component} from '@angular/core';\nimport {FormGroup} from '@angular/forms';\nimport {FormField} from '../formfield.model';\n\n@Component({\n selector: 'valtimo-camunda-textarea-formfield',\n templateUrl: './camunda-textarea-formfield.component.html',\n})\nexport class CamundaTextareaFormfieldComponent {\n public formGroup: FormGroup;\n public formField: FormField;\n\n constructor() {}\n}\n","<!--\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 class=\"form-group row\" *ngIf=\"formGroup\" [formGroup]=\"formGroup\">\n <label for=\"{{ formField.id }}\" class=\"col-12 col-sm-3 col-form-label text-sm-right\">\n {{ formField.label }}\n </label>\n <div class=\"col-12 col-sm-8 col-lg-6\">\n <textarea\n id=\"{{ formField.id }}\"\n class=\"form-control\"\n [attr.placeholder]=\"formField.defaultValue\"\n [formControlName]=\"formField.id\"\n ></textarea>\n <valtimo-camunda-formfield-validation [formGroup]=\"formGroup\" [formField]=\"formField\">\n </valtimo-camunda-formfield-validation>\n </div>\n</div>\n","/*\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\nimport {Component, OnInit} from '@angular/core';\nimport {FormGroup} from '@angular/forms';\nimport {FormField} from '../formfield.model';\nimport {ChoicefieldService} from '@valtimo/choicefield';\n\n@Component({\n selector: 'valtimo-camunda-choicefield-formfield',\n templateUrl: './camunda-choicefield-formfield.component.html',\n})\nexport class CamundaChoicefieldFormfieldComponent implements OnInit {\n public formGroup: FormGroup;\n public formField: FormField;\n public choicefieldValues: Array<any> = [];\n\n constructor(private choicefieldService: ChoicefieldService) {}\n\n ngOnInit(): void {\n this.choicefieldService\n .getChoiceFieldValuesByName(this.formField.properties['choicefield'])\n .subscribe(data => {\n this.choicefieldValues = data;\n });\n }\n}\n","<!--\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 class=\"form-group row\" [formGroup]=\"formGroup\">\n <label for=\"{{ formField.id }}\" class=\"col-12 col-sm-3 col-form-label text-sm-right\">\n {{ formField.label }}\n </label>\n <div class=\"col-12 col-sm-8 col-lg-6\">\n <select class=\"form-control\" id=\"{{ formField.id }}\" [formControlName]=\"formField.id\">\n <option selected=\"selected\" value=\"\"></option>\n <ng-container *ngFor=\"let choicefieldValue of choicefieldValues\">\n <option\n *ngIf=\"!choicefieldValue.deprecated\"\n [value]=\"choicefieldValue.value\"\n id=\"option_{{ choicefieldValue.value }}\"\n >\n {{ choicefieldValue.name }}\n </option>\n </ng-container>\n </select>\n <valtimo-camunda-formfield-validation [formGroup]=\"formGroup\" [formField]=\"formField\">\n </valtimo-camunda-formfield-validation>\n </div>\n</div>\n","/*\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\nimport {\n ComponentFactoryResolver,\n ComponentRef,\n Directive,\n Input,\n OnInit,\n ViewContainerRef,\n} from '@angular/core';\nimport {FormGroup} from '@angular/forms';\nimport {FormField} from './formfield.model';\nimport {CamundaStringFormfieldComponent} from './string/camunda-string-formfield.component';\nimport {CamundaBooleanFormfieldComponent} from './boolean/camunda-boolean-formfield.component';\nimport {CamundaDateFormfieldComponent} from './date/camunda-date-formfield.component';\nimport {CamundaLongFormfieldComponent} from './long/camunda-long-formfield.component';\nimport {CamundaEnumFormfieldComponent} from './enum/camunda-enum-formfield.component';\nimport {CamundaTextareaFormfieldComponent} from './textarea/camunda-textarea-formfield.component';\nimport {CamundaChoicefieldFormfieldComponent} from './choicefield/camunda-choicefield-formfield.component';\n\n@Directive({\n selector: '[valtimoCamundaFormfieldGenerator]',\n})\nexport class CamundaFormfieldGeneratorDirective implements OnInit {\n @Input() formField: FormField;\n\n @Input() formGroup: FormGroup;\n\n private readonly COMPONENTS = {\n string: CamundaStringFormfieldComponent,\n boolean: CamundaBooleanFormfieldComponent,\n date: CamundaDateFormfieldComponent,\n long: CamundaLongFormfieldComponent,\n enum: CamundaEnumFormfieldComponent,\n textarea: CamundaTextareaFormfieldComponent,\n choicefield: CamundaChoicefieldFormfieldComponent,\n };\n\n private component: ComponentRef<any>;\n\n constructor(\n private viewContainerRef: ViewContainerRef,\n private componentFactoryResolver: ComponentFactoryResolver\n ) {}\n\n ngOnInit(): void {\n const typeName = this.formField.typeName.toLowerCase();\n if (!this.COMPONENTS[typeName]) {\n throw new Error('Could not find component for formfield type: ' + typeName);\n }\n const component = this.COMPONENTS[typeName];\n const factory = this.componentFactoryResolver.resolveComponentFactory(component);\n this.component = this.viewContainerRef.createComponent(factory);\n this.component.instance.formGroup = this.formGroup;\n this.component.instance.formField = this.formField;\n }\n}\n","/*\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\nimport {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport {FormBuilder, FormControl, FormGroup} from '@angular/forms';\nimport {FormField} from './formfield/formfield.model';\nimport {CamundaFormfieldService} from './formfield/camunda-formfield.service';\nimport {Location} from '@angular/common';\n\n@Component({\n selector: 'valtimo-camunda-generated-form',\n templateUrl: './camunda-generated-form.component.html',\n})\nexport class CamundaGeneratedFormComponent implements OnInit {\n @Output() submitted: EventEmitter<any> = new EventEmitter<any>();\n @Input() formFields: FormField[] = [];\n public formGroup: FormGroup;\n\n constructor(\n private formBuilder: FormBuilder,\n private camundaFormFieldService: CamundaFormfieldService,\n private location: Location\n ) {}\n\n ngOnInit(): void {\n this.formGroup = this.createFormGroup();\n }\n\n private createFormGroup() {\n const group = this.formBuilder.group({});\n this.formFields.forEach(formField => {\n const control = new FormControl(\n {\n value: formField.defaultValue,\n disabled: this.camundaFormFieldService.isFormFieldDisabled(formField),\n },\n this.camundaFormFieldService.getValidatorTypes(formField)\n );\n group.addControl(formField.id, control);\n });\n return group;\n }\n\n public reset() {\n this.formGroup.reset();\n }\n\n public back() {\n this.location.back();\n }\n\n public handleSubmit(event) {\n event.preventDefault();\n event.stopPropagation();\n this.submitted.emit(this.formGroup.value);\n }\n}\n","<!--\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<form [formGroup]=\"formGroup\" (ngSubmit)=\"handleSubmit($event)\">\n <ng-container\n *ngFor=\"let formField of formFields\"\n valtimoCamundaFormfieldGenerator\n [formGroup]=\"formGroup\"\n [formField]=\"formField\"\n >\n <ng-content></ng-content>\n </ng-container>\n <div class=\"row pt-3 mt-1\">\n <div class=\"col-sm-12\">\n <div class=\"text-right\">\n <button\n class=\"btn btn-space btn-default float-left\"\n type=\"button\"\n (click)=\"back()\"\n id=\"back-button\"\n >\n Back\n </button>\n <button\n class=\"btn btn-space btn-secondary\"\n type=\"button\"\n (click)=\"reset()\"\n id=\"reset-button\"\n >\n Reset\n </button>\n <button\n class=\"btn btn-space btn-primary\"\n [disabled]=\"!formGroup.disabled && !formGroup.valid\"\n type=\"submit\"\n id=\"submit-button\"\n >\n Submit\n </button>\n </div>\n </div>\n </div>\n</form>\n","/*\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\nimport {\n Component,\n ComponentFactoryResolver,\n Input,\n OnInit,\n Type,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\n\n@Component({\n selector: 'valtimo-custom-form',\n templateUrl: './camunda-custom-form.component.html',\n styleUrls: ['./camunda-custom-form.component.css'],\n})\nexport class CamundaCustomFormComponent implements OnInit {\n @Input() componentName: string;\n @ViewChild('customFormContainer', {read: ViewContainerRef, static: true}) viewContainerRef;\n\n constructor(private resolver: ComponentFactoryResolver) {}\n\n ngOnInit() {\n const factories = Array.from(this.resolver['_factories'].keys());\n const factoryClass = factories.find((x: any) => x.name === this.componentName) as any;\n const cmpFactory = this.resolver.resolveComponentFactory(factoryClass);\n this.viewContainerRef.createComponent(cmpFactory);\n }\n}\n","<!--\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<ng-template #customFormContainer></ng-template>\n","/*\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\nimport {Component, EventEmitter, Input, Output} from '@angular/core';\nimport {FormField} from './generated/formfield/formfield.model';\n\n@Component({\n selector: 'valtimo-camunda-form',\n templateUrl: './camunda-form.component.html',\n})\nexport class CamundaFormComponent {\n @Input() componentName: string;\n @Input() formFields: FormField[];\n @Output() submitted?: EventEmitter<any> = new EventEmitter();\n\n constructor() {}\n\n onSubmitted(event) {\n this.submitted.emit(event);\n }\n}\n","<!--\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<ng-container *ngIf=\"!componentName && submitted\">\n <valtimo-camunda-generated-form\n *ngIf=\"formFields\"\n [formFields]=\"formFields\"\n (submitted)=\"onSubmitted($event)\"\n >\n </valtimo-camunda-generated-form>\n</ng-container>\n<ng-container *ngIf=\"componentName\">\n <valtimo-custom-form [componentName]=\"componentName\"></valtimo-custom-form>\n</ng-container>\n","/*\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\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {CamundaCustomFormComponent} from './camunda-custom-form.component';\n\n@NgModule({\n declarations: [CamundaCustomFormComponent],\n imports: [CommonModule],\n exports: [CamundaCustomFormComponent],\n})\nexport class CamundaCustomFormModule {}\n","/*\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\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {CamundaGeneratedFormComponent} from './camunda-generated-form.component';\nimport {ReactiveFormsModule} from '@angular/forms';\nimport {CamundaStringFormfieldComponent} from './formfield/string/camunda-string-formfield.component';\nimport {CamundaFormfieldGeneratorDirective} from './formfield/camunda-formfield-generator.directive';\nimport {CamundaBooleanFormfieldComponent} from './formfield/boolean/camunda-boolean-formfield.component';\nimport {CamundaDateFormfieldComponent} from './formfield/date/camunda-date-formfield.component';\nimport {CamundaLongFormfieldComponent} from './formfield/long/camunda-long-formfield.component';\nimport {CamundaEnumFormfieldComponent} from './formfield/enum/camunda-enum-formfield.component';\nimport {CamundaTextareaFormfieldComponent} from './formfield/textarea/camunda-textarea-formfield.component';\nimport {CamundaChoicefieldFormfieldComponent} from './formfield/choicefield/camunda-choicefield-formfield.component';\nimport {CamundaFormfieldValidationComponent} from './formfield/validation/camunda-formfield-validation.component';\n\n@NgModule({\n declarations: [\n CamundaStringFormfieldComponent,\n CamundaBooleanFormfieldComponent,\n CamundaDateFormfieldComponent,\n CamundaFormfieldGeneratorDirective,\n CamundaLongFormfieldComponent,\n CamundaEnumFormfieldComponent,\n CamundaTextareaFormfieldComponent,\n CamundaChoicefieldFormfieldComponent,\n CamundaFormfieldValidationComponent,\n CamundaGeneratedFormComponent,\n ],\n imports: [CommonModule, ReactiveFormsModule],\n exports: [CamundaGeneratedFormComponent],\n})\nexport class CamundaGeneratedFormModule {}\n","/*\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\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {CamundaFormComponent} from './camunda-form.components';\nimport {CamundaCustomFormModule} from './custom/camunda-custom-form.module';\nimport {CamundaGeneratedFormModule} from './generated/camunda-generated-form.module';\n\n@NgModule({\n declarations: [CamundaFormComponent],\n imports: [CommonModule, CamundaGeneratedFormModule, CamundaCustomFormModule],\n exports: [CamundaFormComponent],\n})\nexport class CamundaFormModule {}\n","/*\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\nimport {Component, OnInit} from '@angular/core';\nimport {KeycloakService} from 'keycloak-angular';\nimport {from, switchMap, map} from 'rxjs';\nimport {ConfigService} from '@valtimo/config';\n\n@Component({\n selector: 'valtimo-topbar',\n templateUrl: './topbar.component.html',\n styleUrls: ['./topbar.component.scss'],\n})\nexport class TopbarComponent implements OnInit {\n showUserNameInTopBar!: boolean;\n\n readonly userFullName$ = from(this.keyCloakService.isLoggedIn()).pipe(\n switchMap(() => this.keyCloakService.loadUserProfile()),\n map(profile => `${profile.firstName} ${profile.lastName}`)\n );\n\n constructor(\n private readonly keyCloakService: KeycloakService,\n private readonly configService: ConfigService\n ) {}\n\n ngOnInit(): void {\n this.showUserNameInTopBar = this.configService.config.featureToggles?.showUserNameInTopBar;\n }\n}\n","<!--\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<nav class=\"navbar navbar-expand fixed-top be-top-header\">\n <div class=\"container-fluid\">\n <div class=\"be-navbar-header\">\n <a class=\"navbar-brand\" [routerLink]=\"['/']\"></a>\n </div>\n <div class=\"be-right-navbar\">\n <!-- important empty div: in order to made float-right element works on mobile -->\n <div></div>\n <ul class=\"nav navbar-nav be-user-nav float-right be-icons-nav\">\n <ng-container *ngTemplateOutlet=\"userFullName\"></ng-container>\n <li class=\"nav-item dropdown special\">\n <a class=\"nav-link be-toggle-right-sidebar\" href=\"#\" role=\"button\" aria-expanded=\"false\">\n <i class=\"mdi mdi-account-circle user-icon\"></i>\n </a>\n </li>\n </ul>\n </div>\n </div>\n</nav>\n\n<ng-template #userFullName>\n <li class=\"nav-item\" *ngIf=\"showUserNameInTopBar\">\n <div class=\"user-full-name\" *ngIf=\"{userFullName: userFullName$ | async} as obs\">\n <v-paragraph [loading]=\"!obs.userFullName\">{{ obs.userFullName }}</v-paragraph>\n </div>\n </li>\n</ng-template>\n","/*\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\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {TopbarComponent} from './topbar.component';\nimport {RouterModule} from '@angular/router';\nimport {ParagraphModule} from '@valtimo/user-interface';\n\n@NgModule({\n declarations: [TopbarComponent],\n imports: [CommonModule, RouterModule, ParagraphModule],\n exports: [TopbarComponent],\n})\nexport class TopbarModule {}\n","/*\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\nimport {Injectable} from '@angular/core';\nimport {ConfigService, MenuConfig, MenuIncludeService, MenuItem} from '@valtimo/config';\nimport {NGXLogger} from 'ngx-logger';\nimport {BehaviorSubject, combineLatest, Observable, Subject, take, timer} from 'rxjs';\nimport {DocumentDefinitions, DocumentService} from '@valtimo/document';\nimport {UserProviderService} from '@valtimo/security';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MenuService {\n public includeFunctionObservables: {[key: string]: Observable<boolean>} = {};\n\n private _menuItems$ = new BehaviorSubject<MenuItem[]>(undefined);\n private menuConfig: MenuConfig;\n\n private readonly disableCaseCount!: boolean;\n\n constructor(\n private readonly configService: ConfigService,\n private readonly documentService: DocumentService,\n private readonly userProviderService: UserProviderService,\n private readonly logger: NGXLogger,\n private readonly menuIncludeService: MenuIncludeService\n ) {\n const config = configService?.config;\n this.menuConfig = config?.menu;\n this.disableCaseCount = config?.featureToggles?.disableCaseCount;\n }\n\n init(): void {\n this.reload();\n this.logger.debug('Menu initialized');\n }\n\n public get menuItems$(): Observable<MenuItem[]> {\n return this._menuItems$.asObservable();\n }\n\n public reload(): void {\n return this._menuItems$.next(this.loadMenuItems());\n }\n\n private loadMenuItems(): MenuItem[] {\n let menuItems: MenuItem[] = [];\n this.menuConfig.menuItems.forEach((menuItem: MenuItem) => {\n if (menuItem.includeFunction !== undefined) {\n this.includeFunctionObservables[menuItem.title] =\n this.menuIncludeService.getIncludeFunction(menuItem.includeFunction);\n }\n\n menuItem.show = true;\n menuItems.push(menuItem);\n });\n menuItems = this.sortMenuItems(menuItems);\n this.appendDossierSubMenuItems(menuItems).subscribe(\n value => (menuItems = this.applyMenuRoleSecurity(value))\n );\n return menuItems;\n }\n\n private sortMenuItems(menuItems: MenuItem[]): MenuItem[] {\n return menuItems.sort((a, b) => a.sequence - b.sequence);\n }\n\n private appendDossierSubMenuItems(menuItems: MenuItem[]): Observable<MenuItem[]> {\n return new Observable(subscriber => {\n this.logger.debug('appendDossierSubMenuItems');\n this.documentService.getAllDefinitions().subscribe(definitions => {\n combineLatest([\n ...definitions.content.map(definition =>\n this.documentService.getCaseSettings(definition?.id?.name)\n ),\n ])\n .pipe(take(1))\n .subscribe(allCaseSettings => {\n const openDocumentCountMap =\n !this.disableCaseCount && this.getOpenDocumentCountMap(definitions);\n\n const dossierMenuItems: MenuItem[] = definitions.content.map((definition, index) => {\n const caseSettings = allCaseSettings?.find(\n setting => setting.name === definition.id.name\n );\n\n return {\n link: ['/dossiers/' + definition.id.name],\n title: definition.schema.title,\n iconClass: 'icon mdi mdi-dot-circle',\n sequence: index,\n show: true,\n ...(!this.disableCaseCount &&\n caseSettings?.canHaveAssignee && {\n count$: openDocumentCountMap.get(definition.id.name),\n }),\n } as MenuItem;\n });\n this.logger.debug('found dossierMenuItems', dossierMenuItems);\n const menuItemIndex = menuItems.findIndex(({title}) => title === 'Dossiers');\n if (menuItemIndex > 0) {\n const dossierMenu = menuItems[menuItemIndex];\n this.logger.debug('updating dossierMenu', dossierMenu);\n dossierMenu.children = dossierMenuItems;\n menuItems[menuItemIndex] = dossierMenu;\n }\n subscriber.next(menuItems);\n this.logger.debug('appendDossierSubMenuItems finished');\n });\n });\n });\n }\n\n private getOpenDocumentCountMap(definitions: DocumentDefinitions): Map<string, Subject<number>> {\n const countMap = new Map<string, Subject<number>>();\n definitions.content.forEach(definition =>\n countMap.set(definition.id.name, new Subject<number>())\n );\n\n timer(0, 5000).subscribe(() => {\n this.documentService.getOpenDocumentCount().subscribe(openDocumentCountList => {\n openDocumentCountList.forEach(openDocumentCount =>\n countMap\n .get(openDocumentCount.documentDefinitionName)\n .next(openDocumentCount.openDocumentCount)\n );\n });\n });\n return countMap;\n }\n\n private applyMenuRoleSecurity(menuItems: MenuItem[]): MenuItem[] {\n this.userProviderService.getUserSubject().subscribe(user => {\n if (user.roles != null) {\n this.logger.debug('applyMenuRoleSecurity');\n const userRoles = user.roles;\n menuItems.forEach((menuItem: MenuItem) => {\n const access = this.determineRoleAccess(menuItem, userRoles);\n this.logger.debug('Menu: check role access', menuItem.roles, access);\n if (menuItem.show !== access) {\n this.logger.debug('Menu: Change access', menuItem, access);\n menuItem.show = access;\n }\n });\n }\n });\n return menuItems;\n }\n\n private determineRoleAccess(menuItem: MenuItem, roles: string[]): boolean {\n return !menuItem.roles || menuItem.roles.some(role => roles.includes(role));\n }\n}\n","/*\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\nimport {RouterModule, Routes} from '@angular/router';\nimport {NgModule} from '@angular/core';\n\nconst routes: Routes = [];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class MenuRoutingModule {}\n","/*\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\nimport {Component, Input} from '@angular/core';\nimport {MenuItem} from '@valtimo/config';\n\n@Component({\n selector: 'valtimo-menu-item-text',\n template: `\n <i\n class=\"{{ menuItem.iconClass }}\"\n container=\"body\"\n placement=\"right\"\n ngbTooltip=\"{{ menuItem.title | translate }}\"\n autoClose=\"true\"\n >\n </i>\n <span\n *ngIf=\"{\n translation: menuItem.title | translate,\n pageTranslation: 'pages.' + menuItem.title.toLowerCase() + '.title' | translate\n } as obs\"\n >{{\n (obs.pageTranslation !== 'pages.' + menuItem.title.toLowerCase() + '.title'\n ? obs.pageTranslation\n : '') ||\n (obs.translation !== menuItem.title ? obs.translation : '') ||\n menuItem.title\n }}</span\n >\n `,\n})\nexport class MenuItemTextComponent {\n @Input() menuItem: MenuItem;\n}\n","/*\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\nimport {Component, Input} from '@angular/core';\nimport {MenuItem} from '@valtimo/config';\n\n@Component({\n selector: 'valtimo-submenu-item-text',\n template: `\n <div\n class=\"d-flex\"\n [ngClass]=\"submenuItem.textClass\"\n *ngIf=\"{\n translation: submenuItem.title | translate,\n pageTranslation: 'pages.' + submenuItem.title.toLowerCase() + '.title' | translate,\n count: submenuItem.count$ | async\n } as obs\"\n >\n {{\n (obs.pageTranslation !== 'pages.' + submenuItem.title.toLowerCase() + '.title'\n ? obs.pageTranslation\n : '') ||\n (obs.translation !== submenuItem.title ? obs.translation : '') ||\n submenuItem.title\n }}\n <strong *ngIf=\"obs.count\" class=\"ml-auto\">\n {{ obs.count }}\n </strong>\n <ng-container *ngIf=\"!submenuItem.link\">&gt;</ng-container>\n </div>\n `,\n})\nexport class SubmenuItemTextComponent {\n @Input() submenuItem: MenuItem;\n}\n","/*\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\nimport {Component, ElementRef, OnDestroy, OnInit, Renderer2} from '@angular/core';\nimport {Event, NavigationEnd, Router} from '@angular/router';\nimport {MenuItem} from '@valtimo/config';\nimport {Observable, Subscription} from 'rxjs';\nimport {MenuService} from './menu.service';\n\n@Component({\n selector: 'valtimo-menu',\n templateUrl: './menu.component.html',\n styleUrls: ['./menu.component.css'],\n})\nexport class MenuComponent implements OnInit, OnDestroy {\n public menuItems: MenuItem[];\n public includeFunctionObservables: {[key: string]: Observable<boolean>} = {};\n private routerSubscription: Subscription;\n private menuItemSubscription: Subscription;\n\n constructor(\n private menuService: MenuService,\n private elRef: ElementRef,\n private renderer: Renderer2,\n private router: Router\n ) {\n this.includeFunctionObservables = this.menuService.includeFunctionObservables;\n }\n\n ngOnInit(): void {\n this.openRouterSubscription();\n this.menuItemSubscription = this.menuService.menuItems$.subscribe(\n value => (this.menuItems = value)\n );\n }\n\n ngOnDestroy(): void {\n this.routerSubscription.unsubscribe();\n this.menuItemSubscription.unsubscribe();\n }\n\n private openRouterSubscription(): void {\n this.routerSubscription = this.router.events.subscribe((event: Event) => {\n if (event instanceof NavigationEnd) {\n this.closeSubMenu();\n }\n });\n }\n\n public closeSubMenu() {\n const visibleSubMenuElm = this.elRef.nativeElement.querySelector('.sub-menu.visible');\n if (visibleSubMenuElm) {\n this.renderer.removeClass(visibleSubMenuElm, 'visible');\n const topLevelMenuItem = this.elRef.nativeElement.querySelector('li.parent.open');\n if (topLevelMenuItem) {\n this.renderer.removeClass(topLevelMenuItem, 'open');\n }\n }\n }\n}\n","<!--\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<ul class=\"sidebar-elements\">\n <ng-container *ngFor=\"let menuItem of menuItems\">\n <li\n [class.parent]=\"menuItem.children\"\n [hidden]=\"!menuItem.show\"\n [routerLinkActive]=\"'active'\"\n [routerLinkActiveOptions]=\"{exact: true}\"\n [ngClass]=\"{\n 'menu-item--hidden': menuItem.includeFunction !== undefined,\n 'menu-item--visible':\n menuItem.includeFunction !== undefined &&\n (includeFunctionObservables[menuItem.title] | async)\n }\"\n >\n <a *ngIf=\"menuItem.link\" [routerLink]=\"menuItem.link\" class=\"sub-item\">\n <valtimo-menu-item-text [menuItem]=\"menuItem\"></valtimo-menu-item-text>\n </a>\n <a *ngIf=\"!menuItem.link\" class=\"sub-item\">\n <valtimo-menu-item-text [menuItem]=\"menuItem\"></valtimo-menu-item-text>\n </a>\n <ng-container *ngIf=\"menuItem.children\">\n <ul class=\"sub-menu\">\n <li class=\"title\">{{ menuItem.title | translate }}</li>\n <li\n *ngFor=\"let subMenuItem of menuItem.children\"\n [routerLinkActive]=\"'active'\"\n [routerLinkActiveOptions]=\"{exact: true}\"\n >\n <a *ngIf=\"subMenuItem.link\" [routerLink]=\"subMenuItem.link\">\n <valtimo-submenu-item-text [submenuItem]=\"subMenuItem\"></valtimo-submenu-item-text>\n </a>\n <a *ngIf=\"!subMenuItem.link\">\n <valtimo-submenu-item-text [submenuItem]=\"subMenuItem\"></valtimo-submenu-item-text>\n </a>\n </li>\n </ul>\n </ng-container>\n </li>\n </ng-container>\n</ul>\n","/*\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\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {MenuComponent} from './menu.component';\nimport {RouterModule} from '@angular/router';\nimport {NgbTooltipModule} from '@ng-bootstrap/ng-bootstrap';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {MenuItemTextComponent} from './menu-item-text.component';\nimport {SubmenuItemTextComponent} from './submenu-item-text.component';\n\n@NgModule({\n declarations: [MenuComponent, MenuItemTextComponent, SubmenuItemTextComponent],\n imports: [CommonModule, RouterModule, NgbTooltipModule, TranslateModule],\n exports: [MenuComponent],\n providers: [],\n})\nexport class MenuModule {}\n","/*\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\nimport {Injector} from '@angular/core';\nimport {NGXLogger} from 'ngx-logger';\nimport {MenuService} from './menu.service';\n\nexport function menuInitializer(injector: Injector, logger: NGXLogger): () => Promise<any> {\n const menuService = injector.get<MenuService>(MenuService);\n return (): Promise<any> =>\n new Promise<void>((resolve, reject) => {\n try {\n logger.debug('menu initializer before init');\n menuService.init();\n logger.debug('menu initializer after init');\n resolve();\n } catch (error) {\n logger.debug('menu initializer error', error);\n reject(error);\n }\n });\n}\n","/*\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\nimport {Injectable} from '@angular/core';\nimport {HttpClient} from '@angular/common/http';\nimport {Observable} from 'rxjs';\nimport {ValtimoVersion} from '../../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class VersionService {\n constructor(private http: HttpClient) {}\n\n public getVersion(): Observable<ValtimoVersion> {\n // TODO: this hardcoded string should be taken care of with the introduction of a config service\n return this.http.get<ValtimoVersion>(`/api/valtimo/version`);\n }\n}\n","/*\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\nimport {HttpClient} from '@angular/common/http';\nimport {Component, OnInit} from '@angular/core';\nimport {FormBuilder, FormControl, FormGroup} from '@angular/forms';\nimport {TranslateService} from '@ngx-translate/core';\nimport {ContextService} from '@valtimo/context';\nimport {ValtimoVersion} from '../../models';\nimport {UserIdentity} from '@valtimo/config';\nimport {UserProviderService} from '@valtimo/security';\nimport {NGXLogger} from 'ngx-logger';\nimport {combineLatest} from 'rxjs';\nimport {VersionService} from '../version/version.service';\n\n@Component({\n selector: 'valtimo-right-sidebar',\n templateUrl: './right-sidebar.component.html',\n styleUrls: ['./right-sidebar.component.css'],\n})\nexport class RightSidebarComponent implements OnInit {\n public userIdentity: UserIdentity;\n public frequencies: Array<any>;\n public settingsForm: FormGroup;\n public build: ValtimoVersion;\n public userContexts: Array<any>;\n public userContextActive: any;\n\n constructor(\n private userProviderService: UserProviderService,\n private formBuilder: FormBuilder,\n private versionService: VersionService,\n public translate: TranslateService,\n private contextService: ContextService,\n private http: HttpClient,\n private logger: NGXLogger\n ) {}\n\n ngOnInit() {\n this.frequencies = [\n 'emailNotificationOnMonday',\n 'emailNotificationOnTuesday',\n 'emailNotificationOnWednesday',\n 'emailNotificationOnThursday',\n 'emailNotificationOnFriday',\n 'emailNotificationOnSaturday',\n 'emailNotificationOnSunday',\n ];\n this.settingsForm = this.formBuilder.group({\n taskNotifications: new FormControl(false),\n emailNotifications: new FormControl(false),\n emailNotificationOnMonday: new FormControl(false),\n emailNotificationOnTuesday: new FormControl(false),\n emailNotificationOnWednesday: new FormControl(false),\n emailNotificationOnThursday: new FormControl(false),\n emailNotificationOnFriday: new FormControl(false),\n emailNotificationOnSaturday: new FormControl(false),\n emailNotificationOnSunday: new FormControl(false),\n });\n this.getUserSettings();\n }\n\n private loadContextSwitch() {\n combineLatest([\n this.contextService.getUserContexts(),\n this.contextService.getUserContextActive(),\n ]).subscribe(([userContexts, userContextActive]) => {\n this.userContextActive = userContextActive;\n this.userContexts = userContexts;\n });\n }\n\n public setUserContext(contextId: number) {\n this.contextService.setUserContext(contextId).subscribe();\n location.href = '/';\n }\n\n public loadUserSettingsTab() {\n this.userProviderService.getEmailNotificationSettings().subscribe(results => {\n if (results !== null) {\n this.settingsForm.controls.taskNotifications.setValue(results.taskNotifications);\n this.settingsForm.controls.emailNotifications.setValue(results.emailNotifications);\n this.settingsForm.controls.emailNotificationOnMonday.setValue(\n results.emailNotificationOnMonday\n );\n this.settingsForm.controls.emailNotificationOnTuesday.setValue(\n results.emailNotificationOnTuesday\n );\n this.settingsForm.controls.emailNotificationOnWednesday.setValue(\n results.emailNotificationOnWednesday\n );\n this.settingsForm.controls.emailNotificationOnThursday.setValue(\n results.emailNotificationOnThursday\n );\n this.settingsForm.controls.emailNotificationOnFriday.setValue(\n results.emailNotificationOnFriday\n );\n this.settingsForm.controls.emailNotificationOnSaturday.setValue(\n results.emailNotificationOnSaturday\n );\n this.settingsForm.controls.emailNotificationOnSunday.setValue(\n results.emailNotificationOnSunday\n );\n } else {\n // default is true in the database, even if api returns no content\n this.settingsForm.controls.taskNotifications.setValue(true);\n }\n });\n this.getVersion();\n }\n\n public getUserSettings() {\n this.userProviderService.getUserSubject().subscribe(userIdentity => {\n this.logger.debug('user', userIdentity);\n this.userIdentity = userIdentity;\n this.loadContextSwitch();\n });\n }\n\n public getVersion() {\n this.versionService.getVersion().subscribe((build: ValtimoVersion) => {\n this.build = build;\n });\n }\n\n onSettingsSubmit() {\n if (!this.settingsForm.pristine) {\n this.userProviderService.updateEmailNotificationSettings(this.settingsForm.value).subscribe();\n }\n }\n\n updateUserLanguage(langKey: string) {\n this.translate.use(langKey).subscribe(() => {\n localStorage.setItem('langKey', langKey);\n });\n }\n\n logout() {\n this.userProviderService.logout();\n }\n}\n","<!--\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<nav class=\"be-right-sidebar\">\n <div class=\"sb-content\">\n <div class=\"tab-navigation\">\n <ul class=\"nav nav-tabs nav-justified\" role=\"tablist\">\n <li class=\"nav-item\" role=\"presentation\">\n <a\n class=\"nav-link active\"\n href=\"#account\"\n aria-controls=\"account\"\n role=\"tab\"\n data-toggle=\"tab\"\n translate=\"account.title\"\n ></a>\n </li>\n <li class=\"nav-item\" role=\"presentation\">\n <a\n class=\"nav-link\"\n (click)=\"loadUserSettingsTab()\"\n href=\"#settings\"\n aria-controls=\"settings\"\n role=\"tab\"\n data-toggle=\"tab\"\n translate=\"settings.title\"\n ></a>\n </li>\n </ul>\n </div>\n <div class=\"tab-panel\">\n <div class=\"tab-content\">\n <!-- account -->\n <div class=\"tab-pane tab-account active\" id=\"account\" role=\"tabpanel\">\n <div class=\"p-3 be-scroller-settings\" *ngIf=\"userIdentity\">\n <div class=\"content\">\n <div class=\"category-title border-0 m-0\">\n <div class=\"p-0 text-muted\">\n <dl class=\"row mb-0\">\n <dt class=\"col-sm-3\">Email</dt>\n <dd class=\"col-sm-9 mb-0 text-bold\">{{ userIdentity.email }}</dd>\n <ng-container *ngIf=\"userIdentity.username\">\n <dt class=\"col-sm-3\">Username</dt>\n <dd class=\"col-sm-9 mb-0 text-bold\">{{ userIdentity.username }}</dd>\n </ng-container>\n <dt class=\"col-sm-3\">Name</dt>\n <dd class=\"col-sm-9 mb-0 text-bold\">\n {{ userIdentity.firstName + ' ' + userIdentity.lastName }}\n </dd>\n </dl>\n </div>\n </div>\n <!-- context switch -->\n <ul class=\"settings-list\" *ngIf=\"userContexts?.length > 1\">\n <li ngbTooltip=\"{{ 'settings.context.title' | translate }}\">\n <select\n class=\"form-control\"\n #contextSelect\n (change)=\"setUserContext(+contextSelect.value)\"\n >\n <option\n *ngFor=\"let context of userContexts\"\n [value]=\"context.id\"\n [selected]=\"context.id === userContextActive.id\"\n >\n {{ context.name }}\n </option>\n </select>\n </li>\n </ul>\n <ul class=\"list-group list-group-flush m-0\">\n <li class=\"bg-transparent list-group-item px-0\">\n <a\n href=\"https://docs.valtimo.nl\"\n target=\"_blank\"\n class=\"d-block\"\n translate=\"account.links.help\"\n ></a>\n </li>\n <li class=\"bg-transparent list-group-item px-0\">\n <a\n href=\"https://www.valtimo.nl/feedback/\"\n target=\"_blank\"\n class=\"d-block\"\n translate=\"account.links.feedback\"\n ></a>\n </li>\n <li class=\"bg-transparent list-group-item px-0\">\n <a\n href=\"https://forum.valtimo.nl\"\n target=\"_blank\"\n class=\"d-block\"\n translate=\"account.links.forum\"\n ></a>\n </li>\n <li class=\"bg-transparent list-group-item px-0\">\n <a\n href=\"javascript:void(0)\"\n class=\"d-block\"\n (click)=\"logout()\"\n translate=\"account.links.signOut\"\n ></a>\n </li>\n </ul>\n </div>\n </div>\n </div>\n\n <!-- settings -->\n <div class=\"tab-pane tab-settings\" id=\"settings\" role=\"tabpanel\">\n <div class=\"p-3 be-scroller-settings\">\n <div class=\"content\">\n <span class=\"category-title\" translate=\"settings.language.title\"></span>\n <ul class=\"settings-list\">\n <li>\n <select\n class=\"form-control\"\n #langSelect\n (change)=\"updateUserLanguage(langSelect.value)\"\n >\n <option\n *ngFor=\"let lang of translate.getLangs()\"\n [value]=\"lang\"\n [selected]=\"lang === translate.currentLang\"\n >\n {{ 'settings.language.options.' + lang | translate }}\n </option>\n </select>\n </li>\n </ul>\n\n <form [formGroup]=\"settingsForm\">\n <span class=\"category-title\" translate=\"settings.notification.title\"></span>\n <ul class=\"settings-list m-0\">\n <li>\n <div class=\"switch-button switch-button-sm switch-button-success\">\n <input\n type=\"checkbox\"\n formControlName=\"taskNotifications\"\n id=\"taskNotifications\"\n (ngModelChange)=\"onSettingsSubmit()\"\n /><span> <label for=\"taskNotifications\"></label></span>\n </div>\n <span class=\"name\" translate=\"settings.notification.taskNotifications\"></span>\n <div\n class=\"text-muted info-text\"\n translate=\"settings.notification.taskNotificationsIntro\"\n ></div>\n </li>\n\n <li>\n <div class=\"switch-button switch-button-sm switch-button-success\">\n <input\n type=\"checkbox\"\n formControlName=\"emailNotifications\"\n id=\"emailNotifications\"\n (ngModelChange)=\"onSettingsSubmit()\"\n /><span> <label for=\"emailNotifications\"></label></span>\n </div>\n <span class=\"name\" translate=\"settings.notification.emailNotifications\"></span>\n <div\n class=\"text-muted info-text\"\n translate=\"settings.notification.emailNotificationsIntro\"\n ></div>\n </li>\n </ul>\n\n <div *ngIf=\"settingsForm.value.emailNotifications\">\n <ul class=\"settings-list\">\n <li *ngFor=\"let frequency of frequencies\">\n <div class=\"switch-button switch-button-sm switch-button-success\">\n <input\n type=\"checkbox\"\n formControlName=\"{{ frequency }}\"\n id=\"{{ frequency }}\"\n (ngModelChange)=\"onSettingsSubmit()\"\n /><span> <label for=\"{{ frequency }}\"></label></span>\n </div>\n <span class=\"name\">{{\n 'settings.notification.' + frequency | translate\n }}</span>\n </li>\n </ul>\n </div>\n </form>\n\n <div class=\"version-holder\">\n <span class=\"category-title\" translate=\"settings.version.title\"></span>\n <ul class=\"settings-list\">\n <li *ngIf=\"build\">\n <div class=\"name\">{{ build.title }}</div>\n <div class=\"text-muted\">{{ build.version }}</div>\n </li>\n </ul>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</nav>\n","/*\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\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {RightSidebarComponent} from './right-sidebar.component';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {RouterModule} from '@angular/router';\nimport {HttpClient} from '@angular/common/http';\nimport {TranslateLoader, TranslateModule} from '@ngx-translate/core';\nimport {HttpLoaderFactory} from '@valtimo/config';\nimport {NgbTooltipModule} from '@ng-bootstrap/ng-bootstrap';\n\n@NgModule({\n declarations: [RightSidebarComponent],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n RouterModule,\n TranslateModule.forRoot({\n loader: {\n provide: TranslateLoader,\n useFactory: HttpLoaderFactory,\n deps: [HttpClient],\n },\n }),\n NgbTooltipModule,\n ],\n exports: [RightSidebarComponent],\n})\nexport class RightSidebarModule {}\n","/*\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\nimport {Component, OnDestroy, OnInit} from '@angular/core';\nimport {ActivatedRoute, NavigationEnd, Router} from '@angular/router';\nimport {Title} from '@angular/platform-browser';\nimport {filter} from 'rxjs/operators';\nimport {BehaviorSubject, combineLatest, Subscription} from 'rxjs';\nimport {TranslateService} from '@ngx-translate/core';\nimport {NGXLogger} from 'ngx-logger';\n\n@Component({\n selector: 'valtimo-page-title',\n templateUrl: './page-title.component.html',\n styleUrls: ['./page-title.component.css'],\n})\nexport class PageTitleComponent implements OnInit, OnDestroy {\n public appTitle = 'Valtimo';\n readonly translatedTitle$ = new BehaviorSubject<string>('');\n private routerTranslateSubscription!: Subscription;\n\n constructor(\n private router: Router,\n private activatedRoute: ActivatedRoute,\n private titleService: Title,\n private translateService: TranslateService,\n private logger: NGXLogger\n ) {}\n\n ngOnInit() {\n this.openRouterTranslateSubscription();\n }\n\n ngOnDestroy() {\n this.routerTranslateSubscription?.unsubscribe();\n }\n\n private openRouterTranslateSubscription(): void {\n this.routerTranslateSubscription = combineLatest([\n this.router.events,\n this.translateService.stream('key'),\n ]).subscribe(() => {\n const routeTitle =\n this.activatedRoute?.snapshot?.firstChild?.data?.title ||\n this.activatedRoute?.snapshot?.firstChild?.children[0]?.data?.title;\n const routeTitleTranslation = this.translateService.instant(routeTitle);\n const routeTitlePageTranslationString = `pages.${routeTitle.toLowerCase()}.title`;\n const routeTitlePageTranslation = this.translateService.instant(\n routeTitlePageTranslationString\n );\n const translatedRouteTitle =\n routeTitle &&\n ((routeTitlePageTranslation !== routeTitlePageTranslationString\n ? routeTitlePageTranslation\n : '') ||\n (routeTitle !== routeTitleTranslation ? routeTitleTranslation : '') ||\n routeTitle);\n\n if (translatedRouteTitle) {\n this.logger.debug('PageTitle: setTitle translated async', translatedRouteTitle);\n this.translatedTitle$.next(translatedRouteTitle);\n this.titleService.setTitle(this.appTitle + ' - ' + translatedRouteTitle);\n } else {\n this.logger.debug('PageTitle: setTitle default', this.appTitle);\n this.translatedTitle$.next('');\n this.titleService.setTitle(this.appTitle);\n }\n });\n }\n}\n","<!--\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<ng-container *ngIf=\"{title: translatedTitle$ | async} as obs\">\n <h2 class=\"page-head-title\" *ngIf=\"obs.title !== ''\"><span [innerHTML]=\"obs.title\"></span></h2>\n</ng-container>\n","/*\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\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {TranslateService} from '@ngx-translate/core';\nimport {BehaviorSubject, combineLatest, fromEvent, Subscription} from 'rxjs';\nimport {debounceTime, map, take} from 'rxjs/operators';\nimport {ConfigService, CustomLeftSidebar} from '@valtimo/config';\n\n@Component({\n selector: 'valtimo-left-sidebar',\n templateUrl: './left-sidebar.component.html',\n styleUrls: ['./left-sidebar.component.css'],\n})\nexport class LeftSidebarComponent implements OnInit, AfterViewInit, OnDestroy {\n @ViewChild('toggleButton') toggleButtonRef: ElementRef;\n\n @Input() menuIsOpen: boolean;\n @Output() menuWidthChanged: EventEmitter<number> = new EventEmitter();\n\n readonly menuTooltipText$ = this.translateService.stream('interface.mainMenu');\n readonly toggleMenuText$ = this.translateService.stream('interface.toggleMenu');\n\n readonly mouseIsOnResizeBorder$ = new BehaviorSubject<boolean>(false);\n readonly menuWidth$ = new BehaviorSubject<number>(undefined);\n readonly isResizing$ = new BehaviorSubject<boolean>(false);\n\n private bodyStyle: any;\n\n private xOnClick: number;\n private menuWidthOnClick: number;\n\n private mouseXSubscription: Subscription;\n private mouseUpSubscription: Subscription;\n\n private defaultMenuWidth!: number;\n private maxMenuWidth!: number;\n private minMenuWidth!: number;\n\n private readonly mouseX$ = fromEvent(document.body, 'mousemove').pipe(\n map((e: MouseEvent) => e.pageX)\n );\n\n constructor(\n private translateService: TranslateService,\n private readonly elementRef: ElementRef,\n private readonly configService: ConfigService\n ) {\n this.bodyStyle = elementRef.nativeElement.ownerDocument.body.style;\n }\n\n ngOnInit(): void {\n const customLeftSidebar = this.configService.config.customLeftSidebar;\n\n this.setInitialWidth(customLeftSidebar);\n }\n\n ngAfterViewInit(): void {\n this.mouseXSubscription = combineLatest([this.mouseX$, this.isResizing$])\n .pipe(debounceTime(3))\n .subscribe(([x, isResizing]) => {\n const menuOpen = this.menuIsOpen;\n\n if (isResizing) {\n const offSetWidth = this.xOnClick - x;\n const newMenuWidth = this.menuWidthOnClick - offSetWidth;\n const snapMargin = 35;\n const snapInside = newMenuWidth < this.minMenuWidth - snapMargin;\n const snapOutside = !menuOpen && offSetWidth < -snapMargin;\n\n if (menuOpen && newMenuWidth <= this.maxMenuWidth && newMenuWidth >= this.minMenuWidth) {\n this.setMenuWidth(newMenuWidth);\n } else if (snapInside || snapOutside) {\n this.snapMenu(snapInside ? this.menuWidthOnClick : this.defaultMenuWidth);\n }\n }\n });\n\n this.mouseUpSubscription = fromEvent(document, 'mouseup').subscribe(() => {\n this.stopResizing();\n });\n }\n\n ngOnDestroy(): void {\n this.mouseXSubscription.unsubscribe();\n this.mouseUpSubscription.unsubscribe();\n }\n\n enterBorder(): void {\n this.mouseIsOnResizeBorder$.next(true);\n }\n\n leaveBorder(): void {\n this.mouseIsOnResizeBorder$.next(false);\n }\n\n resizeBorderClick(e: MouseEvent): void {\n this.menuWidth$.pipe(take(1)).subscribe(menuWidth => {\n this.menuWidthOnClick = menuWidth;\n this.xOnClick = e.pageX;\n this.bodyStyle.userSelect = 'none';\n this.bodyStyle.cursor = 'col-resize';\n this.isResizing$.next(true);\n });\n }\n\n private setInitialWidth(customLeftSidebar: CustomLeftSidebar | undefined): void {\n const localMenuWidth = localStorage.getItem('menuWidth');\n const localMenuWidthNumber = localMenuWidth ? Number(localMenuWidth) : undefined;\n\n this.defaultMenuWidth = localMenuWidthNumber || customLeftSidebar?.defaultMenuWidth || 230;\n this.maxMenuWidth = customLeftSidebar?.maxMenuWidth || 330;\n this.minMenuWidth = customLeftSidebar?.minMenuWidth || 120;\n this.setMenuWidth(this.defaultMenuWidth);\n }\n\n private snapMenu(snapTo: number): void {\n this.stopResizing();\n this.setMenuWidth(snapTo);\n setTimeout(() => {\n this.toggleButtonRef.nativeElement.click();\n });\n }\n\n private stopResizing(): void {\n this.bodyStyle.cursor = 'auto';\n this.bodyStyle.userSelect = 'auto';\n this.isResizing$.next(false);\n localStorage.setItem('menuWidth', this.menuWidth$.getValue().toString());\n }\n\n private setMenuWidth(width: number): void {\n this.menuWidth$.next(width);\n this.menuWidthChanged.emit(width);\n }\n}\n","<!--\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<ng-container *ngIf=\"{isResizing: isResizing$ | async} as obs\">\n <div\n class=\"be-left-sidebar\"\n [style.width.px]=\"menuIsOpen ? (menuWidth$ | async) : null\"\n [ngClass]=\"{'no-transition': obs.isResizing}\"\n >\n <div class=\"left-sidebar-wrapper\">\n <a class=\"left-sidebar-toggle\" href=\"javascript:void(0);\"\n ><valtimo-page-title></valtimo-page-title\n ></a>\n <div class=\"progress-widget\" style=\"padding: 20px 0\">\n <ul class=\"sidebar-elements\">\n <li>\n <a\n #toggleButton\n class=\"be-toggle-left-sidebar\"\n href=\"javascript:void(0);\"\n [title]=\"menuTooltipText$ | async\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n width=\"1em\"\n height=\"1em\"\n style=\"-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg)\"\n viewBox=\"0 0 24 24\"\n transform=\"rotate(360)\"\n >\n <path [ngClass]=\"menuIsOpen ? 'd-1' : 'd-1-flipped'\" />\n <path [ngClass]=\"menuIsOpen ? 'd-2' : 'd-2-flipped'\" />\n <path [ngClass]=\"menuIsOpen ? 'd-3' : 'd-3-flipped'\" />\n <path [ngClass]=\"menuIsOpen ? 'd-4' : 'd-4-flipped'\" />\n </svg>\n <span>{{ toggleMenuText$ | async }}</span>\n </a>\n </li>\n </ul>\n </div>\n <div class=\"left-sidebar-spacer\">\n <div class=\"left-sidebar-scroll\">\n <div class=\"left-sidebar-content\">\n <valtimo-menu></valtimo-menu>\n </div>\n </div>\n </div>\n </div>\n <div\n class=\"resize-border\"\n (mouseenter)=\"enterBorder()\"\n (mouseleave)=\"leaveBorder()\"\n (mousedown)=\"resizeBorderClick($event)\"\n [ngClass]=\"{'resize-hover': (mouseIsOnResizeBorder$ | async) || obs.isResizing}\"\n ></div>\n </div>\n</ng-container>\n","/*\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\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {PageTitleComponent} from './page-title.component';\nimport {TranslateModule} from '@ngx-translate/core';\n\n@NgModule({\n declarations: [PageTitleComponent],\n imports: [CommonModule, TranslateModule],\n exports: [PageTitleComponent],\n})\nexport class PageTitleModule {}\n","/*\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\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {LeftSidebarComponent} from './left-sidebar.component';\nimport {PageTitleModule} from '../page-title/page-title.module';\nimport {MenuModule} from '../menu/menu.module';\n\n@NgModule({\n declarations: [LeftSidebarComponent],\n imports: [CommonModule, MenuModule, PageTitleModule],\n exports: [LeftSidebarComponent],\n})\nexport class LeftSidebarModule {}\n","/*\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\nimport {TypeConverter} from './type-converters.model';\n\nexport class StringTypeConverter implements TypeConverter {\n getTypeString(): string {\n return 'string';\n }\n\n convert(value: any, definition: any): string {\n return value;\n }\n}\n","/*\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\nimport {TypeConverter} from './type-converters.model';\n\nexport class BooleanTypeConverter implements TypeConverter {\n getTypeString(): string {\n return 'boolean';\n }\n\n convert(value: any, definition: any): string {\n if (!definition.enum) {\n return value ? 'Yes' : 'No';\n } else {\n return value ? definition.enum[0] || 'Yes' : definition.enum[1] || 'No';\n }\n }\n}\n","/*\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\nimport {TypeConverter} from './type-converters.model';\nimport moment from 'moment';\n\nmoment.locale(localStorage.getItem('langKey'));\n\nexport class DateTypeConverter implements TypeConverter {\n getTypeString(): string {\n return 'date';\n }\n\n convert(value: any, definition: any): string {\n if (!value) {\n return '-';\n }\n\n return moment(value).format(definition?.format || 'DD-MM-YYYY, hh:mm A');\n }\n}\n","/*\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\nimport {TypeConverter} from './type-converters.model';\n\nexport class EnumTypeConverter implements TypeConverter {\n getTypeString(): string {\n return 'enum';\n }\n\n convert(value: any, definition: any): string {\n return definition.enum[value];\n }\n}\n","/*\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\nimport {TypeConverter} from './type-converters.model';\n\nexport class StringReplaceUnderscoreTypeConverter implements TypeConverter {\n public regExpStringRemoveUnderscore = /_/g;\n\n getTypeString(): string {\n return 'stringReplaceUnderscore';\n }\n\n convert(value: any, definition: any): string {\n return value.replace(this.regExpStringRemoveUnderscore, ' ');\n }\n}\n","/*\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\nimport {TypeConverter} from './type-converters.model';\n\nexport class RelatedFilesTypeConverter implements TypeConverter {\n getTypeString(): string {\n return 'relatedFiles';\n }\n\n convert(value: any, definition: any): string {\n return value.length || '-';\n }\n}\n","/*\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\nimport {StringTypeConverter} from './stringTypeConverter';\nimport {BooleanTypeConverter} from './booleanTypeConverter';\nimport {DateTypeConverter} from './dateTypeConverter';\nimport {EnumTypeConverter} from './enumTypeConverter';\nimport {StringReplaceUnderscoreTypeConverter} from './stringReplaceUnderscoreTypeConverter';\nimport {RelatedFilesTypeConverter} from './relatedFilesTypeConverter';\n\nconst stringTypeConverter = new StringTypeConverter();\nconst booleanTypeConverter = new BooleanTypeConverter();\nconst dateTypeConverter = new DateTypeConverter();\nconst enumTypeConverter = new EnumTypeConverter();\nconst stringReplaceUnderscoreTypeConverter = new StringReplaceUnderscoreTypeConverter();\nconst relatedFilesTypeConverter = new RelatedFilesTypeConverter();\n\n// TODO: Via injection\nexport const TYPE_CONVERTERS: Array<TypeConverter> = [\n stringTypeConverter,\n booleanTypeConverter,\n dateTypeConverter,\n enumTypeConverter,\n stringReplaceUnderscoreTypeConverter,\n relatedFilesTypeConverter,\n];\n\nexport interface TypeConverter {\n getTypeString(): string;\n\n convert(value: any, definition: any): string;\n}\n","/*\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\nimport {Injectable} from '@angular/core';\nimport {StringTypeConverter} from './type-converters/stringTypeConverter';\nimport {TYPE_CONVERTERS, TypeConverter} from './type-converters/type-converters.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ViewContentService {\n private converters: {[key: string]: TypeConverter} = {};\n private defaultConverter: TypeConverter;\n\n constructor() {\n this.defaultConverter = new StringTypeConverter();\n\n TYPE_CONVERTERS.forEach(converter => this.addConverter(converter));\n }\n\n public get(value: any, definition: any) {\n const separator = ':';\n if (!definition.viewType) {\n definition.viewType = typeof value;\n }\n\n if (definition.viewType.includes(separator)) {\n // Get the substring of the string after the separator (:) and assign it to a new key\n definition.format = definition.viewType.slice(\n this.getSeparatorIndex(definition, separator) + 1\n );\n\n // Remove the substring after the separator and the separator from the string and assign it back to the viewType\n definition.viewType = definition.viewType.slice(\n 0,\n this.getSeparatorIndex(definition, separator)\n );\n }\n\n if (typeof this.converters[definition.viewType] !== 'undefined') {\n return this.converters[definition.viewType].convert(value, definition);\n } else {\n return this.defaultConverter.convert(value, definition);\n }\n }\n\n public addConverter(converter: TypeConverter) {\n if (typeof this.converters[converter.getTypeString()] !== 'undefined') {\n throw new Error('Converter with name ' + converter.getTypeString() + ' already exists');\n }\n\n this.converters[converter.getTypeString()] = converter;\n }\n\n getSeparatorIndex(definition, separator) {\n return definition.viewType.indexOf(separator);\n }\n}\n","/*\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\nimport {Pipe, PipeTransform} from '@angular/core';\n\n@Pipe({\n name: 'listFilter',\n})\nexport class ListFilterPipe implements PipeTransform {\n transform(list: any[], filterText: string): any {\n list = list || [];\n if (!filterText) {\n return list;\n }\n return list.filter(item =>\n Object.keys(item).some(\n k => item[k] != null && item[k].toString().toLowerCase().includes(filterText.toLowerCase())\n )\n );\n }\n}\n","/*\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\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport {Direction, SortState} from '@valtimo/document';\nimport {NGXLogger} from 'ngx-logger';\nimport {BehaviorSubject, fromEvent} from 'rxjs';\nimport {debounceTime, take} from 'rxjs/operators';\nimport {ViewContentService} from '../view-content/view-content.service';\n\n@Component({\n selector: 'valtimo-list',\n templateUrl: './list.component.html',\n styleUrls: ['./list.component.scss'],\n})\nexport class ListComponent implements OnChanges, OnInit, AfterViewInit {\n private static PAGINATION_SIZE = 'PaginationSize';\n\n @Input() items: Array<any>;\n @Input() fields: Array<any>;\n @Input() pagination?: any;\n @Input() viewMode?: boolean;\n @Input() isSearchable?: boolean;\n @Input() header?: boolean;\n @Input() actions: any[] = [];\n @Input() paginationIdentifier?: string;\n @Input() initialSortState: SortState;\n @Input() lastColumnTemplate?: TemplateRef<any>;\n\n @Output() rowClicked: EventEmitter<any> = new EventEmitter();\n @Output() paginationClicked: EventEmitter<any> = new EventEmitter();\n @Output() paginationSet: EventEmitter<any> = new EventEmitter();\n @Output() search: EventEmitter<any> = new EventEmitter();\n @Output() sortChanged: EventEmitter<SortState> = new EventEmitter();\n\n public headerProvided = false;\n public viewListAs: string;\n public searchModel: string;\n public regExpStringRemoveUnderscore = /_/g;\n @ViewChild('searchBox') searchBox: ElementRef;\n\n readonly sort$ = new BehaviorSubject<SortState>({\n state: {name: '', direction: 'DESC'},\n isSorting: false,\n });\n\n constructor(private viewContentService: ViewContentService, private logger: NGXLogger) {\n this.viewListAs = localStorage.getItem('viewListAs') || 'table';\n }\n\n loadPaginationSize(): void {\n const entries = localStorage.getItem(\n `${this.paginationIdentifier}${ListComponent.PAGINATION_SIZE}`\n );\n if (entries !== null) {\n this.pagination.size = +entries;\n this.paginationSet.emit(+entries);\n this.logger.debug('Pagination loaded from local storage for this list. Current: ', entries);\n } else {\n this.logger.debug(\n 'Pagination does NOT exist in local storage for this list. Will use default. Change it to create an entry.'\n );\n this.paginationSet.emit(10);\n }\n }\n\n setPaginationSize(numberOfEntries: string) {\n localStorage.setItem(\n `${this.paginationIdentifier}${ListComponent.PAGINATION_SIZE}`,\n numberOfEntries\n );\n this.pagination.size = numberOfEntries;\n this.logger.debug('Pagination set in local storage for this list: ', numberOfEntries);\n this.paginationSet.emit(numberOfEntries);\n }\n\n ngOnInit() {\n if (this.pagination) {\n this.loadPaginationSize();\n }\n\n if (this.initialSortState) {\n this.sort$.next(this.initialSortState);\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.items && changes.items.currentValue) {\n this.transformListItemsMatchFields();\n }\n\n if (changes?.initialSortState?.currentValue) {\n this.sort$.next(changes?.initialSortState?.currentValue);\n }\n }\n\n ngAfterViewInit() {\n if (this.isSearchable) {\n fromEvent(this.searchBox.nativeElement, 'keyup')\n .pipe(debounceTime(500))\n .subscribe(() => {\n const value = this.searchBox.nativeElement.value;\n if (this.search.observers.length > 0) {\n // custom search callbak is specified, perhaps to query on the server side\n this.search.emit(value);\n } else {\n this.searchModel = value;\n }\n });\n }\n }\n\n public transformListItemsMatchFields() {\n if (this.items && this.fields) {\n this.items.forEach(item => {\n item.listItemFields = this.fields.map(field => ({\n key: field.key,\n label: field.label,\n type: field.type || '',\n value: this.resolveObject(field, item),\n }));\n });\n }\n }\n\n public onClickRow(item) {\n this.rowClicked.emit(item);\n }\n\n public resolveObject(definition: any, obj: any) {\n const definitionKey = definition.key;\n const customPropString = '$.';\n const key = definitionKey.includes(customPropString)\n ? definitionKey.split(customPropString)[1]\n : definitionKey;\n const resolvedObjValue = key.split('.').reduce(function (prev, curr) {\n return prev ? prev[curr] : null;\n }, obj || self);\n return this.viewContentService.get(resolvedObjValue, definition);\n }\n\n public switchView(type) {\n localStorage.setItem('viewListAs', type);\n this.viewListAs = type;\n }\n\n public getTotalPageCount() {\n return Math.ceil(this.pagination.collectionSize / this.pagination.size);\n }\n\n public onClickPagination(page) {\n this.paginationClicked.emit(page);\n }\n\n public handleFieldClick(key: string, sortable: boolean): void {\n const desc: Direction = 'DESC';\n const asc: Direction = 'ASC';\n\n if (!sortable) {\n return;\n }\n\n this.sort$.pipe(take(1)).subscribe(sort => {\n let newState: SortState;\n\n if (sort.state.name === key) {\n if (!sort.isSorting) {\n newState = {state: {...sort.state, direction: desc}, isSorting: true};\n } else {\n if (sort.state.direction === desc) {\n newState = {...sort, state: {...sort.state, direction: asc}};\n } else {\n newState = {state: {...sort.state, direction: desc}, isSorting: false};\n }\n }\n } else {\n newState = {state: {name: key, direction: desc}, isSorting: true};\n }\n\n this.sort$.next(newState);\n this.sortChanged.emit(newState);\n });\n }\n}\n","<!--\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=\"(items?.length > 0 && fields?.length > 0) || header\">\n <div\n class=\"d-flex align-items-center search-holder bg-light\"\n [ngClass]=\"{'pb-4 pt-4': !header}\"\n *ngIf=\"isSearchable || viewMode || header\"\n >\n <div class=\"align-self-start\">\n <ng-content select=\"[header]\"></ng-content>\n </div>\n\n <div class=\"ml-auto row\">\n <input\n *ngIf=\"isSearchable\"\n class=\"form-control col-sm-8\"\n type=\"text\"\n placeholder=\"{{ 'list.search' | translate }}\"\n #searchBox\n />\n\n <div\n class=\"switch-view-holder btn-group col-sm-4 mt-1 mt-sm-0\"\n role=\"group\"\n *ngIf=\"viewMode\"\n >\n <button\n class=\"btn\"\n [ngClass]=\"viewListAs === 'table' ? 'btn-primary' : 'btn-default'\"\n (click)=\"switchView('table')\"\n >\n <i class=\"icon mdi mdi-view-headline view-icon\"></i>\n </button>\n <button\n class=\"btn\"\n [ngClass]=\"viewListAs === 'tile' ? 'btn-primary' : 'btn-default'\"\n (click)=\"switchView('tile')\"\n >\n <i class=\"icon mdi mdi-view-module view-icon\"></i>\n </button>\n </div>\n </div>\n </div>\n </div>\n\n <ng-content select=\"[tabs]\"></ng-content>\n\n <div *ngIf=\"items?.length > 0 && fields?.length > 0\">\n <div class=\"table-responsive noSwipe\" *ngIf=\"!viewMode || viewListAs === 'table'\">\n <table class=\"table table-striped table-hover m-0\" *ngIf=\"sort$ | async as sort\">\n <thead>\n <tr>\n <th\n *ngFor=\"let field of fields\"\n (click)=\"handleFieldClick(field.key, field.sortable)\"\n [ngClass]=\"{\n sortable: field.sortable,\n 'is-being-sorted': field.key === sort.state.name && sort.isSorting,\n ascending: sort.state.direction === 'ASC'\n }\"\n >\n {{ field.label }}\n </th>\n <th *ngFor=\"let action of actions\">\n {{ action.columnName }}\n </th>\n </tr>\n </thead>\n <tbody>\n <tr\n [ngClass]=\"{'click-able': this.rowClicked.observers.length > 0}\"\n *ngFor=\"let item of items | listFilter: searchModel; let i = index\"\n (click)=\"onClickRow(item)\"\n >\n <td class=\"align-top\" *ngFor=\"let listItemField of item.listItemFields\">\n <ng-container *ngIf=\"listItemField.type === ''\">\n {{ listItemField.value || '-' }}\n </ng-container>\n\n <ng-container\n *ngIf=\"listItemField.type === 'dropdownActions'\"\n [ngTemplateOutlet]=\"dropdownActions\"\n [ngTemplateOutletContext]=\"{listItemField: listItemField, item: item}\"\n ></ng-container>\n </td>\n <td class=\"align-top\" *ngFor=\"let action of actions\">\n <i\n class=\"action-icon\"\n style=\"cursor: pointer\"\n [ngClass]=\"action.iconClass\"\n (click)=\"action.callback(item, $event)\"\n ></i>\n </td>\n <td *ngIf=\"lastColumnTemplate\">\n <ng-container\n *ngTemplateOutlet=\"lastColumnTemplate; context: {index: i, length: items.length}\"\n ></ng-container>\n </td>\n </tr>\n <tr>\n <td *ngIf=\"(items | listFilter: searchModel).length === 0\" [colSpan]=\"fields.length\">\n {{ 'list.noMatchingItems' | translate }}<i>\"{{ searchModel }}\"</i>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n\n <div class=\"container-fluid\" *ngIf=\"viewMode && viewListAs === 'tile'\">\n <div class=\"row p-2\">\n <div\n class=\"col-12 col-sm-6 col-xl-4 p-2\"\n *ngFor=\"let item of items | listFilter: searchModel\"\n (click)=\"onClickRow(item)\"\n >\n <div class=\"click-able tile-holder p-4\">\n <dl class=\"row mb-0\" *ngFor=\"let listItemField of item.listItemFields\">\n <dt class=\"col-12 col-md-5 text-xl-right\">{{ listItemField.label }}</dt>\n <dd class=\"col-12 col-md-7\">{{ listItemField.value || '-' }}</dd>\n </dl>\n </div>\n </div>\n <div class=\"col-12\" *ngIf=\"(items | listFilter: searchModel).length === 0\">\n {{ 'list.noMatchingItems' | translate }}<i>\"{{ searchModel }}\"</i>\n </div>\n </div>\n </div>\n </div>\n\n <div\n class=\"pagination-holder bg-light px-4 pt-4 pb-2 overflow-auto row mr-0 ml-0\"\n *ngIf=\"pagination && items?.length > 0 && fields?.length > 0\"\n >\n <div class=\"float-left page-count col-4\">\n <strong>{{\n 'list.currentPage' | translate: {current: pagination.page, total: getTotalPageCount()}\n }}</strong>\n <br />\n {{\n pagination.collectionSize === 1\n ? ('list.showingResult' | translate: {number: (items | listFilter: searchModel).length})\n : ('list.showingResults'\n | translate\n : {\n number: (items | listFilter: searchModel).length,\n total: pagination.collectionSize\n })\n }}\n </div>\n <div class=\"col-4 text-center\">\n {{ 'list.show' | translate }}\n <select [(ngModel)]=\"pagination.size\" (ngModelChange)=\"setPaginationSize($event)\">\n <option [ngValue]=\"10\">10</option>\n <option [ngValue]=\"25\">25</option>\n <option [ngValue]=\"50\">50</option>\n <option [ngValue]=\"100\">100</option>\n </select>\n {{ 'list.entries' | translate }}\n </div>\n <div class=\"col-4\">\n <ngb-pagination\n *ngIf=\"pagination.collectionSize > pagination.size\"\n class=\"float-right\"\n [collectionSize]=\"pagination.collectionSize\"\n [(page)]=\"pagination.page\"\n [pageSize]=\"pagination.size\"\n [maxSize]=\"pagination.maxPaginationItemSize\"\n [rotate]=\"true\"\n (pageChange)=\"onClickPagination(pagination.page)\"\n ></ngb-pagination>\n </div>\n </div>\n\n <div id=\"no-results\" class=\"p-5\" *ngIf=\"items?.length === 0\">\n {{ 'list.noResults' | translate }}\n </div>\n\n <div id=\"no-field-definitions\" class=\"p-5\" *ngIf=\"items?.length > 0 && fields?.length === 0\">\n {{ 'list.noFieldDefinitions' | translate }}\n </div>\n</div>\n\n<ng-template #dropdownActions let-listItemField=\"listItemField\" let-item=\"item\">\n <div class=\"dropdown\" *ngIf=\"listItemField?.value.length > 0\">\n <a\n style=\"cursor: pointer\"\n class=\"dropdown-toggle d-block\"\n id=\"dropdownMenu\"\n data-toggle=\"dropdown\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n >\n <i class=\"action-icon icon mdi mdi-dots-vertical\"></i>\n </a>\n <div class=\"dropdown-menu\" aria-labelledby=\"dropdownMenu\">\n <a\n (click)=\"action.callback(item, $event)\"\n class=\"dropdown-item p-2\"\n *ngFor=\"let action of listItemField.value\"\n >\n <ng-container *ngIf=\"action.iconClass !== null\">\n <i [ngClass]=\"action.iconClass\"></i>\n </ng-container>\n {{ action?.label || '-' }}\n </a>\n </div>\n </div>\n</ng-template>\n","/*\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\nimport {Component, Input, OnInit} from '@angular/core';\n\n/**\n * Component used to display a card element\n */\n@Component({\n selector: 'valtimo-card',\n templateUrl: './card.component.html',\n styleUrls: ['./card.component.css'],\n})\nexport class CardComponent implements OnInit {\n /**\n * The main title used on the card\n */\n @Input() title?: string;\n\n /**\n * The smaller font size sub title used on the card\n */\n @Input() subtitle?: string;\n\n constructor() {}\n\n ngOnInit() {}\n}\n","<!--\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 class=\"card card-border-color card-border-color-primary\">\n <div *ngIf=\"title || subtitle\" class=\"card-header card-header-divider\">\n <span *ngIf=\"title\">{{ title }}</span>\n <span *ngIf=\"subtitle\" class=\"card-subtitle\">{{ subtitle }}</span>\n </div>\n <div class=\"card-body\">\n <ng-content></ng-content>\n </div>\n</div>\n","/*\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\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {CardComponent} from './card.component';\n\n@NgModule({\n declarations: [CardComponent],\n imports: [CommonModule],\n exports: [CardComponent],\n})\nexport class CardModule {}\n","/*\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\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {NgbPaginationModule} from '@ng-bootstrap/ng-bootstrap';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {CardModule} from '../card/card.module';\nimport {ListComponent} from './list.component';\nimport {ListFilterPipe} from './ListFilterPipe.directive';\n\n@NgModule({\n declarations: [ListComponent, ListFilterPipe],\n imports: [CommonModule, CardModule, NgbPaginationModule, FormsModule, TranslateModule],\n exports: [ListComponent, ListFilterPipe],\n})\nexport class ListModule {}\n","/*\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\nimport {Component, OnDestroy, OnInit} from '@angular/core';\nimport {ActivatedRoute, NavigationEnd, PRIMARY_OUTLET, Router} from '@angular/router';\nimport {filter, map} from 'rxjs/operators';\nimport {Subscription} from 'rxjs';\n\n@Component({\n selector: 'valtimo-breadcrumb-navigation',\n templateUrl: './breadcrumb-navigation.component.html',\n styleUrls: ['./breadcrumb-navigation.component.css'],\n})\nexport class BreadcrumbNavigationComponent implements OnInit, OnDestroy {\n public breadcrumbs: Array<any> = [];\n public appTitle = 'Valtimo';\n private routerSub = Subscription.EMPTY;\n\n constructor(private router: Router, private route: ActivatedRoute) {}\n\n ngOnInit() {\n this.setBreadcrumbs(this.route);\n this.routerSub = this.router.events\n .pipe(filter(event => event instanceof NavigationEnd))\n .pipe(map(() => this.route))\n .pipe(\n map(route => {\n while (route.firstChild) {\n route = route.firstChild;\n }\n return route;\n })\n )\n .pipe(filter(route => route.outlet === PRIMARY_OUTLET))\n .subscribe(route => {\n this.setBreadcrumbs(route);\n });\n }\n\n private setBreadcrumbs(route: ActivatedRoute) {\n while (route.firstChild) {\n route = route.firstChild;\n }\n if (route.outlet === PRIMARY_OUTLET) {\n const snapshot = route.snapshot;\n const activeRoute = {\n url: snapshot.url.join('/'),\n path: snapshot.routeConfig.path,\n label: snapshot.data['title'],\n params: snapshot.params,\n };\n this.generateBreadcrumbs(activeRoute);\n }\n }\n\n private generateBreadcrumbs(activeBreadcrumb: any) {\n this.breadcrumbs = [];\n this.router.config.map(routerConfig => {\n if (\n activeBreadcrumb.path.indexOf(routerConfig.path + '/') === 0 &&\n activeBreadcrumb.path !== routerConfig.path &&\n routerConfig.path !== ''\n ) {\n const parentRoute = {\n url: routerConfig.path.replace(/:(.+?)\\b/g, (_, p1) => activeBreadcrumb.params[p1]),\n path: routerConfig.path,\n label: routerConfig.data['title'],\n params: activeBreadcrumb.params,\n };\n const exist = this.breadcrumbs.findIndex(item => item.url === parentRoute.url);\n if (exist === -1) {\n this.breadcrumbs.push(parentRoute);\n }\n }\n });\n }\n\n ngOnDestroy() {\n this.routerSub.unsubscribe();\n }\n}\n","<!--\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<nav aria-label=\"breadcrumb\" role=\"navigation\">\n <ol class=\"breadcrumb page-head-nav\">\n <li class=\"breadcrumb-item\">\n <a [routerLink]=\"['/']\">{{ appTitle }}</a>\n </li>\n <li class=\"breadcrumb-item\" *ngFor=\"let item of breadcrumbs\">\n <a [routerLink]=\"[item.url]\">{{ item.label | translate }}</a>\n </li>\n </ol>\n</nav>\n","/*\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\nimport {Component, OnInit} from '@angular/core';\nimport {UserInterfaceService} from '@valtimo/user-interface';\n\n@Component({\n selector: 'valtimo-page-header',\n templateUrl: './page-header.component.html',\n styleUrls: ['./page-header.component.css'],\n})\nexport class PageHeaderComponent implements OnInit {\n readonly showPageHeader$ = this.userInterfaceService.showPageHeader$;\n\n constructor(private readonly userInterfaceService: UserInterfaceService) {}\n\n ngOnInit() {}\n}\n","<!--\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 class=\"page-head\" [ngClass]=\"{'page-head--hidden': (showPageHeader$ | async) === false}\">\n <valtimo-page-title></valtimo-page-title>\n <valtimo-breadcrumb-navigation></valtimo-breadcrumb-navigation>\n</div>\n","/*\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\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {RouterModule} from '@angular/router';\nimport {BreadcrumbNavigationComponent} from './breadcrumb-navigation.component';\nimport {TranslateModule} from '@ngx-translate/core';\n\n@NgModule({\n declarations: [BreadcrumbNavigationComponent],\n imports: [CommonModule, RouterModule, TranslateModule],\n exports: [BreadcrumbNavigationComponent],\n})\nexport class BreadcrumbNavigationModule {}\n","/*\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\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {PageHeaderComponent} from './page-header.component';\nimport {PageTitleModule} from '../page-title/page-title.module';\nimport {BreadcrumbNavigationModule} from '../breadcrumb-navigation/breadcrumb-navigation.module';\n\n@NgModule({\n declarations: [PageHeaderComponent],\n imports: [CommonModule, PageTitleModule, BreadcrumbNavigationModule],\n exports: [PageHeaderComponent],\n})\nexport class PageHeaderModule {}\n","/*\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\nimport {Component, Input, OnInit} from '@angular/core';\n\n/**\n * Component used to display a widget element\n */\n@Component({\n selector: 'valtimo-widget',\n templateUrl: './widget.component.html',\n styleUrls: ['./widget.component.css'],\n})\nexport class WidgetComponent implements OnInit {\n @Input() type?: string;\n @Input() name?: string;\n @Input() icon?: string;\n @Input() contrast?: string;\n @Input() divider?: string;\n @Input() title?: string;\n @Input() subtitle?: string;\n @Input() collapseAble?: string;\n @Input() collapse?: string;\n @Input() additionalClasses?: string;\n\n public cardClassName: string;\n public contrastClass: string;\n public dividerClass: string;\n public isCollapsed: boolean;\n\n ngOnInit(): void {\n this.setCardClassName();\n this.setType();\n this.setAdditionalClasses();\n this.setContrast();\n this.setDivider();\n this.setCollapse();\n }\n\n public toggleContent(): void {\n if (this.collapseAble) {\n this.isCollapsed = !this.isCollapsed;\n }\n }\n\n private setCardClassName(): void {\n this.cardClassName = 'card-full-default';\n }\n\n private setType(): void {\n if (this.type) {\n this.cardClassName = `card-full-${this.type}`;\n }\n }\n\n private setAdditionalClasses(): void {\n if (this.additionalClasses) {\n this.cardClassName = `${this.cardClassName} ${this.additionalClasses}`;\n }\n }\n\n private setContrast(): void {\n if (this.contrast) {\n this.contrastClass = 'card-header-contrast';\n }\n }\n\n private setDivider(): void {\n if (this.divider) {\n this.dividerClass = 'card-header-divider';\n }\n }\n\n private setCollapse(): void {\n this.isCollapsed = !(this.collapseAble && this.collapse === 'hide');\n }\n}\n","<!--\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 class=\"card card-border card-contrast {{ cardClassName }}\">\n <div class=\"card-header {{ contrastClass }} {{ dividerClass }}\" *ngIf=\"title || subtitle\">\n <div class=\"row\">\n <div class=\"col-7\" [ngClass]=\"{clickable: collapseAble}\" (click)=\"toggleContent()\">\n <!-- Title -->\n <div *ngIf=\"title\" class=\"text-truncate\">{{ title }}</div>\n <!-- Sub title -->\n <div *ngIf=\"subtitle\" class=\"card-subtitle text-truncate\">{{ subtitle }}</div>\n </div>\n\n <!-- Tools-->\n <div class=\"tools col-5 text-right\">\n <!-- Collapse content -->\n <a\n class=\"icon mdi\"\n *ngIf=\"collapseAble\"\n [ngClass]=\"{'mdi-chevron-up': isCollapsed, 'mdi-chevron-down': !isCollapsed}\"\n (click)=\"toggleContent()\"\n ></a>\n </div>\n </div>\n </div>\n <!-- content -->\n <div [hidden]=\"!isCollapsed\">\n <ng-content></ng-content>\n </div>\n</div>\n","/*\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\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {WidgetComponent} from './widget.component';\n\n@NgModule({\n declarations: [WidgetComponent],\n imports: [CommonModule],\n exports: [WidgetComponent],\n})\nexport class WidgetModule {}\n","/*\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\nimport {AfterContentInit, Directive, ElementRef} from '@angular/core';\n\n@Directive({\n selector: '[valtimoFieldAutoFocus]',\n})\nexport class FieldAutoFocusDirective implements AfterContentInit {\n constructor(private el: ElementRef) {}\n\n public ngAfterContentInit() {\n setTimeout(() => {\n this.el.nativeElement.focus();\n }, 300);\n }\n}\n","/*\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\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {FieldAutoFocusDirective} from './field-auto-focus.directive';\n\n@NgModule({\n declarations: [FieldAutoFocusDirective],\n exports: [FieldAutoFocusDirective],\n imports: [CommonModule],\n})\nexport class FieldAutoFocusModule {}\n","/*\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\nimport {\n AfterContentInit,\n Component,\n ElementRef,\n Input,\n OnDestroy,\n Output,\n ViewChild,\n EventEmitter,\n OnInit,\n} from '@angular/core';\nimport BpmnJS from 'bpmn-js/dist/bpmn-navigated-viewer.production.min.js';\nimport heatmap from 'heatmap.js-fixed/build/heatmap.js';\n\n@Component({\n selector: 'valtimo-bpmn-js-diagram',\n templateUrl: './bpmn-js-diagram.component.html',\n styleUrls: ['./bpmn-js-diagram.component.css'],\n})\nexport class BpmnJsDiagramComponent implements OnInit, AfterContentInit, OnDestroy {\n private bpmnJS: BpmnJS;\n private heatMapInstance: any;\n\n @ViewChild('ref', {static: true}) public el: ElementRef;\n @Output() public importDone: EventEmitter<any> = new EventEmitter();\n @Input() public bpmn20Xml: any;\n @Input() public heatmapDuration?: any;\n @Input() public heatmapCount?: any;\n @Input() public historicActivityInstances?: any;\n\n public heatmapMode: boolean;\n public heatPoints = {data: []};\n public min: number;\n public max: number;\n\n constructor() {}\n\n ngOnInit(): void {\n this.bpmnJS = new BpmnJS();\n this.bpmnJS.on('import.done', ({error}) => {\n if (!error) {\n const canvas = this.bpmnJS.get('canvas');\n const eventBus = this.bpmnJS.get('eventBus');\n\n if (this.historicActivityInstances) {\n this.historicActivityInstances.forEach(instance => {\n canvas.addMarker(\n instance.activityId,\n instance.endTime ? 'highlight-overlay-past' : 'highlight-overlay-current'\n );\n });\n }\n\n canvas.zoom('fit-viewport', 'auto');\n\n if (this.heatmapDuration || this.heatmapCount) {\n eventBus.on('canvas.init', () => {\n if (this.heatmapMode) {\n this.clearHeatmap();\n }\n this.getHeatmapData();\n });\n eventBus.on('canvas.viewbox.changing', () => {\n if (this.heatmapMode) {\n this.clearHeatmap();\n }\n });\n eventBus.on('canvas.viewbox.changed', () => {\n this.getHeatmapData();\n });\n }\n }\n });\n }\n\n ngAfterContentInit(): void {\n this.bpmnJS.importXML(this.bpmn20Xml);\n this.bpmnJS.attachTo(this.el.nativeElement);\n }\n\n getHeatmapData() {\n let inputData: any;\n let valueKey: any;\n\n this.heatPoints = {data: []};\n this.min = 0;\n this.max = 0;\n\n if (this.heatmapDuration) {\n inputData = this.heatmapDuration;\n valueKey = 'averageDurationInMilliseconds';\n } else if (this.heatmapCount) {\n inputData = this.heatmapCount;\n valueKey = 'totalCount';\n }\n\n if (inputData) {\n Object.keys(inputData).forEach(key => {\n const diagramContainer = this.el.nativeElement.querySelector('svg').getBoundingClientRect();\n const diagramElm = this.el.nativeElement\n .querySelector(`g[data-element-id=${key}]`)\n .getBoundingClientRect();\n this.setMax(key);\n this.heatPoints.data.push({\n x: Math.round(diagramElm.x - diagramContainer.x + diagramElm.width / 2),\n y: Math.round(diagramElm.y - diagramContainer.y + diagramElm.height / 2),\n value: inputData[key][valueKey],\n radius: diagramElm.width / 2,\n });\n if (inputData[key].count > 0) {\n this.addCounterActiveOverlays(key, inputData);\n }\n });\n\n if (this.heatmapMode) {\n this.showHeatmap();\n }\n }\n }\n\n setMax(key: any) {\n if (this.heatmapDuration) {\n this.max = Math.max(this.heatmapDuration[key].averageDurationInMilliseconds, this.max);\n } else if (this.heatmapCount) {\n this.max = Math.max(\n this.heatmapCount[key].totalCount + this.heatmapCount[key].count,\n this.max\n );\n }\n }\n\n addCounterActiveOverlays(key: any, inputData: any) {\n const overlays = this.bpmnJS.get('overlays');\n overlays.add(key, {\n position: {\n bottom: -10,\n left: 0,\n },\n show: {\n minZoom: 0,\n maxZoom: 5.0,\n },\n html: `<span class=\"badge badge-pill badge-primary\">${inputData[key].count}</span>`,\n });\n }\n\n showHeatmap() {\n this.heatMapInstance = heatmap.create({\n radius: 54,\n blur: 0.7,\n maxOpacity: 0.4,\n minOpacity: 0,\n container: this.el.nativeElement,\n });\n this.heatMapInstance.setData({\n min: this.min,\n max: this.max,\n data: this.heatPoints.data,\n });\n }\n\n clearHeatmap() {\n this.heatMapInstance.setData({data: []});\n }\n\n toggleHeatmap() {\n this.heatmapMode = !this.heatmapMode;\n if (this.heatmapMode) {\n this.showHeatmap();\n } else {\n this.clearHeatmap();\n }\n }\n\n ngOnDestroy(): void {\n this.bpmnJS.destroy();\n }\n}\n","<!--\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 class=\"p-4\" *ngIf=\"heatmapDuration || heatmapCount\">\n <div class=\"switch-button switch-button-sm switch-button-success\">\n <input\n type=\"checkbox\"\n id=\"toggleHeatmap\"\n [checked]=\"heatmapMode\"\n (click)=\"toggleHeatmap()\"\n /><span> <label for=\"toggleHeatmap\"></label></span>\n </div>\n</div>\n\n<div #ref class=\"diagram-container\"></div>\n\n<div *ngIf=\"historicActivityInstances\" class=\"p-4 text-center legenda-holder\">\n <span\n ><div class=\"legenda highlight-overlay-past\"></div>\n Executed tasks</span\n >\n <span class=\"ml-3\"\n ><div class=\"legenda highlight-overlay-current\"></div>\n Current tasks</span\n >\n</div>\n\n<div *ngIf=\"heatmapDuration || heatmapCount\" class=\"p-4 text-center legenda-holder\">\n <span\n ><span class=\"badge badge-pill badge-primary\">N</span>&nbsp;&nbsp;Amount of currently active\n instances of this task.</span\n >\n <span\n >&nbsp;&nbsp;|&nbsp;&nbsp;Red/yellow/green orbs: The amount of times the task is executed in\n comparison to the other tasks.</span\n >\n</div>\n","/*\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\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {BpmnJsDiagramComponent} from './bpmn-js-diagram.component';\n\n@NgModule({\n declarations: [BpmnJsDiagramComponent],\n imports: [CommonModule],\n exports: [BpmnJsDiagramComponent],\n})\nexport class BpmnJsDiagramModule {}\n","/*\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\nimport {Component, Input} from '@angular/core';\nimport {TimelineItem} from '../../models';\n\n@Component({\n selector: 'valtimo-timeline',\n templateUrl: './timeline.component.html',\n styleUrls: ['./timeline.component.css'],\n})\nexport class TimelineComponent {\n @Input() items: Array<TimelineItem>;\n}\n","<!--\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 id=\"no-results\" class=\"p-5\" *ngIf=\"items?.length === 0\">No result found</div>\n <div class=\"pb-5\" *ngIf=\"items?.length > 0\">\n <ul class=\"timeline mb-0 py-5\">\n <li class=\"timeline-item status-done\" *ngFor=\"let item of items\">\n <div class=\"timeline-date\">\n <span>{{ item.date }}</span>\n </div>\n <div class=\"timeline-content mt-1\">\n <div class=\"timeline-header p-0\">\n <span class=\"timeline-time\">{{ item.time }}</span>\n <span class=\"timeline-author\">{{ item.user }}</span>\n <br />\n <p class=\"timeline-activity\">{{ item.activity }}</p>\n <div class=\"timeline-summary\">\n <p>{{ item.summaryTranslationKey | translate: item.summaryTranslationParams }}</p>\n </div>\n </div>\n </div>\n </li>\n </ul>\n </div>\n</div>\n","/*\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\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {TimelineComponent} from './timeline.component';\nimport {TranslateModule} from '@ngx-translate/core';\n\n@NgModule({\n declarations: [TimelineComponent],\n imports: [CommonModule, TranslateModule],\n exports: [TimelineComponent],\n})\nexport class TimelineModule {}\n","/*\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\nimport {NgModule} from '@angular/core';\n\n@NgModule()\nexport class ComponentsModule {}\n","/*\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\nimport {Component, OnDestroy, OnInit} from '@angular/core';\n\n// eslint-disable-next-line no-var\ndeclare var $;\n\n@Component({\n selector: 'valtimo-filter-sidebar',\n templateUrl: './filter-sidebar.component.html',\n styleUrls: ['./filter-sidebar.component.css'],\n})\nexport class FilterSidebarComponent implements OnInit, OnDestroy {\n public filterSidebar: string;\n\n constructor() {\n this.filterSidebar = localStorage.getItem('filterSidebar') || 'show';\n }\n\n ngOnInit() {\n if (this.filterSidebar === 'show') {\n localStorage.setItem('filterSidebar', 'show');\n $('.be-content').addClass('be-aside');\n }\n $('[data-toggle=\"tooltip\"]').tooltip();\n }\n\n ngOnDestroy() {\n $('.be-content').removeClass('be-aside');\n }\n\n toggleFilterSidebar() {\n const beContent = $('.be-content');\n beContent.toggleClass('be-aside');\n this.filterSidebar = beContent.hasClass('be-aside') ? 'show' : 'hide';\n localStorage.setItem('filterSidebar', this.filterSidebar);\n }\n}\n","<!--\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 <a\n class=\"toggle-filter-sidebar\"\n data-toggle=\"tooltip\"\n data-trigger=\"hover\"\n data-placement=\"right\"\n title=\"Show / hide\"\n href=\"javascript:void(0)\"\n (click)=\"toggleFilterSidebar()\"\n [ngClass]=\"this.filterSidebar === 'show' && 'toggle-expanded'\"\n >\n <div class=\"icon-container p-0 bg-transparent\">\n <i class=\"click-able icon shadow mdi mdi-filter-variant\"></i>\n </div>\n </a>\n <aside class=\"page-aside p-4 mb-4 bg-light filter-holder\" *ngIf=\"this.filterSidebar === 'show'\">\n <ng-content></ng-content>\n </aside>\n</div>\n","/*\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\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {FilterSidebarComponent} from './filter-sidebar.component';\n\n@NgModule({\n declarations: [FilterSidebarComponent],\n imports: [CommonModule],\n exports: [FilterSidebarComponent],\n})\nexport class FilterSidebarModule {}\n","/*\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\nimport {Directive, EventEmitter, HostListener, Output} from '@angular/core';\n\n@Directive({\n selector: '[valtimoUploaderDragDrop]',\n})\nexport class UploaderDragDropDirective {\n @Output() fileDropped = new EventEmitter<any>();\n\n @HostListener('dragover', ['$event']) onDragOver(evt) {\n evt.preventDefault();\n evt.stopPropagation();\n }\n\n @HostListener('dragleave', ['$event'])\n public onDragLeave(evt) {\n evt.preventDefault();\n evt.stopPropagation();\n }\n\n @HostListener('drop', ['$event'])\n public ondrop(evt) {\n evt.preventDefault();\n evt.stopPropagation();\n const files = evt.dataTransfer.files;\n if (files.length > 0) {\n this.fileDropped.emit(files);\n }\n }\n}\n","/*\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\nimport {Pipe, PipeTransform} from '@angular/core';\n\n@Pipe({\n name: 'filesize',\n})\nexport class FileSizePipe implements PipeTransform {\n private units = ['bytes', 'KB', 'MB', 'GB', 'TB', 'PB'];\n\n transform(bytes: number = 0, precision: number = 2): string {\n if (isNaN(parseFloat(String(bytes))) || !isFinite(bytes)) {\n return '?';\n }\n\n let unit = 0;\n\n while (bytes >= 1024) {\n bytes /= 1024;\n unit++;\n }\n\n return bytes.toFixed(+precision) + ' ' + this.units[unit];\n }\n}\n","/*\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\nimport {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport {S3Service, S3Resource} from '@valtimo/resource';\n\n@Component({\n selector: 'valtimo-uploader',\n templateUrl: './uploader.component.html',\n styleUrls: ['./uploader.component.css'],\n})\nexport class UploaderComponent implements OnInit {\n public resources: any = [];\n @Output() resourcesChanged: EventEmitter<any> = new EventEmitter();\n @Output() resourceRegistered: EventEmitter<S3Resource> = new EventEmitter();\n @Input() showFileList = true;\n\n constructor(private s3Service: S3Service) {}\n\n ngOnInit() {}\n\n onFileFieldChange(files) {\n for (const file of files) {\n this.uploadFile(file);\n }\n }\n\n uploadFile(file: File) {\n this.s3Service.getPreSignedUrl(file.name).subscribe(value => {\n const preSignedUrl: URL = new URL(value);\n this.s3Service.upload(preSignedUrl, file).subscribe(result => {\n const s3ResourceDTO = new S3Resource(file, preSignedUrl);\n this.s3Service.registerResource(s3ResourceDTO).subscribe(resource => {\n this.resources.push(resource);\n this.resourceRegistered.emit(resource);\n this.resourcesChanged.emit(this.resources);\n });\n });\n });\n }\n\n deleteResource(resource) {\n this.s3Service.delete(resource.id).subscribe(result => {\n const index = this.resources.findIndex(res => res.id === resource.id);\n this.resources.splice(index, 1);\n this.resourcesChanged.emit(this.resources);\n });\n }\n}\n","<!--\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 class=\"upload-file-container p-5\"\n (click)=\"fileInput.click()\"\n valtimoUploaderDragDrop\n (fileDropped)=\"onFileFieldChange($event)\"\n>\n <span class=\"align-middle\"><i class=\"mdi mdi-cloud-upload\"></i></span>\n <input hidden type=\"file\" #fileInput (change)=\"onFileFieldChange($event.target.files)\" multiple />\n</div>\n<div *ngIf=\"showFileList\">\n <div class=\"files-list px-3 py-2\" *ngFor=\"let resource of resources\">\n <p class=\"m-0\">\n <strong>{{ resource.name }}</strong\n ><br />\n {{ resource.sizeInBytes | filesize }}\n </p>\n <button class=\"delete-file\" (click)=\"deleteResource(resource)\">\n <i class=\"icon mdi mdi-delete text-danger\"></i>\n </button>\n </div>\n</div>\n","/*\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\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {FileSizePipe} from './file-size.pipe';\n\n@NgModule({\n declarations: [FileSizePipe],\n imports: [CommonModule],\n exports: [FileSizePipe],\n})\nexport class FileSizeModule {}\n","/*\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\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {UploaderComponent} from './uploader.component';\nimport {UploaderDragDropDirective} from './uploader-drag-drop.directive';\nimport {FileSizeModule} from '../file-size/file-size.module';\n\n@NgModule({\n declarations: [UploaderComponent, UploaderDragDropDirective],\n imports: [CommonModule, FileSizeModule],\n exports: [UploaderComponent, UploaderDragDropDirective],\n})\nexport class UploaderModule {}\n","/*\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\nimport {EventEmitter, Injectable} from '@angular/core';\nimport {NavigationStart, Router} from '@angular/router';\nimport {Observable, Subject} from 'rxjs';\nimport {Alert, AlertType} from '../../models';\n\n@Injectable({providedIn: 'root'})\nexport class AlertService {\n public confirmed: EventEmitter<any> = new EventEmitter();\n private subject = new Subject<Alert>();\n\n constructor(private router: Router) {\n // clear alert messages on route change unless 'keepAfterRouteChange' flag is true\n this.router.events.subscribe(event => {\n if (event instanceof NavigationStart) {\n // clear alert messages\n this.clear();\n }\n });\n }\n\n // enable subscribing to alerts observable\n onAlert(): Observable<Alert> {\n return this.subject.asObservable();\n }\n\n // convenience methods\n success(message: string, confirmations?: any, iconClass?: string) {\n this.alert(new Alert({message, type: AlertType.Success, confirmations, iconClass}));\n }\n\n error(message: string, confirmations?: any, iconClass?: string) {\n this.alert(new Alert({message, type: AlertType.Error, confirmations, iconClass}));\n }\n\n info(message: string, confirmations?: any, iconClass?: string) {\n this.alert(new Alert({message, type: AlertType.Info, confirmations, iconClass}));\n }\n\n warning(message: string, confirmations?: any, iconClass?: string) {\n this.alert(new Alert({message, type: AlertType.Warning, confirmations, iconClass}));\n }\n\n notification(message: string, confirmations?: any, iconClass?: string) {\n this.alert(new Alert({message, type: AlertType.Notification, confirmations, iconClass}));\n }\n\n modalNotification(message: string, confirmations?: any, iconClass?: string) {\n this.alert(new Alert({message, type: AlertType.ModalNotification, confirmations, iconClass}));\n }\n\n // main alert method\n alert(alert: Alert) {\n this.subject.next(alert);\n }\n\n // clear alerts\n clear() {\n this.subject.next(new Alert({}));\n }\n\n // emit confirm\n emitAlertConfirmEvent(alert: Alert) {\n this.confirmed.emit(alert);\n }\n\n getAlertConfirmChangeEmitter() {\n return this.confirmed;\n }\n}\n","/*\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\nimport {AfterContentInit, Component, OnDestroy, OnInit} from '@angular/core';\nimport {Subscription} from 'rxjs';\nimport {Alert, AlertType} from '../../models';\nimport {AlertService} from './alert.service';\n\n// eslint-disable-next-line no-var\ndeclare var $;\n\n@Component({\n selector: 'valtimo-alert',\n templateUrl: './alert.component.html',\n styleUrls: ['./alert.component.css'],\n})\nexport class AlertComponent implements OnInit, AfterContentInit, OnDestroy {\n alerts: Alert[] = [];\n subscription: Subscription;\n autoCloseInMS: number;\n\n constructor(private alertService: AlertService) {\n this.autoCloseInMS = 5000;\n }\n\n ngOnInit() {}\n\n ngAfterContentInit() {\n this.subscription = this.alertService.onAlert().subscribe(alert => {\n if (!alert.message) {\n // clear alerts when an empty alert is received\n this.alerts = [];\n return;\n }\n\n // set empty array when an empty alert confirmations is received\n if (!alert.confirmations) {\n alert.confirmations = [];\n }\n\n // add alert to array if not exist\n const alertExist = this.alerts.filter(x => x.message === alert.message);\n if (alertExist.length === 0) {\n this.alerts.push(alert);\n }\n\n if (this.inModal(alert)) {\n setTimeout(() => {\n this.openModal();\n }, 300);\n }\n\n // auto close except alert confirmations not empty\n if (this.autoCloseInMS > 0 && alert.confirmations.length === 0) {\n setTimeout(() => {\n this.removeAlert(alert);\n }, this.autoCloseInMS);\n }\n });\n }\n\n closeModal() {\n $('#modalNotification').modal('hide');\n }\n\n openModal() {\n $('#modalNotification').modal('show');\n }\n\n alertConfirm(alert: Alert, confirm: any) {\n alert.confirm = confirm;\n this.alertService.emitAlertConfirmEvent(alert);\n this.removeAlert(alert);\n }\n\n ngOnDestroy() {\n // unsubscribe to avoid memory leaks\n this.subscription.unsubscribe();\n }\n\n removeAlert(alert: Alert) {\n if (this.inModal(alert)) {\n this.closeModal();\n }\n // remove specified alert from array\n this.alerts = this.alerts.filter(x => x.message !== alert.message);\n }\n\n inModal(alert: Alert) {\n if (!alert) {\n return;\n }\n\n // return true based on AlertType.ModalNotification\n switch (alert.type) {\n case AlertType.ModalNotification:\n return true;\n default:\n return false;\n }\n }\n\n cssClass(alert: Alert) {\n if (!alert) {\n return;\n }\n\n // return css class based on alert type\n switch (alert.type) {\n case AlertType.Success:\n return 'alert alert-success';\n case AlertType.Error:\n return 'alert alert-danger';\n case AlertType.Info:\n return 'alert alert-info';\n case AlertType.Warning:\n return 'alert alert-warning';\n case AlertType.Notification:\n return 'alert alert-light';\n case AlertType.ModalNotification:\n return 'alert alert-light';\n }\n }\n\n cssIconClass(alert: Alert) {\n if (!alert) {\n return;\n }\n\n // return css class based on alert type\n switch (alert.type) {\n case AlertType.Success:\n return 'mdi mdi-check';\n case AlertType.Error:\n return 'mdi mdi-close-circle-o';\n case AlertType.Info:\n return 'mdi mdi-info-outline';\n case AlertType.Warning:\n return 'mdi mdi-alert-triangle';\n case AlertType.Notification:\n return 'mdi mdi-notifications';\n case AlertType.ModalNotification:\n return 'mdi mdi-notifications';\n }\n }\n}\n","<!--\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 *ngFor=\"let alert of alerts\" class=\"{{ cssClass(alert) }} rounded-0 m-0 alert-dismissable\">\n <div *ngIf=\"inModal(alert)\">\n <!-- Modal -->\n <div class=\"modal fade\" id=\"modalNotification\" tabindex=\"-1\" role=\"dialog\">\n <div class=\"modal-dialog\" role=\"document\">\n <div class=\"modal-content\">\n <div class=\"modal-body p-0\">\n <button class=\"close\" type=\"button\" (click)=\"removeAlert(alert)\">\n <span class=\"mdi mdi-close\" aria-hidden=\"true\"></span>\n </button>\n <div class=\"icon\">\n <span class=\"{{ alert.iconClass || cssIconClass(alert) }}\"></span>\n </div>\n <div class=\"message\">\n <div [innerHTML]=\"alert.message\"></div>\n </div>\n </div>\n <div class=\"modal-footer pt-0\" *ngIf=\"alert.confirmations?.length\">\n <button\n class=\"{{ confirmation.class }} mr-2\"\n *ngFor=\"let confirmation of alert.confirmations\"\n (click)=\"alertConfirm(alert, confirmation.value)\"\n >\n {{ confirmation.label }}\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"!inModal(alert)\" class=\"alert-block\">\n <div class=\"icon\"><span class=\"{{ alert.iconClass || cssIconClass(alert) }}\"></span></div>\n <div class=\"message\">\n <div [innerHTML]=\"alert.message\"></div>\n <div class=\"mt-3\" *ngIf=\"alert.confirmations?.length\">\n <button\n class=\"{{ confirmation.class }} mr-2\"\n *ngFor=\"let confirmation of alert.confirmations\"\n (click)=\"alertConfirm(alert, confirmation.value)\"\n >\n {{ confirmation.label }}\n </button>\n </div>\n </div>\n <button class=\"close\" type=\"button\" (click)=\"removeAlert(alert)\">\n <span class=\"mdi mdi-close\" aria-hidden=\"true\"></span>\n </button>\n </div>\n</div>\n","/*\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\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {AlertComponent} from './alert.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [AlertComponent],\n exports: [AlertComponent],\n})\nexport class AlertModule {}\n","/*\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\nimport {Component, Input, OnInit} from '@angular/core';\n\n@Component({\n selector: 'valtimo-data-list',\n templateUrl: './data-list.component.html',\n styleUrls: ['./data-list.component.css'],\n})\nexport class DataListComponent implements OnInit {\n @Input() collection?: Array<any>;\n @Input() object?: any;\n\n constructor() {}\n\n ngOnInit() {}\n}\n","<!--\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 *ngIf=\"collection\">\n <dl class=\"row mb-0\" *ngFor=\"let item of collection\">\n <dd class=\"col-12 col-md-4 col-lg-3\">{{ item.label }}</dd>\n <dt class=\"col-12 col-md-8 col-lg-9\" [innerHTML]=\"item.value || '-'\"></dt>\n </dl>\n</div>\n\n<div *ngIf=\"object\">\n <dl class=\"row mb-0\" *ngFor=\"let item of object | keyvalue\">\n <dd class=\"col-12 col-md-4 col-lg-3\">{{ item.key }}</dd>\n <dt class=\"col-12 col-md-8 col-lg-9\" [innerHTML]=\"item.value || '-'\"></dt>\n </dl>\n</div>\n","/*\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\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {DataListComponent} from './data-list.component';\n\n@NgModule({\n declarations: [DataListComponent],\n imports: [CommonModule],\n exports: [DataListComponent],\n})\nexport class DataListModule {}\n","/*\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\nimport {Injectable} from '@angular/core';\nimport {BehaviorSubject, Observable} from 'rxjs';\nimport {FormioComponent} from '@formio/angular';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FormIoStateService {\n private _documentDefinitionName$ = new BehaviorSubject<string>(undefined);\n private _documentId$ = new BehaviorSubject<string>(undefined);\n\n private _currentForm$ = new BehaviorSubject<FormioComponent>(undefined);\n\n public get documentDefinitionName$(): Observable<string> {\n return this._documentDefinitionName$.asObservable();\n }\n\n public setDocumentDefinitionName(documentDefinitionName: string) {\n this._documentDefinitionName$.next(documentDefinitionName);\n }\n\n public get documentId$(): Observable<string> {\n return this._documentId$.asObservable();\n }\n\n public setDocumentId(documentId: string) {\n this._documentId$.next(documentId);\n }\n\n public get currentForm$(): Observable<FormioComponent> {\n return this._currentForm$.asObservable();\n }\n\n public set currentForm(form: FormioComponent) {\n this._currentForm$.next(form);\n }\n}\n","/*\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\nimport {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport {FormioSubmission, ValtimoFormioOptions} from '../../models';\nimport {ValtimoModalService} from '../../services/valtimo-modal.service';\nimport {UserProviderService} from '@valtimo/security';\nimport {Formio, FormioComponent as FormIoSourceComponent, FormioForm} from '@formio/angular';\nimport {FormioRefreshValue} from '@formio/angular/formio.common';\nimport jwt_decode from 'jwt-decode';\nimport {NGXLogger} from 'ngx-logger';\nimport {from, Subject, Subscription, timer} from 'rxjs';\nimport {map, switchMap, take} from 'rxjs/operators';\nimport {FormIoStateService} from './services/form-io-state.service';\nimport {ActivatedRoute} from '@angular/router';\nimport {TranslateService} from '@ngx-translate/core';\n\n@Component({\n selector: 'valtimo-form-io',\n templateUrl: './form-io.component.html',\n styleUrls: ['./form-io.component.css'],\n})\nexport class FormioComponent implements OnInit, OnChanges, OnDestroy {\n @Input() form: any;\n @Input() options: ValtimoFormioOptions;\n @Input() submission?: object = {};\n @Input() readOnly?: boolean;\n @Input() formRefresh$!: Subject<FormioRefreshValue>;\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() submit: EventEmitter<any> = new EventEmitter();\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() change: EventEmitter<any> = new EventEmitter();\n refreshForm: EventEmitter<FormioRefreshValue> = new EventEmitter();\n formDefinition: FormioForm;\n public errors: string[] = [];\n\n private tokenRefreshTimerSubscription: Subscription;\n private formRefreshSubscription: Subscription;\n\n readonly currentLanguage$ = this.translateService\n .stream('key')\n .pipe(map(() => this.translateService.currentLang));\n\n constructor(\n private userProviderService: UserProviderService,\n private logger: NGXLogger,\n private readonly stateService: FormIoStateService,\n private readonly route: ActivatedRoute,\n private readonly translateService: TranslateService,\n private readonly modalService: ValtimoModalService\n ) {}\n\n ngOnInit() {\n const documentDefinitionName = this.route.snapshot.paramMap.get('documentDefinitionName');\n const documentId = this.route.snapshot.paramMap.get('documentId');\n\n this.formDefinition = this.form;\n this.errors = [];\n\n this.setInitialToken();\n\n if (documentDefinitionName) {\n this.stateService.setDocumentDefinitionName(documentDefinitionName);\n }\n if (documentId) {\n this.stateService.setDocumentId(documentId);\n }\n\n this.subscribeFormRefresh();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.formDefinition = changes.form.currentValue;\n this.reloadForm();\n\n this.setInitialToken();\n\n if (changes.formDefinitionRefresh$) {\n this.unsubscribeFormRefresh();\n this.subscribeFormRefresh();\n }\n }\n\n ngOnDestroy(): void {\n this.unsubscribeFormRefresh();\n\n this.tokenRefreshTimerSubscription?.unsubscribe();\n }\n\n reloadForm() {\n this.refreshForm.emit({\n form: this.formDefinition,\n });\n }\n\n showErrors(errors: string[]) {\n this.errors = errors;\n }\n\n onSubmit(submission: FormioSubmission) {\n this.errors = [];\n this.submit.emit(submission);\n }\n\n formReady(form: FormIoSourceComponent): void {\n this.reloadForm();\n this.stateService.currentForm = form;\n }\n\n onChange(object: any): void {\n this.change.emit(object);\n }\n\n nextPage(): void {\n this.scrollToTop();\n }\n\n prevPage(): void {\n this.scrollToTop();\n }\n\n private scrollToTop(): void {\n this.modalService.scrollToTop();\n }\n\n private setInitialToken(): void {\n this.userProviderService.getToken().then((token: string) => {\n this.setToken(token);\n });\n }\n\n private setToken(token: string): void {\n Formio.setToken(token);\n localStorage.setItem('formioToken', token);\n this.setTimerForTokenRefresh(token);\n\n this.logger.debug('New token set for form.io.');\n }\n\n private setTimerForTokenRefresh(token: string): void {\n const tokenExp = (jwt_decode(token) as any).exp * 1000;\n const expiryTime = tokenExp - Date.now() - 1000;\n if (!this.tokenRefreshTimerSubscription) {\n this.tokenRefreshTimerSubscription = timer(expiryTime).subscribe(() => {\n this.refreshToken();\n });\n }\n\n this.logger.debug(`Timer for form.io token refresh set for: ${expiryTime}ms.`);\n }\n\n private refreshToken(): void {\n from(this.userProviderService.updateToken(-1))\n .pipe(\n switchMap(() => this.userProviderService.getToken()),\n take(1)\n )\n .subscribe(token => {\n this.setToken(token);\n });\n }\n\n private subscribeFormRefresh(): void {\n if (this.formRefresh$) {\n this.formRefreshSubscription = this.formRefresh$.subscribe(refreshValue => {\n if (refreshValue) {\n this.refreshForm.emit(refreshValue);\n }\n });\n }\n }\n\n private unsubscribeFormRefresh(): void {\n if (this.formRefreshSubscription) {\n this.formRefreshSubscription.unsubscribe();\n }\n }\n}\n","<!--\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\n *ngIf=\"currentLanguage$ | async as currentLanguage\"\n [submission]=\"submission\"\n [form]=\"formDefinition\"\n [refresh]=\"refreshForm\"\n [options]=\"options\"\n [readOnly]=\"readOnly\"\n [language]=\"currentLanguage\"\n (submit)=\"onSubmit($event)\"\n (ready)=\"formReady($event)\"\n (change)=\"onChange($event)\"\n (nextPage)=\"nextPage()\"\n (prevPage)=\"prevPage()\"\n ></formio>\n</div>\n","/*\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\nimport {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport {Components} from '@formio/angular';\n\n@Component({\n selector: 'valtimo-form-io-builder',\n templateUrl: './form-io-builder.component.html',\n styleUrls: ['./form-io-builder.component.css'],\n})\nexport class FormioBuilderComponent implements OnInit {\n @Input() form: any;\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() change: EventEmitter<any> = new EventEmitter();\n\n constructor() {}\n\n ngOnInit() {\n const originalEditForm = Components.baseEditForm;\n Components.baseEditForm = function (...extend) {\n const editForm = originalEditForm(...extend);\n const keyField = editForm.components\n .find(element => element.key === 'tabs')\n .components.find(element => element.key === 'api')\n .components.find(element => element.key === 'key');\n delete keyField.validate;\n return editForm;\n };\n }\n\n onChange(event) {\n this.change.emit(event);\n }\n}\n","<!--\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 <form-builder [form]=\"form\" (change)=\"onChange($event)\"></form-builder>\n</div>\n","/*\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\nexport const AppConfig = {\n appUrl: 'http://localhost:4200',\n apiUrl: 'http://localhost:4200',\n icons: 'fontawesome',\n formOnly: false,\n};\n","/*\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\nimport {Injectable} from '@angular/core';\nimport {FormIoStateService} from './form-io-state.service';\nimport {take} from 'rxjs/operators';\n\n@Injectable()\nexport class FormIoDomService {\n constructor(private readonly stateService: FormIoStateService) {}\n\n toggleSubmitButton(disabled: boolean): void {\n this.stateService.currentForm$.pipe(take(1)).subscribe(form => {\n const button = form.formioElement.nativeElement\n .getElementsByClassName('formio-component-submit')[0]\n .getElementsByClassName('btn-primary')[0] as HTMLInputElement;\n\n button.disabled = disabled;\n });\n }\n}\n","/*\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\nimport {Component} from '@angular/core';\n\n@Component({\n selector: 'valtimo-progress-bar',\n templateUrl: './progress-bar.component.html',\n styleUrls: ['./progress-bar.component.scss'],\n})\nexport class ProgressBarComponent {}\n","<!--\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 class=\"progress\" style=\"position: relative\">\n <div class=\"progress-bar progress-bar-striped indeterminate\"></div>\n</div>\n","/*\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\nimport {AfterViewInit, Component, EventEmitter, Output} from '@angular/core';\nimport {BehaviorSubject} from 'rxjs';\nimport {take} from 'rxjs/operators';\n\n@Component({\n selector: 'valtimo-webcam',\n templateUrl: './webcam.component.html',\n styleUrls: ['./webcam.component.scss'],\n})\nexport class WebcamComponent implements AfterViewInit {\n @Output() imageSaved = new EventEmitter<File>();\n\n readonly showing$ = new BehaviorSubject<boolean>(false);\n\n readonly stream$ = new BehaviorSubject<MediaStream>(undefined);\n\n readonly picture$ = new BehaviorSubject<{file: File; uri: string}>(undefined);\n\n ngAfterViewInit(): void {\n const video = this.getVideoElement();\n\n setTimeout(() => {\n this.toggleFade();\n });\n\n if (navigator.mediaDevices.getUserMedia) {\n navigator.mediaDevices.getUserMedia({video: true}).then(stream => {\n video.srcObject = stream;\n this.stream$.next(stream);\n });\n }\n }\n\n captureImage(): boolean {\n const video = this.getVideoElement();\n const canvas: HTMLCanvasElement = document.querySelector('#canvas');\n\n canvas.width = 640;\n canvas.height = 480;\n\n const ctx = canvas.getContext('2d');\n\n ctx.drawImage(video, 0, 0, canvas.width, canvas.height);\n\n const dataURI = canvas.toDataURL('image/jpeg');\n\n this.picture$.next({file: this.dataURItoFile(dataURI), uri: dataURI});\n\n return false;\n }\n\n clearImage(): boolean {\n this.picture$.next(undefined);\n\n return false;\n }\n\n close(emitImage: boolean = true): boolean {\n if (!emitImage) {\n this.clearImage();\n }\n\n this.toggleFade();\n this.emitOnTimeOut();\n\n return false;\n }\n\n private stopStream(): void {\n this.stream$.pipe(take(1)).subscribe(mediaStream => {\n if (mediaStream) {\n mediaStream.getTracks().forEach(stream => stream.stop());\n }\n });\n }\n\n private getVideoElement(): HTMLVideoElement {\n return document.querySelector('#videoElement');\n }\n\n private emitOnTimeOut(): void {\n setTimeout(() => {\n this.stopStream();\n this.imageSaved.emit(this.picture$.getValue()?.file);\n }, 250);\n }\n\n private toggleFade(): void {\n this.showing$.next(!this.showing$.getValue());\n }\n\n private dataURItoFile(dataURI): File {\n const binary = atob(dataURI.split(',')[1]);\n const array = [];\n\n for (let i = 0; i < binary.length; i++) {\n array.push(binary.charCodeAt(i));\n }\n\n const blob = new Blob([new Uint8Array(array)], {type: 'image/jpeg'});\n\n const imgFileName = `IMG_${new Date().toISOString().replace(/[-:.]/g, '')}.jpg`;\n\n return new File([blob], imgFileName);\n }\n}\n","<!--\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 (click)=\"close(false)\"\n *ngIf=\"{picture: picture$ | async, stream: stream$ | async} as obs\"\n [ngClass]=\"{showing: showing$ | async}\"\n class=\"webcam-overlay\"\n>\n <div (click)=\"(false); $event.stopPropagation()\" class=\"inner-container\">\n <div class=\"webcam-container modal-content\">\n <div class=\"video-container\">\n <video autoplay=\"true\" id=\"videoElement\"></video>\n <canvas id=\"canvas\"></canvas>\n <img *ngIf=\"obs.picture?.uri\" [src]=\"obs.picture?.uri\" />\n </div>\n <div class=\"button-container\">\n <div class=\"picture-btn\">\n <button\n (click)=\"captureImage()\"\n [disabled]=\"obs.picture?.file || !obs.stream\"\n class=\"btn btn-primary btn-lg\"\n >\n <i class=\"icon mdi mdi-camera mr-1\"></i>{{ 'webcam.takePicture' | translate }}\n </button>\n </div>\n <div class=\"new-btn\">\n <button (click)=\"clearImage()\" [disabled]=\"!obs.picture?.file\" class=\"btn btn-primary\">\n <i class=\"icon mdi mdi-redo mr-1\"></i>{{ 'webcam.redo' | translate }}\n </button>\n </div>\n <div class=\"save-btn\">\n <button (click)=\"close()\" [disabled]=\"!obs.picture?.file\" class=\"btn btn-primary\">\n <i class=\"icon mdi mdi-save mr-1\"></i>{{ 'webcam.save' | translate }}\n </button>\n </div>\n </div>\n </div>\n <div class=\"modal-header\">\n <button (click)=\"close(false)\" aria-label=\"Close\" class=\"close\"><span>×</span></button>\n </div>\n </div>\n</div>\n","/*\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\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {TranslateService} from '@ngx-translate/core';\nimport Dropzone from 'dropzone';\nimport {BehaviorSubject, combineLatest, Observable, Subject, Subscription} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\n@Component({\n selector: 'valtimo-dropzone',\n templateUrl: './dropzone.component.html',\n styleUrls: ['./dropzone.component.scss'],\n})\nexport class DropzoneComponent implements OnInit, AfterViewInit, OnDestroy {\n @ViewChild('dropzone') dropzoneRef: ElementRef<any>;\n\n @Input() title: string;\n @Input() hideTitle: boolean;\n @Input() subtitle: string;\n @Input() externalError$: BehaviorSubject<string> = new BehaviorSubject<string>('');\n @Input() maxFileSize = 5;\n @Input() showMaxFileSize = true;\n @Input() acceptedFiles = '.json';\n @Input() clear$: Subject<any> = new Subject();\n @Input() disabled: boolean;\n @Input() hideFilePreview: boolean;\n @Input() uploading: boolean;\n @Input() camera = false;\n @Input() maxFiles!: number;\n\n @Output() fileSelected: EventEmitter<File> = new EventEmitter();\n readonly file$ = new BehaviorSubject<File>(undefined);\n readonly showingCamera$ = new BehaviorSubject<boolean>(false);\n private clearSubscription: Subscription;\n private dropzone: Dropzone;\n private readonly error$ = new BehaviorSubject<string>('');\n\n private readonly errorMessagesStrings: {[key: string]: string} = {\n tooBig: 'too big',\n wrongType: 'this type',\n };\n\n readonly errorMessage$: Observable<string> = combineLatest([\n this.error$,\n this.translateService.stream('dropzone.error.generic'),\n this.translateService.stream('dropzone.error.tooBig'),\n this.translateService.stream('dropzone.error.wrongType'),\n ]).pipe(\n map(([dropzoneError, generic, tooBig, wrongType]) => {\n const strings = this.errorMessagesStrings;\n\n if (dropzoneError) {\n if (dropzoneError.includes(strings.tooBig)) {\n return tooBig;\n } else if (dropzoneError.includes(strings.wrongType)) {\n return wrongType;\n } else {\n return generic;\n }\n } else {\n return '';\n }\n })\n );\n\n constructor(private readonly translateService: TranslateService) {}\n\n ngOnInit(): void {\n this.clearSubscription = this.clear$.subscribe(() => {\n this.clearFile();\n this.clearError();\n });\n }\n\n ngAfterViewInit() {\n this.initDropzone();\n }\n\n ngOnDestroy(): void {\n this.clearSubscription.unsubscribe();\n }\n\n showCamera(): void {\n this.showingCamera$.next(true);\n }\n\n webcamImageSaved(image: File): void {\n if (image) {\n this.setFile(image);\n }\n\n this.showingCamera$.next(false);\n }\n\n private initDropzone(): void {\n this.dropzone = new Dropzone(this.dropzoneRef.nativeElement, {\n url: '/',\n maxFilesize: this.maxFileSize,\n clickable: this.dropzoneRef.nativeElement,\n autoProcessQueue: false,\n createImageThumbnails: false,\n acceptedFiles: this.acceptedFiles,\n previewTemplate: `<p style='display:none'></p>`,\n ...(this.maxFiles && {maxFiles: this.maxFiles}),\n accept: file => {\n this.dropzone.removeAllFiles();\n this.setFile(file);\n },\n });\n\n this.setDropzoneEvents();\n }\n\n private setDropzoneEvents(): void {\n this.dropzone.on('error', (file, message) => {\n this.clearFile();\n this.error$.next(message.toString());\n });\n }\n\n private clearFile(): void {\n this.file$.next(undefined);\n }\n\n private clearError(): void {\n this.error$.next('');\n }\n\n private setFile(file: File): void {\n this.file$.next(file);\n this.clearError();\n this.fileSelected.emit(file);\n }\n}\n","<!--\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<form #dropzone [ngClass]=\"{disabled: disabled || uploading}\" class=\"dropzone dz-clickable\">\n <div class=\"dz-message\">\n <div class=\"icon large-icon\"><span class=\"mdi mdi-cloud-upload\"></span></div>\n <ng-container *ngTemplateOutlet=\"body\"></ng-container>\n <ng-container *ngIf=\"uploading\">\n <ng-container *ngTemplateOutlet=\"progressBar\"></ng-container>\n </ng-container>\n <div class=\"dropzone-mobile-trigger needsclick\"></div>\n </div>\n <button\n (click)=\"showCamera()\"\n *ngIf=\"camera\"\n type=\"button\"\n class=\"btn btn-primary px-3 webcam-button\"\n >\n <i class=\"icon mdi mdi-camera\" aria-hidden=\"true\"></i>\n </button>\n <ng-container *ngIf=\"showingCamera$ | async\">\n <ng-container *ngTemplateOutlet=\"webcam\"></ng-container>\n </ng-container>\n</form>\n\n<ng-template #body>\n <h2 *ngIf=\"!hideTitle\" class=\"mb-4 mt-2\">{{ title || ('dropzone.drop' | translate) }}</h2>\n <span *ngIf=\"subtitle\" class=\"note mb-3\">{{ subtitle }}</span>\n <span *ngIf=\"showMaxFileSize\" class=\"note mb-3 small-font\"\n >{{ 'dropzone.maxFileSize' | translate }}<b>{{ maxFileSize }}mb</b></span\n >\n <ng-container *ngTemplateOutlet=\"preview\"></ng-container>\n</ng-template>\n\n<ng-template #preview>\n <ng-container\n *ngIf=\"{\n errorMessage: errorMessage$ | async,\n externalError: externalError$ | async,\n file: file$ | async\n } as obs\"\n >\n <ng-container *ngIf=\"obs.externalError || obs.errorMessage\">\n <div class=\"alert alert-danger mt-2 mb-0\">\n <div class=\"message\">\n {{ obs.externalError || obs.errorMessage }}\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"!hideFilePreview && obs.file && !obs.externalError && !obs.errorMessage\">\n <div class=\"file\">\n <i class=\"icon mdi mdi-file-text mr-2\"></i>\n <span class=\"note\">{{ obs.file.name }}</span>\n <span class=\"note file-size\">- {{ obs.file.size | filesize: 2 }}</span>\n </div>\n </ng-container>\n </ng-container>\n</ng-template>\n\n<ng-template #progressBar>\n <div class=\"progress-bar-container\">\n <valtimo-progress-bar></valtimo-progress-bar>\n </div>\n</ng-template>\n\n<ng-template #webcam>\n <valtimo-webcam (imageSaved)=\"webcamImageSaved($event)\"></valtimo-webcam>\n</ng-template>\n","/*\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\nimport {Component, EventEmitter, Input, Output} from '@angular/core';\nimport {FormioCustomComponent} from '@formio/angular';\nimport {BehaviorSubject} from 'rxjs';\nimport {ResourceDto, ResourceFile} from '@valtimo/resource';\nimport {FormIoStateService} from '../services/form-io-state.service';\nimport {take} from 'rxjs/operators';\nimport {FormIoDomService} from '../services/form-io-dom.service';\nimport {DownloadService, UploadProviderService} from '@valtimo/resource';\n\n@Component({\n selector: 'valtimo-formio-uploader',\n templateUrl: './form-io-uploader.component.html',\n styleUrls: ['./form-io-uploader.component.scss'],\n})\nexport class FormIoUploaderComponent implements FormioCustomComponent<Array<ResourceFile>> {\n @Input() disabled: boolean;\n @Input() title: string;\n @Input() hideTitle: boolean;\n @Input() subtitle: string;\n @Input() maxFileSize: number;\n @Input() hideMaxFileSize: boolean;\n @Input() camera: boolean;\n @Output() valueChange = new EventEmitter<Array<ResourceFile>>();\n\n readonly uploading$ = new BehaviorSubject<boolean>(false);\n\n constructor(\n private readonly uploadProviderService: UploadProviderService,\n private readonly stateService: FormIoStateService,\n private readonly domService: FormIoDomService,\n private readonly downloadService: DownloadService\n ) {}\n\n _value: Array<ResourceFile> = [];\n\n public get value(): Array<ResourceFile> {\n return this._value;\n }\n\n @Input()\n public set value(value: Array<ResourceFile>) {\n if (Array.isArray(value)) {\n this._value = value;\n }\n }\n\n downloadFile(resourceFile: ResourceFile) {\n this.uploadProviderService\n .getResource(resourceFile.data.resourceId)\n .subscribe((resource: ResourceDto) => {\n this.downloadService.downloadFile(resource.url, resource.resource.name);\n });\n }\n\n fileSelected(file: File) {\n this.domService.toggleSubmitButton(true);\n this.uploading$.next(true);\n this.stateService.documentDefinitionName$.pipe(take(1)).subscribe(name => {\n this.uploadProviderService.uploadFile(file, name).subscribe(result => {\n this.domService.toggleSubmitButton(false);\n this.uploading$.next(false);\n this._value.push(result);\n this.valueChange.emit(this._value);\n });\n });\n }\n\n deleteFile(resourceId: string): void {\n this.domService.toggleSubmitButton(true);\n this._value = this._value.filter((file: ResourceFile) =>\n file?.data ? file?.data?.resourceId !== resourceId : true\n );\n this.valueChange.emit(this._value);\n }\n}\n","<!--\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<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 mdi mdi-delete\"></i>\n </a>\n </div>\n</div>\n","/*\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\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {ProgressBarComponent} from './progress-bar.component';\n\n@NgModule({\n declarations: [ProgressBarComponent],\n imports: [CommonModule],\n exports: [ProgressBarComponent],\n})\nexport class ProgressBarModule {}\n","/*\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\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {WebcamComponent} from './webcam.component';\nimport {TranslateModule} from '@ngx-translate/core';\n\n@NgModule({\n declarations: [WebcamComponent],\n imports: [CommonModule, TranslateModule],\n exports: [WebcamComponent],\n})\nexport class WebcamModule {}\n","/*\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\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {DropzoneComponent} from './dropzone.component';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {FileSizeModule} from '../file-size/file-size.module';\nimport {ProgressBarModule} from '../progress-bar/progress-bar.module';\nimport {WebcamModule} from '../webcam/webcam.module';\n\n@NgModule({\n declarations: [DropzoneComponent],\n imports: [CommonModule, TranslateModule, FileSizeModule, ProgressBarModule, WebcamModule],\n exports: [DropzoneComponent],\n})\nexport class DropzoneModule {}\n","/*\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\nimport {Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild} from '@angular/core';\nimport {ModalComponent, ModalService, SelectItem} from '@valtimo/user-interface';\nimport {\n BehaviorSubject,\n combineLatest,\n filter,\n from,\n map,\n Observable,\n of,\n Subject,\n Subscription,\n switchMap,\n take,\n} from 'rxjs';\nimport {\n AdditionalDocumentDate,\n ConfidentialityLevel,\n DocumentenApiMetadata,\n DocumentLanguage,\n DocumentStatus,\n} from '../../models';\nimport {TranslateService} from '@ngx-translate/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {DocumentService} from '@valtimo/document';\nimport {KeycloakService} from 'keycloak-angular';\nimport {ValtimoModalService} from '../../services/valtimo-modal.service';\nimport {tap} from 'rxjs/operators';\n\n@Component({\n selector: 'valtimo-documenten-api-metadata-modal',\n templateUrl: './documenten-api-metadata-modal.component.html',\n styleUrls: ['./documenten-api-metadata-modal.component.scss'],\n})\nexport class DocumentenApiMetadataModalComponent implements OnInit, OnDestroy {\n @ViewChild('documentenApiMetadataModal') documentenApiMetadataModal: ModalComponent;\n\n @Input() show$!: Observable<null>;\n @Input() hide$!: Observable<null>;\n @Input() disabled$!: Observable<boolean>;\n @Input() file$!: Observable<File>;\n\n @Input() documentTitle = '';\n @Input() disableDocumentTitle: boolean;\n @Input() filename: string;\n @Input() disableFilename: boolean;\n @Input() author: string;\n @Input() disableAuthor: boolean;\n @Input() status: string;\n @Input() disableStatus: boolean;\n @Input() language: string;\n @Input() disableLanguage: boolean;\n @Input() documentType: string;\n @Input() disableDocumentType: boolean;\n @Input() description: string;\n @Input() disableDescription: boolean;\n @Input() confidentialityLevel: string;\n @Input() disableConfidentialityLevel: boolean;\n\n @Output() metadata: EventEmitter<DocumentenApiMetadata> = new EventEmitter();\n\n readonly CONFIDENTIALITY_LEVELS: Array<ConfidentialityLevel> = [\n 'openbaar',\n 'beperkt_openbaar',\n 'intern',\n 'zaakvertrouwelijk',\n 'vertrouwelijk',\n 'confidentieel',\n 'geheim',\n 'zeer_geheim',\n ];\n readonly confidentialityLevelItems$: Observable<Array<SelectItem>> = this.translateService\n .stream('key')\n .pipe(\n map(() =>\n this.CONFIDENTIALITY_LEVELS.map(confidentialityLevel => ({\n id: confidentialityLevel,\n text: this.translateService.instant(`document.${confidentialityLevel}`),\n }))\n )\n );\n readonly ADDITONAL_DOCUMENT_DATE_OPTIONS: Array<{\n value: AdditionalDocumentDate;\n translationKey: string;\n }> = [\n {\n value: 'neither',\n translationKey: 'document.noAdditionalDate',\n },\n {\n value: 'sent',\n translationKey: 'document.sendDate',\n },\n {\n value: 'received',\n translationKey: 'document.receiptDate',\n },\n ];\n readonly clearStatusSelection$ = new Subject<null>();\n readonly additionalDocumentDate$ = new BehaviorSubject<AdditionalDocumentDate>('neither');\n readonly STATUSES: Array<DocumentStatus> = [\n 'in_bewerking',\n 'ter_vaststelling',\n 'definitief',\n 'gearchiveerd',\n ];\n readonly RECEIPT_STATUSES: Array<DocumentStatus> = ['definitief', 'gearchiveerd'];\n readonly formData$ = new BehaviorSubject<DocumentenApiMetadata>(null);\n readonly statusItems$: Observable<Array<SelectItem>> = combineLatest([\n this.additionalDocumentDate$,\n this.translateService.stream('key'),\n ]).pipe(\n tap(([additionalDocumentDate]) => {\n this.formData$.pipe(take(1)).subscribe(formData => {\n if (\n additionalDocumentDate === 'received' &&\n (formData.status === 'in_bewerking' || formData.status === 'ter_vaststelling')\n ) {\n this.clearStatusSelection$.next(null);\n }\n });\n }),\n map(([additionalDocumentDate]) =>\n (additionalDocumentDate === 'received' ? this.RECEIPT_STATUSES : this.STATUSES).map(\n status => ({\n id: status,\n text: this.translateService.instant(`document.${status}`),\n })\n )\n )\n );\n readonly LANGUAGES: Array<DocumentLanguage> = ['nld', 'eng', 'deu'];\n readonly languageItems$: Observable<Array<SelectItem>> = this.translateService.stream('key').pipe(\n map(() =>\n this.LANGUAGES.map(language => ({\n id: language,\n text: this.translateService.instant(`document.${language}`),\n }))\n )\n );\n readonly documentTypeItems$: Observable<Array<SelectItem>> = combineLatest([\n this.route?.params || of(null),\n this.route?.firstChild?.params || of(null),\n this.valtimoModalService.documentDefinitionName$,\n ]).pipe(\n filter(\n ([params, firstChildParams, documentDefinitionName]) =>\n !!(\n params?.documentDefinitionName ||\n firstChildParams?.documentDefinitionName ||\n documentDefinitionName\n )\n ),\n switchMap(([params, firstChildParams, documentDefinitionName]) =>\n this.documentService.getDocumentTypes(\n params?.documentDefinitionName ||\n firstChildParams?.documentDefinitionName ||\n documentDefinitionName\n )\n ),\n map(documentTypes => documentTypes.map(type => ({id: type.url, text: type.name})))\n );\n readonly showForm$: Observable<boolean> = this.modalService.modalVisible$;\n readonly valid$ = new BehaviorSubject<boolean>(false);\n readonly userEmail$ = from(this.keycloakService.loadUserProfile()).pipe(\n map(userProfile => userProfile?.email || '')\n );\n\n private showSubscription!: Subscription;\n private hideSubscription!: Subscription;\n\n constructor(\n private readonly modalService: ModalService,\n private readonly translateService: TranslateService,\n private readonly route: ActivatedRoute,\n private readonly documentService: DocumentService,\n private readonly keycloakService: KeycloakService,\n private readonly valtimoModalService: ValtimoModalService\n ) {}\n\n ngOnInit(): void {\n this.openShowSubscription();\n this.openHideSubscription();\n }\n\n ngOnDestroy(): void {\n this.showSubscription?.unsubscribe();\n this.hideSubscription?.unsubscribe();\n }\n\n hide(): void {\n this.formData$.next(null);\n this.valid$.next(false);\n this.additionalDocumentDate$.next('neither');\n this.modalService.closeModal();\n }\n\n cancel(): void {\n this.hide();\n }\n\n save(): void {\n combineLatest([this.valid$, this.formData$])\n .pipe(take(1))\n .subscribe(([valid, formData]) => {\n if (valid) {\n this.metadata.emit(formData);\n }\n });\n }\n\n formValueChange(data: DocumentenApiMetadata): void {\n this.formData$.next(data);\n this.setValid(data);\n }\n\n setAdditionalDate(value: AdditionalDocumentDate): void {\n this.additionalDocumentDate$.next(value);\n }\n\n private setValid(data: DocumentenApiMetadata): void {\n this.valid$.next(\n !!(\n data.filename &&\n data.title &&\n data.author &&\n data.creationDate &&\n data.status &&\n data.language &&\n data.informatieobjecttype\n )\n );\n }\n\n private openShowSubscription(): void {\n this.showSubscription = this.show$.subscribe(() => {\n this.modalService.openModal(this.documentenApiMetadataModal);\n });\n }\n\n private openHideSubscription(): void {\n this.hideSubscription = this.hide$.subscribe(() => {\n this.hide();\n });\n }\n}\n","<!--\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<v-modal\n #documentenApiMetadataModal\n (closeEvent)=\"hide()\"\n *ngIf=\"{file: file$ | async, disabled: disabled$ | async, valid: valid$ | async} as obs\"\n>\n <div role=\"header\">\n <div class=\"edit-configuration-title\">\n <v-title [center]=\"true\" [fullWidth]=\"true\" [margin]=\"false\" type=\"h2\">{{\n 'document.fillInMetadata' | translate\n }}</v-title>\n </div>\n </div>\n <div role=\"content\">\n <ng-container *ngTemplateOutlet=\"metadataForm; context: {obs: obs}\"></ng-container>\n </div>\n <div role=\"footer\">\n <div class=\"buttons\">\n <v-button (clickEvent)=\"cancel()\" [disabled]=\"obs.disabled\" type=\"secondary\">{{\n 'document.cancel' | translate\n }}</v-button>\n <v-button\n (clickEvent)=\"save()\"\n [disabled]=\"obs.disabled || !obs.valid\"\n mdiIcon=\"upload\"\n type=\"success\"\n >{{ 'document.upload' | translate }}</v-button\n >\n </div>\n </div>\n</v-modal>\n\n<ng-template #metadataForm let-obs=\"obs\">\n <ng-container *ngIf=\"showForm$ | async\">\n <v-form\n (valueChange)=\"formValueChange($event)\"\n *ngIf=\"additionalDocumentDate$ | async as additionalDate\"\n >\n <v-input\n [defaultValue]=\"filename || obs.file?.name\"\n [disabled]=\"obs.disabled || disableFilename\"\n [fullWidth]=\"true\"\n [margin]=\"true\"\n [required]=\"true\"\n [title]=\"'document.filename' | translate\"\n [tooltip]=\"'document.filenameTooltip' | translate\"\n name=\"filename\"\n >\n </v-input>\n <v-input\n [defaultValue]=\"documentTitle\"\n [disabled]=\"obs.disabled || disableDocumentTitle\"\n [margin]=\"true\"\n [required]=\"true\"\n [title]=\"'document.inputTitle' | translate\"\n [tooltip]=\"'document.inputTitleTooltip' | translate\"\n [widthPx]=\"400\"\n name=\"title\"\n >\n </v-input>\n <v-input\n [defaultValue]=\"author || (userEmail$ | async)\"\n [disabled]=\"obs.disabled || disableAuthor\"\n [margin]=\"true\"\n [required]=\"true\"\n [title]=\"'document.author' | translate\"\n [tooltip]=\"'document.authorTooltip' | translate\"\n [widthPx]=\"300\"\n name=\"author\"\n >\n </v-input>\n <v-select\n *ngIf=\"languageItems$ | async as languageItems\"\n [defaultSelectionId]=\"language || languageItems[0].id\"\n [disabled]=\"obs.disabled || disableLanguage\"\n [items]=\"languageItems\"\n [margin]=\"true\"\n [required]=\"true\"\n [title]=\"'document.language' | translate\"\n [tooltip]=\"'document.languageTooltip' | translate\"\n [widthInPx]=\"200\"\n name=\"language\"\n ></v-select>\n <ng-container *ngIf=\"{documentTypeItems: documentTypeItems$ | async} as obs\">\n <v-select\n [defaultSelectionId]=\"documentType\"\n [disabled]=\"obs.disabled || disableDocumentType\"\n [items]=\"obs.documentTypeItems\"\n [loading]=\"!obs.documentTypeItems\"\n [margin]=\"true\"\n [required]=\"true\"\n [title]=\"'document.informatieobjecttype' | translate\"\n [tooltip]=\"'document.informatieobjecttypeTooltip' | translate\"\n [widthInPx]=\"200\"\n name=\"informatieobjecttype\"\n ></v-select>\n </ng-container>\n <v-date-picker\n [defaultDateIsToday]=\"true\"\n [disabled]=\"obs.disabled\"\n [margin]=\"true\"\n [required]=\"true\"\n [title]=\"'document.creationDate' | translate\"\n [tooltip]=\"'document.creationDateTooltip' | translate\"\n [widthPx]=\"100\"\n name=\"creationDate\"\n ></v-date-picker>\n <ng-container\n *ngTemplateOutlet=\"additionalDatePicker; context: {additionalDate: additionalDate}\"\n ></ng-container>\n <v-date-picker\n *ngIf=\"additionalDate === 'received'\"\n [defaultDateIsToday]=\"true\"\n [disabled]=\"obs.disabled\"\n [margin]=\"true\"\n [title]=\"'document.receiptDate' | translate\"\n [tooltip]=\"'document.receiptDateTooltip' | translate\"\n [widthPx]=\"100\"\n name=\"receiptDate\"\n ></v-date-picker>\n <v-date-picker\n *ngIf=\"additionalDate === 'sent'\"\n [defaultDateIsToday]=\"true\"\n [disabled]=\"obs.disabled\"\n [margin]=\"true\"\n [title]=\"'document.sendDate' | translate\"\n [tooltip]=\"'document.sendDateTooltip' | translate\"\n [widthPx]=\"100\"\n name=\"sendDate\"\n ></v-date-picker>\n <v-select\n [defaultSelectionId]=\"status\"\n [disabled]=\"obs.disabled || disableStatus\"\n [items]=\"statusItems$ | async\"\n [margin]=\"true\"\n [required]=\"true\"\n [title]=\"'document.status' | translate\"\n [tooltip]=\"'document.statusTooltip' | translate\"\n [widthInPx]=\"200\"\n [clearSelectionSubject$]=\"clearStatusSelection$\"\n name=\"status\"\n ></v-select>\n <v-input\n [defaultValue]=\"description\"\n [disabled]=\"obs.disabled || disableDescription\"\n [fullWidth]=\"true\"\n [margin]=\"true\"\n [title]=\"'document.inputDescription' | translate\"\n [tooltip]=\"'document.inputDescriptionTooltip' | translate\"\n name=\"description\"\n >\n </v-input>\n <v-select\n [defaultSelectionId]=\"confidentialityLevel\"\n [disabled]=\"obs.disabled || disableConfidentialityLevel\"\n [items]=\"confidentialityLevelItems$ | async\"\n [margin]=\"true\"\n [title]=\"'document.confidentialityLevel' | translate\"\n [tooltip]=\"'document.confidentialityLevelTooltip' | translate\"\n [widthInPx]=\"200\"\n name=\"confidentialityLevel\"\n ></v-select>\n </v-form>\n </ng-container>\n</ng-template>\n\n<ng-template #additionalDatePicker let-additionalDate=\"additionalDate\">\n <v-input-label\n [title]=\"'document.additionalDate' | translate\"\n [name]=\"'additionalDate'\"\n [tooltip]=\"'document.additionalDateTooltip' | translate\"\n [required]=\"true\"\n >\n </v-input-label>\n <div class=\"col-12 col-sm-8 col-lg-6 form-check mt-1 additional-date\">\n <label\n class=\"custom-control custom-radio custom-control-inline\"\n *ngFor=\"let option of ADDITONAL_DOCUMENT_DATE_OPTIONS\"\n (click)=\"setAdditionalDate(option.value)\"\n >\n <input\n class=\"custom-control-input\"\n type=\"radio\"\n name=\"radio-inline\"\n [checked]=\"additionalDate === option.value\"\n /><span class=\"custom-control-label\">{{ option.translationKey | translate }}</span>\n </label>\n </div>\n</ng-template>\n","/*\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\nimport {Component, EventEmitter, Input, Output} from '@angular/core';\nimport {FormioCustomComponent} from '@formio/angular';\nimport {BehaviorSubject, combineLatest, Observable, of, startWith, Subject, switchMap} from 'rxjs';\nimport {\n DocumentenApiFileReference,\n DownloadService,\n UploadProviderService,\n} from '@valtimo/resource';\nimport {FormIoStateService} from '../services/form-io-state.service';\nimport {FormIoDomService} from '../services/form-io-dom.service';\nimport {DocumentenApiMetadata} from '../../../models';\nimport {filter, map, take, tap} from 'rxjs/operators';\nimport {ValtimoModalService} from '../../../services/valtimo-modal.service';\nimport {UserProviderService} from '@valtimo/security';\nimport {ActivatedRoute} from '@angular/router';\n\n@Component({\n selector: 'valtimo-documenten-api-formio-uploader',\n templateUrl: './documenten-api-uploader.component.html',\n styleUrls: ['./documenten-api-uploader.component.scss'],\n})\nexport class DocumentenApiUploaderComponent\n implements FormioCustomComponent<Array<DocumentenApiFileReference>>\n{\n @Input() disabled: boolean;\n @Input() title: string;\n @Input() hideTitle: boolean;\n @Input() subtitle: string;\n @Input() maxFileSize: number;\n @Input() hideMaxFileSize: boolean;\n @Input() camera: boolean;\n\n @Input() documentTitle: string;\n @Input() disableDocumentTitle: boolean;\n @Input() filename: string;\n @Input() disableFilename: boolean;\n @Input() author: string;\n @Input() disableAuthor: boolean;\n @Input() status: string;\n @Input() disableStatus: boolean;\n @Input() language: string;\n @Input() disableLanguage: boolean;\n @Input() documentType: string;\n @Input() disableDocumentType: boolean;\n @Input() description: string;\n @Input() disableDescription: boolean;\n @Input() confidentialityLevel: string;\n @Input() disableConfidentialityLevel: boolean;\n\n @Output() valueChange = new EventEmitter<Array<DocumentenApiFileReference>>();\n\n readonly uploading$ = new BehaviorSubject<boolean>(false);\n readonly fileToBeUploaded$ = new BehaviorSubject<File | null>(null);\n readonly modalDisabled$ = new BehaviorSubject<boolean>(false);\n readonly showModal$ = new Subject<null>();\n readonly hideModal$ = new Subject<null>();\n readonly uploadProcessLinked$: Observable<boolean | string> = combineLatest([\n this.route?.params || of(null),\n this.route?.firstChild?.params || of(null),\n this.modalService.documentDefinitionName$,\n ]).pipe(\n filter(\n ([params, firstChildParams, documentDefinitionName]) =>\n !!(\n params?.documentDefinitionName ||\n firstChildParams?.documentDefinitionName ||\n documentDefinitionName\n )\n ),\n switchMap(([params, firstChildParams, documentDefinitionName]) =>\n this.uploadProviderService.checkUploadProcessLink(\n params?.documentDefinitionName ||\n firstChildParams?.documentDefinitionName ||\n documentDefinitionName\n )\n ),\n startWith('loading')\n );\n readonly isAdmin$: Observable<boolean> = this.userProviderService\n .getUserSubject()\n .pipe(map(userIdentity => userIdentity?.roles.includes('ROLE_ADMIN')));\n\n constructor(\n private readonly uploadProviderService: UploadProviderService,\n private readonly stateService: FormIoStateService,\n private readonly domService: FormIoDomService,\n private readonly downloadService: DownloadService,\n private readonly modalService: ValtimoModalService,\n private readonly userProviderService: UserProviderService,\n private readonly route: ActivatedRoute\n ) {}\n\n _value: Array<DocumentenApiFileReference> = [];\n\n public get value(): Array<DocumentenApiFileReference> {\n return this._value;\n }\n\n @Input()\n public set value(value: Array<DocumentenApiFileReference>) {\n if (Array.isArray(value)) {\n this._value = value;\n }\n }\n\n fileSelected(file: File): void {\n this.fileToBeUploaded$.next(file);\n this.showModal$.next(null);\n }\n\n deleteFile(id: string): void {\n this.domService.toggleSubmitButton(true);\n this._value = this._value.filter((file: DocumentenApiFileReference) =>\n file?.id ? file?.id !== id : true\n );\n this.valueChange.emit(this._value);\n }\n\n metadataSet(metadata: DocumentenApiMetadata): void {\n this.uploading$.next(true);\n this.hideModal$.next(null);\n this.domService.toggleSubmitButton(true);\n\n this.fileToBeUploaded$\n .pipe(\n take(1),\n switchMap(file => this.uploadProviderService.uploadTempFileWithMetadata(file, metadata)),\n tap(result => {\n this.domService.toggleSubmitButton(false);\n this.uploading$.next(false);\n this._value.push(result);\n this.valueChange.emit(this._value);\n })\n )\n .subscribe();\n }\n}\n","<!--\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<ng-container *ngIf=\"{linked: uploadProcessLinked$ | async, isAdmin: isAdmin$ | async} as obs\">\n <div *ngIf=\"obs.linked === false\">\n <div\n *ngIf=\"obs.isAdmin\"\n [translate]=\"'dossier.documenten.noProcessLinked.adminRole'\"\n class=\"bg-warning text-black mb-2 p-3 text-center\"\n ></div>\n <div\n *ngIf=\"!obs.isAdmin\"\n [translate]=\"'dossier.documenten.noProcessLinked.regularUser'\"\n class=\"bg-warning text-black mb-2 p-3 text-center\"\n ></div>\n </div>\n <valtimo-dropzone\n (fileSelected)=\"fileSelected($event)\"\n [acceptedFiles]=\"null\"\n [camera]=\"camera\"\n [disabled]=\"disabled || obs.linked === false || obs.linked === 'loading'\"\n [hideFilePreview]=\"true\"\n [hideTitle]=\"hideTitle\"\n [maxFileSize]=\"maxFileSize\"\n [maxFiles]=\"1\"\n [showMaxFileSize]=\"!hideMaxFileSize\"\n [subtitle]=\"subtitle\"\n [title]=\"title\"\n [uploading]=\"uploading$ | async\"\n ></valtimo-dropzone>\n</ng-container>\n\n<div *ngFor=\"let resource of _value\" class=\"file-preview\">\n <div class=\"file-preview-name\">\n <span>\n {{ resource.filename }}\n </span>\n </div>\n <div class=\"file-preview-size\">\n <span>\n {{ resource.sizeInBytes | filesize }}\n </span>\n </div>\n <div *ngIf=\"!disabled\" class=\"file-preview-delete\">\n <a (click)=\"deleteFile(resource.id)\">\n <i class=\"icon mdi mdi-delete\"></i>\n </a>\n </div>\n</div>\n\n<valtimo-documenten-api-metadata-modal\n (metadata)=\"metadataSet($event)\"\n [author]=\"author\"\n [confidentialityLevel]=\"confidentialityLevel\"\n [description]=\"description\"\n [disableAuthor]=\"disableAuthor\"\n [disableConfidentialityLevel]=\"disableConfidentialityLevel\"\n [disableDescription]=\"disableDescription\"\n [disableDocumentTitle]=\"disableDocumentTitle\"\n [disableDocumentType]=\"disableDocumentType\"\n [disableFilename]=\"disableFilename\"\n [disableLanguage]=\"disableLanguage\"\n [disableStatus]=\"disableStatus\"\n [disabled$]=\"modalDisabled$\"\n [documentTitle]=\"documentTitle\"\n [documentType]=\"documentType\"\n [file$]=\"fileToBeUploaded$\"\n [filename]=\"filename\"\n [hide$]=\"hideModal$\"\n [language]=\"language\"\n [show$]=\"showModal$\"\n [status]=\"status\"\n></valtimo-documenten-api-metadata-modal>\n","/*\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\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {DocumentenApiMetadataModalComponent} from './documenten-api-metadata-modal.component';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {\n ButtonModule,\n DatePickerModule,\n FormModule,\n InputLabelModule,\n InputModule,\n ModalModule,\n SelectModule,\n TitleModule,\n} from '@valtimo/user-interface';\n\n@NgModule({\n declarations: [DocumentenApiMetadataModalComponent],\n exports: [DocumentenApiMetadataModalComponent],\n imports: [\n CommonModule,\n TranslateModule,\n ModalModule,\n TitleModule,\n ButtonModule,\n TranslateModule,\n FormModule,\n InputModule,\n SelectModule,\n DatePickerModule,\n InputLabelModule,\n ],\n})\nexport class DocumentenApiMetadataModalModule {}\n","/*\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\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {FormioComponent} from './form-io.component';\nimport {FormioBuilderComponent} from './form-io-builder.component';\nimport {FormioAppConfig, FormioModule} from '@formio/angular';\nimport {AppConfig} from './formio-config';\nimport {FormIoUploaderComponent} from './form-io-uploader/form-io-uploader.component';\nimport {DropzoneModule} from '../dropzone/dropzone.module';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {DocumentModule} from '@valtimo/document';\nimport {FormIoDomService} from './services/form-io-dom.service';\nimport {FileSizeModule} from '../file-size/file-size.module';\nimport {ResourceModule} from '@valtimo/resource';\nimport {RouterModule} from '@angular/router';\nimport {DocumentenApiUploaderComponent} from './documenten-api-uploader/documenten-api-uploader.component';\nimport {DocumentenApiMetadataModalModule} from '../documenten-api-metadata-modal/documenten-api-metadata-modal.module';\n\n@NgModule({\n imports: [\n CommonModule,\n FormioModule,\n DropzoneModule,\n TranslateModule,\n DocumentModule,\n FileSizeModule,\n ResourceModule,\n RouterModule,\n DocumentenApiMetadataModalModule,\n ],\n declarations: [\n FormioComponent,\n FormioBuilderComponent,\n FormIoUploaderComponent,\n DocumentenApiUploaderComponent,\n ],\n exports: [\n FormioComponent,\n FormioBuilderComponent,\n FormIoUploaderComponent,\n DocumentenApiUploaderComponent,\n ],\n providers: [FormIoDomService, {provide: FormioAppConfig, useValue: AppConfig}],\n})\nexport class FormIoModule {}\n","/*\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\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n Input,\n OnDestroy,\n OnInit,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport {ValtimoModalService} from '../../services/valtimo-modal.service';\nimport {BehaviorSubject, Subscription} from 'rxjs';\n\n// eslint-disable-next-line no-var\ndeclare var $;\n\n@Component({\n selector: 'valtimo-modal',\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.component.scss'],\n})\nexport class ModalComponent implements AfterViewInit, OnInit, OnDestroy {\n @Input() elementId: string;\n @Input() title = '';\n @Input() subtitle = '';\n @Input() templateBelowSubtitle: TemplateRef<any>;\n @Input() showFooter = false;\n\n @ViewChild('scrollModal') scrollModal: ElementRef<HTMLDivElement>;\n\n readonly modalShowing$ = new BehaviorSubject<boolean>(false);\n\n private scrollSubscription!: Subscription;\n\n private observer!: MutationObserver;\n\n constructor(private readonly modalService: ValtimoModalService) {}\n\n ngOnInit(): void {\n this.openScrollSubscription();\n }\n\n ngAfterViewInit() {\n $(`#${this.elementId}`).modal({show: false});\n this.watchForClassChanges();\n }\n\n show() {\n $(`#${this.elementId}`).modal('show');\n }\n\n hide() {\n $(`#${this.elementId}`).modal('hide');\n }\n\n ngOnDestroy(): void {\n this.scrollSubscription?.unsubscribe();\n this.observer?.disconnect();\n }\n\n private openScrollSubscription(): void {\n this.scrollSubscription = this.modalService.scrollToTop$.subscribe(() => {\n const element = this.scrollModal.nativeElement;\n\n if (element) element.scrollTo(0, 0);\n });\n }\n\n private watchForClassChanges(): void {\n this.observer = new MutationObserver(mutations => {\n mutations?.forEach(mutation => {\n if (mutation?.attributeName === 'class') {\n const modalShowing = (mutation?.target as any)?.classList?.contains('show');\n this.modalShowing$.next(modalShowing);\n }\n });\n });\n const config = {attributes: true, childList: false, characterData: false};\n this.observer.observe(this.scrollModal.nativeElement, config);\n }\n}\n","<!--\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 class=\"modal fade custom-width\" [id]=\"elementId\" role=\"dialog\" aria-modal=\"true\" #scrollModal>\n <div class=\"modal-dialog modal-lg\">\n <div class=\"modal-content\">\n <div class=\"modal-header modal-header-colored colored-header-grey\">\n <div class=\"modal-title\">\n <h4 class=\"title-text mb-2\">{{ title }}</h4>\n <h5 class=\"subtitle-text\">{{ subtitle }}</h5>\n <ng-container *ngIf=\"templateBelowSubtitle\">\n <ng-container *ngTemplateOutlet=\"templateBelowSubtitle\"></ng-container>\n </ng-container>\n </div>\n <div class=\"text-right\">\n <img src=\"assets/modal/header-image.png\" class=\"modal-header-image\" />\n <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\n <span aria-hidden=\"true\">&times;</span>\n </button>\n </div>\n </div>\n <div class=\"modal-body\">\n <ng-content select=\"[body]\"></ng-content>\n </div>\n <div class=\"modal-footer\" *ngIf=\"showFooter\">\n <ng-content select=\"[footer]\"></ng-content>\n </div>\n </div>\n </div>\n</div>\n","/*\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\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {ModalComponent} from './modal.component';\n\n@NgModule({\n declarations: [ModalComponent],\n imports: [CommonModule],\n exports: [ModalComponent],\n})\nexport class ModalModule {}\n","/*\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\nimport {Component, Input} from '@angular/core';\n\n@Component({\n selector: 'valtimo-spinner',\n templateUrl: './spinner.component.html',\n styleUrls: ['./spinner.component.scss'],\n})\nexport class SpinnerComponent {\n @Input() useBootstrapSpinner = true;\n @Input() name: string;\n @Input() type = 'ball-clip-rotate';\n @Input() size = 'medium';\n @Input() color = 'currentColor';\n @Input() bdColor = 'rgba(0,0,0,0)';\n @Input() fullScreen = false;\n @Input() noMarginTop = false;\n}\n","<!--\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<ng-container *ngIf=\"useBootstrapSpinner; else ngxSpinner\">\n <div class=\"spinner-container\" [ngClass]=\"{'no-margin-top': noMarginTop}\">\n <div class=\"spinner-border text-primary\" role=\"status\">\n <span class=\"sr-only\">{{ 'interface.loading' | translate }}</span>\n </div>\n </div>\n</ng-container>\n\n<ng-template #ngxSpinner>\n <ngx-spinner\n [bdColor]=\"bdColor\"\n [fullScreen]=\"fullScreen\"\n [name]=\"name\"\n [color]=\"color\"\n [size]=\"size\"\n [type]=\"type\"\n >\n </ngx-spinner>\n</ng-template>\n","/*\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\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {SpinnerComponent} from './spinner.component';\nimport {NgxSpinnerModule} from 'ngx-spinner';\nimport {TranslateModule} from '@ngx-translate/core';\n\n@NgModule({\n declarations: [SpinnerComponent],\n exports: [SpinnerComponent],\n imports: [CommonModule, NgxSpinnerModule, TranslateModule],\n})\nexport class SpinnerModule {}\n","/*\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\nimport {\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n SimpleChanges,\n ViewChildren,\n} from '@angular/core';\nimport {FormControl} from '@angular/forms';\nimport {DropdownButtonStyle, DropdownItem} from '../../models';\nimport {BehaviorSubject, combineLatest, fromEvent, Subscription} from 'rxjs';\nimport {debounceTime, take} from 'rxjs/operators';\n\n@Component({\n selector: 'valtimo-searchable-dropdown',\n templateUrl: './searchable-dropdown.component.html',\n styleUrls: ['./searchable-dropdown.component.scss'],\n})\nexport class SearchableDropdownComponent implements OnInit, OnDestroy, OnChanges {\n @Input() style: DropdownButtonStyle;\n @Input() items: Array<DropdownItem>;\n @Input() buttonText: string;\n @Input() searchText: string;\n @Input() noResultsText: string;\n @Input() disabled: boolean;\n @Input() width = 250;\n\n @Output() itemSelected = new EventEmitter();\n\n @ViewChildren('button') buttons: QueryList<ElementRef>;\n\n private readonly searchId = 'search';\n\n readonly searchTerm = new FormControl('');\n\n readonly focusedItemId$ = new BehaviorSubject<string>(this.searchId);\n\n readonly open$ = new BehaviorSubject<boolean>(false);\n\n readonly filteredItems$ = new BehaviorSubject<Array<DropdownItem>>(undefined);\n\n private wasInside = false;\n\n private keySubscription: Subscription;\n\n private searchSubscription: Subscription;\n\n private readonly mouseOnList$ = new BehaviorSubject<boolean>(false);\n\n @HostListener('click')\n clickInside() {\n this.wasInside = true;\n }\n\n @HostListener('document:click')\n clickout() {\n if (!this.wasInside) {\n this.closeDropdown();\n }\n this.wasInside = false;\n }\n\n ngOnInit(): void {\n this.openKeysSubscription();\n this.openSearchSubscription();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const itemChanges = changes.items;\n const currenItems = itemChanges.currentValue;\n if (itemChanges && !itemChanges.previousValue && currenItems) {\n this.filteredItems$.next(currenItems);\n }\n }\n\n ngOnDestroy(): void {\n this.keySubscription.unsubscribe();\n this.searchSubscription.unsubscribe();\n }\n\n openDropdown(): void {\n this.open$.next(true);\n }\n\n hoverOverButton(id: string): void {\n this.focusedItemId$.next(id);\n }\n\n mouseEnterList(): void {\n this.mouseOnList$.next(true);\n }\n\n mouseLeaveList(): void {\n this.mouseOnList$.next(false);\n }\n\n resetFocus(): void {\n this.focusedItemId$.next(this.searchId);\n }\n\n submit(id: string): void {\n this.itemSelected.emit(id);\n }\n\n private closeDropdown(): void {\n this.searchTerm.setValue('');\n this.resetFocus();\n this.open$.next(false);\n }\n\n private openKeysSubscription(): void {\n this.keySubscription = fromEvent(document, 'keyup')\n .pipe(debounceTime(50))\n .subscribe((event: KeyboardEvent) => {\n combineLatest([this.mouseOnList$, this.filteredItems$, this.focusedItemId$])\n .pipe(take(1))\n .subscribe(([mouseOnList, items, focusedId]) => {\n const length = items.length;\n const focusedIndex = items.findIndex(item => item.id === focusedId);\n const code = event.code;\n const shiftKey = event.shiftKey;\n const down = 'ArrowDown';\n const tab = 'Tab';\n const up = 'ArrowUp';\n const enter = 'Enter';\n const escape = 'Escape';\n\n // close dropdown on pressing escape\n if (code === escape) {\n this.closeDropdown();\n }\n\n // submit item when focus is on an item in the list and enter is pressed\n if (code === enter && focusedId !== this.searchId) {\n this.submit(focusedId);\n }\n\n // only handle tab or arrow keypresses when items are shown and the mouse is not on the list\n if (length > 0 && !mouseOnList) {\n // handle moving down in the list with arrow down or tab\n if (code === down || (code === tab && !shiftKey)) {\n // move focus to first item in the list when focus is on search box\n if (focusedId === this.searchId) {\n this.focusedItemId$.next(items[0].id);\n this.scrollButtonIntoView(focusedId);\n // move focus to next item in the list if focus is not on last item\n } else if (focusedIndex + 1 < length) {\n this.focusedItemId$.next(items[focusedIndex + 1].id);\n this.scrollButtonIntoView(focusedId);\n }\n // handle moving up in the list with up arrow up or shift+tab\n } else if (\n (code === up || (code === tab && shiftKey)) &&\n focusedId !== this.searchId\n ) {\n // move to previous item if focus is not on the first item in the list\n if (focusedIndex > 0) {\n this.focusedItemId$.next(items[focusedIndex - 1].id);\n this.scrollButtonIntoView(focusedId);\n // move focus to search box if focus is on first item in the list\n } else {\n this.resetFocus();\n }\n }\n }\n });\n });\n }\n\n private openSearchSubscription(): void {\n this.searchSubscription = this.searchTerm.valueChanges.subscribe(searchTerm => {\n this.focusedItemId$.pipe(take(1)).subscribe(focusedItemId => {\n if (!searchTerm) {\n this.filteredItems$.next(this.items);\n } else {\n const filteredItems = this.items.filter(item =>\n item.text.toUpperCase().includes(searchTerm.toUpperCase())\n );\n\n this.filteredItems$.next(filteredItems);\n\n // move focus to search box if filtered list length is 0 or previously focused item is not in filtered list anymore\n if (\n filteredItems.length === 0 ||\n !filteredItems.some(item => item.id === focusedItemId)\n ) {\n this.resetFocus();\n }\n }\n\n // move scrolling button into view to end of queue, so that DOM can be updated first\n setTimeout(() => {\n this.scrollButtonIntoView(focusedItemId);\n });\n });\n });\n }\n\n private scrollButtonIntoView(id: string): void {\n this.filteredItems$.pipe(take(1)).subscribe(items => {\n const focusItemIndex = items.findIndex(item => item.id === id);\n const focusedButton = this.buttons.toArray()[focusItemIndex];\n\n if (focusedButton) {\n focusedButton.nativeElement.scrollIntoView({behavior: 'smooth', block: 'center'});\n }\n });\n }\n}\n","<!--\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<ng-container *ngIf=\"buttonText && items\">\n <ng-container [ngTemplateOutlet]=\"(open$ | async) ? opened : closed\"> </ng-container>\n</ng-container>\n\n<ng-template #closed>\n <ng-container *ngIf=\"style === 'button' || !style\">\n <button\n class=\"btn btn-primary btn-sm searchable-dropdown__size\"\n (click)=\"openDropdown()\"\n [style.width.px]=\"width\"\n >\n {{ buttonText }}\n </button>\n </ng-container>\n <ng-container *ngIf=\"style === 'underlinedText'\">\n <h5\n class=\"searchable-dropdown__underline-button\"\n (click)=\"openDropdown()\"\n [style.width.px]=\"width\"\n >\n <b>\n {{ buttonText }}\n </b>\n </h5>\n </ng-container>\n</ng-template>\n\n<ng-template #opened>\n <div class=\"searchable-dropdown__container\" [style.width.px]=\"width\">\n <div class=\"searchable-dropdown__size searchable-dropdown__search\" [style.width.px]=\"width\">\n <input\n #search\n [ngClass]=\"{disabled: disabled}\"\n [placeholder]=\"searchText\"\n [formControl]=\"searchTerm\"\n />\n {{ search.focus() }}\n </div>\n <div\n class=\"searchable-dropdown__list\"\n (mouseenter)=\"mouseEnterList()\"\n (mouseleave)=\"mouseLeaveList()\"\n >\n <ng-container *ngIf=\"filteredItems$ | async as filteredItems\">\n <ng-container\n *ngIf=\"\n filteredItems.length > 0 && focusedItemId$ | async as focusedItemId;\n else noResults\n \"\n >\n <button\n #button\n *ngFor=\"let item of filteredItems\"\n [ngClass]=\"{focus: focusedItemId === item.id, disabled: disabled}\"\n class=\"searchable-dropdown__button searchable-dropdown__size\"\n (click)=\"submit(item.id)\"\n (mouseenter)=\"hoverOverButton(item.id)\"\n (mouseleave)=\"resetFocus()\"\n [style.width.px]=\"width\"\n >\n <span class=\"searchable-dropdown__button-text\">\n {{ item.text }}\n </span>\n </button>\n </ng-container>\n </ng-container>\n </div>\n </div>\n <ng-container [ngTemplateOutlet]=\"space\"> </ng-container>\n</ng-template>\n\n<ng-template #noResults>\n <div\n class=\"searchable-dropdown__button searchable-dropdown__size disabled\"\n [style.width.px]=\"width\"\n >\n <span class=\"searchable-dropdown__button-text\">{{ noResultsText }}</span>\n </div>\n</ng-template>\n\n<ng-template #space>\n <div\n *ngIf=\"style === 'button' || !style\"\n class=\"searchable-dropdown__size\"\n [style.width.px]=\"width\"\n ></div>\n <h5 *ngIf=\"style === 'underlinedText'\" class=\"searchable-dropdown__underline-button\"><b>-</b></h5>\n</ng-template>\n","/*\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\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {ReactiveFormsModule} from '@angular/forms';\nimport {SearchableDropdownComponent} from './searchable-dropdown.component';\n\n@NgModule({\n declarations: [SearchableDropdownComponent],\n imports: [CommonModule, ReactiveFormsModule],\n exports: [SearchableDropdownComponent],\n})\nexport class SearchableDropdownModule {}\n","/*\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\nexport const formIoUploaderEditForm = () => ({\n components: [\n {key: 'type', type: 'hidden'},\n {\n type: 'textfield',\n input: true,\n key: 'label',\n label: 'Label',\n placeholder: 'Label',\n validate: {\n required: true,\n },\n },\n {\n type: 'textfield',\n input: true,\n key: 'key',\n label: 'Property Name',\n placeholder: 'Property Name',\n tooltip: 'The name of this field in the API endpoint.',\n validate: {\n required: true,\n },\n },\n {\n type: 'textfield',\n input: true,\n key: 'customOptions.title',\n label: 'Title',\n placeholder: 'Title',\n tooltip: 'Leave empty to use the default title',\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.hideTitle',\n label: 'Hide title',\n validate: {\n required: false,\n },\n },\n {\n type: 'textfield',\n input: true,\n key: 'customOptions.subtitle',\n label: 'Subtitle',\n placeholder: 'Title',\n tooltip: 'Leave empty to hide subtitle',\n validate: {\n required: false,\n },\n },\n {\n type: 'number',\n input: true,\n key: 'customOptions.maxFileSize',\n label: 'Maximum file size',\n placeholder: 'Maximum file size',\n defaultValue: 5,\n validate: {\n required: true,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.hideMaxFileSize',\n label: 'Hide maximum file size',\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.camera',\n label: 'Allow camera uploads',\n validate: {\n required: false,\n },\n },\n ],\n});\n","/*\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\nimport {Injector} from '@angular/core';\nimport {\n createCustomFormioComponent,\n FormioCustomComponentInfo,\n registerCustomFormioComponentWithClass,\n} from '@formio/angular';\nimport {FormIoUploaderComponent} from './form-io-uploader.component';\nimport {formIoUploaderEditForm} from './form-io-uploader-edit-form';\n\nexport const customUploaderType = 'valtimo-file';\n\nconst COMPONENT_OPTIONS: FormioCustomComponentInfo = {\n type: customUploaderType,\n selector: 'valtimo-form-io-uploader',\n title: 'Valtimo File Upload',\n group: 'basic',\n icon: 'upload',\n // set empty value to force formio to accept arrays as valid input value for this field type\n emptyValue: [],\n editForm: formIoUploaderEditForm,\n};\n\nexport function registerFormioUploadComponent(injector: Injector) {\n const originalUploadComponent = createCustomFormioComponent(COMPONENT_OPTIONS);\n\n // override setValue function to allow for setting an array value\n class UploaderComponent extends originalUploadComponent {\n setValue(value): boolean {\n this._customAngularElement.value = value;\n return true;\n }\n }\n\n if (!customElements.get(COMPONENT_OPTIONS.selector)) {\n registerCustomFormioComponentWithClass(\n COMPONENT_OPTIONS,\n FormIoUploaderComponent,\n UploaderComponent,\n injector\n );\n }\n}\n","/*\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\nexport const documentenApiUploaderEditForm = () => ({\n components: [\n {key: 'type', type: 'hidden'},\n {\n type: 'textfield',\n input: true,\n key: 'label',\n label: 'Label',\n placeholder: 'Label',\n validate: {\n required: true,\n },\n },\n {\n type: 'textfield',\n input: true,\n key: 'key',\n label: 'Property Name',\n placeholder: 'Property Name',\n tooltip: 'The name of this field in the API endpoint.',\n validate: {\n required: true,\n },\n },\n {\n type: 'textfield',\n input: true,\n key: 'customOptions.title',\n label: 'Title',\n placeholder: 'Title',\n tooltip: 'Leave empty to use the default title',\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.hideTitle',\n label: 'Hide title',\n validate: {\n required: false,\n },\n },\n {\n type: 'textfield',\n input: true,\n key: 'customOptions.subtitle',\n label: 'Subtitle',\n placeholder: 'Title',\n tooltip: 'Leave empty to hide subtitle',\n validate: {\n required: false,\n },\n },\n {\n type: 'number',\n input: true,\n key: 'customOptions.maxFileSize',\n label: 'Maximum file size',\n placeholder: 'Maximum file size',\n defaultValue: 5,\n validate: {\n required: true,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.hideMaxFileSize',\n label: 'Hide maximum file size',\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.camera',\n label: 'Allow camera uploads',\n validate: {\n required: false,\n },\n },\n {\n type: 'textfield',\n input: true,\n key: 'customOptions.documentTitle',\n label: 'Default document title',\n tooltip: 'Leave empty to let the user input their own title',\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.disableDocumentTitle',\n label: 'Disable document title input',\n validate: {\n required: false,\n },\n },\n {\n type: 'textfield',\n input: true,\n key: 'customOptions.filename',\n label: 'Default filename',\n tooltip: 'Leave empty to let the user input their own filename',\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.disableFilename',\n label: 'Disable filename input',\n validate: {\n required: false,\n },\n },\n {\n type: 'textfield',\n input: true,\n key: 'customOptions.author',\n label: 'Default author',\n tooltip: 'Leave empty to let the user input their own author',\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.disableAuthor',\n label: 'Disable author input',\n validate: {\n required: false,\n },\n },\n {\n type: 'select',\n label: 'Default status',\n key: 'customOptions.status',\n placeholder: 'Select a default status',\n data: {\n values: [\n {value: 'in_bewerking', label: 'In editing'},\n {value: 'ter_vaststelling', label: 'To be confirmed'},\n {value: 'definitief', label: 'Definitive'},\n {value: 'gearchiveerd', label: 'Archived'},\n ],\n },\n dataSrc: 'values',\n input: true,\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.disableStatus',\n label: 'Disable status input',\n validate: {\n required: false,\n },\n },\n {\n type: 'select',\n label: 'Default language',\n key: 'customOptions.language',\n placeholder: 'Select a default language',\n data: {\n values: [\n {value: 'nld', label: 'Dutch'},\n {value: 'eng', label: 'English'},\n {value: 'deu', label: 'German'},\n ],\n },\n dataSrc: 'values',\n input: true,\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.disableLanguage',\n label: 'Disable language input',\n validate: {\n required: false,\n },\n },\n {\n type: 'textfield',\n input: true,\n key: 'customOptions.documentType',\n label: 'Default document type url',\n tooltip:\n 'Must match the document type url exactly. Leave empty to let the user input their own document type',\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.disableDocumentType',\n label: 'Disable document type input',\n validate: {\n required: false,\n },\n },\n {\n type: 'textfield',\n input: true,\n key: 'customOptions.description',\n label: 'Default description',\n tooltip: 'Leave empty to let the user input their own description',\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.disableDescription',\n label: 'Disable description input',\n validate: {\n required: false,\n },\n },\n {\n type: 'select',\n label: 'Default confidentiality level',\n key: 'customOptions.confidentialityLevel',\n placeholder: 'Select a default confidentiality level',\n data: {\n values: [\n {value: 'openbaar', label: 'Public'},\n {value: 'beperkt_openbaar', label: 'Restricted public'},\n {value: 'intern', label: 'Internal'},\n {value: 'zaakvertrouwelijk', label: 'Case confidential'},\n {value: 'vertrouwelijk', label: 'Private'},\n {value: 'confidentieel', label: 'Confidential'},\n {value: 'geheim', label: 'Secret'},\n {value: 'zeer_geheim', label: 'Very secret'},\n ],\n },\n dataSrc: 'values',\n input: true,\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.disableConfidentialityLevel',\n label: 'Disable confidentiality level input',\n validate: {\n required: false,\n },\n },\n ],\n});\n","/*\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\nimport {Injector} from '@angular/core';\nimport {\n createCustomFormioComponent,\n FormioCustomComponentInfo,\n registerCustomFormioComponentWithClass,\n} from '@formio/angular';\nimport {DocumentenApiUploaderComponent} from './documenten-api-uploader.component';\nimport {documentenApiUploaderEditForm} from './documenten-api-uploader-edit-form';\n\nexport const customDocumentApiUploaderType = 'documenten-api-file';\n\nconst COMPONENT_OPTIONS: FormioCustomComponentInfo = {\n type: customDocumentApiUploaderType,\n selector: 'documenten-api-form-io-uploader',\n title: 'Documenten API File Upload',\n group: 'advanced',\n icon: 'upload',\n // set empty value to force formio to accept arrays as valid input value for this field type\n emptyValue: [],\n editForm: documentenApiUploaderEditForm,\n};\n\nexport function registerDocumentenApiFormioUploadComponent(injector: Injector) {\n const originalUploadComponent = createCustomFormioComponent(COMPONENT_OPTIONS);\n\n // override setValue function to allow for setting an array value\n class UploaderComponent extends originalUploadComponent {\n setValue(value): boolean {\n this._customAngularElement.value = value;\n return true;\n }\n }\n\n if (!customElements.get(COMPONENT_OPTIONS.selector)) {\n registerCustomFormioComponentWithClass(\n COMPONENT_OPTIONS,\n DocumentenApiUploaderComponent,\n UploaderComponent,\n injector\n );\n }\n}\n","/*\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\nimport {Injector} from '@angular/core';\nimport {Components, Formio} from '@formio/angular';\nimport {DocumentService} from '@valtimo/document';\nimport {FormIoStateService} from '../services/form-io-state.service';\nimport {take} from 'rxjs/operators';\nimport {ResourceOption} from '../../../models';\n\nconst SelectComponent = Components.components.select;\n\nexport function registerFormioFileSelectorComponent(injector: Injector) {\n const documentService = injector.get(DocumentService);\n const stateService = injector.get(FormIoStateService);\n\n const unavailableMessage: ResourceOption = {\n label: 'could not retrieve documents',\n value: null,\n };\n\n function getDocumentResources(documentId: string): Promise<ResourceOption[]> {\n if (!documentId) {\n return new Promise(resolve => {\n resolve([unavailableMessage]);\n });\n }\n return documentService\n .getDocument(documentId)\n .toPromise()\n .then(document =>\n document.relatedFiles.map(relatedFile => ({\n label: relatedFile.fileName,\n value: relatedFile.fileId,\n }))\n )\n .catch(\n () =>\n new Promise(resolve => {\n resolve([unavailableMessage]);\n })\n );\n }\n\n class ResourceSelectorComponent extends SelectComponent {\n static schema(...extend) {\n return SelectComponent.schema({\n type: 'resource-selector',\n label: 'Resource selector',\n key: 'resource-selector',\n dataSrc: 'custom',\n dataType: 'string',\n valueProperty: 'value',\n asyncValues: true,\n data: {\n custom: 'values = instance.getResources()',\n },\n ...extend,\n });\n }\n\n getResources() {\n return stateService.documentId$\n .pipe(take(1))\n .toPromise()\n .then(documentId => getDocumentResources(documentId));\n }\n\n static get builderInfo() {\n return {\n title: 'Document picker',\n icon: 'th-list',\n group: 'basic',\n documentation: '/userguide/#textfield',\n weight: 0,\n schema: ResourceSelectorComponent.schema(),\n };\n }\n }\n\n Formio.use({\n components: {\n 'resource-selector': ResourceSelectorComponent,\n },\n });\n}\n","/*\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\nimport {Component, EventEmitter, Input, Output} from '@angular/core';\nimport {DropdownButtonStyle, DropdownItem} from '../../models';\n\n@Component({\n selector: 'valtimo-searchable-dropdown-select',\n templateUrl: './searchable-dropdown-select.component.html',\n styleUrls: ['./searchable-dropdown-select.component.scss'],\n})\nexport class SearchableDropdownSelectComponent {\n @Input() style: DropdownButtonStyle;\n @Input() items: Array<DropdownItem>;\n @Input() buttonText: string;\n @Input() searchText: string;\n @Input() noResultsText: string;\n @Input() disabled: boolean;\n @Input() selectedText: string;\n @Input() selectedTextValue: string;\n @Input() clearSelectionButtonTitle: string;\n @Input() hasSelection: boolean;\n @Input() width = 250;\n\n @Output() itemSelected = new EventEmitter();\n @Output() clearSelection = new EventEmitter();\n\n onSelect(id: string): void {\n this.itemSelected.emit(id);\n }\n\n onClearSelection(): void {\n this.clearSelection.emit();\n }\n}\n","<!--\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<valtimo-searchable-dropdown\n *ngIf=\"!hasSelection; else selection\"\n [style]=\"style\"\n [items]=\"items\"\n [buttonText]=\"buttonText\"\n [searchText]=\"searchText\"\n [noResultsText]=\"noResultsText\"\n [disabled]=\"disabled\"\n [width]=\"width\"\n (itemSelected)=\"onSelect($event)\"\n>\n</valtimo-searchable-dropdown>\n\n<ng-template #selection>\n <div\n class=\"d-flex flex-row align-items-center\"\n [style.height.px]=\"style === 'button' ? 34 : null\"\n >\n <h5 class=\"selected-text\">\n {{ selectedText }} <b>{{ selectedTextValue }}</b>\n </h5>\n <button\n type=\"button\"\n class=\"close p-0 m-0 ml-2 d-flex text-danger\"\n aria-label=\"Close\"\n (click)=\"onClearSelection()\"\n [title]=\"clearSelectionButtonTitle\"\n >\n <i class=\"clear-icon mdi mdi-close text-danger\"></i>\n </button>\n </div>\n</ng-template>\n","/*\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\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {ReactiveFormsModule} from '@angular/forms';\nimport {SearchableDropdownSelectComponent} from './searchable-dropdown-select.component';\nimport {SearchableDropdownModule} from '../searchable-dropdown/searchable-dropdown.module';\n\n@NgModule({\n declarations: [SearchableDropdownSelectComponent],\n imports: [CommonModule, ReactiveFormsModule, SearchableDropdownModule],\n exports: [SearchableDropdownSelectComponent],\n})\nexport class SearchableDropdownSelectModule {}\n","/*\n * Copyright 2015-2022 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\nimport {Component, EventEmitter, Input, Output} from '@angular/core';\n\n@Component({\n selector: 'valtimo-multiselect-dropdown',\n templateUrl: './multiselect-dropdown.component.html',\n styleUrls: ['./multiselect-dropdown.component.scss'],\n})\nexport class MultiselectDropdownComponent {\n @Input() selectedItems: Array<string>;\n @Input() items = [];\n @Input() placeHolder: string;\n @Input() dropdownSettings = {\n singleSelection: false,\n selectAllText: 'Select All',\n unSelectAllText: 'UnSelect All',\n itemsShowLimit: 3,\n allowSearchFilter: true,\n };\n @Output() itemsSelected = new EventEmitter();\n\n onItemsSelected() {\n this.itemsSelected.emit(this.selectedItems);\n }\n}\n","<!--\n ~ Copyright 2015-2022 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<ng-multiselect-dropdown\n [placeholder]=\"placeHolder\"\n [data]=\"items\"\n [(ngModel)]=\"selectedItems\"\n [settings]=\"dropdownSettings\"\n (onDropDownClose)=\"onItemsSelected()\"\n></ng-multiselect-dropdown>\n","/*\n * Copyright 2015-2022 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\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {MultiselectDropdownComponent} from './multiselect-dropdown.component';\nimport {NgMultiSelectDropDownModule} from 'ng-multiselect-dropdown';\n\n@NgModule({\n declarations: [MultiselectDropdownComponent],\n imports: [CommonModule, ReactiveFormsModule, NgMultiSelectDropDownModule, FormsModule],\n exports: [MultiselectDropdownComponent],\n})\nexport class MultiselectDropdownModule {}\n","/*\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\nimport {Component, EventEmitter, Input, OnDestroy, OnInit, Output} from '@angular/core';\nimport {SearchField, SearchFieldBoolean, SearchFieldValues} from '@valtimo/config';\nimport {BehaviorSubject, map, Observable, Subject, Subscription, take} from 'rxjs';\nimport {SelectItem} from '@valtimo/user-interface';\nimport {TranslateService} from '@ngx-translate/core';\n\n@Component({\n selector: 'valtimo-search-fields',\n templateUrl: './search-fields.component.html',\n styleUrls: ['./search-fields.component.scss'],\n})\nexport class SearchFieldsComponent implements OnInit, OnDestroy {\n @Input() loading: boolean;\n @Input() set searchFields(fields: Array<SearchField>) {\n this.searchFields$.next(fields);\n }\n @Input() set documentDefinitionName(documentDefinitionName: string) {\n this.documentDefinitionName$.pipe(take(1)).subscribe(currentDocumentDefinitionName => {\n if (currentDocumentDefinitionName !== documentDefinitionName) {\n this.documentDefinitionName$.next(documentDefinitionName);\n }\n });\n }\n @Output() doSearch: EventEmitter<SearchFieldValues> = new EventEmitter<SearchFieldValues>();\n\n readonly documentDefinitionName$ = new BehaviorSubject<string>('');\n\n readonly searchFields$ = new BehaviorSubject<Array<SearchField>>([]);\n\n readonly values$ = new BehaviorSubject<SearchFieldValues>({});\n\n readonly hasValidValues$: Observable<boolean> = this.values$.pipe(\n map(values => {\n const hasValues = (Object.keys(values) || []).length > 0;\n const rangeValues =\n (hasValues && Object.values(values)?.filter(value => (value as any).start)) || [];\n const validRangeValues = rangeValues?.filter(\n value => (value as any).start < (value as any).end\n );\n\n return !!(hasValues && rangeValues.length === validRangeValues.length);\n })\n );\n\n readonly expanded$ = new BehaviorSubject<boolean>(false);\n readonly clear$ = new Subject<null>();\n\n private documentDefinitionNameSubscription!: Subscription;\n\n private readonly BOOLEAN_POSITIVE: SearchFieldBoolean = 'booleanPositive';\n private readonly BOOLEAN_NEGATIVE: SearchFieldBoolean = 'booleanNegative';\n\n readonly BOOLEANTYPES: Array<SearchFieldBoolean> = [this.BOOLEAN_POSITIVE, this.BOOLEAN_NEGATIVE];\n readonly booleanItems$: Observable<Array<SelectItem>> = this.translateService.stream('key').pipe(\n map(() =>\n this.BOOLEANTYPES.map(type => ({\n id: type,\n text: this.translateService.instant(`searchFields.${type}`),\n }))\n )\n );\n\n constructor(private readonly translateService: TranslateService) {}\n\n ngOnInit() {\n this.openDocumentDefinitionNameSubscription();\n }\n\n ngOnDestroy(): void {\n this.documentDefinitionNameSubscription?.unsubscribe();\n }\n\n singleValueChange(searchFieldKey: string, value: any, isDateTime?: boolean): void {\n this.values$.pipe(take(1)).subscribe(values => {\n if (value) {\n this.values$.next({...values, [searchFieldKey]: this.getSingleValue(value, isDateTime)});\n } else if (Object.keys(values).includes(searchFieldKey)) {\n const valuesCopy = {...values};\n delete valuesCopy[searchFieldKey];\n this.values$.next(valuesCopy);\n }\n });\n }\n\n multipleValueChange(searchFieldKey: string, value: any, isDateTime?: boolean): void {\n this.values$.pipe(take(1)).subscribe(values => {\n if (value.start && value.end) {\n this.values$.next({\n ...values,\n [searchFieldKey]: {\n start: this.getSingleValue(value.start, isDateTime),\n end: this.getSingleValue(value.end, isDateTime),\n },\n });\n } else if (values[searchFieldKey]) {\n const valuesCopy = {...values};\n delete valuesCopy[searchFieldKey];\n this.values$.next(valuesCopy);\n }\n });\n }\n\n toggleExpanded(): void {\n this.expanded$.pipe(take(1)).subscribe(expanded => {\n this.expanded$.next(!expanded);\n });\n }\n\n search(): void {\n this.values$.pipe(take(1)).subscribe(values => {\n this.doSearch.emit(values);\n });\n }\n\n clear(): void {\n this.clear$.next(null);\n this.doSearch.emit({});\n }\n\n private getSingleValue(value: any, isDateTime?: boolean): any {\n if (isDateTime) {\n return new Date(value).toISOString();\n }\n if (value === this.BOOLEAN_POSITIVE) {\n return true;\n }\n if (value === this.BOOLEAN_NEGATIVE) {\n return false;\n }\n\n return value;\n }\n\n private openDocumentDefinitionNameSubscription(): void {\n this.documentDefinitionNameSubscription = this.documentDefinitionName$.subscribe(() => {\n this.collapse();\n this.clear();\n });\n }\n\n private collapse(): void {\n this.expanded$.next(false);\n }\n}\n","<!--\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 class=\"search fields\">\n <ng-container *ngIf=\"loading\">\n <ng-container *ngTemplateOutlet=\"loadingTemplate\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"!loading\">\n <ng-container *ngTemplateOutlet=\"searchFieldsTemplate\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #loadingTemplate>\n <valtimo-spinner></valtimo-spinner>\n</ng-template>\n\n<ng-template #searchFieldsTemplate>\n <valtimo-widget>\n <div class=\"row\">\n <div class=\"col-12\">\n <ng-container *ngTemplateOutlet=\"buttonAccordion\"></ng-container>\n </div>\n </div>\n <div\n class=\"row p-3\"\n [ngClass]=\"{'row--hidden': (expanded$ | async) === false}\"\n *ngIf=\"searchFields$ | async as searchFields\"\n >\n <ng-container *ngFor=\"let searchField of searchFields; let i = index\">\n <div class=\"col-4\">\n <ng-container\n *ngTemplateOutlet=\"searchFieldTemplate; context: {searchField: searchField}\"\n ></ng-container>\n </div>\n <div class=\"w-100\" *ngIf=\"(i + 1) % 3 === 0\"></div>\n </ng-container>\n <div class=\"col-12\">\n <ng-container\n *ngTemplateOutlet=\"\n buttonsTemplate;\n context: {noSearchFields: !searchFields || searchFields.length === 0}\n \"\n ></ng-container>\n </div>\n </div>\n </valtimo-widget>\n</ng-template>\n\n<ng-template #searchFieldTemplate let-searchField=\"searchField\">\n <ng-container\n *ngIf=\"{\n tooltipKey: 'searchFieldsTooltips.' + searchField.key,\n tooltip: 'searchFieldsTooltips.' + searchField.key | translate,\n searchField,\n title:\n searchField.title ||\n ('searchFields.' + searchField.key !== ('searchFields.' + searchField.key | translate)\n ? ('searchFields.' + searchField.key | translate)\n : searchField.key)\n } as vars\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n searchFieldTemplateText;\n context: {\n searchField: searchField,\n tooltipKey: vars.tooltipKey,\n tooltip: vars.tooltip,\n title: vars.title\n }\n \"\n ></ng-container>\n <ng-container\n *ngTemplateOutlet=\"\n searchFieldTemplateNumber;\n context: {\n searchField: searchField,\n tooltipKey: vars.tooltipKey,\n tooltip: vars.tooltip,\n title: vars.title\n }\n \"\n ></ng-container>\n <ng-container\n *ngTemplateOutlet=\"\n searchFieldTemplateDate;\n context: {\n searchField: searchField,\n tooltipKey: vars.tooltipKey,\n tooltip: vars.tooltip,\n title: vars.title\n }\n \"\n ></ng-container>\n <ng-container\n *ngTemplateOutlet=\"\n searchFieldTemplateBoolean;\n context: {\n searchField: searchField,\n tooltipKey: vars.tooltipKey,\n tooltip: vars.tooltip,\n title: vars.title\n }\n \"\n ></ng-container>\n <ng-container\n *ngTemplateOutlet=\"\n searchFieldTemplateDateTime;\n context: {\n searchField: searchField,\n tooltipKey: vars.tooltipKey,\n tooltip: vars.tooltip,\n title: vars.title\n }\n \"\n ></ng-container>\n <ng-container\n *ngTemplateOutlet=\"\n searchFieldTemplateNumberRange;\n context: {\n searchField: searchField,\n tooltipKey: vars.tooltipKey,\n tooltip: vars.tooltip,\n title: vars.title\n }\n \"\n ></ng-container>\n <ng-container\n *ngTemplateOutlet=\"\n searchFieldTemplateTextRange;\n context: {\n searchField: searchField,\n tooltipKey: vars.tooltipKey,\n tooltip: vars.tooltip,\n title: vars.title\n }\n \"\n ></ng-container>\n <ng-container\n *ngTemplateOutlet=\"\n searchFieldTemplateDateRange;\n context: {\n searchField: searchField,\n tooltipKey: vars.tooltipKey,\n tooltip: vars.tooltip,\n title: vars.title\n }\n \"\n ></ng-container>\n <ng-container\n *ngTemplateOutlet=\"\n searchFieldTemplateDateTimeRange;\n context: {\n searchField: searchField,\n tooltipKey: vars.tooltipKey,\n tooltip: vars.tooltip,\n title: vars.title\n }\n \"\n ></ng-container>\n </ng-container>\n</ng-template>\n\n<ng-template\n #searchFieldTemplateText\n let-searchField=\"searchField\"\n let-tooltip=\"tooltip\"\n let-tooltipKey=\"tooltipKey\"\n let-title=\"title\"\n>\n <v-input\n *ngIf=\"searchField.dataType === 'text' && searchField.fieldType === 'single'\"\n [name]=\"searchField.key\"\n [title]=\"title\"\n [fullWidth]=\"true\"\n [tooltip]=\"tooltip !== tooltipKey && tooltip\"\n (valueChange)=\"singleValueChange(searchField.key, $event)\"\n [smallLabel]=\"true\"\n [clear$]=\"clear$\"\n >\n </v-input>\n</ng-template>\n\n<ng-template\n #searchFieldTemplateNumber\n let-searchField=\"searchField\"\n let-tooltip=\"tooltip\"\n let-tooltipKey=\"tooltipKey\"\n let-title=\"title\"\n>\n <v-input\n *ngIf=\"searchField.dataType === 'number' && searchField.fieldType === 'single'\"\n [name]=\"searchField.key\"\n [title]=\"title\"\n [fullWidth]=\"true\"\n (valueChange)=\"singleValueChange(searchField.key, $event)\"\n type=\"number\"\n [hideNumberSpinBox]=\"true\"\n [tooltip]=\"tooltip !== tooltipKey && tooltip\"\n [smallLabel]=\"true\"\n [clear$]=\"clear$\"\n >\n </v-input>\n</ng-template>\n\n<ng-template\n #searchFieldTemplateDate\n let-searchField=\"searchField\"\n let-tooltip=\"tooltip\"\n let-tooltipKey=\"tooltipKey\"\n let-title=\"title\"\n>\n <v-date-picker\n *ngIf=\"searchField.dataType === 'date' && searchField.fieldType === 'single'\"\n [title]=\"title\"\n [tooltip]=\"tooltip !== tooltipKey && tooltip\"\n [name]=\"searchField.key\"\n fullWidth=\"true\"\n (valueChange)=\"singleValueChange(searchField.key, $event)\"\n [smallLabel]=\"true\"\n [clear$]=\"clear$\"\n ></v-date-picker>\n</ng-template>\n\n<ng-template\n #searchFieldTemplateTextRange\n let-searchField=\"searchField\"\n let-tooltip=\"tooltip\"\n let-tooltipKey=\"tooltipKey\"\n let-title=\"title\"\n>\n <ng-container *ngIf=\"searchField.dataType === 'text' && searchField.fieldType === 'range'\">\n <v-input-label\n [title]=\"title\"\n [tooltip]=\"tooltip !== tooltipKey && tooltip\"\n [small]=\"true\"\n ></v-input-label>\n <v-form\n (valueChange)=\"multipleValueChange(searchField.key, $event)\"\n className=\"multiple-search-fields\"\n >\n <v-input name=\"start\" [fullWidth]=\"true\" [clear$]=\"clear$\"> </v-input>\n <ng-container *ngTemplateOutlet=\"toText\"></ng-container>\n <v-input name=\"end\" [fullWidth]=\"true\" [clear$]=\"clear$\"> </v-input>\n </v-form>\n </ng-container>\n</ng-template>\n\n<ng-template\n #searchFieldTemplateNumberRange\n let-searchField=\"searchField\"\n let-tooltip=\"tooltip\"\n let-tooltipKey=\"tooltipKey\"\n let-title=\"title\"\n>\n <ng-container *ngIf=\"searchField.dataType === 'number' && searchField.fieldType === 'range'\">\n <v-input-label\n [title]=\"title\"\n [tooltip]=\"tooltip !== tooltipKey && tooltip\"\n [small]=\"true\"\n ></v-input-label>\n <v-form\n (valueChange)=\"multipleValueChange(searchField.key, $event)\"\n className=\"multiple-search-fields\"\n >\n <v-input\n name=\"start\"\n [fullWidth]=\"true\"\n type=\"number\"\n [hideNumberSpinBox]=\"true\"\n [clear$]=\"clear$\"\n >\n </v-input>\n <ng-container *ngTemplateOutlet=\"toText\"></ng-container>\n <v-input\n name=\"end\"\n [fullWidth]=\"true\"\n type=\"number\"\n [hideNumberSpinBox]=\"true\"\n [clear$]=\"clear$\"\n >\n </v-input>\n </v-form>\n </ng-container>\n</ng-template>\n\n<ng-template\n #searchFieldTemplateDateRange\n let-searchField=\"searchField\"\n let-tooltip=\"tooltip\"\n let-tooltipKey=\"tooltipKey\"\n let-title=\"title\"\n>\n <ng-container *ngIf=\"searchField.dataType === 'date' && searchField.fieldType === 'range'\">\n <v-input-label\n [title]=\"title\"\n [tooltip]=\"tooltip !== tooltipKey && tooltip\"\n [small]=\"true\"\n ></v-input-label>\n <v-form\n (valueChange)=\"multipleValueChange(searchField.key, $event)\"\n className=\"multiple-search-fields\"\n >\n <v-date-picker name=\"start\" fullWidth=\"true\" [clear$]=\"clear$\"></v-date-picker>\n <ng-container *ngTemplateOutlet=\"toText\"></ng-container>\n <v-date-picker name=\"end\" fullWidth=\"true\" [clear$]=\"clear$\"></v-date-picker>\n </v-form>\n </ng-container>\n</ng-template>\n\n<ng-template\n #searchFieldTemplateBoolean\n let-searchField=\"searchField\"\n let-tooltip=\"tooltip\"\n let-tooltipKey=\"tooltipKey\"\n let-title=\"title\"\n>\n <ng-container *ngIf=\"searchField.dataType === 'boolean'\">\n <v-input-label\n [title]=\"title\"\n [tooltip]=\"tooltip !== tooltipKey && tooltip\"\n [small]=\"true\"\n ></v-input-label>\n <v-select\n *ngIf=\"booleanItems$ | async as booleanItems\"\n [items]=\"booleanItems\"\n [margin]=\"false\"\n [required]=\"false\"\n [widthInPx]=\"200\"\n [name]=\"searchField.key\"\n [clearSelectionSubject$]=\"clear$\"\n (selectedChange)=\"singleValueChange(searchField.key, $event)\"\n ></v-select>\n </ng-container>\n</ng-template>\n\n<ng-template\n #searchFieldTemplateDateTime\n let-searchField=\"searchField\"\n let-tooltip=\"tooltip\"\n let-tooltipKey=\"tooltipKey\"\n let-title=\"title\"\n>\n <v-date-picker\n *ngIf=\"searchField.dataType === 'datetime' && searchField.fieldType === 'single'\"\n [title]=\"title\"\n [tooltip]=\"tooltip !== tooltipKey && tooltip\"\n [name]=\"searchField.key\"\n fullWidth=\"true\"\n (valueChange)=\"singleValueChange(searchField.key, $event, true)\"\n [smallLabel]=\"true\"\n [enableTime]=\"true\"\n [clear$]=\"clear$\"\n ></v-date-picker>\n</ng-template>\n\n<ng-template\n #searchFieldTemplateDateTimeRange\n let-searchField=\"searchField\"\n let-tooltip=\"tooltip\"\n let-tooltipKey=\"tooltipKey\"\n let-title=\"title\"\n>\n <ng-container *ngIf=\"searchField.dataType === 'datetime' && searchField.fieldType === 'range'\">\n <v-input-label\n [title]=\"title\"\n [tooltip]=\"tooltip !== tooltipKey && tooltip\"\n [small]=\"true\"\n ></v-input-label>\n <v-form\n (valueChange)=\"multipleValueChange(searchField.key, $event, true)\"\n className=\"multiple-search-fields\"\n >\n <v-date-picker\n name=\"start\"\n fullWidth=\"true\"\n [enableTime]=\"true\"\n [clear$]=\"clear$\"\n ></v-date-picker>\n <ng-container *ngTemplateOutlet=\"toText\"></ng-container>\n <v-date-picker\n name=\"end\"\n fullWidth=\"true\"\n [enableTime]=\"true\"\n [clear$]=\"clear$\"\n ></v-date-picker>\n </v-form>\n </ng-container>\n</ng-template>\n\n<ng-template #toText>\n <div class=\"to-text\">\n <v-paragraph>{{ 'searchFields.to' | translate }}</v-paragraph>\n </div>\n</ng-template>\n\n<ng-template #buttonsTemplate let-noSearchFields=\"noSearchFields\">\n <ng-container\n *ngTemplateOutlet=\"noSearchFieldsTemplate; context: {noSearchFields: noSearchFields}\"\n ></ng-container>\n <div class=\"buttons-container\" *ngIf=\"{expanded: expanded$ | async} as obs\">\n <div class=\"right-buttons\">\n <button\n (click)=\"clear()\"\n [disabled]=\"loading || noSearchFields\"\n type=\"button\"\n class=\"btn btn-space btn-secondary\"\n *ngIf=\"obs.expanded\"\n >\n {{ 'searchFields.clearButtonText' | translate }}\n </button>\n <button\n (click)=\"search()\"\n [disabled]=\"loading || noSearchFields || (hasValidValues$ | async) === false\"\n type=\"button\"\n class=\"btn btn-space btn-primary\"\n *ngIf=\"obs.expanded\"\n >\n {{ 'searchFields.searchButtonText' | translate }}\n </button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #noSearchFieldsTemplate let-noSearchFields=\"noSearchFields\">\n <div class=\"w-100 mb-3\" *ngIf=\"noSearchFields\">\n <v-paragraph [fullWidth]=\"true\" [center]=\"true\">{{\n 'searchFields.noneConfigured' | translate\n }}</v-paragraph>\n </div>\n</ng-template>\n\n<ng-template #buttonAccordion>\n <div class=\"buttons-container\" *ngIf=\"{expanded: expanded$ | async} as obs\">\n <button\n [disabled]=\"loading\"\n type=\"button\"\n class=\"accordion-button\"\n (click)=\"toggleExpanded()\"\n [ngClass]=\"\n obs.expanded ? 'mdi mdi-chevron-right accordion-button--active' : 'mdi mdi-chevron-down'\n \"\n >\n {{ 'searchFields.searchButtonText' | translate }}\n </button>\n </div>\n</ng-template>\n","/*\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\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {SearchFieldsComponent} from './search-fields.component';\nimport {SpinnerModule} from '../spinner/spinner.module';\nimport {WidgetModule} from '../widget/widget.module';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {\n ButtonModule,\n DatePickerModule,\n FormModule,\n InputLabelModule,\n InputModule,\n ParagraphModule,\n SelectModule,\n} from '@valtimo/user-interface';\n\n@NgModule({\n declarations: [SearchFieldsComponent],\n imports: [\n CommonModule,\n SpinnerModule,\n WidgetModule,\n TranslateModule,\n InputModule,\n FormModule,\n DatePickerModule,\n InputLabelModule,\n ParagraphModule,\n ButtonModule,\n SelectModule,\n ],\n exports: [SearchFieldsComponent],\n})\nexport class SearchFieldsModule {}\n","/*\n * Copyright 2015-2022 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/*\n * Public API Surface of components\n */\n\nexport * from './lib/models';\nexport * from './lib/services/valtimo-modal.service';\n\nexport * from './lib/components/camunda/form/camunda-form.components';\nexport * from './lib/components/camunda/form/camunda-form.module';\n\nexport * from './lib/components/topbar/topbar.component';\nexport * from './lib/components/topbar/topbar.module';\n\nexport * from './lib/components/menu/menu.service';\nexport * from './lib/components/menu/menu-routing.module';\nexport * from './lib/components/menu/menu.module';\nexport * from './lib/components/menu/menu.init';\nexport * from './lib/components/menu/menu.component';\n\nexport * from './lib/components/right-sidebar/right-sidebar.component';\nexport * from './lib/components/right-sidebar/right-sidebar.module';\n\nexport * from './lib/components/left-sidebar/left-sidebar.component';\nexport * from './lib/components/left-sidebar/left-sidebar.module';\n\nexport * from './lib/components/list/list.component';\nexport * from './lib/components/list/ListFilterPipe.directive';\nexport * from './lib/components/list/list.module';\n\nexport * from './lib/components/page-header/page-header.component';\nexport * from './lib/components/page-header/page-header.module';\n\nexport * from './lib/components/page-title/page-title.component';\nexport * from './lib/components/page-title/page-title.module';\n\nexport * from './lib/components/breadcrumb-navigation/breadcrumb-navigation.component';\nexport * from './lib/components/breadcrumb-navigation/breadcrumb-navigation.module';\n\nexport * from './lib/components/breadcrumb-navigation/breadcrumb-navigation.component';\nexport * from './lib/components/breadcrumb-navigation/breadcrumb-navigation.module';\n\nexport * from './lib/components/widget/widget.component';\nexport * from './lib/components/widget/widget.module';\n\nexport * from './lib/components/field-auto-focus/field-auto-focus.directive';\nexport * from './lib/components/field-auto-focus/field-auto-focus.module';\n\nexport * from './lib/components/card/card.component';\nexport * from './lib/components/card/card.module';\n\nexport * from './lib/components/bpmn-js-diagram/bpmn-js-diagram.component';\nexport * from './lib/components/bpmn-js-diagram/bpmn-js-diagram.module';\n\nexport * from './lib/components/timeline/timeline.component';\nexport * from './lib/components/timeline/timeline.module';\n\nexport * from './lib/components/components.module';\n\nexport * from './lib/components/filter-sidebar/filter-sidebar.component';\nexport * from './lib/components/filter-sidebar/filter-sidebar.module';\n\nexport * from './lib/components/uploader/uploader.component';\nexport * from './lib/components/uploader/uploader-drag-drop.directive';\nexport * from './lib/components/uploader/uploader.module';\n\nexport * from './lib/components/file-size/file-size.module';\nexport * from './lib/components/file-size/file-size.pipe';\n\nexport * from './lib/components/alert/alert.component';\nexport * from './lib/components/alert/alert.service';\nexport * from './lib/components/alert/alert.module';\n\nexport * from './lib/components/data-list/data-list.component';\nexport * from './lib/components/data-list/data-list.module';\n\nexport * from './lib/components/view-content/view-content.service';\n\nexport * from './lib/components/form-io/form-io.component';\nexport * from './lib/components/form-io/form-io-builder.component';\nexport * from './lib/components/form-io/form-io.module';\n\nexport * from './lib/components/modal/modal.module';\nexport * from './lib/components/modal/modal.component';\n\nexport * from './lib/components/spinner/spinner.module';\nexport * from './lib/components/spinner/spinner.component';\n\nexport * from './lib/components/searchable-dropdown/searchable-dropdown.module';\nexport * from './lib/components/searchable-dropdown/searchable-dropdown.component';\n\nexport * from './lib/components/dropzone/dropzone.module';\nexport * from './lib/components/dropzone/dropzone.component';\n\nexport * from './lib/components/form-io/form-io-uploader/form-io-uploader.component';\nexport * from './lib/components/form-io/form-io-uploader/form-io-uploader.formio';\n\nexport * from './lib/components/form-io/documenten-api-uploader/documenten-api-uploader.component';\nexport * from './lib/components/form-io/documenten-api-uploader/documenten-api-uploader.formio';\n\nexport * from './lib/components/form-io/form-io-resource-selector/form-io-resource-selector.formio';\n\nexport * from './lib/components/form-io/services/form-io-state.service';\n\nexport * from './lib/components/webcam/webcam.module';\nexport * from './lib/components/webcam/webcam.component';\n\nexport * from './lib/components/progress-bar/progress-bar.module';\nexport * from './lib/components/progress-bar/progress-bar.component';\n\nexport * from './lib/components/searchable-dropdown-select/searchable-dropdown-select.module';\nexport * from './lib/components/searchable-dropdown-select/searchable-dropdown-select.component';\n\nexport * from './lib/components/multiselect-dropdown/multiselect-dropdown.module';\nexport * from './lib/components/multiselect-dropdown/multiselect-dropdown.component';\n\nexport * from './lib/components/documenten-api-metadata-modal/documenten-api-metadata-modal.module';\nexport * from './lib/components/documenten-api-metadata-modal/documenten-api-metadata-modal.component';\n\nexport * from './lib/components/search-fields/search-fields.module';\nexport * from './lib/components/search-fields/search-fields.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.CamundaFormfieldValidationComponent","i2","i1.CamundaFormfieldService","i2.CamundaFormfieldValidationComponent","i3","i4","i1","i2.CamundaFormfieldService","i4.CamundaFormfieldGeneratorDirective","i1.CamundaGeneratedFormComponent","i2.CamundaCustomFormComponent","i5","i1.MenuService","i3.MenuItemTextComponent","i4.SubmenuItemTextComponent","i6","i3.VersionService","i7","i8","i9","map","take","i3.PageTitleComponent","i4.MenuComponent","i1.ViewContentService","i7.ListFilterPipe","i2.PageTitleComponent","i3.BreadcrumbNavigationComponent","i2.UploaderDragDropDirective","i4.FileSizePipe","i1.AlertService","switchMap","i3.FormIoStateService","i6.ValtimoModalService","i1.FormIoStateService","i2.ProgressBarComponent","i3.WebcamComponent","i5.FileSizePipe","i2.FormIoStateService","i3.FormIoDomService","i4.DropzoneComponent","i6.FileSizePipe","filter","i4.ValtimoModalService","i7.DropzoneComponent","i8.DocumentenApiMetadataModalComponent","i10","i11.FileSizePipe","ModalModule","i1.ValtimoModalService","COMPONENT_OPTIONS","i1.SearchableDropdownComponent","i2.SpinnerComponent","i3.WidgetComponent"],"mappings":"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"}