qms-angular 1.0.55 → 1.0.56
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 +4003 -12241
- package/bundles/qms-angular.umd.js.map +1 -1
- package/esm2015/lib/components/app-icon/app-icon.module.js +16 -29
- package/esm2015/lib/components/app-icon/icon-registry.service.js +7 -9
- package/esm2015/lib/components/badges/qms-badges.component.js +15 -24
- package/esm2015/lib/components/badges/qms-badges.module.js +18 -33
- package/esm2015/lib/components/banner/qms-banner/qms-banner.component.js +16 -28
- package/esm2015/lib/components/banner/qms-banner/qms-banner.module.js +19 -36
- package/esm2015/lib/components/banner/qms-banner-confirm/qms-banner-confirm.component.js +16 -28
- package/esm2015/lib/components/banner/qms-banner-confirm/qms-banner-confirm.module.js +19 -36
- package/esm2015/lib/components/banner/qms-banner-loading/qms-banner-loading.component.js +13 -19
- package/esm2015/lib/components/banner/qms-banner-loading/qms-banner-loading.module.js +17 -30
- package/esm2015/lib/components/breadcrumb/breadcrumb-direction-icon.directive.js +10 -11
- package/esm2015/lib/components/breadcrumb/breadcrumb-item.directive.js +17 -20
- package/esm2015/lib/components/breadcrumb/breadcrumb.js +28 -40
- package/esm2015/lib/components/breadcrumb/breadcrumb.module.js +26 -50
- package/esm2015/lib/components/button/button-toggle.js +85 -120
- package/esm2015/lib/components/button/button.js +78 -86
- package/esm2015/lib/components/button/button.module.js +27 -51
- package/esm2015/lib/components/comment/comment.js +18 -29
- package/esm2015/lib/components/dialog/dialog.js +28 -38
- package/esm2015/lib/components/edit-file-name-dialog/edit-file-name-dialog.js +16 -24
- package/esm2015/lib/components/edit-file-name-dialog/edit-file-name-dialog.module.js +31 -71
- package/esm2015/lib/components/list/list.js +89 -101
- package/esm2015/lib/components/list/list.module.js +50 -94
- package/esm2015/lib/components/qms-app-bar/qms-app-bar.component.js +29 -55
- package/esm2015/lib/components/qms-app-bar/qms-app-bar.module.js +20 -39
- package/esm2015/lib/components/qms-stepper/qms-stepper.component.js +22 -32
- package/esm2015/lib/components/qms-stepper/qms-stepper.module.js +25 -35
- package/esm2015/lib/components/related/content/related-content.component.js +12 -19
- package/esm2015/lib/components/related/list-other-related/list-related.component.js +25 -29
- package/esm2015/lib/components/related/popup/related-popup.component.js +33 -50
- package/esm2015/lib/components/related/related.module.js +43 -96
- package/esm2015/lib/components/related/risk/analysis/analysis.component.js +17 -23
- package/esm2015/lib/components/related/risk/list/list.component.js +18 -22
- package/esm2015/lib/components/related/risk/result/result.component.js +16 -23
- package/esm2015/lib/components/related/service/related-global.service.js +6 -7
- package/esm2015/lib/components/related/sidenav/sidenav.component.js +12 -21
- package/esm2015/lib/components/reports/qms-report-content-portrait/qms-report-content-portrait.component.js +18 -22
- package/esm2015/lib/components/reports/qms-report-cover-portrait/qms-report-cover-portrait.component.js +18 -22
- package/esm2015/lib/components/reports/qms-reports.module.js +20 -29
- package/esm2015/lib/components/rich-text/rich-text.js +32 -47
- package/esm2015/lib/components/rich-text/rich-text.module.js +21 -35
- package/esm2015/lib/components/select-dialog/select-dialog.js +16 -31
- package/esm2015/lib/components/select-include-children/select-include-children.component.js +33 -47
- package/esm2015/lib/components/select-include-children/select-include-children.module.js +33 -78
- package/esm2015/lib/components/select-include-children/services/select-global.service.js +6 -7
- package/esm2015/lib/components/suffix-field/suffix-field.directive.js +21 -22
- package/esm2015/lib/components/table/table-action.js +31 -31
- package/esm2015/lib/components/table/table.module.js +21 -37
- package/esm2015/lib/components/test-only/test-only.component.js +11 -14
- package/esm2015/lib/components/tooltip/tooltip.js +19 -24
- package/esm2015/lib/components/tooltip/tooltip.module.js +20 -38
- package/esm2015/lib/components/tree/tree.component.js +33 -46
- package/esm2015/lib/components/tree/tree.module.js +30 -69
- package/esm2015/lib/components/upload-file-error-dialog/upload-file-error-dialog.js +16 -22
- package/esm2015/lib/components/upload-file-error-dialog/upload-file-error-dialog.module.js +31 -71
- 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 +10 -11
- package/esm2015/lib/directives/chip-input/chip-input-select-dropdown.directive.js +10 -11
- package/esm2015/lib/directives/chip-input/chip-input-select-field.directive.js +14 -17
- package/esm2015/lib/directives/chip-input/chip-input-select-trigger.directive.js +13 -14
- package/esm2015/lib/directives/chips/chip-body.directive.js +10 -11
- package/esm2015/lib/directives/chips/chip.directive.js +13 -13
- package/esm2015/lib/directives/dropdown-menu/dropdown-item.directive.js +14 -16
- package/esm2015/lib/directives/file-upload/file-upload-attachment-list.directive.js +10 -11
- package/esm2015/lib/directives/file-upload/file-upload-display.directive.js +16 -19
- package/esm2015/lib/directives/file-upload/file-upload-multiple-display.directive.js +14 -16
- package/esm2015/lib/directives/file-upload/file-upload-multiple-selector.directive.js +20 -26
- package/esm2015/lib/directives/file-upload/file-upload-multiple.directive.js +15 -19
- package/esm2015/lib/directives/file-upload/file-upload-scrollable-attachment-list.directive.js +10 -11
- package/esm2015/lib/directives/file-upload/file-upload-selector.directive.js +18 -25
- package/esm2015/lib/directives/file-upload/file-upload.directive.js +20 -24
- package/esm2015/lib/directives/form.directive.js +51 -48
- package/esm2015/lib/directives/margin.directive.js +14 -15
- package/esm2015/lib/directives/range-slider/range-slider-lockup.directive.js +10 -11
- package/esm2015/lib/directives/range-slider/range-slider.directive.js +14 -17
- package/esm2015/lib/directives/scroll-selected/scroll-to-selected.directive.js +15 -16
- package/esm2015/lib/directives/scrollbar/scrollbar.directive.js +13 -13
- package/esm2015/lib/directives/search-field.directive.js +22 -21
- package/esm2015/lib/directives/side-sheet/drawer-content.directive.js +10 -11
- package/esm2015/lib/directives/side-sheet/drawer-header-action.directive.js +10 -11
- package/esm2015/lib/directives/side-sheet/drawer-header.directive.js +10 -11
- package/esm2015/lib/directives/side-sheet/drawer.directive.js +10 -11
- package/esm2015/lib/directives/tab/tab-group-advanced.directive.js +14 -15
- package/esm2015/lib/directives/tab/tab-group.directive.js +10 -11
- package/esm2015/lib/directives/tab/tab-label.directive.js +10 -11
- package/esm2015/lib/directives/text-block/text-block-line.directive.js +16 -20
- package/esm2015/lib/directives/text-block/text-block.directive.js +14 -17
- package/esm2015/lib/directives/tooltip/tooltip-image.directive.js +13 -14
- package/esm2015/lib/directives/tooltip/tooltip-renderer.directive.js +22 -35
- package/esm2015/lib/material-module.js +16 -35
- package/esm2015/lib/model/en.js +4 -35
- package/esm2015/lib/model/no.js +3 -34
- package/esm2015/lib/pipe/dateFormat.pipe.js +10 -11
- package/esm2015/lib/qms-angular.component.js +11 -13
- package/esm2015/lib/qms-angular.module.js +121 -232
- package/esm2015/lib/qms-angular.service.js +8 -9
- package/esm2015/lib/qms-ckeditor-components/common/bpmn/toolbar.function.js +12 -32
- package/esm2015/lib/qms-ckeditor-components/common/constants/ckeditorEvent.constant.js +1 -5
- package/esm2015/lib/qms-ckeditor-components/common/constants/ckeditorFlowchart.const.js +1 -10
- package/esm2015/lib/qms-ckeditor-components/common/enums/document-type.enum.js +1 -2
- package/esm2015/lib/qms-ckeditor-components/common/functions/common.function.js +2 -2
- package/esm2015/lib/qms-ckeditor-components/common/module/confirm/qms-ckeditor-confirm.component.js +16 -23
- package/esm2015/lib/qms-ckeditor-components/common/module/tree/qms-ckeditor-tree.component.js +19 -34
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/qms-ckeditor-bpmn.component.js +53 -577
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/save-template/save-template.component.js +35 -69
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-fullscreen/qms-ckeditor-fullscreen.component.js +8 -12
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-imagemap/qms-ckeditor-imagemap.component.js +30 -39
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-link/attachments/link-attachment.component.js +18 -22
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-link/qms-ckeditor-link.component.js +20 -29
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-load-template/qms-ckeditor-load-template.component.js +18 -22
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-relation/qmsckeditor-related.component.js +23 -35
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-template/qms-ckeditor-template.component.js +20 -30
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-tooltip/qms-ckeditor-tooltip.component.js +18 -27
- package/esm2015/lib/qms-ckeditor-components/qms-ckeditor-base.component.js +4 -7
- package/esm2015/lib/qms-ckeditor-components/qms-ckeditor.component.js +44 -118
- package/esm2015/lib/qms-ckeditor-components/qms-ckeditor.module.js +55 -131
- 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 +26 -66
- package/esm2015/lib/qms-ckeditor-components/services/qms-ckeditor-global.service.js +8 -9
- 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 +8 -9
- package/esm2015/lib/shared.module.js +4 -9
- package/esm2015/public-api.js +1 -16
- package/esm2015/qms-angular.js +9 -1
- package/fesm2015/qms-angular.js +3031 -11134
- package/fesm2015/qms-angular.js.map +1 -1
- package/lib/components/app-icon/app-icon.module.d.ts +0 -7
- package/lib/components/app-icon/icon-registry.service.d.ts +0 -3
- package/lib/components/badges/qms-badges.component.d.ts +0 -3
- package/lib/components/badges/qms-badges.module.d.ts +0 -9
- package/lib/components/banner/qms-banner/qms-banner.component.d.ts +0 -3
- package/lib/components/banner/qms-banner/qms-banner.module.d.ts +0 -10
- package/lib/components/banner/qms-banner-confirm/qms-banner-confirm.component.d.ts +0 -3
- package/lib/components/banner/qms-banner-confirm/qms-banner-confirm.module.d.ts +0 -10
- package/lib/components/banner/qms-banner-loading/qms-banner-loading.component.d.ts +0 -3
- package/lib/components/banner/qms-banner-loading/qms-banner-loading.module.d.ts +0 -8
- package/lib/components/breadcrumb/breadcrumb-direction-icon.directive.d.ts +0 -3
- package/lib/components/breadcrumb/breadcrumb-item.directive.d.ts +0 -3
- package/lib/components/breadcrumb/breadcrumb.d.ts +0 -3
- package/lib/components/breadcrumb/breadcrumb.module.d.ts +0 -13
- package/lib/components/button/button-toggle.d.ts +0 -5
- package/lib/components/button/button.d.ts +0 -7
- package/lib/components/button/button.module.d.ts +0 -9
- package/lib/components/comment/comment.d.ts +0 -3
- package/lib/components/dialog/dialog.d.ts +0 -5
- package/lib/components/edit-file-name-dialog/edit-file-name-dialog.d.ts +0 -3
- package/lib/components/edit-file-name-dialog/edit-file-name-dialog.module.d.ts +0 -16
- package/lib/components/list/list.d.ts +0 -15
- package/lib/components/list/list.module.d.ts +0 -11
- package/lib/components/qms-app-bar/qms-app-bar.component.d.ts +0 -3
- package/lib/components/qms-app-bar/qms-app-bar.module.d.ts +0 -12
- package/lib/components/qms-stepper/qms-stepper.component.d.ts +0 -3
- package/lib/components/qms-stepper/qms-stepper.module.d.ts +0 -8
- package/lib/components/related/content/related-content.component.d.ts +0 -3
- package/lib/components/related/list-other-related/list-related.component.d.ts +0 -3
- package/lib/components/related/popup/related-popup.component.d.ts +0 -3
- package/lib/components/related/related.module.d.ts +0 -29
- package/lib/components/related/risk/analysis/analysis.component.d.ts +0 -3
- package/lib/components/related/risk/list/list.component.d.ts +0 -3
- package/lib/components/related/risk/result/result.component.d.ts +0 -3
- package/lib/components/related/service/related-global.service.d.ts +0 -3
- package/lib/components/related/sidenav/sidenav.component.d.ts +0 -3
- package/lib/components/reports/qms-report-content-portrait/qms-report-content-portrait.component.d.ts +0 -3
- package/lib/components/reports/qms-report-cover-portrait/qms-report-cover-portrait.component.d.ts +0 -3
- package/lib/components/reports/qms-reports.module.d.ts +0 -7
- package/lib/components/rich-text/rich-text.d.ts +0 -3
- package/lib/components/rich-text/rich-text.module.d.ts +0 -8
- package/lib/components/select-dialog/select-dialog.d.ts +0 -3
- package/lib/components/select-include-children/select-include-children.component.d.ts +0 -3
- package/lib/components/select-include-children/select-include-children.module.d.ts +0 -25
- package/lib/components/select-include-children/services/select-global.service.d.ts +0 -3
- package/lib/components/suffix-field/suffix-field.directive.d.ts +0 -5
- package/lib/components/table/table-action.d.ts +0 -5
- package/lib/components/table/table.module.d.ts +0 -8
- package/lib/components/test-only/test-only.component.d.ts +0 -3
- package/lib/components/tooltip/tooltip.d.ts +0 -3
- package/lib/components/tooltip/tooltip.module.d.ts +0 -9
- package/lib/components/tree/tree.component.d.ts +0 -3
- package/lib/components/tree/tree.module.d.ts +0 -22
- package/lib/components/upload-file-error-dialog/upload-file-error-dialog.d.ts +0 -3
- package/lib/components/upload-file-error-dialog/upload-file-error-dialog.module.d.ts +0 -16
- package/lib/directives/chip-input/chip-input-chip-list.directive.d.ts +0 -3
- package/lib/directives/chip-input/chip-input-field.directive.d.ts +0 -3
- package/lib/directives/chip-input/chip-input-select-dropdown.directive.d.ts +0 -3
- package/lib/directives/chip-input/chip-input-select-field.directive.d.ts +0 -3
- package/lib/directives/chip-input/chip-input-select-trigger.directive.d.ts +0 -3
- package/lib/directives/chips/chip-body.directive.d.ts +0 -3
- package/lib/directives/chips/chip.directive.d.ts +0 -3
- package/lib/directives/dropdown-menu/dropdown-item.directive.d.ts +0 -3
- package/lib/directives/file-upload/file-upload-attachment-list.directive.d.ts +0 -3
- package/lib/directives/file-upload/file-upload-display.directive.d.ts +0 -3
- package/lib/directives/file-upload/file-upload-multiple-display.directive.d.ts +0 -3
- package/lib/directives/file-upload/file-upload-multiple-selector.directive.d.ts +0 -3
- package/lib/directives/file-upload/file-upload-multiple.directive.d.ts +0 -3
- package/lib/directives/file-upload/file-upload-scrollable-attachment-list.directive.d.ts +0 -3
- package/lib/directives/file-upload/file-upload-selector.directive.d.ts +0 -3
- package/lib/directives/file-upload/file-upload.directive.d.ts +0 -5
- package/lib/directives/form.directive.d.ts +0 -11
- package/lib/directives/margin.directive.d.ts +0 -3
- package/lib/directives/range-slider/range-slider-lockup.directive.d.ts +0 -3
- package/lib/directives/range-slider/range-slider.directive.d.ts +0 -3
- package/lib/directives/scroll-selected/scroll-to-selected.directive.d.ts +0 -3
- package/lib/directives/scrollbar/scrollbar.directive.d.ts +0 -3
- package/lib/directives/search-field.directive.d.ts +0 -5
- package/lib/directives/side-sheet/drawer-content.directive.d.ts +0 -3
- package/lib/directives/side-sheet/drawer-header-action.directive.d.ts +0 -3
- package/lib/directives/side-sheet/drawer-header.directive.d.ts +0 -3
- package/lib/directives/side-sheet/drawer.directive.d.ts +0 -3
- package/lib/directives/tab/tab-group-advanced.directive.d.ts +0 -3
- package/lib/directives/tab/tab-group.directive.d.ts +0 -3
- package/lib/directives/tab/tab-label.directive.d.ts +0 -3
- package/lib/directives/text-block/text-block-line.directive.d.ts +0 -3
- package/lib/directives/text-block/text-block.directive.d.ts +0 -3
- package/lib/directives/tooltip/tooltip-image.directive.d.ts +0 -3
- package/lib/directives/tooltip/tooltip-renderer.directive.d.ts +0 -3
- package/lib/material-module.d.ts +0 -12
- package/lib/model/en.d.ts +0 -31
- package/lib/model/no.d.ts +0 -31
- package/lib/pipe/dateFormat.pipe.d.ts +0 -3
- package/lib/qms-angular.component.d.ts +0 -3
- package/lib/qms-angular.module.d.ts +0 -49
- package/lib/qms-angular.service.d.ts +0 -3
- package/lib/qms-ckeditor-components/common/bpmn/toolbar.function.d.ts +2 -2
- package/lib/qms-ckeditor-components/common/constants/ckeditorEvent.constant.d.ts +0 -4
- package/lib/qms-ckeditor-components/common/constants/ckeditorFlowchart.const.d.ts +0 -9
- package/lib/qms-ckeditor-components/common/enums/document-type.enum.d.ts +0 -1
- package/lib/qms-ckeditor-components/common/module/confirm/qms-ckeditor-confirm.component.d.ts +0 -3
- package/lib/qms-ckeditor-components/common/module/tree/qms-ckeditor-tree.component.d.ts +0 -3
- package/lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/qms-ckeditor-bpmn.component.d.ts +4 -88
- package/lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/save-template/save-template.component.d.ts +2 -11
- package/lib/qms-ckeditor-components/components/qms-ckeditor-fullscreen/qms-ckeditor-fullscreen.component.d.ts +0 -3
- package/lib/qms-ckeditor-components/components/qms-ckeditor-imagemap/qms-ckeditor-imagemap.component.d.ts +0 -3
- package/lib/qms-ckeditor-components/components/qms-ckeditor-link/attachments/link-attachment.component.d.ts +0 -3
- package/lib/qms-ckeditor-components/components/qms-ckeditor-link/qms-ckeditor-link.component.d.ts +0 -3
- package/lib/qms-ckeditor-components/components/qms-ckeditor-load-template/qms-ckeditor-load-template.component.d.ts +0 -3
- package/lib/qms-ckeditor-components/components/qms-ckeditor-relation/qmsckeditor-related.component.d.ts +0 -4
- package/lib/qms-ckeditor-components/components/qms-ckeditor-template/qms-ckeditor-template.component.d.ts +0 -3
- package/lib/qms-ckeditor-components/components/qms-ckeditor-tooltip/qms-ckeditor-tooltip.component.d.ts +0 -3
- package/lib/qms-ckeditor-components/qms-ckeditor-base.component.d.ts +0 -3
- package/lib/qms-ckeditor-components/qms-ckeditor.component.d.ts +0 -8
- package/lib/qms-ckeditor-components/qms-ckeditor.module.d.ts +0 -44
- package/lib/qms-ckeditor-components/services/qms-ckeditor-base.service.d.ts +0 -3
- package/lib/qms-ckeditor-components/services/qms-ckeditor-bpmn-api.service.d.ts +0 -3
- package/lib/qms-ckeditor-components/services/qms-ckeditor-bpmn.service.d.ts +0 -4
- package/lib/qms-ckeditor-components/services/qms-ckeditor-global.service.d.ts +0 -3
- package/lib/qms-ckeditor-components/services/qms-ckeditor-link.service.d.ts +0 -3
- package/lib/qms-ckeditor-components/services/qms-ckeditor-tree.service.d.ts +0 -3
- package/lib/qms-ckeditor-components/services/qms-ckedtior-template.service.d.ts +0 -3
- package/lib/services/translation-registry.service.d.ts +0 -3
- package/lib/shared.module.d.ts +0 -4
- package/lib.theme.scss +0 -8
- package/package.json +2 -1
- package/public-api.d.ts +0 -14
- package/qms-angular.d.ts +8 -1
- package/qms-angular.metadata.json +1 -0
- package/src/assets/jointjs/scss/bpmn.scss +35 -36
- package/src/assets/qms-ckeditor-plugin/build/ckeditor.js +1 -1
- 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 +12177 -17
- package/src/assets/qms-ckeditor-plugin/package.json +0 -1
- package/src/assets/qms-ckeditor-plugin/src/ckeditor.js +3 -22
- package/src/assets/qms-ckeditor-plugin/src/dist/ckeditor.dev.js +173 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/bpmn/qmsCKEditorBpmnPlugin.js +5 -24
- package/src/assets/qms-ckeditor-plugin/src/plugins/common/qmsCKEditorConstant.js +1 -7
- package/src/assets/qms-ckeditor-plugin/src/plugins/common/qmsCKEditorService.js +0 -20
- 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 +43 -47
- package/src/assets/qms-ckeditor-plugin/src/plugins/imagemap/imagemapui.js +1 -1
- package/src/assets/qms-ckeditor-plugin/src/plugins/imagemap/insertimagemapcommand.js +108 -72
- package/src/assets/qms-ckeditor-plugin/src/plugins/imagemap/resizeimagemapcommand.js +3 -4
- package/src/assets/qms-ckeditor-plugin/src/plugins/imagemap/utils.js +0 -13
- package/src/assets/qms-ckeditor-plugin/src/plugins/timestamp/timestamp.js +8 -8
- package/src/assets/qms-ckeditor-plugin/src/plugins/tooltip/tooltipui.js +24 -23
- package/src/assets/qms-ckeditor-plugin/src/themes/icons/information.svg +50 -1
- package/src/assets/qms-ckeditor-plugin/src/themes/icons/timestamp.svg +1 -1
- package/src/lib/components/tree/tree.component.scss +1 -1
- package/src/lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/qms-ckeditor-bpmn.component.scss +1 -15
- package/src/lib/qms-ckeditor-components/styles/_layout.scss +0 -24
- package/src/lib/qms-ckeditor-components/styles/_modules.scss +0 -8
- package/esm2015/lib/qms-ckeditor-components/common/constants/ckeditorLink.constant.js +0 -7
- package/esm2015/lib/qms-ckeditor-components/common/enums/shape-flow-chart-connection-type.js +0 -8
- package/esm2015/lib/qms-ckeditor-components/common/flowchart/sample/sample-graphs.js +0 -16
- package/esm2015/lib/qms-ckeditor-components/common/flowchart/service/halo-service.js +0 -105
- package/esm2015/lib/qms-ckeditor-components/common/flowchart/service/inspector-service.js +0 -3762
- package/esm2015/lib/qms-ckeditor-components/common/flowchart/service/keyboard-service.js +0 -68
- package/esm2015/lib/qms-ckeditor-components/common/flowchart/service/kitchensink-service.js +0 -372
- package/esm2015/lib/qms-ckeditor-components/common/flowchart/service/stencil-service.js +0 -1041
- package/esm2015/lib/qms-ckeditor-components/common/flowchart/service/toolbar-service.js +0 -326
- package/esm2015/lib/qms-ckeditor-components/common/flowchart/shapes/app-shapes.js +0 -318
- package/esm2015/lib/qms-ckeditor-components/common/flowchart/themes/theme-picker.js +0 -80
- package/esm2015/lib/qms-ckeditor-components/common/models/qms-ckeditor-flowchart-template.model.js +0 -9
- package/esm2015/lib/qms-ckeditor-components/common/models/qms-ckeditor-flowchart.model.js +0 -9
- package/esm2015/lib/qms-ckeditor-components/common/models/qms-ckeditor-save-as-template.model.js +0 -3
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-about/qms-ckeditor-about.component.js +0 -43
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-flowchart/qms-ckeditor-flowchart.component.js +0 -322
- package/esm2015/lib/qms-ckeditor-components/models/qms-ckeditor-bpmn-data.model.js +0 -8
- package/esm2015/lib/qms-ckeditor-components/services/qms-ckeditor-flowchart.service.js +0 -26
- package/lib/qms-ckeditor-components/common/constants/ckeditorLink.constant.d.ts +0 -6
- package/lib/qms-ckeditor-components/common/enums/shape-flow-chart-connection-type.d.ts +0 -6
- package/lib/qms-ckeditor-components/common/flowchart/sample/sample-graphs.d.ts +0 -14
- package/lib/qms-ckeditor-components/common/flowchart/service/halo-service.d.ts +0 -48
- package/lib/qms-ckeditor-components/common/flowchart/service/inspector-service.d.ts +0 -18
- package/lib/qms-ckeditor-components/common/flowchart/service/keyboard-service.d.ts +0 -17
- package/lib/qms-ckeditor-components/common/flowchart/service/kitchensink-service.d.ts +0 -62
- package/lib/qms-ckeditor-components/common/flowchart/service/stencil-service.d.ts +0 -1183
- package/lib/qms-ckeditor-components/common/flowchart/service/toolbar-service.d.ts +0 -216
- package/lib/qms-ckeditor-components/common/flowchart/shapes/app-shapes.d.ts +0 -61
- package/lib/qms-ckeditor-components/common/flowchart/themes/theme-picker.d.ts +0 -36
- package/lib/qms-ckeditor-components/common/models/qms-ckeditor-flowchart-template.model.d.ts +0 -7
- package/lib/qms-ckeditor-components/common/models/qms-ckeditor-flowchart.model.d.ts +0 -7
- package/lib/qms-ckeditor-components/common/models/qms-ckeditor-save-as-template.model.d.ts +0 -7
- package/lib/qms-ckeditor-components/components/qms-ckeditor-about/qms-ckeditor-about.component.d.ts +0 -18
- package/lib/qms-ckeditor-components/components/qms-ckeditor-flowchart/qms-ckeditor-flowchart.component.d.ts +0 -44
- package/lib/qms-ckeditor-components/models/qms-ckeditor-bpmn-data.model.d.ts +0 -7
- package/lib/qms-ckeditor-components/services/qms-ckeditor-flowchart.service.d.ts +0 -13
- package/src/assets/images/ckeditor5.svg +0 -1
- 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 +0 -92
- 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 +0 -93
- package/src/assets/jointjs/fonts/Roboto_Condensed/LICENSE.txt +0 -202
- 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 +0 -1
- package/src/assets/jointjs/images/image-icon2.svg +0 -6
- package/src/assets/jointjs/images/image-icon3.svg +0 -11
- package/src/assets/jointjs/images/image-icon4.svg +0 -8
- 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 +0 -72
- 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 +0 -50
- package/src/assets/jointjs/scss/style.dark.scss +0 -233
- package/src/assets/jointjs/scss/style.material.scss +0 -234
- package/src/assets/jointjs/scss/style.modern.scss +0 -225
- package/src/assets/jointjs/scss/style.scss +0 -216
- package/src/assets/jointjs/scss/theme-picker.scss +0 -21
- package/src/assets/qms-ckeditor-plugin/src/plugins/aboutckeditor/aboutckeditor.js +0 -28
- package/src/assets/qms-ckeditor-plugin/src/plugins/flowchart/qmsCKEditorFlowchartPlugin.js +0 -63
- package/src/assets/qms-ckeditor-plugin/src/plugins/imagemap/openimagemapcommand.js +0 -58
- package/src/assets/qms-ckeditor-plugin/src/themes/icons/flowchart.svg +0 -507
- package/src/assets/qms-ckeditor-plugin/src/themes/icons/tooltip.svg +0 -1
- package/src/lib/components/select-one/select-one.component.scss +0 -240
- package/src/lib/qms-ckeditor-components/components/qms-ckeditor-about/qms-ckeditor-about.component.scss +0 -16
- package/src/lib/qms-ckeditor-components/components/qms-ckeditor-flowchart/qms-ckeditor-flowchart.component.scss +0 -5
- package/src/themes/_non-bg-srcollbar.scss +0 -4
@@ -1,68 +0,0 @@
|
|
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
|
@@ -1,372 +0,0 @@
|
|
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==
|