@gravitee/ui-components 3.25.3 → 3.25.4-yarn-d0ed047
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/package.json +21 -18
- package/src/atoms/gv-autocomplete.d.ts +104 -0
- package/src/atoms/gv-autocomplete.js +339 -353
- package/src/atoms/gv-autocomplete.js.map +1 -0
- package/src/atoms/gv-button.d.ts +109 -0
- package/src/atoms/gv-button.js +315 -152
- package/src/atoms/gv-button.js.map +1 -0
- package/src/atoms/gv-checkbox.d.ts +114 -0
- package/src/atoms/gv-checkbox.js +128 -78
- package/src/atoms/gv-checkbox.js.map +1 -0
- package/src/atoms/gv-date-picker-calendar.d.ts +190 -0
- package/src/atoms/gv-date-picker-calendar.js +699 -699
- package/src/atoms/gv-date-picker-calendar.js.map +1 -0
- package/src/atoms/gv-date-picker-cell.d.ts +80 -0
- package/src/atoms/gv-date-picker-cell.js +117 -108
- package/src/atoms/gv-date-picker-cell.js.map +1 -0
- package/src/atoms/gv-date-picker.d.ts +194 -0
- package/src/atoms/gv-date-picker.js +549 -442
- package/src/atoms/gv-date-picker.js.map +1 -0
- package/src/atoms/gv-file-upload.d.ts +64 -0
- package/src/atoms/gv-file-upload.js +288 -196
- package/src/atoms/gv-file-upload.js.map +1 -0
- package/src/atoms/gv-icon.d.ts +26 -0
- package/src/atoms/gv-icon.js +59 -47
- package/src/atoms/gv-icon.js.map +1 -0
- package/src/atoms/gv-image.d.ts +45 -0
- package/src/atoms/gv-image.js +93 -66
- package/src/atoms/gv-image.js.map +1 -0
- package/src/atoms/gv-input-message.d.ts +20 -0
- package/src/atoms/gv-input-message.js +49 -29
- package/src/atoms/gv-input-message.js.map +1 -0
- package/src/atoms/gv-input.d.ts +246 -0
- package/src/atoms/gv-input.js +400 -421
- package/src/atoms/gv-input.js.map +1 -0
- package/src/atoms/gv-link.d.ts +67 -0
- package/src/atoms/gv-link.js +143 -70
- package/src/atoms/gv-link.js.map +1 -0
- package/src/atoms/gv-message.d.ts +23 -0
- package/src/atoms/gv-message.js +98 -41
- package/src/atoms/gv-message.js.map +1 -0
- package/src/atoms/gv-metric.d.ts +32 -0
- package/src/atoms/gv-metric.js +74 -29
- package/src/atoms/gv-metric.js.map +1 -0
- package/src/atoms/gv-relative-time.d.ts +45 -0
- package/src/atoms/gv-relative-time.js +107 -148
- package/src/atoms/gv-relative-time.js.map +1 -0
- package/src/atoms/gv-select-native.d.ts +174 -0
- package/src/atoms/gv-select-native.js +289 -194
- package/src/atoms/gv-select-native.js.map +1 -0
- package/src/atoms/gv-select.d.ts +71 -0
- package/src/atoms/gv-select.js +323 -226
- package/src/atoms/gv-select.js.map +1 -0
- package/src/atoms/gv-spinner.d.ts +10 -0
- package/src/atoms/gv-spinner.js +29 -10
- package/src/atoms/gv-spinner.js.map +1 -0
- package/src/atoms/gv-state.d.ts +50 -0
- package/src/atoms/gv-state.js +76 -39
- package/src/atoms/gv-state.js.map +1 -0
- package/src/atoms/gv-switch.d.ts +60 -0
- package/src/atoms/gv-switch.js +187 -74
- package/src/atoms/gv-switch.js.map +1 -0
- package/src/atoms/gv-tag.d.ts +69 -0
- package/src/atoms/gv-tag.js +92 -45
- package/src/atoms/gv-tag.js.map +1 -0
- package/src/atoms/gv-text.d.ts +110 -0
- package/src/atoms/gv-text.js +105 -51
- package/src/atoms/gv-text.js.map +1 -0
- package/src/charts/gv-chart-bar.d.ts +50 -0
- package/src/charts/gv-chart-bar.js +64 -69
- package/src/charts/gv-chart-bar.js.map +1 -0
- package/src/charts/gv-chart-gauge.d.ts +58 -0
- package/src/charts/gv-chart-gauge.js +58 -62
- package/src/charts/gv-chart-gauge.js.map +1 -0
- package/src/charts/gv-chart-histogram.d.ts +48 -0
- package/src/charts/gv-chart-histogram.js +46 -58
- package/src/charts/gv-chart-histogram.js.map +1 -0
- package/src/charts/gv-chart-line.d.ts +52 -0
- package/src/charts/gv-chart-line.js +173 -189
- package/src/charts/gv-chart-line.js.map +1 -0
- package/src/charts/gv-chart-map.d.ts +50 -0
- package/src/charts/gv-chart-map.js +73 -75
- package/src/charts/gv-chart-map.js.map +1 -0
- package/src/charts/gv-chart-pie.d.ts +50 -0
- package/src/charts/gv-chart-pie.js +52 -57
- package/src/charts/gv-chart-pie.js.map +1 -0
- package/src/index.d.ts +77 -0
- package/src/index.js +1 -1
- package/src/index.js.map +1 -0
- package/src/lib/cron-expression.d.ts +1 -0
- package/src/lib/cron-expression.js +143 -176
- package/src/lib/cron-expression.js.map +1 -0
- package/src/lib/date.d.ts +1 -0
- package/src/lib/date.js +26 -35
- package/src/lib/date.js.map +1 -0
- package/src/lib/events.d.ts +1 -0
- package/src/lib/events.js +10 -11
- package/src/lib/events.js.map +1 -0
- package/src/lib/http-client-schema-form.d.ts +68 -0
- package/src/lib/http-client-schema-form.js +50 -50
- package/src/lib/http-client-schema-form.js.map +1 -0
- package/src/lib/http.d.ts +222 -0
- package/src/lib/http.js +221 -221
- package/src/lib/http.js.map +1 -0
- package/src/lib/i18n.d.ts +30 -0
- package/src/lib/i18n.js +40 -57
- package/src/lib/i18n.js.map +1 -0
- package/src/lib/item.d.ts +12 -0
- package/src/lib/item.js +66 -74
- package/src/lib/item.js.map +1 -0
- package/src/lib/properties.d.ts +42 -0
- package/src/lib/properties.js +110 -162
- package/src/lib/properties.js.map +1 -0
- package/src/lib/schema-form.d.ts +5 -0
- package/src/lib/schema-form.js +13 -16
- package/src/lib/schema-form.js.map +1 -0
- package/src/lib/studio.d.ts +2 -0
- package/src/lib/studio.js +116 -65
- package/src/lib/studio.js.map +1 -0
- package/src/lib/style.d.ts +6 -0
- package/src/lib/style.js +18 -19
- package/src/lib/style.js.map +1 -0
- package/src/lib/text-format.d.ts +6 -0
- package/src/lib/text-format.js +45 -55
- package/src/lib/text-format.js.map +1 -0
- package/src/lib/theme.d.ts +4 -0
- package/src/lib/theme.js +38 -43
- package/src/lib/theme.js.map +1 -0
- package/src/lib/utils.d.ts +9 -0
- package/src/lib/utils.js +72 -75
- package/src/lib/utils.js.map +1 -0
- package/src/mixins/chart-element.d.ts +39 -0
- package/src/mixins/chart-element.js +118 -106
- package/src/mixins/chart-element.js.map +1 -0
- package/src/mixins/input-element.d.ts +64 -0
- package/src/mixins/input-element.js +111 -131
- package/src/mixins/input-element.js.map +1 -0
- package/src/mixins/item-resource.d.ts +56 -0
- package/src/mixins/item-resource.js +76 -95
- package/src/mixins/item-resource.js.map +1 -0
- package/src/mixins/keyboard-element.d.ts +25 -0
- package/src/mixins/keyboard-element.js +44 -51
- package/src/mixins/keyboard-element.js.map +1 -0
- package/src/mixins/update-after-browser.d.ts +11 -0
- package/src/mixins/update-after-browser.js +10 -12
- package/src/mixins/update-after-browser.js.map +1 -0
- package/src/mixins/with-resize-observer.d.ts +12 -0
- package/src/mixins/with-resize-observer.js +46 -61
- package/src/mixins/with-resize-observer.js.map +1 -0
- package/src/mixins/with-skeleton-attribute.d.ts +35 -0
- package/src/mixins/with-skeleton-attribute.js +80 -88
- package/src/mixins/with-skeleton-attribute.js.map +1 -0
- package/src/molecules/gv-card-full.d.ts +78 -0
- package/src/molecules/gv-card-full.js +160 -47
- package/src/molecules/gv-card-full.js.map +1 -0
- package/src/molecules/gv-card-list.d.ts +33 -0
- package/src/molecules/gv-card-list.js +65 -47
- package/src/molecules/gv-card-list.js.map +1 -0
- package/src/molecules/gv-card.d.ts +65 -0
- package/src/molecules/gv-card.js +94 -22
- package/src/molecules/gv-card.js.map +1 -0
- package/src/molecules/gv-category-list.d.ts +17 -0
- package/src/molecules/gv-category-list.js +23 -15
- package/src/molecules/gv-category-list.js.map +1 -0
- package/src/molecules/gv-category.d.ts +64 -0
- package/src/molecules/gv-category.js +117 -43
- package/src/molecules/gv-category.js.map +1 -0
- package/src/molecules/gv-code.d.ts +192 -0
- package/src/molecules/gv-code.js +258 -220
- package/src/molecules/gv-code.js.map +1 -0
- package/src/molecules/gv-confirm.d.ts +60 -0
- package/src/molecules/gv-confirm.js +131 -113
- package/src/molecules/gv-confirm.js.map +1 -0
- package/src/molecules/gv-cron-editor.d.ts +115 -0
- package/src/molecules/gv-cron-editor.js +597 -375
- package/src/molecules/gv-cron-editor.js.map +1 -0
- package/src/molecules/gv-dropdown-menu.d.ts +28 -0
- package/src/molecules/gv-dropdown-menu.js +77 -52
- package/src/molecules/gv-dropdown-menu.js.map +1 -0
- package/src/molecules/gv-expandable.d.ts +37 -0
- package/src/molecules/gv-expandable.js +77 -54
- package/src/molecules/gv-expandable.js.map +1 -0
- package/src/molecules/gv-expression-language.d.ts +150 -0
- package/src/molecules/gv-expression-language.js +212 -256
- package/src/molecules/gv-expression-language.js.map +1 -0
- package/src/molecules/gv-identity-picture.d.ts +44 -0
- package/src/molecules/gv-identity-picture.js +102 -87
- package/src/molecules/gv-identity-picture.js.map +1 -0
- package/src/molecules/gv-list.d.ts +124 -0
- package/src/molecules/gv-list.js +167 -87
- package/src/molecules/gv-list.js.map +1 -0
- package/src/molecules/gv-metrics.d.ts +65 -0
- package/src/molecules/gv-metrics.js +103 -105
- package/src/molecules/gv-metrics.js.map +1 -0
- package/src/molecules/gv-modal.d.ts +64 -0
- package/src/molecules/gv-modal.js +157 -99
- package/src/molecules/gv-modal.js.map +1 -0
- package/src/molecules/gv-nav.d.ts +41 -0
- package/src/molecules/gv-nav.js +134 -123
- package/src/molecules/gv-nav.js.map +1 -0
- package/src/molecules/gv-option.d.ts +65 -0
- package/src/molecules/gv-option.js +177 -115
- package/src/molecules/gv-option.js.map +1 -0
- package/src/molecules/gv-plans.d.ts +73 -0
- package/src/molecules/gv-plans.js +327 -232
- package/src/molecules/gv-plans.js.map +1 -0
- package/src/molecules/gv-popover.d.ts +91 -0
- package/src/molecules/gv-popover.js +265 -172
- package/src/molecules/gv-popover.js.map +1 -0
- package/src/molecules/gv-promote.d.ts +108 -0
- package/src/molecules/gv-promote.js +152 -39
- package/src/molecules/gv-promote.js.map +1 -0
- package/src/molecules/gv-rating-list.d.ts +77 -0
- package/src/molecules/gv-rating-list.js +287 -184
- package/src/molecules/gv-rating-list.js.map +1 -0
- package/src/molecules/gv-rating.d.ts +55 -0
- package/src/molecules/gv-rating.js +187 -152
- package/src/molecules/gv-rating.js.map +1 -0
- package/src/molecules/gv-row-expandable.d.ts +8 -0
- package/src/molecules/gv-row-expandable.js +18 -14
- package/src/molecules/gv-row-expandable.js.map +1 -0
- package/src/molecules/gv-row.d.ts +37 -0
- package/src/molecules/gv-row.js +164 -42
- package/src/molecules/gv-row.js.map +1 -0
- package/src/molecules/gv-stats.d.ts +53 -0
- package/src/molecules/gv-stats.js +70 -55
- package/src/molecules/gv-stats.js.map +1 -0
- package/src/molecules/gv-stepper.d.ts +46 -0
- package/src/molecules/gv-stepper.js +225 -94
- package/src/molecules/gv-stepper.js.map +1 -0
- package/src/molecules/gv-table.d.ts +159 -0
- package/src/molecules/gv-table.js +530 -460
- package/src/molecules/gv-table.js.map +1 -0
- package/src/molecules/gv-tree.d.ts +44 -0
- package/src/molecules/gv-tree.js +189 -77
- package/src/molecules/gv-tree.js.map +1 -0
- package/src/organisms/gv-documentation.d.ts +52 -0
- package/src/organisms/gv-documentation.js +155 -81
- package/src/organisms/gv-documentation.js.map +1 -0
- package/src/organisms/gv-header.d.ts +60 -0
- package/src/organisms/gv-header.js +227 -80
- package/src/organisms/gv-header.js.map +1 -0
- package/src/organisms/gv-http-client.d.ts +57 -0
- package/src/organisms/gv-http-client.js +203 -83
- package/src/organisms/gv-http-client.js.map +1 -0
- package/src/organisms/gv-menu.d.ts +74 -0
- package/src/organisms/gv-menu.js +206 -89
- package/src/organisms/gv-menu.js.map +1 -0
- package/src/organisms/gv-newsletter-subscription.d.ts +82 -0
- package/src/organisms/gv-newsletter-subscription.js +212 -83
- package/src/organisms/gv-newsletter-subscription.js.map +1 -0
- package/src/organisms/gv-pagination.d.ts +63 -0
- package/src/organisms/gv-pagination.js +134 -124
- package/src/organisms/gv-pagination.js.map +1 -0
- package/src/organisms/gv-properties.d.ts +229 -0
- package/src/organisms/gv-properties.js +778 -616
- package/src/organisms/gv-properties.js.map +1 -0
- package/src/organisms/gv-resizable-views.d.ts +33 -0
- package/src/organisms/gv-resizable-views.js +334 -140
- package/src/organisms/gv-resizable-views.js.map +1 -0
- package/src/organisms/gv-resources.d.ts +125 -0
- package/src/organisms/gv-resources.js +434 -365
- package/src/organisms/gv-resources.js.map +1 -0
- package/src/organisms/gv-schema-form-array.d.ts +55 -0
- package/src/organisms/gv-schema-form-array.js +196 -98
- package/src/organisms/gv-schema-form-array.js.map +1 -0
- package/src/organisms/gv-schema-form-control-object.d.ts +64 -0
- package/src/organisms/gv-schema-form-control-object.js +110 -108
- package/src/organisms/gv-schema-form-control-object.js.map +1 -0
- package/src/organisms/gv-schema-form-control.d.ts +90 -0
- package/src/organisms/gv-schema-form-control.js +353 -349
- package/src/organisms/gv-schema-form-control.js.map +1 -0
- package/src/organisms/gv-schema-form.d.ts +156 -0
- package/src/organisms/gv-schema-form.js +611 -556
- package/src/organisms/gv-schema-form.js.map +1 -0
- package/src/organisms/gv-tabs.d.ts +56 -0
- package/src/organisms/gv-tabs.js +149 -125
- package/src/organisms/gv-tabs.js.map +1 -0
- package/src/organisms/gv-user-menu.d.ts +56 -0
- package/src/organisms/gv-user-menu.js +244 -94
- package/src/organisms/gv-user-menu.js.map +1 -0
- package/src/organisms/gv-vertical-menu.d.ts +28 -0
- package/src/organisms/gv-vertical-menu.js +84 -46
- package/src/organisms/gv-vertical-menu.js.map +1 -0
- package/src/policy-studio/gv-flow-step.d.ts +142 -0
- package/src/policy-studio/gv-flow-step.js +390 -250
- package/src/policy-studio/gv-flow-step.js.map +1 -0
- package/src/policy-studio/gv-flow.d.ts +89 -0
- package/src/policy-studio/gv-flow.js +512 -358
- package/src/policy-studio/gv-flow.js.map +1 -0
- package/src/policy-studio/gv-policy-studio-menu.d.ts +94 -0
- package/src/policy-studio/gv-policy-studio-menu.js +657 -403
- package/src/policy-studio/gv-policy-studio-menu.js.map +1 -0
- package/src/policy-studio/gv-policy-studio.d.ts +464 -0
- package/src/policy-studio/gv-policy-studio.js +1531 -1599
- package/src/policy-studio/gv-policy-studio.js.map +1 -0
- package/src/styles/empty.d.ts +1 -0
- package/src/styles/empty.js +21 -4
- package/src/styles/empty.js.map +1 -0
- package/src/styles/input.d.ts +1 -0
- package/src/styles/input.js +247 -3
- package/src/styles/input.js.map +1 -0
- package/src/styles/link.d.ts +1 -0
- package/src/styles/link.js +16 -3
- package/src/styles/link.js.map +1 -0
- package/src/styles/shapes.d.ts +2 -0
- package/src/styles/shapes.js +1 -1
- package/src/styles/shapes.js.map +1 -0
- package/src/styles/skeleton.d.ts +1 -0
- package/src/styles/skeleton.js +37 -3
- package/src/styles/skeleton.js.map +1 -0
- package/src/styles/zoom.d.ts +1 -0
- package/src/styles/zoom.js +24 -3
- package/src/styles/zoom.js.map +1 -0
- package/src/theme/gv-theme.d.ts +81 -0
- package/src/theme/gv-theme.js +115 -81
- package/src/theme/gv-theme.js.map +1 -0
- package/wc/gv-autocomplete.d.ts +1 -0
- package/wc/gv-autocomplete.js +2 -1
- package/wc/gv-autocomplete.js.map +1 -0
- package/wc/gv-button.d.ts +1 -0
- package/wc/gv-button.js +2 -1
- package/wc/gv-button.js.map +1 -0
- package/wc/gv-card-full.d.ts +1 -0
- package/wc/gv-card-full.js +2 -1
- package/wc/gv-card-full.js.map +1 -0
- package/wc/gv-card-list.d.ts +1 -0
- package/wc/gv-card-list.js +2 -1
- package/wc/gv-card-list.js.map +1 -0
- package/wc/gv-card.d.ts +1 -0
- package/wc/gv-card.js +2 -1
- package/wc/gv-card.js.map +1 -0
- package/wc/gv-category-list.d.ts +1 -0
- package/wc/gv-category-list.js +2 -1
- package/wc/gv-category-list.js.map +1 -0
- package/wc/gv-category.d.ts +1 -0
- package/wc/gv-category.js +2 -1
- package/wc/gv-category.js.map +1 -0
- package/wc/gv-chart-bar.d.ts +1 -0
- package/wc/gv-chart-bar.js +2 -1
- package/wc/gv-chart-bar.js.map +1 -0
- package/wc/gv-chart-gauge.d.ts +1 -0
- package/wc/gv-chart-gauge.js +2 -1
- package/wc/gv-chart-gauge.js.map +1 -0
- package/wc/gv-chart-histogram.d.ts +1 -0
- package/wc/gv-chart-histogram.js +2 -1
- package/wc/gv-chart-histogram.js.map +1 -0
- package/wc/gv-chart-line.d.ts +1 -0
- package/wc/gv-chart-line.js +2 -1
- package/wc/gv-chart-line.js.map +1 -0
- package/wc/gv-chart-map.d.ts +1 -0
- package/wc/gv-chart-map.js +2 -1
- package/wc/gv-chart-map.js.map +1 -0
- package/wc/gv-chart-pie.d.ts +1 -0
- package/wc/gv-chart-pie.js +2 -1
- package/wc/gv-chart-pie.js.map +1 -0
- package/wc/gv-checkbox.d.ts +1 -0
- package/wc/gv-checkbox.js +2 -1
- package/wc/gv-checkbox.js.map +1 -0
- package/wc/gv-code.d.ts +1 -0
- package/wc/gv-code.js +2 -1
- package/wc/gv-code.js.map +1 -0
- package/wc/gv-confirm.d.ts +1 -0
- package/wc/gv-confirm.js +2 -1
- package/wc/gv-confirm.js.map +1 -0
- package/wc/gv-cron-editor.d.ts +1 -0
- package/wc/gv-cron-editor.js +2 -1
- package/wc/gv-cron-editor.js.map +1 -0
- package/wc/gv-date-picker-calendar.d.ts +1 -0
- package/wc/gv-date-picker-calendar.js +2 -1
- package/wc/gv-date-picker-calendar.js.map +1 -0
- package/wc/gv-date-picker-cell.d.ts +1 -0
- package/wc/gv-date-picker-cell.js +2 -1
- package/wc/gv-date-picker-cell.js.map +1 -0
- package/wc/gv-date-picker.d.ts +1 -0
- package/wc/gv-date-picker.js +2 -1
- package/wc/gv-date-picker.js.map +1 -0
- package/wc/gv-documentation.d.ts +1 -0
- package/wc/gv-documentation.js +2 -1
- package/wc/gv-documentation.js.map +1 -0
- package/wc/gv-dropdown-menu.d.ts +1 -0
- package/wc/gv-dropdown-menu.js +2 -1
- package/wc/gv-dropdown-menu.js.map +1 -0
- package/wc/gv-expandable.d.ts +1 -0
- package/wc/gv-expandable.js +2 -1
- package/wc/gv-expandable.js.map +1 -0
- package/wc/gv-expression-language.d.ts +1 -0
- package/wc/gv-expression-language.js +2 -1
- package/wc/gv-expression-language.js.map +1 -0
- package/wc/gv-file-upload.d.ts +1 -0
- package/wc/gv-file-upload.js +2 -1
- package/wc/gv-file-upload.js.map +1 -0
- package/wc/gv-flow-step.d.ts +1 -0
- package/wc/gv-flow-step.js +2 -1
- package/wc/gv-flow-step.js.map +1 -0
- package/wc/gv-flow.d.ts +1 -0
- package/wc/gv-flow.js +2 -1
- package/wc/gv-flow.js.map +1 -0
- package/wc/gv-header.d.ts +1 -0
- package/wc/gv-header.js +2 -1
- package/wc/gv-header.js.map +1 -0
- package/wc/gv-http-client.d.ts +1 -0
- package/wc/gv-http-client.js +2 -1
- package/wc/gv-http-client.js.map +1 -0
- package/wc/gv-icon.d.ts +1 -0
- package/wc/gv-icon.js +2 -1
- package/wc/gv-icon.js.map +1 -0
- package/wc/gv-identity-picture.d.ts +1 -0
- package/wc/gv-identity-picture.js +2 -1
- package/wc/gv-identity-picture.js.map +1 -0
- package/wc/gv-image.d.ts +1 -0
- package/wc/gv-image.js +2 -1
- package/wc/gv-image.js.map +1 -0
- package/wc/gv-input-message.d.ts +1 -0
- package/wc/gv-input-message.js +2 -1
- package/wc/gv-input-message.js.map +1 -0
- package/wc/gv-input.d.ts +1 -0
- package/wc/gv-input.js +2 -1
- package/wc/gv-input.js.map +1 -0
- package/wc/gv-link.d.ts +1 -0
- package/wc/gv-link.js +2 -1
- package/wc/gv-link.js.map +1 -0
- package/wc/gv-list.d.ts +1 -0
- package/wc/gv-list.js +2 -1
- package/wc/gv-list.js.map +1 -0
- package/wc/gv-menu.d.ts +1 -0
- package/wc/gv-menu.js +2 -1
- package/wc/gv-menu.js.map +1 -0
- package/wc/gv-message.d.ts +1 -0
- package/wc/gv-message.js +2 -1
- package/wc/gv-message.js.map +1 -0
- package/wc/gv-metric.d.ts +1 -0
- package/wc/gv-metric.js +2 -1
- package/wc/gv-metric.js.map +1 -0
- package/wc/gv-metrics.d.ts +1 -0
- package/wc/gv-metrics.js +2 -1
- package/wc/gv-metrics.js.map +1 -0
- package/wc/gv-modal.d.ts +1 -0
- package/wc/gv-modal.js +2 -1
- package/wc/gv-modal.js.map +1 -0
- package/wc/gv-nav.d.ts +1 -0
- package/wc/gv-nav.js +2 -1
- package/wc/gv-nav.js.map +1 -0
- package/wc/gv-newsletter-subscription.d.ts +1 -0
- package/wc/gv-newsletter-subscription.js +2 -1
- package/wc/gv-newsletter-subscription.js.map +1 -0
- package/wc/gv-option.d.ts +1 -0
- package/wc/gv-option.js +2 -1
- package/wc/gv-option.js.map +1 -0
- package/wc/gv-pagination.d.ts +1 -0
- package/wc/gv-pagination.js +2 -1
- package/wc/gv-pagination.js.map +1 -0
- package/wc/gv-plans.d.ts +1 -0
- package/wc/gv-plans.js +2 -1
- package/wc/gv-plans.js.map +1 -0
- package/wc/gv-policy-studio-menu.d.ts +1 -0
- package/wc/gv-policy-studio-menu.js +2 -1
- package/wc/gv-policy-studio-menu.js.map +1 -0
- package/wc/gv-policy-studio.d.ts +1 -0
- package/wc/gv-policy-studio.js +2 -1
- package/wc/gv-policy-studio.js.map +1 -0
- package/wc/gv-popover.d.ts +1 -0
- package/wc/gv-popover.js +2 -1
- package/wc/gv-popover.js.map +1 -0
- package/wc/gv-promote.d.ts +1 -0
- package/wc/gv-promote.js +2 -1
- package/wc/gv-promote.js.map +1 -0
- package/wc/gv-properties.d.ts +1 -0
- package/wc/gv-properties.js +2 -1
- package/wc/gv-properties.js.map +1 -0
- package/wc/gv-rating-list.d.ts +1 -0
- package/wc/gv-rating-list.js +2 -1
- package/wc/gv-rating-list.js.map +1 -0
- package/wc/gv-rating.d.ts +1 -0
- package/wc/gv-rating.js +2 -1
- package/wc/gv-rating.js.map +1 -0
- package/wc/gv-relative-time.d.ts +1 -0
- package/wc/gv-relative-time.js +2 -1
- package/wc/gv-relative-time.js.map +1 -0
- package/wc/gv-resizable-views.d.ts +1 -0
- package/wc/gv-resizable-views.js +2 -1
- package/wc/gv-resizable-views.js.map +1 -0
- package/wc/gv-resources.d.ts +1 -0
- package/wc/gv-resources.js +2 -1
- package/wc/gv-resources.js.map +1 -0
- package/wc/gv-row-expandable.d.ts +1 -0
- package/wc/gv-row-expandable.js +2 -1
- package/wc/gv-row-expandable.js.map +1 -0
- package/wc/gv-row.d.ts +1 -0
- package/wc/gv-row.js +2 -1
- package/wc/gv-row.js.map +1 -0
- package/wc/gv-schema-form-array.d.ts +1 -0
- package/wc/gv-schema-form-array.js +2 -1
- package/wc/gv-schema-form-array.js.map +1 -0
- package/wc/gv-schema-form-control-object.d.ts +1 -0
- package/wc/gv-schema-form-control-object.js +2 -1
- package/wc/gv-schema-form-control-object.js.map +1 -0
- package/wc/gv-schema-form-control.d.ts +1 -0
- package/wc/gv-schema-form-control.js +2 -1
- package/wc/gv-schema-form-control.js.map +1 -0
- package/wc/gv-schema-form.d.ts +1 -0
- package/wc/gv-schema-form.js +2 -1
- package/wc/gv-schema-form.js.map +1 -0
- package/wc/gv-select-native.d.ts +1 -0
- package/wc/gv-select-native.js +2 -1
- package/wc/gv-select-native.js.map +1 -0
- package/wc/gv-select.d.ts +1 -0
- package/wc/gv-select.js +2 -1
- package/wc/gv-select.js.map +1 -0
- package/wc/gv-spinner.d.ts +1 -0
- package/wc/gv-spinner.js +2 -1
- package/wc/gv-spinner.js.map +1 -0
- package/wc/gv-state.d.ts +1 -0
- package/wc/gv-state.js +2 -1
- package/wc/gv-state.js.map +1 -0
- package/wc/gv-stats.d.ts +1 -0
- package/wc/gv-stats.js +2 -1
- package/wc/gv-stats.js.map +1 -0
- package/wc/gv-stepper.d.ts +1 -0
- package/wc/gv-stepper.js +2 -1
- package/wc/gv-stepper.js.map +1 -0
- package/wc/gv-switch.d.ts +1 -0
- package/wc/gv-switch.js +2 -1
- package/wc/gv-switch.js.map +1 -0
- package/wc/gv-table.d.ts +1 -0
- package/wc/gv-table.js +2 -1
- package/wc/gv-table.js.map +1 -0
- package/wc/gv-tabs.d.ts +1 -0
- package/wc/gv-tabs.js +2 -1
- package/wc/gv-tabs.js.map +1 -0
- package/wc/gv-tag.d.ts +1 -0
- package/wc/gv-tag.js +2 -1
- package/wc/gv-tag.js.map +1 -0
- package/wc/gv-text.d.ts +1 -0
- package/wc/gv-text.js +2 -1
- package/wc/gv-text.js.map +1 -0
- package/wc/gv-theme.d.ts +1 -0
- package/wc/gv-theme.js +2 -1
- package/wc/gv-theme.js.map +1 -0
- package/wc/gv-tree.d.ts +1 -0
- package/wc/gv-tree.js +2 -1
- package/wc/gv-tree.js.map +1 -0
- package/wc/gv-user-menu.d.ts +1 -0
- package/wc/gv-user-menu.js +2 -1
- package/wc/gv-user-menu.js.map +1 -0
- package/wc/gv-vertical-menu.d.ts +1 -0
- package/wc/gv-vertical-menu.js +2 -1
- package/wc/gv-vertical-menu.js.map +1 -0
|
@@ -35,408 +35,562 @@ import { getFlowName, methods } from '../lib/studio';
|
|
|
35
35
|
* @attr {Boolean} disabled - true for disabled
|
|
36
36
|
* @attr {Boolean} readonly - true if readonly
|
|
37
37
|
*/
|
|
38
|
-
|
|
39
38
|
export class GvFlow extends LitElement {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
},
|
|
54
|
-
dragPolicy: {
|
|
55
|
-
type: Object
|
|
56
|
-
},
|
|
57
|
-
dropPolicy: {
|
|
58
|
-
type: Object
|
|
59
|
-
},
|
|
60
|
-
disabled: {
|
|
61
|
-
type: Boolean,
|
|
62
|
-
reflect: true
|
|
63
|
-
},
|
|
64
|
-
hasPolicyFilter: {
|
|
65
|
-
type: Boolean,
|
|
66
|
-
attribute: 'has-policy-filter'
|
|
67
|
-
},
|
|
68
|
-
flowsTitle: {
|
|
69
|
-
type: String,
|
|
70
|
-
attribute: 'flows-title'
|
|
71
|
-
},
|
|
72
|
-
readonly: {
|
|
73
|
-
type: Boolean,
|
|
74
|
-
reflect: true
|
|
75
|
-
}
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
constructor() {
|
|
80
|
-
super();
|
|
81
|
-
this.flowsTitle = 'Flows';
|
|
82
|
-
this.addEventListener('mouseleave', this._onMouseLeave);
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
_onMouseLeave() {
|
|
86
|
-
this.dragPolicy = null;
|
|
87
|
-
this.dropPolicy = null;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
getCandidate() {
|
|
91
|
-
return this.shadowRoot.querySelector('gv-flow-step[empty]');
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
getFlowSteps() {
|
|
95
|
-
return Array.from(this.shadowRoot.querySelectorAll('gv-flow-step'));
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
getOrCreateCandidate() {
|
|
99
|
-
let candidate = this.getCandidate();
|
|
100
|
-
|
|
101
|
-
if (!candidate) {
|
|
102
|
-
candidate = document.createElement('gv-flow-step');
|
|
103
|
-
candidate.setAttribute('empty', true);
|
|
39
|
+
static get properties() {
|
|
40
|
+
return {
|
|
41
|
+
flow: { type: Object },
|
|
42
|
+
plan: { type: Object },
|
|
43
|
+
policies: { type: Object },
|
|
44
|
+
selectedStepId: { type: String },
|
|
45
|
+
dragPolicy: { type: Object },
|
|
46
|
+
dropPolicy: { type: Object },
|
|
47
|
+
disabled: { type: Boolean, reflect: true },
|
|
48
|
+
hasPolicyFilter: { type: Boolean, attribute: 'has-policy-filter' },
|
|
49
|
+
flowsTitle: { type: String, attribute: 'flows-title' },
|
|
50
|
+
readonly: { type: Boolean, reflect: true },
|
|
51
|
+
};
|
|
104
52
|
}
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
removeCandidate() {
|
|
110
|
-
const candidate = this.getCandidate();
|
|
111
|
-
|
|
112
|
-
if (candidate) {
|
|
113
|
-
candidate.remove();
|
|
53
|
+
constructor() {
|
|
54
|
+
super();
|
|
55
|
+
this.flowsTitle = 'Flows';
|
|
56
|
+
this.addEventListener('mouseleave', this._onMouseLeave);
|
|
114
57
|
}
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
if (this.disabled || this.readonly) {
|
|
119
|
-
return false;
|
|
58
|
+
_onMouseLeave() {
|
|
59
|
+
this.dragPolicy = null;
|
|
60
|
+
this.dropPolicy = null;
|
|
120
61
|
}
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
if (flowKey === 'pre') {
|
|
124
|
-
return this.hasPolicyFilter !== true || policy.onRequest === true;
|
|
125
|
-
} else if (flowKey === 'post') {
|
|
126
|
-
return this.hasPolicyFilter !== true || policy.onResponse === true;
|
|
127
|
-
} else {
|
|
128
|
-
throw new Error(`The flowkey [${flowKey}] parameter must be "pre" or "post"`);
|
|
129
|
-
}
|
|
62
|
+
getCandidate() {
|
|
63
|
+
return this.shadowRoot.querySelector('gv-flow-step[empty]');
|
|
130
64
|
}
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
65
|
+
getFlowSteps() {
|
|
66
|
+
return Array.from(this.shadowRoot.querySelectorAll('gv-flow-step'));
|
|
67
|
+
}
|
|
68
|
+
getOrCreateCandidate() {
|
|
69
|
+
let candidate = this.getCandidate();
|
|
70
|
+
if (!candidate) {
|
|
71
|
+
candidate = document.createElement('gv-flow-step');
|
|
72
|
+
candidate.setAttribute('empty', true);
|
|
73
|
+
}
|
|
74
|
+
return candidate;
|
|
75
|
+
}
|
|
76
|
+
removeCandidate() {
|
|
77
|
+
const candidate = this.getCandidate();
|
|
78
|
+
if (candidate) {
|
|
79
|
+
candidate.remove();
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
_canDropPolicy(flowKey, policy) {
|
|
83
|
+
if (this.disabled || this.readonly) {
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
86
|
+
if (policy != null) {
|
|
87
|
+
if (flowKey === 'pre') {
|
|
88
|
+
return this.hasPolicyFilter !== true || policy.onRequest === true;
|
|
89
|
+
}
|
|
90
|
+
else if (flowKey === 'post') {
|
|
91
|
+
return this.hasPolicyFilter !== true || policy.onResponse === true;
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
throw new Error(`The flowkey [${flowKey}] parameter must be "pre" or "post"`);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
return false;
|
|
98
|
+
}
|
|
99
|
+
_onDragOver(flowKey, e) {
|
|
100
|
+
if (!this.disabled && !this.readonly) {
|
|
101
|
+
if (e.dataTransfer.items.length > 0) {
|
|
102
|
+
e.preventDefault();
|
|
103
|
+
e.stopPropagation();
|
|
104
|
+
if (this.dropPolicy == null) {
|
|
105
|
+
this.dropPolicy = this.dragPolicy;
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
this.dragPolicy = this.dropPolicy;
|
|
109
|
+
}
|
|
110
|
+
if (this.dropPolicy != null &&
|
|
111
|
+
this._canDropPolicy(flowKey, this.dropPolicy.policy) &&
|
|
112
|
+
!e.target.classList.contains('candidate') &&
|
|
113
|
+
!e.target.hasAttribute('dragging')) {
|
|
114
|
+
if (e.target.tagName.toLowerCase() === 'gv-flow-step') {
|
|
115
|
+
const { x, width } = e.target.getBoundingClientRect();
|
|
116
|
+
const condition = flowKey === 'post' ? e.clientX - x <= width / 2 : e.clientX - x >= width / 2;
|
|
117
|
+
if (condition && !(e.target.nextElementSibling && e.target.nextElementSibling.hasAttribute('dragging'))) {
|
|
118
|
+
e.target.insertAdjacentElement('afterend', this.getOrCreateCandidate());
|
|
119
|
+
}
|
|
120
|
+
else if (!(e.target.previousElementSibling && e.target.previousElementSibling.hasAttribute('dragging'))) {
|
|
121
|
+
e.target.insertAdjacentElement('beforebegin', this.getOrCreateCandidate());
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
else if (e.target.classList && e.target.classList.contains('drop-area-grid')) {
|
|
125
|
+
const dropAreas = e.target.querySelectorAll('gv-flow-step');
|
|
126
|
+
if (dropAreas.length === 0) {
|
|
127
|
+
e.target.prepend(this.getOrCreateCandidate());
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
this.removeCandidate();
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
_onDragEnd() {
|
|
138
|
+
if (!this.disabled && !this.readonly) {
|
|
139
|
+
if (this._draggablePolicyImage) {
|
|
140
|
+
this._draggablePolicyImage.remove();
|
|
141
|
+
this._draggablePolicyImage = null;
|
|
142
|
+
}
|
|
143
|
+
this.dragPolicy = null;
|
|
144
|
+
this.dropPolicy = null;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
_onDragStart(sourceFlowKey, flowStep, sourcePosition, e) {
|
|
148
|
+
if (!this.disabled && !this.readonly) {
|
|
149
|
+
const policy = this.findPolicy(flowStep.policy);
|
|
150
|
+
if (policy != null) {
|
|
151
|
+
// Simulate click on window for close all dropdown menu
|
|
152
|
+
const windowClick = document.createEvent('Events');
|
|
153
|
+
windowClick.initEvent('click', true, false);
|
|
154
|
+
window.dispatchEvent(windowClick);
|
|
155
|
+
e.target.setAttribute('dragging', true);
|
|
156
|
+
this.shadowRoot.querySelector('.drop-area-grid').classList.add('dragging');
|
|
157
|
+
this.dropPolicy = new PolicyDraggable(policy, sourcePosition, sourceFlowKey, this.flow._id, flowStep);
|
|
158
|
+
e.dataTransfer.setData('text/plain', this.dropPolicy.toString());
|
|
159
|
+
if (policy) {
|
|
160
|
+
const size = 100;
|
|
161
|
+
this._draggablePolicyImage = appendDraggableImage(policy.icon, size);
|
|
162
|
+
e.dataTransfer.setDragImage(this._draggablePolicyImage, size / 2, size / 2);
|
|
163
|
+
}
|
|
164
|
+
dispatchCustomEvent(this, 'drag-start', this.dropPolicy);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
async performUpdate() {
|
|
169
|
+
this.getFlowSteps().forEach((s) => {
|
|
170
|
+
s.requestUpdate();
|
|
171
|
+
});
|
|
172
|
+
super.performUpdate();
|
|
173
|
+
}
|
|
174
|
+
get draggingArea() {
|
|
175
|
+
return this.shadowRoot.querySelector('gv-flow-step[dragging]');
|
|
176
|
+
}
|
|
177
|
+
_onDrop(flowKey, e) {
|
|
178
|
+
this.shadowRoot.querySelectorAll('gv-flow-step').forEach((step) => step.resetConfirm());
|
|
138
179
|
e.preventDefault();
|
|
139
180
|
e.stopPropagation();
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
181
|
+
const box = e.target.closest('.drop-area-grid');
|
|
182
|
+
const candidate = this.getCandidate();
|
|
183
|
+
const draggingArea = this.draggingArea;
|
|
184
|
+
if (candidate) {
|
|
185
|
+
let position = 0;
|
|
186
|
+
[...box.querySelectorAll('gv-flow-step')].some((area) => {
|
|
187
|
+
if (!area.hasAttribute('empty')) {
|
|
188
|
+
position++;
|
|
189
|
+
}
|
|
190
|
+
return area.hasAttribute('empty');
|
|
191
|
+
});
|
|
192
|
+
const { policy, sourceFlowKey, sourceFlowId, sourcePosition, flowStep } = this.dropPolicy;
|
|
193
|
+
const move = () => {
|
|
194
|
+
if (draggingArea) {
|
|
195
|
+
draggingArea.removeAttribute('dragging');
|
|
196
|
+
}
|
|
197
|
+
candidate.remove();
|
|
198
|
+
dispatchCustomEvent(this, 'drop', {
|
|
199
|
+
flowId: this.flow._id,
|
|
200
|
+
flowKey,
|
|
201
|
+
position,
|
|
202
|
+
flowStep,
|
|
203
|
+
policy,
|
|
204
|
+
sourcePosition,
|
|
205
|
+
sourceFlowKey,
|
|
206
|
+
sourceFlowId,
|
|
207
|
+
});
|
|
208
|
+
this.dragPolicy = null;
|
|
209
|
+
this.dropPolicy = null;
|
|
210
|
+
};
|
|
211
|
+
if (sourceFlowId != null && this.flow._id !== sourceFlowId) {
|
|
212
|
+
candidate.setAttribute('confirm', true);
|
|
213
|
+
candidate.addEventListener('gv-flow-step:copy', () => {
|
|
214
|
+
candidate.remove();
|
|
215
|
+
this.dragPolicy = null;
|
|
216
|
+
this.dropPolicy = null;
|
|
217
|
+
dispatchCustomEvent(this, 'drop', {
|
|
218
|
+
flowId: this.flow._id,
|
|
219
|
+
flowKey,
|
|
220
|
+
position,
|
|
221
|
+
policy,
|
|
222
|
+
flowStep,
|
|
223
|
+
cancelEdit: true,
|
|
224
|
+
});
|
|
225
|
+
});
|
|
226
|
+
candidate.addEventListener('gv-flow-step:move', () => {
|
|
227
|
+
candidate.remove();
|
|
228
|
+
move();
|
|
229
|
+
});
|
|
159
230
|
}
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
if (dropAreas.length === 0) {
|
|
164
|
-
e.target.prepend(this.getOrCreateCandidate());
|
|
231
|
+
else {
|
|
232
|
+
move();
|
|
165
233
|
}
|
|
166
|
-
|
|
234
|
+
}
|
|
235
|
+
else if (draggingArea) {
|
|
236
|
+
draggingArea.removeAttribute('dragging');
|
|
237
|
+
this.dragPolicy = null;
|
|
238
|
+
this.dropPolicy = null;
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
getFlowStep(flowKey, position) {
|
|
242
|
+
return this.flow[flowKey][position];
|
|
243
|
+
}
|
|
244
|
+
_onEditStep({ detail: { step, policy, group } }) {
|
|
245
|
+
dispatchCustomEvent(this, 'edit', { flow: this.flow, step, policy, group });
|
|
246
|
+
}
|
|
247
|
+
_onDuplicateStep(flowKey, position) {
|
|
248
|
+
const step = this.getFlowStep(flowKey, position);
|
|
249
|
+
const duplicatePosition = position + 1;
|
|
250
|
+
const policy = this.findPolicy(step.policy);
|
|
251
|
+
const duplicateStep = { ...step, _id: uuid() };
|
|
252
|
+
dispatchCustomEvent(this, 'drop', {
|
|
253
|
+
flowId: this.flow._id,
|
|
254
|
+
flowKey,
|
|
255
|
+
position: duplicatePosition,
|
|
256
|
+
flowStep: duplicateStep,
|
|
257
|
+
policy,
|
|
258
|
+
});
|
|
259
|
+
}
|
|
260
|
+
_isEditable(step) {
|
|
261
|
+
return this.selectedStepId && this.selectedStepId === step._id;
|
|
262
|
+
}
|
|
263
|
+
_onDeleteStep(flowKey, position, e) {
|
|
264
|
+
dispatchCustomEvent(this, 'delete', { flowKey, position, flowId: this.flow._id, target: e.target });
|
|
265
|
+
}
|
|
266
|
+
_onChangeStepState(flowKey, position, { detail }) {
|
|
267
|
+
dispatchCustomEvent(this, 'change-state', { flowKey, position, flowId: this.flow._id, ...detail });
|
|
268
|
+
}
|
|
269
|
+
_renderDropStep(group, step, position) {
|
|
270
|
+
if (step) {
|
|
271
|
+
return html `<gv-flow-step
|
|
272
|
+
.step="${step}"
|
|
273
|
+
.policy="${this.findPolicy(step.policy)}"
|
|
274
|
+
.id="${step._id}"
|
|
275
|
+
.group="${group}"
|
|
276
|
+
.parent="${this.flow._id}"
|
|
277
|
+
?disabled="${this.disabled}"
|
|
278
|
+
?readonly="${this.readonly}"
|
|
279
|
+
.draggable="${!this.disabled && !this.readonly}"
|
|
280
|
+
?editing="${this._isEditable(step)}"
|
|
281
|
+
@dragstart="${this._onDragStart.bind(this, group, step, position)}"
|
|
282
|
+
@dragend="${this._onDragEnd}"
|
|
283
|
+
@gv-flow-step:edit="${this._onEditStep}"
|
|
284
|
+
@gv-flow-step:change-state="${this._onChangeStepState.bind(this, group, position)}"
|
|
285
|
+
@gv-flow-step:delete="${this._onDeleteStep.bind(this, group, position)}"
|
|
286
|
+
@gv-flow-step:duplicate="${this._onDuplicateStep.bind(this, group, position)}"
|
|
287
|
+
></gv-flow-step>`;
|
|
288
|
+
}
|
|
289
|
+
else {
|
|
290
|
+
return html ``;
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
async getUpdateComplete() {
|
|
294
|
+
await super.getUpdateComplete();
|
|
295
|
+
await Promise.all(this.getFlowSteps().map((e) => e.updateComplete));
|
|
296
|
+
}
|
|
297
|
+
updated(properties) {
|
|
298
|
+
if (properties.has('data')) {
|
|
299
|
+
this.onDragEnd();
|
|
300
|
+
}
|
|
301
|
+
if (properties.has('dropPolicy') || properties.has('dragPolicy')) {
|
|
302
|
+
if (this.dropPolicy == null && this.dragPolicy == null) {
|
|
303
|
+
this.removeCandidate();
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
onDragEnd() {
|
|
308
|
+
setTimeout(() => {
|
|
309
|
+
this.shadowRoot.querySelector('.drop-area-grid').classList.remove('dragging');
|
|
167
310
|
this.removeCandidate();
|
|
168
|
-
|
|
311
|
+
const draggingArea = this.draggingArea;
|
|
312
|
+
if (draggingArea) {
|
|
313
|
+
draggingArea.removeAttribute('dragging');
|
|
314
|
+
}
|
|
315
|
+
}, 0);
|
|
316
|
+
}
|
|
317
|
+
_getLabel(flowKey) {
|
|
318
|
+
if (this.flow.type) {
|
|
319
|
+
return html `
|
|
320
|
+
<div class="drop-box-type">${flowKey}</div>
|
|
321
|
+
<div>${this.flow.type.toUpperCase() === 'ROOT' ? 'flow' : this.flow.type}</div>
|
|
322
|
+
`;
|
|
169
323
|
}
|
|
170
|
-
|
|
324
|
+
else if (flowKey === 'pre') {
|
|
325
|
+
return 'request';
|
|
326
|
+
}
|
|
327
|
+
else if (flowKey === 'post') {
|
|
328
|
+
return 'response';
|
|
329
|
+
}
|
|
330
|
+
return '';
|
|
171
331
|
}
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
_onDragEnd() {
|
|
175
|
-
if (!this.disabled && !this.readonly) {
|
|
176
|
-
if (this._draggablePolicyImage) {
|
|
177
|
-
this._draggablePolicyImage.remove();
|
|
178
|
-
|
|
179
|
-
this._draggablePolicyImage = null;
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
this.dragPolicy = null;
|
|
183
|
-
this.dropPolicy = null;
|
|
332
|
+
get collectionName() {
|
|
333
|
+
return this.plan != null ? this.plan.name : this.flowsTitle;
|
|
184
334
|
}
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
335
|
+
render() {
|
|
336
|
+
const preTarget = this.dragPolicy && (this.hasPolicyFilter !== true || this.dragPolicy.policy.onRequest);
|
|
337
|
+
const postTarget = this.dragPolicy && (this.hasPolicyFilter !== true || this.dragPolicy.policy.onResponse);
|
|
338
|
+
const preForbidden = this.dragPolicy && this.hasPolicyFilter === true && !this.dragPolicy.policy.onRequest;
|
|
339
|
+
const postForbidden = this.dragPolicy && this.hasPolicyFilter === true && !this.dragPolicy.policy.onResponse;
|
|
340
|
+
const hasPost = this.flow.type == null || (this.flow.type && this.flow.type.toLowerCase() !== 'root');
|
|
341
|
+
return html `<div class="box">
|
|
342
|
+
<div class="container">
|
|
343
|
+
<div class="header">
|
|
344
|
+
<div class="title">${getFlowName(this.flow, this.collectionName)}</div>
|
|
345
|
+
</div>
|
|
346
|
+
<div class="content">
|
|
347
|
+
<div class="flow">
|
|
348
|
+
<div class="${classMap({ pre: true, targeted: preTarget, forbidden: preForbidden })}">
|
|
349
|
+
<div class="arrow arrow-right"></div>
|
|
350
|
+
<div
|
|
351
|
+
class="drop-box"
|
|
352
|
+
@drop="${this._onDrop.bind(this, 'pre')}"
|
|
353
|
+
@dragend="${this.onDragEnd}"
|
|
354
|
+
@dragover="${this._onDragOver.bind(this, 'pre')}"
|
|
355
|
+
>
|
|
356
|
+
<div class="drop-box-title">${preTarget ? 'drop here' : this._getLabel('pre')}</div>
|
|
357
|
+
<div class="drop-area-grid">${this.flow.pre.map((flowStep, i) => this._renderDropStep('pre', flowStep, i))}</div>
|
|
358
|
+
</div>
|
|
359
|
+
</div>
|
|
360
|
+
|
|
361
|
+
${hasPost
|
|
362
|
+
? html `
|
|
363
|
+
<div class="${classMap({ post: true, targeted: postTarget, forbidden: postForbidden })}">
|
|
364
|
+
<div class='arrow arrow-left'> </div>
|
|
365
|
+
<div class="drop-box"
|
|
366
|
+
@drop="${this._onDrop.bind(this, 'post')}"
|
|
367
|
+
@dragend="${this.onDragEnd}"
|
|
368
|
+
@dragover="${this._onDragOver.bind(this, 'post')}">
|
|
369
|
+
<div class="drop-area-grid drop-area-grid-reverse">
|
|
370
|
+
${this.flow.post.map((flowStep, i) => this._renderDropStep('post', flowStep, i))}
|
|
371
|
+
</div>
|
|
372
|
+
<div class="drop-box-title">${postTarget ? 'drop here' : this._getLabel('post')}</div>
|
|
373
|
+
</div>
|
|
374
|
+
</div>
|
|
375
|
+
</div>`
|
|
376
|
+
: ''}
|
|
377
|
+
</div>
|
|
378
|
+
</div>
|
|
379
|
+
</div>
|
|
380
|
+
</div>`;
|
|
381
|
+
}
|
|
382
|
+
findPolicy(policyId) {
|
|
383
|
+
const policy = this.policies.find((p) => p.id === policyId);
|
|
384
|
+
if (policy == null) {
|
|
385
|
+
// throw new Error(`Policy ${policyId} not found`);
|
|
205
386
|
}
|
|
206
|
-
|
|
207
|
-
dispatchCustomEvent(this, 'drag-start', this.dropPolicy);
|
|
208
|
-
}
|
|
387
|
+
return policy;
|
|
209
388
|
}
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
389
|
+
static get styles() {
|
|
390
|
+
return [
|
|
391
|
+
methods,
|
|
392
|
+
// language=CSS
|
|
393
|
+
css `
|
|
394
|
+
:host {
|
|
395
|
+
box-sizing: border-box;
|
|
396
|
+
position: relative;
|
|
397
|
+
display: block;
|
|
398
|
+
height: 100%;
|
|
399
|
+
}
|
|
218
400
|
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
401
|
+
.flow {
|
|
402
|
+
padding-left: 20px;
|
|
403
|
+
display: flex;
|
|
404
|
+
height: 100%;
|
|
405
|
+
flex-direction: column;
|
|
406
|
+
}
|
|
222
407
|
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
408
|
+
.drop-area-grid {
|
|
409
|
+
flex: 1;
|
|
410
|
+
border: 1px dashed transparent;
|
|
411
|
+
transition: all 350ms ease-in-out;
|
|
412
|
+
position: relative;
|
|
413
|
+
display: flex;
|
|
414
|
+
flex-wrap: wrap;
|
|
415
|
+
max-width: calc(100% - 40px);
|
|
416
|
+
align-items: center;
|
|
417
|
+
min-height: 150px;
|
|
418
|
+
box-sizing: border-box;
|
|
419
|
+
padding: 0 30px;
|
|
420
|
+
}
|
|
230
421
|
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
[...box.querySelectorAll('gv-flow-step')].some(area => {
|
|
234
|
-
if (!area.hasAttribute('empty')) {
|
|
235
|
-
position++;
|
|
422
|
+
.targeted .drop-area-grid {
|
|
423
|
+
border: 1px dashed #d9d9d9;
|
|
236
424
|
}
|
|
237
425
|
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
sourceFlowKey,
|
|
243
|
-
sourceFlowId,
|
|
244
|
-
sourcePosition,
|
|
245
|
-
flowStep
|
|
246
|
-
} = this.dropPolicy;
|
|
426
|
+
.forbidden .drop-area-grid {
|
|
427
|
+
background-color: #efefef;
|
|
428
|
+
opacity: 0.2;
|
|
429
|
+
}
|
|
247
430
|
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
draggingArea.removeAttribute('dragging');
|
|
431
|
+
gv-flow-step {
|
|
432
|
+
flex: 1;
|
|
251
433
|
}
|
|
252
434
|
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
sourceFlowId
|
|
263
|
-
});
|
|
264
|
-
this.dragPolicy = null;
|
|
265
|
-
this.dropPolicy = null;
|
|
266
|
-
};
|
|
435
|
+
.message {
|
|
436
|
+
text-transform: uppercase;
|
|
437
|
+
color: #d9d9d9;
|
|
438
|
+
opacity: 0;
|
|
439
|
+
transition: opacity 350ms ease-in-out;
|
|
440
|
+
font-size: 18px;
|
|
441
|
+
text-align: center;
|
|
442
|
+
align-self: center;
|
|
443
|
+
}
|
|
267
444
|
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
candidate.remove();
|
|
272
|
-
this.dragPolicy = null;
|
|
273
|
-
this.dropPolicy = null;
|
|
274
|
-
dispatchCustomEvent(this, 'drop', {
|
|
275
|
-
flowId: this.flow._id,
|
|
276
|
-
flowKey,
|
|
277
|
-
position,
|
|
278
|
-
policy,
|
|
279
|
-
flowStep,
|
|
280
|
-
cancelEdit: true
|
|
281
|
-
});
|
|
282
|
-
});
|
|
283
|
-
candidate.addEventListener('gv-flow-step:move', () => {
|
|
284
|
-
candidate.remove();
|
|
285
|
-
move();
|
|
286
|
-
});
|
|
287
|
-
} else {
|
|
288
|
-
move();
|
|
289
|
-
}
|
|
290
|
-
} else if (draggingArea) {
|
|
291
|
-
draggingArea.removeAttribute('dragging');
|
|
292
|
-
this.dragPolicy = null;
|
|
293
|
-
this.dropPolicy = null;
|
|
294
|
-
}
|
|
295
|
-
}
|
|
445
|
+
.message {
|
|
446
|
+
width: 100%;
|
|
447
|
+
}
|
|
296
448
|
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
449
|
+
.targeted .message {
|
|
450
|
+
opacity: 1;
|
|
451
|
+
}
|
|
300
452
|
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
group
|
|
306
|
-
}
|
|
307
|
-
}) {
|
|
308
|
-
dispatchCustomEvent(this, 'edit', {
|
|
309
|
-
flow: this.flow,
|
|
310
|
-
step,
|
|
311
|
-
policy,
|
|
312
|
-
group
|
|
313
|
-
});
|
|
314
|
-
}
|
|
453
|
+
.targeted .drop-area-empty {
|
|
454
|
+
opacity: 0;
|
|
455
|
+
transition: all 350ms ease-in-out;
|
|
456
|
+
}
|
|
315
457
|
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
};
|
|
323
|
-
dispatchCustomEvent(this, 'drop', {
|
|
324
|
-
flowId: this.flow._id,
|
|
325
|
-
flowKey,
|
|
326
|
-
position: duplicatePosition,
|
|
327
|
-
flowStep: duplicateStep,
|
|
328
|
-
policy
|
|
329
|
-
});
|
|
330
|
-
}
|
|
458
|
+
.pre,
|
|
459
|
+
.post {
|
|
460
|
+
position: relative;
|
|
461
|
+
flex: 1;
|
|
462
|
+
display: flex;
|
|
463
|
+
}
|
|
331
464
|
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
465
|
+
.arrow {
|
|
466
|
+
background-color: #d9d9d9;
|
|
467
|
+
width: calc(100% - 50px * 2 - 1px);
|
|
468
|
+
text-align: center;
|
|
469
|
+
position: absolute;
|
|
470
|
+
margin: 0 30px;
|
|
471
|
+
color: #262626;
|
|
472
|
+
top: calc(50% - 20px);
|
|
473
|
+
height: 40px;
|
|
474
|
+
}
|
|
335
475
|
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
476
|
+
.arrow-right::after {
|
|
477
|
+
width: 0;
|
|
478
|
+
height: 0;
|
|
479
|
+
border-top: 40px solid transparent;
|
|
480
|
+
border-bottom: 40px solid transparent;
|
|
481
|
+
border-left: 40px solid #d9d9d9;
|
|
482
|
+
content: ' ';
|
|
483
|
+
position: absolute;
|
|
484
|
+
right: -20px;
|
|
485
|
+
top: -20px;
|
|
486
|
+
}
|
|
344
487
|
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
position,
|
|
351
|
-
flowId: this.flow._id,
|
|
352
|
-
...detail
|
|
353
|
-
});
|
|
354
|
-
}
|
|
488
|
+
.drop-box-type {
|
|
489
|
+
position: relative;
|
|
490
|
+
writing-mode: horizontal-tb;
|
|
491
|
+
margin-bottom: 10px;
|
|
492
|
+
}
|
|
355
493
|
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
494
|
+
.drop-box-title {
|
|
495
|
+
position: relative;
|
|
496
|
+
writing-mode: vertical-lr;
|
|
497
|
+
text-orientation: upright;
|
|
498
|
+
text-transform: uppercase;
|
|
499
|
+
color: #bfbfbf;
|
|
500
|
+
font-size: 13px;
|
|
501
|
+
font-weight: 500;
|
|
502
|
+
text-align: center;
|
|
503
|
+
max-height: 145px;
|
|
504
|
+
line-height: 13px;
|
|
505
|
+
display: flex;
|
|
506
|
+
align-items: center;
|
|
507
|
+
min-width: 30px;
|
|
508
|
+
}
|
|
363
509
|
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
510
|
+
.pre .drop-box-title {
|
|
511
|
+
position: absolute;
|
|
512
|
+
left: -30px;
|
|
513
|
+
}
|
|
368
514
|
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
515
|
+
.arrow-left::after {
|
|
516
|
+
width: 0;
|
|
517
|
+
height: 0;
|
|
518
|
+
border-top: 40px solid transparent;
|
|
519
|
+
border-bottom: 40px solid transparent;
|
|
520
|
+
border-right: 40px solid #d9d9d9;
|
|
521
|
+
content: ' ';
|
|
522
|
+
position: absolute;
|
|
523
|
+
left: -20px;
|
|
524
|
+
top: -20px;
|
|
525
|
+
}
|
|
373
526
|
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
527
|
+
.drop-box {
|
|
528
|
+
display: flex;
|
|
529
|
+
border: 1px solid transparent;
|
|
530
|
+
margin: 0 30px;
|
|
531
|
+
align-items: center;
|
|
532
|
+
position: relative;
|
|
533
|
+
width: 100%;
|
|
534
|
+
}
|
|
380
535
|
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
this.removeCandidate();
|
|
385
|
-
const draggingArea = this.draggingArea;
|
|
536
|
+
.drop-area-grid-reverse {
|
|
537
|
+
flex-direction: row-reverse;
|
|
538
|
+
}
|
|
386
539
|
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
540
|
+
.header {
|
|
541
|
+
border-bottom: 1px solid #d9d9d9;
|
|
542
|
+
display: flex;
|
|
543
|
+
min-height: 45px;
|
|
544
|
+
margin-bottom: 0.5rem;
|
|
545
|
+
}
|
|
392
546
|
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
547
|
+
.header .title {
|
|
548
|
+
color: #28444f;
|
|
549
|
+
font-size: 18px;
|
|
550
|
+
display: flex;
|
|
551
|
+
align-items: center;
|
|
552
|
+
margin: 0 0.5rem;
|
|
553
|
+
width: 100%;
|
|
554
|
+
}
|
|
401
555
|
|
|
402
|
-
|
|
403
|
-
|
|
556
|
+
.header .title .flow-path {
|
|
557
|
+
flex: 1;
|
|
558
|
+
}
|
|
404
559
|
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
560
|
+
.box {
|
|
561
|
+
position: absolute;
|
|
562
|
+
display: flex;
|
|
563
|
+
flex-direction: column;
|
|
564
|
+
width: 100%;
|
|
565
|
+
top: 0;
|
|
566
|
+
bottom: 0;
|
|
567
|
+
left: 0;
|
|
568
|
+
}
|
|
408
569
|
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
const postTarget = this.dragPolicy && (this.hasPolicyFilter !== true || this.dragPolicy.policy.onResponse);
|
|
412
|
-
const preForbidden = this.dragPolicy && this.hasPolicyFilter === true && !this.dragPolicy.policy.onRequest;
|
|
413
|
-
const postForbidden = this.dragPolicy && this.hasPolicyFilter === true && !this.dragPolicy.policy.onResponse;
|
|
414
|
-
const hasPost = this.flow.type == null || this.flow.type && this.flow.type.toLowerCase() !== 'root';
|
|
415
|
-
return html`<div class="box"> <div class="container"> <div class="header"> <div class="title">${getFlowName(this.flow, this.collectionName)}</div> </div> <div class="content"> <div class="flow"> <div class="${classMap({
|
|
416
|
-
pre: true,
|
|
417
|
-
targeted: preTarget,
|
|
418
|
-
forbidden: preForbidden
|
|
419
|
-
})}"> <div class="arrow arrow-right"></div> <div class="drop-box" @drop="${this._onDrop.bind(this, 'pre')}" @dragend="${this.onDragEnd}" @dragover="${this._onDragOver.bind(this, 'pre')}"> <div class="drop-box-title">${preTarget ? 'drop here' : this._getLabel('pre')}</div> <div class="drop-area-grid">${this.flow.pre.map((flowStep, i) => this._renderDropStep('pre', flowStep, i))}</div> </div> </div> ${hasPost ? html` <div class="${classMap({
|
|
420
|
-
post: true,
|
|
421
|
-
targeted: postTarget,
|
|
422
|
-
forbidden: postForbidden
|
|
423
|
-
})}"> <div class="arrow arrow-left"> </div> <div class="drop-box" @drop="${this._onDrop.bind(this, 'post')}" @dragend="${this.onDragEnd}" @dragover="${this._onDragOver.bind(this, 'post')}"> <div class="drop-area-grid drop-area-grid-reverse"> ${this.flow.post.map((flowStep, i) => this._renderDropStep('post', flowStep, i))} </div> <div class="drop-box-title">${postTarget ? 'drop here' : this._getLabel('post')}</div> </div> </div> ` : ''} </div> </div> </div> </div>`;
|
|
424
|
-
}
|
|
570
|
+
.container {
|
|
571
|
+
flex-grow: 1;
|
|
425
572
|
|
|
426
|
-
|
|
427
|
-
|
|
573
|
+
display: flex;
|
|
574
|
+
flex-direction: column;
|
|
428
575
|
|
|
429
|
-
|
|
430
|
-
|
|
576
|
+
/* for Firefox */
|
|
577
|
+
min-height: 0;
|
|
578
|
+
height: 100%;
|
|
579
|
+
}
|
|
431
580
|
|
|
432
|
-
|
|
433
|
-
|
|
581
|
+
.content {
|
|
582
|
+
background: white;
|
|
583
|
+
flex-grow: 1;
|
|
434
584
|
|
|
435
|
-
|
|
436
|
-
return [methods, // language=CSS
|
|
437
|
-
css`:host{box-sizing:border-box;position:relative;display:block;height:100%}.flow{padding-left:20px;display:flex;height:100%;flex-direction:column}.drop-area-grid{flex:1;border:1px dashed transparent;transition:all 350ms ease-in-out;position:relative;display:flex;flex-wrap:wrap;max-width:calc(100% - 40px);align-items:center;min-height:150px;box-sizing:border-box;padding:0 30px}.targeted .drop-area-grid{border:1px dashed #d9d9d9}.forbidden .drop-area-grid{background-color:#efefef;opacity:.2}gv-flow-step{flex:1}.message{text-transform:uppercase;color:#d9d9d9;opacity:0;transition:opacity 350ms ease-in-out;font-size:18px;text-align:center;align-self:center}.message{width:100%}.targeted .message{opacity:1}.targeted .drop-area-empty{opacity:0;transition:all 350ms ease-in-out}.post,.pre{position:relative;flex:1;display:flex}.arrow{background-color:#d9d9d9;width:calc(100% - 50px * 2 - 1px);text-align:center;position:absolute;margin:0 30px;color:#262626;top:calc(50% - 20px);height:40px}.arrow-right::after{width:0;height:0;border-top:40px solid transparent;border-bottom:40px solid transparent;border-left:40px solid #d9d9d9;content:' ';position:absolute;right:-20px;top:-20px}.drop-box-type{position:relative;writing-mode:horizontal-tb;margin-bottom:10px}.drop-box-title{position:relative;writing-mode:vertical-lr;text-orientation:upright;text-transform:uppercase;color:#bfbfbf;font-size:13px;font-weight:500;text-align:center;max-height:145px;line-height:13px;display:flex;align-items:center;min-width:30px}.pre .drop-box-title{position:absolute;left:-30px}.arrow-left::after{width:0;height:0;border-top:40px solid transparent;border-bottom:40px solid transparent;border-right:40px solid #d9d9d9;content:' ';position:absolute;left:-20px;top:-20px}.drop-box{display:flex;border:1px solid transparent;margin:0 30px;align-items:center;position:relative;width:100%}.drop-area-grid-reverse{flex-direction:row-reverse}.header{border-bottom:1px solid #d9d9d9;display:flex;min-height:45px;margin-bottom:.5rem}.header .title{color:#28444f;font-size:18px;display:flex;align-items:center;margin:0 .5rem;width:100%}.header .title .flow-path{flex:1}.box{position:absolute;display:flex;flex-direction:column;width:100%;top:0;bottom:0;left:0}.container{flex-grow:1;display:flex;flex-direction:column;min-height:0;height:100%}.content{background:#fff;flex-grow:1;overflow:auto;min-height:0;padding:.5rem}`];
|
|
438
|
-
}
|
|
585
|
+
overflow: auto;
|
|
439
586
|
|
|
587
|
+
/* for Firefox */
|
|
588
|
+
min-height: 0;
|
|
589
|
+
padding: 0.5rem;
|
|
590
|
+
}
|
|
591
|
+
`,
|
|
592
|
+
];
|
|
593
|
+
}
|
|
440
594
|
}
|
|
441
595
|
window.customElements.define('gv-flow', GvFlow);
|
|
442
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL3BvbGljeS1zdHVkaW8vZ3YtZmxvdy5qcyJdLCJuYW1lcyI6WyJMaXRFbGVtZW50IiwiaHRtbCIsImNzcyIsImNsYXNzTWFwIiwiZGlzcGF0Y2hDdXN0b21FdmVudCIsImFwcGVuZERyYWdnYWJsZUltYWdlIiwidXVpZCIsIlBvbGljeURyYWdnYWJsZSIsImdldEZsb3dOYW1lIiwibWV0aG9kcyIsIkd2RmxvdyIsInByb3BlcnRpZXMiLCJmbG93IiwidHlwZSIsIk9iamVjdCIsInBsYW4iLCJwb2xpY2llcyIsInNlbGVjdGVkU3RlcElkIiwiU3RyaW5nIiwiZHJhZ1BvbGljeSIsImRyb3BQb2xpY3kiLCJkaXNhYmxlZCIsIkJvb2xlYW4iLCJyZWZsZWN0IiwiaGFzUG9saWN5RmlsdGVyIiwiYXR0cmlidXRlIiwiZmxvd3NUaXRsZSIsInJlYWRvbmx5IiwiY29uc3RydWN0b3IiLCJhZGRFdmVudExpc3RlbmVyIiwiX29uTW91c2VMZWF2ZSIsImdldENhbmRpZGF0ZSIsInNoYWRvd1Jvb3QiLCJxdWVyeVNlbGVjdG9yIiwiZ2V0Rmxvd1N0ZXBzIiwiQXJyYXkiLCJmcm9tIiwicXVlcnlTZWxlY3RvckFsbCIsImdldE9yQ3JlYXRlQ2FuZGlkYXRlIiwiY2FuZGlkYXRlIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50Iiwic2V0QXR0cmlidXRlIiwicmVtb3ZlQ2FuZGlkYXRlIiwicmVtb3ZlIiwiX2NhbkRyb3BQb2xpY3kiLCJmbG93S2V5IiwicG9saWN5Iiwib25SZXF1ZXN0Iiwib25SZXNwb25zZSIsIkVycm9yIiwiX29uRHJhZ092ZXIiLCJlIiwiZGF0YVRyYW5zZmVyIiwiaXRlbXMiLCJsZW5ndGgiLCJwcmV2ZW50RGVmYXVsdCIsInN0b3BQcm9wYWdhdGlvbiIsInRhcmdldCIsImNsYXNzTGlzdCIsImNvbnRhaW5zIiwiaGFzQXR0cmlidXRlIiwidGFnTmFtZSIsInRvTG93ZXJDYXNlIiwieCIsIndpZHRoIiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwiY29uZGl0aW9uIiwiY2xpZW50WCIsIm5leHRFbGVtZW50U2libGluZyIsImluc2VydEFkamFjZW50RWxlbWVudCIsInByZXZpb3VzRWxlbWVudFNpYmxpbmciLCJkcm9wQXJlYXMiLCJwcmVwZW5kIiwiX29uRHJhZ0VuZCIsIl9kcmFnZ2FibGVQb2xpY3lJbWFnZSIsIl9vbkRyYWdTdGFydCIsInNvdXJjZUZsb3dLZXkiLCJmbG93U3RlcCIsInNvdXJjZVBvc2l0aW9uIiwiZmluZFBvbGljeSIsIndpbmRvd0NsaWNrIiwiY3JlYXRlRXZlbnQiLCJpbml0RXZlbnQiLCJ3aW5kb3ciLCJkaXNwYXRjaEV2ZW50IiwiYWRkIiwiX2lkIiwic2V0RGF0YSIsInRvU3RyaW5nIiwic2l6ZSIsImljb24iLCJzZXREcmFnSW1hZ2UiLCJwZXJmb3JtVXBkYXRlIiwiZm9yRWFjaCIsInMiLCJyZXF1ZXN0VXBkYXRlIiwiZHJhZ2dpbmdBcmVhIiwiX29uRHJvcCIsInN0ZXAiLCJyZXNldENvbmZpcm0iLCJib3giLCJjbG9zZXN0IiwicG9zaXRpb24iLCJzb21lIiwiYXJlYSIsInNvdXJjZUZsb3dJZCIsIm1vdmUiLCJyZW1vdmVBdHRyaWJ1dGUiLCJmbG93SWQiLCJjYW5jZWxFZGl0IiwiZ2V0Rmxvd1N0ZXAiLCJfb25FZGl0U3RlcCIsImRldGFpbCIsImdyb3VwIiwiX29uRHVwbGljYXRlU3RlcCIsImR1cGxpY2F0ZVBvc2l0aW9uIiwiZHVwbGljYXRlU3RlcCIsIl9pc0VkaXRhYmxlIiwiX29uRGVsZXRlU3RlcCIsIl9vbkNoYW5nZVN0ZXBTdGF0ZSIsIl9yZW5kZXJEcm9wU3RlcCIsImJpbmQiLCJnZXRVcGRhdGVDb21wbGV0ZSIsIlByb21pc2UiLCJhbGwiLCJtYXAiLCJ1cGRhdGVDb21wbGV0ZSIsInVwZGF0ZWQiLCJoYXMiLCJvbkRyYWdFbmQiLCJzZXRUaW1lb3V0IiwiX2dldExhYmVsIiwidG9VcHBlckNhc2UiLCJjb2xsZWN0aW9uTmFtZSIsIm5hbWUiLCJyZW5kZXIiLCJwcmVUYXJnZXQiLCJwb3N0VGFyZ2V0IiwicHJlRm9yYmlkZGVuIiwicG9zdEZvcmJpZGRlbiIsImhhc1Bvc3QiLCJwcmUiLCJ0YXJnZXRlZCIsImZvcmJpZGRlbiIsImkiLCJwb3N0IiwicG9saWN5SWQiLCJmaW5kIiwicCIsImlkIiwic3R5bGVzIiwiY3VzdG9tRWxlbWVudHMiLCJkZWZpbmUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVNBLFVBQVQsRUFBcUJDLElBQXJCLEVBQTJCQyxHQUEzQixRQUFzQyxLQUF0QztBQUNBLFNBQVNDLFFBQVQsUUFBeUIsMEJBQXpCO0FBQ0EsU0FBU0MsbUJBQVQsUUFBb0MsZUFBcEM7QUFDQSxPQUFPLG1CQUFQO0FBQ0EsU0FBU0Msb0JBQVQsRUFBK0JDLElBQS9CLFFBQTJDLGNBQTNDO0FBQ0EsU0FBU0MsZUFBVCxRQUFnQyxnQkFBaEM7QUFDQSxTQUFTQyxXQUFULEVBQXNCQyxPQUF0QixRQUFxQyxlQUFyQztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxPQUFPLE1BQU1DLE1BQU4sU0FBcUJWLFVBQXJCLENBQWdDO0FBQ2hCLGFBQVZXLFVBQVUsR0FBRztBQUN0QixXQUFPO0FBQ0xDLE1BQUFBLElBQUksRUFBRTtBQUFFQyxRQUFBQSxJQUFJLEVBQUVDO0FBQVIsT0FERDtBQUVMQyxNQUFBQSxJQUFJLEVBQUU7QUFBRUYsUUFBQUEsSUFBSSxFQUFFQztBQUFSLE9BRkQ7QUFHTEUsTUFBQUEsUUFBUSxFQUFFO0FBQUVILFFBQUFBLElBQUksRUFBRUM7QUFBUixPQUhMO0FBSUxHLE1BQUFBLGNBQWMsRUFBRTtBQUFFSixRQUFBQSxJQUFJLEVBQUVLO0FBQVIsT0FKWDtBQUtMQyxNQUFBQSxVQUFV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QVFrQixLQUFLOUcsSUFBTCxDQUFVc0ksSUFBVixDQUFlcEIsR0FBZixDQUFtQixDQUFDaEQsUUFBRCxFQUFXbUUsQ0FBWCxLQUFpQixLQUFLeEIsZUFBTCxDQUFxQixNQUFyQixFQUE2QjNDLFFBQTdCLEVBQXVDbUUsQ0FBdkMsQ0FBcEMsQ0FSbEIsdUNBVTJDUCxVQUFVLEdBQUcsV0FBSCxHQUFpQixLQUFLTixTQUFMLENBQWUsTUFBZixDQVZ0RSx1QkFEQyxHQWVMLEVBbkNELDhCQUFYO0FBd0NEOztBQUVEcEQsRUFBQUEsVUFBVSxDQUFDbUUsUUFBRCxFQUFXO0FBQ25CLFVBQU1wRyxNQUFNLEdBQUcsS0FBSy9CLFFBQUwsQ0FBY29JLElBQWQsQ0FBb0JDLENBQUQsSUFBT0EsQ0FBQyxDQUFDQyxFQUFGLEtBQVNILFFBQW5DLENBQWY7O0FBQ0EsUUFBSXBHLE1BQU0sSUFBSSxJQUFkLEVBQW9CLENBQ2xCO0FBQ0Q7O0FBQ0QsV0FBT0EsTUFBUDtBQUNEOztBQUVnQixhQUFOd0csTUFBTSxHQUFHO0FBQ2xCLFdBQU8sQ0FDTDlJLE9BREssRUFFTDtBQUNBUCxJQUFBQSxHQUFHLDAxRUFIRSxDQUFQO0FBMk1EOztBQW5rQm9DO0FBc2tCdkNrRixNQUFNLENBQUNvRSxjQUFQLENBQXNCQyxNQUF0QixDQUE2QixTQUE3QixFQUF3Qy9JLE1BQXhDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoQykgMjAxNSBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7IExpdEVsZW1lbnQsIGh0bWwsIGNzcyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjbGFzc01hcCB9IGZyb20gJ2xpdC9kaXJlY3RpdmVzL2NsYXNzLW1hcCc7XG5pbXBvcnQgeyBkaXNwYXRjaEN1c3RvbUV2ZW50IH0gZnJvbSAnLi4vbGliL2V2ZW50cyc7XG5pbXBvcnQgJy4uL2F0b21zL2d2LWltYWdlJztcbmltcG9ydCB7IGFwcGVuZERyYWdnYWJsZUltYWdlLCB1dWlkIH0gZnJvbSAnLi4vbGliL3V0aWxzJztcbmltcG9ydCB7IFBvbGljeURyYWdnYWJsZSB9IGZyb20gJy4vZ3YtZmxvdy1zdGVwJztcbmltcG9ydCB7IGdldEZsb3dOYW1lLCBtZXRob2RzIH0gZnJvbSAnLi4vbGliL3N0dWRpbyc7XG5cbi8qKlxuICogRmxvdyBjb21wb25lbnRcbiAqXG4gKiBAZmlyZXMgZ3YtZmxvdzpkcm9wIC0gRHJvcCBldmVudFxuICogQGZpcmVzIGd2LWZsb3c6ZWRpdCAtIEVkaXQgZXZlbnRcbiAqIEBmaXJlcyBndi1mbG93OmRlbGV0ZSAtIERlbGV0ZSBldmVudFxuICpcbiAqIEBhdHRyIHtPYmplY3R9IGZsb3cgLSB0aGUgZmxvdyB0byBkaXNwbGF5XG4gKiBAYXR0ciB7U3RyaW5nfSBzZWxlY3RlZFN0ZXBJZCAtIHRoZSBzZWxlY3RlZCBzdGVwIGlkXG4gKiBAYXR0ciB7T2JqZWN0fSB0YXJnZXRlZFBvbGljeSAtIHRydWUsIGlmIGZsb3cgaXMgdGFyZ2V0ZWQgZm9yIGRyb3AgYWN0aW9uXG4gKiBAYXR0ciB7Qm9vbGVhbn0gaGFzLXBvbGljeS1maWx0ZXIgLSB0cnVlIGlmIHBvbGljaWVzIGhhdmUgb25SZXF1ZXN0L29uUmVzcG9uc2UgcHJvcGVydGllc1xuICogQGF0dHIge1N0cmluZ30gZmxvd3NUaXRsZSAtIGZsb3dzIG1lbnUgdGl0bGVcbiAqIEBhdHRyIHtCb29sZWFufSBkaXNhYmxlZCAtIHRydWUgZm9yIGRpc2FibGVkXG4gKiBAYXR0ciB7Qm9vbGVhbn0gcmVhZG9ubHkgLSB0cnVlIGlmIHJlYWRvbmx5XG4gKi9cbmV4cG9ydCBjbGFzcyBHdkZsb3cgZXh0ZW5kcyBMaXRFbGVtZW50IHtcbiAgc3RhdGljIGdldCBwcm9wZXJ0aWVzKCkge1xuICAgIHJldHVybiB7XG4gICAgICBmbG93OiB7IHR5cGU6IE9iamVjdCB9LFxuICAgICAgcGxhbjogeyB0eXBlOiBPYmplY3QgfSxcbiAgICAgIHBvbGljaWVzOiB7IHR5cGU6IE9iamVjdCB9LFxuICAgICAgc2VsZWN0ZWRTdGVwSWQ6IHsgdHlwZTogU3RyaW5nIH0sXG4gICAgICBkcmFnUG9saWN5OiB7IHR5cGU6IE9iamVjdCB9LFxuICAgICAgZHJvcFBvbGljeTogeyB0eXBlOiBPYmplY3QgfSxcbiAgICAgIGRpc2FibGVkOiB7IHR5cGU6IEJvb2xlYW4sIHJlZmxlY3Q6IHRydWUgfSxcbiAgICAgIGhhc1BvbGljeUZpbHRlcjogeyB0eXBlOiBCb29sZWFuLCBhdHRyaWJ1dGU6ICdoYXMtcG9saWN5LWZpbHRlcicgfSxcbiAgICAgIGZsb3dzVGl0bGU6IHsgdHlwZTogU3RyaW5nLCBhdHRyaWJ1dGU6ICdmbG93cy10aXRsZScgfSxcbiAgICAgIHJlYWRvbmx5OiB7IHR5cGU6IEJvb2xlYW4sIHJlZmxlY3Q6IHRydWUgfSxcbiAgICB9O1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmZsb3dzVGl0bGUgPSAnRmxvd3MnO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsIHRoaXMuX29uTW91c2VMZWF2ZSk7XG4gIH1cblxuICBfb25Nb3VzZUxlYXZlKCkge1xuICAgIHRoaXMuZHJhZ1BvbGljeSA9IG51bGw7XG4gICAgdGhpcy5kcm9wUG9saWN5ID0gbnVsbDtcbiAgfVxuXG4gIGdldENhbmRpZGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2d2LWZsb3ctc3RlcFtlbXB0eV0nKTtcbiAgfVxuXG4gIGdldEZsb3dTdGVwcygpIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgnZ3YtZmxvdy1zdGVwJykpO1xuICB9XG5cbiAgZ2V0T3JDcmVhdGVDYW5kaWRhdGUoKSB7XG4gICAgbGV0IGNhbmRpZGF0ZSA9IHRoaXMuZ2V0Q2FuZGlkYXRlKCk7XG4gICAgaWYgKCFjYW5kaWRhdGUpIHtcbiAgICAgIGNhbmRpZGF0ZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2d2LWZsb3ctc3RlcCcpO1xuICAgICAgY2FuZGlkYXRlLnNldEF0dHJpYnV0ZSgnZW1wdHknLCB0cnVlKTtcbiAgICB9XG4gICAgcmV0dXJuIGNhbmRpZGF0ZTtcbiAgfVxuXG4gIHJlbW92ZUNhbmRpZGF0ZSgpIHtcbiAgICBjb25zdCBjYW5kaWRhdGUgPSB0aGlzLmdldENhbmRpZGF0ZSgpO1xuICAgIGlmIChjYW5kaWRhdGUpIHtcbiAgICAgIGNhbmRpZGF0ZS5yZW1vdmUoKTtcbiAgICB9XG4gIH1cblxuICBfY2FuRHJvcFBvbGljeShmbG93S2V5LCBwb2xpY3kpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLnJlYWRvbmx5KSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmIChwb2xpY3kgIT0gbnVsbCkge1xuICAgICAgaWYgKGZsb3dLZXkgPT09ICdwcmUnKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmhhc1BvbGljeUZpbHRlciAhPT0gdHJ1ZSB8fCBwb2xpY3kub25SZXF1ZXN0ID09PSB0cnVlO1xuICAgICAgfSBlbHNlIGlmIChmbG93S2V5ID09PSAncG9zdCcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGFzUG9saWN5RmlsdGVyICE9PSB0cnVlIHx8IHBvbGljeS5vblJlc3BvbnNlID09PSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgZmxvd2tleSBbJHtmbG93S2V5fV0gcGFyYW1ldGVyIG11c3QgYmUgXCJwcmVcIiBvciBcInBvc3RcImApO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBfb25EcmFnT3ZlcihmbG93S2V5LCBlKSB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkICYmICF0aGlzLnJlYWRvbmx5KSB7XG4gICAgICBpZiAoZS5kYXRhVHJhbnNmZXIuaXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGlmICh0aGlzLmRyb3BQb2xpY3kgPT0gbnVsbCkge1xuICAgICAgICAgIHRoaXMuZHJvcFBvbGljeSA9IHRoaXMuZHJhZ1BvbGljeTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmRyYWdQb2xpY3kgPSB0aGlzLmRyb3BQb2xpY3k7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoXG4gICAgICAgICAgdGhpcy5kcm9wUG9saWN5ICE9IG51bGwgJiZcbiAgICAgICAgICB0aGlzLl9jYW5Ecm9wUG9saWN5KGZsb3dLZXksIHRoaXMuZHJvcFBvbGljeS5wb2xpY3kpICYmXG4gICAgICAgICAgIWUudGFyZ2V0LmNsYXNzTGlzdC5jb250YWlucygnY2FuZGlkYXRlJykgJiZcbiAgICAgICAgICAhZS50YXJnZXQuaGFzQXR0cmlidXRlKCdkcmFnZ2luZycpXG4gICAgICAgICkge1xuICAgICAgICAgIGlmIChlLnRhcmdldC50YWdOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdndi1mbG93LXN0ZXAnKSB7XG4gICAgICAgICAgICBjb25zdCB7IHgsIHdpZHRoIH0gPSBlLnRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgIGNvbnN0IGNvbmRpdGlvbiA9IGZsb3dLZXkgPT09ICdwb3N0JyA/IGUuY2xpZW50WCAtIHggPD0gd2lkdGggLyAyIDogZS5jbGllbnRYIC0geCA+PSB3aWR0aCAvIDI7XG4gICAgICAgICAgICBpZiAoY29uZGl0aW9uICYmICEoZS50YXJnZXQubmV4dEVsZW1lbnRTaWJsaW5nICYmIGUudGFyZ2V0Lm5leHRFbGVtZW50U2libGluZy5oYXNBdHRyaWJ1dGUoJ2RyYWdnaW5nJykpKSB7XG4gICAgICAgICAgICAgIGUudGFyZ2V0Lmluc2VydEFkamFjZW50RWxlbWVudCgnYWZ0ZXJlbmQnLCB0aGlzLmdldE9yQ3JlYXRlQ2FuZGlkYXRlKCkpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICghKGUudGFyZ2V0LnByZXZpb3VzRWxlbWVudFNpYmxpbmcgJiYgZS50YXJnZXQucHJldmlvdXNFbGVtZW50U2libGluZy5oYXNBdHRyaWJ1dGUoJ2RyYWdnaW5nJykpKSB7XG4gICAgICAgICAgICAgIGUudGFyZ2V0Lmluc2VydEFkamFjZW50RWxlbWVudCgnYmVmb3JlYmVnaW4nLCB0aGlzLmdldE9yQ3JlYXRlQ2FuZGlkYXRlKCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAoZS50YXJnZXQuY2xhc3NMaXN0ICYmIGUudGFyZ2V0LmNsYXNzTGlzdC5jb250YWlucygnZHJvcC1hcmVhLWdyaWQnKSkge1xuICAgICAgICAgICAgY29uc3QgZHJvcEFyZWFzID0gZS50YXJnZXQucXVlcnlTZWxlY3RvckFsbCgnZ3YtZmxvdy1zdGVwJyk7XG4gICAgICAgICAgICBpZiAoZHJvcEFyZWFzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICBlLnRhcmdldC5wcmVwZW5kKHRoaXMuZ2V0T3JDcmVhdGVDYW5kaWRhdGUoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlQ2FuZGlkYXRlKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgX29uRHJhZ0VuZCgpIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQgJiYgIXRoaXMucmVhZG9ubHkpIHtcbiAgICAgIGlmICh0aGlzLl9kcmFnZ2FibGVQb2xpY3lJbWFnZSkge1xuICAgICAgICB0aGlzLl9kcmFnZ2FibGVQb2xpY3lJbWFnZS5yZW1vdmUoKTtcbiAgICAgICAgdGhpcy5fZHJhZ2dhYmxlUG9saWN5SW1hZ2UgPSBudWxsO1xuICAgICAgfVxuICAgICAgdGhpcy5kcmFnUG9saWN5ID0gbnVsbDtcbiAgICAgIHRoaXMuZHJvcFBvbGljeSA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgX29uRHJhZ1N0YXJ0KHNvdXJjZUZsb3dLZXksIGZsb3dTdGVwLCBzb3VyY2VQb3NpdGlvbiwgZSkge1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCAmJiAhdGhpcy5yZWFkb25seSkge1xuICAgICAgY29uc3QgcG9saWN5ID0gdGhpcy5maW5kUG9saWN5KGZsb3dTdGVwLnBvbGljeSk7XG4gICAgICBpZiAocG9saWN5ICE9IG51bGwpIHtcbiAgICAgICAgLy8gU2ltdWxhdGUgY2xpY2sgb24gd2luZG93IGZvciBjbG9zZSBhbGwgZHJvcGRvd24gbWVudVxuICAgICAgICBjb25zdCB3aW5kb3dDbGljayA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdFdmVudHMnKTtcbiAgICAgICAgd2luZG93Q2xpY2suaW5pdEV2ZW50KCdjbGljaycsIHRydWUsIGZhbHNlKTtcbiAgICAgICAgd2luZG93LmRpc3BhdGNoRXZlbnQod2luZG93Q2xpY2spO1xuICAgICAgICBlLnRhcmdldC5zZXRBdHRyaWJ1dGUoJ2RyYWdnaW5nJywgdHJ1ZSk7XG4gICAgICAgIHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcuZHJvcC1hcmVhLWdyaWQnKS5jbGFzc0xpc3QuYWRkKCdkcmFnZ2luZycpO1xuXG4gICAgICAgIHRoaXMuZHJvcFBvbGljeSA9IG5ldyBQb2xpY3lEcmFnZ2FibGUocG9saWN5LCBzb3VyY2VQb3NpdGlvbiwgc291cmNlRmxvd0tleSwgdGhpcy5mbG93Ll9pZCwgZmxvd1N0ZXApO1xuICAgICAgICBlLmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0L3BsYWluJywgdGhpcy5kcm9wUG9saWN5LnRvU3RyaW5nKCkpO1xuICAgICAgICBpZiAocG9saWN5KSB7XG4gICAgICAgICAgY29uc3Qgc2l6ZSA9IDEwMDtcbiAgICAgICAgICB0aGlzLl9kcmFnZ2FibGVQb2xpY3lJbWFnZSA9IGFwcGVuZERyYWdnYWJsZUltYWdlKHBvbGljeS5pY29uLCBzaXplKTtcbiAgICAgICAgICBlLmRhdGFUcmFuc2Zlci5zZXREcmFnSW1hZ2UodGhpcy5fZHJhZ2dhYmxlUG9saWN5SW1hZ2UsIHNpemUgLyAyLCBzaXplIC8gMik7XG4gICAgICAgIH1cbiAgICAgICAgZGlzcGF0Y2hDdXN0b21FdmVudCh0aGlzLCAnZHJhZy1zdGFydCcsIHRoaXMuZHJvcFBvbGljeSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgcGVyZm9ybVVwZGF0ZSgpIHtcbiAgICB0aGlzLmdldEZsb3dTdGVwcygpLmZvckVhY2goKHMpID0+IHtcbiAgICAgIHMucmVxdWVzdFVwZGF0ZSgpO1xuICAgIH0pO1xuICAgIHN1cGVyLnBlcmZvcm1VcGRhdGUoKTtcbiAgfVxuXG4gIGdldCBkcmFnZ2luZ0FyZWEoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdndi1mbG93LXN0ZXBbZHJhZ2dpbmddJyk7XG4gIH1cblxuICBfb25Ecm9wKGZsb3dLZXksIGUpIHtcbiAgICB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgnZ3YtZmxvdy1zdGVwJykuZm9yRWFjaCgoc3RlcCkgPT4gc3RlcC5yZXNldENvbmZpcm0oKSk7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgY29uc3QgYm94ID0gZS50YXJnZXQuY2xvc2VzdCgnLmRyb3AtYXJlYS1ncmlkJyk7XG4gICAgY29uc3QgY2FuZGlkYXRlID0gdGhpcy5nZXRDYW5kaWRhdGUoKTtcbiAgICBjb25zdCBkcmFnZ2luZ0FyZWEgPSB0aGlzLmRyYWdnaW5nQXJlYTtcbiAgICBpZiAoY2FuZGlkYXRlKSB7XG4gICAgICBsZXQgcG9zaXRpb24gPSAwO1xuICAgICAgWy4uLmJveC5xdWVyeVNlbGVjdG9yQWxsKCdndi1mbG93LXN0ZXAnKV0uc29tZSgoYXJlYSkgPT4ge1xuICAgICAgICBpZiAoIWFyZWEuaGFzQXR0cmlidXRlKCdlbXB0eScpKSB7XG4gICAgICAgICAgcG9zaXRpb24rKztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYXJlYS5oYXNBdHRyaWJ1dGUoJ2VtcHR5Jyk7XG4gICAgICB9KTtcbiAgICAgIGNvbnN0IHsgcG9saWN5LCBzb3VyY2VGbG93S2V5LCBzb3VyY2VGbG93SWQsIHNvdXJjZVBvc2l0aW9uLCBmbG93U3RlcCB9ID0gdGhpcy5kcm9wUG9saWN5O1xuICAgICAgY29uc3QgbW92ZSA9ICgpID0+IHtcbiAgICAgICAgaWYgKGRyYWdnaW5nQXJlYSkge1xuICAgICAgICAgIGRyYWdnaW5nQXJlYS5yZW1vdmVBdHRyaWJ1dGUoJ2RyYWdnaW5nJyk7XG4gICAgICAgIH1cbiAgICAgICAgY2FuZGlkYXRlLnJlbW92ZSgpO1xuICAgICAgICBkaXNwYXRjaEN1c3RvbUV2ZW50KHRoaXMsICdkcm9wJywge1xuICAgICAgICAgIGZsb3dJZDogdGhpcy5mbG93Ll9pZCxcbiAgICAgICAgICBmbG93S2V5LFxuICAgICAgICAgIHBvc2l0aW9uLFxuICAgICAgICAgIGZsb3dTdGVwLFxuICAgICAgICAgIHBvbGljeSxcbiAgICAgICAgICBzb3VyY2VQb3NpdGlvbixcbiAgICAgICAgICBzb3VyY2VGbG93S2V5LFxuICAgICAgICAgIHNvdXJjZUZsb3dJZCxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuZHJhZ1BvbGljeSA9IG51bGw7XG4gICAgICAgIHRoaXMuZHJvcFBvbGljeSA9IG51bGw7XG4gICAgICB9O1xuXG4gICAgICBpZiAoc291cmNlRmxvd0lkICE9IG51bGwgJiYgdGhpcy5mbG93Ll9pZCAhPT0gc291cmNlRmxvd0lkKSB7XG4gICAgICAgIGNhbmRpZGF0ZS5zZXRBdHRyaWJ1dGUoJ2NvbmZpcm0nLCB0cnVlKTtcbiAgICAgICAgY2FuZGlkYXRlLmFkZEV2ZW50TGlzdGVuZXIoJ2d2LWZsb3ctc3RlcDpjb3B5JywgKCkgPT4ge1xuICAgICAgICAgIGNhbmRpZGF0ZS5yZW1vdmUoKTtcbiAgICAgICAgICB0aGlzLmRyYWdQb2xpY3kgPSBudWxsO1xuICAgICAgICAgIHRoaXMuZHJvcFBvbGljeSA9IG51bGw7XG4gICAgICAgICAgZGlzcGF0Y2hDdXN0b21FdmVudCh0aGlzLCAnZHJvcCcsIHtcbiAgICAgICAgICAgIGZsb3dJZDogdGhpcy5mbG93Ll9pZCxcbiAgICAgICAgICAgIGZsb3dLZXksXG4gICAgICAgICAgICBwb3NpdGlvbixcbiAgICAgICAgICAgIHBvbGljeSxcbiAgICAgICAgICAgIGZsb3dTdGVwLFxuICAgICAgICAgICAgY2FuY2VsRWRpdDogdHJ1ZSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY2FuZGlkYXRlLmFkZEV2ZW50TGlzdGVuZXIoJ2d2LWZsb3ctc3RlcDptb3ZlJywgKCkgPT4ge1xuICAgICAgICAgIGNhbmRpZGF0ZS5yZW1vdmUoKTtcbiAgICAgICAgICBtb3ZlKCk7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbW92ZSgpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoZHJhZ2dpbmdBcmVhKSB7XG4gICAgICBkcmFnZ2luZ0FyZWEucmVtb3ZlQXR0cmlidXRlKCdkcmFnZ2luZycpO1xuICAgICAgdGhpcy5kcmFnUG9saWN5ID0gbnVsbDtcbiAgICAgIHRoaXMuZHJvcFBvbGljeSA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgZ2V0Rmxvd1N0ZXAoZmxvd0tleSwgcG9zaXRpb24pIHtcbiAgICByZXR1cm4gdGhpcy5mbG93W2Zsb3dLZXldW3Bvc2l0aW9uXTtcbiAgfVxuXG4gIF9vbkVkaXRTdGVwKHsgZGV0YWlsOiB7IHN0ZXAsIHBvbGljeSwgZ3JvdXAgfSB9KSB7XG4gICAgZGlzcGF0Y2hDdXN0b21FdmVudCh0aGlzLCAnZWRpdCcsIHsgZmxvdzogdGhpcy5mbG93LCBzdGVwLCBwb2xpY3ksIGdyb3VwIH0pO1xuICB9XG5cbiAgX29uRHVwbGljYXRlU3RlcChmbG93S2V5LCBwb3NpdGlvbikge1xuICAgIGNvbnN0IHN0ZXAgPSB0aGlzLmdldEZsb3dTdGVwKGZsb3dLZXksIHBvc2l0aW9uKTtcbiAgICBjb25zdCBkdXBsaWNhdGVQb3NpdGlvbiA9IHBvc2l0aW9uICsgMTtcbiAgICBjb25zdCBwb2xpY3kgPSB0aGlzLmZpbmRQb2xpY3koc3RlcC5wb2xpY3kpO1xuICAgIGNvbnN0IGR1cGxpY2F0ZVN0ZXAgPSB7IC4uLnN0ZXAsIF9pZDogdXVpZCgpIH07XG4gICAgZGlzcGF0Y2hDdXN0b21FdmVudCh0aGlzLCAnZHJvcCcsIHtcbiAgICAgIGZsb3dJZDogdGhpcy5mbG93Ll9pZCxcbiAgICAgIGZsb3dLZXksXG4gICAgICBwb3NpdGlvbjogZHVwbGljYXRlUG9zaXRpb24sXG4gICAgICBmbG93U3RlcDogZHVwbGljYXRlU3RlcCxcbiAgICAgIHBvbGljeSxcbiAgICB9KTtcbiAgfVxuXG4gIF9pc0VkaXRhYmxlKHN0ZXApIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZFN0ZXBJZCAmJiB0aGlzLnNlbGVjdGVkU3RlcElkID09PSBzdGVwLl9pZDtcbiAgfVxuXG4gIF9vbkRlbGV0ZVN0ZXAoZmxvd0tleSwgcG9zaXRpb24sIGUpIHtcbiAgICBkaXNwYXRjaEN1c3RvbUV2ZW50KHRoaXMsICdkZWxldGUnLCB7IGZsb3dLZXksIHBvc2l0aW9uLCBmbG93SWQ6IHRoaXMuZmxvdy5faWQsIHRhcmdldDogZS50YXJnZXQgfSk7XG4gIH1cblxuICBfb25DaGFuZ2VTdGVwU3RhdGUoZmxvd0tleSwgcG9zaXRpb24sIHsgZGV0YWlsIH0pIHtcbiAgICBkaXNwYXRjaEN1c3RvbUV2ZW50KHRoaXMsICdjaGFuZ2Utc3RhdGUnLCB7IGZsb3dLZXksIHBvc2l0aW9uLCBmbG93SWQ6IHRoaXMuZmxvdy5faWQsIC4uLmRldGFpbCB9KTtcbiAgfVxuXG4gIF9yZW5kZXJEcm9wU3RlcChncm91cCwgc3RlcCwgcG9zaXRpb24pIHtcbiAgICBpZiAoc3RlcCkge1xuICAgICAgcmV0dXJuIGh0bWxgPGd2LWZsb3ctc3RlcFxuICAgICAgICAuc3RlcD1cIiR7c3RlcH1cIlxuICAgICAgICAucG9saWN5PVwiJHt0aGlzLmZpbmRQb2xpY3koc3RlcC5wb2xpY3kpfVwiXG4gICAgICAgIC5pZD1cIiR7c3RlcC5faWR9XCJcbiAgICAgICAgLmdyb3VwPVwiJHtncm91cH1cIlxuICAgICAgICAucGFyZW50PVwiJHt0aGlzLmZsb3cuX2lkfVwiXG4gICAgICAgID9kaXNhYmxlZD1cIiR7dGhpcy5kaXNhYmxlZH1cIlxuICAgICAgICA/cmVhZG9ubHk9XCIke3RoaXMucmVhZG9ubHl9XCJcbiAgICAgICAgLmRyYWdnYWJsZT1cIiR7IXRoaXMuZGlzYWJsZWQgJiYgIXRoaXMucmVhZG9ubHl9XCJcbiAgICAgICAgP2VkaXRpbmc9XCIke3RoaXMuX2lzRWRpdGFibGUoc3RlcCl9XCJcbiAgICAgICAgQGRyYWdzdGFydD1cIiR7dGhpcy5fb25EcmFnU3RhcnQuYmluZCh0aGlzLCBncm91cCwgc3RlcCwgcG9zaXRpb24pfVwiXG4gICAgICAgIEBkcmFnZW5kPVwiJHt0aGlzLl9vbkRyYWdFbmR9XCJcbiAgICAgICAgQGd2LWZsb3ctc3RlcDplZGl0PVwiJHt0aGlzLl9vbkVkaXRTdGVwfVwiXG4gICAgICAgIEBndi1mbG93LXN0ZXA6Y2hhbmdlLXN0YXRlPVwiJHt0aGlzLl9vbkNoYW5nZVN0ZXBTdGF0ZS5iaW5kKHRoaXMsIGdyb3VwLCBwb3NpdGlvbil9XCJcbiAgICAgICAgQGd2LWZsb3ctc3RlcDpkZWxldGU9XCIke3RoaXMuX29uRGVsZXRlU3RlcC5iaW5kKHRoaXMsIGdyb3VwLCBwb3NpdGlvbil9XCJcbiAgICAgICAgQGd2LWZsb3ctc3RlcDpkdXBsaWNhdGU9XCIke3RoaXMuX29uRHVwbGljYXRlU3RlcC5iaW5kKHRoaXMsIGdyb3VwLCBwb3NpdGlvbil9XCJcbiAgICAgID48L2d2LWZsb3ctc3RlcD5gO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gaHRtbGBgO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGdldFVwZGF0ZUNvbXBsZXRlKCkge1xuICAgIGF3YWl0IHN1cGVyLmdldFVwZGF0ZUNvbXBsZXRlKCk7XG4gICAgYXdhaXQgUHJvbWlzZS5hbGwodGhpcy5nZXRGbG93U3RlcHMoKS5tYXAoKGUpID0+IGUudXBkYXRlQ29tcGxldGUpKTtcbiAgfVxuXG4gIHVwZGF0ZWQocHJvcGVydGllcykge1xuICAgIGlmIChwcm9wZXJ0aWVzLmhhcygnZGF0YScpKSB7XG4gICAgICB0aGlzLm9uRHJhZ0VuZCgpO1xuICAgIH1cbiAgICBpZiAocHJvcGVydGllcy5oYXMoJ2Ryb3BQb2xpY3knKSB8fCBwcm9wZXJ0aWVzLmhhcygnZHJhZ1BvbGljeScpKSB7XG4gICAgICBpZiAodGhpcy5kcm9wUG9saWN5ID09IG51bGwgJiYgdGhpcy5kcmFnUG9saWN5ID09IG51bGwpIHtcbiAgICAgICAgdGhpcy5yZW1vdmVDYW5kaWRhdGUoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvbkRyYWdFbmQoKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLmRyb3AtYXJlYS1ncmlkJykuY2xhc3NMaXN0LnJlbW92ZSgnZHJhZ2dpbmcnKTtcbiAgICAgIHRoaXMucmVtb3ZlQ2FuZGlkYXRlKCk7XG4gICAgICBjb25zdCBkcmFnZ2luZ0FyZWEgPSB0aGlzLmRyYWdnaW5nQXJlYTtcbiAgICAgIGlmIChkcmFnZ2luZ0FyZWEpIHtcbiAgICAgICAgZHJhZ2dpbmdBcmVhLnJlbW92ZUF0dHJpYnV0ZSgnZHJhZ2dpbmcnKTtcbiAgICAgIH1cbiAgICB9LCAwKTtcbiAgfVxuXG4gIF9nZXRMYWJlbChmbG93S2V5KSB7XG4gICAgaWYgKHRoaXMuZmxvdy50eXBlKSB7XG4gICAgICByZXR1cm4gaHRtbGBcbiAgICAgICAgPGRpdiBjbGFzcz1cImRyb3AtYm94LXR5cGVcIj4ke2Zsb3dLZXl9PC9kaXY+XG4gICAgICAgIDxkaXY+JHt0aGlzLmZsb3cudHlwZS50b1VwcGVyQ2FzZSgpID09PSAnUk9PVCcgPyAnZmxvdycgOiB0aGlzLmZsb3cudHlwZX08L2Rpdj5cbiAgICAgIGA7XG4gICAgfSBlbHNlIGlmIChmbG93S2V5ID09PSAncHJlJykge1xuICAgICAgcmV0dXJuICdyZXF1ZXN0JztcbiAgICB9IGVsc2UgaWYgKGZsb3dLZXkgPT09ICdwb3N0Jykge1xuICAgICAgcmV0dXJuICdyZXNwb25zZSc7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIGdldCBjb2xsZWN0aW9uTmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5wbGFuICE9IG51bGwgPyB0aGlzLnBsYW4ubmFtZSA6IHRoaXMuZmxvd3NUaXRsZTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCBwcmVUYXJnZXQgPSB0aGlzLmRyYWdQb2xpY3kgJiYgKHRoaXMuaGFzUG9saWN5RmlsdGVyICE9PSB0cnVlIHx8IHRoaXMuZHJhZ1BvbGljeS5wb2xpY3kub25SZXF1ZXN0KTtcbiAgICBjb25zdCBwb3N0VGFyZ2V0ID0gdGhpcy5kcmFnUG9saWN5ICYmICh0aGlzLmhhc1BvbGljeUZpbHRlciAhPT0gdHJ1ZSB8fCB0aGlzLmRyYWdQb2xpY3kucG9saWN5Lm9uUmVzcG9uc2UpO1xuXG4gICAgY29uc3QgcHJlRm9yYmlkZGVuID0gdGhpcy5kcmFnUG9saWN5ICYmIHRoaXMuaGFzUG9saWN5RmlsdGVyID09PSB0cnVlICYmICF0aGlzLmRyYWdQb2xpY3kucG9saWN5Lm9uUmVxdWVzdDtcbiAgICBjb25zdCBwb3N0Rm9yYmlkZGVuID0gdGhpcy5kcmFnUG9saWN5ICYmIHRoaXMuaGFzUG9saWN5RmlsdGVyID09PSB0cnVlICYmICF0aGlzLmRyYWdQb2xpY3kucG9saWN5Lm9uUmVzcG9uc2U7XG4gICAgY29uc3QgaGFzUG9zdCA9IHRoaXMuZmxvdy50eXBlID09IG51bGwgfHwgKHRoaXMuZmxvdy50eXBlICYmIHRoaXMuZmxvdy50eXBlLnRvTG93ZXJDYXNlKCkgIT09ICdyb290Jyk7XG4gICAgcmV0dXJuIGh0bWxgPGRpdiBjbGFzcz1cImJveFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlXCI+JHtnZXRGbG93TmFtZSh0aGlzLmZsb3csIHRoaXMuY29sbGVjdGlvbk5hbWUpfTwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnRcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxvd1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIiR7Y2xhc3NNYXAoeyBwcmU6IHRydWUsIHRhcmdldGVkOiBwcmVUYXJnZXQsIGZvcmJpZGRlbjogcHJlRm9yYmlkZGVuIH0pfVwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXJyb3cgYXJyb3ctcmlnaHRcIj48L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZHJvcC1ib3hcIlxuICAgICAgICAgICAgICAgIEBkcm9wPVwiJHt0aGlzLl9vbkRyb3AuYmluZCh0aGlzLCAncHJlJyl9XCJcbiAgICAgICAgICAgICAgICBAZHJhZ2VuZD1cIiR7dGhpcy5vbkRyYWdFbmR9XCJcbiAgICAgICAgICAgICAgICBAZHJhZ292ZXI9XCIke3RoaXMuX29uRHJhZ092ZXIuYmluZCh0aGlzLCAncHJlJyl9XCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wLWJveC10aXRsZVwiPiR7cHJlVGFyZ2V0ID8gJ2Ryb3AgaGVyZScgOiB0aGlzLl9nZXRMYWJlbCgncHJlJyl9PC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3AtYXJlYS1ncmlkXCI+JHt0aGlzLmZsb3cucHJlLm1hcCgoZmxvd1N0ZXAsIGkpID0+IHRoaXMuX3JlbmRlckRyb3BTdGVwKCdwcmUnLCBmbG93U3RlcCwgaSkpfTwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAke2hhc1Bvc3RcbiAgICAgICAgICAgICAgPyBodG1sYFxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIiR7Y2xhc3NNYXAoeyBwb3N0OiB0cnVlLCB0YXJnZXRlZDogcG9zdFRhcmdldCwgZm9yYmlkZGVuOiBwb3N0Rm9yYmlkZGVuIH0pfVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdhcnJvdyBhcnJvdy1sZWZ0Jz4gPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3AtYm94XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBkcm9wPVwiJHt0aGlzLl9vbkRyb3AuYmluZCh0aGlzLCAncG9zdCcpfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZHJhZ2VuZD1cIiR7dGhpcy5vbkRyYWdFbmR9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBkcmFnb3Zlcj1cIiR7dGhpcy5fb25EcmFnT3Zlci5iaW5kKHRoaXMsICdwb3N0Jyl9XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcC1hcmVhLWdyaWQgZHJvcC1hcmVhLWdyaWQtcmV2ZXJzZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHt0aGlzLmZsb3cucG9zdC5tYXAoKGZsb3dTdGVwLCBpKSA9PiB0aGlzLl9yZW5kZXJEcm9wU3RlcCgncG9zdCcsIGZsb3dTdGVwLCBpKSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wLWJveC10aXRsZVwiPiR7cG9zdFRhcmdldCA/ICdkcm9wIGhlcmUnIDogdGhpcy5fZ2V0TGFiZWwoJ3Bvc3QnKX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+YFxuICAgICAgICAgICAgICA6ICcnfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PmA7XG4gIH1cblxuICBmaW5kUG9saWN5KHBvbGljeUlkKSB7XG4gICAgY29uc3QgcG9saWN5ID0gdGhpcy5wb2xpY2llcy5maW5kKChwKSA9PiBwLmlkID09PSBwb2xpY3lJZCk7XG4gICAgaWYgKHBvbGljeSA9PSBudWxsKSB7XG4gICAgICAvLyB0aHJvdyBuZXcgRXJyb3IoYFBvbGljeSAke3BvbGljeUlkfSBub3QgZm91bmRgKTtcbiAgICB9XG4gICAgcmV0dXJuIHBvbGljeTtcbiAgfVxuXG4gIHN0YXRpYyBnZXQgc3R5bGVzKCkge1xuICAgIHJldHVybiBbXG4gICAgICBtZXRob2RzLFxuICAgICAgLy8gbGFuZ3VhZ2U9Q1NTXG4gICAgICBjc3NgXG4gICAgICAgIDpob3N0IHtcbiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAuZmxvdyB7XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIH1cblxuICAgICAgICAuZHJvcC1hcmVhLWdyaWQge1xuICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgYm9yZGVyOiAxcHggZGFzaGVkIHRyYW5zcGFyZW50O1xuICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAzNTBtcyBlYXNlLWluLW91dDtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSA0MHB4KTtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IDE1MHB4O1xuICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgcGFkZGluZzogMCAzMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLnRhcmdldGVkIC5kcm9wLWFyZWEtZ3JpZCB7XG4gICAgICAgICAgYm9yZGVyOiAxcHggZGFzaGVkICNkOWQ5ZDk7XG4gICAgICAgIH1cblxuICAgICAgICAuZm9yYmlkZGVuIC5kcm9wLWFyZWEtZ3JpZCB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2VmZWZlZjtcbiAgICAgICAgICBvcGFjaXR5OiAwLjI7XG4gICAgICAgIH1cblxuICAgICAgICBndi1mbG93LXN0ZXAge1xuICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgIH1cblxuICAgICAgICAubWVzc2FnZSB7XG4gICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICBjb2xvcjogI2Q5ZDlkOTtcbiAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMzUwbXMgZWFzZS1pbi1vdXQ7XG4gICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAubWVzc2FnZSB7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAudGFyZ2V0ZWQgLm1lc3NhZ2Uge1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cblxuICAgICAgICAudGFyZ2V0ZWQgLmRyb3AtYXJlYS1lbXB0eSB7XG4gICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMzUwbXMgZWFzZS1pbi1vdXQ7XG4gICAgICAgIH1cblxuICAgICAgICAucHJlLFxuICAgICAgICAucG9zdCB7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5hcnJvdyB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Q5ZDlkOTtcbiAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gNTBweCAqIDIgLSAxcHgpO1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgbWFyZ2luOiAwIDMwcHg7XG4gICAgICAgICAgY29sb3I6ICMyNjI2MjY7XG4gICAgICAgICAgdG9wOiBjYWxjKDUwJSAtIDIwcHgpO1xuICAgICAgICAgIGhlaWdodDogNDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5hcnJvdy1yaWdodDo6YWZ0ZXIge1xuICAgICAgICAgIHdpZHRoOiAwO1xuICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgICBib3JkZXItdG9wOiA0MHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IDQwcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgYm9yZGVyLWxlZnQ6IDQwcHggc29saWQgI2Q5ZDlkOTtcbiAgICAgICAgICBjb250ZW50OiAnICc7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHJpZ2h0OiAtMjBweDtcbiAgICAgICAgICB0b3A6IC0yMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLmRyb3AtYm94LXR5cGUge1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICB3cml0aW5nLW1vZGU6IGhvcml6b250YWwtdGI7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5kcm9wLWJveC10aXRsZSB7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgIHdyaXRpbmctbW9kZTogdmVydGljYWwtbHI7XG4gICAgICAgICAgdGV4dC1vcmllbnRhdGlvbjogdXByaWdodDtcbiAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgIGNvbG9yOiAjYmZiZmJmO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICBtYXgtaGVpZ2h0OiAxNDVweDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMTNweDtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgbWluLXdpZHRoOiAzMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLnByZSAuZHJvcC1ib3gtdGl0bGUge1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICBsZWZ0OiAtMzBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5hcnJvdy1sZWZ0OjphZnRlciB7XG4gICAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICAgIGJvcmRlci10b3A6IDQwcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogNDBweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICBib3JkZXItcmlnaHQ6IDQwcHggc29saWQgI2Q5ZDlkOTtcbiAgICAgICAgICBjb250ZW50OiAnICc7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGxlZnQ6IC0yMHB4O1xuICAgICAgICAgIHRvcDogLTIwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAuZHJvcC1ib3gge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgbWFyZ2luOiAwIDMwcHg7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAuZHJvcC1hcmVhLWdyaWQtcmV2ZXJzZSB7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuICAgICAgICB9XG5cbiAgICAgICAgLmhlYWRlciB7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkOWQ5ZDk7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBtaW4taGVpZ2h0OiA0NXB4O1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5oZWFkZXIgLnRpdGxlIHtcbiAgICAgICAgICBjb2xvcjogIzI4NDQ0ZjtcbiAgICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAuaGVhZGVyIC50aXRsZSAuZmxvdy1wYXRoIHtcbiAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgLmJveCB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAuY29udGFpbmVyIHtcbiAgICAgICAgICBmbGV4LWdyb3c6IDE7XG5cbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgICAvKiBmb3IgRmlyZWZveCAqL1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNvbnRlbnQge1xuICAgICAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgICAgICAgIGZsZXgtZ3JvdzogMTtcblxuICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgICAgLyogZm9yIEZpcmVmb3ggKi9cbiAgICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgfVxuICAgICAgYCxcbiAgICBdO1xuICB9XG59XG5cbndpbmRvdy5jdXN0b21FbGVtZW50cy5kZWZpbmUoJ2d2LWZsb3cnLCBHdkZsb3cpO1xuIl19
|
|
596
|
+
//# sourceMappingURL=gv-flow.js.map
|