@valtimo/components 4.15.3-next-main.16 → 4.17.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.
- package/bundles/valtimo-components.umd.js +4904 -4735
- package/bundles/valtimo-components.umd.js.map +1 -1
- package/bundles/valtimo-components.umd.min.js +2 -2
- package/bundles/valtimo-components.umd.min.js.map +1 -1
- package/esm2015/lib/components/alert/alert.component.js +140 -0
- package/esm2015/lib/components/alert/alert.module.js +28 -0
- package/esm2015/lib/components/alert/alert.service.js +81 -0
- package/esm2015/lib/components/bpmn-js-diagram/bpmn-js-diagram.component.js +160 -0
- package/esm2015/lib/{data-list/data-list.module.js → components/bpmn-js-diagram/bpmn-js-diagram.module.js} +28 -28
- package/esm2015/lib/components/breadcrumb-navigation/breadcrumb-navigation.component.js +93 -0
- package/esm2015/lib/components/breadcrumb-navigation/breadcrumb-navigation.module.js +30 -0
- package/esm2015/lib/{camunda → components/camunda}/form/camunda-form.components.js +37 -37
- package/esm2015/lib/components/camunda/form/camunda-form.module.js +30 -0
- package/esm2015/lib/components/camunda/form/custom/camunda-custom-form.component.js +42 -0
- package/esm2015/lib/components/camunda/form/custom/camunda-custom-form.module.js +28 -0
- package/esm2015/lib/components/camunda/form/generated/camunda-generated-form.component.js +69 -0
- package/esm2015/lib/components/camunda/form/generated/camunda-generated-form.module.js +58 -0
- package/esm2015/lib/{camunda → components/camunda}/form/generated/formfield/boolean/camunda-boolean-formfield.component.js +27 -27
- package/esm2015/lib/components/camunda/form/generated/formfield/camunda-formfield-generator.directive.js +64 -0
- package/esm2015/lib/components/camunda/form/generated/formfield/camunda-formfield.service.js +66 -0
- package/esm2015/lib/{camunda → components/camunda}/form/generated/formfield/choicefield/camunda-choicefield-formfield.component.js +40 -40
- package/esm2015/lib/components/camunda/form/generated/formfield/date/camunda-date-formfield.component.js +66 -0
- package/esm2015/lib/{camunda → components/camunda}/form/generated/formfield/enum/camunda-enum-formfield.component.js +30 -30
- package/esm2015/lib/components/camunda/form/generated/formfield/formfield.model.js +16 -0
- package/esm2015/lib/{camunda → components/camunda}/form/generated/formfield/long/camunda-long-formfield.component.js +27 -27
- package/esm2015/lib/{camunda → components/camunda}/form/generated/formfield/string/camunda-string-formfield.component.js +27 -27
- package/esm2015/lib/{camunda → components/camunda}/form/generated/formfield/textarea/camunda-textarea-formfield.component.js +27 -27
- package/esm2015/lib/{camunda → components/camunda}/form/generated/formfield/validation/camunda-formfield-validation.component.js +35 -35
- package/esm2015/lib/components/camunda/form/generated/formfield/validation/date.validators.js +60 -0
- package/esm2015/lib/{card → components/card}/card.component.js +36 -36
- package/esm2015/lib/components/card/card.module.js +28 -0
- package/esm2015/lib/components/components.module.js +22 -0
- package/esm2015/lib/{data-list → components/data-list}/data-list.component.js +33 -33
- package/esm2015/lib/components/data-list/data-list.module.js +28 -0
- package/esm2015/lib/components/dropzone/dropzone.component.js +142 -0
- package/esm2015/lib/components/dropzone/dropzone.module.js +32 -0
- package/esm2015/lib/components/field-auto-focus/field-auto-focus.directive.js +35 -0
- package/esm2015/lib/components/field-auto-focus/field-auto-focus.module.js +28 -0
- package/esm2015/lib/components/file-size/file-size.module.js +28 -0
- package/esm2015/lib/components/file-size/file-size.pipe.js +38 -0
- package/esm2015/lib/components/filter-sidebar/filter-sidebar.component.js +46 -0
- package/esm2015/lib/components/filter-sidebar/filter-sidebar.module.js +28 -0
- package/esm2015/lib/components/form-io/form-io-builder.component.js +38 -0
- package/esm2015/lib/components/form-io/form-io-uploader/form-io-uploader-edit-form.js +90 -0
- package/esm2015/lib/components/form-io/form-io-uploader/form-io-uploader.component.js +74 -0
- package/esm2015/lib/components/form-io/form-io-uploader/form-io-uploader.formio.js +26 -0
- package/esm2015/lib/components/form-io/form-io.component.js +163 -0
- package/esm2015/lib/components/form-io/form-io.module.js +56 -0
- package/esm2015/lib/components/form-io/formio-config.js +22 -0
- package/esm2015/lib/components/form-io/services/form-io-dom.service.js +23 -0
- package/esm2015/lib/components/form-io/services/form-io-state.service.js +24 -0
- package/esm2015/lib/components/left-sidebar/left-sidebar.component.js +114 -0
- package/esm2015/lib/components/left-sidebar/left-sidebar.module.js +30 -0
- package/esm2015/lib/components/list/ListFilterPipe.directive.js +31 -0
- package/esm2015/lib/components/list/list.component.js +179 -0
- package/esm2015/lib/components/list/list.module.js +33 -0
- package/esm2015/lib/components/menu/menu-item-text.component.js +38 -0
- package/esm2015/lib/components/menu/menu-routing.module.js +27 -0
- package/esm2015/lib/components/menu/menu.component.js +65 -0
- package/esm2015/lib/components/menu/menu.init.js +34 -0
- package/esm2015/lib/components/menu/menu.module.js +34 -0
- package/esm2015/lib/components/menu/menu.service.js +126 -0
- package/esm2015/lib/components/menu/submenu-item-text.component.js +33 -0
- package/esm2015/lib/{modal → components/modal}/modal.component.js +48 -48
- package/esm2015/lib/components/modal/modal.module.js +28 -0
- package/esm2015/lib/{page-header → components/page-header}/page-header.component.js +29 -29
- package/esm2015/lib/components/page-header/page-header.module.js +30 -0
- package/esm2015/lib/components/page-title/page-title.component.js +76 -0
- package/esm2015/lib/components/page-title/page-title.module.js +29 -0
- package/esm2015/lib/components/progress-bar/progress-bar.component.js +26 -0
- package/esm2015/lib/components/progress-bar/progress-bar.module.js +28 -0
- package/esm2015/lib/{right-sidebar → components/right-sidebar}/right-sidebar.component.js +133 -133
- package/esm2015/lib/components/right-sidebar/right-sidebar.module.js +49 -0
- package/esm2015/lib/components/searchable-dropdown/searchable-dropdown.component.js +187 -0
- package/esm2015/lib/components/searchable-dropdown/searchable-dropdown.module.js +29 -0
- package/esm2015/lib/components/searchable-dropdown-select/searchable-dropdown-select.component.js +52 -0
- package/esm2015/lib/components/searchable-dropdown-select/searchable-dropdown-select.module.js +30 -0
- package/esm2015/lib/{spinner → components/spinner}/spinner.component.js +45 -45
- package/esm2015/lib/components/spinner/spinner.module.js +30 -0
- package/esm2015/lib/{timeline → components/timeline}/timeline.component.js +29 -29
- package/esm2015/lib/{modal/modal.module.js → components/timeline/timeline.module.js} +29 -28
- package/esm2015/lib/{topbar → components/topbar}/topbar.component.js +28 -28
- package/esm2015/lib/components/topbar/topbar.module.js +29 -0
- package/esm2015/lib/components/uploader/uploader-drag-drop.directive.js +49 -0
- package/esm2015/lib/components/uploader/uploader.component.js +68 -0
- package/esm2015/lib/components/uploader/uploader.module.js +30 -0
- package/esm2015/lib/components/version/version.service.js +38 -0
- package/esm2015/lib/components/view-content/type-converters/booleanTypeConverter.js +29 -0
- package/esm2015/lib/components/view-content/type-converters/dateTypeConverter.js +30 -0
- package/esm2015/lib/components/view-content/type-converters/enumTypeConverter.js +24 -0
- package/esm2015/lib/components/view-content/type-converters/relatedFilesTypeConverter.js +24 -0
- package/esm2015/lib/components/view-content/type-converters/stringReplaceUnderscoreTypeConverter.js +27 -0
- package/esm2015/lib/components/view-content/type-converters/stringTypeConverter.js +24 -0
- package/esm2015/lib/components/view-content/type-converters/type-converters.model.js +37 -0
- package/esm2015/lib/components/view-content/view-content.service.js +51 -0
- package/esm2015/lib/components/webcam/webcam.component.js +102 -0
- package/esm2015/lib/components/webcam/webcam.module.js +29 -0
- package/esm2015/lib/components/widget/widget.component.js +80 -0
- package/esm2015/lib/components/widget/widget.module.js +28 -0
- package/esm2015/lib/models/alert.model.js +30 -0
- package/esm2015/lib/models/form-io.model.js +30 -0
- package/esm2015/lib/models/index.js +24 -0
- package/esm2015/lib/models/pagination.model.js +1 -0
- package/esm2015/lib/models/searchable-dropdown.model.js +1 -0
- package/esm2015/lib/models/timeline.model.js +44 -0
- package/esm2015/lib/models/version.model.js +16 -0
- package/esm2015/public_api.js +85 -84
- package/esm2015/valtimo-components.js +27 -27
- package/fesm2015/valtimo-components.js +4353 -4217
- package/fesm2015/valtimo-components.js.map +1 -1
- package/lib/{alert → components/alert}/alert.component.d.ts +21 -21
- package/lib/{alert → components/alert}/alert.module.d.ts +2 -2
- package/lib/{alert → components/alert}/alert.service.d.ts +21 -21
- package/lib/{bpmn-js-diagram → components/bpmn-js-diagram}/bpmn-js-diagram.component.d.ts +27 -27
- package/lib/{bpmn-js-diagram → components/bpmn-js-diagram}/bpmn-js-diagram.module.d.ts +2 -2
- package/lib/{breadcrumb-navigation → components/breadcrumb-navigation}/breadcrumb-navigation.component.d.ts +14 -14
- package/lib/{breadcrumb-navigation → components/breadcrumb-navigation}/breadcrumb-navigation.module.d.ts +2 -2
- package/lib/{camunda → components/camunda}/form/camunda-form.components.d.ts +9 -9
- package/lib/{camunda → components/camunda}/form/camunda-form.module.d.ts +2 -2
- package/lib/{camunda → components/camunda}/form/custom/camunda-custom-form.component.d.ts +8 -8
- package/lib/{camunda → components/camunda}/form/custom/camunda-custom-form.module.d.ts +2 -2
- package/lib/{camunda → components/camunda}/form/generated/camunda-generated-form.component.d.ts +19 -19
- package/lib/{camunda → components/camunda}/form/generated/camunda-generated-form.module.d.ts +2 -2
- package/lib/{camunda → components/camunda}/form/generated/formfield/boolean/camunda-boolean-formfield.component.d.ts +7 -7
- package/lib/{camunda → components/camunda}/form/generated/formfield/camunda-formfield-generator.directive.d.ts +13 -13
- package/lib/{camunda → components/camunda}/form/generated/formfield/camunda-formfield.service.d.ts +7 -7
- package/lib/{camunda → components/camunda}/form/generated/formfield/choicefield/camunda-choicefield-formfield.component.d.ts +12 -12
- package/lib/{camunda → components/camunda}/form/generated/formfield/date/camunda-date-formfield.component.d.ts +14 -14
- package/lib/{camunda → components/camunda}/form/generated/formfield/enum/camunda-enum-formfield.component.d.ts +10 -10
- package/lib/{camunda → components/camunda}/form/generated/formfield/formfield.model.d.ts +20 -20
- package/lib/{camunda → components/camunda}/form/generated/formfield/long/camunda-long-formfield.component.d.ts +7 -7
- package/lib/{camunda → components/camunda}/form/generated/formfield/string/camunda-string-formfield.component.d.ts +7 -7
- package/lib/{camunda → components/camunda}/form/generated/formfield/textarea/camunda-textarea-formfield.component.d.ts +7 -7
- package/lib/{camunda → components/camunda}/form/generated/formfield/validation/camunda-formfield-validation.component.d.ts +10 -10
- package/lib/{camunda → components/camunda}/form/generated/formfield/validation/date.validators.d.ts +3 -3
- package/lib/{card → components/card}/card.component.d.ts +16 -16
- package/lib/{card → components/card}/card.module.d.ts +2 -2
- package/lib/{components.module.d.ts → components/components.module.d.ts} +2 -2
- package/lib/{data-list → components/data-list}/data-list.component.d.ts +7 -7
- package/lib/{data-list → components/data-list}/data-list.module.d.ts +2 -2
- package/lib/{dropzone → components/dropzone}/dropzone.component.d.ts +38 -38
- package/lib/{dropzone → components/dropzone}/dropzone.module.d.ts +2 -2
- package/lib/{field-auto-focus → components/field-auto-focus}/field-auto-focus.directive.d.ts +6 -6
- package/lib/{field-auto-focus → components/field-auto-focus}/field-auto-focus.module.d.ts +2 -2
- package/lib/{file-size → components/file-size}/file-size.module.d.ts +2 -2
- package/lib/{file-size → components/file-size}/file-size.pipe.d.ts +5 -5
- package/lib/{filter-sidebar → components/filter-sidebar}/filter-sidebar.component.d.ts +8 -8
- package/lib/{filter-sidebar → components/filter-sidebar}/filter-sidebar.module.d.ts +2 -2
- package/lib/{form-io → components/form-io}/form-io-builder.component.d.ts +8 -8
- package/lib/{form-io → components/form-io}/form-io-uploader/form-io-uploader-edit-form.d.ts +61 -61
- package/lib/{form-io → components/form-io}/form-io-uploader/form-io-uploader.component.d.ts +29 -29
- package/lib/{form-io → components/form-io}/form-io-uploader/form-io-uploader.formio.d.ts +3 -3
- package/lib/{form-io → components/form-io}/form-io.component.d.ts +47 -47
- package/lib/{form-io → components/form-io}/form-io.module.d.ts +2 -2
- package/lib/{form-io → components/form-io}/formio-config.d.ts +6 -6
- package/lib/{form-io → components/form-io}/services/form-io-dom.service.d.ts +6 -6
- package/lib/{form-io → components/form-io}/services/form-io-state.service.d.ts +10 -10
- package/lib/{left-sidebar → components/left-sidebar}/left-sidebar.component.d.ts +34 -34
- package/lib/{left-sidebar → components/left-sidebar}/left-sidebar.module.d.ts +2 -2
- package/lib/{list → components/list}/ListFilterPipe.directive.d.ts +4 -4
- package/lib/{list → components/list}/list.component.d.ts +43 -43
- package/lib/{list → components/list}/list.module.d.ts +2 -2
- package/lib/{menu → components/menu}/menu-item-text.component.d.ts +4 -4
- package/lib/{menu → components/menu}/menu-routing.module.d.ts +2 -2
- package/lib/{menu → components/menu}/menu.component.d.ts +18 -18
- package/lib/{menu → components/menu}/menu.init.d.ts +3 -3
- package/lib/{menu → components/menu}/menu.module.d.ts +2 -2
- package/lib/{menu → components/menu}/menu.service.d.ts +23 -23
- package/lib/{menu → components/menu}/submenu-item-text.component.d.ts +4 -4
- package/lib/{modal → components/modal}/modal.component.d.ts +12 -12
- package/lib/{modal → components/modal}/modal.module.d.ts +2 -2
- package/lib/{page-header → components/page-header}/page-header.component.d.ts +5 -5
- package/lib/{page-header → components/page-header}/page-header.module.d.ts +2 -2
- package/lib/{page-title → components/page-title}/page-title.component.d.ts +19 -19
- package/lib/{page-title → components/page-title}/page-title.module.d.ts +2 -2
- package/lib/{progress-bar → components/progress-bar}/progress-bar.component.d.ts +2 -2
- package/lib/{progress-bar → components/progress-bar}/progress-bar.module.d.ts +2 -2
- package/lib/{right-sidebar → components/right-sidebar}/right-sidebar.component.d.ts +35 -34
- package/lib/{right-sidebar → components/right-sidebar}/right-sidebar.module.d.ts +2 -2
- package/lib/{searchable-dropdown → components/searchable-dropdown}/searchable-dropdown.component.d.ts +39 -39
- package/lib/{searchable-dropdown → components/searchable-dropdown}/searchable-dropdown.module.d.ts +2 -2
- package/lib/{searchable-dropdown-select → components/searchable-dropdown-select}/searchable-dropdown-select.component.d.ts +19 -19
- package/lib/{searchable-dropdown-select → components/searchable-dropdown-select}/searchable-dropdown-select.module.d.ts +2 -2
- package/lib/{spinner → components/spinner}/spinner.component.d.ts +10 -10
- package/lib/{spinner → components/spinner}/spinner.module.d.ts +2 -2
- package/lib/{timeline → components/timeline}/timeline.component.d.ts +4 -4
- package/lib/{timeline → components/timeline}/timeline.module.d.ts +2 -2
- package/lib/{topbar → components/topbar}/topbar.component.d.ts +3 -3
- package/lib/{topbar → components/topbar}/topbar.module.d.ts +2 -2
- package/lib/{uploader → components/uploader}/uploader-drag-drop.directive.d.ts +7 -7
- package/lib/{uploader → components/uploader}/uploader.component.d.ts +14 -15
- package/lib/{uploader → components/uploader}/uploader.module.d.ts +2 -2
- package/lib/{version → components/version}/version.service.d.ts +8 -8
- package/lib/{view-content → components/view-content}/type-converters/booleanTypeConverter.d.ts +5 -5
- package/lib/{view-content → components/view-content}/type-converters/dateTypeConverter.d.ts +5 -5
- package/lib/{view-content → components/view-content}/type-converters/enumTypeConverter.d.ts +5 -5
- package/lib/{view-content → components/view-content}/type-converters/relatedFilesTypeConverter.d.ts +5 -5
- package/lib/{view-content → components/view-content}/type-converters/stringReplaceUnderscoreTypeConverter.d.ts +6 -6
- package/lib/{view-content → components/view-content}/type-converters/stringTypeConverter.d.ts +5 -5
- package/lib/{view-content → components/view-content}/type-converters/type-converters.model.d.ts +5 -5
- package/lib/{view-content → components/view-content}/view-content.service.d.ts +8 -8
- package/lib/{webcam → components/webcam}/webcam.component.d.ts +20 -20
- package/lib/{webcam → components/webcam}/webcam.module.d.ts +2 -2
- package/lib/{widget → components/widget}/widget.component.d.ts +28 -28
- package/lib/{widget → components/widget}/widget.module.d.ts +2 -2
- package/lib/models/alert.model.d.ts +21 -0
- package/lib/models/form-io.model.d.ts +27 -0
- package/lib/models/index.d.ts +6 -0
- package/lib/models/pagination.model.d.ts +7 -0
- package/lib/models/searchable-dropdown.model.d.ts +5 -0
- package/lib/models/timeline.model.d.ts +23 -0
- package/lib/models/version.model.d.ts +4 -0
- package/package.json +2 -2
- package/public_api.d.ts +66 -65
- package/valtimo-components.d.ts +26 -26
- package/valtimo-components.metadata.json +1 -1
- package/esm2015/lib/alert/alert.component.js +0 -140
- package/esm2015/lib/alert/alert.module.js +0 -28
- package/esm2015/lib/alert/alert.service.js +0 -81
- package/esm2015/lib/bpmn-js-diagram/bpmn-js-diagram.component.js +0 -160
- package/esm2015/lib/bpmn-js-diagram/bpmn-js-diagram.module.js +0 -28
- package/esm2015/lib/breadcrumb-navigation/breadcrumb-navigation.component.js +0 -93
- package/esm2015/lib/breadcrumb-navigation/breadcrumb-navigation.module.js +0 -30
- package/esm2015/lib/camunda/form/camunda-form.module.js +0 -30
- package/esm2015/lib/camunda/form/custom/camunda-custom-form.component.js +0 -42
- package/esm2015/lib/camunda/form/custom/camunda-custom-form.module.js +0 -28
- package/esm2015/lib/camunda/form/generated/camunda-generated-form.component.js +0 -69
- package/esm2015/lib/camunda/form/generated/camunda-generated-form.module.js +0 -58
- package/esm2015/lib/camunda/form/generated/formfield/camunda-formfield-generator.directive.js +0 -64
- package/esm2015/lib/camunda/form/generated/formfield/camunda-formfield.service.js +0 -66
- package/esm2015/lib/camunda/form/generated/formfield/date/camunda-date-formfield.component.js +0 -66
- package/esm2015/lib/camunda/form/generated/formfield/formfield.model.js +0 -16
- package/esm2015/lib/camunda/form/generated/formfield/validation/date.validators.js +0 -60
- package/esm2015/lib/card/card.module.js +0 -28
- package/esm2015/lib/components.module.js +0 -22
- package/esm2015/lib/dropzone/dropzone.component.js +0 -143
- package/esm2015/lib/dropzone/dropzone.module.js +0 -32
- package/esm2015/lib/field-auto-focus/field-auto-focus.directive.js +0 -35
- package/esm2015/lib/field-auto-focus/field-auto-focus.module.js +0 -28
- package/esm2015/lib/file-size/file-size.module.js +0 -28
- package/esm2015/lib/file-size/file-size.pipe.js +0 -38
- package/esm2015/lib/filter-sidebar/filter-sidebar.component.js +0 -46
- package/esm2015/lib/filter-sidebar/filter-sidebar.module.js +0 -28
- package/esm2015/lib/form-io/form-io-builder.component.js +0 -38
- package/esm2015/lib/form-io/form-io-uploader/form-io-uploader-edit-form.js +0 -90
- package/esm2015/lib/form-io/form-io-uploader/form-io-uploader.component.js +0 -74
- package/esm2015/lib/form-io/form-io-uploader/form-io-uploader.formio.js +0 -26
- package/esm2015/lib/form-io/form-io.component.js +0 -163
- package/esm2015/lib/form-io/form-io.module.js +0 -56
- package/esm2015/lib/form-io/formio-config.js +0 -22
- package/esm2015/lib/form-io/services/form-io-dom.service.js +0 -23
- package/esm2015/lib/form-io/services/form-io-state.service.js +0 -24
- package/esm2015/lib/left-sidebar/left-sidebar.component.js +0 -114
- package/esm2015/lib/left-sidebar/left-sidebar.module.js +0 -30
- package/esm2015/lib/list/ListFilterPipe.directive.js +0 -31
- package/esm2015/lib/list/list.component.js +0 -179
- package/esm2015/lib/list/list.module.js +0 -33
- package/esm2015/lib/menu/menu-item-text.component.js +0 -38
- package/esm2015/lib/menu/menu-routing.module.js +0 -27
- package/esm2015/lib/menu/menu.component.js +0 -65
- package/esm2015/lib/menu/menu.init.js +0 -34
- package/esm2015/lib/menu/menu.module.js +0 -34
- package/esm2015/lib/menu/menu.service.js +0 -126
- package/esm2015/lib/menu/submenu-item-text.component.js +0 -33
- package/esm2015/lib/page-header/page-header.module.js +0 -30
- package/esm2015/lib/page-title/page-title.component.js +0 -76
- package/esm2015/lib/page-title/page-title.module.js +0 -29
- package/esm2015/lib/progress-bar/progress-bar.component.js +0 -26
- package/esm2015/lib/progress-bar/progress-bar.module.js +0 -28
- package/esm2015/lib/right-sidebar/right-sidebar.module.js +0 -49
- package/esm2015/lib/searchable-dropdown/searchable-dropdown.component.js +0 -187
- package/esm2015/lib/searchable-dropdown/searchable-dropdown.module.js +0 -29
- package/esm2015/lib/searchable-dropdown-select/searchable-dropdown-select.component.js +0 -52
- package/esm2015/lib/searchable-dropdown-select/searchable-dropdown-select.module.js +0 -30
- package/esm2015/lib/spinner/spinner.module.js +0 -30
- package/esm2015/lib/timeline/timeline.module.js +0 -29
- package/esm2015/lib/topbar/topbar.module.js +0 -29
- package/esm2015/lib/uploader/uploader-drag-drop.directive.js +0 -49
- package/esm2015/lib/uploader/uploader.component.js +0 -69
- package/esm2015/lib/uploader/uploader.module.js +0 -30
- package/esm2015/lib/version/version.service.js +0 -38
- package/esm2015/lib/view-content/type-converters/booleanTypeConverter.js +0 -29
- package/esm2015/lib/view-content/type-converters/dateTypeConverter.js +0 -30
- package/esm2015/lib/view-content/type-converters/enumTypeConverter.js +0 -24
- package/esm2015/lib/view-content/type-converters/relatedFilesTypeConverter.js +0 -24
- package/esm2015/lib/view-content/type-converters/stringReplaceUnderscoreTypeConverter.js +0 -27
- package/esm2015/lib/view-content/type-converters/stringTypeConverter.js +0 -24
- package/esm2015/lib/view-content/type-converters/type-converters.model.js +0 -37
- package/esm2015/lib/view-content/view-content.service.js +0 -51
- package/esm2015/lib/webcam/webcam.component.js +0 -102
- package/esm2015/lib/webcam/webcam.module.js +0 -29
- package/esm2015/lib/widget/widget.component.js +0 -80
- package/esm2015/lib/widget/widget.module.js +0 -28
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2015-2020 Ritense BV, the Netherlands.
|
|
3
|
-
*
|
|
4
|
-
* Licensed under EUPL, Version 1.2 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" basis,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
import { Component } from '@angular/core';
|
|
17
|
-
import { AlertType } from '@valtimo/contract';
|
|
18
|
-
import { AlertService } from './alert.service';
|
|
19
|
-
export class AlertComponent {
|
|
20
|
-
constructor(alertService) {
|
|
21
|
-
this.alertService = alertService;
|
|
22
|
-
this.alerts = [];
|
|
23
|
-
this.autoCloseInMS = 5000;
|
|
24
|
-
}
|
|
25
|
-
ngOnInit() { }
|
|
26
|
-
ngAfterContentInit() {
|
|
27
|
-
this.subscription = this.alertService.onAlert().subscribe(alert => {
|
|
28
|
-
if (!alert.message) {
|
|
29
|
-
// clear alerts when an empty alert is received
|
|
30
|
-
this.alerts = [];
|
|
31
|
-
return;
|
|
32
|
-
}
|
|
33
|
-
// set empty array when an empty alert confirmations is received
|
|
34
|
-
if (!alert.confirmations) {
|
|
35
|
-
alert.confirmations = [];
|
|
36
|
-
}
|
|
37
|
-
// add alert to array if not exist
|
|
38
|
-
const alertExist = this.alerts.filter(x => x.message === alert.message);
|
|
39
|
-
if (alertExist.length === 0) {
|
|
40
|
-
this.alerts.push(alert);
|
|
41
|
-
}
|
|
42
|
-
if (this.inModal(alert)) {
|
|
43
|
-
setTimeout(() => {
|
|
44
|
-
this.openModal();
|
|
45
|
-
}, 300);
|
|
46
|
-
}
|
|
47
|
-
// auto close except alert confirmations not empty
|
|
48
|
-
if (this.autoCloseInMS > 0 && alert.confirmations.length === 0) {
|
|
49
|
-
setTimeout(() => {
|
|
50
|
-
this.removeAlert(alert);
|
|
51
|
-
}, this.autoCloseInMS);
|
|
52
|
-
}
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
closeModal() {
|
|
56
|
-
$('#modalNotification').modal('hide');
|
|
57
|
-
}
|
|
58
|
-
openModal() {
|
|
59
|
-
$('#modalNotification').modal('show');
|
|
60
|
-
}
|
|
61
|
-
alertConfirm(alert, confirm) {
|
|
62
|
-
alert.confirm = confirm;
|
|
63
|
-
this.alertService.emitAlertConfirmEvent(alert);
|
|
64
|
-
this.removeAlert(alert);
|
|
65
|
-
}
|
|
66
|
-
ngOnDestroy() {
|
|
67
|
-
// unsubscribe to avoid memory leaks
|
|
68
|
-
this.subscription.unsubscribe();
|
|
69
|
-
}
|
|
70
|
-
removeAlert(alert) {
|
|
71
|
-
if (this.inModal(alert)) {
|
|
72
|
-
this.closeModal();
|
|
73
|
-
}
|
|
74
|
-
// remove specified alert from array
|
|
75
|
-
this.alerts = this.alerts.filter(x => x.message !== alert.message);
|
|
76
|
-
}
|
|
77
|
-
inModal(alert) {
|
|
78
|
-
if (!alert) {
|
|
79
|
-
return;
|
|
80
|
-
}
|
|
81
|
-
// return true based on AlertType.ModalNotification
|
|
82
|
-
switch (alert.type) {
|
|
83
|
-
case AlertType.ModalNotification:
|
|
84
|
-
return true;
|
|
85
|
-
default:
|
|
86
|
-
return false;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
cssClass(alert) {
|
|
90
|
-
if (!alert) {
|
|
91
|
-
return;
|
|
92
|
-
}
|
|
93
|
-
// return css class based on alert type
|
|
94
|
-
switch (alert.type) {
|
|
95
|
-
case AlertType.Success:
|
|
96
|
-
return 'alert alert-success';
|
|
97
|
-
case AlertType.Error:
|
|
98
|
-
return 'alert alert-danger';
|
|
99
|
-
case AlertType.Info:
|
|
100
|
-
return 'alert alert-info';
|
|
101
|
-
case AlertType.Warning:
|
|
102
|
-
return 'alert alert-warning';
|
|
103
|
-
case AlertType.Notification:
|
|
104
|
-
return 'alert alert-light';
|
|
105
|
-
case AlertType.ModalNotification:
|
|
106
|
-
return 'alert alert-light';
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
cssIconClass(alert) {
|
|
110
|
-
if (!alert) {
|
|
111
|
-
return;
|
|
112
|
-
}
|
|
113
|
-
// return css class based on alert type
|
|
114
|
-
switch (alert.type) {
|
|
115
|
-
case AlertType.Success:
|
|
116
|
-
return 'mdi mdi-check';
|
|
117
|
-
case AlertType.Error:
|
|
118
|
-
return 'mdi mdi-close-circle-o';
|
|
119
|
-
case AlertType.Info:
|
|
120
|
-
return 'mdi mdi-info-outline';
|
|
121
|
-
case AlertType.Warning:
|
|
122
|
-
return 'mdi mdi-alert-triangle';
|
|
123
|
-
case AlertType.Notification:
|
|
124
|
-
return 'mdi mdi-notifications';
|
|
125
|
-
case AlertType.ModalNotification:
|
|
126
|
-
return 'mdi mdi-notifications';
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
AlertComponent.decorators = [
|
|
131
|
-
{ type: Component, args: [{
|
|
132
|
-
selector: 'valtimo-alert',
|
|
133
|
-
template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div *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",
|
|
134
|
-
styles: [".alert-block{display:flex;flex-direction:row;justify-content:space-between}.alert-block .message{width:100%}.alert-block .icon{align-items:center;display:flex}.alert .message{font-size:1.1rem!important;line-height:1.5rem!important;padding:2rem 5rem 2rem 2rem!important}.alert .close{color:#fff!important;opacity:1!important;padding:2rem 2rem 0 0!important;right:0!important}.alert .icon{padding-left:2rem!important}.alert-warning{color:#404040!important}.alert-light .close,.alert-warning .close{color:#404040!important;opacity:1!important}"]
|
|
135
|
-
},] }
|
|
136
|
-
];
|
|
137
|
-
AlertComponent.ctorParameters = () => [
|
|
138
|
-
{ type: AlertService }
|
|
139
|
-
];
|
|
140
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkQ6L1dvcmtzcGFjZS92YWx0aW1vL3ZhbHRpbW8tZnJvbnRlbmQtbGlicmFyaWVzL3Byb2plY3RzL3ZhbHRpbW8vY29tcG9uZW50cy9zcmMvIiwic291cmNlcyI6WyJsaWIvYWxlcnQvYWxlcnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFtQixTQUFTLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBRTdFLE9BQU8sRUFBUSxTQUFTLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFTN0MsTUFBTSxPQUFPLGNBQWM7SUFLekIsWUFBb0IsWUFBMEI7UUFBMUIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFKOUMsV0FBTSxHQUFZLEVBQUUsQ0FBQztRQUtuQixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztJQUM1QixDQUFDO0lBRUQsUUFBUSxLQUFJLENBQUM7SUFFYixrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNoRSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRTtnQkFDbEIsK0NBQStDO2dCQUMvQyxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztnQkFDakIsT0FBTzthQUNSO1lBRUQsZ0VBQWdFO1lBQ2hFLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFO2dCQUN4QixLQUFLLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQzthQUMxQjtZQUVELGtDQUFrQztZQUNsQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxP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Q3ZCLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDVixPQUFPO1NBQ1I7UUFFRCx1Q0FBdUM7UUFDdkMsUUFBUSxLQUFLLENBQUMsSUFBSSxFQUFFO1lBQ2xCLEtBQUssU0FBUyxDQUFDLE9BQU87Z0JBQ3BCLE9BQU8sZUFBZSxDQUFDO1lBQ3pCLEtBQUssU0FBUyxDQUFDLEtBQUs7Z0JBQ2xCLE9BQU8sd0JBQXdCLENBQUM7WUFDbEMsS0FBSyxTQUFTLENBQUMsSUFBSTtnQkFDakIsT0FBTyxzQkFBc0IsQ0FBQztZQUNoQyxLQUFLLFNBQVMsQ0FBQyxPQUFPO2dCQUNwQixPQUFPLHdCQUF3QixDQUFDO1lBQ2xDLEtBQUssU0FBUyxDQUFDLFlBQVk7Z0JBQ3pCLE9BQU8sdUJBQXVCLENBQUM7WUFDakMsS0FBSyxTQUFTLENBQUMsaUJBQWlCO2dCQUM5QixPQUFPLHVCQUF1QixDQUFDO1NBQ2xDO0lBQ0gsQ0FBQzs7O1lBcklGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsZUFBZTtnQkFDekIsZ3BGQUFxQzs7YUFFdEM7OztZQVJPLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyMCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge0FmdGVyQ29udGVudEluaXQsIENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtBbGVydCwgQWxlcnRUeXBlfSBmcm9tICdAdmFsdGltby9jb250cmFjdCc7XG5pbXBvcnQge0FsZXJ0U2VydmljZX0gZnJvbSAnLi9hbGVydC5zZXJ2aWNlJztcblxuZGVjbGFyZSB2YXIgJDtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsdGltby1hbGVydCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9hbGVydC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FsZXJ0LmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQWxlcnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSB7XG4gIGFsZXJ0czogQWxlcnRbXSA9IFtdO1xuICBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgYXV0b0Nsb3NlSW5NUzogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UpIHtcbiAgICB0aGlzLmF1dG9DbG9zZUluTVMgPSA1MDAwO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7fVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMuYWxlcnRTZXJ2aWNlLm9uQWxlcnQoKS5zdWJzY3JpYmUoYWxlcnQgPT4ge1xuICAgICAgaWYgKCFhbGVydC5tZXNzYWdlKSB7XG4gICAgICAgIC8vIGNsZWFyIGFsZXJ0cyB3aGVuIGFuIGVtcHR5IGFsZXJ0IGlzIHJlY2VpdmVkXG4gICAgICAgIHRoaXMuYWxlcnRzID0gW107XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgLy8gc2V0IGVtcHR5IGFycmF5IHdoZW4gYW4gZW1wdHkgYWxlcnQgY29uZmlybWF0aW9ucyBpcyByZWNlaXZlZFxuICAgICAgaWYgKCFhbGVydC5jb25maXJtYXRpb25zKSB7XG4gICAgICAgIGFsZXJ0LmNvbmZpcm1hdGlvbnMgPSBbXTtcbiAgICAgIH1cblxuICAgICAgLy8gYWRkIGFsZXJ0IHRvIGFycmF5IGlmIG5vdCBleGlzdFxuICAgICAgY29uc3QgYWxlcnRFeGlzdCA9IHRoaXMuYWxlcnRzLmZpbHRlcih4ID0+IHgubWVzc2FnZSA9PT0gYWxlcnQubWVzc2FnZSk7XG4gICAgICBpZiAoYWxlcnRFeGlzdC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdGhpcy5hbGVydHMucHVzaChhbGVydCk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmluTW9kYWwoYWxlcnQpKSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMub3Blbk1vZGFsKCk7XG4gICAgICAgIH0sIDMwMCk7XG4gICAgICB9XG5cbiAgICAgIC8vIGF1dG8gY2xvc2UgZXhjZXB0IGFsZXJ0IGNvbmZpcm1hdGlvbnMgbm90IGVtcHR5XG4gICAgICBpZiAodGhpcy5hdXRvQ2xvc2VJbk1TID4gMCAmJiBhbGVydC5jb25maXJtYXRpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICB0aGlzLnJlbW92ZUFsZXJ0KGFsZXJ0KTtcbiAgICAgICAgfSwgdGhpcy5hdXRvQ2xvc2VJbk1TKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGNsb3NlTW9kYWwoKSB7XG4gICAgJCgnI21vZGFsTm90aWZpY2F0aW9uJykubW9kYWwoJ2hpZGUnKTtcbiAgfVxuXG4gIG9wZW5Nb2RhbCgpIHtcbiAgICAkKCcjbW9kYWxOb3RpZmljYXRpb24nKS5tb2RhbCgnc2hvdycpO1xuICB9XG5cbiAgYWxlcnRDb25maXJtKGFsZXJ0OiBBbGVydCwgY29uZmlybTogYW55KSB7XG4gICAgYWxlcnQuY29uZmlybSA9IGNvbmZpcm07XG4gICAgdGhpcy5hbGVydFNlcnZpY2UuZW1pdEFsZXJ0Q29uZmlybUV2ZW50KGFsZXJ0KTtcbiAgICB0aGlzLnJlbW92ZUFsZXJ0KGFsZXJ0KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIC8vIHVuc3Vic2NyaWJlIHRvIGF2b2lkIG1lbW9yeSBsZWFrc1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICByZW1vdmVBbGVydChhbGVydDogQWxlcnQpIHtcbiAgICBpZiAodGhpcy5pbk1vZGFsKGFsZXJ0KSkge1xuICAgICAgdGhpcy5jbG9zZU1vZGFsKCk7XG4gICAgfVxuICAgIC8vIHJlbW92ZSBzcGVjaWZpZWQgYWxlcnQgZnJvbSBhcnJheVxuICAgIHRoaXMuYWxlcnRzID0gdGhpcy5hbGVydHMuZmlsdGVyKHggPT4geC5tZXNzYWdlICE9PSBhbGVydC5tZXNzYWdlKTtcbiAgfVxuXG4gIGluTW9kYWwoYWxlcnQ6IEFsZXJ0KSB7XG4gICAgaWYgKCFhbGVydCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIHJldHVybiB0cnVlIGJhc2VkIG9uIEFsZXJ0VHlwZS5Nb2RhbE5vdGlmaWNhdGlvblxuICAgIHN3aXRjaCAoYWxlcnQudHlwZSkge1xuICAgICAgY2FzZSBBbGVydFR5cGUuTW9kYWxOb3RpZmljYXRpb246XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGNzc0NsYXNzKGFsZXJ0OiBBbGVydCkge1xuICAgIGlmICghYWxlcnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyByZXR1cm4gY3NzIGNsYXNzIGJhc2VkIG9uIGFsZXJ0IHR5cGVcbiAgICBzd2l0Y2ggKGFsZXJ0LnR5cGUpIHtcbiAgICAgIGNhc2UgQWxlcnRUeXBlLlN1Y2Nlc3M6XG4gICAgICAgIHJldHVybiAnYWxlcnQgYWxlcnQtc3VjY2Vzcyc7XG4gICAgICBjYXNlIEFsZXJ0VHlwZS5FcnJvcjpcbiAgICAgICAgcmV0dXJuICdhbGVydCBhbGVydC1kYW5nZXInO1xuICAgICAgY2FzZSBBbGVydFR5cGUuSW5mbzpcbiAgICAgICAgcmV0dXJuICdhbGVydCBhbGVydC1pbmZvJztcbiAgICAgIGNhc2UgQWxlcnRUeXBlLldhcm5pbmc6XG4gICAgICAgIHJldHVybiAnYWxlcnQgYWxlcnQtd2FybmluZyc7XG4gICAgICBjYXNlIEFsZXJ0VHlwZS5Ob3RpZmljYXRpb246XG4gICAgICAgIHJldHVybiAnYWxlcnQgYWxlcnQtbGlnaHQnO1xuICAgICAgY2FzZSBBbGVydFR5cGUuTW9kYWxOb3RpZmljYXRpb246XG4gICAgICAgIHJldHVybiAnYWxlcnQgYWxlcnQtbGlnaHQnO1xuICAgIH1cbiAgfVxuXG4gIGNzc0ljb25DbGFzcyhhbGVydDogQWxlcnQpIHtcbiAgICBpZiAoIWFsZXJ0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gcmV0dXJuIGNzcyBjbGFzcyBiYXNlZCBvbiBhbGVydCB0eXBlXG4gICAgc3dpdGNoIChhbGVydC50eXBlKSB7XG4gICAgICBjYXNlIEFsZXJ0VHlwZS5TdWNjZXNzOlxuICAgICAgICByZXR1cm4gJ21kaSBtZGktY2hlY2snO1xuICAgICAgY2FzZSBBbGVydFR5cGUuRXJyb3I6XG4gICAgICAgIHJldHVybiAnbWRpIG1kaS1jbG9zZS1jaXJjbGUtbyc7XG4gICAgICBjYXNlIEFsZXJ0VHlwZS5JbmZvOlxuICAgICAgICByZXR1cm4gJ21kaSBtZGktaW5mby1vdXRsaW5lJztcbiAgICAgIGNhc2UgQWxlcnRUeXBlLldhcm5pbmc6XG4gICAgICAgIHJldHVybiAnbWRpIG1kaS1hbGVydC10cmlhbmdsZSc7XG4gICAgICBjYXNlIEFsZXJ0VHlwZS5Ob3RpZmljYXRpb246XG4gICAgICAgIHJldHVybiAnbWRpIG1kaS1ub3RpZmljYXRpb25zJztcbiAgICAgIGNhc2UgQWxlcnRUeXBlLk1vZGFsTm90aWZpY2F0aW9uOlxuICAgICAgICByZXR1cm4gJ21kaSBtZGktbm90aWZpY2F0aW9ucyc7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2015-2020 Ritense BV, the Netherlands.
|
|
3
|
-
*
|
|
4
|
-
* Licensed under EUPL, Version 1.2 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" basis,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
import { NgModule } from '@angular/core';
|
|
17
|
-
import { CommonModule } from '@angular/common';
|
|
18
|
-
import { AlertComponent } from './alert.component';
|
|
19
|
-
export class AlertModule {
|
|
20
|
-
}
|
|
21
|
-
AlertModule.decorators = [
|
|
22
|
-
{ type: NgModule, args: [{
|
|
23
|
-
imports: [CommonModule],
|
|
24
|
-
declarations: [AlertComponent],
|
|
25
|
-
exports: [AlertComponent],
|
|
26
|
-
},] }
|
|
27
|
-
];
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IkQ6L1dvcmtzcGFjZS92YWx0aW1vL3ZhbHRpbW8tZnJvbnRlbmQtbGlicmFyaWVzL3Byb2plY3RzL3ZhbHRpbW8vY29tcG9uZW50cy9zcmMvIiwic291cmNlcyI6WyJsaWIvYWxlcnQvYWxlcnQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBT2pELE1BQU0sT0FBTyxXQUFXOzs7WUFMdkIsUUFBUSxTQUFDO2dCQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztnQkFDdkIsWUFBWSxFQUFFLENBQUMsY0FBYyxDQUFDO2dCQUM5QixPQUFPLEVBQUUsQ0FBQyxjQUFjLENBQUM7YUFDMUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyMCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtBbGVydENvbXBvbmVudH0gZnJvbSAnLi9hbGVydC5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgZGVjbGFyYXRpb25zOiBbQWxlcnRDb21wb25lbnRdLFxuICBleHBvcnRzOiBbQWxlcnRDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBBbGVydE1vZHVsZSB7fVxuIl19
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2015-2020 Ritense BV, the Netherlands.
|
|
3
|
-
*
|
|
4
|
-
* Licensed under EUPL, Version 1.2 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" basis,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
import { EventEmitter, Injectable } from '@angular/core';
|
|
17
|
-
import { NavigationStart, Router } from '@angular/router';
|
|
18
|
-
import { Subject } from 'rxjs';
|
|
19
|
-
import { Alert, AlertType } from '@valtimo/contract';
|
|
20
|
-
import * as i0 from "@angular/core";
|
|
21
|
-
import * as i1 from "@angular/router";
|
|
22
|
-
export class AlertService {
|
|
23
|
-
constructor(router) {
|
|
24
|
-
this.router = router;
|
|
25
|
-
this.confirmed = new EventEmitter();
|
|
26
|
-
this.subject = new Subject();
|
|
27
|
-
// clear alert messages on route change unless 'keepAfterRouteChange' flag is true
|
|
28
|
-
this.router.events.subscribe(event => {
|
|
29
|
-
if (event instanceof NavigationStart) {
|
|
30
|
-
// clear alert messages
|
|
31
|
-
this.clear();
|
|
32
|
-
}
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
// enable subscribing to alerts observable
|
|
36
|
-
onAlert() {
|
|
37
|
-
return this.subject.asObservable();
|
|
38
|
-
}
|
|
39
|
-
// convenience methods
|
|
40
|
-
success(message, confirmations, iconClass) {
|
|
41
|
-
this.alert(new Alert({ message, type: AlertType.Success, confirmations, iconClass }));
|
|
42
|
-
}
|
|
43
|
-
error(message, confirmations, iconClass) {
|
|
44
|
-
this.alert(new Alert({ message, type: AlertType.Error, confirmations, iconClass }));
|
|
45
|
-
}
|
|
46
|
-
info(message, confirmations, iconClass) {
|
|
47
|
-
this.alert(new Alert({ message, type: AlertType.Info, confirmations, iconClass }));
|
|
48
|
-
}
|
|
49
|
-
warning(message, confirmations, iconClass) {
|
|
50
|
-
this.alert(new Alert({ message, type: AlertType.Warning, confirmations, iconClass }));
|
|
51
|
-
}
|
|
52
|
-
notification(message, confirmations, iconClass) {
|
|
53
|
-
this.alert(new Alert({ message, type: AlertType.Notification, confirmations, iconClass }));
|
|
54
|
-
}
|
|
55
|
-
modalNotification(message, confirmations, iconClass) {
|
|
56
|
-
this.alert(new Alert({ message, type: AlertType.ModalNotification, confirmations, iconClass }));
|
|
57
|
-
}
|
|
58
|
-
// main alert method
|
|
59
|
-
alert(alert) {
|
|
60
|
-
this.subject.next(alert);
|
|
61
|
-
}
|
|
62
|
-
// clear alerts
|
|
63
|
-
clear() {
|
|
64
|
-
this.subject.next(new Alert({}));
|
|
65
|
-
}
|
|
66
|
-
// emit confirm
|
|
67
|
-
emitAlertConfirmEvent(alert) {
|
|
68
|
-
this.confirmed.emit(alert);
|
|
69
|
-
}
|
|
70
|
-
getAlertConfirmChangeEmitter() {
|
|
71
|
-
return this.confirmed;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
AlertService.ɵprov = i0.ɵɵdefineInjectable({ factory: function AlertService_Factory() { return new AlertService(i0.ɵɵinject(i1.Router)); }, token: AlertService, providedIn: "root" });
|
|
75
|
-
AlertService.decorators = [
|
|
76
|
-
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
77
|
-
];
|
|
78
|
-
AlertService.ctorParameters = () => [
|
|
79
|
-
{ type: Router }
|
|
80
|
-
];
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJEOi9Xb3Jrc3BhY2UvdmFsdGltby92YWx0aW1vLWZyb250ZW5kLWxpYnJhcmllcy9wcm9qZWN0cy92YWx0aW1vL2NvbXBvbmVudHMvc3JjLyIsInNvdXJjZXMiOlsibGliL2FsZXJ0L2FsZXJ0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBQUMsWUFBWSxFQUFFLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2RCxPQUFPLEVBQUMsZUFBZSxFQUFFLE1BQU0sRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3hELE9BQU8sRUFBYSxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDekMsT0FBTyxFQUFDLEtBQUssRUFBRSxTQUFTLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQzs7O0FBR25ELE1BQU0sT0FBTyxZQUFZO0lBSXZCLFlBQW9CLE1BQWM7UUFBZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBSDNCLGNBQVMsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNqRCxZQUFPLEdBQUcsSUFBSSxPQUFPLEVBQVMsQ0FBQztRQUdyQyxrRkFBa0Y7UUFDbEYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ25DLElBQUksS0FBSyxZQUFZLGVBQWUsRUFBRTtnQkFDcEMsdUJBQXVCO2dCQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7YUFDZDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELDBDQUEwQztJQUMxQyxPQUFPO1FBQ0wsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxzQkFBc0I7SUFDdEIsT0FBTyxDQUFDLE9BQWUsRUFBRSxhQUFtQixFQUFFLFNBQWtCO1FBQzlELElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsRUFBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQyxPQUFPLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBQyxDQUFDLENBQUMsQ0FBQztJQUN0RixDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQWUsRUFBRSxhQUFtQixFQUFFLFNBQWtCO1FBQzVELElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsRUFBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQyxLQUFLLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBQyxDQUFDLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBRUQsSUFBSSxDQUFDLE9BQWUsRUFBRSxhQUFtQixFQUFFLFNBQWtCO1FBQzNELElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsRUFBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBQyxDQUFDLENBQUMsQ0FBQztJQUNuRixDQUFDO0lBRUQsT0FBTyxDQUFDLE9BQWUsRUFBRSxhQUFtQixFQUFFLFNBQWtCO1FBQzlELElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsRUFBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQyxPQUFPLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBQyxDQUFDLENBQUMsQ0FBQztJQUN0RixDQUFDO0lBRUQsWUFBWSxDQUFDLE9BQWUsRUFBRSxhQUFtQixFQUFFLFNBQWtCO1FBQ25FLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsRUFBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQyxZQUFZLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBQyxDQUFDLENBQUMsQ0FBQztJQUMzRixDQUFDO0lBRUQsaUJBQWlCLENBQUMsT0FBZSxFQUFFLGFBQW1CLEVBQUUsU0FBa0I7UUFDeEUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxFQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEcsQ0FBQztJQUVELG9CQUFvQjtJQUNwQixLQUFLLENBQUMsS0FBWTtRQUNoQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsZUFBZTtJQUNmLEtBQUs7UUFDSCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxlQUFlO0lBQ2YscUJBQXFCLENBQUMsS0FBWTtRQUNoQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsNEJBQTRCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDOzs7O1lBOURGLFVBQVUsU0FBQyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUM7OztZQUpQLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyMCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge0V2ZW50RW1pdHRlciwgSW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05hdmlnYXRpb25TdGFydCwgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7QWxlcnQsIEFsZXJ0VHlwZX0gZnJvbSAnQHZhbHRpbW8vY29udHJhY3QnO1xuXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3Jvb3QnfSlcbmV4cG9ydCBjbGFzcyBBbGVydFNlcnZpY2Uge1xuICBwdWJsaWMgY29uZmlybWVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgcHJpdmF0ZSBzdWJqZWN0ID0gbmV3IFN1YmplY3Q8QWxlcnQ+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikge1xuICAgIC8vIGNsZWFyIGFsZXJ0IG1lc3NhZ2VzIG9uIHJvdXRlIGNoYW5nZSB1bmxlc3MgJ2tlZXBBZnRlclJvdXRlQ2hhbmdlJyBmbGFnIGlzIHRydWVcbiAgICB0aGlzLnJvdXRlci5ldmVudHMuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25TdGFydCkge1xuICAgICAgICAvLyBjbGVhciBhbGVydCBtZXNzYWdlc1xuICAgICAgICB0aGlzLmNsZWFyKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvLyBlbmFibGUgc3Vic2NyaWJpbmcgdG8gYWxlcnRzIG9ic2VydmFibGVcbiAgb25BbGVydCgpOiBPYnNlcnZhYmxlPEFsZXJ0PiB7XG4gICAgcmV0dXJuIHRoaXMuc3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIC8vIGNvbnZlbmllbmNlIG1ldGhvZHNcbiAgc3VjY2VzcyhtZXNzYWdlOiBzdHJpbmcsIGNvbmZpcm1hdGlvbnM/OiBhbnksIGljb25DbGFzcz86IHN0cmluZykge1xuICAgIHRoaXMuYWxlcnQobmV3IEFsZXJ0KHttZXNzYWdlLCB0eXBlOiBBbGVydFR5cGUuU3VjY2VzcywgY29uZmlybWF0aW9ucywgaWNvbkNsYXNzfSkpO1xuICB9XG5cbiAgZXJyb3IobWVzc2FnZTogc3RyaW5nLCBjb25maXJtYXRpb25zPzogYW55LCBpY29uQ2xhc3M/OiBzdHJpbmcpIHtcbiAgICB0aGlzLmFsZXJ0KG5ldyBBbGVydCh7bWVzc2FnZSwgdHlwZTogQWxlcnRUeXBlLkVycm9yLCBjb25maXJtYXRpb25zLCBpY29uQ2xhc3N9KSk7XG4gIH1cblxuICBpbmZvKG1lc3NhZ2U6IHN0cmluZywgY29uZmlybWF0aW9ucz86IGFueSwgaWNvbkNsYXNzPzogc3RyaW5nKSB7XG4gICAgdGhpcy5hbGVydChuZXcgQWxlcnQoe21lc3NhZ2UsIHR5cGU6IEFsZXJ0VHlwZS5JbmZvLCBjb25maXJtYXRpb25zLCBpY29uQ2xhc3N9KSk7XG4gIH1cblxuICB3YXJuaW5nKG1lc3NhZ2U6IHN0cmluZywgY29uZmlybWF0aW9ucz86IGFueSwgaWNvbkNsYXNzPzogc3RyaW5nKSB7XG4gICAgdGhpcy5hbGVydChuZXcgQWxlcnQoe21lc3NhZ2UsIHR5cGU6IEFsZXJ0VHlwZS5XYXJuaW5nLCBjb25maXJtYXRpb25zLCBpY29uQ2xhc3N9KSk7XG4gIH1cblxuICBub3RpZmljYXRpb24obWVzc2FnZTogc3RyaW5nLCBjb25maXJtYXRpb25zPzogYW55LCBpY29uQ2xhc3M/OiBzdHJpbmcpIHtcbiAgICB0aGlzLmFsZXJ0KG5ldyBBbGVydCh7bWVzc2FnZSwgdHlwZTogQWxlcnRUeXBlLk5vdGlmaWNhdGlvbiwgY29uZmlybWF0aW9ucywgaWNvbkNsYXNzfSkpO1xuICB9XG5cbiAgbW9kYWxOb3RpZmljYXRpb24obWVzc2FnZTogc3RyaW5nLCBjb25maXJtYXRpb25zPzogYW55LCBpY29uQ2xhc3M/OiBzdHJpbmcpIHtcbiAgICB0aGlzLmFsZXJ0KG5ldyBBbGVydCh7bWVzc2FnZSwgdHlwZTogQWxlcnRUeXBlLk1vZGFsTm90aWZpY2F0aW9uLCBjb25maXJtYXRpb25zLCBpY29uQ2xhc3N9KSk7XG4gIH1cblxuICAvLyBtYWluIGFsZXJ0IG1ldGhvZFxuICBhbGVydChhbGVydDogQWxlcnQpIHtcbiAgICB0aGlzLnN1YmplY3QubmV4dChhbGVydCk7XG4gIH1cblxuICAvLyBjbGVhciBhbGVydHNcbiAgY2xlYXIoKSB7XG4gICAgdGhpcy5zdWJqZWN0Lm5leHQobmV3IEFsZXJ0KHt9KSk7XG4gIH1cblxuICAvLyBlbWl0IGNvbmZpcm1cbiAgZW1pdEFsZXJ0Q29uZmlybUV2ZW50KGFsZXJ0OiBBbGVydCkge1xuICAgIHRoaXMuY29uZmlybWVkLmVtaXQoYWxlcnQpO1xuICB9XG5cbiAgZ2V0QWxlcnRDb25maXJtQ2hhbmdlRW1pdHRlcigpIHtcbiAgICByZXR1cm4gdGhpcy5jb25maXJtZWQ7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,160 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2015-2020 Ritense BV, the Netherlands.
|
|
3
|
-
*
|
|
4
|
-
* Licensed under EUPL, Version 1.2 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" basis,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
import { Component, ElementRef, Input, Output, ViewChild, EventEmitter, } from '@angular/core';
|
|
17
|
-
import * as BpmnJS from 'bpmn-js/dist/bpmn-navigated-viewer.production.min.js';
|
|
18
|
-
import * as heatmap from 'heatmap.js-fixed/build/heatmap.js';
|
|
19
|
-
export class BpmnJsDiagramComponent {
|
|
20
|
-
constructor() {
|
|
21
|
-
this.importDone = new EventEmitter();
|
|
22
|
-
this.heatPoints = { data: [] };
|
|
23
|
-
}
|
|
24
|
-
ngOnInit() {
|
|
25
|
-
this.bpmnJS = new BpmnJS();
|
|
26
|
-
this.bpmnJS.on('import.done', ({ error }) => {
|
|
27
|
-
if (!error) {
|
|
28
|
-
const canvas = this.bpmnJS.get('canvas'), eventBus = this.bpmnJS.get('eventBus');
|
|
29
|
-
if (this.historicActivityInstances) {
|
|
30
|
-
this.historicActivityInstances.forEach(instance => {
|
|
31
|
-
canvas.addMarker(instance.activityId, instance.endTime ? 'highlight-overlay-past' : 'highlight-overlay-current');
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
canvas.zoom('fit-viewport', 'auto');
|
|
35
|
-
if (this.heatmapDuration || this.heatmapCount) {
|
|
36
|
-
eventBus.on('canvas.init', () => {
|
|
37
|
-
if (this.heatmapMode) {
|
|
38
|
-
this.clearHeatmap();
|
|
39
|
-
}
|
|
40
|
-
this.getHeatmapData();
|
|
41
|
-
});
|
|
42
|
-
eventBus.on('canvas.viewbox.changing', () => {
|
|
43
|
-
if (this.heatmapMode) {
|
|
44
|
-
this.clearHeatmap();
|
|
45
|
-
}
|
|
46
|
-
});
|
|
47
|
-
eventBus.on('canvas.viewbox.changed', () => {
|
|
48
|
-
this.getHeatmapData();
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
ngAfterContentInit() {
|
|
55
|
-
this.bpmnJS.importXML(this.bpmn20Xml);
|
|
56
|
-
this.bpmnJS.attachTo(this.el.nativeElement);
|
|
57
|
-
}
|
|
58
|
-
getHeatmapData() {
|
|
59
|
-
let inputData, valueKey;
|
|
60
|
-
this.heatPoints = { data: [] };
|
|
61
|
-
this.min = 0;
|
|
62
|
-
this.max = 0;
|
|
63
|
-
if (this.heatmapDuration) {
|
|
64
|
-
inputData = this.heatmapDuration;
|
|
65
|
-
valueKey = 'averageDurationInMilliseconds';
|
|
66
|
-
}
|
|
67
|
-
else if (this.heatmapCount) {
|
|
68
|
-
inputData = this.heatmapCount;
|
|
69
|
-
valueKey = 'totalCount';
|
|
70
|
-
}
|
|
71
|
-
if (inputData) {
|
|
72
|
-
Object.keys(inputData).forEach(key => {
|
|
73
|
-
const diagramContainer = this.el.nativeElement.querySelector('svg').getBoundingClientRect(), diagramElm = this.el.nativeElement
|
|
74
|
-
.querySelector(`g[data-element-id=${key}]`)
|
|
75
|
-
.getBoundingClientRect();
|
|
76
|
-
this.setMax(key);
|
|
77
|
-
this.heatPoints.data.push({
|
|
78
|
-
x: Math.round(diagramElm.x - diagramContainer.x + diagramElm.width / 2),
|
|
79
|
-
y: Math.round(diagramElm.y - diagramContainer.y + diagramElm.height / 2),
|
|
80
|
-
value: inputData[key][valueKey],
|
|
81
|
-
radius: diagramElm.width / 2,
|
|
82
|
-
});
|
|
83
|
-
if (inputData[key].count > 0) {
|
|
84
|
-
this.addCounterActiveOverlays(key, inputData);
|
|
85
|
-
}
|
|
86
|
-
});
|
|
87
|
-
if (this.heatmapMode) {
|
|
88
|
-
this.showHeatmap();
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
setMax(key) {
|
|
93
|
-
if (this.heatmapDuration) {
|
|
94
|
-
this.max = Math.max(this.heatmapDuration[key].averageDurationInMilliseconds, this.max);
|
|
95
|
-
}
|
|
96
|
-
else if (this.heatmapCount) {
|
|
97
|
-
this.max = Math.max(this.heatmapCount[key].totalCount + this.heatmapCount[key].count, this.max);
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
addCounterActiveOverlays(key, inputData) {
|
|
101
|
-
const overlays = this.bpmnJS.get('overlays');
|
|
102
|
-
overlays.add(key, {
|
|
103
|
-
position: {
|
|
104
|
-
bottom: -10,
|
|
105
|
-
left: 0,
|
|
106
|
-
},
|
|
107
|
-
show: {
|
|
108
|
-
minZoom: 0,
|
|
109
|
-
maxZoom: 5.0,
|
|
110
|
-
},
|
|
111
|
-
html: `<span class="badge badge-pill badge-primary">${inputData[key].count}</span>`,
|
|
112
|
-
});
|
|
113
|
-
}
|
|
114
|
-
showHeatmap() {
|
|
115
|
-
this.heatMapInstance = heatmap.create({
|
|
116
|
-
radius: 54,
|
|
117
|
-
blur: 0.7,
|
|
118
|
-
maxOpacity: 0.4,
|
|
119
|
-
minOpacity: 0,
|
|
120
|
-
container: this.el.nativeElement,
|
|
121
|
-
});
|
|
122
|
-
this.heatMapInstance.setData({
|
|
123
|
-
min: this.min,
|
|
124
|
-
max: this.max,
|
|
125
|
-
data: this.heatPoints.data,
|
|
126
|
-
});
|
|
127
|
-
}
|
|
128
|
-
clearHeatmap() {
|
|
129
|
-
this.heatMapInstance.setData({ data: [] });
|
|
130
|
-
}
|
|
131
|
-
toggleHeatmap() {
|
|
132
|
-
this.heatmapMode = !this.heatmapMode;
|
|
133
|
-
if (this.heatmapMode) {
|
|
134
|
-
this.showHeatmap();
|
|
135
|
-
}
|
|
136
|
-
else {
|
|
137
|
-
this.clearHeatmap();
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
ngOnDestroy() {
|
|
141
|
-
this.bpmnJS.destroy();
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
BpmnJsDiagramComponent.decorators = [
|
|
145
|
-
{ type: Component, args: [{
|
|
146
|
-
selector: 'valtimo-bpmn-js-diagram',
|
|
147
|
-
template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div 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> Amount of currently active\n instances of this task.</span\n >\n <span\n > | Red/yellow/green orbs: The amount of times the task is executed in\n comparison to the other tasks.</span\n >\n</div>\n",
|
|
148
|
-
styles: [""]
|
|
149
|
-
},] }
|
|
150
|
-
];
|
|
151
|
-
BpmnJsDiagramComponent.ctorParameters = () => [];
|
|
152
|
-
BpmnJsDiagramComponent.propDecorators = {
|
|
153
|
-
el: [{ type: ViewChild, args: ['ref', { static: true },] }],
|
|
154
|
-
importDone: [{ type: Output }],
|
|
155
|
-
bpmn20Xml: [{ type: Input }],
|
|
156
|
-
heatmapDuration: [{ type: Input }],
|
|
157
|
-
heatmapCount: [{ type: Input }],
|
|
158
|
-
historicActivityInstances: [{ type: Input }]
|
|
159
|
-
};
|
|
160
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnBtbi1qcy1kaWFncmFtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJEOi9Xb3Jrc3BhY2UvdmFsdGltby92YWx0aW1vLWZyb250ZW5kLWxpYnJhcmllcy9wcm9qZWN0cy92YWx0aW1vL2NvbXBvbmVudHMvc3JjLyIsInNvdXJjZXMiOlsibGliL2JwbW4tanMtZGlhZ3JhbS9icG1uLWpzLWRpYWdyYW0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUVMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsWUFBWSxHQUViLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sS0FBSyxNQUFNLE1BQU0sc0RBQXNELENBQUM7QUFDL0UsT0FBTyxLQUFLLE9BQU8sTUFBTSxtQ0FBbUMsQ0FBQztBQU83RCxNQUFNLE9BQU8sc0JBQXNCO0lBZ0JqQztRQVhpQixlQUFVLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFPN0QsZUFBVSxHQUFHLEVBQUMsSUFBSSxFQUFFLEVBQUUsRUFBQyxDQUFDO0lBSWhCLENBQUM7SUFFaEIsUUFBUTtRQUNOLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxFQUFDLEtBQUssRUFBQyxFQUFFLEVBQUU7WUFDeEMsSUFBSSxDQUFDLEtBQUssRUFBRTtnQkFDVixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFDdEMsUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUV6QyxJQUFJLElBQUksQ0FBQyx5QkFBeUIsRUFBRTtvQkFDbEMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLE9BQU8sQ0FBQyxR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RSx5QkFBeUI7Z0JBQ25DLDZ1REFBK0M7O2FBRWhEOzs7O2lCQUtFLFNBQVMsU0FBQyxLQUFLLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO3lCQUMvQixNQUFNO3dCQUNOLEtBQUs7OEJBQ0wsS0FBSzsyQkFDTCxLQUFLO3dDQUNMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyMCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxuICBFdmVudEVtaXR0ZXIsXG4gIE9uSW5pdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgKiBhcyBCcG1uSlMgZnJvbSAnYnBtbi1qcy9kaXN0L2JwbW4tbmF2aWdhdGVkLXZpZXdlci5wcm9kdWN0aW9uLm1pbi5qcyc7XG5pbXBvcnQgKiBhcyBoZWF0bWFwIGZyb20gJ2hlYXRtYXAuanMtZml4ZWQvYnVpbGQvaGVhdG1hcC5qcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbHRpbW8tYnBtbi1qcy1kaWFncmFtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2JwbW4tanMtZGlhZ3JhbS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2JwbW4tanMtZGlhZ3JhbS5jb21wb25lbnQuY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEJwbW5Kc0RpYWdyYW1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgYnBtbkpTOiBCcG1uSlM7XG4gIHByaXZhdGUgaGVhdE1hcEluc3RhbmNlOiBhbnk7XG5cbiAgQFZpZXdDaGlsZCgncmVmJywge3N0YXRpYzogdHJ1ZX0pIHB1YmxpYyBlbDogRWxlbWVudFJlZjtcbiAgQE91dHB1dCgpIHB1YmxpYyBpbXBvcnREb25lOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQElucHV0KCkgcHVibGljIGJwbW4yMFhtbDogYW55O1xuICBASW5wdXQoKSBwdWJsaWMgaGVhdG1hcER1cmF0aW9uPzogYW55O1xuICBASW5wdXQoKSBwdWJsaWMgaGVhdG1hcENvdW50PzogYW55O1xuICBASW5wdXQoKSBwdWJsaWMgaGlzdG9yaWNBY3Rpdml0eUluc3RhbmNlcz86IGFueTtcblxuICBwdWJsaWMgaGVhdG1hcE1vZGU6IGJvb2xlYW47XG4gIHB1YmxpYyBoZWF0UG9pbnRzID0ge2RhdGE6IFtdfTtcbiAgcHVibGljIG1pbjogbnVtYmVyO1xuICBwdWJsaWMgbWF4OiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYnBtbkpTID0gbmV3IEJwbW5KUygpO1xuICAgIHRoaXMuYnBtbkpTLm9uKCdpbXBvcnQuZG9uZScsICh7ZXJyb3J9KSA9PiB7XG4gICAgICBpZiAoIWVycm9yKSB7XG4gICAgICAgIGNvbnN0IGNhbnZhcyA9IHRoaXMuYnBtbkpTLmdldCgnY2FudmFzJyksXG4gICAgICAgICAgZXZlbnRCdXMgPSB0aGlzLmJwbW5KUy5nZXQoJ2V2ZW50QnVzJyk7XG5cbiAgICAgICAgaWYgKHRoaXMuaGlzdG9yaWNBY3Rpdml0eUluc3RhbmNlcykge1xuICAgICAgICAgIHRoaXMuaGlzdG9yaWNBY3Rpdml0eUluc3RhbmNlcy5mb3JFYWNoKGluc3RhbmNlID0+IHtcbiAgICAgICAgICAgIGNhbnZhcy5hZGRNYXJrZXIoXG4gICAgICAgICAgICAgIGluc3RhbmNlLmFjdGl2aXR5SWQsXG4gICAgICAgICAgICAgIGluc3RhbmNlLmVuZFRpbWUgPyAnaGlnaGxpZ2h0LW92ZXJsYXktcGFzdCcgOiAnaGlnaGxpZ2h0LW92ZXJsYXktY3VycmVudCdcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBjYW52YXMuem9vbSgnZml0LXZpZXdwb3J0JywgJ2F1dG8nKTtcblxuICAgICAgICBpZiAodGhpcy5oZWF0bWFwRHVyYXRpb24gfHwgdGhpcy5oZWF0bWFwQ291bnQpIHtcbiAgICAgICAgICBldmVudEJ1cy5vbignY2FudmFzLmluaXQnLCAoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5oZWF0bWFwTW9kZSkge1xuICAgICAgICAgICAgICB0aGlzLmNsZWFySGVhdG1hcCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5nZXRIZWF0bWFwRGF0YSgpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIGV2ZW50QnVzLm9uKCdjYW52YXMudmlld2JveC5jaGFuZ2luZycsICgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmhlYXRtYXBNb2RlKSB7XG4gICAgICAgICAgICAgIHRoaXMuY2xlYXJIZWF0bWFwKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgZXZlbnRCdXMub24oJ2NhbnZhcy52aWV3Ym94LmNoYW5nZWQnLCAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmdldEhlYXRtYXBEYXRhKCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmJwbW5KUy5pbXBvcnRYTUwodGhpcy5icG1uMjBYbWwpO1xuICAgIHRoaXMuYnBtbkpTLmF0dGFjaFRvKHRoaXMuZWwubmF0aXZlRWxlbWVudCk7XG4gIH1cblxuICBnZXRIZWF0bWFwRGF0YSgpIHtcbiAgICBsZXQgaW5wdXREYXRhOiBhbnksIHZhbHVlS2V5OiBhbnk7XG5cbiAgICB0aGlzLmhlYXRQb2ludHMgPSB7ZGF0YTogW119O1xuICAgIHRoaXMubWluID0gMDtcbiAgICB0aGlzLm1heCA9IDA7XG5cbiAgICBpZiAodGhpcy5oZWF0bWFwRHVyYXRpb24pIHtcbiAgICAgIGlucHV0RGF0YSA9IHRoaXMuaGVhdG1hcER1cmF0aW9uO1xuICAgICAgdmFsdWVLZXkgPSAnYXZlcmFnZUR1cmF0aW9uSW5NaWxsaXNlY29uZHMnO1xuICAgIH0gZWxzZSBpZiAodGhpcy5oZWF0bWFwQ291bnQpIHtcbiAgICAgIGlucHV0RGF0YSA9IHRoaXMuaGVhdG1hcENvdW50O1xuICAgICAgdmFsdWVLZXkgPSAndG90YWxDb3VudCc7XG4gICAgfVxuXG4gICAgaWYgKGlucHV0RGF0YSkge1xuICAgICAgT2JqZWN0LmtleXMoaW5wdXREYXRhKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgIGNvbnN0IGRpYWdyYW1Db250YWluZXIgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3Rvcignc3ZnJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksXG4gICAgICAgICAgZGlhZ3JhbUVsbSA9IHRoaXMuZWwubmF0aXZlRWxlbWVudFxuICAgICAgICAgICAgLnF1ZXJ5U2VsZWN0b3IoYGdbZGF0YS1lbGVtZW50LWlkPSR7a2V5fV1gKVxuICAgICAgICAgICAgLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICB0aGlzLnNldE1heChrZXkpO1xuICAgICAgICB0aGlzLmhlYXRQb2ludHMuZGF0YS5wdXNoKHtcbiAgICAgICAgICB4OiBNYXRoLnJvdW5kKGRpYWdyYW1FbG0ueCAtIGRpYWdyYW1Db250YWluZXIueCArIGRpYWdyYW1FbG0ud2lkdGggLyAyKSxcbiAgICAgICAgICB5OiBNYXRoLnJvdW5kKGRpYWdyYW1FbG0ueSAtIGRpYWdyYW1Db250YWluZXIueSArIGRpYWdyYW1FbG0uaGVpZ2h0IC8gMiksXG4gICAgICAgICAgdmFsdWU6IGlucHV0RGF0YVtrZXldW3ZhbHVlS2V5XSxcbiAgICAgICAgICByYWRpdXM6IGRpYWdyYW1FbG0ud2lkdGggLyAyLFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGlucHV0RGF0YVtrZXldLmNvdW50ID4gMCkge1xuICAgICAgICAgIHRoaXMuYWRkQ291bnRlckFjdGl2ZU92ZXJsYXlzKGtleSwgaW5wdXREYXRhKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIGlmICh0aGlzLmhlYXRtYXBNb2RlKSB7XG4gICAgICAgIHRoaXMuc2hvd0hlYXRtYXAoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzZXRNYXgoa2V5OiBhbnkpIHtcbiAgICBpZiAodGhpcy5oZWF0bWFwRHVyYXRpb24pIHtcbiAgICAgIHRoaXMubWF4ID0gTWF0aC5tYXgodGhpcy5oZWF0bWFwRHVyYXRpb25ba2V5XS5hdmVyYWdlRHVyYXRpb25Jbk1pbGxpc2Vjb25kcywgdGhpcy5tYXgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5oZWF0bWFwQ291bnQpIHtcbiAgICAgIHRoaXMubWF4ID0gTWF0aC5tYXgoXG4gICAgICAgIHRoaXMuaGVhdG1hcENvdW50W2tleV0udG90YWxDb3VudCArIHRoaXMuaGVhdG1hcENvdW50W2tleV0uY291bnQsXG4gICAgICAgIHRoaXMubWF4XG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIGFkZENvdW50ZXJBY3RpdmVPdmVybGF5cyhrZXk6IGFueSwgaW5wdXREYXRhOiBhbnkpIHtcbiAgICBjb25zdCBvdmVybGF5cyA9IHRoaXMuYnBtbkpTLmdldCgnb3ZlcmxheXMnKTtcbiAgICBvdmVybGF5cy5hZGQoa2V5LCB7XG4gICAgICBwb3NpdGlvbjoge1xuICAgICAgICBib3R0b206IC0xMCxcbiAgICAgICAgbGVmdDogMCxcbiAgICAgIH0sXG4gICAgICBzaG93OiB7XG4gICAgICAgIG1pblpvb206IDAsXG4gICAgICAgIG1heFpvb206IDUuMCxcbiAgICAgIH0sXG4gICAgICBodG1sOiBgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1waWxsIGJhZGdlLXByaW1hcnlcIj4ke2lucHV0RGF0YVtrZXldLmNvdW50fTwvc3Bhbj5gLFxuICAgIH0pO1xuICB9XG5cbiAgc2hvd0hlYXRtYXAoKSB7XG4gICAgdGhpcy5oZWF0TWFwSW5zdGFuY2UgPSBoZWF0bWFwLmNyZWF0ZSh7XG4gICAgICByYWRpdXM6IDU0LFxuICAgICAgYmx1cjogMC43LFxuICAgICAgbWF4T3BhY2l0eTogMC40LFxuICAgICAgbWluT3BhY2l0eTogMCxcbiAgICAgIGNvbnRhaW5lcjogdGhpcy5lbC5uYXRpdmVFbGVtZW50LFxuICAgIH0pO1xuICAgIHRoaXMuaGVhdE1hcEluc3RhbmNlLnNldERhdGEoe1xuICAgICAgbWluOiB0aGlzLm1pbixcbiAgICAgIG1heDogdGhpcy5tYXgsXG4gICAgICBkYXRhOiB0aGlzLmhlYXRQb2ludHMuZGF0YSxcbiAgICB9KTtcbiAgfVxuXG4gIGNsZWFySGVhdG1hcCgpIHtcbiAgICB0aGlzLmhlYXRNYXBJbnN0YW5jZS5zZXREYXRhKHtkYXRhOiBbXX0pO1xuICB9XG5cbiAgdG9nZ2xlSGVhdG1hcCgpIHtcbiAgICB0aGlzLmhlYXRtYXBNb2RlID0gIXRoaXMuaGVhdG1hcE1vZGU7XG4gICAgaWYgKHRoaXMuaGVhdG1hcE1vZGUpIHtcbiAgICAgIHRoaXMuc2hvd0hlYXRtYXAoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jbGVhckhlYXRtYXAoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmJwbW5KUy5kZXN0cm95KCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2015-2020 Ritense BV, the Netherlands.
|
|
3
|
-
*
|
|
4
|
-
* Licensed under EUPL, Version 1.2 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" basis,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
import { NgModule } from '@angular/core';
|
|
17
|
-
import { CommonModule } from '@angular/common';
|
|
18
|
-
import { BpmnJsDiagramComponent } from './bpmn-js-diagram.component';
|
|
19
|
-
export class BpmnJsDiagramModule {
|
|
20
|
-
}
|
|
21
|
-
BpmnJsDiagramModule.decorators = [
|
|
22
|
-
{ type: NgModule, args: [{
|
|
23
|
-
declarations: [BpmnJsDiagramComponent],
|
|
24
|
-
imports: [CommonModule],
|
|
25
|
-
exports: [BpmnJsDiagramComponent],
|
|
26
|
-
},] }
|
|
27
|
-
];
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnBtbi1qcy1kaWFncmFtLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJEOi9Xb3Jrc3BhY2UvdmFsdGltby92YWx0aW1vLWZyb250ZW5kLWxpYnJhcmllcy9wcm9qZWN0cy92YWx0aW1vL2NvbXBvbmVudHMvc3JjLyIsInNvdXJjZXMiOlsibGliL2JwbW4tanMtZGlhZ3JhbS9icG1uLWpzLWRpYWdyYW0ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFPbkUsTUFBTSxPQUFPLG1CQUFtQjs7O1lBTC9CLFFBQVEsU0FBQztnQkFDUixZQUFZLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztnQkFDdEMsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2dCQUN2QixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQzthQUNsQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDIwIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0JwbW5Kc0RpYWdyYW1Db21wb25lbnR9IGZyb20gJy4vYnBtbi1qcy1kaWFncmFtLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW0JwbW5Kc0RpYWdyYW1Db21wb25lbnRdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgZXhwb3J0czogW0JwbW5Kc0RpYWdyYW1Db21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBCcG1uSnNEaWFncmFtTW9kdWxlIHt9XG4iXX0=
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2015-2020 Ritense BV, the Netherlands.
|
|
3
|
-
*
|
|
4
|
-
* Licensed under EUPL, Version 1.2 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" basis,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
import { Component } from '@angular/core';
|
|
17
|
-
import { ActivatedRoute, NavigationEnd, PRIMARY_OUTLET, Router } from '@angular/router';
|
|
18
|
-
import { filter, map } from 'rxjs/operators';
|
|
19
|
-
import { Subscription } from 'rxjs';
|
|
20
|
-
export class BreadcrumbNavigationComponent {
|
|
21
|
-
constructor(router, route) {
|
|
22
|
-
this.router = router;
|
|
23
|
-
this.route = route;
|
|
24
|
-
this.breadcrumbs = [];
|
|
25
|
-
this.appTitle = 'Valtimo';
|
|
26
|
-
this.routerSub = Subscription.EMPTY;
|
|
27
|
-
}
|
|
28
|
-
ngOnInit() {
|
|
29
|
-
this.setBreadcrumbs(this.route);
|
|
30
|
-
this.routerSub = this.router.events
|
|
31
|
-
.pipe(filter(event => event instanceof NavigationEnd))
|
|
32
|
-
.pipe(map(() => this.route))
|
|
33
|
-
.pipe(map(route => {
|
|
34
|
-
while (route.firstChild) {
|
|
35
|
-
route = route.firstChild;
|
|
36
|
-
}
|
|
37
|
-
return route;
|
|
38
|
-
}))
|
|
39
|
-
.pipe(filter(route => route.outlet === PRIMARY_OUTLET))
|
|
40
|
-
.subscribe(route => {
|
|
41
|
-
this.setBreadcrumbs(route);
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
setBreadcrumbs(route) {
|
|
45
|
-
while (route.firstChild) {
|
|
46
|
-
route = route.firstChild;
|
|
47
|
-
}
|
|
48
|
-
if (route.outlet === PRIMARY_OUTLET) {
|
|
49
|
-
const snapshot = route.snapshot;
|
|
50
|
-
const activeRoute = {
|
|
51
|
-
url: snapshot.url.join('/'),
|
|
52
|
-
path: snapshot.routeConfig.path,
|
|
53
|
-
label: snapshot.data['title'],
|
|
54
|
-
params: snapshot.params,
|
|
55
|
-
};
|
|
56
|
-
this.generateBreadcrumbs(activeRoute);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
generateBreadcrumbs(activeBreadcrumb) {
|
|
60
|
-
this.breadcrumbs = [];
|
|
61
|
-
this.router.config.map(routerConfig => {
|
|
62
|
-
if (activeBreadcrumb.path.indexOf(routerConfig.path + '/') === 0 &&
|
|
63
|
-
activeBreadcrumb.path !== routerConfig.path &&
|
|
64
|
-
routerConfig.path !== '') {
|
|
65
|
-
const parentRoute = {
|
|
66
|
-
url: routerConfig.path.replace(/:(.+?)\b/g, (_, p1) => activeBreadcrumb.params[p1]),
|
|
67
|
-
path: routerConfig.path,
|
|
68
|
-
label: routerConfig.data['title'],
|
|
69
|
-
params: activeBreadcrumb.params,
|
|
70
|
-
};
|
|
71
|
-
const exist = this.breadcrumbs.findIndex(item => item.url === parentRoute.url);
|
|
72
|
-
if (exist === -1) {
|
|
73
|
-
this.breadcrumbs.push(parentRoute);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
ngOnDestroy() {
|
|
79
|
-
this.routerSub.unsubscribe();
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
BreadcrumbNavigationComponent.decorators = [
|
|
83
|
-
{ type: Component, args: [{
|
|
84
|
-
selector: 'valtimo-breadcrumb-navigation',
|
|
85
|
-
template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<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",
|
|
86
|
-
styles: [""]
|
|
87
|
-
},] }
|
|
88
|
-
];
|
|
89
|
-
BreadcrumbNavigationComponent.ctorParameters = () => [
|
|
90
|
-
{ type: Router },
|
|
91
|
-
{ type: ActivatedRoute }
|
|
92
|
-
];
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi1uYXZpZ2F0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJEOi9Xb3Jrc3BhY2UvdmFsdGltby92YWx0aW1vLWZyb250ZW5kLWxpYnJhcmllcy9wcm9qZWN0cy92YWx0aW1vL2NvbXBvbmVudHMvc3JjLyIsInNvdXJjZXMiOlsibGliL2JyZWFkY3J1bWItbmF2aWdhdGlvbi9icmVhZGNydW1iLW5hdmlnYXRpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFDLGNBQWMsRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3RGLE9BQU8sRUFBQyxNQUFNLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLE1BQU0sQ0FBQztBQU9sQyxNQUFNLE9BQU8sNkJBQTZCO0lBS3hDLFlBQW9CLE1BQWMsRUFBVSxLQUFxQjtRQUE3QyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFKMUQsZ0JBQVcsR0FBZSxFQUFFLENBQUM7UUFDN0IsYUFBUSxHQUFHLFNBQVMsQ0FBQztRQUNwQixjQUFTLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQztJQUU2QixDQUFDO0lBRXJFLFFBQVE7UUFDTixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTTthQUNoQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxZQUFZLGFBQWEsQ0FBQyxDQUFDO2FBQ3JELElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxF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eXJpZ2h0IDIwMTUtMjAyMCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge0NvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZSwgTmF2aWdhdGlvbkVuZCwgUFJJTUFSWV9PVVRMRVQsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7ZmlsdGVyLCBtYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsdGltby1icmVhZGNydW1iLW5hdmlnYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vYnJlYWRjcnVtYi1uYXZpZ2F0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYnJlYWRjcnVtYi1uYXZpZ2F0aW9uLmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQnJlYWRjcnVtYk5hdmlnYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHB1YmxpYyBicmVhZGNydW1iczogQXJyYXk8YW55PiA9IFtdO1xuICBwdWJsaWMgYXBwVGl0bGUgPSAnVmFsdGltbyc7XG4gIHByaXZhdGUgcm91dGVyU3ViID0gU3Vic2NyaXB0aW9uLkVNUFRZO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc2V0QnJlYWRjcnVtYnModGhpcy5yb3V0ZSk7XG4gICAgdGhpcy5yb3V0ZXJTdWIgPSB0aGlzLnJvdXRlci5ldmVudHNcbiAgICAgIC5waXBlKGZpbHRlcihldmVudCA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpKVxuICAgICAgLnBpcGUobWFwKCgpID0+IHRoaXMucm91dGUpKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcChyb3V0ZSA9PiB7XG4gICAgICAgICAgd2hpbGUgKHJvdXRlLmZpcnN0Q2hpbGQpIHtcbiAgICAgICAgICAgIHJvdXRlID0gcm91dGUuZmlyc3RDaGlsZDtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHJvdXRlO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnBpcGUoZmlsdGVyKHJvdXRlID0+IHJvdXRlLm91dGxldCA9PT0gUFJJTUFSWV9PVVRMRVQpKVxuICAgICAgLnN1YnNjcmliZShyb3V0ZSA9PiB7XG4gICAgICAgIHRoaXMuc2V0QnJlYWRjcnVtYnMocm91dGUpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNldEJyZWFkY3J1bWJzKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSkge1xuICAgIHdoaWxlIChyb3V0ZS5maXJzdENoaWxkKSB7XG4gICAgICByb3V0ZSA9IHJvdXRlLmZpcnN0Q2hpbGQ7XG4gICAgfVxuICAgIGlmIChyb3V0ZS5vdXRsZXQgPT09IFBSSU1BUllfT1VUTEVUKSB7XG4gICAgICBjb25zdCBzbmFwc2hvdCA9IHJvdXRlLnNuYXBzaG90O1xuICAgICAgY29uc3QgYWN0aXZlUm91dGUgPSB7XG4gICAgICAgIHVybDogc25hcHNob3QudXJsLmpvaW4oJy8nKSxcbiAgICAgICAgcGF0aDogc25hcHNob3Qucm91dGVDb25maWcucGF0aCxcbiAgICAgICAgbGFiZWw6IHNuYXBzaG90LmRhdGFbJ3RpdGxlJ10sXG4gICAgICAgIHBhcmFtczogc25hcHNob3QucGFyYW1zLFxuICAgICAgfTtcbiAgICAgIHRoaXMuZ2VuZXJhdGVCcmVhZGNydW1icyhhY3RpdmVSb3V0ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZUJyZWFkY3J1bWJzKGFjdGl2ZUJyZWFkY3J1bWI6IGFueSkge1xuICAgIHRoaXMuYnJlYWRjcnVtYnMgPSBbXTtcbiAgICB0aGlzLnJvdXRlci5jb25maWcubWFwKHJvdXRlckNvbmZpZyA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgIGFjdGl2ZUJyZWFkY3J1bWIucGF0aC5pbmRleE9mKHJvdXRlckNvbmZpZy5wYXRoICsgJy8nKSA9PT0gMCAmJlxuICAgICAgICBhY3RpdmVCcmVhZGNydW1iLnBhdGggIT09IHJvdXRlckNvbmZpZy5wYXRoICYmXG4gICAgICAgIHJvdXRlckNvbmZpZy5wYXRoICE9PSAnJ1xuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IHBhcmVudFJvdXRlID0ge1xuICAgICAgICAgIHVybDogcm91dGVyQ29uZmlnLnBhdGgucmVwbGFjZSgvOiguKz8pXFxiL2csIChfLCBwMSkgPT4gYWN0aXZlQnJlYWRjcnVtYi5wYXJhbXNbcDFdKSxcbiAgICAgICAgICBwYXRoOiByb3V0ZXJDb25maWcucGF0aCxcbiAgICAgICAgICBsYWJlbDogcm91dGVyQ29uZmlnLmRhdGFbJ3RpdGxlJ10sXG4gICAgICAgICAgcGFyYW1zOiBhY3RpdmVCcmVhZGNydW1iLnBhcmFtcyxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgZXhpc3QgPSB0aGlzLmJyZWFkY3J1bWJzLmZpbmRJbmRleChpdGVtID0+IGl0ZW0udXJsID09PSBwYXJlbnRSb3V0ZS51cmwpO1xuICAgICAgICBpZiAoZXhpc3QgPT09IC0xKSB7XG4gICAgICAgICAgdGhpcy5icmVhZGNydW1icy5wdXNoKHBhcmVudFJvdXRlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5yb3V0ZXJTdWIudW5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIl19
|