qms-angular 1.0.50 → 1.0.54
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/qms-angular.umd.js +19558 -11339
- package/bundles/qms-angular.umd.js.map +1 -1
- package/esm2015/lib/components/app-icon/app-icon.module.js +29 -16
- package/esm2015/lib/components/app-icon/icon-registry.service.js +9 -7
- package/esm2015/lib/components/badges/index.js +2 -0
- package/esm2015/lib/components/badges/models/qms-badges.model.js +13 -0
- package/esm2015/lib/components/badges/public_api.js +3 -0
- package/esm2015/lib/components/badges/qms-badges.component.js +38 -0
- package/esm2015/lib/components/badges/qms-badges.module.js +41 -0
- package/esm2015/lib/components/banner/qms-banner/qms-banner.component.js +28 -16
- package/esm2015/lib/components/banner/qms-banner/qms-banner.module.js +36 -19
- package/esm2015/lib/components/banner/qms-banner-confirm/qms-banner-confirm.component.js +28 -16
- package/esm2015/lib/components/banner/qms-banner-confirm/qms-banner-confirm.module.js +36 -19
- package/esm2015/lib/components/banner/qms-banner-loading/qms-banner-loading.component.js +19 -13
- package/esm2015/lib/components/banner/qms-banner-loading/qms-banner-loading.module.js +30 -17
- package/esm2015/lib/components/breadcrumb/breadcrumb-direction-icon.directive.js +11 -10
- package/esm2015/lib/components/breadcrumb/breadcrumb-item.directive.js +20 -17
- package/esm2015/lib/components/breadcrumb/breadcrumb.js +40 -28
- package/esm2015/lib/components/breadcrumb/breadcrumb.module.js +50 -26
- package/esm2015/lib/components/button/button-toggle.js +120 -85
- package/esm2015/lib/components/button/button.js +86 -78
- package/esm2015/lib/components/button/button.module.js +51 -27
- package/esm2015/lib/components/comment/comment.js +29 -18
- package/esm2015/lib/components/dialog/dialog.js +38 -28
- package/esm2015/lib/components/edit-file-name-dialog/edit-file-name-dialog.js +24 -16
- package/esm2015/lib/components/edit-file-name-dialog/edit-file-name-dialog.module.js +71 -31
- package/esm2015/lib/components/list/list.js +101 -89
- package/esm2015/lib/components/list/list.module.js +94 -50
- package/esm2015/lib/components/qms-app-bar/qms-app-bar.component.js +55 -29
- package/esm2015/lib/components/qms-app-bar/qms-app-bar.module.js +39 -20
- package/esm2015/lib/components/qms-stepper/qms-stepper.component.js +32 -22
- package/esm2015/lib/components/qms-stepper/qms-stepper.module.js +35 -25
- package/esm2015/lib/components/related/content/related-content.component.js +19 -12
- package/esm2015/lib/components/related/list-other-related/list-related.component.js +29 -25
- package/esm2015/lib/components/related/popup/related-popup.component.js +50 -33
- package/esm2015/lib/components/related/related.module.js +97 -44
- package/esm2015/lib/components/related/risk/analysis/analysis.component.js +23 -17
- package/esm2015/lib/components/related/risk/list/list.component.js +22 -18
- package/esm2015/lib/components/related/risk/result/result.component.js +23 -16
- package/esm2015/lib/components/related/service/related-global.service.js +7 -6
- package/esm2015/lib/components/related/sidenav/sidenav.component.js +21 -12
- package/esm2015/lib/components/related/tree/tree.component.js +54 -41
- package/esm2015/lib/components/reports/qms-report-content-portrait/qms-report-content-portrait.component.js +22 -18
- package/esm2015/lib/components/reports/qms-report-cover-portrait/qms-report-cover-portrait.component.js +22 -18
- package/esm2015/lib/components/reports/qms-reports.module.js +29 -20
- package/esm2015/lib/components/rich-text/rich-text.js +47 -32
- package/esm2015/lib/components/rich-text/rich-text.module.js +35 -21
- package/esm2015/lib/components/select-dialog/select-dialog.js +31 -16
- package/esm2015/lib/components/suffix-field/suffix-field.directive.js +22 -21
- package/esm2015/lib/components/table/table-action.js +31 -31
- package/esm2015/lib/components/table/table.module.js +37 -21
- package/esm2015/lib/components/test-only/test-only.component.js +14 -11
- package/esm2015/lib/components/tooltip/tooltip.js +24 -19
- package/esm2015/lib/components/tooltip/tooltip.module.js +38 -20
- package/esm2015/lib/components/upload-file-error-dialog/upload-file-error-dialog.js +22 -16
- package/esm2015/lib/components/upload-file-error-dialog/upload-file-error-dialog.module.js +71 -31
- package/esm2015/lib/directives/chip-input/chip-input-chip-list.directive.js +13 -13
- package/esm2015/lib/directives/chip-input/chip-input-field.directive.js +11 -10
- package/esm2015/lib/directives/chip-input/chip-input-select-dropdown.directive.js +11 -10
- package/esm2015/lib/directives/chip-input/chip-input-select-field.directive.js +17 -14
- package/esm2015/lib/directives/chip-input/chip-input-select-trigger.directive.js +14 -13
- package/esm2015/lib/directives/chips/chip-body.directive.js +11 -10
- package/esm2015/lib/directives/chips/chip.directive.js +13 -13
- package/esm2015/lib/directives/dropdown-menu/dropdown-item.directive.js +16 -14
- package/esm2015/lib/directives/file-upload/file-upload-attachment-list.directive.js +11 -10
- package/esm2015/lib/directives/file-upload/file-upload-display.directive.js +19 -16
- package/esm2015/lib/directives/file-upload/file-upload-multiple-display.directive.js +16 -14
- package/esm2015/lib/directives/file-upload/file-upload-multiple-selector.directive.js +26 -20
- package/esm2015/lib/directives/file-upload/file-upload-multiple.directive.js +19 -15
- package/esm2015/lib/directives/file-upload/file-upload-scrollable-attachment-list.directive.js +11 -10
- package/esm2015/lib/directives/file-upload/file-upload-selector.directive.js +25 -18
- package/esm2015/lib/directives/file-upload/file-upload.directive.js +24 -20
- package/esm2015/lib/directives/form.directive.js +48 -51
- package/esm2015/lib/directives/margin.directive.js +15 -14
- package/esm2015/lib/directives/range-slider/range-slider-lockup.directive.js +11 -10
- package/esm2015/lib/directives/range-slider/range-slider.directive.js +17 -14
- package/esm2015/lib/directives/scroll-selected/scroll-to-selected.directive.js +16 -15
- package/esm2015/lib/directives/scrollbar/scrollbar.directive.js +13 -13
- package/esm2015/lib/directives/search-field.directive.js +21 -22
- package/esm2015/lib/directives/side-sheet/drawer-content.directive.js +11 -10
- package/esm2015/lib/directives/side-sheet/drawer-header-action.directive.js +11 -10
- package/esm2015/lib/directives/side-sheet/drawer-header.directive.js +11 -10
- package/esm2015/lib/directives/side-sheet/drawer.directive.js +11 -10
- package/esm2015/lib/directives/tab/tab-group-advanced.directive.js +15 -14
- package/esm2015/lib/directives/tab/tab-group.directive.js +11 -10
- package/esm2015/lib/directives/tab/tab-label.directive.js +11 -10
- package/esm2015/lib/directives/text-block/text-block-line.directive.js +20 -16
- package/esm2015/lib/directives/text-block/text-block.directive.js +17 -14
- package/esm2015/lib/directives/tooltip/tooltip-image.directive.js +14 -13
- package/esm2015/lib/directives/tooltip/tooltip-renderer.directive.js +35 -22
- package/esm2015/lib/material-module.js +35 -16
- package/esm2015/lib/model/en.js +35 -4
- package/esm2015/lib/model/no.js +34 -3
- package/esm2015/lib/pipe/dateFormat.pipe.js +11 -10
- package/esm2015/lib/qms-angular.component.js +13 -11
- package/esm2015/lib/qms-angular.module.js +232 -121
- package/esm2015/lib/qms-angular.service.js +9 -8
- package/esm2015/lib/qms-ckeditor-components/common/bpmn/toolbar.function.js +32 -12
- package/esm2015/lib/qms-ckeditor-components/common/constants/ckeditorEvent.constant.js +5 -1
- package/esm2015/lib/qms-ckeditor-components/common/constants/ckeditorFlowchart.const.js +10 -1
- package/esm2015/lib/qms-ckeditor-components/common/constants/ckeditorLink.constant.js +7 -0
- package/esm2015/lib/qms-ckeditor-components/common/enums/document-type.enum.js +2 -1
- package/esm2015/lib/qms-ckeditor-components/common/enums/shape-flow-chart-connection-type.js +8 -0
- package/esm2015/lib/qms-ckeditor-components/common/flowchart/sample/sample-graphs.js +16 -0
- package/esm2015/lib/qms-ckeditor-components/common/flowchart/service/halo-service.js +105 -0
- package/esm2015/lib/qms-ckeditor-components/common/flowchart/service/inspector-service.js +3762 -0
- package/esm2015/lib/qms-ckeditor-components/common/flowchart/service/keyboard-service.js +68 -0
- package/esm2015/lib/qms-ckeditor-components/common/flowchart/service/kitchensink-service.js +372 -0
- package/esm2015/lib/qms-ckeditor-components/common/flowchart/service/stencil-service.js +1041 -0
- package/esm2015/lib/qms-ckeditor-components/common/flowchart/service/toolbar-service.js +326 -0
- package/esm2015/lib/qms-ckeditor-components/common/flowchart/shapes/app-shapes.js +318 -0
- package/esm2015/lib/qms-ckeditor-components/common/flowchart/themes/theme-picker.js +80 -0
- package/esm2015/lib/qms-ckeditor-components/common/functions/common.function.js +2 -2
- package/esm2015/lib/qms-ckeditor-components/common/models/qms-ckeditor-flowchart-template.model.js +9 -0
- package/esm2015/lib/qms-ckeditor-components/common/models/qms-ckeditor-flowchart.model.js +9 -0
- package/esm2015/lib/qms-ckeditor-components/common/models/qms-ckeditor-save-as-template.model.js +3 -0
- package/esm2015/lib/qms-ckeditor-components/common/module/confirm/qms-ckeditor-confirm.component.js +23 -16
- package/esm2015/lib/qms-ckeditor-components/common/module/tree/qms-ckeditor-tree.component.js +34 -19
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-about/qms-ckeditor-about.component.js +43 -0
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/qms-ckeditor-bpmn.component.js +577 -53
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/save-template/save-template.component.js +69 -35
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-flowchart/qms-ckeditor-flowchart.component.js +322 -0
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-fullscreen/qms-ckeditor-fullscreen.component.js +12 -8
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-imagemap/qms-ckeditor-imagemap.component.js +39 -30
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-link/attachments/link-attachment.component.js +22 -18
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-link/qms-ckeditor-link.component.js +29 -20
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-load-template/qms-ckeditor-load-template.component.js +22 -18
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-relation/qmsckeditor-related.component.js +35 -23
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-template/qms-ckeditor-template.component.js +30 -20
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-tooltip/qms-ckeditor-tooltip.component.js +27 -18
- package/esm2015/lib/qms-ckeditor-components/models/qms-ckeditor-bpmn-data.model.js +8 -0
- package/esm2015/lib/qms-ckeditor-components/qms-ckeditor-base.component.js +7 -4
- package/esm2015/lib/qms-ckeditor-components/qms-ckeditor.component.js +118 -44
- package/esm2015/lib/qms-ckeditor-components/qms-ckeditor.module.js +131 -55
- package/esm2015/lib/qms-ckeditor-components/services/qms-ckeditor-base.service.js +10 -10
- package/esm2015/lib/qms-ckeditor-components/services/qms-ckeditor-bpmn-api.service.js +9 -9
- package/esm2015/lib/qms-ckeditor-components/services/qms-ckeditor-bpmn.service.js +66 -26
- package/esm2015/lib/qms-ckeditor-components/services/qms-ckeditor-flowchart.service.js +26 -0
- package/esm2015/lib/qms-ckeditor-components/services/qms-ckeditor-global.service.js +9 -8
- package/esm2015/lib/qms-ckeditor-components/services/qms-ckeditor-link.service.js +9 -9
- package/esm2015/lib/qms-ckeditor-components/services/qms-ckeditor-tree.service.js +9 -9
- package/esm2015/lib/qms-ckeditor-components/services/qms-ckedtior-template.service.js +9 -9
- package/esm2015/lib/services/translation-registry.service.js +9 -8
- package/esm2015/lib/shared.module.js +9 -4
- package/esm2015/public-api.js +17 -1
- package/esm2015/qms-angular.js +1 -9
- package/fesm2015/qms-angular.js +10820 -2740
- package/fesm2015/qms-angular.js.map +1 -1
- package/lib/components/app-icon/app-icon.module.d.ts +7 -0
- package/lib/components/app-icon/icon-registry.service.d.ts +3 -0
- package/lib/components/badges/index.d.ts +1 -0
- package/lib/components/badges/models/qms-badges.model.d.ts +10 -0
- package/lib/components/badges/public_api.d.ts +2 -0
- package/lib/components/badges/qms-badges.component.d.ts +15 -0
- package/lib/components/badges/qms-badges.module.d.ts +11 -0
- package/lib/components/banner/qms-banner/qms-banner.component.d.ts +3 -0
- package/lib/components/banner/qms-banner/qms-banner.module.d.ts +10 -0
- package/lib/components/banner/qms-banner-confirm/qms-banner-confirm.component.d.ts +3 -0
- package/lib/components/banner/qms-banner-confirm/qms-banner-confirm.module.d.ts +10 -0
- package/lib/components/banner/qms-banner-loading/qms-banner-loading.component.d.ts +3 -0
- package/lib/components/banner/qms-banner-loading/qms-banner-loading.module.d.ts +8 -0
- package/lib/components/breadcrumb/breadcrumb-direction-icon.directive.d.ts +3 -0
- package/lib/components/breadcrumb/breadcrumb-item.directive.d.ts +3 -0
- package/lib/components/breadcrumb/breadcrumb.d.ts +3 -0
- package/lib/components/breadcrumb/breadcrumb.module.d.ts +13 -0
- package/lib/components/button/button-toggle.d.ts +5 -0
- package/lib/components/button/button.d.ts +7 -0
- package/lib/components/button/button.module.d.ts +9 -0
- package/lib/components/comment/comment.d.ts +3 -0
- package/lib/components/dialog/dialog.d.ts +5 -0
- package/lib/components/edit-file-name-dialog/edit-file-name-dialog.d.ts +3 -0
- package/lib/components/edit-file-name-dialog/edit-file-name-dialog.module.d.ts +16 -0
- package/lib/components/list/list.d.ts +15 -0
- package/lib/components/list/list.module.d.ts +11 -0
- package/lib/components/qms-app-bar/qms-app-bar.component.d.ts +3 -0
- package/lib/components/qms-app-bar/qms-app-bar.module.d.ts +12 -0
- package/lib/components/qms-stepper/qms-stepper.component.d.ts +3 -0
- package/lib/components/qms-stepper/qms-stepper.module.d.ts +8 -0
- package/lib/components/related/content/related-content.component.d.ts +3 -0
- package/lib/components/related/list-other-related/list-related.component.d.ts +3 -0
- package/lib/components/related/popup/related-popup.component.d.ts +3 -0
- package/lib/components/related/related.module.d.ts +29 -0
- package/lib/components/related/risk/analysis/analysis.component.d.ts +3 -0
- package/lib/components/related/risk/list/list.component.d.ts +3 -0
- package/lib/components/related/risk/result/result.component.d.ts +3 -0
- package/lib/components/related/service/related-global.service.d.ts +3 -0
- package/lib/components/related/sidenav/sidenav.component.d.ts +3 -0
- package/lib/components/related/tree/tree.component.d.ts +3 -0
- package/lib/components/reports/qms-report-content-portrait/qms-report-content-portrait.component.d.ts +3 -0
- package/lib/components/reports/qms-report-cover-portrait/qms-report-cover-portrait.component.d.ts +3 -0
- package/lib/components/reports/qms-reports.module.d.ts +7 -0
- package/lib/components/rich-text/rich-text.d.ts +3 -0
- package/lib/components/rich-text/rich-text.module.d.ts +8 -0
- package/lib/components/select-dialog/select-dialog.d.ts +3 -0
- package/lib/components/suffix-field/suffix-field.directive.d.ts +5 -0
- package/lib/components/table/table-action.d.ts +5 -0
- package/lib/components/table/table.module.d.ts +8 -0
- package/lib/components/test-only/test-only.component.d.ts +3 -0
- package/lib/components/tooltip/tooltip.d.ts +3 -0
- package/lib/components/tooltip/tooltip.module.d.ts +9 -0
- package/lib/components/upload-file-error-dialog/upload-file-error-dialog.d.ts +3 -0
- package/lib/components/upload-file-error-dialog/upload-file-error-dialog.module.d.ts +16 -0
- package/lib/directives/chip-input/chip-input-chip-list.directive.d.ts +3 -0
- package/lib/directives/chip-input/chip-input-field.directive.d.ts +3 -0
- package/lib/directives/chip-input/chip-input-select-dropdown.directive.d.ts +3 -0
- package/lib/directives/chip-input/chip-input-select-field.directive.d.ts +3 -0
- package/lib/directives/chip-input/chip-input-select-trigger.directive.d.ts +3 -0
- package/lib/directives/chips/chip-body.directive.d.ts +3 -0
- package/lib/directives/chips/chip.directive.d.ts +3 -0
- package/lib/directives/dropdown-menu/dropdown-item.directive.d.ts +3 -0
- package/lib/directives/file-upload/file-upload-attachment-list.directive.d.ts +3 -0
- package/lib/directives/file-upload/file-upload-display.directive.d.ts +3 -0
- package/lib/directives/file-upload/file-upload-multiple-display.directive.d.ts +3 -0
- package/lib/directives/file-upload/file-upload-multiple-selector.directive.d.ts +3 -0
- package/lib/directives/file-upload/file-upload-multiple.directive.d.ts +3 -0
- package/lib/directives/file-upload/file-upload-scrollable-attachment-list.directive.d.ts +3 -0
- package/lib/directives/file-upload/file-upload-selector.directive.d.ts +3 -0
- package/lib/directives/file-upload/file-upload.directive.d.ts +5 -0
- package/lib/directives/form.directive.d.ts +11 -0
- package/lib/directives/margin.directive.d.ts +3 -0
- package/lib/directives/range-slider/range-slider-lockup.directive.d.ts +3 -0
- package/lib/directives/range-slider/range-slider.directive.d.ts +3 -0
- package/lib/directives/scroll-selected/scroll-to-selected.directive.d.ts +3 -0
- package/lib/directives/scrollbar/scrollbar.directive.d.ts +3 -0
- package/lib/directives/search-field.directive.d.ts +5 -0
- package/lib/directives/side-sheet/drawer-content.directive.d.ts +3 -0
- package/lib/directives/side-sheet/drawer-header-action.directive.d.ts +3 -0
- package/lib/directives/side-sheet/drawer-header.directive.d.ts +3 -0
- package/lib/directives/side-sheet/drawer.directive.d.ts +3 -0
- package/lib/directives/tab/tab-group-advanced.directive.d.ts +3 -0
- package/lib/directives/tab/tab-group.directive.d.ts +3 -0
- package/lib/directives/tab/tab-label.directive.d.ts +3 -0
- package/lib/directives/text-block/text-block-line.directive.d.ts +3 -0
- package/lib/directives/text-block/text-block.directive.d.ts +3 -0
- package/lib/directives/tooltip/tooltip-image.directive.d.ts +3 -0
- package/lib/directives/tooltip/tooltip-renderer.directive.d.ts +3 -0
- package/lib/material-module.d.ts +12 -0
- package/lib/model/en.d.ts +31 -0
- package/lib/model/no.d.ts +31 -0
- package/lib/pipe/dateFormat.pipe.d.ts +3 -0
- package/lib/qms-angular.component.d.ts +3 -0
- package/lib/qms-angular.module.d.ts +49 -0
- package/lib/qms-angular.service.d.ts +3 -0
- package/lib/qms-ckeditor-components/common/bpmn/toolbar.function.d.ts +2 -2
- package/lib/qms-ckeditor-components/common/constants/ckeditorEvent.constant.d.ts +4 -0
- package/lib/qms-ckeditor-components/common/constants/ckeditorFlowchart.const.d.ts +9 -0
- package/lib/qms-ckeditor-components/common/constants/ckeditorLink.constant.d.ts +6 -0
- package/lib/qms-ckeditor-components/common/enums/document-type.enum.d.ts +1 -0
- package/lib/qms-ckeditor-components/common/enums/shape-flow-chart-connection-type.d.ts +6 -0
- package/lib/qms-ckeditor-components/common/flowchart/sample/sample-graphs.d.ts +14 -0
- package/lib/qms-ckeditor-components/common/flowchart/service/halo-service.d.ts +48 -0
- package/lib/qms-ckeditor-components/common/flowchart/service/inspector-service.d.ts +18 -0
- package/lib/qms-ckeditor-components/common/flowchart/service/keyboard-service.d.ts +17 -0
- package/lib/qms-ckeditor-components/common/flowchart/service/kitchensink-service.d.ts +62 -0
- package/lib/qms-ckeditor-components/common/flowchart/service/stencil-service.d.ts +1183 -0
- package/lib/qms-ckeditor-components/common/flowchart/service/toolbar-service.d.ts +216 -0
- package/lib/qms-ckeditor-components/common/flowchart/shapes/app-shapes.d.ts +61 -0
- package/lib/qms-ckeditor-components/common/flowchart/themes/theme-picker.d.ts +36 -0
- package/lib/qms-ckeditor-components/common/models/qms-ckeditor-flowchart-template.model.d.ts +7 -0
- package/lib/qms-ckeditor-components/common/models/qms-ckeditor-flowchart.model.d.ts +7 -0
- package/lib/qms-ckeditor-components/common/models/qms-ckeditor-save-as-template.model.d.ts +7 -0
- package/lib/qms-ckeditor-components/common/module/confirm/qms-ckeditor-confirm.component.d.ts +3 -0
- package/lib/qms-ckeditor-components/common/module/tree/qms-ckeditor-tree.component.d.ts +3 -0
- package/lib/qms-ckeditor-components/components/qms-ckeditor-about/qms-ckeditor-about.component.d.ts +18 -0
- package/lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/qms-ckeditor-bpmn.component.d.ts +88 -4
- package/lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/save-template/save-template.component.d.ts +11 -2
- package/lib/qms-ckeditor-components/components/qms-ckeditor-flowchart/qms-ckeditor-flowchart.component.d.ts +44 -0
- package/lib/qms-ckeditor-components/components/qms-ckeditor-fullscreen/qms-ckeditor-fullscreen.component.d.ts +3 -0
- package/lib/qms-ckeditor-components/components/qms-ckeditor-imagemap/qms-ckeditor-imagemap.component.d.ts +3 -0
- package/lib/qms-ckeditor-components/components/qms-ckeditor-link/attachments/link-attachment.component.d.ts +3 -0
- package/lib/qms-ckeditor-components/components/qms-ckeditor-link/qms-ckeditor-link.component.d.ts +3 -0
- package/lib/qms-ckeditor-components/components/qms-ckeditor-load-template/qms-ckeditor-load-template.component.d.ts +3 -0
- package/lib/qms-ckeditor-components/components/qms-ckeditor-relation/qmsckeditor-related.component.d.ts +4 -0
- package/lib/qms-ckeditor-components/components/qms-ckeditor-template/qms-ckeditor-template.component.d.ts +3 -0
- package/lib/qms-ckeditor-components/components/qms-ckeditor-tooltip/qms-ckeditor-tooltip.component.d.ts +3 -0
- package/lib/qms-ckeditor-components/models/qms-ckeditor-bpmn-data.model.d.ts +7 -0
- package/lib/qms-ckeditor-components/qms-ckeditor-base.component.d.ts +3 -0
- package/lib/qms-ckeditor-components/qms-ckeditor.component.d.ts +8 -0
- package/lib/qms-ckeditor-components/qms-ckeditor.module.d.ts +44 -0
- package/lib/qms-ckeditor-components/services/qms-ckeditor-base.service.d.ts +3 -0
- package/lib/qms-ckeditor-components/services/qms-ckeditor-bpmn-api.service.d.ts +3 -0
- package/lib/qms-ckeditor-components/services/qms-ckeditor-bpmn.service.d.ts +4 -0
- package/lib/qms-ckeditor-components/services/qms-ckeditor-flowchart.service.d.ts +13 -0
- package/lib/qms-ckeditor-components/services/qms-ckeditor-global.service.d.ts +3 -0
- package/lib/qms-ckeditor-components/services/qms-ckeditor-link.service.d.ts +3 -0
- package/lib/qms-ckeditor-components/services/qms-ckeditor-tree.service.d.ts +3 -0
- package/lib/qms-ckeditor-components/services/qms-ckedtior-template.service.d.ts +3 -0
- package/lib/services/translation-registry.service.d.ts +3 -0
- package/lib/shared.module.d.ts +4 -0
- package/lib.theme.scss +8 -0
- package/package.json +1 -2
- package/public-api.d.ts +15 -0
- package/qms-angular.d.ts +1 -8
- package/src/assets/images/ckeditor5.svg +1 -0
- package/src/assets/jointjs/fonts/Alegreya_Sans/AlegreyaSans-Bold.ttf +0 -0
- package/src/assets/jointjs/fonts/Alegreya_Sans/AlegreyaSans-Light.ttf +0 -0
- package/src/assets/jointjs/fonts/Alegreya_Sans/AlegreyaSans-Regular.ttf +0 -0
- package/src/assets/jointjs/fonts/Alegreya_Sans/OFL.txt +92 -0
- package/src/assets/jointjs/fonts/Averia_Libre/AveriaLibre-Bold.ttf +0 -0
- package/src/assets/jointjs/fonts/Averia_Libre/AveriaLibre-Light.ttf +0 -0
- package/src/assets/jointjs/fonts/Averia_Libre/AveriaLibre-Regular.ttf +0 -0
- package/src/assets/jointjs/fonts/Averia_Libre/OFL.txt +93 -0
- package/src/assets/jointjs/fonts/Roboto_Condensed/LICENSE.txt +202 -0
- package/src/assets/jointjs/fonts/Roboto_Condensed/RobotoCondensed-Bold.ttf +0 -0
- package/src/assets/jointjs/fonts/Roboto_Condensed/RobotoCondensed-Light.ttf +0 -0
- package/src/assets/jointjs/fonts/Roboto_Condensed/RobotoCondensed-Regular.ttf +0 -0
- package/src/assets/jointjs/images/delete-icon-modern.png +0 -0
- package/src/assets/jointjs/images/image-icon1.svg +1 -0
- package/src/assets/jointjs/images/image-icon2.svg +6 -0
- package/src/assets/jointjs/images/image-icon3.svg +11 -0
- package/src/assets/jointjs/images/image-icon4.svg +8 -0
- package/src/assets/jointjs/images/member-female.png +0 -0
- package/src/assets/jointjs/images/member-male.png +0 -0
- package/src/assets/jointjs/images/no-color-icon.svg +72 -0
- package/src/assets/jointjs/images/reset-icon-modern.png +0 -0
- package/src/assets/jointjs/images/save-icon-modern.png +0 -0
- package/src/assets/jointjs/images/to-front-icon-modern.png +0 -0
- package/src/assets/jointjs/images/toback-icon-modern.png +0 -0
- package/src/assets/jointjs/images/toolbar-icons-dark.woff +0 -0
- package/src/assets/jointjs/images/toolbar-icons-material.png +0 -0
- package/src/assets/jointjs/images/toolbar-icons-modern.png +0 -0
- package/src/assets/jointjs/images/transparent-icon.svg +50 -0
- package/src/assets/jointjs/scss/bpmn.scss +36 -35
- package/src/assets/jointjs/scss/style.dark.scss +233 -0
- package/src/assets/jointjs/scss/style.material.scss +234 -0
- package/src/assets/jointjs/scss/style.modern.scss +225 -0
- package/src/assets/jointjs/scss/style.scss +216 -0
- package/src/assets/jointjs/scss/theme-picker.scss +21 -0
- package/src/assets/qms-ckeditor-plugin/build/ckeditor.js +1 -2
- package/src/assets/qms-ckeditor-plugin/build/ckeditor.js.map +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/ar.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/az.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/bg.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/cs.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/da.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/de-ch.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/de.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/en-au.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/en-gb.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/es.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/et.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/fa.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/fi.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/fr.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/gl.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/he.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/hi.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/hr.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/hu.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/id.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/it.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/ja.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/ko.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/ku.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/lt.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/lv.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/nb.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/ne.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/nl.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/no.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/pl.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/pt-br.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/ro.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/ru.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/sk.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/sl.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/sq.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/sr-latn.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/sr.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/sv.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/th.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/tk.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/tr.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/ug.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/uk.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/vi.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/zh-cn.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/zh.js +1 -1
- package/src/assets/qms-ckeditor-plugin/package-lock.json +12198 -9
- package/src/assets/qms-ckeditor-plugin/package.json +1 -0
- package/src/assets/qms-ckeditor-plugin/src/ckeditor.js +22 -5
- package/src/assets/qms-ckeditor-plugin/src/dist/ckeditor.dev.js +173 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/aboutckeditor/aboutckeditor.js +28 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/bpmn/qmsCKEditorBpmnPlugin.js +24 -5
- package/src/assets/qms-ckeditor-plugin/src/plugins/common/qmsCKEditorConstant.js +7 -1
- package/src/assets/qms-ckeditor-plugin/src/plugins/common/qmsCKEditorService.js +20 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/flowchart/qmsCKEditorFlowchartPlugin.js +63 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/fullscreen/dist/qmsCKEditorFullscreenPlugin.dev.js +87 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/imagemap/imagemapediting.js +47 -43
- package/src/assets/qms-ckeditor-plugin/src/plugins/imagemap/imagemapui.js +1 -1
- package/src/assets/qms-ckeditor-plugin/src/plugins/imagemap/insertimagemapcommand.js +72 -108
- package/src/assets/qms-ckeditor-plugin/src/plugins/imagemap/openimagemapcommand.js +58 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/imagemap/resizeimagemapcommand.js +4 -3
- package/src/assets/qms-ckeditor-plugin/src/plugins/imagemap/utils.js +13 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/timestamp/timestamp.js +8 -8
- package/src/assets/qms-ckeditor-plugin/src/plugins/tooltip/tooltipui.js +23 -24
- package/src/assets/qms-ckeditor-plugin/src/themes/icons/flowchart.svg +507 -0
- package/src/assets/qms-ckeditor-plugin/src/themes/icons/information.svg +1 -50
- package/src/assets/qms-ckeditor-plugin/src/themes/icons/timestamp.svg +1 -1
- package/src/assets/qms-ckeditor-plugin/src/themes/icons/tooltip.svg +1 -0
- package/src/lib/components/badges/_qms-badges-base.scss +122 -0
- package/src/lib/components/badges/qms-badges.component.scss +89 -0
- package/src/lib/components/list/_list-base.scss +1 -0
- package/src/lib/components/list/list.scss +2 -2
- package/src/lib/components/related/popup/related-popup.component.scss +1 -1
- package/src/lib/components/related/tree/tree.component.scss +1 -1
- package/src/lib/qms-ckeditor-components/components/qms-ckeditor-about/qms-ckeditor-about.component.scss +16 -0
- package/src/lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/qms-ckeditor-bpmn.component.scss +15 -1
- package/src/lib/qms-ckeditor-components/components/qms-ckeditor-flowchart/qms-ckeditor-flowchart.component.scss +5 -0
- package/src/lib/qms-ckeditor-components/styles/_layout.scss +24 -0
- package/src/lib/qms-ckeditor-components/styles/_modules.scss +8 -0
- package/src/themes/_color.scss +1 -1
- package/src/themes/_scrollbar.scss +5 -5
- package/qms-angular.metadata.json +0 -1
@@ -0,0 +1,68 @@
|
|
1
|
+
/*! Rappid v3.2.0 - HTML5 Diagramming Framework
|
2
|
+
|
3
|
+
Copyright (c) 2015 client IO
|
4
|
+
|
5
|
+
2020-06-12
|
6
|
+
|
7
|
+
|
8
|
+
This Source Code Form is subject to the terms of the Rappid License
|
9
|
+
, v. 2.0. If a copy of the Rappid License was not distributed with this
|
10
|
+
file, You can obtain one at http://jointjs.com/license/rappid_v2.txt
|
11
|
+
or from the Rappid archive as was distributed by client IO. See the LICENSE file.*/
|
12
|
+
import * as _ from 'lodash';
|
13
|
+
export class KeyboardService {
|
14
|
+
constructor() {
|
15
|
+
this.keyboard = new window["joint"].ui.Keyboard();
|
16
|
+
}
|
17
|
+
create(graph, clipboard, selection, paperScroller, commandManager) {
|
18
|
+
this.keyboard.on({
|
19
|
+
'ctrl+c': () => {
|
20
|
+
// Copy all selected elements and their associated links.
|
21
|
+
clipboard.copyElements(selection.collection, graph);
|
22
|
+
},
|
23
|
+
'ctrl+v': () => {
|
24
|
+
const pastedCells = clipboard.pasteCells(graph, {
|
25
|
+
translate: { dx: 20, dy: 20 },
|
26
|
+
useLocalStorage: true
|
27
|
+
});
|
28
|
+
const elements = _.filter(pastedCells, cell => cell.isElement());
|
29
|
+
// Make sure pasted elements get selected immediately. This makes the UX better as
|
30
|
+
// the user can immediately manipulate the pasted elements.
|
31
|
+
selection.collection.reset(elements);
|
32
|
+
},
|
33
|
+
'ctrl+x shift+delete': () => {
|
34
|
+
clipboard.cutElements(selection.collection, graph);
|
35
|
+
},
|
36
|
+
'delete backspace': (evt) => {
|
37
|
+
evt.preventDefault();
|
38
|
+
graph.removeCells(selection.collection.toArray());
|
39
|
+
},
|
40
|
+
'ctrl+z': () => {
|
41
|
+
commandManager.undo();
|
42
|
+
selection.cancelSelection();
|
43
|
+
},
|
44
|
+
'ctrl+y': () => {
|
45
|
+
commandManager.redo();
|
46
|
+
selection.cancelSelection();
|
47
|
+
},
|
48
|
+
'ctrl+a': () => {
|
49
|
+
selection.collection.reset(graph.getElements());
|
50
|
+
},
|
51
|
+
'ctrl+plus': (evt) => {
|
52
|
+
evt.preventDefault();
|
53
|
+
paperScroller.zoom(0.2, { max: 5, grid: 0.2 });
|
54
|
+
},
|
55
|
+
'ctrl+minus': (evt) => {
|
56
|
+
evt.preventDefault();
|
57
|
+
paperScroller.zoom(-0.2, { min: 0.2, grid: 0.2 });
|
58
|
+
},
|
59
|
+
'keydown:shift': (evt) => {
|
60
|
+
paperScroller.setCursor('crosshair');
|
61
|
+
},
|
62
|
+
'keyup:shift': () => {
|
63
|
+
paperScroller.setCursor('grab');
|
64
|
+
}
|
65
|
+
});
|
66
|
+
}
|
67
|
+
}
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Ym9hcmQtc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Ftcy1hbmd1bGFyL3NyYy9saWIvcW1zLWNrZWRpdG9yLWNvbXBvbmVudHMvY29tbW9uL2Zsb3djaGFydC9zZXJ2aWNlL2tleWJvYXJkLXNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7b0ZBVW9GO0FBSXBGLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE1BQU0sT0FBTyxlQUFlO0lBSTFCO1FBQ0UsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDcEQsQ0FBQztJQUVELE1BQU0sQ0FDSixLQUFzQixFQUN0QixTQUE2QixFQUM3QixTQUE2QixFQUM3QixhQUFxQyxFQUNyQyxjQUF3QztRQUd4QyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUVmLFFBQVEsRUFBRSxHQUFHLEVBQUU7Z0JBRWIseURBQXlEO2dCQUN6RCxTQUFTLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDdEQsQ0FBQztZQUVELFFBQVEsRUFBRSxHQUFHLEVBQUU7Z0JBRWIsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUU7b0JBQzlDLFNBQVMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRTtvQkFDN0IsZUFBZSxFQUFFLElBQUk7aUJBQ3RCLENBQUMsQ0FBQztnQkFFSCxNQUFNLFFBQVEsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO2dCQUVqRSxrRkFBa0Y7Z0JBQ2xGLDJEQUEyRDtnQkFDM0QsU0FBUyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDdkMsQ0FBQztZQUVELHFCQUFxQixFQUFFLEdBQUcsRUFBRTtnQkFDMUIsU0FBUyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3JELENBQUM7WUFFRCxrQkFBa0IsRUFBRSxDQUFDLEdBQWlCLEVBQUUsRUFBRTtnQkFDeEMsR0FBRyxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUNyQixLQUFLLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUNwRCxDQUFDO1lBRUQsUUFBUSxFQUFFLEdBQUcsRUFBRTtnQkFDYixjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ3RCLFNBQVMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUM5QixDQUFDO1lBRUQsUUFBUSxFQUFFLEdBQUcsRUFBRTtnQkFDYixjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ3RCLFNBQVMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUM5QixDQUFDO1lBRUQsUUFBUSxFQUFFLEdBQUcsRUFBRTtnQkFDYixTQUFTLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztZQUNsRCxDQUFDO1lBRUQsV0FBVyxFQUFFLENBQUMsR0FBaUIsRUFBRSxFQUFFO2dCQUNqQyxHQUFHLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3JCLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUNqRCxDQUFDO1lBRUQsWUFBWSxFQUFFLENBQUMsR0FBaUIsRUFBRSxFQUFFO2dCQUNsQyxHQUFHLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3JCLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQ3BELENBQUM7WUFFRCxlQUFlLEVBQUUsQ0FBQyxHQUFpQixFQUFFLEVBQUU7Z0JBQ3JDLGFBQWEsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDdkMsQ0FBQztZQUVELGFBQWEsRUFBRSxHQUFHLEVBQUU7Z0JBQ2xCLGFBQWEsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDbEMsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qISBSYXBwaWQgdjMuMi4wIC0gSFRNTDUgRGlhZ3JhbW1pbmcgRnJhbWV3b3JrXHJcblxyXG5Db3B5cmlnaHQgKGMpIDIwMTUgY2xpZW50IElPXHJcblxyXG4gMjAyMC0wNi0xMlxyXG5cclxuXHJcblRoaXMgU291cmNlIENvZGUgRm9ybSBpcyBzdWJqZWN0IHRvIHRoZSB0ZXJtcyBvZiB0aGUgUmFwcGlkIExpY2Vuc2VcclxuLCB2LiAyLjAuIElmIGEgY29weSBvZiB0aGUgUmFwcGlkIExpY2Vuc2Ugd2FzIG5vdCBkaXN0cmlidXRlZCB3aXRoIHRoaXNcclxuZmlsZSwgWW91IGNhbiBvYnRhaW4gb25lIGF0IGh0dHA6Ly9qb2ludGpzLmNvbS9saWNlbnNlL3JhcHBpZF92Mi50eHRcclxuIG9yIGZyb20gdGhlIFJhcHBpZCBhcmNoaXZlIGFzIHdhcyBkaXN0cmlidXRlZCBieSBjbGllbnQgSU8uIFNlZSB0aGUgTElDRU5TRSBmaWxlLiovXHJcblxyXG5cclxuaW1wb3J0ICogYXMgam9pbnQgZnJvbSAnQGNsaWVudGlvL3JhcHBpZCc7XHJcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcclxuXHJcbmV4cG9ydCBjbGFzcyBLZXlib2FyZFNlcnZpY2Uge1xyXG5cclxuICBrZXlib2FyZDogam9pbnQudWkuS2V5Ym9hcmQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5rZXlib2FyZCA9IG5ldyB3aW5kb3dbXCJqb2ludFwiXS51aS5LZXlib2FyZCgpO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlKFxyXG4gICAgZ3JhcGg6IGpvaW50LmRpYS5HcmFwaCxcclxuICAgIGNsaXBib2FyZDogam9pbnQudWkuQ2xpcGJvYXJkLFxyXG4gICAgc2VsZWN0aW9uOiBqb2ludC51aS5TZWxlY3Rpb24sXHJcbiAgICBwYXBlclNjcm9sbGVyOiBqb2ludC51aS5QYXBlclNjcm9sbGVyLFxyXG4gICAgY29tbWFuZE1hbmFnZXI6IGpvaW50LmRpYS5Db21tYW5kTWFuYWdlclxyXG4gICkge1xyXG5cclxuICAgIHRoaXMua2V5Ym9hcmQub24oe1xyXG5cclxuICAgICAgJ2N0cmwrYyc6ICgpID0+IHtcclxuXHJcbiAgICAgICAgLy8gQ29weSBhbGwgc2VsZWN0ZWQgZWxlbWVudHMgYW5kIHRoZWlyIGFzc29jaWF0ZWQgbGlua3MuXHJcbiAgICAgICAgY2xpcGJvYXJkLmNvcHlFbGVtZW50cyhzZWxlY3Rpb24uY29sbGVjdGlvbiwgZ3JhcGgpO1xyXG4gICAgICB9LFxyXG5cclxuICAgICAgJ2N0cmwrdic6ICgpID0+IHtcclxuXHJcbiAgICAgICAgY29uc3QgcGFzdGVkQ2VsbHMgPSBjbGlwYm9hcmQucGFzdGVDZWxscyhncmFwaCwge1xyXG4gICAgICAgICAgdHJhbnNsYXRlOiB7IGR4OiAyMCwgZHk6IDIwIH0sXHJcbiAgICAgICAgICB1c2VMb2NhbFN0b3JhZ2U6IHRydWVcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgY29uc3QgZWxlbWVudHMgPSBfLmZpbHRlcihwYXN0ZWRDZWxscywgY2VsbCA9PiBjZWxsLmlzRWxlbWVudCgpKTtcclxuXHJcbiAgICAgICAgLy8gTWFrZSBzdXJlIHBhc3RlZCBlbGVtZW50cyBnZXQgc2VsZWN0ZWQgaW1tZWRpYXRlbHkuIFRoaXMgbWFrZXMgdGhlIFVYIGJldHRlciBhc1xyXG4gICAgICAgIC8vIHRoZSB1c2VyIGNhbiBpbW1lZGlhdGVseSBtYW5pcHVsYXRlIHRoZSBwYXN0ZWQgZWxlbWVudHMuXHJcbiAgICAgICAgc2VsZWN0aW9uLmNvbGxlY3Rpb24ucmVzZXQoZWxlbWVudHMpO1xyXG4gICAgICB9LFxyXG5cclxuICAgICAgJ2N0cmwreCBzaGlmdCtkZWxldGUnOiAoKSA9PiB7XHJcbiAgICAgICAgY2xpcGJvYXJkLmN1dEVsZW1lbnRzKHNlbGVjdGlvbi5jb2xsZWN0aW9uLCBncmFwaCk7XHJcbiAgICAgIH0sXHJcblxyXG4gICAgICAnZGVsZXRlIGJhY2tzcGFjZSc6IChldnQ6IEpRdWVyeS5FdmVudCkgPT4ge1xyXG4gICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIGdyYXBoLnJlbW92ZUNlbGxzKHNlbGVjdGlvbi5jb2xsZWN0aW9uLnRvQXJyYXkoKSk7XHJcbiAgICAgIH0sXHJcblxyXG4gICAgICAnY3RybCt6JzogKCkgPT4ge1xyXG4gICAgICAgIGNvbW1hbmRNYW5hZ2VyLnVuZG8oKTtcclxuICAgICAgICBzZWxlY3Rpb24uY2FuY2VsU2VsZWN0aW9uKCk7XHJcbiAgICAgIH0sXHJcblxyXG4gICAgICAnY3RybCt5JzogKCkgPT4ge1xyXG4gICAgICAgIGNvbW1hbmRNYW5hZ2VyLnJlZG8oKTtcclxuICAgICAgICBzZWxlY3Rpb24uY2FuY2VsU2VsZWN0aW9uKCk7XHJcbiAgICAgIH0sXHJcblxyXG4gICAgICAnY3RybCthJzogKCkgPT4ge1xyXG4gICAgICAgIHNlbGVjdGlvbi5jb2xsZWN0aW9uLnJlc2V0KGdyYXBoLmdldEVsZW1lbnRzKCkpO1xyXG4gICAgICB9LFxyXG5cclxuICAgICAgJ2N0cmwrcGx1cyc6IChldnQ6IEpRdWVyeS5FdmVudCkgPT4ge1xyXG4gICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIHBhcGVyU2Nyb2xsZXIuem9vbSgwLjIsIHsgbWF4OiA1LCBncmlkOiAwLjIgfSk7XHJcbiAgICAgIH0sXHJcblxyXG4gICAgICAnY3RybCttaW51cyc6IChldnQ6IEpRdWVyeS5FdmVudCkgPT4ge1xyXG4gICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIHBhcGVyU2Nyb2xsZXIuem9vbSgtMC4yLCB7IG1pbjogMC4yLCBncmlkOiAwLjIgfSk7XHJcbiAgICAgIH0sXHJcblxyXG4gICAgICAna2V5ZG93bjpzaGlmdCc6IChldnQ6IEpRdWVyeS5FdmVudCkgPT4ge1xyXG4gICAgICAgIHBhcGVyU2Nyb2xsZXIuc2V0Q3Vyc29yKCdjcm9zc2hhaXInKTtcclxuICAgICAgfSxcclxuXHJcbiAgICAgICdrZXl1cDpzaGlmdCc6ICgpID0+IHtcclxuICAgICAgICBwYXBlclNjcm9sbGVyLnNldEN1cnNvcignZ3JhYicpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIl19
|
@@ -0,0 +1,372 @@
|
|
1
|
+
/*! Rappid v3.2.0 - HTML5 Diagramming Framework
|
2
|
+
|
3
|
+
Copyright (c) 2015 client IO
|
4
|
+
|
5
|
+
2020-06-12
|
6
|
+
|
7
|
+
|
8
|
+
This Source Code Form is subject to the terms of the Rappid License
|
9
|
+
, v. 2.0. If a copy of the Rappid License was not distributed with this
|
10
|
+
file, You can obtain one at http://jointjs.com/license/rappid_v2.txt
|
11
|
+
or from the Rappid archive as was distributed by client IO. See the LICENSE file.*/
|
12
|
+
import { __awaiter } from "tslib";
|
13
|
+
import * as dagre from 'dagre';
|
14
|
+
import * as _ from 'lodash';
|
15
|
+
import { FlowChartConst } from '../../constants/ckeditorFlowchart.const';
|
16
|
+
import * as appShapes from '../shapes/app-shapes';
|
17
|
+
var joint = window['joint'];
|
18
|
+
class KitchenSinkService {
|
19
|
+
constructor(el, stencilService, toolbarService, inspectorService, haloService, keyboardService) {
|
20
|
+
// backwards compatibility for older shapes
|
21
|
+
this.exportStylesheet = '.scalable * { vector-effect: non-scaling-stroke }';
|
22
|
+
this.el = el;
|
23
|
+
// apply current joint js theme
|
24
|
+
const view = new window["joint"].mvc.View({ el });
|
25
|
+
view.delegateEvents({
|
26
|
+
'mouseup input[type="range"]': (evt) => evt.target.blur()
|
27
|
+
});
|
28
|
+
this.stencilService = stencilService;
|
29
|
+
this.toolbarService = toolbarService;
|
30
|
+
this.inspectorService = inspectorService;
|
31
|
+
this.haloService = haloService;
|
32
|
+
this.keyboardService = keyboardService;
|
33
|
+
}
|
34
|
+
startRappid() {
|
35
|
+
window["joint"].setTheme('modern');
|
36
|
+
this.initializePaper();
|
37
|
+
this.initializeStencil();
|
38
|
+
this.initializeSelection();
|
39
|
+
this.initializeToolsAndInspector();
|
40
|
+
this.initializeNavigator();
|
41
|
+
this.initializeToolbar();
|
42
|
+
this.initializeKeyboardShortcuts();
|
43
|
+
this.initializeTooltips();
|
44
|
+
this.initializeStencilTooltips();
|
45
|
+
}
|
46
|
+
initializePaper() {
|
47
|
+
const graph = this.graph = new window["joint"].dia.Graph({}, {
|
48
|
+
cellNamespace: appShapes
|
49
|
+
});
|
50
|
+
graph.on('add', (cell, collection, opt) => {
|
51
|
+
if (opt.stencil) {
|
52
|
+
this.inspectorService.create(cell);
|
53
|
+
}
|
54
|
+
});
|
55
|
+
this.commandManager = new window["joint"].dia.CommandManager({ graph: graph });
|
56
|
+
const paper = this.paper = new window["joint"].dia.Paper({
|
57
|
+
width: 1000,
|
58
|
+
height: 1000,
|
59
|
+
gridSize: 10,
|
60
|
+
drawGrid: true,
|
61
|
+
model: graph,
|
62
|
+
cellViewNamespace: appShapes,
|
63
|
+
defaultLink: new appShapes.app.Link(),
|
64
|
+
defaultConnectionPoint: appShapes.app.Link.connectionPoint,
|
65
|
+
interactive: { linkMove: false },
|
66
|
+
async: true,
|
67
|
+
sorting: joint.dia.Paper.sorting.APPROX
|
68
|
+
});
|
69
|
+
paper.on('blank:mousewheel', _.partial(this.onMousewheel, null), this);
|
70
|
+
paper.on('cell:mousewheel', this.onMousewheel.bind(this));
|
71
|
+
this.snaplines = new window["joint"].ui.Snaplines({ paper: paper });
|
72
|
+
const paperScroller = this.paperScroller = new window["joint"].ui.PaperScroller({
|
73
|
+
paper,
|
74
|
+
autoResizePaper: true,
|
75
|
+
scrollWhileDragging: true,
|
76
|
+
cursor: 'grab'
|
77
|
+
});
|
78
|
+
this.renderPlugin('.paper-container', paperScroller);
|
79
|
+
paperScroller.render().center();
|
80
|
+
}
|
81
|
+
initializeStencil() {
|
82
|
+
this.stencilService.create(this.paperScroller, this.snaplines);
|
83
|
+
this.renderPlugin('.stencil-container', this.stencilService.stencil);
|
84
|
+
this.stencilService.setShapes();
|
85
|
+
}
|
86
|
+
initializeSelection() {
|
87
|
+
this.clipboard = new window["joint"].ui.Clipboard();
|
88
|
+
this.selection = new window["joint"].ui.Selection({ paper: this.paper, useModelGeometry: true });
|
89
|
+
this.selection.collection.on('reset add remove', this.onSelectionChange.bind(this));
|
90
|
+
const keyboard = this.keyboardService.keyboard;
|
91
|
+
// Initiate selecting when the user grabs the blank area of the paper while the Shift key is pressed.
|
92
|
+
// Otherwise, initiate paper pan.
|
93
|
+
this.paper.on('blank:pointerdown', (evt, x, y) => {
|
94
|
+
if (keyboard.isActive('shift', evt)) {
|
95
|
+
this.selection.startSelecting(evt);
|
96
|
+
}
|
97
|
+
else {
|
98
|
+
this.selection.collection.reset([]);
|
99
|
+
this.paperScroller.startPanning(evt);
|
100
|
+
this.paper.removeTools();
|
101
|
+
}
|
102
|
+
});
|
103
|
+
this.paper.on('element:pointerdown', (elementView, evt) => {
|
104
|
+
// Select an element if CTRL/Meta key is pressed while the element is clicked.
|
105
|
+
if (keyboard.isActive('ctrl meta', evt)) {
|
106
|
+
this.selection.collection.add(elementView.model);
|
107
|
+
}
|
108
|
+
});
|
109
|
+
this.selection.on('selection-box:pointerdown', (elementView, evt) => {
|
110
|
+
// Unselect an element if the CTRL/Meta key is pressed while a selected element is clicked.
|
111
|
+
if (keyboard.isActive('ctrl meta', evt)) {
|
112
|
+
this.selection.collection.remove(elementView.model);
|
113
|
+
}
|
114
|
+
}, this);
|
115
|
+
}
|
116
|
+
onSelectionChange() {
|
117
|
+
const { paper, selection } = this;
|
118
|
+
const { collection } = selection;
|
119
|
+
paper.removeTools();
|
120
|
+
joint.ui.Halo.clear(paper);
|
121
|
+
joint.ui.FreeTransform.clear(paper);
|
122
|
+
joint.ui.Inspector.close();
|
123
|
+
if (collection.length === 1) {
|
124
|
+
const primaryCell = collection.first();
|
125
|
+
const primaryCellView = paper.requireView(primaryCell);
|
126
|
+
selection.destroySelectionBox(primaryCell);
|
127
|
+
this.selectPrimaryCell(primaryCellView);
|
128
|
+
}
|
129
|
+
else if (collection.length === 2) {
|
130
|
+
collection.each(function (cell) {
|
131
|
+
selection.createSelectionBox(cell);
|
132
|
+
});
|
133
|
+
}
|
134
|
+
}
|
135
|
+
selectPrimaryCell(cellView) {
|
136
|
+
const cell = cellView.model;
|
137
|
+
if (cell.isElement()) {
|
138
|
+
this.selectPrimaryElement(cellView);
|
139
|
+
}
|
140
|
+
else {
|
141
|
+
this.selectPrimaryLink(cellView);
|
142
|
+
}
|
143
|
+
this.inspectorService.create(cell);
|
144
|
+
}
|
145
|
+
selectPrimaryElement(elementView) {
|
146
|
+
const element = elementView.model;
|
147
|
+
new window["joint"].ui.FreeTransform({
|
148
|
+
cellView: elementView,
|
149
|
+
allowRotation: false,
|
150
|
+
preserveAspectRatio: !!element.get('preserveAspectRatio'),
|
151
|
+
allowOrthogonalResize: element.get('allowOrthogonalResize') !== false
|
152
|
+
}).render();
|
153
|
+
this.haloService.create(elementView);
|
154
|
+
}
|
155
|
+
selectPrimaryLink(linkView) {
|
156
|
+
const ns = joint.linkTools;
|
157
|
+
const toolsView = new joint.dia.ToolsView({
|
158
|
+
name: 'link-pointerdown',
|
159
|
+
tools: [
|
160
|
+
new ns.Vertices(),
|
161
|
+
new ns.SourceAnchor(),
|
162
|
+
new ns.TargetAnchor(),
|
163
|
+
new ns.SourceArrowhead(),
|
164
|
+
new ns.TargetArrowhead(),
|
165
|
+
new ns.Segments,
|
166
|
+
new ns.Boundary({ padding: 15 }),
|
167
|
+
new ns.Remove({ offset: -20, distance: 40 })
|
168
|
+
]
|
169
|
+
});
|
170
|
+
linkView.addTools(toolsView);
|
171
|
+
}
|
172
|
+
initializeToolsAndInspector() {
|
173
|
+
this.paper.on('cell:pointerup', (cellView) => {
|
174
|
+
const cell = cellView.model;
|
175
|
+
const { collection } = this.selection;
|
176
|
+
if (collection.includes(cell)) {
|
177
|
+
return;
|
178
|
+
}
|
179
|
+
collection.reset([cell]);
|
180
|
+
});
|
181
|
+
this.paper.on('link:mouseenter', (linkView) => {
|
182
|
+
// Open tool only if there is none yet
|
183
|
+
if (linkView.hasTools()) {
|
184
|
+
return;
|
185
|
+
}
|
186
|
+
const ns = joint.linkTools;
|
187
|
+
const toolsView = new joint.dia.ToolsView({
|
188
|
+
name: 'link-hover',
|
189
|
+
tools: [
|
190
|
+
new ns.Vertices({ vertexAdding: false }),
|
191
|
+
new ns.SourceArrowhead(),
|
192
|
+
new ns.TargetArrowhead()
|
193
|
+
]
|
194
|
+
});
|
195
|
+
linkView.addTools(toolsView);
|
196
|
+
});
|
197
|
+
this.paper.on('link:mouseleave', (linkView) => {
|
198
|
+
// Remove only the hover tool, not the pointerdown tool
|
199
|
+
if (linkView.hasTools('link-hover')) {
|
200
|
+
linkView.removeTools();
|
201
|
+
}
|
202
|
+
});
|
203
|
+
this.graph.on('change', (cell, opt) => {
|
204
|
+
if (!cell.isLink() || !opt.inspector) {
|
205
|
+
return;
|
206
|
+
}
|
207
|
+
const ns = joint.linkTools;
|
208
|
+
const toolsView = new joint.dia.ToolsView({
|
209
|
+
name: 'link-inspected',
|
210
|
+
tools: [
|
211
|
+
new ns.Boundary({ padding: 15 }),
|
212
|
+
]
|
213
|
+
});
|
214
|
+
cell.findView(this.paper).addTools(toolsView);
|
215
|
+
});
|
216
|
+
}
|
217
|
+
initializeNavigator() {
|
218
|
+
const navigator = this.navigator = new joint.ui.Navigator({
|
219
|
+
width: 240,
|
220
|
+
height: 115,
|
221
|
+
paperScroller: this.paperScroller,
|
222
|
+
zoom: false,
|
223
|
+
paperOptions: {
|
224
|
+
async: true,
|
225
|
+
elementView: appShapes.NavigatorElementView,
|
226
|
+
linkView: appShapes.NavigatorLinkView,
|
227
|
+
cellViewNamespace: { /* no other views are accessible in the navigator */}
|
228
|
+
}
|
229
|
+
});
|
230
|
+
this.renderPlugin('.joint-navigator-container', navigator);
|
231
|
+
}
|
232
|
+
initializeToolbar() {
|
233
|
+
this.toolbarService.create(this.commandManager, this.paperScroller);
|
234
|
+
this.toolbarService.toolbar.on({
|
235
|
+
// 'svg:pointerclick': this.openAsSVG.bind(this),
|
236
|
+
// 'png:pointerclick': this.openAsPNG.bind(this),
|
237
|
+
'to-front:pointerclick': this.applyOnSelection.bind(this, 'toFront'),
|
238
|
+
'to-back:pointerclick': this.applyOnSelection.bind(this, 'toBack'),
|
239
|
+
'layout:pointerclick': this.layoutDirectedGraph.bind(this),
|
240
|
+
'snapline:change': this.changeSnapLines.bind(this),
|
241
|
+
'clear:pointerclick': this.graph.clear.bind(this.graph),
|
242
|
+
'print:pointerclick': this.paper.print.bind(this.paper),
|
243
|
+
'grid-size:change': this.paper.setGridSize.bind(this.paper),
|
244
|
+
'selectTemplate:option:select': this.onChangeTemplate,
|
245
|
+
'deleteTemplate:pointerclick': this.onDeleteTemplate,
|
246
|
+
'saveAsTemplate:pointerclick': this.onSaveAsTemplate,
|
247
|
+
'resetTemplate:pointerclick': this.onResetTemplate
|
248
|
+
});
|
249
|
+
this.renderPlugin('.toolbar-container', this.toolbarService.toolbar);
|
250
|
+
}
|
251
|
+
applyOnSelection(method) {
|
252
|
+
this.graph.startBatch('selection');
|
253
|
+
this.selection.collection.models.forEach(function (model) { model[method](); });
|
254
|
+
this.graph.stopBatch('selection');
|
255
|
+
}
|
256
|
+
changeSnapLines(checked) {
|
257
|
+
if (checked) {
|
258
|
+
this.snaplines.startListening();
|
259
|
+
this.stencilService.stencil.options.snaplines = this.snaplines;
|
260
|
+
}
|
261
|
+
else {
|
262
|
+
this.snaplines.stopListening();
|
263
|
+
this.stencilService.stencil.options.snaplines = null;
|
264
|
+
}
|
265
|
+
}
|
266
|
+
initializeKeyboardShortcuts() {
|
267
|
+
this.keyboardService.create(this.graph, this.clipboard, this.selection, this.paperScroller, this.commandManager);
|
268
|
+
}
|
269
|
+
initializeTooltips() {
|
270
|
+
return new joint.ui.Tooltip({
|
271
|
+
rootTarget: document.getElementById('tooltipcontainer'),
|
272
|
+
target: '[data-tooltip]',
|
273
|
+
direction: joint.ui.Tooltip.TooltipArrowPosition.Auto,
|
274
|
+
padding: 10
|
275
|
+
});
|
276
|
+
}
|
277
|
+
initializeStencilTooltips() {
|
278
|
+
return new joint.ui.Tooltip({
|
279
|
+
rootTarget: document.getElementById('flowchartstencil'),
|
280
|
+
target: '[data-tooltip]',
|
281
|
+
direction: joint.ui.Tooltip.TooltipArrowPosition.Auto,
|
282
|
+
padding: 10
|
283
|
+
});
|
284
|
+
}
|
285
|
+
openAsSVG() {
|
286
|
+
this.paper.hideTools().toSVG((svg) => {
|
287
|
+
new joint.ui.Lightbox({
|
288
|
+
image: 'data:image/svg+xml,' + encodeURIComponent(svg),
|
289
|
+
downloadable: true,
|
290
|
+
fileName: 'Rappid'
|
291
|
+
}).open();
|
292
|
+
this.paper.showTools();
|
293
|
+
}, {
|
294
|
+
preserveDimensions: true,
|
295
|
+
convertImagesToDataUris: true,
|
296
|
+
useComputedStyles: false,
|
297
|
+
stylesheet: this.exportStylesheet
|
298
|
+
});
|
299
|
+
}
|
300
|
+
openAsPNG() {
|
301
|
+
this.paper.hideTools().toPNG((dataURL) => {
|
302
|
+
new joint.ui.Lightbox({
|
303
|
+
image: dataURL,
|
304
|
+
downloadable: true,
|
305
|
+
fileName: 'Rappid'
|
306
|
+
}).open();
|
307
|
+
this.paper.showTools();
|
308
|
+
}, {
|
309
|
+
padding: 10,
|
310
|
+
useComputedStyles: false,
|
311
|
+
stylesheet: this.exportStylesheet
|
312
|
+
});
|
313
|
+
}
|
314
|
+
onMousewheel(cellView, evt, ox, oy, delta) {
|
315
|
+
if (this.keyboardService.keyboard.isActive('alt', evt)) {
|
316
|
+
evt.preventDefault();
|
317
|
+
this.paperScroller.zoom(delta * 0.2, { min: 0.2, max: 5, grid: 0.2, ox, oy });
|
318
|
+
}
|
319
|
+
}
|
320
|
+
layoutDirectedGraph() {
|
321
|
+
joint.layout.DirectedGraph.layout(this.graph, {
|
322
|
+
graphlib: dagre.graphlib,
|
323
|
+
dagre: dagre,
|
324
|
+
setVertices: true,
|
325
|
+
rankDir: 'TB',
|
326
|
+
marginX: 100,
|
327
|
+
marginY: 100
|
328
|
+
});
|
329
|
+
this.paperScroller.centerContent();
|
330
|
+
}
|
331
|
+
renderPlugin(selector, plugin) {
|
332
|
+
this.el.querySelector(selector).appendChild(plugin.el);
|
333
|
+
plugin.render();
|
334
|
+
}
|
335
|
+
getImageContent() {
|
336
|
+
return __awaiter(this, void 0, void 0, function* () {
|
337
|
+
return new Promise((resolve) => {
|
338
|
+
this.paper.toPNG((imageData) => {
|
339
|
+
resolve(imageData);
|
340
|
+
});
|
341
|
+
});
|
342
|
+
});
|
343
|
+
}
|
344
|
+
getJsonContent() {
|
345
|
+
return JSON.stringify(this.graph.toJSON());
|
346
|
+
}
|
347
|
+
onChangeTemplate(event) {
|
348
|
+
if (event.jsonContent) {
|
349
|
+
window[FlowChartConst.KS_SELECTED_FLOWCHART_ID] = event.flowChartId;
|
350
|
+
window[FlowChartConst.KS_SELECTED_JSONCONTENT] = event.jsonContent;
|
351
|
+
window.postMessage(FlowChartConst.KS_CHANGE_TEMPLATE, '*');
|
352
|
+
}
|
353
|
+
}
|
354
|
+
onDeleteTemplate(event) {
|
355
|
+
if (window[FlowChartConst.KS_IS_SELECTED_TEMPLATE]) {
|
356
|
+
window.postMessage(FlowChartConst.KS_DELETE_TEMPLATE, '*');
|
357
|
+
}
|
358
|
+
else {
|
359
|
+
window.postMessage(FlowChartConst.MUST_SELECT_TEMPLATE, '*');
|
360
|
+
}
|
361
|
+
}
|
362
|
+
onSaveAsTemplate() {
|
363
|
+
window.postMessage(FlowChartConst.KS_SAVE_AS_TEMPLATE, '*');
|
364
|
+
}
|
365
|
+
onResetTemplate() {
|
366
|
+
if (window[FlowChartConst.KS_IS_SELECTED_TEMPLATE]) {
|
367
|
+
window.postMessage(FlowChartConst.KS_RESET_TEMPLATE, '*');
|
368
|
+
}
|
369
|
+
}
|
370
|
+
}
|
371
|
+
export default KitchenSinkService;
|
372
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2l0Y2hlbnNpbmstc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Ftcy1hbmd1bGFyL3NyYy9saWIvcW1zLWNrZWRpdG9yLWNvbXBvbmVudHMvY29tbW9uL2Zsb3djaGFydC9zZXJ2aWNlL2tpdGNoZW5zaW5rLXNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7b0ZBVW9GOztBQUdwRixPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMvQixPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDekUsT0FBTyxLQUFLLFNBQVMsTUFBTSxzQkFBc0IsQ0FBQztBQU1sRCxJQUFJLEtBQUssR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7QUFFNUIsTUFBTSxrQkFBa0I7SUFvQnRCLFlBQ0UsRUFBVyxFQUNYLGNBQThCLEVBQzlCLGNBQThCLEVBQzlCLGdCQUFrQyxFQUNsQyxXQUF3QixFQUN4QixlQUFnQztRQThUbEMsMkNBQTJDO1FBQzNDLHFCQUFnQixHQUFHLG1EQUFtRCxDQUFDO1FBN1RyRSxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUNiLCtCQUErQjtRQUMvQixNQUFNLElBQUksR0FBRyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsY0FBYyxDQUFDO1lBQ2xCLDZCQUE2QixFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRTtTQUMxRCxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztRQUNyQyxJQUFJLENBQUMsY0FBYyxH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QUFvQixFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQzlEO0lBQ0gsQ0FBQztJQUVELGdCQUFnQjtRQUNkLE1BQU0sQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLG1CQUFtQixFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxNQUFNLENBQUMsY0FBYyxDQUFDLHVCQUF1QixDQUFDLEVBQUU7WUFDbEQsTUFBTSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxDQUFDLENBQUM7U0FDM0Q7SUFDSCxDQUFDO0NBQ0Y7QUFFRCxlQUFlLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyohIFJhcHBpZCB2My4yLjAgLSBIVE1MNSBEaWFncmFtbWluZyBGcmFtZXdvcmtcclxuXHJcbkNvcHlyaWdodCAoYykgMjAxNSBjbGllbnQgSU9cclxuXHJcbiAyMDIwLTA2LTEyXHJcblxyXG5cclxuVGhpcyBTb3VyY2UgQ29kZSBGb3JtIGlzIHN1YmplY3QgdG8gdGhlIHRlcm1zIG9mIHRoZSBSYXBwaWQgTGljZW5zZVxyXG4sIHYuIDIuMC4gSWYgYSBjb3B5IG9mIHRoZSBSYXBwaWQgTGljZW5zZSB3YXMgbm90IGRpc3RyaWJ1dGVkIHdpdGggdGhpc1xyXG5maWxlLCBZb3UgY2FuIG9idGFpbiBvbmUgYXQgaHR0cDovL2pvaW50anMuY29tL2xpY2Vuc2UvcmFwcGlkX3YyLnR4dFxyXG4gb3IgZnJvbSB0aGUgUmFwcGlkIGFyY2hpdmUgYXMgd2FzIGRpc3RyaWJ1dGVkIGJ5IGNsaWVudCBJTy4gU2VlIHRoZSBMSUNFTlNFIGZpbGUuKi9cclxuXHJcblxyXG5pbXBvcnQgKiBhcyBkYWdyZSBmcm9tICdkYWdyZSc7XHJcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcclxuaW1wb3J0IHsgRmxvd0NoYXJ0Q29uc3QgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvY2tlZGl0b3JGbG93Y2hhcnQuY29uc3QnO1xyXG5pbXBvcnQgKiBhcyBhcHBTaGFwZXMgZnJvbSAnLi4vc2hhcGVzL2FwcC1zaGFwZXMnO1xyXG5pbXBvcnQgeyBIYWxvU2VydmljZSB9IGZyb20gJy4vaGFsby1zZXJ2aWNlJztcclxuaW1wb3J0IHsgSW5zcGVjdG9yU2VydmljZSB9IGZyb20gJy4vaW5zcGVjdG9yLXNlcnZpY2UnO1xyXG5pbXBvcnQgeyBLZXlib2FyZFNlcnZpY2UgfSBmcm9tICcuL2tleWJvYXJkLXNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdGVuY2lsU2VydmljZSB9IGZyb20gJy4vc3RlbmNpbC1zZXJ2aWNlJztcclxuaW1wb3J0IHsgVG9vbGJhclNlcnZpY2UgfSBmcm9tICcuL3Rvb2xiYXItc2VydmljZSc7XHJcbnZhciBqb2ludCA9IHdpbmRvd1snam9pbnQnXTtcclxuXHJcbmNsYXNzIEtpdGNoZW5TaW5rU2VydmljZSB7XHJcblxyXG4gIGVsOiBFbGVtZW50O1xyXG5cclxuICBncmFwaDogam9pbnQuZGlhLkdyYXBoO1xyXG4gIHBhcGVyOiBqb2ludC5kaWEuUGFwZXI7XHJcbiAgcGFwZXJTY3JvbGxlcjogam9pbnQudWkuUGFwZXJTY3JvbGxlcjtcclxuXHJcbiAgY29tbWFuZE1hbmFnZXI6IGpvaW50LmRpYS5Db21tYW5kTWFuYWdlcjtcclxuICBzbmFwbGluZXM6IGpvaW50LnVpLlNuYXBsaW5lcztcclxuICBjbGlwYm9hcmQ6IGpvaW50LnVpLkNsaXBib2FyZDtcclxuICBzZWxlY3Rpb246IGpvaW50LnVpLlNlbGVjdGlvbjtcclxuICBuYXZpZ2F0b3I6IGpvaW50LnVpLk5hdmlnYXRvcjtcclxuXHJcbiAgc3RlbmNpbFNlcnZpY2U6IFN0ZW5jaWxTZXJ2aWNlO1xyXG4gIHRvb2xiYXJTZXJ2aWNlOiBUb29sYmFyU2VydmljZTtcclxuICBpbnNwZWN0b3JTZXJ2aWNlOiBJbnNwZWN0b3JTZXJ2aWNlO1xyXG4gIGhhbG9TZXJ2aWNlOiBIYWxvU2VydmljZTtcclxuICBrZXlib2FyZFNlcnZpY2U6IEtleWJvYXJkU2VydmljZTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBlbDogRWxlbWVudCxcclxuICAgIHN0ZW5jaWxTZXJ2aWNlOiBTdGVuY2lsU2VydmljZSxcclxuICAgIHRvb2xiYXJTZXJ2aWNlOiBUb29sYmFyU2VydmljZSxcclxuICAgIGluc3BlY3RvclNlcnZpY2U6IEluc3BlY3RvclNlcnZpY2UsXHJcbiAgICBoYWxvU2VydmljZTogSGFsb1NlcnZpY2UsXHJcbiAgICBrZXlib2FyZFNlcnZpY2U6IEtleWJvYXJkU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5lbCA9IGVsO1xyXG4gICAgLy8gYXBwbHkgY3VycmVudCBqb2ludCBqcyB0aGVtZVxyXG4gICAgY29uc3QgdmlldyA9IG5ldyB3aW5kb3dbXCJqb2ludFwiXS5tdmMuVmlldyh7IGVsIH0pO1xyXG4gICAgdmlldy5kZWxlZ2F0ZUV2ZW50cyh7XHJcbiAgICAgICdtb3VzZXVwIGlucHV0W3R5cGU9XCJyYW5nZVwiXSc6IChldnQpID0+IGV2dC50YXJnZXQuYmx1cigpXHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnN0ZW5jaWxTZXJ2aWNlID0gc3RlbmNpbFNlcnZpY2U7XHJcbiAgICB0aGlzLnRvb2xiYXJTZXJ2aWNlID0gdG9vbGJhclNlcnZpY2U7XHJcbiAgICB0aGlzLmluc3BlY3RvclNlcnZpY2UgPSBpbnNwZWN0b3JTZXJ2aWNlO1xyXG4gICAgdGhpcy5oYWxvU2VydmljZSA9IGhhbG9TZXJ2aWNlO1xyXG4gICAgdGhpcy5rZXlib2FyZFNlcnZpY2UgPSBrZXlib2FyZFNlcnZpY2U7XHJcbiAgfVxyXG5cclxuICBzdGFydFJhcHBpZCgpIHtcclxuXHJcbiAgICB3aW5kb3dbXCJqb2ludFwiXS5zZXRUaGVtZSgnbW9kZXJuJyk7XHJcblxyXG4gICAgdGhpcy5pbml0aWFsaXplUGFwZXIoKTtcclxuICAgIHRoaXMuaW5pdGlhbGl6ZVN0ZW5jaWwoKTtcclxuICAgIHRoaXMuaW5pdGlhbGl6ZVNlbGVjdGlvbigpO1xyXG4gICAgdGhpcy5pbml0aWFsaXplVG9vbHNBbmRJbnNwZWN0b3IoKTtcclxuICAgIHRoaXMuaW5pdGlhbGl6ZU5hdmlnYXRvcigpO1xyXG4gICAgdGhpcy5pbml0aWFsaXplVG9vbGJhcigpO1xyXG4gICAgdGhpcy5pbml0aWFsaXplS2V5Ym9hcmRTaG9ydGN1dHMoKTtcclxuICAgIHRoaXMuaW5pdGlhbGl6ZVRvb2x0aXBzKCk7XHJcbiAgICB0aGlzLmluaXRpYWxpemVTdGVuY2lsVG9vbHRpcHMoKTtcclxuICB9XHJcblxyXG4gIGluaXRpYWxpemVQYXBlcigpIHtcclxuXHJcbiAgICBjb25zdCBncmFwaCA9IHRoaXMuZ3JhcGggPSBuZXcgd2luZG93W1wiam9pbnRcIl0uZGlhLkdyYXBoKHt9LCB7XHJcbiAgICAgIGNlbGxOYW1lc3BhY2U6IGFwcFNoYXBlc1xyXG4gICAgfSk7XHJcblxyXG4gICAgZ3JhcGgub24oJ2FkZCcsIChjZWxsOiBqb2ludC5kaWEuQ2VsbCwgY29sbGVjdGlvbjogYW55LCBvcHQ6IGFueSkgPT4ge1xyXG4gICAgICBpZiAob3B0LnN0ZW5jaWwpIHsgdGhpcy5pbnNwZWN0b3JTZXJ2aWNlLmNyZWF0ZShjZWxsKTsgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5jb21tYW5kTWFuYWdlciA9IG5ldyB3aW5kb3dbXCJqb2ludFwiXS5kaWEuQ29tbWFuZE1hbmFnZXIoeyBncmFwaDogZ3JhcGggfSk7XHJcblxyXG4gICAgY29uc3QgcGFwZXIgPSB0aGlzLnBhcGVyID0gbmV3IHdpbmRvd1tcImpvaW50XCJdLmRpYS5QYXBlcih7XHJcbiAgICAgIHdpZHRoOiAxMDAwLFxyXG4gICAgICBoZWlnaHQ6IDEwMDAsXHJcbiAgICAgIGdyaWRTaXplOiAxMCxcclxuICAgICAgZHJhd0dyaWQ6IHRydWUsXHJcbiAgICAgIG1vZGVsOiBncmFwaCxcclxuICAgICAgY2VsbFZpZXdOYW1lc3BhY2U6IGFwcFNoYXBlcyxcclxuICAgICAgZGVmYXVsdExpbms6IDxqb2ludC5kaWEuTGluaz5uZXcgYXBwU2hhcGVzLmFwcC5MaW5rKCksXHJcbiAgICAgIGRlZmF1bHRDb25uZWN0aW9uUG9pbnQ6IGFwcFNoYXBlcy5hcHAuTGluay5jb25uZWN0aW9uUG9pbnQsXHJcbiAgICAgIGludGVyYWN0aXZlOiB7IGxpbmtNb3ZlOiBmYWxzZSB9LFxyXG4gICAgICBhc3luYzogdHJ1ZSxcclxuICAgICAgc29ydGluZzogam9pbnQuZGlhLlBhcGVyLnNvcnRpbmcuQVBQUk9YXHJcbiAgICB9KTtcclxuXHJcbiAgICBwYXBlci5vbignYmxhbms6bW91c2V3aGVlbCcsIF8ucGFydGlhbCh0aGlzLm9uTW91c2V3aGVlbCwgbnVsbCksIHRoaXMpO1xyXG4gICAgcGFwZXIub24oJ2NlbGw6bW91c2V3aGVlbCcsIHRoaXMub25Nb3VzZXdoZWVsLmJpbmQodGhpcykpO1xyXG5cclxuICAgIHRoaXMuc25hcGxpbmVzID0gbmV3IHdpbmRvd1tcImpvaW50XCJdLnVpLlNuYXBsaW5lcyh7IHBhcGVyOiBwYXBlciB9KTtcclxuXHJcbiAgICBjb25zdCBwYXBlclNjcm9sbGVyID0gdGhpcy5wYXBlclNjcm9sbGVyID0gbmV3IHdpbmRvd1tcImpvaW50XCJdLnVpLlBhcGVyU2Nyb2xsZXIoe1xyXG4gICAgICBwYXBlcixcclxuICAgICAgYXV0b1Jlc2l6ZVBhcGVyOiB0cnVlLFxyXG4gICAgICBzY3JvbGxXaGlsZURyYWdnaW5nOiB0cnVlLFxyXG4gICAgICBjdXJzb3I6ICdncmFiJ1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5yZW5kZXJQbHVnaW4oJy5wYXBlci1jb250YWluZXInLCBwYXBlclNjcm9sbGVyKTtcclxuICAgIHBhcGVyU2Nyb2xsZXIucmVuZGVyKCkuY2VudGVyKCk7XHJcbiAgfVxyXG5cclxuICBpbml0aWFsaXplU3RlbmNpbCgpIHtcclxuXHJcbiAgICB0aGlzLnN0ZW5jaWxTZXJ2aWNlLmNyZWF0ZSh0aGlzLnBhcGVyU2Nyb2xsZXIsIHRoaXMuc25hcGxpbmVzKTtcclxuICAgIHRoaXMucmVuZGVyUGx1Z2luKCcuc3RlbmNpbC1jb250YWluZXInLCB0aGlzLnN0ZW5jaWxTZXJ2aWNlLnN0ZW5jaWwpO1xyXG4gICAgdGhpcy5zdGVuY2lsU2VydmljZS5zZXRTaGFwZXMoKTtcclxuICB9XHJcblxyXG4gIGluaXRpYWxpemVTZWxlY3Rpb24oKSB7XHJcblxyXG4gICAgdGhpcy5jbGlwYm9hcmQgPSBuZXcgd2luZG93W1wiam9pbnRcIl0udWkuQ2xpcGJvYXJkKCk7XHJcbiAgICB0aGlzLnNlbGVjdGlvbiA9IG5ldyB3aW5kb3dbXCJqb2ludFwiXS51aS5TZWxlY3Rpb24oeyBwYXBlcjogdGhpcy5wYXBlciwgdXNlTW9kZWxHZW9tZXRyeTogdHJ1ZSB9KTtcclxuICAgIHRoaXMuc2VsZWN0aW9uLmNvbGxlY3Rpb24ub24oJ3Jlc2V0IGFkZCByZW1vdmUnLCB0aGlzLm9uU2VsZWN0aW9uQ2hhbmdlLmJpbmQodGhpcykpO1xyXG5cclxuICAgIGNvbnN0IGtleWJvYXJkID0gdGhpcy5rZXlib2FyZFNlcnZpY2Uua2V5Ym9hcmQ7XHJcblxyXG4gICAgLy8gSW5pdGlhdGUgc2VsZWN0aW5nIHdoZW4gdGhlIHVzZXIgZ3JhYnMgdGhlIGJsYW5rIGFyZWEgb2YgdGhlIHBhcGVyIHdoaWxlIHRoZSBTaGlmdCBrZXkgaXMgcHJlc3NlZC5cclxuICAgIC8vIE90aGVyd2lzZSwgaW5pdGlhdGUgcGFwZXIgcGFuLlxyXG4gICAgdGhpcy5wYXBlci5vbignYmxhbms6cG9pbnRlcmRvd24nLCAoZXZ0OiBqb2ludC5kaWEuRXZlbnQsIHg6IG51bWJlciwgeTogbnVtYmVyKSA9PiB7XHJcblxyXG4gICAgICBpZiAoa2V5Ym9hcmQuaXNBY3RpdmUoJ3NoaWZ0JywgZXZ0KSkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0aW9uLnN0YXJ0U2VsZWN0aW5nKGV2dCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3Rpb24uY29sbGVjdGlvbi5yZXNldChbXSk7XHJcbiAgICAgICAgdGhpcy5wYXBlclNjcm9sbGVyLnN0YXJ0UGFubmluZyhldnQpO1xyXG4gICAgICAgIHRoaXMucGFwZXIucmVtb3ZlVG9vbHMoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5wYXBlci5vbignZWxlbWVudDpwb2ludGVyZG93bicsIChlbGVtZW50Vmlldzogam9pbnQuZGlhLkVsZW1lbnRWaWV3LCBldnQ6IGpvaW50LmRpYS5FdmVudCkgPT4ge1xyXG5cclxuICAgICAgLy8gU2VsZWN0IGFuIGVsZW1lbnQgaWYgQ1RSTC9NZXRhIGtleSBpcyBwcmVzc2VkIHdoaWxlIHRoZSBlbGVtZW50IGlzIGNsaWNrZWQuXHJcbiAgICAgIGlmIChrZXlib2FyZC5pc0FjdGl2ZSgnY3RybCBtZXRhJywgZXZ0KSkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0aW9uLmNvbGxlY3Rpb24uYWRkKGVsZW1lbnRWaWV3Lm1vZGVsKTtcclxuICAgICAgfVxyXG5cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuc2VsZWN0aW9uLm9uKCdzZWxlY3Rpb24tYm94OnBvaW50ZXJkb3duJywgKGVsZW1lbnRWaWV3OiBqb2ludC5kaWEuRWxlbWVudFZpZXcsIGV2dDogam9pbnQuZGlhLkV2ZW50KSA9PiB7XHJcblxyXG4gICAgICAvLyBVbnNlbGVjdCBhbiBlbGVtZW50IGlmIHRoZSBDVFJML01ldGEga2V5IGlzIHByZXNzZWQgd2hpbGUgYSBzZWxlY3RlZCBlbGVtZW50IGlzIGNsaWNrZWQuXHJcbiAgICAgIGlmIChrZXlib2FyZC5pc0FjdGl2ZSgnY3RybCBtZXRhJywgZXZ0KSkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0aW9uLmNvbGxlY3Rpb24ucmVtb3ZlKGVsZW1lbnRWaWV3Lm1vZGVsKTtcclxuICAgICAgfVxyXG5cclxuICAgIH0sIHRoaXMpO1xyXG4gIH1cclxuXHJcbiAgb25TZWxlY3Rpb25DaGFuZ2UoKSB7XHJcbiAgICBjb25zdCB7IHBhcGVyLCBzZWxlY3Rpb24gfSA9IHRoaXM7XHJcbiAgICBjb25zdCB7IGNvbGxlY3Rpb24gfSA9IHNlbGVjdGlvbjtcclxuICAgIHBhcGVyLnJlbW92ZVRvb2xzKCk7XHJcbiAgICBqb2ludC51aS5IYWxvLmNsZWFyKHBhcGVyKTtcclxuICAgIGpvaW50LnVpLkZyZWVUcmFuc2Zvcm0uY2xlYXIocGFwZXIpO1xyXG4gICAgam9pbnQudWkuSW5zcGVjdG9yLmNsb3NlKCk7XHJcbiAgICBpZiAoY29sbGVjdGlvbi5sZW5ndGggPT09IDEpIHtcclxuICAgICAgY29uc3QgcHJpbWFyeUNlbGw6IGpvaW50LmRpYS5DZWxsID0gY29sbGVjdGlvbi5maXJzdCgpO1xyXG4gICAgICBjb25zdCBwcmltYXJ5Q2VsbFZpZXcgPSBwYXBlci5yZXF1aXJlVmlldyhwcmltYXJ5Q2VsbCk7XHJcbiAgICAgIHNlbGVjdGlvbi5kZXN0cm95U2VsZWN0aW9uQm94KHByaW1hcnlDZWxsKTtcclxuICAgICAgdGhpcy5zZWxlY3RQcmltYXJ5Q2VsbChwcmltYXJ5Q2VsbFZpZXcpO1xyXG4gICAgfSBlbHNlIGlmIChjb2xsZWN0aW9uLmxlbmd0aCA9PT0gMikge1xyXG4gICAgICBjb2xsZWN0aW9uLmVhY2goZnVuY3Rpb24gKGNlbGw6IGpvaW50LmRpYS5DZWxsKSB7XHJcbiAgICAgICAgc2VsZWN0aW9uLmNyZWF0ZVNlbGVjdGlvbkJveChjZWxsKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZWxlY3RQcmltYXJ5Q2VsbChjZWxsVmlldzogam9pbnQuZGlhLkNlbGxWaWV3KSB7XHJcbiAgICBjb25zdCBjZWxsID0gY2VsbFZpZXcubW9kZWw7XHJcbiAgICBpZiAoY2VsbC5pc0VsZW1lbnQoKSkge1xyXG4gICAgICB0aGlzLnNlbGVjdFByaW1hcnlFbGVtZW50KDxqb2ludC5kaWEuRWxlbWVudFZpZXc+Y2VsbFZpZXcpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZWxlY3RQcmltYXJ5TGluayg8am9pbnQuZGlhLkxpbmtWaWV3PmNlbGxWaWV3KTtcclxuICAgIH1cclxuICAgIHRoaXMuaW5zcGVjdG9yU2VydmljZS5jcmVhdGUoY2VsbCk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RQcmltYXJ5RWxlbWVudChlbGVtZW50Vmlldzogam9pbnQuZGlhLkVsZW1lbnRWaWV3KSB7XHJcblxyXG4gICAgY29uc3QgZWxlbWVudCA9IGVsZW1lbnRWaWV3Lm1vZGVsO1xyXG5cclxuICAgIG5ldyB3aW5kb3dbXCJqb2ludFwiXS51aS5GcmVlVHJhbnNmb3JtKHtcclxuICAgICAgY2VsbFZpZXc6IGVsZW1lbnRWaWV3LFxyXG4gICAgICBhbGxvd1JvdGF0aW9uOiBmYWxzZSxcclxuICAgICAgcHJlc2VydmVBc3BlY3RSYXRpbzogISFlbGVtZW50LmdldCgncHJlc2VydmVBc3BlY3RSYXRpbycpLFxyXG4gICAgICBhbGxvd09ydGhvZ29uYWxSZXNpemU6IGVsZW1lbnQuZ2V0KCdhbGxvd09ydGhvZ29uYWxSZXNpemUnKSAhPT0gZmFsc2VcclxuICAgIH0pLnJlbmRlcigpO1xyXG5cclxuICAgIHRoaXMuaGFsb1NlcnZpY2UuY3JlYXRlKGVsZW1lbnRWaWV3KTtcclxuICB9XHJcblxyXG4gIHNlbGVjdFByaW1hcnlMaW5rKGxpbmtWaWV3OiBqb2ludC5kaWEuTGlua1ZpZXcpIHtcclxuXHJcbiAgICBjb25zdCBucyA9IGpvaW50LmxpbmtUb29scztcclxuICAgIGNvbnN0IHRvb2xzVmlldyA9IG5ldyBqb2ludC5kaWEuVG9vbHNWaWV3KHtcclxuICAgICAgbmFtZTogJ2xpbmstcG9pbnRlcmRvd24nLFxyXG4gICAgICB0b29sczogW1xyXG4gICAgICAgIG5ldyBucy5WZXJ0aWNlcygpLFxyXG4gICAgICAgIG5ldyBucy5Tb3VyY2VBbmNob3IoKSxcclxuICAgICAgICBuZXcgbnMuVGFyZ2V0QW5jaG9yKCksXHJcbiAgICAgICAgbmV3IG5zLlNvdXJjZUFycm93aGVhZCgpLFxyXG4gICAgICAgIG5ldyBucy5UYXJnZXRBcnJvd2hlYWQoKSxcclxuICAgICAgICBuZXcgbnMuU2VnbWVudHMsXHJcbiAgICAgICAgbmV3IG5zLkJvdW5kYXJ5KHsgcGFkZGluZzogMTUgfSksXHJcbiAgICAgICAgbmV3IG5zLlJlbW92ZSh7IG9mZnNldDogLTIwLCBkaXN0YW5jZTogNDAgfSlcclxuICAgICAgXVxyXG4gICAgfSk7XHJcblxyXG4gICAgbGlua1ZpZXcuYWRkVG9vbHModG9vbHNWaWV3KTtcclxuICB9XHJcblxyXG4gIGluaXRpYWxpemVUb29sc0FuZEluc3BlY3RvcigpIHtcclxuXHJcbiAgICB0aGlzLnBhcGVyLm9uKCdjZWxsOnBvaW50ZXJ1cCcsIChjZWxsVmlldzogam9pbnQuZGlhLkNlbGxWaWV3KSA9PiB7XHJcbiAgICAgIGNvbnN0IGNlbGwgPSBjZWxsVmlldy5tb2RlbDtcclxuICAgICAgY29uc3QgeyBjb2xsZWN0aW9uIH0gPSB0aGlzLnNlbGVjdGlvbjtcclxuICAgICAgaWYgKGNvbGxlY3Rpb24uaW5jbHVkZXMoY2VsbCkpIHsgcmV0dXJuOyB9XHJcbiAgICAgIGNvbGxlY3Rpb24ucmVzZXQoW2NlbGxdKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMucGFwZXIub24oJ2xpbms6bW91c2VlbnRlcicsIChsaW5rVmlldzogam9pbnQuZGlhLkxpbmtWaWV3KSA9PiB7XHJcblxyXG4gICAgICAvLyBPcGVuIHRvb2wgb25seSBpZiB0aGVyZSBpcyBub25lIHlldFxyXG4gICAgICBpZiAobGlua1ZpZXcuaGFzVG9vbHMoKSkgeyByZXR1cm47IH1cclxuXHJcbiAgICAgIGNvbnN0IG5zID0gam9pbnQubGlua1Rvb2xzO1xyXG4gICAgICBjb25zdCB0b29sc1ZpZXcgPSBuZXcgam9pbnQuZGlhLlRvb2xzVmlldyh7XHJcbiAgICAgICAgbmFtZTogJ2xpbmstaG92ZXInLFxyXG4gICAgICAgIHRvb2xzOiBbXHJcbiAgICAgICAgICBuZXcgbnMuVmVydGljZXMoeyB2ZXJ0ZXhBZGRpbmc6IGZhbHNlIH0pLFxyXG4gICAgICAgICAgbmV3IG5zLlNvdXJjZUFycm93aGVhZCgpLFxyXG4gICAgICAgICAgbmV3IG5zLlRhcmdldEFycm93aGVhZCgpXHJcbiAgICAgICAgXVxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIGxpbmtWaWV3LmFkZFRvb2xzKHRvb2xzVmlldyk7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnBhcGVyLm9uKCdsaW5rOm1vdXNlbGVhdmUnLCAobGlua1ZpZXc6IGpvaW50LmRpYS5MaW5rVmlldykgPT4ge1xyXG5cclxuICAgICAgLy8gUmVtb3ZlIG9ubHkgdGhlIGhvdmVyIHRvb2wsIG5vdCB0aGUgcG9pbnRlcmRvd24gdG9vbFxyXG4gICAgICBpZiAobGlua1ZpZXcuaGFzVG9vbHMoJ2xpbmstaG92ZXInKSkge1xyXG4gICAgICAgIGxpbmtWaWV3LnJlbW92ZVRvb2xzKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuZ3JhcGgub24oJ2NoYW5nZScsIChjZWxsOiBqb2ludC5kaWEuQ2VsbCwgb3B0OiBhbnkpID0+IHtcclxuXHJcbiAgICAgIGlmICghY2VsbC5pc0xpbmsoKSB8fCAhb3B0Lmluc3BlY3RvcikgeyByZXR1cm47IH1cclxuXHJcbiAgICAgIGNvbnN0IG5zID0gam9pbnQubGlua1Rvb2xzO1xyXG4gICAgICBjb25zdCB0b29sc1ZpZXcgPSBuZXcgam9pbnQuZGlhLlRvb2xzVmlldyh7XHJcbiAgICAgICAgbmFtZTogJ2xpbmstaW5zcGVjdGVkJyxcclxuICAgICAgICB0b29sczogW1xyXG4gICAgICAgICAgbmV3IG5zLkJvdW5kYXJ5KHsgcGFkZGluZzogMTUgfSksXHJcbiAgICAgICAgXVxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIGNlbGwuZmluZFZpZXcodGhpcy5wYXBlcikuYWRkVG9vbHModG9vbHNWaWV3KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgaW5pdGlhbGl6ZU5hdmlnYXRvcigpIHtcclxuXHJcbiAgICBjb25zdCBuYXZpZ2F0b3IgPSB0aGlzLm5hdmlnYXRvciA9IG5ldyBqb2ludC51aS5OYXZpZ2F0b3Ioe1xyXG4gICAgICB3aWR0aDogMjQwLFxyXG4gICAgICBoZWlnaHQ6IDExNSxcclxuICAgICAgcGFwZXJTY3JvbGxlcjogdGhpcy5wYXBlclNjcm9sbGVyLFxyXG4gICAgICB6b29tOiBmYWxzZSxcclxuICAgICAgcGFwZXJPcHRpb25zOiB7XHJcbiAgICAgICAgYXN5bmM6IHRydWUsXHJcbiAgICAgICAgZWxlbWVudFZpZXc6IGFwcFNoYXBlcy5OYXZpZ2F0b3JFbGVtZW50VmlldyxcclxuICAgICAgICBsaW5rVmlldzogYXBwU2hhcGVzLk5hdmlnYXRvckxpbmtWaWV3LFxyXG4gICAgICAgIGNlbGxWaWV3TmFtZXNwYWNlOiB7IC8qIG5vIG90aGVyIHZpZXdzIGFyZSBhY2Nlc3NpYmxlIGluIHRoZSBuYXZpZ2F0b3IgKi8gfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnJlbmRlclBsdWdpbignLmpvaW50LW5hdmlnYXRvci1jb250YWluZXInLCBuYXZpZ2F0b3IpO1xyXG4gIH1cclxuXHJcbiAgaW5pdGlhbGl6ZVRvb2xiYXIoKSB7XHJcblxyXG4gICAgdGhpcy50b29sYmFyU2VydmljZS5jcmVhdGUodGhpcy5jb21tYW5kTWFuYWdlciwgdGhpcy5wYXBlclNjcm9sbGVyKTtcclxuXHJcbiAgICB0aGlzLnRvb2xiYXJTZXJ2aWNlLnRvb2xiYXIub24oe1xyXG4gICAgICAvLyAnc3ZnOnBvaW50ZXJjbGljayc6IHRoaXMub3BlbkFzU1ZHLmJpbmQodGhpcyksXHJcbiAgICAgIC8vICdwbmc6cG9pbnRlcmNsaWNrJzogdGhpcy5vcGVuQXNQTkcuYmluZCh0aGlzKSxcclxuICAgICAgJ3RvLWZyb250OnBvaW50ZXJjbGljayc6IHRoaXMuYXBwbHlPblNlbGVjdGlvbi5iaW5kKHRoaXMsICd0b0Zyb250JyksXHJcbiAgICAgICd0by1iYWNrOnBvaW50ZXJjbGljayc6IHRoaXMuYXBwbHlPblNlbGVjdGlvbi5iaW5kKHRoaXMsICd0b0JhY2snKSxcclxuICAgICAgJ2xheW91dDpwb2ludGVyY2xpY2snOiB0aGlzLmxheW91dERpcmVjdGVkR3JhcGguYmluZCh0aGlzKSxcclxuICAgICAgJ3NuYXBsaW5lOmNoYW5nZSc6IHRoaXMuY2hhbmdlU25hcExpbmVzLmJpbmQodGhpcyksXHJcbiAgICAgICdjbGVhcjpwb2ludGVyY2xpY2snOiB0aGlzLmdyYXBoLmNsZWFyLmJpbmQodGhpcy5ncmFwaCksXHJcbiAgICAgICdwcmludDpwb2ludGVyY2xpY2snOiB0aGlzLnBhcGVyLnByaW50LmJpbmQodGhpcy5wYXBlciksXHJcbiAgICAgICdncmlkLXNpemU6Y2hhbmdlJzogdGhpcy5wYXBlci5zZXRHcmlkU2l6ZS5iaW5kKHRoaXMucGFwZXIpLFxyXG4gICAgICAnc2VsZWN0VGVtcGxhdGU6b3B0aW9uOnNlbGVjdCc6IHRoaXMub25DaGFuZ2VUZW1wbGF0ZSxcclxuICAgICAgJ2RlbGV0ZVRlbXBsYXRlOnBvaW50ZXJjbGljayc6IHRoaXMub25EZWxldGVUZW1wbGF0ZSxcclxuICAgICAgJ3NhdmVBc1RlbXBsYXRlOnBvaW50ZXJjbGljayc6IHRoaXMub25TYXZlQXNUZW1wbGF0ZSxcclxuICAgICAgJ3Jlc2V0VGVtcGxhdGU6cG9pbnRlcmNsaWNrJzogdGhpcy5vblJlc2V0VGVtcGxhdGVcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMucmVuZGVyUGx1Z2luKCcudG9vbGJhci1jb250YWluZXInLCB0aGlzLnRvb2xiYXJTZXJ2aWNlLnRvb2xiYXIpO1xyXG4gIH1cclxuXHJcbiAgYXBwbHlPblNlbGVjdGlvbihtZXRob2Q6IHN0cmluZykge1xyXG4gICAgdGhpcy5ncmFwaC5zdGFydEJhdGNoKCdzZWxlY3Rpb24nKTtcclxuICAgIHRoaXMuc2VsZWN0aW9uLmNvbGxlY3Rpb24ubW9kZWxzLmZvckVhY2goZnVuY3Rpb24gKG1vZGVsOiBqb2ludC5kaWEuQ2VsbCkgeyBtb2RlbFttZXRob2RdKCk7IH0pO1xyXG4gICAgdGhpcy5ncmFwaC5zdG9wQmF0Y2goJ3NlbGVjdGlvbicpO1xyXG4gIH1cclxuXHJcbiAgY2hhbmdlU25hcExpbmVzKGNoZWNrZWQ6IGJvb2xlYW4pIHtcclxuXHJcbiAgICBpZiAoY2hlY2tlZCkge1xyXG4gICAgICB0aGlzLnNuYXBsaW5lcy5zdGFydExpc3RlbmluZygpO1xyXG4gICAgICB0aGlzLnN0ZW5jaWxTZXJ2aWNlLnN0ZW5jaWwub3B0aW9ucy5zbmFwbGluZXMgPSB0aGlzLnNuYXBsaW5lcztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc25hcGxpbmVzLnN0b3BMaXN0ZW5pbmcoKTtcclxuICAgICAgdGhpcy5zdGVuY2lsU2VydmljZS5zdGVuY2lsLm9wdGlvbnMuc25hcGxpbmVzID0gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGluaXRpYWxpemVLZXlib2FyZFNob3J0Y3V0cygpIHtcclxuXHJcbiAgICB0aGlzLmtleWJvYXJkU2VydmljZS5jcmVhdGUoXHJcbiAgICAgIHRoaXMuZ3JhcGgsIHRoaXMuY2xpcGJvYXJkLCB0aGlzLnNlbGVjdGlvbiwgdGhpcy5wYXBlclNjcm9sbGVyLCB0aGlzLmNvbW1hbmRNYW5hZ2VyKTtcclxuICB9XHJcblxyXG4gIGluaXRpYWxpemVUb29sdGlwcygpOiBqb2ludC51aS5Ub29sdGlwIHtcclxuXHJcbiAgICByZXR1cm4gbmV3IGpvaW50LnVpLlRvb2x0aXAoe1xyXG4gICAgICByb290VGFyZ2V0OiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbHRpcGNvbnRhaW5lcicpLFxyXG4gICAgICB0YXJnZXQ6ICdbZGF0YS10b29sdGlwXScsXHJcbiAgICAgIGRpcmVjdGlvbjogam9pbnQudWkuVG9vbHRpcC5Ub29sdGlwQXJyb3dQb3NpdGlvbi5BdXRvLFxyXG4gICAgICBwYWRkaW5nOiAxMFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBpbml0aWFsaXplU3RlbmNpbFRvb2x0aXBzKCk6IGpvaW50LnVpLlRvb2x0aXAge1xyXG5cclxuICAgIHJldHVybiBuZXcgam9pbnQudWkuVG9vbHRpcCh7XHJcbiAgICAgIHJvb3RUYXJnZXQ6IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmbG93Y2hhcnRzdGVuY2lsJyksXHJcbiAgICAgIHRhcmdldDogJ1tkYXRhLXRvb2x0aXBdJyxcclxuICAgICAgZGlyZWN0aW9uOiBqb2ludC51aS5Ub29sdGlwLlRvb2x0aXBBcnJvd1Bvc2l0aW9uLkF1dG8sXHJcbiAgICAgIHBhZGRpbmc6IDEwXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8vIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IGZvciBvbGRlciBzaGFwZXNcclxuICBleHBvcnRTdHlsZXNoZWV0ID0gJy5zY2FsYWJsZSAqIHsgdmVjdG9yLWVmZmVjdDogbm9uLXNjYWxpbmctc3Ryb2tlIH0nO1xyXG5cclxuICBvcGVuQXNTVkcoKSB7XHJcblxyXG4gICAgdGhpcy5wYXBlci5oaWRlVG9vbHMoKS50b1NWRygoc3ZnOiBzdHJpbmcpID0+IHtcclxuICAgICAgbmV3IGpvaW50LnVpLkxpZ2h0Ym94KHtcclxuICAgICAgICBpbWFnZTogJ2RhdGE6aW1hZ2Uvc3ZnK3htbCwnICsgZW5jb2RlVVJJQ29tcG9uZW50KHN2ZyksXHJcbiAgICAgICAgZG93bmxvYWRhYmxlOiB0cnVlLFxyXG4gICAgICAgIGZpbGVOYW1lOiAnUmFwcGlkJ1xyXG4gICAgICB9KS5vcGVuKCk7XHJcbiAgICAgIHRoaXMucGFwZXIuc2hvd1Rvb2xzKCk7XHJcbiAgICB9LCB7XHJcbiAgICAgIHByZXNlcnZlRGltZW5zaW9uczogdHJ1ZSxcclxuICAgICAgY29udmVydEltYWdlc1RvRGF0YVVyaXM6IHRydWUsXHJcbiAgICAgIHVzZUNvbXB1dGVkU3R5bGVzOiBmYWxzZSxcclxuICAgICAgc3R5bGVzaGVldDogdGhpcy5leHBvcnRTdHlsZXNoZWV0XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9wZW5Bc1BORygpIHtcclxuXHJcbiAgICB0aGlzLnBhcGVyLmhpZGVUb29scygpLnRvUE5HKChkYXRhVVJMOiBzdHJpbmcpID0+IHtcclxuICAgICAgbmV3IGpvaW50LnVpLkxpZ2h0Ym94KHtcclxuICAgICAgICBpbWFnZTogZGF0YVVSTCxcclxuICAgICAgICBkb3dubG9hZGFibGU6IHRydWUsXHJcbiAgICAgICAgZmlsZU5hbWU6ICdSYXBwaWQnXHJcbiAgICAgIH0pLm9wZW4oKTtcclxuICAgICAgdGhpcy5wYXBlci5zaG93VG9vbHMoKTtcclxuICAgIH0sIHtcclxuICAgICAgcGFkZGluZzogMTAsXHJcbiAgICAgIHVzZUNvbXB1dGVkU3R5bGVzOiBmYWxzZSxcclxuICAgICAgc3R5bGVzaGVldDogdGhpcy5leHBvcnRTdHlsZXNoZWV0XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uTW91c2V3aGVlbChjZWxsVmlldzogam9pbnQuZGlhLkNlbGxWaWV3LCBldnQ6IGpvaW50LmRpYS5FdmVudCwgb3g6IG51bWJlciwgb3k6IG51bWJlciwgZGVsdGE6IG51bWJlcikge1xyXG5cclxuICAgIGlmICh0aGlzLmtleWJvYXJkU2VydmljZS5rZXlib2FyZC5pc0FjdGl2ZSgnYWx0JywgZXZ0KSkge1xyXG4gICAgICBldnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgdGhpcy5wYXBlclNjcm9sbGVyLnpvb20oZGVsdGEgKiAwLjIsIHsgbWluOiAwLjIsIG1heDogNSwgZ3JpZDogMC4yLCBveCwgb3kgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBsYXlvdXREaXJlY3RlZEdyYXBoKCkge1xyXG5cclxuICAgIGpvaW50LmxheW91dC5EaXJlY3RlZEdyYXBoLmxheW91dCh0aGlzLmdyYXBoLCB7XHJcbiAgICAgIGdyYXBobGliOiBkYWdyZS5ncmFwaGxpYixcclxuICAgICAgZGFncmU6IGRhZ3JlLFxyXG4gICAgICBzZXRWZXJ0aWNlczogdHJ1ZSxcclxuICAgICAgcmFua0RpcjogJ1RCJyxcclxuICAgICAgbWFyZ2luWDogMTAwLFxyXG4gICAgICBtYXJnaW5ZOiAxMDBcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMucGFwZXJTY3JvbGxlci5jZW50ZXJDb250ZW50KCk7XHJcbiAgfVxyXG5cclxuICByZW5kZXJQbHVnaW4oc2VsZWN0b3I6IHN0cmluZywgcGx1Z2luOiBhbnkpOiB2b2lkIHtcclxuXHJcbiAgICB0aGlzLmVsLnF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3IpLmFwcGVuZENoaWxkKHBsdWdpbi5lbCk7XHJcbiAgICBwbHVnaW4ucmVuZGVyKCk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBnZXRJbWFnZUNvbnRlbnQoKSB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcclxuICAgICAgdGhpcy5wYXBlci50b1BORygoaW1hZ2VEYXRhKSA9PiB7XHJcbiAgICAgICAgcmVzb2x2ZShpbWFnZURhdGEpO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0SnNvbkNvbnRlbnQoKSB7XHJcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodGhpcy5ncmFwaC50b0pTT04oKSk7XHJcbiAgfVxyXG5cclxuICBvbkNoYW5nZVRlbXBsYXRlKGV2ZW50KSB7XHJcbiAgICBpZiAoZXZlbnQuanNvbkNvbnRlbnQpIHtcclxuICAgICAgd2luZG93W0Zsb3dDaGFydENvbnN0LktTX1NFTEVDVEVEX0ZMT1dDSEFSVF9JRF0gPSBldmVudC5mbG93Q2hhcnRJZDtcclxuICAgICAgd2luZG93W0Zsb3dDaGFydENvbnN0LktTX1NFTEVDVEVEX0pTT05DT05URU5UXSA9IGV2ZW50Lmpzb25Db250ZW50O1xyXG4gICAgICB3aW5kb3cucG9zdE1lc3NhZ2UoRmxvd0NoYXJ0Q29uc3QuS1NfQ0hBTkdFX1RFTVBMQVRFLCAnKicpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25EZWxldGVUZW1wbGF0ZShldmVudCkge1xyXG4gICAgaWYgKHdpbmRvd1tGbG93Q2hhcnRDb25zdC5LU19JU19TRUxFQ1RFRF9URU1QTEFURV0pIHtcclxuICAgICAgd2luZG93LnBvc3RNZXNzYWdlKEZsb3dDaGFydENvbnN0LktTX0RFTEVURV9URU1QTEFURSwgJyonKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB3aW5kb3cucG9zdE1lc3NhZ2UoRmxvd0NoYXJ0Q29uc3QuTVVTVF9TRUxFQ1RfVEVNUExBVEUsICcqJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvblNhdmVBc1RlbXBsYXRlKCkge1xyXG4gICAgd2luZG93LnBvc3RNZXNzYWdlKEZsb3dDaGFydENvbnN0LktTX1NBVkVfQVNfVEVNUExBVEUsICcqJyk7XHJcbiAgfVxyXG5cclxuICBvblJlc2V0VGVtcGxhdGUoKSB7XHJcbiAgICBpZiAod2luZG93W0Zsb3dDaGFydENvbnN0LktTX0lTX1NFTEVDVEVEX1RFTVBMQVRFXSkge1xyXG4gICAgICB3aW5kb3cucG9zdE1lc3NhZ2UoRmxvd0NoYXJ0Q29uc3QuS1NfUkVTRVRfVEVNUExBVEUsICcqJyk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBLaXRjaGVuU2lua1NlcnZpY2U7XHJcbiJdfQ==
|