qms-angular 1.0.86 → 1.0.89
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/README.md +5 -1
- package/bundles/qms-angular.umd.js +6943 -219
- package/bundles/qms-angular.umd.js.map +1 -1
- package/esm2015/lib/components/badges/qms-badges.component.js +1 -1
- package/esm2015/lib/components/banner/qms-banner/qms-banner.component.js +1 -1
- package/esm2015/lib/components/banner/qms-banner-confirm/qms-banner-confirm.component.js +1 -1
- package/esm2015/lib/components/banner/qms-banner-loading/qms-banner-loading.component.js +1 -1
- package/esm2015/lib/components/button/button-toggle.js +1 -1
- package/esm2015/lib/components/button/button.js +3 -3
- package/esm2015/lib/components/comment/comment.js +6 -3
- package/esm2015/lib/components/dialog/dialog.js +2 -2
- package/esm2015/lib/components/list/list.js +2 -2
- package/esm2015/lib/components/qms-navigation-drawer/qms-navigation-drawer.component.js +3 -3
- package/esm2015/lib/components/qms-paginator/qms-paginator.component.js +16 -7
- package/esm2015/lib/components/related/content/related-content.component.js +2 -2
- package/esm2015/lib/components/related/list-other-related/list-related.component.js +1 -1
- package/esm2015/lib/components/related/risk/list/list.component.js +1 -1
- package/esm2015/lib/components/related/risk/result/result.component.js +1 -1
- package/esm2015/lib/components/rich-text/rich-text.js +1 -1
- package/esm2015/lib/components/table/table-action.js +2 -2
- package/esm2015/lib/components/table/table.module.js +4 -4
- package/esm2015/lib/components/tooltip/tooltip.js +1 -1
- package/esm2015/lib/components/tree/tree.component.js +1 -1
- package/esm2015/lib/components/treeNew/tree.component.js +18 -2
- package/esm2015/lib/directives/file-upload/file-upload-multiple-selector.directive.js +3 -1
- package/esm2015/lib/directives/file-upload/file-upload-selector.directive.js +3 -1
- package/esm2015/lib/directives/file-upload/file-upload.directive.js +1 -1
- package/esm2015/lib/directives/text-truncate/text-truncate.directive.js +58 -0
- package/esm2015/lib/model/en.js +63 -2
- package/esm2015/lib/model/no.js +63 -2
- package/esm2015/lib/qms-angular.module.js +4 -1
- package/esm2015/lib/qms-ckeditor-components/common/flowchart/config/halo.function.js +87 -0
- package/esm2015/lib/qms-ckeditor-components/common/flowchart/config/inspector.function.js +3767 -0
- package/esm2015/lib/qms-ckeditor-components/common/flowchart/config/selection.function.js +56 -0
- package/esm2015/lib/qms-ckeditor-components/common/flowchart/config/stencil.function.js +1003 -0
- package/esm2015/lib/qms-ckeditor-components/common/flowchart/config/toolbar.function.js +302 -0
- package/esm2015/lib/qms-ckeditor-components/common/flowchart/models/app-shapes.js +320 -0
- package/esm2015/lib/qms-ckeditor-components/common/flowchart/service/keyboard-service.js +69 -0
- package/esm2015/lib/qms-ckeditor-components/common/flowchart/service/kitchensink-service.js +412 -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 +34 -1
- package/esm2015/lib/qms-ckeditor-components/common/models/qms-ckeditor-save-as-template.model.js +1 -1
- package/esm2015/lib/qms-ckeditor-components/common/module/confirm/qms-ckeditor-confirm.component.js +3 -3
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-about/qms-ckeditor-about.component.js +1 -1
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/qms-ckeditor-bpmn.component.js +2 -2
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/save-template/save-template.component.js +2 -2
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-flowchart/qms-ckeditor-flowchart.component.js +317 -0
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-imagemap/qms-ckeditor-imagemap.component.js +3 -3
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-link/attachments/link-attachment.component.js +3 -3
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-link/qms-ckeditor-link.component.js +3 -3
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-load-template/qms-ckeditor-load-template.component.js +3 -3
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-relation/qmsckeditor-related.component.js +3 -3
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-template/qms-ckeditor-template.component.js +3 -3
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-tooltip/qms-ckeditor-tooltip.component.js +3 -3
- package/esm2015/lib/qms-ckeditor-components/qms-ckeditor.component.js +35 -3
- package/esm2015/lib/qms-ckeditor-components/qms-ckeditor.module.js +4 -2
- package/esm2015/public-api.js +8 -1
- package/esm2015/qms-angular.js +2 -1
- package/fesm2015/qms-angular.js +6882 -213
- package/fesm2015/qms-angular.js.map +1 -1
- package/lib/components/comment/comment.d.ts +1 -0
- package/lib/components/qms-paginator/qms-paginator.component.d.ts +1 -0
- package/lib/components/treeNew/tree.component.d.ts +1 -0
- package/lib/directives/text-truncate/text-truncate.directive.d.ts +15 -0
- package/lib/model/en.d.ts +61 -0
- package/lib/model/no.d.ts +61 -0
- package/lib/qms-ckeditor-components/common/flowchart/config/halo.function.d.ts +37 -0
- package/lib/qms-ckeditor-components/common/flowchart/config/inspector.function.d.ts +7 -0
- package/lib/qms-ckeditor-components/common/flowchart/config/selection.function.d.ts +39 -0
- package/lib/qms-ckeditor-components/common/flowchart/config/stencil.function.d.ts +11 -0
- package/lib/qms-ckeditor-components/common/flowchart/config/toolbar.function.d.ts +224 -0
- package/lib/qms-ckeditor-components/common/flowchart/models/app-shapes.d.ts +58 -0
- package/lib/qms-ckeditor-components/common/flowchart/service/keyboard-service.d.ts +16 -0
- package/lib/qms-ckeditor-components/common/flowchart/service/kitchensink-service.d.ts +56 -0
- package/lib/qms-ckeditor-components/common/flowchart/themes/theme-picker.d.ts +35 -0
- package/lib/qms-ckeditor-components/common/functions/common.function.d.ts +12 -0
- package/lib/qms-ckeditor-components/common/models/qms-ckeditor-save-as-template.model.d.ts +2 -0
- package/lib/qms-ckeditor-components/components/qms-ckeditor-flowchart/qms-ckeditor-flowchart.component.d.ts +41 -0
- package/lib/qms-ckeditor-components/qms-ckeditor.component.d.ts +4 -0
- package/lib.theme.scss +179 -0
- package/package.json +1 -1
- package/public-api.d.ts +7 -0
- package/qms-angular.d.ts +1 -0
- package/qms-angular.metadata.json +1 -1
- package/src/assets/fonts/Material/flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2 +0 -0
- package/src/assets/fonts/Material/gok-H7zzDkdnRel8-DQ6KAXJ69wP1tGnf4ZGhUce.woff2 +0 -0
- package/src/assets/fonts/OpenSans/mem8YaGs126MiZpBA-UFUZ0bbck.woff2 +0 -0
- package/src/assets/fonts/OpenSans/mem8YaGs126MiZpBA-UFVZ0b.woff2 +0 -0
- package/src/assets/fonts/OpenSans/mem8YaGs126MiZpBA-UFVp0bbck.woff2 +0 -0
- package/src/assets/fonts/OpenSans/mem8YaGs126MiZpBA-UFW50bbck.woff2 +0 -0
- package/src/assets/fonts/OpenSans/mem8YaGs126MiZpBA-UFWJ0bbck.woff2 +0 -0
- package/src/assets/fonts/OpenSans/mem8YaGs126MiZpBA-UFWZ0bbck.woff2 +0 -0
- package/src/assets/fonts/OpenSans/mem8YaGs126MiZpBA-UFWp0bbck.woff2 +0 -0
- package/src/assets/fonts/Raleway/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvaorCFPrEHJA.woff2 +0 -0
- package/src/assets/fonts/Raleway/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvaorCGPrEHJA.woff2 +0 -0
- package/src/assets/fonts/Raleway/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvaorCHPrEHJA.woff2 +0 -0
- package/src/assets/fonts/Raleway/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvaorCIPrE.woff2 +0 -0
- package/src/assets/fonts/Raleway/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvaorCMPrEHJA.woff2 +0 -0
- package/src/assets/jointjs/images/delete-icon-modern.png +0 -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-material.png +0 -0
- package/src/assets/jointjs/images/toolbar-icons-modern.png +0 -0
- package/src/assets/jointjs/scss/rappid.scss +326 -0
- package/src/assets/jointjs/scss/theme-picker.scss +22 -0
- 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/ca.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/el.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/eo.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/eu.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/km.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/translations/kn.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/pt.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 +12632 -345
- package/src/assets/qms-ckeditor-plugin/package.json +0 -2
- package/src/assets/qms-ckeditor-plugin/src/ckeditor.js +8 -8
- package/src/assets/qms-ckeditor-plugin/src/plugins/common/qmsCKEditorService.js +9 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/flowchart/flowchartdialogcommand.js +47 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/flowchart/qmsCKEditorFlowchartPlugin.js +30 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/heading/heading.js +119 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/heading/headingbuttonsui.js +103 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/heading/headingcommand.js +96 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/heading/headingediting.js +163 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/heading/headingui.js +115 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/heading/index.js +22 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/heading/theme/heading.css +35 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/heading/theme/icons/heading1.svg +1 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/heading/theme/icons/heading2.svg +1 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/heading/theme/icons/heading3.svg +1 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/heading/theme/icons/heading4.svg +1 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/heading/theme/icons/heading5.svg +1 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/heading/theme/icons/heading6.svg +1 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/heading/title.js +598 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/heading/utils.js +42 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/commands/insertcolumncommand.js +83 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/commands/insertrowcommand.js +82 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/commands/inserttablecommand.js +76 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/commands/mergecellcommand.js +272 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/commands/mergecellscommand.js +122 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/commands/removecolumncommand.js +122 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/commands/removerowcommand.js +97 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/commands/selectcolumncommand.js +63 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/commands/selectrowcommand.js +56 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/commands/setheadercolumncommand.js +95 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/commands/setheaderrowcommand.js +105 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/commands/splitcellcommand.js +68 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/converters/downcast.js +529 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/converters/table-cell-paragraph-post-fixer.js +136 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/converters/table-cell-refresh-post-fixer.js +75 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/converters/table-heading-rows-refresh-post-fixer.js +55 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/converters/table-layout-post-fixer.js +399 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/converters/tableproperties.js +126 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/converters/upcasttable.js +211 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/index.js +42 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/table.js +103 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/tablecellproperties/commands/tablecellbackgroundcolorcommand.js +35 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/tablecellproperties/commands/tablecellbordercolorcommand.js +47 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/tablecellproperties/commands/tablecellborderstylecommand.js +47 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/tablecellproperties/commands/tablecellborderwidthcommand.js +62 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/tablecellproperties/commands/tablecellheightcommand.js +51 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/tablecellproperties/commands/tablecellhorizontalalignmentcommand.js +35 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/tablecellproperties/commands/tablecellpaddingcommand.js +62 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/tablecellproperties/commands/tablecellpropertycommand.js +110 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/tablecellproperties/commands/tablecellverticalalignmentcommand.js +43 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/tablecellproperties/commands/tablecellwidthcommand.js +51 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/tablecellproperties/tablecellpropertiesediting.js +204 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/tablecellproperties/tablecellpropertiesui.js +401 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/tablecellproperties/ui/tablecellpropertiesview.js +829 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/tablecellproperties.js +80 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/tableclipboard.js +586 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/tableediting.js +160 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/tablekeyboard.js +343 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/tablemouse/mouseeventsobserver.js +72 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/tablemouse.js +218 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/tableproperties/commands/tablealignmentcommand.js +35 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/tableproperties/commands/tablebackgroundcolorcommand.js +35 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/tableproperties/commands/tablebordercolorcommand.js +47 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/tableproperties/commands/tableborderstylecommand.js +47 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/tableproperties/commands/tableborderwidthcommand.js +62 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/tableproperties/commands/tableheightcommand.js +51 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/tableproperties/commands/tablepropertycommand.js +98 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/tableproperties/commands/tablewidthcommand.js +51 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/tableproperties/tablepropertiesediting.js +182 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/tableproperties/tablepropertiesui.js +397 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/tableproperties/ui/tablepropertiesview.js +714 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/tableproperties.js +81 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/tableselection.js +357 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/tabletoolbar.js +111 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/tableui.js +359 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/tableutils.js +909 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/tablewalker.js +538 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/theme/colorinput.css +39 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/theme/form.css +11 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/theme/formrow.css +23 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/theme/icons/table-cell-properties.svg +1 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/theme/icons/table-column.svg +1 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/theme/icons/table-merge-cell.svg +1 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/theme/icons/table-properties.svg +1 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/theme/icons/table-row.svg +1 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/theme/icons/table.svg +1 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/theme/inserttable.css +10 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/theme/snippet.css +3876 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/theme/table.css +67 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/theme/tablecaption.css +53 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/theme/tablecellproperties.css +28 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/theme/tableediting.css +10 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/theme/tableform.css +59 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/theme/tableproperties.css +18 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/theme/tableselection.css +10 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/ui/colorinputview.js +343 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/ui/formrowview.js +103 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/ui/inserttableview.js +222 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/utils/common.js +57 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/utils/selection.js +276 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/utils/structure.js +543 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/utils/table-properties.js +66 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/utils/ui/contextualballoon.js +130 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/utils/ui/table-properties.js +397 -0
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/utils/ui/widget.js +62 -0
- package/src/assets/qms-ckeditor-plugin/src/themes/icons/flowchart.svg +507 -0
- package/src/lib/components/comment/comment.scss +1 -0
- package/src/lib/components/qms-navigation-drawer/qms-navigation-drawer.component.scss +1 -0
- package/src/lib/components/qms-paginator/qms-paginator.component.scss +4 -1
- package/src/lib/qms-ckeditor-components/common/flowchart/assets/image-icon1.svg +1 -0
- package/src/lib/qms-ckeditor-components/common/flowchart/assets/image-icon2.svg +6 -0
- package/src/lib/qms-ckeditor-components/common/flowchart/assets/image-icon3.svg +11 -0
- package/src/lib/qms-ckeditor-components/common/flowchart/assets/image-icon4.svg +8 -0
- package/src/lib/qms-ckeditor-components/common/flowchart/assets/member-female.png +0 -0
- package/src/lib/qms-ckeditor-components/common/flowchart/assets/member-male.png +0 -0
- package/src/lib/qms-ckeditor-components/common/flowchart/assets/no-color-icon.svg +72 -0
- package/src/lib/qms-ckeditor-components/common/flowchart/assets/toolbar-icons-material.png +0 -0
- package/src/lib/qms-ckeditor-components/common/flowchart/assets/toolbar-icons-modern.png +0 -0
- package/src/lib/qms-ckeditor-components/common/flowchart/assets/transparent-icon.svg +50 -0
- package/src/lib/qms-ckeditor-components/components/qms-ckeditor-flowchart/qms-ckeditor-flowchart.component.scss +68 -0
- package/src/lib/qms-ckeditor-components/styles/_modules.scss +9 -0
- package/src/themes/core/_mat-icon.scss +60 -60
- package/src/themes/core/_table.scss +72 -4
- package/src/themes/core/_typography.scss +108 -108
@@ -0,0 +1,412 @@
|
|
1
|
+
/*! Rappid v3.3.0 - HTML5 Diagramming Framework
|
2
|
+
|
3
|
+
Copyright (c) 2021 client IO
|
4
|
+
|
5
|
+
2021-02-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 joint from '@clientio/rappid'
|
14
|
+
import * as dagre from 'dagre';
|
15
|
+
import * as _ from 'lodash';
|
16
|
+
import * as appShapes from '../models/app-shapes';
|
17
|
+
import HaloFunction from '../config/halo.function';
|
18
|
+
import StencilFunction from '../config/stencil.function';
|
19
|
+
import ToolbartFunction from '../config/toolbar.function';
|
20
|
+
import InspectorFunction from '../config/inspector.function';
|
21
|
+
import { FlowChartConst } from '../../constants/ckeditorFlowchart.const';
|
22
|
+
class KitchenSinkService {
|
23
|
+
constructor(el, keyboardService, LANG) {
|
24
|
+
// backwards compatibility for older shapes
|
25
|
+
this.exportStylesheet = '.scalable * { vector-effect: non-scaling-stroke }';
|
26
|
+
this.el = el;
|
27
|
+
// apply current joint js theme
|
28
|
+
const view = new joint.mvc.View({ el });
|
29
|
+
view.delegateEvents({
|
30
|
+
'mouseup input[type="range"]': (evt) => evt.target.blur()
|
31
|
+
});
|
32
|
+
this.keyboardService = keyboardService;
|
33
|
+
this.LANG = LANG;
|
34
|
+
}
|
35
|
+
startRappid() {
|
36
|
+
joint.setTheme('modern');
|
37
|
+
this.initializePaper();
|
38
|
+
this.initializeStencil();
|
39
|
+
this.initializeSelection();
|
40
|
+
this.initializeToolsAndInspector();
|
41
|
+
this.initializeNavigator();
|
42
|
+
this.initializeToolbar();
|
43
|
+
this.initializeKeyboardShortcuts();
|
44
|
+
this.initializeTooltips();
|
45
|
+
}
|
46
|
+
initializePaper() {
|
47
|
+
const graph = this.graph = new joint.dia.Graph({}, {
|
48
|
+
cellNamespace: appShapes
|
49
|
+
});
|
50
|
+
graph.on('add', (cell, collection, opt) => {
|
51
|
+
if (opt.stencil) {
|
52
|
+
return joint.ui.Inspector.create('.inspector-container', _.extend({
|
53
|
+
cell: cell
|
54
|
+
}, InspectorFunction.getInspectorConfiguration(this.LANG)[cell.get('type')]));
|
55
|
+
}
|
56
|
+
});
|
57
|
+
this.commandManager = new joint.dia.CommandManager({ graph: graph });
|
58
|
+
const paper = this.paper = new joint.dia.Paper({
|
59
|
+
width: 1000,
|
60
|
+
height: 1000,
|
61
|
+
gridSize: 10,
|
62
|
+
drawGrid: true,
|
63
|
+
model: graph,
|
64
|
+
cellViewNamespace: appShapes,
|
65
|
+
defaultLink: new appShapes.app.Link(),
|
66
|
+
defaultConnectionPoint: appShapes.app.Link.connectionPoint,
|
67
|
+
interactive: { linkMove: false },
|
68
|
+
async: true,
|
69
|
+
sorting: joint.dia.Paper.sorting.APPROX
|
70
|
+
});
|
71
|
+
paper.on('blank:mousewheel', _.partial(this.onMousewheel, null), this);
|
72
|
+
paper.on('cell:mousewheel', this.onMousewheel.bind(this));
|
73
|
+
this.snaplines = new joint.ui.Snaplines({ paper: paper });
|
74
|
+
const paperScroller = this.paperScroller = new joint.ui.PaperScroller({
|
75
|
+
paper,
|
76
|
+
autoResizePaper: true,
|
77
|
+
scrollWhileDragging: true,
|
78
|
+
cursor: 'grab'
|
79
|
+
});
|
80
|
+
this.renderPlugin('.paper-container', paperScroller);
|
81
|
+
paperScroller.render().center();
|
82
|
+
}
|
83
|
+
initializeStencil() {
|
84
|
+
this.stencil = new joint.ui.Stencil({
|
85
|
+
paper: this.paperScroller,
|
86
|
+
snaplines: this.snaplines,
|
87
|
+
width: 240,
|
88
|
+
groups: StencilFunction.getStencilGroups(),
|
89
|
+
dropAnimation: true,
|
90
|
+
groupsToggleButtons: true,
|
91
|
+
paperOptions: function () {
|
92
|
+
return {
|
93
|
+
model: new joint.dia.Graph({}, {
|
94
|
+
cellNamespace: appShapes
|
95
|
+
}),
|
96
|
+
cellViewNamespace: appShapes
|
97
|
+
};
|
98
|
+
},
|
99
|
+
search: {
|
100
|
+
'*': ['type', 'attrs/text/text', 'attrs/root/dataTooltip', 'attrs/label/text'],
|
101
|
+
'org.Member': ['attrs/.rank/text', 'attrs/root/dataTooltip', 'attrs/.name/text']
|
102
|
+
},
|
103
|
+
// Use default Grid Layout
|
104
|
+
layout: true,
|
105
|
+
// Remove tooltip definition from clone
|
106
|
+
dragStartClone: (cell) => cell.clone().removeAttr('root/dataTooltip')
|
107
|
+
});
|
108
|
+
this.renderPlugin('.stencil-container', this.stencil);
|
109
|
+
this.stencil.load(StencilFunction.getStencilShapes(this.LANG));
|
110
|
+
}
|
111
|
+
initializeSelection() {
|
112
|
+
this.clipboard = new joint.ui.Clipboard();
|
113
|
+
this.selection = new joint.ui.Selection({ paper: this.paper, useModelGeometry: true });
|
114
|
+
this.selection.collection.on('reset add remove', this.onSelectionChange.bind(this));
|
115
|
+
const keyboard = this.keyboardService.keyboard;
|
116
|
+
// Initiate selecting when the user grabs the blank area of the paper while the Shift key is pressed.
|
117
|
+
// Otherwise, initiate paper pan.
|
118
|
+
this.paper.on('blank:pointerdown', (evt, x, y) => {
|
119
|
+
if (keyboard.isActive('shift', evt)) {
|
120
|
+
this.selection.startSelecting(evt);
|
121
|
+
}
|
122
|
+
else {
|
123
|
+
this.selection.collection.reset([]);
|
124
|
+
this.paperScroller.startPanning(evt);
|
125
|
+
this.paper.removeTools();
|
126
|
+
}
|
127
|
+
});
|
128
|
+
this.paper.on('element:pointerdown', (elementView, evt) => {
|
129
|
+
// Select an element if CTRL/Meta key is pressed while the element is clicked.
|
130
|
+
if (keyboard.isActive('ctrl meta', evt)) {
|
131
|
+
if (this.selection.collection.find(function (cell) { return cell.isLink(); })) {
|
132
|
+
// Do not allow mixing links and elements in the selection
|
133
|
+
this.selection.collection.reset([elementView.model]);
|
134
|
+
}
|
135
|
+
else {
|
136
|
+
this.selection.collection.add(elementView.model);
|
137
|
+
}
|
138
|
+
}
|
139
|
+
});
|
140
|
+
this.selection.on('selection-box:pointerdown', (elementView, evt) => {
|
141
|
+
// Unselect an element if the CTRL/Meta key is pressed while a selected element is clicked.
|
142
|
+
if (keyboard.isActive('ctrl meta', evt)) {
|
143
|
+
evt.preventDefault();
|
144
|
+
this.selection.collection.remove(elementView.model);
|
145
|
+
}
|
146
|
+
});
|
147
|
+
}
|
148
|
+
getImageContent() {
|
149
|
+
return __awaiter(this, void 0, void 0, function* () {
|
150
|
+
return new Promise((resolve) => {
|
151
|
+
this.paper.toPNG((imageData) => {
|
152
|
+
resolve(imageData);
|
153
|
+
});
|
154
|
+
});
|
155
|
+
});
|
156
|
+
}
|
157
|
+
getJsonContent() {
|
158
|
+
return JSON.stringify(this.graph.toJSON());
|
159
|
+
}
|
160
|
+
onSelectionChange() {
|
161
|
+
const { paper, selection } = this;
|
162
|
+
const { collection } = selection;
|
163
|
+
paper.removeTools();
|
164
|
+
joint.ui.Halo.clear(paper);
|
165
|
+
joint.ui.FreeTransform.clear(paper);
|
166
|
+
joint.ui.Inspector.close();
|
167
|
+
if (collection.length === 1) {
|
168
|
+
const primaryCell = collection.first();
|
169
|
+
const primaryCellView = paper.requireView(primaryCell);
|
170
|
+
selection.destroySelectionBox(primaryCell);
|
171
|
+
this.selectPrimaryCell(primaryCellView);
|
172
|
+
}
|
173
|
+
else if (collection.length === 2) {
|
174
|
+
collection.each(function (cell) {
|
175
|
+
selection.createSelectionBox(cell);
|
176
|
+
});
|
177
|
+
}
|
178
|
+
}
|
179
|
+
selectPrimaryCell(cellView) {
|
180
|
+
const cell = cellView.model;
|
181
|
+
if (cell.isElement()) {
|
182
|
+
this.selectPrimaryElement(cellView);
|
183
|
+
}
|
184
|
+
else {
|
185
|
+
this.selectPrimaryLink(cellView);
|
186
|
+
}
|
187
|
+
joint.ui.Inspector.create('.inspector-container', _.extend({
|
188
|
+
cell: cell
|
189
|
+
}, InspectorFunction.getInspectorConfiguration(this.LANG)[cell.get('type')]));
|
190
|
+
}
|
191
|
+
selectPrimaryElement(elementView) {
|
192
|
+
const element = elementView.model;
|
193
|
+
new joint.ui.FreeTransform({
|
194
|
+
cellView: elementView,
|
195
|
+
allowRotation: false,
|
196
|
+
preserveAspectRatio: !!element.get('preserveAspectRatio'),
|
197
|
+
allowOrthogonalResize: element.get('allowOrthogonalResize') !== false
|
198
|
+
}).render();
|
199
|
+
new joint.ui.Halo({
|
200
|
+
cellView: elementView,
|
201
|
+
handles: HaloFunction.getHaloConfiguration(this.LANG),
|
202
|
+
useModelGeometry: true
|
203
|
+
}).render();
|
204
|
+
}
|
205
|
+
selectPrimaryLink(linkView) {
|
206
|
+
const ns = joint.linkTools;
|
207
|
+
const toolsView = new joint.dia.ToolsView({
|
208
|
+
name: 'link-pointerdown',
|
209
|
+
tools: [
|
210
|
+
new ns.Vertices(),
|
211
|
+
new ns.SourceAnchor(),
|
212
|
+
new ns.TargetAnchor(),
|
213
|
+
new ns.SourceArrowhead(),
|
214
|
+
new ns.TargetArrowhead(),
|
215
|
+
new ns.Segments,
|
216
|
+
new ns.Boundary({ padding: 15 }),
|
217
|
+
new ns.Remove({ offset: -20, distance: 40 })
|
218
|
+
]
|
219
|
+
});
|
220
|
+
linkView.addTools(toolsView);
|
221
|
+
}
|
222
|
+
initializeToolsAndInspector() {
|
223
|
+
this.paper.on('cell:pointerup', (cellView) => {
|
224
|
+
const cell = cellView.model;
|
225
|
+
const { collection } = this.selection;
|
226
|
+
if (collection.includes(cell)) {
|
227
|
+
return;
|
228
|
+
}
|
229
|
+
collection.reset([cell]);
|
230
|
+
});
|
231
|
+
this.paper.on('link:mouseenter', (linkView) => {
|
232
|
+
// Open tool only if there is none yet
|
233
|
+
if (linkView.hasTools()) {
|
234
|
+
return;
|
235
|
+
}
|
236
|
+
const ns = joint.linkTools;
|
237
|
+
const toolsView = new joint.dia.ToolsView({
|
238
|
+
name: 'link-hover',
|
239
|
+
tools: [
|
240
|
+
new ns.Vertices({ vertexAdding: false }),
|
241
|
+
new ns.SourceArrowhead(),
|
242
|
+
new ns.TargetArrowhead()
|
243
|
+
]
|
244
|
+
});
|
245
|
+
linkView.addTools(toolsView);
|
246
|
+
});
|
247
|
+
this.paper.on('link:mouseleave', (linkView) => {
|
248
|
+
// Remove only the hover tool, not the pointerdown tool
|
249
|
+
if (linkView.hasTools('link-hover')) {
|
250
|
+
linkView.removeTools();
|
251
|
+
}
|
252
|
+
});
|
253
|
+
this.graph.on('change', (cell, opt) => {
|
254
|
+
if (!cell.isLink() || !opt.inspector) {
|
255
|
+
return;
|
256
|
+
}
|
257
|
+
const ns = joint.linkTools;
|
258
|
+
const toolsView = new joint.dia.ToolsView({
|
259
|
+
name: 'link-inspected',
|
260
|
+
tools: [
|
261
|
+
new ns.Boundary({ padding: 15 }),
|
262
|
+
]
|
263
|
+
});
|
264
|
+
cell.findView(this.paper).addTools(toolsView);
|
265
|
+
});
|
266
|
+
}
|
267
|
+
initializeNavigator() {
|
268
|
+
const navigator = this.navigator = new joint.ui.Navigator({
|
269
|
+
width: 240,
|
270
|
+
height: 115,
|
271
|
+
paperScroller: this.paperScroller,
|
272
|
+
zoom: false,
|
273
|
+
paperOptions: {
|
274
|
+
async: true,
|
275
|
+
sorting: joint.dia.Paper.sorting.NONE,
|
276
|
+
elementView: appShapes.NavigatorElementView,
|
277
|
+
linkView: appShapes.NavigatorLinkView,
|
278
|
+
cellViewNamespace: { /* no other views are accessible in the navigator */}
|
279
|
+
}
|
280
|
+
});
|
281
|
+
this.renderPlugin('.navigator-container', navigator);
|
282
|
+
}
|
283
|
+
initializeToolbar() {
|
284
|
+
const { groups, tools } = ToolbartFunction.getToolbarConfiguration(this.LANG);
|
285
|
+
this.toolbar = new joint.ui.Toolbar({
|
286
|
+
groups,
|
287
|
+
tools,
|
288
|
+
autoToggle: true,
|
289
|
+
references: {
|
290
|
+
paperScroller: this.paperScroller,
|
291
|
+
commandManager: this.commandManager
|
292
|
+
}
|
293
|
+
});
|
294
|
+
this.toolbar.on({
|
295
|
+
'svg:pointerclick': this.openAsSVG.bind(this),
|
296
|
+
'png:pointerclick': this.openAsPNG.bind(this),
|
297
|
+
'to-front:pointerclick': this.applyOnSelection.bind(this, 'toFront'),
|
298
|
+
'to-back:pointerclick': this.applyOnSelection.bind(this, 'toBack'),
|
299
|
+
'layout:pointerclick': this.layoutDirectedGraph.bind(this),
|
300
|
+
'snapline:change': this.changeSnapLines.bind(this),
|
301
|
+
'clear:pointerclick': this.graph.clear.bind(this.graph),
|
302
|
+
'print:pointerclick': this.paper.print.bind(this.paper),
|
303
|
+
'grid-size:change': this.paper.setGridSize.bind(this.paper),
|
304
|
+
'selectTemplate:option:select': this.onChangeTemplate,
|
305
|
+
'deleteTemplate:pointerclick': this.onDeleteTemplate,
|
306
|
+
'saveAsTemplate:pointerclick': this.onSaveAsTemplate,
|
307
|
+
'resetTemplate:pointerclick': this.onResetTemplate
|
308
|
+
});
|
309
|
+
this.renderPlugin('.toolbar-container', this.toolbar);
|
310
|
+
}
|
311
|
+
applyOnSelection(method) {
|
312
|
+
this.graph.startBatch('selection');
|
313
|
+
this.selection.collection.models.forEach(function (model) { model[method](); });
|
314
|
+
this.graph.stopBatch('selection');
|
315
|
+
}
|
316
|
+
changeSnapLines(checked) {
|
317
|
+
if (checked) {
|
318
|
+
this.snaplines.startListening();
|
319
|
+
this.stencil.options.snaplines = this.snaplines;
|
320
|
+
}
|
321
|
+
else {
|
322
|
+
this.snaplines.stopListening();
|
323
|
+
this.stencil.options.snaplines = null;
|
324
|
+
}
|
325
|
+
}
|
326
|
+
initializeKeyboardShortcuts() {
|
327
|
+
this.keyboardService.create(this.graph, this.clipboard, this.selection, this.paperScroller, this.commandManager);
|
328
|
+
}
|
329
|
+
initializeTooltips() {
|
330
|
+
return new joint.ui.Tooltip({
|
331
|
+
rootTarget: document.body,
|
332
|
+
target: '[data-tooltip]',
|
333
|
+
direction: joint.ui.Tooltip.TooltipArrowPosition.Auto,
|
334
|
+
padding: 10
|
335
|
+
});
|
336
|
+
}
|
337
|
+
openAsSVG() {
|
338
|
+
this.paper.hideTools().toSVG((svg) => {
|
339
|
+
new joint.ui.Lightbox({
|
340
|
+
image: 'data:image/svg+xml,' + encodeURIComponent(svg),
|
341
|
+
downloadable: true,
|
342
|
+
fileName: 'Rappid'
|
343
|
+
}).open();
|
344
|
+
this.paper.showTools();
|
345
|
+
}, {
|
346
|
+
preserveDimensions: true,
|
347
|
+
convertImagesToDataUris: true,
|
348
|
+
useComputedStyles: false,
|
349
|
+
stylesheet: this.exportStylesheet
|
350
|
+
});
|
351
|
+
}
|
352
|
+
openAsPNG() {
|
353
|
+
this.paper.hideTools().toPNG((dataURL) => {
|
354
|
+
new joint.ui.Lightbox({
|
355
|
+
image: dataURL,
|
356
|
+
downloadable: true,
|
357
|
+
fileName: 'Rappid'
|
358
|
+
}).open();
|
359
|
+
this.paper.showTools();
|
360
|
+
}, {
|
361
|
+
padding: 10,
|
362
|
+
useComputedStyles: false,
|
363
|
+
stylesheet: this.exportStylesheet
|
364
|
+
});
|
365
|
+
}
|
366
|
+
onMousewheel(cellView, evt, ox, oy, delta) {
|
367
|
+
if (this.keyboardService.keyboard.isActive('alt', evt)) {
|
368
|
+
evt.preventDefault();
|
369
|
+
this.paperScroller.zoom(delta * 0.2, { min: 0.2, max: 5, grid: 0.2, ox, oy });
|
370
|
+
}
|
371
|
+
}
|
372
|
+
layoutDirectedGraph() {
|
373
|
+
joint.layout.DirectedGraph.layout(this.graph, {
|
374
|
+
graphlib: dagre.graphlib,
|
375
|
+
dagre: dagre,
|
376
|
+
setVertices: true,
|
377
|
+
rankDir: 'TB',
|
378
|
+
marginX: 100,
|
379
|
+
marginY: 100
|
380
|
+
});
|
381
|
+
this.paperScroller.centerContent();
|
382
|
+
}
|
383
|
+
renderPlugin(selector, plugin) {
|
384
|
+
this.el.querySelector(selector).appendChild(plugin.el);
|
385
|
+
plugin.render();
|
386
|
+
}
|
387
|
+
onChangeTemplate(event) {
|
388
|
+
if (event.jsonContent) {
|
389
|
+
window[FlowChartConst.KS_SELECTED_FLOWCHART_ID] = event.flowChartId;
|
390
|
+
window[FlowChartConst.KS_SELECTED_JSONCONTENT] = event.jsonContent;
|
391
|
+
window.postMessage(FlowChartConst.KS_CHANGE_TEMPLATE, '*');
|
392
|
+
}
|
393
|
+
}
|
394
|
+
onDeleteTemplate(event) {
|
395
|
+
if (window[FlowChartConst.KS_IS_SELECTED_TEMPLATE]) {
|
396
|
+
window.postMessage(FlowChartConst.KS_DELETE_TEMPLATE, '*');
|
397
|
+
}
|
398
|
+
else {
|
399
|
+
window.postMessage(FlowChartConst.MUST_SELECT_TEMPLATE, '*');
|
400
|
+
}
|
401
|
+
}
|
402
|
+
onSaveAsTemplate() {
|
403
|
+
window.postMessage(FlowChartConst.KS_SAVE_AS_TEMPLATE, '*');
|
404
|
+
}
|
405
|
+
onResetTemplate() {
|
406
|
+
if (window[FlowChartConst.KS_IS_SELECTED_TEMPLATE]) {
|
407
|
+
window.postMessage(FlowChartConst.KS_RESET_TEMPLATE, '*');
|
408
|
+
}
|
409
|
+
}
|
410
|
+
}
|
411
|
+
export default KitchenSinkService;
|
412
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2l0Y2hlbnNpbmstc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Ftcy1hbmd1bGFyL3NyYy9saWIvcW1zLWNrZWRpdG9yLWNvbXBvbmVudHMvY29tbW9uL2Zsb3djaGFydC9zZXJ2aWNlL2tpdGNoZW5zaW5rLXNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7b0ZBVW9GOztBQUVwRiw0Q0FBNEM7QUFDNUMsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDL0IsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFFNUIsT0FBTyxLQUFLLFNBQVMsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLFlBQVksTUFBTSx5QkFBeUIsQ0FBQztBQUNuRCxPQUFPLGVBQWUsTUFBTSw0QkFBNEIsQ0FBQztBQUN6RCxPQUFPLGdCQUFnQixNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8saUJBQWlCLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRXpFLE1BQU0sa0JBQWtCO0lBNkJwQixZQUNJLEVBQVcsRUFDWCxlQUFnQyxFQUNoQyxJQUFTO1FBNFdiLDJDQUEyQztRQUMzQyxxQkFBZ0IsR0FBRyxtREFBbUQsQ0FBQztRQTNXbkUsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFFYiwrQkFBK0I7UUFDL0IsTUFBTSxJQUFJLEdBQUcsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLGNBQWMsQ0FBQztZQUNoQiw2QkFBNkIsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUU7U0FDNUQsQ0FBQyxDQUFDO1FBRUgsSUFB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QUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsa0JBQWtCLEVBQUUsR0FBRyxDQUFDLENBQUM7U0FDOUQ7SUFDTCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBSztRQUNsQixJQUFJLE1BQU0sQ0FBQyxjQUFjLENBQUMsdUJBQXVCLENBQUMsRUFBRTtZQUNoRCxNQUFNLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsRUFBRSxHQUFHLENBQUMsQ0FBQztTQUM5RDthQUNJO1lBQ0QsTUFBTSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsb0JBQW9CLEVBQUUsR0FBRyxDQUFDLENBQUM7U0FDaEU7SUFDTCxDQUFDO0lBRUQsZ0JBQWdCO1FBQ1osTUFBTSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsbUJBQW1CLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELGVBQWU7UUFDWCxJQUFJLE1BQU0sQ0FBQyxjQUFjLENBQUMsdUJBQXVCLENBQUMsRUFBRTtZQUNoRCxNQUFNLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLENBQUMsQ0FBQztTQUM3RDtJQUNMLENBQUM7Q0FDSjtBQUVELGVBQWUsa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiEgUmFwcGlkIHYzLjMuMCAtIEhUTUw1IERpYWdyYW1taW5nIEZyYW1ld29ya1xyXG5cclxuQ29weXJpZ2h0IChjKSAyMDIxIGNsaWVudCBJT1xyXG5cclxuIDIwMjEtMDItMTIgXHJcblxyXG5cclxuVGhpcyBTb3VyY2UgQ29kZSBGb3JtIGlzIHN1YmplY3QgdG8gdGhlIHRlcm1zIG9mIHRoZSBSYXBwaWQgTGljZW5zZVxyXG4sIHYuIDIuMC4gSWYgYSBjb3B5IG9mIHRoZSBSYXBwaWQgTGljZW5zZSB3YXMgbm90IGRpc3RyaWJ1dGVkIHdpdGggdGhpc1xyXG5maWxlLCBZb3UgY2FuIG9idGFpbiBvbmUgYXQgaHR0cDovL2pvaW50anMuY29tL2xpY2Vuc2UvcmFwcGlkX3YyLnR4dFxyXG4gb3IgZnJvbSB0aGUgUmFwcGlkIGFyY2hpdmUgYXMgd2FzIGRpc3RyaWJ1dGVkIGJ5IGNsaWVudCBJTy4gU2VlIHRoZSBMSUNFTlNFIGZpbGUuKi9cclxuXHJcbi8vIGltcG9ydCAqIGFzIGpvaW50IGZyb20gJ0BjbGllbnRpby9yYXBwaWQnXHJcbmltcG9ydCAqIGFzIGRhZ3JlIGZyb20gJ2RhZ3JlJztcclxuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xyXG5pbXBvcnQgeyBLZXlib2FyZFNlcnZpY2UgfSBmcm9tICcuL2tleWJvYXJkLXNlcnZpY2UnO1xyXG5pbXBvcnQgKiBhcyBhcHBTaGFwZXMgZnJvbSAnLi4vbW9kZWxzL2FwcC1zaGFwZXMnO1xyXG5pbXBvcnQgSGFsb0Z1bmN0aW9uIGZyb20gJy4uL2NvbmZpZy9oYWxvLmZ1bmN0aW9uJztcclxuaW1wb3J0IFN0ZW5jaWxGdW5jdGlvbiBmcm9tICcuLi9jb25maWcvc3RlbmNpbC5mdW5jdGlvbic7XHJcbmltcG9ydCBUb29sYmFydEZ1bmN0aW9uIGZyb20gJy4uL2NvbmZpZy90b29sYmFyLmZ1bmN0aW9uJztcclxuaW1wb3J0IEluc3BlY3RvckZ1bmN0aW9uIGZyb20gJy4uL2NvbmZpZy9pbnNwZWN0b3IuZnVuY3Rpb24nO1xyXG5pbXBvcnQgeyBGbG93Q2hhcnRDb25zdCB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9ja2VkaXRvckZsb3djaGFydC5jb25zdCc7XHJcbmRlY2xhcmUgdmFyIGpvaW50OiBhbnk7XHJcbmNsYXNzIEtpdGNoZW5TaW5rU2VydmljZSB7XHJcbiAgICBMQU5HOiBhbnlcclxuICAgIGVsOiBFbGVtZW50O1xyXG5cclxuICAgIC8vIGdyYXBoOiBqb2ludC5kaWEuR3JhcGg7XHJcbiAgICAvLyBwYXBlcjogam9pbnQuZGlhLlBhcGVyO1xyXG4gICAgLy8gcGFwZXJTY3JvbGxlcjogam9pbnQudWkuUGFwZXJTY3JvbGxlcjtcclxuXHJcbiAgICAvLyBjb21tYW5kTWFuYWdlcjogam9pbnQuZGlhLkNvbW1hbmRNYW5hZ2VyO1xyXG4gICAgLy8gc25hcGxpbmVzOiBqb2ludC51aS5TbmFwbGluZXM7XHJcbiAgICAvLyBjbGlwYm9hcmQ6IGpvaW50LnVpLkNsaXBib2FyZDtcclxuICAgIC8vIHNlbGVjdGlvbjogam9pbnQudWkuU2VsZWN0aW9uO1xyXG4gICAgLy8gbmF2aWdhdG9yOiBqb2ludC51aS5OYXZpZ2F0b3I7XHJcbiAgICAvLyBzdGVuY2lsOiBqb2ludC51aS5TdGVuY2lsXHJcbiAgICAvLyB0b29sYmFyOiBqb2ludC51aS5Ub29sYmFyXHJcbiAgICBncmFwaDogYW55O1xyXG4gICAgcGFwZXI6IGFueTtcclxuICAgIHBhcGVyU2Nyb2xsZXI6IGFueTtcclxuXHJcbiAgICBjb21tYW5kTWFuYWdlcjogYW55O1xyXG4gICAgc25hcGxpbmVzOiBhbnk7XHJcbiAgICBjbGlwYm9hcmQ6IGFueTtcclxuICAgIHNlbGVjdGlvbjogYW55O1xyXG4gICAgbmF2aWdhdG9yOiBhbnk7XHJcbiAgICBzdGVuY2lsOiBhbnk7XHJcbiAgICB0b29sYmFyOiBhbnk7XHJcblxyXG4gICAga2V5Ym9hcmRTZXJ2aWNlOiBLZXlib2FyZFNlcnZpY2U7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgZWw6IEVsZW1lbnQsXHJcbiAgICAgICAga2V5Ym9hcmRTZXJ2aWNlOiBLZXlib2FyZFNlcnZpY2UsXHJcbiAgICAgICAgTEFORzogYW55XHJcbiAgICApIHtcclxuICAgICAgICB0aGlzLmVsID0gZWw7XHJcblxyXG4gICAgICAgIC8vIGFwcGx5IGN1cnJlbnQgam9pbnQganMgdGhlbWVcclxuICAgICAgICBjb25zdCB2aWV3ID0gbmV3IGpvaW50Lm12Yy5WaWV3KHsgZWwgfSk7XHJcbiAgICAgICAgdmlldy5kZWxlZ2F0ZUV2ZW50cyh7XHJcbiAgICAgICAgICAgICdtb3VzZXVwIGlucHV0W3R5cGU9XCJyYW5nZVwiXSc6IChldnQpID0+IGV2dC50YXJnZXQuYmx1cigpXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMua2V5Ym9hcmRTZXJ2aWNlID0ga2V5Ym9hcmRTZXJ2aWNlO1xyXG4gICAgICAgIHRoaXMuTEFORyA9IExBTkdcclxuICAgIH1cclxuXHJcbiAgICBzdGFydFJhcHBpZCgpIHtcclxuXHJcbiAgICAgICAgam9pbnQuc2V0VGhlbWUoJ21vZGVybicpO1xyXG5cclxuICAgICAgICB0aGlzLmluaXRpYWxpemVQYXBlcigpO1xyXG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZVN0ZW5jaWwoKTtcclxuICAgICAgICB0aGlzLmluaXRpYWxpemVTZWxlY3Rpb24oKTtcclxuICAgICAgICB0aGlzLmluaXRpYWxpemVUb29sc0FuZEluc3BlY3RvcigpO1xyXG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZU5hdmlnYXRvcigpO1xyXG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZVRvb2xiYXIoKTtcclxuICAgICAgICB0aGlzLmluaXRpYWxpemVLZXlib2FyZFNob3J0Y3V0cygpO1xyXG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZVRvb2x0aXBzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdGlhbGl6ZVBhcGVyKCkge1xyXG5cclxuICAgICAgICBjb25zdCBncmFwaCA9IHRoaXMuZ3JhcGggPSBuZXcgam9pbnQuZGlhLkdyYXBoKHt9LCB7XHJcbiAgICAgICAgICAgIGNlbGxOYW1lc3BhY2U6IGFwcFNoYXBlc1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBncmFwaC5vbignYWRkJywgKGNlbGw6IGFueSwgY29sbGVjdGlvbjogYW55LCBvcHQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAob3B0LnN0ZW5jaWwpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBqb2ludC51aS5JbnNwZWN0b3IuY3JlYXRlKCcuaW5zcGVjdG9yLWNvbnRhaW5lcicsIF8uZXh0ZW5kKHtcclxuICAgICAgICAgICAgICAgICAgICBjZWxsOiBjZWxsXHJcbiAgICAgICAgICAgICAgICB9LCBJbnNwZWN0b3JGdW5jdGlvbi5nZXRJbnNwZWN0b3JDb25maWd1cmF0aW9uKHRoaXMuTEFORylbY2VsbC5nZXQoJ3R5cGUnKV0pKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLmNvbW1hbmRNYW5hZ2VyID0gbmV3IGpvaW50LmRpYS5Db21tYW5kTWFuYWdlcih7IGdyYXBoOiBncmFwaCB9KTtcclxuXHJcbiAgICAgICAgY29uc3QgcGFwZXIgPSB0aGlzLnBhcGVyID0gbmV3IGpvaW50LmRpYS5QYXBlcih7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAwLFxyXG4gICAgICAgICAgICBoZWlnaHQ6IDEwMDAsXHJcbiAgICAgICAgICAgIGdyaWRTaXplOiAxMCxcclxuICAgICAgICAgICAgZHJhd0dyaWQ6IHRydWUsXHJcbiAgICAgICAgICAgIG1vZGVsOiBncmFwaCxcclxuICAgICAgICAgICAgY2VsbFZpZXdOYW1lc3BhY2U6IGFwcFNoYXBlcyxcclxuICAgICAgICAgICAgZGVmYXVsdExpbms6IDx1bmtub3duPm5ldyBhcHBTaGFwZXMuYXBwLkxpbmsoKSxcclxuICAgICAgICAgICAgZGVmYXVsdENvbm5lY3Rpb25Qb2ludDogYXBwU2hhcGVzLmFwcC5MaW5rLmNvbm5lY3Rpb25Qb2ludCxcclxuICAgICAgICAgICAgaW50ZXJhY3RpdmU6IHsgbGlua01vdmU6IGZhbHNlIH0sXHJcbiAgICAgICAgICAgIGFzeW5jOiB0cnVlLFxyXG4gICAgICAgICAgICBzb3J0aW5nOiBqb2ludC5kaWEuUGFwZXIuc29ydGluZy5BUFBST1hcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgcGFwZXIub24oJ2JsYW5rOm1vdXNld2hlZWwnLCBfLnBhcnRpYWwodGhpcy5vbk1vdXNld2hlZWwsIG51bGwpLCB0aGlzKTtcclxuICAgICAgICBwYXBlci5vbignY2VsbDptb3VzZXdoZWVsJywgdGhpcy5vbk1vdXNld2hlZWwuYmluZCh0aGlzKSk7XHJcblxyXG4gICAgICAgIHRoaXMuc25hcGxpbmVzID0gbmV3IGpvaW50LnVpLlNuYXBsaW5lcyh7IHBhcGVyOiBwYXBlciB9KTtcclxuXHJcbiAgICAgICAgY29uc3QgcGFwZXJTY3JvbGxlciA9IHRoaXMucGFwZXJTY3JvbGxlciA9IG5ldyBqb2ludC51aS5QYXBlclNjcm9sbGVyKHtcclxuICAgICAgICAgICAgcGFwZXIsXHJcbiAgICAgICAgICAgIGF1dG9SZXNpemVQYXBlcjogdHJ1ZSxcclxuICAgICAgICAgICAgc2Nyb2xsV2hpbGVEcmFnZ2luZzogdHJ1ZSxcclxuICAgICAgICAgICAgY3Vyc29yOiAnZ3JhYidcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5yZW5kZXJQbHVnaW4oJy5wYXBlci1jb250YWluZXInLCBwYXBlclNjcm9sbGVyKTtcclxuICAgICAgICBwYXBlclNjcm9sbGVyLnJlbmRlcigpLmNlbnRlcigpO1xyXG4gICAgfVxyXG5cclxuICAgIGluaXRpYWxpemVTdGVuY2lsKCkge1xyXG5cclxuICAgICAgICB0aGlzLnN0ZW5jaWwgPSBuZXcgam9pbnQudWkuU3RlbmNpbCh7XHJcbiAgICAgICAgICAgIHBhcGVyOiB0aGlzLnBhcGVyU2Nyb2xsZXIsXHJcbiAgICAgICAgICAgIHNuYXBsaW5lczogdGhpcy5zbmFwbGluZXMsXHJcbiAgICAgICAgICAgIHdpZHRoOiAyNDAsXHJcbiAgICAgICAgICAgIGdyb3VwczogU3RlbmNpbEZ1bmN0aW9uLmdldFN0ZW5jaWxHcm91cHMoKSxcclxuICAgICAgICAgICAgZHJvcEFuaW1hdGlvbjogdHJ1ZSxcclxuICAgICAgICAgICAgZ3JvdXBzVG9nZ2xlQnV0dG9uczogdHJ1ZSxcclxuICAgICAgICAgICAgcGFwZXJPcHRpb25zOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgIG1vZGVsOiBuZXcgam9pbnQuZGlhLkdyYXBoKHt9LCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGxOYW1lc3BhY2U6IGFwcFNoYXBlc1xyXG4gICAgICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgICAgIGNlbGxWaWV3TmFtZXNwYWNlOiBhcHBTaGFwZXNcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHNlYXJjaDoge1xyXG4gICAgICAgICAgICAgICAgJyonOiBbJ3R5cGUnLCAnYXR0cnMvdGV4dC90ZXh0JywgJ2F0dHJzL3Jvb3QvZGF0YVRvb2x0aXAnLCAnYXR0cnMvbGFiZWwvdGV4dCddLFxyXG4gICAgICAgICAgICAgICAgJ29yZy5NZW1iZXInOiBbJ2F0dHJzLy5yYW5rL3RleHQnLCAnYXR0cnMvcm9vdC9kYXRhVG9vbHRpcCcsICdhdHRycy8ubmFtZS90ZXh0J11cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgLy8gVXNlIGRlZmF1bHQgR3JpZCBMYXlvdXRcclxuICAgICAgICAgICAgbGF5b3V0OiB0cnVlLFxyXG4gICAgICAgICAgICAvLyBSZW1vdmUgdG9vbHRpcCBkZWZpbml0aW9uIGZyb20gY2xvbmVcclxuICAgICAgICAgICAgZHJhZ1N0YXJ0Q2xvbmU6IChjZWxsOiBhbnkpID0+IGNlbGwuY2xvbmUoKS5yZW1vdmVBdHRyKCdyb290L2RhdGFUb29sdGlwJylcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLnJlbmRlclBsdWdpbignLnN0ZW5jaWwtY29udGFpbmVyJywgdGhpcy5zdGVuY2lsKTtcclxuICAgICAgICB0aGlzLnN0ZW5jaWwubG9hZChTdGVuY2lsRnVuY3Rpb24uZ2V0U3RlbmNpbFNoYXBlcyh0aGlzLkxBTkcpKTtcclxuICAgIH1cclxuXHJcbiAgICBpbml0aWFsaXplU2VsZWN0aW9uKCkge1xyXG5cclxuICAgICAgICB0aGlzLmNsaXBib2FyZCA9IG5ldyBqb2ludC51aS5DbGlwYm9hcmQoKTtcclxuICAgICAgICB0aGlzLnNlbGVjdGlvbiA9IG5ldyBqb2ludC51aS5TZWxlY3Rpb24oeyBwYXBlcjogdGhpcy5wYXBlciwgdXNlTW9kZWxHZW9tZXRyeTogdHJ1ZSB9KTtcclxuICAgICAgICB0aGlzLnNlbGVjdGlvbi5jb2xsZWN0aW9uLm9uKCdyZXNldCBhZGQgcmVtb3ZlJywgdGhpcy5vblNlbGVjdGlvbkNoYW5nZS5iaW5kKHRoaXMpKTtcclxuXHJcbiAgICAgICAgY29uc3Qga2V5Ym9hcmQgPSB0aGlzLmtleWJvYXJkU2VydmljZS5rZXlib2FyZDtcclxuXHJcbiAgICAgICAgLy8gSW5pdGlhdGUgc2VsZWN0aW5nIHdoZW4gdGhlIHVzZXIgZ3JhYnMgdGhlIGJsYW5rIGFyZWEgb2YgdGhlIHBhcGVyIHdoaWxlIHRoZSBTaGlmdCBrZXkgaXMgcHJlc3NlZC5cclxuICAgICAgICAvLyBPdGhlcndpc2UsIGluaXRpYXRlIHBhcGVyIHBhbi5cclxuICAgICAgICB0aGlzLnBhcGVyLm9uKCdibGFuazpwb2ludGVyZG93bicsIChldnQ6IGFueSwgeDogbnVtYmVyLCB5OiBudW1iZXIpID0+IHtcclxuXHJcbiAgICAgICAgICAgIGlmIChrZXlib2FyZC5pc0FjdGl2ZSgnc2hpZnQnLCBldnQpKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbi5zdGFydFNlbGVjdGluZyhldnQpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24uY29sbGVjdGlvbi5yZXNldChbXSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBhcGVyU2Nyb2xsZXIuc3RhcnRQYW5uaW5nKGV2dCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBhcGVyLnJlbW92ZVRvb2xzKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5wYXBlci5vbignZWxlbWVudDpwb2ludGVyZG93bicsIChlbGVtZW50VmlldzogYW55LCBldnQ6IGFueSkgPT4ge1xyXG5cclxuICAgICAgICAgICAgLy8gU2VsZWN0IGFuIGVsZW1lbnQgaWYgQ1RSTC9NZXRhIGtleSBpcyBwcmVzc2VkIHdoaWxlIHRoZSBlbGVtZW50IGlzIGNsaWNrZWQuXHJcbiAgICAgICAgICAgIGlmIChrZXlib2FyZC5pc0FjdGl2ZSgnY3RybCBtZXRhJywgZXZ0KSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uLmNvbGxlY3Rpb24uZmluZChmdW5jdGlvbiAoY2VsbCkgeyByZXR1cm4gY2VsbC5pc0xpbmsoKSB9KSkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIERvIG5vdCBhbGxvdyBtaXhpbmcgbGlua3MgYW5kIGVsZW1lbnRzIGluIHRoZSBzZWxlY3Rpb25cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbi5jb2xsZWN0aW9uLnJlc2V0KFtlbGVtZW50Vmlldy5tb2RlbF0pO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbi5jb2xsZWN0aW9uLmFkZChlbGVtZW50Vmlldy5tb2RlbCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuc2VsZWN0aW9uLm9uKCdzZWxlY3Rpb24tYm94OnBvaW50ZXJkb3duJywgKGVsZW1lbnRWaWV3OiBhbnksIGV2dDogYW55KSA9PiB7XHJcblxyXG4gICAgICAgICAgICAvLyBVbnNlbGVjdCBhbiBlbGVtZW50IGlmIHRoZSBDVFJML01ldGEga2V5IGlzIHByZXNzZWQgd2hpbGUgYSBzZWxlY3RlZCBlbGVtZW50IGlzIGNsaWNrZWQuXHJcbiAgICAgICAgICAgIGlmIChrZXlib2FyZC5pc0FjdGl2ZSgnY3RybCBtZXRhJywgZXZ0KSkge1xyXG4gICAgICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbi5jb2xsZWN0aW9uLnJlbW92ZShlbGVtZW50Vmlldy5tb2RlbCk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgZ2V0SW1hZ2VDb250ZW50KCkge1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnBhcGVyLnRvUE5HKChpbWFnZURhdGEpID0+IHtcclxuICAgICAgICAgICAgICAgIHJlc29sdmUoaW1hZ2VEYXRhKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0SnNvbkNvbnRlbnQoKSB7XHJcbiAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHRoaXMuZ3JhcGgudG9KU09OKCkpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uU2VsZWN0aW9uQ2hhbmdlKCkge1xyXG4gICAgICAgIGNvbnN0IHsgcGFwZXIsIHNlbGVjdGlvbiB9ID0gdGhpcztcclxuICAgICAgICBjb25zdCB7IGNvbGxlY3Rpb24gfSA9IHNlbGVjdGlvbjtcclxuICAgICAgICBwYXBlci5yZW1vdmVUb29scygpO1xyXG4gICAgICAgIGpvaW50LnVpLkhhbG8uY2xlYXIocGFwZXIpO1xyXG4gICAgICAgIGpvaW50LnVpLkZyZWVUcmFuc2Zvcm0uY2xlYXIocGFwZXIpO1xyXG4gICAgICAgIGpvaW50LnVpLkluc3BlY3Rvci5jbG9zZSgpO1xyXG4gICAgICAgIGlmIChjb2xsZWN0aW9uLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgICAgICBjb25zdCBwcmltYXJ5Q2VsbDogYW55ID0gY29sbGVjdGlvbi5maXJzdCgpO1xyXG4gICAgICAgICAgICBjb25zdCBwcmltYXJ5Q2VsbFZpZXcgPSBwYXBlci5yZXF1aXJlVmlldyhwcmltYXJ5Q2VsbCk7XHJcbiAgICAgICAgICAgIHNlbGVjdGlvbi5kZXN0cm95U2VsZWN0aW9uQm94KHByaW1hcnlDZWxsKTtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RQcmltYXJ5Q2VsbChwcmltYXJ5Q2VsbFZpZXcpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoY29sbGVjdGlvbi5sZW5ndGggPT09IDIpIHtcclxuICAgICAgICAgICAgY29sbGVjdGlvbi5lYWNoKGZ1bmN0aW9uIChjZWxsOiBhbnkpIHtcclxuICAgICAgICAgICAgICAgIHNlbGVjdGlvbi5jcmVhdGVTZWxlY3Rpb25Cb3goY2VsbCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzZWxlY3RQcmltYXJ5Q2VsbChjZWxsVmlldzogYW55KSB7XHJcbiAgICAgICAgY29uc3QgY2VsbCA9IGNlbGxWaWV3Lm1vZGVsO1xyXG4gICAgICAgIGlmIChjZWxsLmlzRWxlbWVudCgpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0UHJpbWFyeUVsZW1lbnQoY2VsbFZpZXcpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0UHJpbWFyeUxpbmsoY2VsbFZpZXcpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBqb2ludC51aS5JbnNwZWN0b3IuY3JlYXRlKCcuaW5zcGVjdG9yLWNvbnRhaW5lcicsIF8uZXh0ZW5kKHtcclxuICAgICAgICAgICAgY2VsbDogY2VsbFxyXG4gICAgICAgIH0sIEluc3BlY3RvckZ1bmN0aW9uLmdldEluc3BlY3RvckNvbmZpZ3VyYXRpb24odGhpcy5MQU5HKVtjZWxsLmdldCgndHlwZScpXSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHNlbGVjdFByaW1hcnlFbGVtZW50KGVsZW1lbnRWaWV3OiBhbnkpIHtcclxuXHJcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IGVsZW1lbnRWaWV3Lm1vZGVsO1xyXG5cclxuICAgICAgICBuZXcgam9pbnQudWkuRnJlZVRyYW5zZm9ybSh7XHJcbiAgICAgICAgICAgIGNlbGxWaWV3OiBlbGVtZW50VmlldyxcclxuICAgICAgICAgICAgYWxsb3dSb3RhdGlvbjogZmFsc2UsXHJcbiAgICAgICAgICAgIHByZXNlcnZlQXNwZWN0UmF0aW86ICEhZWxlbWVudC5nZXQoJ3ByZXNlcnZlQXNwZWN0UmF0aW8nKSxcclxuICAgICAgICAgICAgYWxsb3dPcnRob2dvbmFsUmVzaXplOiBlbGVtZW50LmdldCgnYWxsb3dPcnRob2dvbmFsUmVzaXplJykgIT09IGZhbHNlXHJcbiAgICAgICAgfSkucmVuZGVyKCk7XHJcblxyXG4gICAgICAgIG5ldyBqb2ludC51aS5IYWxvKHtcclxuICAgICAgICAgICAgY2VsbFZpZXc6IGVsZW1lbnRWaWV3LFxyXG4gICAgICAgICAgICBoYW5kbGVzOiBIYWxvRnVuY3Rpb24uZ2V0SGFsb0NvbmZpZ3VyYXRpb24odGhpcy5MQU5HKSxcclxuICAgICAgICAgICAgdXNlTW9kZWxHZW9tZXRyeTogdHJ1ZVxyXG4gICAgICAgIH0pLnJlbmRlcigpO1xyXG4gICAgfVxyXG5cclxuICAgIHNlbGVjdFByaW1hcnlMaW5rKGxpbmtWaWV3OiBhbnkpIHtcclxuXHJcbiAgICAgICAgY29uc3QgbnMgPSBqb2ludC5saW5rVG9vbHM7XHJcbiAgICAgICAgY29uc3QgdG9vbHNWaWV3ID0gbmV3IGpvaW50LmRpYS5Ub29sc1ZpZXcoe1xyXG4gICAgICAgICAgICBuYW1lOiAnbGluay1wb2ludGVyZG93bicsXHJcbiAgICAgICAgICAgIHRvb2xzOiBbXHJcbiAgICAgICAgICAgICAgICBuZXcgbnMuVmVydGljZXMoKSxcclxuICAgICAgICAgICAgICAgIG5ldyBucy5Tb3VyY2VBbmNob3IoKSxcclxuICAgICAgICAgICAgICAgIG5ldyBucy5UYXJnZXRBbmNob3IoKSxcclxuICAgICAgICAgICAgICAgIG5ldyBucy5Tb3VyY2VBcnJvd2hlYWQoKSxcclxuICAgICAgICAgICAgICAgIG5ldyBucy5UYXJnZXRBcnJvd2hlYWQoKSxcclxuICAgICAgICAgICAgICAgIG5ldyBucy5TZWdtZW50cyxcclxuICAgICAgICAgICAgICAgIG5ldyBucy5Cb3VuZGFyeSh7IHBhZGRpbmc6IDE1IH0pLFxyXG4gICAgICAgICAgICAgICAgbmV3IG5zLlJlbW92ZSh7IG9mZnNldDogLTIwLCBkaXN0YW5jZTogNDAgfSlcclxuICAgICAgICAgICAgXVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBsaW5rVmlldy5hZGRUb29scyh0b29sc1ZpZXcpO1xyXG4gICAgfVxyXG5cclxuICAgIGluaXRpYWxpemVUb29sc0FuZEluc3BlY3RvcigpIHtcclxuXHJcbiAgICAgICAgdGhpcy5wYXBlci5vbignY2VsbDpwb2ludGVydXAnLCAoY2VsbFZpZXc6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBjZWxsID0gY2VsbFZpZXcubW9kZWw7XHJcbiAgICAgICAgICAgIGNvbnN0IHsgY29sbGVjdGlvbiB9ID0gdGhpcy5zZWxlY3Rpb247XHJcbiAgICAgICAgICAgIGlmIChjb2xsZWN0aW9uLmluY2x1ZGVzKGNlbGwpKSB7IHJldHVybjsgfVxyXG4gICAgICAgICAgICBjb2xsZWN0aW9uLnJlc2V0KFtjZWxsXSk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMucGFwZXIub24oJ2xpbms6bW91c2VlbnRlcicsIChsaW5rVmlldzogYW55KSA9PiB7XHJcblxyXG4gICAgICAgICAgICAvLyBPcGVuIHRvb2wgb25seSBpZiB0aGVyZSBpcyBub25lIHlldFxyXG4gICAgICAgICAgICBpZiAobGlua1ZpZXcuaGFzVG9vbHMoKSkgeyByZXR1cm47IH1cclxuXHJcbiAgICAgICAgICAgIGNvbnN0IG5zID0gam9pbnQubGlua1Rvb2xzO1xyXG4gICAgICAgICAgICBjb25zdCB0b29sc1ZpZXcgPSBuZXcgam9pbnQuZGlhLlRvb2xzVmlldyh7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiAnbGluay1ob3ZlcicsXHJcbiAgICAgICAgICAgICAgICB0b29sczogW1xyXG4gICAgICAgICAgICAgICAgICAgIG5ldyBucy5WZXJ0aWNlcyh7IHZlcnRleEFkZGluZzogZmFsc2UgfSksXHJcbiAgICAgICAgICAgICAgICAgICAgbmV3IG5zLlNvdXJjZUFycm93aGVhZCgpLFxyXG4gICAgICAgICAgICAgICAgICAgIG5ldyBucy5UYXJnZXRBcnJvd2hlYWQoKVxyXG4gICAgICAgICAgICAgICAgXVxyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIGxpbmtWaWV3LmFkZFRvb2xzKHRvb2xzVmlldyk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMucGFwZXIub24oJ2xpbms6bW91c2VsZWF2ZScsIChsaW5rVmlldzogYW55KSA9PiB7XHJcblxyXG4gICAgICAgICAgICAvLyBSZW1vdmUgb25seSB0aGUgaG92ZXIgdG9vbCwgbm90IHRoZSBwb2ludGVyZG93biB0b29sXHJcbiAgICAgICAgICAgIGlmIChsaW5rVmlldy5oYXNUb29scygnbGluay1ob3ZlcicpKSB7XHJcbiAgICAgICAgICAgICAgICBsaW5rVmlldy5yZW1vdmVUb29scygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuZ3JhcGgub24oJ2NoYW5nZScsIChjZWxsOiBhbnksIG9wdDogYW55KSA9PiB7XHJcblxyXG4gICAgICAgICAgICBpZiAoIWNlbGwuaXNMaW5rKCkgfHwgIW9wdC5pbnNwZWN0b3IpIHsgcmV0dXJuOyB9XHJcblxyXG4gICAgICAgICAgICBjb25zdCBucyA9IGpvaW50LmxpbmtUb29scztcclxuICAgICAgICAgICAgY29uc3QgdG9vbHNWaWV3ID0gbmV3IGpvaW50LmRpYS5Ub29sc1ZpZXcoe1xyXG4gICAgICAgICAgICAgICAgbmFtZTogJ2xpbmstaW5zcGVjdGVkJyxcclxuICAgICAgICAgICAgICAgIHRvb2xzOiBbXHJcbiAgICAgICAgICAgICAgICAgICAgbmV3IG5zLkJvdW5kYXJ5KHsgcGFkZGluZzogMTUgfSksXHJcbiAgICAgICAgICAgICAgICBdXHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgY2VsbC5maW5kVmlldyh0aGlzLnBhcGVyKS5hZGRUb29scyh0b29sc1ZpZXcpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGluaXRpYWxpemVOYXZpZ2F0b3IoKSB7XHJcblxyXG4gICAgICAgIGNvbnN0IG5hdmlnYXRvciA9IHRoaXMubmF2aWdhdG9yID0gbmV3IGpvaW50LnVpLk5hdmlnYXRvcih7XHJcbiAgICAgICAgICAgIHdpZHRoOiAyNDAsXHJcbiAgICAgICAgICAgIGhlaWdodDogMTE1LFxyXG4gICAgICAgICAgICBwYXBlclNjcm9sbGVyOiB0aGlzLnBhcGVyU2Nyb2xsZXIsXHJcbiAgICAgICAgICAgIHpvb206IGZhbHNlLFxyXG4gICAgICAgICAgICBwYXBlck9wdGlvbnM6IHtcclxuICAgICAgICAgICAgICAgIGFzeW5jOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgc29ydGluZzogam9pbnQuZGlhLlBhcGVyLnNvcnRpbmcuTk9ORSxcclxuICAgICAgICAgICAgICAgIGVsZW1lbnRWaWV3OiBhcHBTaGFwZXMuTmF2aWdhdG9yRWxlbWVudFZpZXcsXHJcbiAgICAgICAgICAgICAgICBsaW5rVmlldzogYXBwU2hhcGVzLk5hdmlnYXRvckxpbmtWaWV3LFxyXG4gICAgICAgICAgICAgICAgY2VsbFZpZXdOYW1lc3BhY2U6IHsgLyogbm8gb3RoZXIgdmlld3MgYXJlIGFjY2Vzc2libGUgaW4gdGhlIG5hdmlnYXRvciAqLyB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5yZW5kZXJQbHVnaW4oJy5uYXZpZ2F0b3ItY29udGFpbmVyJywgbmF2aWdhdG9yKTtcclxuICAgIH1cclxuXHJcbiAgICBpbml0aWFsaXplVG9vbGJhcigpIHtcclxuICAgICAgICBjb25zdCB7IGdyb3VwcywgdG9vbHMgfSA9IFRvb2xiYXJ0RnVuY3Rpb24uZ2V0VG9vbGJhckNvbmZpZ3VyYXRpb24odGhpcy5MQU5HKTtcclxuICAgICAgICB0aGlzLnRvb2xiYXIgPSBuZXcgam9pbnQudWkuVG9vbGJhcih7XHJcbiAgICAgICAgICAgIGdyb3VwcyxcclxuICAgICAgICAgICAgdG9vbHMsXHJcbiAgICAgICAgICAgIGF1dG9Ub2dnbGU6IHRydWUsXHJcbiAgICAgICAgICAgIHJlZmVyZW5jZXM6IHtcclxuICAgICAgICAgICAgICAgIHBhcGVyU2Nyb2xsZXI6IHRoaXMucGFwZXJTY3JvbGxlcixcclxuICAgICAgICAgICAgICAgIGNvbW1hbmRNYW5hZ2VyOiB0aGlzLmNvbW1hbmRNYW5hZ2VyXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLnRvb2xiYXIub24oe1xyXG4gICAgICAgICAgICAnc3ZnOnBvaW50ZXJjbGljayc6IHRoaXMub3BlbkFzU1ZHLmJpbmQodGhpcyksXHJcbiAgICAgICAgICAgICdwbmc6cG9pbnRlcmNsaWNrJzogdGhpcy5vcGVuQXNQTkcuYmluZCh0aGlzKSxcclxuICAgICAgICAgICAgJ3RvLWZyb250OnBvaW50ZXJjbGljayc6IHRoaXMuYXBwbHlPblNlbGVjdGlvbi5iaW5kKHRoaXMsICd0b0Zyb250JyksXHJcbiAgICAgICAgICAgICd0by1iYWNrOnBvaW50ZXJjbGljayc6IHRoaXMuYXBwbHlPblNlbGVjdGlvbi5iaW5kKHRoaXMsICd0b0JhY2snKSxcclxuICAgICAgICAgICAgJ2xheW91dDpwb2ludGVyY2xpY2snOiB0aGlzLmxheW91dERpcmVjdGVkR3JhcGguYmluZCh0aGlzKSxcclxuICAgICAgICAgICAgJ3NuYXBsaW5lOmNoYW5nZSc6IHRoaXMuY2hhbmdlU25hcExpbmVzLmJpbmQodGhpcyksXHJcbiAgICAgICAgICAgICdjbGVhcjpwb2ludGVyY2xpY2snOiB0aGlzLmdyYXBoLmNsZWFyLmJpbmQodGhpcy5ncmFwaCksXHJcbiAgICAgICAgICAgICdwcmludDpwb2ludGVyY2xpY2snOiB0aGlzLnBhcGVyLnByaW50LmJpbmQodGhpcy5wYXBlciksXHJcbiAgICAgICAgICAgICdncmlkLXNpemU6Y2hhbmdlJzogdGhpcy5wYXBlci5zZXRHcmlkU2l6ZS5iaW5kKHRoaXMucGFwZXIpLFxyXG4gICAgICAgICAgICAnc2VsZWN0VGVtcGxhdGU6b3B0aW9uOnNlbGVjdCc6IHRoaXMub25DaGFuZ2VUZW1wbGF0ZSxcclxuICAgICAgICAgICAgJ2RlbGV0ZVRlbXBsYXRlOnBvaW50ZXJjbGljayc6IHRoaXMub25EZWxldGVUZW1wbGF0ZSxcclxuICAgICAgICAgICAgJ3NhdmVBc1RlbXBsYXRlOnBvaW50ZXJjbGljayc6IHRoaXMub25TYXZlQXNUZW1wbGF0ZSxcclxuICAgICAgICAgICAgJ3Jlc2V0VGVtcGxhdGU6cG9pbnRlcmNsaWNrJzogdGhpcy5vblJlc2V0VGVtcGxhdGVcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5yZW5kZXJQbHVnaW4oJy50b29sYmFyLWNvbnRhaW5lcicsIHRoaXMudG9vbGJhcik7XHJcbiAgICB9XHJcblxyXG4gICAgYXBwbHlPblNlbGVjdGlvbihtZXRob2Q6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuZ3JhcGguc3RhcnRCYXRjaCgnc2VsZWN0aW9uJyk7XHJcbiAgICAgICAgdGhpcy5zZWxlY3Rpb24uY29sbGVjdGlvbi5tb2RlbHMuZm9yRWFjaChmdW5jdGlvbiAobW9kZWw6IGFueSkgeyBtb2RlbFttZXRob2RdKCk7IH0pO1xyXG4gICAgICAgIHRoaXMuZ3JhcGguc3RvcEJhdGNoKCdzZWxlY3Rpb24nKTtcclxuICAgIH1cclxuXHJcbiAgICBjaGFuZ2VTbmFwTGluZXMoY2hlY2tlZDogYm9vbGVhbikge1xyXG5cclxuICAgICAgICBpZiAoY2hlY2tlZCkge1xyXG4gICAgICAgICAgICB0aGlzLnNuYXBsaW5lcy5zdGFydExpc3RlbmluZygpO1xyXG4gICAgICAgICAgICB0aGlzLnN0ZW5jaWwub3B0aW9ucy5zbmFwbGluZXMgPSB0aGlzLnNuYXBsaW5lcztcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnNuYXBsaW5lcy5zdG9wTGlzdGVuaW5nKCk7XHJcbiAgICAgICAgICAgIHRoaXMuc3RlbmNpbC5vcHRpb25zLnNuYXBsaW5lcyA9IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGluaXRpYWxpemVLZXlib2FyZFNob3J0Y3V0cygpIHtcclxuXHJcbiAgICAgICAgdGhpcy5rZXlib2FyZFNlcnZpY2UuY3JlYXRlKFxyXG4gICAgICAgICAgICB0aGlzLmdyYXBoLCB0aGlzLmNsaXBib2FyZCwgdGhpcy5zZWxlY3Rpb24sIHRoaXMucGFwZXJTY3JvbGxlciwgdGhpcy5jb21tYW5kTWFuYWdlcik7XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdGlhbGl6ZVRvb2x0aXBzKCk6IGFueSB7XHJcblxyXG4gICAgICAgIHJldHVybiBuZXcgam9pbnQudWkuVG9vbHRpcCh7XHJcbiAgICAgICAgICAgIHJvb3RUYXJnZXQ6IGRvY3VtZW50LmJvZHksXHJcbiAgICAgICAgICAgIHRhcmdldDogJ1tkYXRhLXRvb2x0aXBdJyxcclxuICAgICAgICAgICAgZGlyZWN0aW9uOiBqb2ludC51aS5Ub29sdGlwLlRvb2x0aXBBcnJvd1Bvc2l0aW9uLkF1dG8sXHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDEwXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgZm9yIG9sZGVyIHNoYXBlc1xyXG4gICAgZXhwb3J0U3R5bGVzaGVldCA9ICcuc2NhbGFibGUgKiB7IHZlY3Rvci1lZmZlY3Q6IG5vbi1zY2FsaW5nLXN0cm9rZSB9JztcclxuXHJcbiAgICBvcGVuQXNTVkcoKSB7XHJcblxyXG4gICAgICAgIHRoaXMucGFwZXIuaGlkZVRvb2xzKCkudG9TVkcoKHN2Zzogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgICAgIG5ldyBqb2ludC51aS5MaWdodGJveCh7XHJcbiAgICAgICAgICAgICAgICBpbWFnZTogJ2RhdGE6aW1hZ2Uvc3ZnK3htbCwnICsgZW5jb2RlVVJJQ29tcG9uZW50KHN2ZyksXHJcbiAgICAgICAgICAgICAgICBkb3dubG9hZGFibGU6IHRydWUsXHJcbiAgICAgICAgICAgICAgICBmaWxlTmFtZTogJ1JhcHBpZCdcclxuICAgICAgICAgICAgfSkub3BlbigpO1xyXG4gICAgICAgICAgICB0aGlzLnBhcGVyLnNob3dUb29scygpO1xyXG4gICAgICAgIH0sIHtcclxuICAgICAgICAgICAgcHJlc2VydmVEaW1lbnNpb25zOiB0cnVlLFxyXG4gICAgICAgICAgICBjb252ZXJ0SW1hZ2VzVG9EYXRhVXJpczogdHJ1ZSxcclxuICAgICAgICAgICAgdXNlQ29tcHV0ZWRTdHlsZXM6IGZhbHNlLFxyXG4gICAgICAgICAgICBzdHlsZXNoZWV0OiB0aGlzLmV4cG9ydFN0eWxlc2hlZXRcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBvcGVuQXNQTkcoKSB7XHJcblxyXG4gICAgICAgIHRoaXMucGFwZXIuaGlkZVRvb2xzKCkudG9QTkcoKGRhdGFVUkw6IHN0cmluZykgPT4ge1xyXG4gICAgICAgICAgICBuZXcgam9pbnQudWkuTGlnaHRib3goe1xyXG4gICAgICAgICAgICAgICAgaW1hZ2U6IGRhdGFVUkwsXHJcbiAgICAgICAgICAgICAgICBkb3dubG9hZGFibGU6IHRydWUsXHJcbiAgICAgICAgICAgICAgICBmaWxlTmFtZTogJ1JhcHBpZCdcclxuICAgICAgICAgICAgfSkub3BlbigpO1xyXG4gICAgICAgICAgICB0aGlzLnBhcGVyLnNob3dUb29scygpO1xyXG4gICAgICAgIH0sIHtcclxuICAgICAgICAgICAgcGFkZGluZzogMTAsXHJcbiAgICAgICAgICAgIHVzZUNvbXB1dGVkU3R5bGVzOiBmYWxzZSxcclxuICAgICAgICAgICAgc3R5bGVzaGVldDogdGhpcy5leHBvcnRTdHlsZXNoZWV0XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgb25Nb3VzZXdoZWVsKGNlbGxWaWV3OiBhbnksIGV2dDogYW55LCBveDogbnVtYmVyLCBveTogbnVtYmVyLCBkZWx0YTogbnVtYmVyKSB7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmtleWJvYXJkU2VydmljZS5rZXlib2FyZC5pc0FjdGl2ZSgnYWx0JywgZXZ0KSkge1xyXG4gICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgdGhpcy5wYXBlclNjcm9sbGVyLnpvb20oZGVsdGEgKiAwLjIsIHsgbWluOiAwLjIsIG1heDogNSwgZ3JpZDogMC4yLCBveCwgb3kgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGxheW91dERpcmVjdGVkR3JhcGgoKSB7XHJcblxyXG4gICAgICAgIGpvaW50LmxheW91dC5EaXJlY3RlZEdyYXBoLmxheW91dCh0aGlzLmdyYXBoLCB7XHJcbiAgICAgICAgICAgIGdyYXBobGliOiBkYWdyZS5ncmFwaGxpYixcclxuICAgICAgICAgICAgZGFncmU6IGRhZ3JlLFxyXG4gICAgICAgICAgICBzZXRWZXJ0aWNlczogdHJ1ZSxcclxuICAgICAgICAgICAgcmFua0RpcjogJ1RCJyxcclxuICAgICAgICAgICAgbWFyZ2luWDogMTAwLFxyXG4gICAgICAgICAgICBtYXJnaW5ZOiAxMDBcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5wYXBlclNjcm9sbGVyLmNlbnRlckNvbnRlbnQoKTtcclxuICAgIH1cclxuXHJcbiAgICByZW5kZXJQbHVnaW4oc2VsZWN0b3I6IHN0cmluZywgcGx1Z2luOiBhbnkpOiB2b2lkIHtcclxuXHJcbiAgICAgICAgdGhpcy5lbC5xdWVyeVNlbGVjdG9yKHNlbGVjdG9yKS5hcHBlbmRDaGlsZChwbHVnaW4uZWwpO1xyXG4gICAgICAgIHBsdWdpbi5yZW5kZXIoKTtcclxuICAgIH1cclxuICAgIG9uQ2hhbmdlVGVtcGxhdGUoZXZlbnQpIHtcclxuICAgICAgICBpZiAoZXZlbnQuanNvbkNvbnRlbnQpIHtcclxuICAgICAgICAgICAgd2luZG93W0Zsb3dDaGFydENvbnN0LktTX1NFTEVDVEVEX0ZMT1dDSEFSVF9JRF0gPSBldmVudC5mbG93Q2hhcnRJZDtcclxuICAgICAgICAgICAgd2luZG93W0Zsb3dDaGFydENvbnN0LktTX1NFTEVDVEVEX0pTT05DT05URU5UXSA9IGV2ZW50Lmpzb25Db250ZW50O1xyXG4gICAgICAgICAgICB3aW5kb3cucG9zdE1lc3NhZ2UoRmxvd0NoYXJ0Q29uc3QuS1NfQ0hBTkdFX1RFTVBMQVRFLCAnKicpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBvbkRlbGV0ZVRlbXBsYXRlKGV2ZW50KSB7XHJcbiAgICAgICAgaWYgKHdpbmRvd1tGbG93Q2hhcnRDb25zdC5LU19JU19TRUxFQ1RFRF9URU1QTEFURV0pIHtcclxuICAgICAgICAgICAgd2luZG93LnBvc3RNZXNzYWdlKEZsb3dDaGFydENvbnN0LktTX0RFTEVURV9URU1QTEFURSwgJyonKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHdpbmRvdy5wb3N0TWVzc2FnZShGbG93Q2hhcnRDb25zdC5NVVNUX1NFTEVDVF9URU1QTEFURSwgJyonKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgb25TYXZlQXNUZW1wbGF0ZSgpIHtcclxuICAgICAgICB3aW5kb3cucG9zdE1lc3NhZ2UoRmxvd0NoYXJ0Q29uc3QuS1NfU0FWRV9BU19URU1QTEFURSwgJyonKTtcclxuICAgIH1cclxuXHJcbiAgICBvblJlc2V0VGVtcGxhdGUoKSB7XHJcbiAgICAgICAgaWYgKHdpbmRvd1tGbG93Q2hhcnRDb25zdC5LU19JU19TRUxFQ1RFRF9URU1QTEFURV0pIHtcclxuICAgICAgICAgICAgd2luZG93LnBvc3RNZXNzYWdlKEZsb3dDaGFydENvbnN0LktTX1JFU0VUX1RFTVBMQVRFLCAnKicpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgS2l0Y2hlblNpbmtTZXJ2aWNlO1xyXG4iXX0=
|
@@ -0,0 +1,80 @@
|
|
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 joint from '@clientio/rappid';
|
13
|
+
import * as _ from 'lodash';
|
14
|
+
export class ThemePicker extends joint.ui.Toolbar {
|
15
|
+
constructor(options) {
|
16
|
+
super({
|
17
|
+
className: _.result(joint.ui.Toolbar.prototype, 'className') + ' theme-picker'
|
18
|
+
});
|
19
|
+
this.mainView = options.mainView;
|
20
|
+
}
|
21
|
+
init() {
|
22
|
+
const options = [
|
23
|
+
{ value: 'modern', content: 'Modern' },
|
24
|
+
{ value: 'dark', content: 'Dark' },
|
25
|
+
{ value: 'material', content: 'Material' }
|
26
|
+
];
|
27
|
+
const themes = {
|
28
|
+
type: 'select-button-group',
|
29
|
+
name: 'theme-picker',
|
30
|
+
multi: false,
|
31
|
+
selected: _.findIndex(options, { value: this.defaultTheme }),
|
32
|
+
options,
|
33
|
+
attrs: {
|
34
|
+
'.joint-select-button-group': {
|
35
|
+
'data-tooltip': 'Change Theme',
|
36
|
+
'data-tooltip-position': 'bottom'
|
37
|
+
}
|
38
|
+
}
|
39
|
+
};
|
40
|
+
this.options.tools = [themes];
|
41
|
+
this.on('theme-picker:option:select', this.onThemeSelected, this);
|
42
|
+
super.init();
|
43
|
+
}
|
44
|
+
onThemeSelected(option) {
|
45
|
+
joint.setTheme(option.value);
|
46
|
+
if (this.mainView) {
|
47
|
+
this.adjustAppToTheme(this.mainView, option.value);
|
48
|
+
}
|
49
|
+
}
|
50
|
+
adjustAppToTheme(app, theme) {
|
51
|
+
// Make the following changes silently without the command manager notice.
|
52
|
+
app.commandManager.stopListening();
|
53
|
+
// Links in the dark theme would not be visible on the dark background.
|
54
|
+
// Note that this overrides custom color
|
55
|
+
const linkColor = (theme === 'dark' ? '#f6f6f6' : '#222138');
|
56
|
+
const themedLinks = app.graph.getLinks();
|
57
|
+
const defaultLink = app.paper.options.defaultLink;
|
58
|
+
if (defaultLink instanceof joint.dia.Link) {
|
59
|
+
themedLinks.push(defaultLink);
|
60
|
+
}
|
61
|
+
themedLinks.forEach(function (link) {
|
62
|
+
link.attr({
|
63
|
+
'.connection': { 'stroke': linkColor },
|
64
|
+
'.marker-target': { 'fill': linkColor },
|
65
|
+
'.marker-source': { 'fill': linkColor }
|
66
|
+
});
|
67
|
+
});
|
68
|
+
// Material design has no grid shown.
|
69
|
+
if (theme === 'material') {
|
70
|
+
app.paper.options.drawGrid = false;
|
71
|
+
app.paper.clearGrid();
|
72
|
+
}
|
73
|
+
else {
|
74
|
+
app.paper.options.drawGrid = true;
|
75
|
+
app.paper.drawGrid();
|
76
|
+
}
|
77
|
+
app.commandManager.listen();
|
78
|
+
}
|
79
|
+
}
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUtcGlja2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcW1zLWFuZ3VsYXIvc3JjL2xpYi9xbXMtY2tlZGl0b3ItY29tcG9uZW50cy9jb21tb24vZmxvd2NoYXJ0L3RoZW1lcy90aGVtZS1waWNrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7b0ZBVW9GO0FBR3BGLDZDQUE2QztBQUM3QyxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQWU1QixNQUFNLE9BQU8sV0FBWSxTQUFRLEtBQUssQ0FBQyxFQUFFLENBQUMsT0FBTztJQUU3QyxZQUFZLE9BQTJDO1FBRW5ELEtBQUssQ0FBQztZQUNGLFNBQVMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUMsR0FBRyxlQUFlO1NBQ2pGLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQztJQUNyQyxDQUFDO0lBS0QsSUFBSTtRQUVBLE1BQU0sT0FBTyxHQUFHO1lBQ1osRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUU7WUFDdEMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUU7WUFDbEMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUU7U0FDN0MsQ0FBQztRQUVGLE1BQU0sTUFBTSxHQUFHO1lBQ1gsSUFBSSxFQUFFLHFCQUFxQjtZQUMzQixJQUFJLEVBQUUsY0FBYztZQUNwQixLQUFLLEVBQUUsS0FBSztZQUNaLFFBQVEsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDNUQsT0FBTztZQUNQLEtBQUssRUFBRTtnQkFDSCw0QkFBNEIsRUFBRTtvQkFDMUIsY0FBYyxFQUFFLGNBQWM7b0JBQzlCLHVCQUF1QixFQUFFLFFBQVE7aUJBQ3BDO2FBQ0o7U0FDSixDQUFDO1FBRUYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsRUFBRSxDQUFDLDRCQUE0QixFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFbEUsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFRCxlQUFlLENBQUMsTUFBVztRQUV2QixLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDZixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDdEQ7SUFDTCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsR0FBeUIsRUFBRSxLQUFhO1FBR3JELDBFQUEwRTtRQUMxRSxHQUFHLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRW5DLHVFQUF1RTtRQUN2RSx3Q0FBd0M7UUFDeEMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxLQUFLLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTdELE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDekMsTUFBTSxXQUFXLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDO1FBQ2xELElBQUksV0FBVyxZQUFZLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFO1lBQ3ZDLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDakM7UUFFRCxXQUFXLENBQUMsT0FBTyxDQUFDLFVBQVUsSUFBUztZQUNuQyxJQUFJLENBQUMsSUFBSSxDQUFDO2dCQUNOLGFBQWEsRUFBRSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUU7Z0JBQ3RDLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRTtnQkFDdkMsZ0JBQWdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFO2FBQzFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO1FBRUgscUNBQXFDO1FBQ3JDLElBQUksS0FBSyxLQUFLLFVBQVUsRUFBRTtZQUN0QixHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1lBQ25DLEdBQUcsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7U0FDekI7YUFBTTtZQUNILEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7WUFDbEMsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUN4QjtRQUVELEdBQUcsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDaEMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiLyohIFJhcHBpZCB2My4yLjAgLSBIVE1MNSBEaWFncmFtbWluZyBGcmFtZXdvcmtcclxuXHJcbkNvcHlyaWdodCAoYykgMjAxNSBjbGllbnQgSU9cclxuXHJcbiAyMDIwLTA2LTEyIFxyXG5cclxuXHJcblRoaXMgU291cmNlIENvZGUgRm9ybSBpcyBzdWJqZWN0IHRvIHRoZSB0ZXJtcyBvZiB0aGUgUmFwcGlkIExpY2Vuc2VcclxuLCB2LiAyLjAuIElmIGEgY29weSBvZiB0aGUgUmFwcGlkIExpY2Vuc2Ugd2FzIG5vdCBkaXN0cmlidXRlZCB3aXRoIHRoaXNcclxuZmlsZSwgWW91IGNhbiBvYnRhaW4gb25lIGF0IGh0dHA6Ly9qb2ludGpzLmNvbS9saWNlbnNlL3JhcHBpZF92Mi50eHRcclxuIG9yIGZyb20gdGhlIFJhcHBpZCBhcmNoaXZlIGFzIHdhcyBkaXN0cmlidXRlZCBieSBjbGllbnQgSU8uIFNlZSB0aGUgTElDRU5TRSBmaWxlLiovXHJcblxyXG5cclxuLy8gaW1wb3J0ICogYXMgam9pbnQgZnJvbSAnQGNsaWVudGlvL3JhcHBpZCc7XHJcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcclxuZGVjbGFyZSB2YXIgam9pbnQ6IGFueVxyXG5uYW1lc3BhY2UgVGhlbWVQaWNrZXIge1xyXG5cclxuICAgIGV4cG9ydCBpbnRlcmZhY2UgT3B0aW9ucyB7XHJcbiAgICAgICAgdG9vbHM6IEFycmF5PHsgW2tleTogc3RyaW5nXTogYW55IH0+O1xyXG4gICAgfVxyXG5cclxuICAgIGV4cG9ydCBpbnRlcmZhY2UgTWFpblZpZXcge1xyXG4gICAgICAgIGNvbW1hbmRNYW5hZ2VyOiBhbnk7XHJcbiAgICAgICAgcGFwZXI6IGFueTtcclxuICAgICAgICBncmFwaDogYW55O1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgVGhlbWVQaWNrZXIgZXh0ZW5kcyBqb2ludC51aS5Ub29sYmFyIHtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiB7IG1haW5WaWV3OiBUaGVtZVBpY2tlci5NYWluVmlldyB9KSB7XHJcblxyXG4gICAgICAgIHN1cGVyKHtcclxuICAgICAgICAgICAgY2xhc3NOYW1lOiBfLnJlc3VsdChqb2ludC51aS5Ub29sYmFyLnByb3RvdHlwZSwgJ2NsYXNzTmFtZScpICsgJyB0aGVtZS1waWNrZXInXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMubWFpblZpZXcgPSBvcHRpb25zLm1haW5WaWV3O1xyXG4gICAgfVxyXG5cclxuICAgIG9wdGlvbnM6IFRoZW1lUGlja2VyLk9wdGlvbnM7XHJcbiAgICBtYWluVmlldzogVGhlbWVQaWNrZXIuTWFpblZpZXc7XHJcblxyXG4gICAgaW5pdCgpIHtcclxuXHJcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IFtcclxuICAgICAgICAgICAgeyB2YWx1ZTogJ21vZGVybicsIGNvbnRlbnQ6ICdNb2Rlcm4nIH0sXHJcbiAgICAgICAgICAgIHsgdmFsdWU6ICdkYXJrJywgY29udGVudDogJ0RhcmsnIH0sXHJcbiAgICAgICAgICAgIHsgdmFsdWU6ICdtYXRlcmlhbCcsIGNvbnRlbnQ6ICdNYXRlcmlhbCcgfVxyXG4gICAgICAgIF07XHJcblxyXG4gICAgICAgIGNvbnN0IHRoZW1lcyA9IHtcclxuICAgICAgICAgICAgdHlwZTogJ3NlbGVjdC1idXR0b24tZ3JvdXAnLFxyXG4gICAgICAgICAgICBuYW1lOiAndGhlbWUtcGlja2VyJyxcclxuICAgICAgICAgICAgbXVsdGk6IGZhbHNlLFxyXG4gICAgICAgICAgICBzZWxlY3RlZDogXy5maW5kSW5kZXgob3B0aW9ucywgeyB2YWx1ZTogdGhpcy5kZWZhdWx0VGhlbWUgfSksXHJcbiAgICAgICAgICAgIG9wdGlvbnMsXHJcbiAgICAgICAgICAgIGF0dHJzOiB7XHJcbiAgICAgICAgICAgICAgICAnLmpvaW50LXNlbGVjdC1idXR0b24tZ3JvdXAnOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgJ2RhdGEtdG9vbHRpcCc6ICdDaGFuZ2UgVGhlbWUnLFxyXG4gICAgICAgICAgICAgICAgICAgICdkYXRhLXRvb2x0aXAtcG9zaXRpb24nOiAnYm90dG9tJ1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgdGhpcy5vcHRpb25zLnRvb2xzID0gW3RoZW1lc107XHJcbiAgICAgICAgdGhpcy5vbigndGhlbWUtcGlja2VyOm9wdGlvbjpzZWxlY3QnLCB0aGlzLm9uVGhlbWVTZWxlY3RlZCwgdGhpcyk7XHJcblxyXG4gICAgICAgIHN1cGVyLmluaXQoKTtcclxuICAgIH1cclxuXHJcbiAgICBvblRoZW1lU2VsZWN0ZWQob3B0aW9uOiBhbnkpIHtcclxuXHJcbiAgICAgICAgam9pbnQuc2V0VGhlbWUob3B0aW9uLnZhbHVlKTtcclxuICAgICAgICBpZiAodGhpcy5tYWluVmlldykge1xyXG4gICAgICAgICAgICB0aGlzLmFkanVzdEFwcFRvVGhlbWUodGhpcy5tYWluVmlldywgb3B0aW9uLnZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgYWRqdXN0QXBwVG9UaGVtZShhcHA6IFRoZW1lUGlja2VyLk1haW5WaWV3LCB0aGVtZTogc3RyaW5nKSB7XHJcblxyXG5cclxuICAgICAgICAvLyBNYWtlIHRoZSBmb2xsb3dpbmcgY2hhbmdlcyBzaWxlbnRseSB3aXRob3V0IHRoZSBjb21tYW5kIG1hbmFnZXIgbm90aWNlLlxyXG4gICAgICAgIGFwcC5jb21tYW5kTWFuYWdlci5zdG9wTGlzdGVuaW5nKCk7XHJcblxyXG4gICAgICAgIC8vIExpbmtzIGluIHRoZSBkYXJrIHRoZW1lIHdvdWxkIG5vdCBiZSB2aXNpYmxlIG9uIHRoZSBkYXJrIGJhY2tncm91bmQuXHJcbiAgICAgICAgLy8gTm90ZSB0aGF0IHRoaXMgb3ZlcnJpZGVzIGN1c3RvbSBjb2xvclxyXG4gICAgICAgIGNvbnN0IGxpbmtDb2xvciA9ICh0aGVtZSA9PT0gJ2RhcmsnID8gJyNmNmY2ZjYnIDogJyMyMjIxMzgnKTtcclxuXHJcbiAgICAgICAgY29uc3QgdGhlbWVkTGlua3MgPSBhcHAuZ3JhcGguZ2V0TGlua3MoKTtcclxuICAgICAgICBjb25zdCBkZWZhdWx0TGluayA9IGFwcC5wYXBlci5vcHRpb25zLmRlZmF1bHRMaW5rO1xyXG4gICAgICAgIGlmIChkZWZhdWx0TGluayBpbnN0YW5jZW9mIGpvaW50LmRpYS5MaW5rKSB7XHJcbiAgICAgICAgICAgIHRoZW1lZExpbmtzLnB1c2goZGVmYXVsdExpbmspO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhlbWVkTGlua3MuZm9yRWFjaChmdW5jdGlvbiAobGluazogYW55KSB7XHJcbiAgICAgICAgICAgIGxpbmsuYXR0cih7XHJcbiAgICAgICAgICAgICAgICAnLmNvbm5lY3Rpb24nOiB7ICdzdHJva2UnOiBsaW5rQ29sb3IgfSxcclxuICAgICAgICAgICAgICAgICcubWFya2VyLXRhcmdldCc6IHsgJ2ZpbGwnOiBsaW5rQ29sb3IgfSxcclxuICAgICAgICAgICAgICAgICcubWFya2VyLXNvdXJjZSc6IHsgJ2ZpbGwnOiBsaW5rQ29sb3IgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgLy8gTWF0ZXJpYWwgZGVzaWduIGhhcyBubyBncmlkIHNob3duLlxyXG4gICAgICAgIGlmICh0aGVtZSA9PT0gJ21hdGVyaWFsJykge1xyXG4gICAgICAgICAgICBhcHAucGFwZXIub3B0aW9ucy5kcmF3R3JpZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICBhcHAucGFwZXIuY2xlYXJHcmlkKCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgYXBwLnBhcGVyLm9wdGlvbnMuZHJhd0dyaWQgPSB0cnVlO1xyXG4gICAgICAgICAgICBhcHAucGFwZXIuZHJhd0dyaWQoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGFwcC5jb21tYW5kTWFuYWdlci5saXN0ZW4oKTtcclxuICAgIH1cclxufVxyXG4iXX0=
|