@vendure/admin-ui 2.0.0-next.2 → 2.0.0-next.21
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/catalog/catalog.module.d.ts +15 -11
- package/catalog/components/assign-to-channel-dialog/assign-to-channel-dialog.component.d.ts +22 -0
- package/catalog/components/bulk-add-facet-values-dialog/bulk-add-facet-values-dialog.component.d.ts +41 -0
- package/catalog/components/bulk-add-facet-values-dialog/bulk-add-facet-values-dialog.graphql.d.ts +4 -0
- package/catalog/components/collection-contents/collection-contents.component.d.ts +10 -2
- package/catalog/components/collection-detail/collection-detail.component.d.ts +13 -4
- package/catalog/components/collection-list/collection-list-bulk-actions.d.ts +6 -0
- package/catalog/components/collection-list/collection-list.component.d.ts +9 -5
- package/catalog/components/collection-tree/array-to-tree.d.ts +1 -1
- package/catalog/components/collection-tree/collection-tree-node.component.d.ts +14 -6
- package/catalog/components/collection-tree/collection-tree.component.d.ts +4 -1
- package/catalog/components/facet-list/facet-list-bulk-actions.d.ts +5 -0
- package/catalog/components/facet-list/facet-list.component.d.ts +2 -1
- package/catalog/components/generate-product-variants/generate-product-variants.component.d.ts +3 -3
- package/catalog/components/option-value-input/option-value-input.component.d.ts +21 -9
- package/catalog/components/product-detail/product-detail.component.d.ts +1 -1
- package/catalog/components/product-list/product-list-bulk-actions.d.ts +6 -0
- package/catalog/components/product-list/product-list.component.d.ts +4 -2
- package/catalog/components/product-variants-editor/product-variants-editor.component.d.ts +22 -12
- package/catalog/components/product-variants-list/product-variants-list.component.d.ts +1 -0
- package/catalog/public_api.d.ts +6 -1
- package/core/common/component-registry-types.d.ts +1 -1
- package/core/common/generated-types.d.ts +3184 -195
- package/core/common/utilities/bulk-action-utils.d.ts +19 -0
- package/core/common/utilities/configurable-operation-utils.d.ts +7 -2
- package/core/common/utilities/selection-manager.d.ts +30 -0
- package/core/common/version.d.ts +1 -1
- package/core/components/app-shell/app-shell.component.d.ts +1 -0
- package/core/data/definitions/collection-definitions.d.ts +4 -0
- package/core/data/definitions/facet-definitions.d.ts +3 -0
- package/core/data/definitions/order-definitions.d.ts +14 -0
- package/core/data/definitions/product-definitions.d.ts +2 -0
- package/core/data/providers/collection-data.service.d.ts +7 -0
- package/core/data/providers/facet-data.service.d.ts +3 -0
- package/core/data/providers/order-data.service.d.ts +18 -0
- package/core/data/providers/product-data.service.d.ts +2 -0
- package/core/providers/bulk-action-registry/bulk-action-registry.service.d.ts +9 -0
- package/core/providers/bulk-action-registry/bulk-action-types.d.ts +149 -0
- package/core/providers/bulk-action-registry/register-bulk-action.d.ts +53 -0
- package/core/providers/local-storage/local-storage.service.d.ts +1 -0
- package/core/providers/modal/modal.types.d.ts +2 -0
- package/core/providers/nav-builder/nav-builder-types.d.ts +1 -0
- package/core/public_api.d.ts +24 -1
- package/core/shared/components/asset-gallery/asset-gallery.component.d.ts +27 -3
- package/core/shared/components/bulk-action-menu/bulk-action-menu.component.d.ts +32 -0
- package/core/shared/components/configurable-input/configurable-input.component.d.ts +8 -3
- package/core/shared/components/custom-field-control/custom-field-control.component.d.ts +6 -2
- package/core/shared/components/data-table/data-table.component.d.ts +29 -7
- package/core/shared/components/dropdown/dropdown-menu.component.d.ts +2 -1
- package/core/shared/components/facet-value-selector/facet-value-selector.component.d.ts +3 -2
- package/core/shared/components/product-multi-selector-dialog/product-multi-selector-dialog.component.d.ts +38 -0
- package/{catalog → core/shared}/components/product-search-input/product-search-input.component.d.ts +1 -1
- package/core/shared/components/radio-card/radio-card-fieldset.component.d.ts +24 -0
- package/core/shared/components/radio-card/radio-card.component.d.ts +22 -0
- package/core/shared/components/rich-text-editor/prosemirror/context-menu/context-menu.component.d.ts +31 -0
- package/core/shared/components/rich-text-editor/prosemirror/context-menu/context-menu.service.d.ts +34 -0
- package/core/shared/components/rich-text-editor/prosemirror/custom-nodes.d.ts +4 -0
- package/core/shared/components/rich-text-editor/prosemirror/inputrules.d.ts +5 -5
- package/core/shared/components/rich-text-editor/prosemirror/menu/links.d.ts +1 -1
- package/core/shared/components/rich-text-editor/prosemirror/menu/menu-common.d.ts +12 -0
- package/core/shared/components/rich-text-editor/prosemirror/menu/menu-plugin.d.ts +9 -0
- package/core/shared/components/rich-text-editor/prosemirror/menu/sub-menu-with-icon.d.ts +14 -0
- package/core/shared/components/rich-text-editor/prosemirror/plugins/image-plugin.d.ts +7 -0
- package/core/shared/components/rich-text-editor/prosemirror/plugins/link-select-plugin.d.ts +1 -1
- package/core/shared/components/rich-text-editor/prosemirror/plugins/raw-editor-plugin.d.ts +7 -0
- package/core/shared/components/rich-text-editor/prosemirror/plugins/tables-plugin.d.ts +13 -0
- package/core/shared/components/rich-text-editor/prosemirror/prosemirror.service.d.ts +7 -3
- package/core/shared/components/rich-text-editor/prosemirror/types.d.ts +0 -2
- package/core/shared/components/rich-text-editor/raw-html-dialog/raw-html-dialog.component.d.ts +21 -0
- package/core/shared/components/rich-text-editor/rich-text-editor.component.d.ts +6 -2
- package/core/shared/components/select-toggle/select-toggle.component.d.ts +2 -1
- package/core/shared/dynamic-form-inputs/code-editor-form-input/base-code-editor-form-input.component.d.ts +30 -0
- package/core/shared/dynamic-form-inputs/code-editor-form-input/html-editor-form-input.component.d.ts +22 -0
- package/core/shared/dynamic-form-inputs/code-editor-form-input/json-editor-form-input.component.d.ts +5 -17
- package/core/shared/dynamic-form-inputs/combination-mode-form-input/combination-mode-form-input.component.d.ts +28 -0
- package/core/shared/dynamic-form-inputs/facet-value-form-input/facet-value-form-input.component.d.ts +2 -0
- package/core/shared/dynamic-form-inputs/product-multi-selector-form-input/product-multi-selector-form-input.component.d.ts +23 -0
- package/core/shared/dynamic-form-inputs/register-dynamic-input-components.d.ts +5 -1
- package/core/shared/dynamic-form-inputs/relation-form-input/asset/relation-asset-input.component.d.ts +6 -3
- package/core/shared/dynamic-form-inputs/select-form-input/select-form-input.component.d.ts +10 -2
- package/core/shared/pipes/custom-field-description.pipe.d.ts +11 -0
- package/core/shared/pipes/custom-field-label.pipe.d.ts +4 -10
- package/core/shared/shared.module.d.ts +68 -57
- package/customer/components/customer-group-list/customer-group-list.component.d.ts +6 -4
- package/customer/components/customer-group-member-list/customer-group-member-list.component.d.ts +11 -4
- package/esm2020/catalog/catalog.module.mjs +31 -10
- package/esm2020/catalog/components/apply-facet-dialog/apply-facet-dialog.component.mjs +1 -1
- package/esm2020/catalog/components/assets/assets.component.mjs +2 -2
- package/esm2020/catalog/components/assign-products-to-channel-dialog/assign-products-to-channel-dialog.component.mjs +4 -1
- package/esm2020/catalog/components/assign-to-channel-dialog/assign-to-channel-dialog.component.mjs +50 -0
- package/esm2020/catalog/components/bulk-add-facet-values-dialog/bulk-add-facet-values-dialog.component.mjs +84 -0
- package/esm2020/catalog/components/bulk-add-facet-values-dialog/bulk-add-facet-values-dialog.graphql.mjs +69 -0
- package/esm2020/catalog/components/collection-contents/collection-contents.component.mjs +61 -13
- package/esm2020/catalog/components/collection-detail/collection-detail.component.mjs +70 -32
- package/esm2020/catalog/components/collection-list/collection-list-bulk-actions.mjs +143 -0
- package/esm2020/catalog/components/collection-list/collection-list.component.mjs +46 -12
- package/esm2020/catalog/components/collection-tree/array-to-tree.mjs +3 -3
- package/esm2020/catalog/components/collection-tree/collection-tree-node.component.mjs +36 -10
- package/esm2020/catalog/components/collection-tree/collection-tree.component.mjs +9 -4
- package/esm2020/catalog/components/facet-detail/facet-detail.component.mjs +3 -3
- package/esm2020/catalog/components/facet-list/facet-list-bulk-actions.mjs +202 -0
- package/esm2020/catalog/components/facet-list/facet-list.component.mjs +14 -5
- package/esm2020/catalog/components/generate-product-variants/generate-product-variants.component.mjs +12 -4
- package/esm2020/catalog/components/option-value-input/option-value-input.component.mjs +70 -11
- package/esm2020/catalog/components/product-detail/product-detail.component.mjs +36 -24
- package/esm2020/catalog/components/product-list/product-list-bulk-actions.mjs +168 -0
- package/esm2020/catalog/components/product-list/product-list.component.mjs +13 -9
- package/esm2020/catalog/components/product-variants-editor/product-variants-editor.component.mjs +130 -19
- package/esm2020/catalog/components/product-variants-list/product-variants-list.component.mjs +9 -3
- package/esm2020/catalog/providers/routing/collection-resolver.mjs +2 -1
- package/esm2020/catalog/public_api.mjs +7 -2
- package/esm2020/core/app.component.module.mjs +1 -1
- package/esm2020/core/common/base-detail.component.mjs +1 -1
- package/esm2020/core/common/component-registry-types.mjs +1 -1
- package/esm2020/core/common/deactivate-aware.mjs +1 -1
- package/esm2020/core/common/generated-types.mjs +31 -1
- package/esm2020/core/common/introspection-result.mjs +296 -189
- package/esm2020/core/common/utilities/bulk-action-utils.mjs +35 -0
- package/esm2020/core/common/utilities/configurable-operation-utils.mjs +37 -10
- package/esm2020/core/common/utilities/selection-manager.mjs +96 -0
- package/esm2020/core/common/version.mjs +2 -2
- package/esm2020/core/components/app-shell/app-shell.component.mjs +6 -5
- package/esm2020/core/components/breadcrumb/breadcrumb.component.mjs +2 -2
- package/esm2020/core/components/channel-switcher/channel-switcher.component.mjs +1 -1
- package/esm2020/core/components/main-nav/main-nav.component.mjs +3 -3
- package/esm2020/core/components/user-menu/user-menu.component.mjs +1 -1
- package/esm2020/core/core.module.mjs +1 -1
- package/esm2020/core/data/definitions/collection-definitions.mjs +47 -1
- package/esm2020/core/data/definitions/facet-definitions.mjs +31 -1
- package/esm2020/core/data/definitions/order-definitions.mjs +583 -455
- package/esm2020/core/data/definitions/product-definitions.mjs +23 -1
- package/esm2020/core/data/definitions/shared-definitions.mjs +29 -28
- package/esm2020/core/data/providers/collection-data.service.mjs +20 -2
- package/esm2020/core/data/providers/customer-data.service.mjs +6 -1
- package/esm2020/core/data/providers/facet-data.service.mjs +18 -2
- package/esm2020/core/data/providers/order-data.service.mjs +43 -2
- package/esm2020/core/data/providers/product-data.service.mjs +10 -2
- package/esm2020/core/data/providers/promotion-data.service.mjs +1 -1
- package/esm2020/core/data/utils/remove-readonly-custom-fields.mjs +8 -1
- package/esm2020/core/providers/bulk-action-registry/bulk-action-registry.service.mjs +28 -0
- package/esm2020/core/providers/bulk-action-registry/bulk-action-types.mjs +2 -0
- package/esm2020/core/providers/bulk-action-registry/register-bulk-action.mjs +63 -0
- package/esm2020/core/providers/dashboard-widget/dashboard-widget.service.mjs +1 -4
- package/esm2020/core/providers/local-storage/local-storage.service.mjs +1 -1
- package/esm2020/core/providers/modal/modal.service.mjs +2 -1
- package/esm2020/core/providers/modal/modal.types.mjs +1 -1
- package/esm2020/core/providers/nav-builder/nav-builder-types.mjs +1 -1
- package/esm2020/core/public_api.mjs +25 -2
- package/esm2020/core/shared/components/action-bar/action-bar.component.mjs +7 -15
- package/esm2020/core/shared/components/address-form/address-form.component.mjs +3 -3
- package/esm2020/core/shared/components/asset-gallery/asset-gallery.component.mjs +34 -51
- package/esm2020/core/shared/components/asset-preview/asset-preview.component.mjs +4 -4
- package/esm2020/core/shared/components/asset-preview-links/asset-preview-links.component.mjs +1 -1
- package/esm2020/core/shared/components/bulk-action-menu/bulk-action-menu.component.mjs +97 -0
- package/esm2020/core/shared/components/configurable-input/configurable-input.component.mjs +22 -10
- package/esm2020/core/shared/components/custom-field-control/custom-field-control.component.mjs +18 -10
- package/esm2020/core/shared/components/data-table/data-table.component.mjs +64 -14
- package/esm2020/core/shared/components/datetime-picker/datetime-picker.component.mjs +1 -1
- package/esm2020/core/shared/components/dropdown/dropdown-menu.component.mjs +26 -23
- package/esm2020/core/shared/components/dropdown/dropdown-trigger.directive.mjs +1 -1
- package/esm2020/core/shared/components/entity-info/entity-info.component.mjs +1 -1
- package/esm2020/core/shared/components/facet-value-selector/facet-value-selector.component.mjs +13 -6
- package/esm2020/core/shared/components/formatted-address/formatted-address.component.mjs +3 -3
- package/esm2020/core/shared/components/help-tooltip/help-tooltip.component.mjs +2 -2
- package/esm2020/core/shared/components/history-entry-detail/history-entry-detail.component.mjs +1 -1
- package/esm2020/core/shared/components/language-selector/language-selector.component.mjs +3 -3
- package/esm2020/core/shared/components/object-tree/object-tree.component.mjs +1 -1
- package/esm2020/core/shared/components/order-state-label/order-state-label.component.mjs +2 -1
- package/esm2020/core/shared/components/product-multi-selector-dialog/product-multi-selector-dialog.component.mjs +135 -0
- package/esm2020/core/shared/components/product-search-input/product-search-input.component.mjs +108 -0
- package/esm2020/core/shared/components/product-variant-selector/product-variant-selector.component.mjs +2 -2
- package/esm2020/core/shared/components/radio-card/radio-card-fieldset.component.mjs +54 -0
- package/esm2020/core/shared/components/radio-card/radio-card.component.mjs +53 -0
- package/esm2020/core/shared/components/rich-text-editor/external-image-dialog/external-image-dialog.component.mjs +3 -3
- package/esm2020/core/shared/components/rich-text-editor/prosemirror/context-menu/context-menu.component.mjs +136 -0
- package/esm2020/core/shared/components/rich-text-editor/prosemirror/context-menu/context-menu.service.mjs +46 -0
- package/esm2020/core/shared/components/rich-text-editor/prosemirror/custom-nodes.mjs +57 -0
- package/esm2020/core/shared/components/rich-text-editor/prosemirror/menu/links.mjs +4 -4
- package/esm2020/core/shared/components/rich-text-editor/prosemirror/menu/menu-common.mjs +22 -1
- package/esm2020/core/shared/components/rich-text-editor/prosemirror/menu/menu-plugin.mjs +12 -0
- package/esm2020/core/shared/components/rich-text-editor/prosemirror/menu/menu.mjs +73 -18
- package/esm2020/core/shared/components/rich-text-editor/prosemirror/menu/sub-menu-with-icon.mjs +16 -0
- package/esm2020/core/shared/components/rich-text-editor/prosemirror/plugins/image-plugin.mjs +100 -0
- package/esm2020/core/shared/components/rich-text-editor/prosemirror/plugins/raw-editor-plugin.mjs +96 -0
- package/esm2020/core/shared/components/rich-text-editor/prosemirror/plugins/tables-plugin.mjs +166 -0
- package/esm2020/core/shared/components/rich-text-editor/prosemirror/prosemirror.service.mjs +47 -18
- package/esm2020/core/shared/components/rich-text-editor/prosemirror/types.mjs +1 -1
- package/esm2020/core/shared/components/rich-text-editor/raw-html-dialog/raw-html-dialog.component.mjs +59 -0
- package/esm2020/core/shared/components/rich-text-editor/rich-text-editor.component.mjs +22 -10
- package/esm2020/core/shared/components/select-toggle/select-toggle.component.mjs +6 -3
- package/esm2020/core/shared/components/simple-dialog/simple-dialog.component.mjs +3 -3
- package/esm2020/core/shared/components/ui-extension-point/ui-extension-point.component.mjs +1 -1
- package/esm2020/core/shared/dynamic-form-inputs/code-editor-form-input/base-code-editor-form-input.component.mjs +57 -0
- package/esm2020/core/shared/dynamic-form-inputs/code-editor-form-input/html-editor-form-input.component.mjs +63 -0
- package/esm2020/core/shared/dynamic-form-inputs/code-editor-form-input/json-editor-form-input.component.mjs +48 -83
- package/esm2020/core/shared/dynamic-form-inputs/combination-mode-form-input/combination-mode-form-input.component.mjs +45 -0
- package/esm2020/core/shared/dynamic-form-inputs/dynamic-form-input/dynamic-form-input.component.mjs +3 -3
- package/esm2020/core/shared/dynamic-form-inputs/facet-value-form-input/facet-value-form-input.component.mjs +12 -3
- package/esm2020/core/shared/dynamic-form-inputs/product-multi-selector-form-input/product-multi-selector-form-input.component.mjs +48 -0
- package/esm2020/core/shared/dynamic-form-inputs/register-dynamic-input-components.mjs +7 -1
- package/esm2020/core/shared/dynamic-form-inputs/relation-form-input/asset/relation-asset-input.component.mjs +11 -9
- package/esm2020/core/shared/dynamic-form-inputs/relation-form-input/generic/relation-generic-input.component.mjs +1 -1
- package/esm2020/core/shared/dynamic-form-inputs/select-form-input/select-form-input.component.mjs +21 -11
- package/esm2020/core/shared/pipes/custom-field-description.pipe.mjs +30 -0
- package/esm2020/core/shared/pipes/custom-field-label.pipe.mjs +7 -19
- package/esm2020/core/shared/pipes/locale-currency.pipe.mjs +10 -2
- package/esm2020/core/shared/pipes/state-i18n-token.pipe.mjs +2 -1
- package/esm2020/core/shared/shared.module.mjs +49 -5
- package/esm2020/customer/components/address-card/address-card.component.mjs +1 -1
- package/esm2020/customer/components/customer-detail/customer-detail.component.mjs +1 -1
- package/esm2020/customer/components/customer-group-list/customer-group-list.component.mjs +33 -18
- package/esm2020/customer/components/customer-group-member-list/customer-group-member-list.component.mjs +3 -3
- package/esm2020/customer/components/customer-history/customer-history.component.mjs +1 -1
- package/esm2020/customer/components/customer-list/customer-list.component.mjs +3 -3
- package/esm2020/dashboard/components/dashboard/dashboard.component.mjs +2 -2
- package/esm2020/dashboard/components/dashboard-widget/dashboard-widget.component.mjs +2 -2
- package/esm2020/dashboard/dashboard.module.mjs +6 -2
- package/esm2020/dashboard/widgets/latest-orders-widget/latest-orders-widget.component.mjs +1 -1
- package/esm2020/dashboard/widgets/order-summary-widget/order-summary-widget.component.mjs +2 -2
- package/esm2020/login/components/login/login.component.mjs +3 -3
- package/esm2020/marketing/components/promotion-detail/promotion-detail.component.mjs +3 -3
- package/esm2020/marketing/components/promotion-list/promotion-list.component.mjs +1 -1
- package/esm2020/order/components/cancel-order-dialog/cancel-order-dialog.component.mjs +1 -1
- package/esm2020/order/components/coupon-code-selector/coupon-code-selector.component.mjs +42 -0
- package/esm2020/order/components/draft-order-detail/draft-order-detail.component.mjs +187 -0
- package/esm2020/order/components/draft-order-variant-selector/draft-order-variant-selector.component.mjs +59 -0
- package/esm2020/order/components/fulfill-order-dialog/fulfill-order-dialog.component.mjs +7 -3
- package/esm2020/order/components/fulfillment-card/fulfillment-card.component.mjs +1 -1
- package/esm2020/order/components/fulfillment-detail/fulfillment-detail.component.mjs +8 -17
- package/esm2020/order/components/line-fulfillment/line-fulfillment.component.mjs +8 -22
- package/esm2020/order/components/order-custom-fields-card/order-custom-fields-card.component.mjs +30 -6
- package/esm2020/order/components/order-detail/order-detail.component.mjs +80 -40
- package/esm2020/order/components/order-editor/order-editor.component.mjs +15 -14
- package/esm2020/order/components/order-edits-preview-dialog/order-edits-preview-dialog.component.mjs +1 -1
- package/esm2020/order/components/order-history/order-history.component.mjs +1 -1
- package/esm2020/order/components/order-list/order-list.component.mjs +40 -17
- package/esm2020/order/components/order-payment-card/order-payment-card.component.mjs +3 -3
- package/esm2020/order/components/order-table/order-table.component.mjs +29 -6
- package/esm2020/order/components/refund-order-dialog/refund-order-dialog.component.mjs +2 -2
- package/esm2020/order/components/select-address-dialog/select-address-dialog.component.mjs +89 -0
- package/esm2020/order/components/select-address-dialog/select-address-dialog.graphql.mjs +14 -0
- package/esm2020/order/components/select-customer-dialog/select-customer-dialog.component.mjs +59 -0
- package/esm2020/order/components/select-shipping-method-dialog/select-shipping-method-dialog.component.mjs +31 -0
- package/esm2020/order/order.module.mjs +20 -2
- package/esm2020/order/order.routes.mjs +23 -4
- package/esm2020/order/providers/routing/order-resolver.mjs +29 -11
- package/esm2020/order/providers/routing/order.guard.mjs +37 -0
- package/esm2020/order/public_api.mjs +9 -1
- package/esm2020/settings/components/administrator-list/administrator-list.component.mjs +1 -1
- package/esm2020/settings/components/channel-list/channel-list.component.mjs +1 -1
- package/esm2020/settings/components/country-list/country-list.component.mjs +3 -3
- package/esm2020/settings/components/payment-method-detail/payment-method-detail.component.mjs +1 -1
- package/esm2020/settings/components/payment-method-list/payment-method-list.component.mjs +1 -1
- package/esm2020/settings/components/permission-grid/permission-grid.component.mjs +1 -1
- package/esm2020/settings/components/profile/profile.component.mjs +3 -3
- package/esm2020/settings/components/role-list/role-list.component.mjs +1 -1
- package/esm2020/settings/components/shipping-method-detail/shipping-method-detail.component.mjs +4 -2
- package/esm2020/settings/components/shipping-method-list/shipping-method-list.component.mjs +1 -1
- package/esm2020/settings/components/tax-category-list/tax-category-list.component.mjs +1 -1
- package/esm2020/settings/components/tax-rate-list/tax-rate-list.component.mjs +1 -1
- package/esm2020/settings/components/zone-detail-dialog/zone-detail-dialog.component.mjs +2 -2
- package/esm2020/settings/components/zone-list/zone-list.component.mjs +3 -3
- package/esm2020/settings/components/zone-member-list/zone-member-list.component.mjs +3 -3
- package/esm2020/system/components/health-check/health-check.component.mjs +2 -2
- package/esm2020/system/components/job-list/job-list.component.mjs +1 -1
- package/fesm2015/vendure-admin-ui-catalog.mjs +1206 -228
- package/fesm2015/vendure-admin-ui-catalog.mjs.map +1 -1
- package/fesm2015/vendure-admin-ui-core.mjs +9451 -7332
- package/fesm2015/vendure-admin-ui-core.mjs.map +1 -1
- package/fesm2015/vendure-admin-ui-customer.mjs +36 -23
- package/fesm2015/vendure-admin-ui-customer.mjs.map +1 -1
- package/fesm2015/vendure-admin-ui-dashboard.mjs +11 -7
- package/fesm2015/vendure-admin-ui-dashboard.mjs.map +1 -1
- package/fesm2015/vendure-admin-ui-login.mjs +2 -2
- package/fesm2015/vendure-admin-ui-login.mjs.map +1 -1
- package/fesm2015/vendure-admin-ui-marketing.mjs +3 -3
- package/fesm2015/vendure-admin-ui-marketing.mjs.map +1 -1
- package/fesm2015/vendure-admin-ui-order.mjs +1184 -599
- package/fesm2015/vendure-admin-ui-order.mjs.map +1 -1
- package/fesm2015/vendure-admin-ui-settings.mjs +21 -19
- package/fesm2015/vendure-admin-ui-settings.mjs.map +1 -1
- package/fesm2015/vendure-admin-ui-system.mjs +3 -3
- package/fesm2020/vendure-admin-ui-catalog.mjs +1190 -230
- package/fesm2020/vendure-admin-ui-catalog.mjs.map +1 -1
- package/fesm2020/vendure-admin-ui-core.mjs +9539 -7437
- package/fesm2020/vendure-admin-ui-core.mjs.map +1 -1
- package/fesm2020/vendure-admin-ui-customer.mjs +36 -23
- package/fesm2020/vendure-admin-ui-customer.mjs.map +1 -1
- package/fesm2020/vendure-admin-ui-dashboard.mjs +11 -7
- package/fesm2020/vendure-admin-ui-dashboard.mjs.map +1 -1
- package/fesm2020/vendure-admin-ui-login.mjs +2 -2
- package/fesm2020/vendure-admin-ui-login.mjs.map +1 -1
- package/fesm2020/vendure-admin-ui-marketing.mjs +3 -3
- package/fesm2020/vendure-admin-ui-marketing.mjs.map +1 -1
- package/fesm2020/vendure-admin-ui-order.mjs +1194 -614
- package/fesm2020/vendure-admin-ui-order.mjs.map +1 -1
- package/fesm2020/vendure-admin-ui-settings.mjs +21 -19
- package/fesm2020/vendure-admin-ui-settings.mjs.map +1 -1
- package/fesm2020/vendure-admin-ui-system.mjs +3 -3
- package/order/components/coupon-code-selector/coupon-code-selector.component.d.ts +21 -0
- package/order/components/draft-order-detail/draft-order-detail.component.d.ts +52 -0
- package/order/components/draft-order-variant-selector/draft-order-variant-selector.component.d.ts +24 -0
- package/order/components/order-custom-fields-card/order-custom-fields-card.component.d.ts +4 -2
- package/order/components/order-editor/order-editor.component.d.ts +1 -6
- package/order/components/order-list/order-list.component.d.ts +2 -0
- package/order/components/order-table/order-table.component.d.ts +12 -2
- package/order/components/select-address-dialog/select-address-dialog.component.d.ts +27 -0
- package/order/components/select-address-dialog/select-address-dialog.graphql.d.ts +1 -0
- package/order/components/select-customer-dialog/select-customer-dialog.component.d.ts +25 -0
- package/order/components/select-shipping-method-dialog/select-shipping-method-dialog.component.d.ts +19 -0
- package/order/order.module.d.ts +9 -3
- package/order/providers/routing/order-resolver.d.ts +8 -3
- package/order/providers/routing/order.guard.d.ts +12 -0
- package/order/public_api.d.ts +8 -0
- package/package.json +13 -12
- package/settings/components/zone-member-list/zone-member-list.component.d.ts +3 -1
- package/static/i18n-messages/cs.json +50 -3
- package/static/i18n-messages/de.json +53 -3
- package/static/i18n-messages/en.json +55 -8
- package/static/i18n-messages/es.json +50 -3
- package/static/i18n-messages/fr.json +50 -3
- package/static/i18n-messages/it.json +50 -3
- package/static/i18n-messages/pl.json +50 -3
- package/static/i18n-messages/pt_BR.json +50 -3
- package/static/i18n-messages/pt_PT.json +50 -3
- package/static/i18n-messages/ru.json +50 -3
- package/static/i18n-messages/uk.json +50 -3
- package/static/i18n-messages/zh_Hans.json +50 -3
- package/static/i18n-messages/zh_Hant.json +50 -3
- package/static/styles/_variables.scss +4 -0
- package/static/styles/global/_forms.scss +8 -7
- package/static/styles/global/_overrides.scss +11 -1
- package/static/styles/global/_sass-overrides.scss +3 -0
- package/static/styles/global/_utilities.scss +14 -0
- package/static/styles/styles.scss +1 -0
- package/static/styles/theme/default.scss +13 -1
- package/static/styles/ui-extension-theme.scss +1 -0
- package/static/theme.min.css +1 -1
- package/core/shared/components/rich-text-editor/prosemirror/menu/images.d.ts +0 -4
- package/esm2020/catalog/components/product-search-input/product-search-input.component.mjs +0 -107
- package/esm2020/core/shared/components/rich-text-editor/prosemirror/menu/images.mjs +0 -36
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { notNullOrUndefined } from '@vendure/common/lib/shared-utils';
|
|
1
2
|
export function markActive(state, type) {
|
|
2
3
|
const { from, $from, to, empty } = state.selection;
|
|
3
4
|
if (empty) {
|
|
@@ -17,4 +18,24 @@ export function canInsert(state, nodeType) {
|
|
|
17
18
|
}
|
|
18
19
|
return false;
|
|
19
20
|
}
|
|
20
|
-
|
|
21
|
+
export function renderClarityIcon(options) {
|
|
22
|
+
return (view) => {
|
|
23
|
+
const icon = document.createElement('clr-icon');
|
|
24
|
+
icon.setAttribute('shape', options.shape);
|
|
25
|
+
icon.setAttribute('size', (options.size ?? IconSize.Small).toString());
|
|
26
|
+
const labelEl = document.createElement('span');
|
|
27
|
+
labelEl.textContent = options.label ?? '';
|
|
28
|
+
return wrapInMenuItemWithIcon(icon, options.label ? labelEl : undefined);
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
export function wrapInMenuItemWithIcon(...elements) {
|
|
32
|
+
const wrapperEl = document.createElement('span');
|
|
33
|
+
wrapperEl.classList.add('menu-item-with-icon');
|
|
34
|
+
wrapperEl.append(...elements.filter(notNullOrUndefined));
|
|
35
|
+
return wrapperEl;
|
|
36
|
+
}
|
|
37
|
+
export const IconSize = {
|
|
38
|
+
Large: 22,
|
|
39
|
+
Small: 16,
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1jb21tb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL3JpY2gtdGV4dC1lZGl0b3IvcHJvc2VtaXJyb3IvbWVudS9tZW51LWNvbW1vbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUt0RSxNQUFNLFVBQVUsVUFBVSxDQUFDLEtBQUssRUFBRSxJQUFJO0lBQ2xDLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDO0lBQ25ELElBQUksS0FBSyxFQUFFO1FBQ1AsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxXQUFXLElBQUksS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7S0FDM0Q7U0FBTTtRQUNILE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztLQUNqRDtBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUyxDQUFDLEtBQWtCLEVBQUUsUUFBa0I7SUFDNUQsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7SUFDcEMsS0FBSyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDbkMsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3QixJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFDLEVBQUU7WUFDdEQsT0FBTyxJQUFJLENBQUM7U0FDZjtLQUNKO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQztBQVFELE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxPQUEyQjtJQUN6RCxPQUFPLENBQUMsSUFBZ0IsRUFBRSxFQUFFO1FBQ3hCLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUN2RSxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9DLE9BQU8sQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDMUMsT0FBTyxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM3RSxDQUFDLENBQUM7QUFDTixDQUFDO0FBRUQsTUFBTSxVQUFVLHNCQUFzQixDQUFDLEdBQUcsUUFBK0M7SUFDckYsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqRCxTQUFTLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQy9DLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQztJQUN6RCxPQUFPLFNBQVMsQ0FBQztBQUNyQixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHO0lBQ3BCLEtBQUssRUFBRSxFQUFFO0lBQ1QsS0FBSyxFQUFFLEVBQUU7Q0FDWixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbm90TnVsbE9yVW5kZWZpbmVkIH0gZnJvbSAnQHZlbmR1cmUvY29tbW9uL2xpYi9zaGFyZWQtdXRpbHMnO1xyXG5pbXBvcnQgeyBOb2RlVHlwZSB9IGZyb20gJ3Byb3NlbWlycm9yLW1vZGVsJztcclxuaW1wb3J0IHsgRWRpdG9yU3RhdGUgfSBmcm9tICdwcm9zZW1pcnJvci1zdGF0ZSc7XHJcbmltcG9ydCB7IEVkaXRvclZpZXcgfSBmcm9tICdwcm9zZW1pcnJvci12aWV3JztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBtYXJrQWN0aXZlKHN0YXRlLCB0eXBlKSB7XHJcbiAgICBjb25zdCB7IGZyb20sICRmcm9tLCB0bywgZW1wdHkgfSA9IHN0YXRlLnNlbGVjdGlvbjtcclxuICAgIGlmIChlbXB0eSkge1xyXG4gICAgICAgIHJldHVybiB0eXBlLmlzSW5TZXQoc3RhdGUuc3RvcmVkTWFya3MgfHwgJGZyb20ubWFya3MoKSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBzdGF0ZS5kb2MucmFuZ2VIYXNNYXJrKGZyb20sIHRvLCB0eXBlKTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNhbkluc2VydChzdGF0ZTogRWRpdG9yU3RhdGUsIG5vZGVUeXBlOiBOb2RlVHlwZSk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgJGZyb20gPSBzdGF0ZS5zZWxlY3Rpb24uJGZyb207XHJcbiAgICBmb3IgKGxldCBkID0gJGZyb20uZGVwdGg7IGQgPj0gMDsgZC0tKSB7XHJcbiAgICAgICAgY29uc3QgaW5kZXggPSAkZnJvbS5pbmRleChkKTtcclxuICAgICAgICBpZiAoJGZyb20ubm9kZShkKS5jYW5SZXBsYWNlV2l0aChpbmRleCwgaW5kZXgsIG5vZGVUeXBlKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2xhcml0eUljb25PcHRpb25zIHtcclxuICAgIHNoYXBlOiBzdHJpbmc7XHJcbiAgICBzaXplPzogbnVtYmVyO1xyXG4gICAgbGFiZWw/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiByZW5kZXJDbGFyaXR5SWNvbihvcHRpb25zOiBDbGFyaXR5SWNvbk9wdGlvbnMpOiAodmlldzogRWRpdG9yVmlldykgPT4gSFRNTEVsZW1lbnQge1xyXG4gICAgcmV0dXJuICh2aWV3OiBFZGl0b3JWaWV3KSA9PiB7XHJcbiAgICAgICAgY29uc3QgaWNvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Nsci1pY29uJyk7XHJcbiAgICAgICAgaWNvbi5zZXRBdHRyaWJ1dGUoJ3NoYXBlJywgb3B0aW9ucy5zaGFwZSk7XHJcbiAgICAgICAgaWNvbi5zZXRBdHRyaWJ1dGUoJ3NpemUnLCAob3B0aW9ucy5zaXplID8/IEljb25TaXplLlNtYWxsKS50b1N0cmluZygpKTtcclxuICAgICAgICBjb25zdCBsYWJlbEVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xyXG4gICAgICAgIGxhYmVsRWwudGV4dENvbnRlbnQgPSBvcHRpb25zLmxhYmVsID8/ICcnO1xyXG4gICAgICAgIHJldHVybiB3cmFwSW5NZW51SXRlbVdpdGhJY29uKGljb24sIG9wdGlvbnMubGFiZWwgPyBsYWJlbEVsIDogdW5kZWZpbmVkKTtcclxuICAgIH07XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiB3cmFwSW5NZW51SXRlbVdpdGhJY29uKC4uLmVsZW1lbnRzOiBBcnJheTxIVE1MRWxlbWVudCB8IHVuZGVmaW5lZCB8IG51bGw+KSB7XHJcbiAgICBjb25zdCB3cmFwcGVyRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XHJcbiAgICB3cmFwcGVyRWwuY2xhc3NMaXN0LmFkZCgnbWVudS1pdGVtLXdpdGgtaWNvbicpO1xyXG4gICAgd3JhcHBlckVsLmFwcGVuZCguLi5lbGVtZW50cy5maWx0ZXIobm90TnVsbE9yVW5kZWZpbmVkKSk7XHJcbiAgICByZXR1cm4gd3JhcHBlckVsO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgSWNvblNpemUgPSB7XHJcbiAgICBMYXJnZTogMjIsXHJcbiAgICBTbWFsbDogMTYsXHJcbn07XHJcbiJdfQ==
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { menuBar } from 'prosemirror-menu';
|
|
2
|
+
import { ModalService } from '../../../../../providers/modal/modal.service';
|
|
3
|
+
import { buildMenuItems } from './menu';
|
|
4
|
+
export function customMenuPlugin(options) {
|
|
5
|
+
const modalService = options.injector.get(ModalService);
|
|
6
|
+
const pmMenuBarPlugin = menuBar({
|
|
7
|
+
floating: options.floatingMenu !== false,
|
|
8
|
+
content: buildMenuItems(options.schema, modalService).fullMenu,
|
|
9
|
+
});
|
|
10
|
+
return pmMenuBarPlugin;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL3JpY2gtdGV4dC1lZGl0b3IvcHJvc2VtaXJyb3IvbWVudS9tZW51LXBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFJM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBRTVFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFReEMsTUFBTSxVQUFVLGdCQUFnQixDQUFDLE9BQWdDO0lBQzdELE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3hELE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQztRQUM1QixRQUFRLEVBQUUsT0FBTyxDQUFDLFlBQVksS0FBSyxLQUFLO1FBQ3hDLE9BQU8sRUFBRSxjQUFjLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsQ0FBQyxRQUFRO0tBQ2pFLENBQUMsQ0FBQztJQUNILE9BQU8sZUFBZSxDQUFDO0FBQzNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBtZW51QmFyIH0gZnJvbSAncHJvc2VtaXJyb3ItbWVudSc7XHJcbmltcG9ydCB7IFNjaGVtYSB9IGZyb20gJ3Byb3NlbWlycm9yLW1vZGVsJztcclxuaW1wb3J0IHsgRWRpdG9yU3RhdGUsIFBsdWdpbiB9IGZyb20gJ3Byb3NlbWlycm9yLXN0YXRlJztcclxuXHJcbmltcG9ydCB7IE1vZGFsU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3Byb3ZpZGVycy9tb2RhbC9tb2RhbC5zZXJ2aWNlJztcclxuXHJcbmltcG9ydCB7IGJ1aWxkTWVudUl0ZW1zIH0gZnJvbSAnLi9tZW51JztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tTWVudVBsdWdpbk9wdGlvbnMge1xyXG4gICAgZmxvYXRpbmdNZW51PzogYm9vbGVhbjtcclxuICAgIHNjaGVtYTogU2NoZW1hO1xyXG4gICAgaW5qZWN0b3I6IEluamVjdG9yO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3VzdG9tTWVudVBsdWdpbihvcHRpb25zOiBDdXN0b21NZW51UGx1Z2luT3B0aW9ucykge1xyXG4gICAgY29uc3QgbW9kYWxTZXJ2aWNlID0gb3B0aW9ucy5pbmplY3Rvci5nZXQoTW9kYWxTZXJ2aWNlKTtcclxuICAgIGNvbnN0IHBtTWVudUJhclBsdWdpbiA9IG1lbnVCYXIoe1xyXG4gICAgICAgIGZsb2F0aW5nOiBvcHRpb25zLmZsb2F0aW5nTWVudSAhPT0gZmFsc2UsXHJcbiAgICAgICAgY29udGVudDogYnVpbGRNZW51SXRlbXMob3B0aW9ucy5zY2hlbWEsIG1vZGFsU2VydmljZSkuZnVsbE1lbnUsXHJcbiAgICB9KTtcclxuICAgIHJldHVybiBwbU1lbnVCYXJQbHVnaW47XHJcbn1cclxuIl19
|
|
@@ -1,14 +1,19 @@
|
|
|
1
1
|
import { toggleMark } from 'prosemirror-commands';
|
|
2
|
-
import {
|
|
2
|
+
import { redo, undo } from 'prosemirror-history';
|
|
3
|
+
import { blockTypeItem, Dropdown, icons, joinUpItem, liftItem, MenuItem, selectParentNodeItem, wrapItem, } from 'prosemirror-menu';
|
|
3
4
|
import { wrapInList } from 'prosemirror-schema-list';
|
|
4
|
-
import { insertImageItem } from '
|
|
5
|
+
import { insertImageItem } from '../plugins/image-plugin';
|
|
6
|
+
import { addTable } from '../plugins/tables-plugin';
|
|
5
7
|
import { linkItem } from './links';
|
|
6
|
-
import { canInsert, markActive } from './menu-common';
|
|
7
|
-
|
|
8
|
+
import { canInsert, IconSize, markActive, renderClarityIcon, wrapInMenuItemWithIcon } from './menu-common';
|
|
9
|
+
import { SubMenuWithIcon } from './sub-menu-with-icon';
|
|
8
10
|
function cmdItem(cmd, options) {
|
|
9
11
|
const passedOptions = {
|
|
10
12
|
label: options.title,
|
|
11
13
|
run: cmd,
|
|
14
|
+
render: options.iconShape
|
|
15
|
+
? renderClarityIcon({ shape: options.iconShape, size: IconSize.Large })
|
|
16
|
+
: undefined,
|
|
12
17
|
};
|
|
13
18
|
// tslint:disable-next-line:forin
|
|
14
19
|
for (const prop in options) {
|
|
@@ -98,10 +103,16 @@ export function buildMenuItems(schema, modalService) {
|
|
|
98
103
|
let type;
|
|
99
104
|
// tslint:disable:no-conditional-assignment
|
|
100
105
|
if ((type = schema.marks.strong)) {
|
|
101
|
-
r.toggleStrong = markItem(type, {
|
|
106
|
+
r.toggleStrong = markItem(type, {
|
|
107
|
+
title: 'Toggle strong style',
|
|
108
|
+
iconShape: 'bold',
|
|
109
|
+
});
|
|
102
110
|
}
|
|
103
111
|
if ((type = schema.marks.em)) {
|
|
104
|
-
r.toggleEm = markItem(type, {
|
|
112
|
+
r.toggleEm = markItem(type, {
|
|
113
|
+
title: 'Toggle emphasis',
|
|
114
|
+
iconShape: 'italic',
|
|
115
|
+
});
|
|
105
116
|
}
|
|
106
117
|
if ((type = schema.marks.code)) {
|
|
107
118
|
r.toggleCode = markItem(type, { title: 'Toggle code font', icon: icons.code });
|
|
@@ -115,31 +126,31 @@ export function buildMenuItems(schema, modalService) {
|
|
|
115
126
|
if ((type = schema.nodes.bullet_list)) {
|
|
116
127
|
r.wrapBulletList = wrapListItem(type, {
|
|
117
128
|
title: 'Wrap in bullet list',
|
|
118
|
-
|
|
129
|
+
iconShape: 'bullet-list',
|
|
119
130
|
});
|
|
120
131
|
}
|
|
121
132
|
if ((type = schema.nodes.ordered_list)) {
|
|
122
133
|
r.wrapOrderedList = wrapListItem(type, {
|
|
123
134
|
title: 'Wrap in ordered list',
|
|
124
|
-
|
|
135
|
+
iconShape: 'number-list',
|
|
125
136
|
});
|
|
126
137
|
}
|
|
127
138
|
if ((type = schema.nodes.blockquote)) {
|
|
128
139
|
r.wrapBlockQuote = wrapItem(type, {
|
|
129
140
|
title: 'Wrap in block quote',
|
|
130
|
-
|
|
141
|
+
render: renderClarityIcon({ shape: 'block-quote', size: IconSize.Large }),
|
|
131
142
|
});
|
|
132
143
|
}
|
|
133
144
|
if ((type = schema.nodes.paragraph)) {
|
|
134
145
|
r.makeParagraph = blockTypeItem(type, {
|
|
135
146
|
title: 'Change to paragraph',
|
|
136
|
-
label: 'Plain',
|
|
147
|
+
render: renderClarityIcon({ shape: 'text', label: 'Plain' }),
|
|
137
148
|
});
|
|
138
149
|
}
|
|
139
150
|
if ((type = schema.nodes.code_block)) {
|
|
140
151
|
r.makeCodeBlock = blockTypeItem(type, {
|
|
141
152
|
title: 'Change to code block',
|
|
142
|
-
label: 'Code',
|
|
153
|
+
render: renderClarityIcon({ shape: 'code', label: 'Code' }),
|
|
143
154
|
});
|
|
144
155
|
}
|
|
145
156
|
if ((type = schema.nodes.heading)) {
|
|
@@ -155,9 +166,13 @@ export function buildMenuItems(schema, modalService) {
|
|
|
155
166
|
const hr = type;
|
|
156
167
|
r.insertHorizontalRule = new MenuItem({
|
|
157
168
|
title: 'Insert horizontal rule',
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
169
|
+
render: view => {
|
|
170
|
+
const icon = document.createElement('div');
|
|
171
|
+
icon.classList.add('custom-icon', 'hr-icon');
|
|
172
|
+
const labelEl = document.createElement('span');
|
|
173
|
+
labelEl.textContent = 'Horizontal rule';
|
|
174
|
+
return wrapInMenuItemWithIcon(icon, labelEl);
|
|
175
|
+
},
|
|
161
176
|
enable(state) {
|
|
162
177
|
return canInsert(state, hr);
|
|
163
178
|
},
|
|
@@ -167,12 +182,34 @@ export function buildMenuItems(schema, modalService) {
|
|
|
167
182
|
});
|
|
168
183
|
}
|
|
169
184
|
const cut = (arr) => arr.filter(x => x);
|
|
170
|
-
r.insertMenu = new Dropdown(cut([
|
|
185
|
+
r.insertMenu = new Dropdown(cut([
|
|
186
|
+
r.insertImage,
|
|
187
|
+
r.insertHorizontalRule,
|
|
188
|
+
new MenuItem({
|
|
189
|
+
run: (state, dispatch) => {
|
|
190
|
+
addTable(state, dispatch, {
|
|
191
|
+
rowsCount: 2,
|
|
192
|
+
colsCount: 2,
|
|
193
|
+
withHeaderRow: true,
|
|
194
|
+
cellContent: '',
|
|
195
|
+
});
|
|
196
|
+
},
|
|
197
|
+
render: renderClarityIcon({ shape: 'table', label: 'Table' }),
|
|
198
|
+
}),
|
|
199
|
+
]), { label: 'Insert' });
|
|
171
200
|
r.typeMenu = new Dropdown(cut([
|
|
172
201
|
r.makeParagraph,
|
|
173
202
|
r.makeCodeBlock,
|
|
174
203
|
r.makeHead1 &&
|
|
175
|
-
new
|
|
204
|
+
new SubMenuWithIcon(cut([r.makeHead1, r.makeHead2, r.makeHead3, r.makeHead4, r.makeHead5, r.makeHead6]), {
|
|
205
|
+
label: 'Heading',
|
|
206
|
+
icon: () => {
|
|
207
|
+
const icon = document.createElement('div');
|
|
208
|
+
icon.textContent = 'H';
|
|
209
|
+
icon.classList.add('custom-icon', 'h-icon');
|
|
210
|
+
return icon;
|
|
211
|
+
},
|
|
212
|
+
}),
|
|
176
213
|
]), { label: 'Type...' });
|
|
177
214
|
const inlineMenu = cut([r.toggleStrong, r.toggleEm, r.toggleLink]);
|
|
178
215
|
r.inlineMenu = [inlineMenu];
|
|
@@ -186,7 +223,25 @@ export function buildMenuItems(schema, modalService) {
|
|
|
186
223
|
selectParentNodeItem,
|
|
187
224
|
]),
|
|
188
225
|
];
|
|
189
|
-
|
|
226
|
+
const undoRedo = [
|
|
227
|
+
new MenuItem({
|
|
228
|
+
title: 'Undo last change',
|
|
229
|
+
run: undo,
|
|
230
|
+
enable(state) {
|
|
231
|
+
return undo(state);
|
|
232
|
+
},
|
|
233
|
+
render: renderClarityIcon({ shape: 'undo', size: IconSize.Large }),
|
|
234
|
+
}),
|
|
235
|
+
new MenuItem({
|
|
236
|
+
title: 'Redo last undone change',
|
|
237
|
+
run: redo,
|
|
238
|
+
enable(state) {
|
|
239
|
+
return redo(state);
|
|
240
|
+
},
|
|
241
|
+
render: renderClarityIcon({ shape: 'redo', size: IconSize.Large }),
|
|
242
|
+
}),
|
|
243
|
+
];
|
|
244
|
+
r.fullMenu = [inlineMenu].concat([[r.insertMenu, r.typeMenu]], [undoRedo], r.blockMenu);
|
|
190
245
|
return r;
|
|
191
246
|
}
|
|
192
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvc2hhcmVkL2NvbXBvbmVudHMvcmljaC10ZXh0LWVkaXRvci9wcm9zZW1pcnJvci9tZW51L21lbnUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFDSCxhQUFhLEVBQ2IsUUFBUSxFQUNSLGVBQWUsRUFDZixLQUFLLEVBQ0wsVUFBVSxFQUNWLFFBQVEsRUFDUixRQUFRLEVBQ1IsUUFBUSxFQUNSLG9CQUFvQixFQUNwQixRQUFRLEVBQ1IsUUFBUSxHQUNYLE1BQU0sa0JBQWtCLENBQUM7QUFFMUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBS3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNuQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV0RCw0Q0FBNEM7QUFFNUMsU0FBUyxPQUFPLENBQUMsR0FBNkIsRUFBRSxPQUE0QjtJQUN4RSxNQUFNLGFBQWEsR0FBRztRQUNsQixLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUs7UUFDcEIsR0FBRyxFQUFFLEdBQUc7S0FDWCxDQUFDO0lBQ0YsaUNBQWlDO0lBQ2pDLEtBQUssTUFBTSxJQUFJLElBQUksT0FBTyxFQUFFO1FBQ3hCLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDdkM7SUFDRCxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFO1FBQ2pFLGFB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dkIsQ0FBQztJQUVGLE1BQU0sVUFBVSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUNuRSxDQUFDLENBQUMsVUFBVSxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDNUIsQ0FBQyxDQUFDLFNBQVMsR0FBRztRQUNWLEdBQUcsQ0FBQztZQUNBLENBQUMsQ0FBQyxjQUFjO1lBQ2hCLENBQUMsQ0FBQyxlQUFlO1lBQ2pCLENBQUMsQ0FBQyxjQUFjO1lBQ2hCLFVBQVU7WUFDVixRQUFRO1lBQ1Isb0JBQW9CO1NBQ3ZCLENBQUM7S0FDTCxDQUFDO0lBQ0YsQ0FBQyxDQUFDLFFBQVEsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRXBHLE9BQU8sQ0FBQyxDQUFDO0FBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHRvZ2dsZU1hcmsgfSBmcm9tICdwcm9zZW1pcnJvci1jb21tYW5kcyc7XHJcbmltcG9ydCB7XHJcbiAgICBibG9ja1R5cGVJdGVtLFxyXG4gICAgRHJvcGRvd24sXHJcbiAgICBEcm9wZG93blN1Ym1lbnUsXHJcbiAgICBpY29ucyxcclxuICAgIGpvaW5VcEl0ZW0sXHJcbiAgICBsaWZ0SXRlbSxcclxuICAgIE1lbnVJdGVtLFxyXG4gICAgcmVkb0l0ZW0sXHJcbiAgICBzZWxlY3RQYXJlbnROb2RlSXRlbSxcclxuICAgIHVuZG9JdGVtLFxyXG4gICAgd3JhcEl0ZW0sXHJcbn0gZnJvbSAncHJvc2VtaXJyb3ItbWVudSc7XHJcbmltcG9ydCB7IE1hcmtUeXBlLCBOb2RlVHlwZSwgU2NoZW1hIH0gZnJvbSAncHJvc2VtaXJyb3ItbW9kZWwnO1xyXG5pbXBvcnQgeyB3cmFwSW5MaXN0IH0gZnJvbSAncHJvc2VtaXJyb3Itc2NoZW1hLWxpc3QnO1xyXG5pbXBvcnQgeyBFZGl0b3JTdGF0ZSB9IGZyb20gJ3Byb3NlbWlycm9yLXN0YXRlJztcclxuXHJcbmltcG9ydCB7IE1vZGFsU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3Byb3ZpZGVycy9tb2RhbC9tb2RhbC5zZXJ2aWNlJztcclxuXHJcbmltcG9ydCB7IGluc2VydEltYWdlSXRlbSB9IGZyb20gJy4vaW1hZ2VzJztcclxuaW1wb3J0IHsgbGlua0l0ZW0gfSBmcm9tICcuL2xpbmtzJztcclxuaW1wb3J0IHsgY2FuSW5zZXJ0LCBtYXJrQWN0aXZlIH0gZnJvbSAnLi9tZW51LWNvbW1vbic7XHJcblxyXG4vLyBIZWxwZXJzIHRvIGNyZWF0ZSBzcGVjaWZpYyB0eXBlcyBvZiBpdGVtc1xyXG5cclxuZnVuY3Rpb24gY21kSXRlbShjbWQ6ICguLi5hcmdzOiBhbnlbXSkgPT4gdm9pZCwgb3B0aW9uczogUmVjb3JkPHN0cmluZywgYW55Pikge1xyXG4gICAgY29uc3QgcGFzc2VkT3B0aW9ucyA9IHtcclxuICAgICAgICBsYWJlbDogb3B0aW9ucy50aXRsZSxcclxuICAgICAgICBydW46IGNtZCxcclxuICAgIH07XHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6Zm9yaW5cclxuICAgIGZvciAoY29uc3QgcHJvcCBpbiBvcHRpb25zKSB7XHJcbiAgICAgICAgcGFzc2VkT3B0aW9uc1twcm9wXSA9IG9wdGlvbnNbcHJvcF07XHJcbiAgICB9XHJcbiAgICBpZiAoKCFvcHRpb25zLmVuYWJsZSB8fCBvcHRpb25zLmVuYWJsZSA9PT0gdHJ1ZSkgJiYgIW9wdGlvbnMuc2VsZWN0KSB7XHJcbiAgICAgICAgcGFzc2VkT3B0aW9uc1tvcHRpb25zLmVuYWJsZSA/ICdlbmFibGUnIDogJ3NlbGVjdCddID0gc3RhdGUgPT4gY21kKHN0YXRlKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbmV3IE1lbnVJdGVtKHBhc3NlZE9wdGlvbnMgYXMgYW55KTtcclxufVxyXG5cclxuZnVuY3Rpb24gbWFya0l0ZW0obWFya1R5cGUsIG9wdGlvbnMpIHtcclxuICAgIGNvbnN0IHBhc3NlZE9wdGlvbnMgPSB7XHJcbiAgICAgICAgYWN0aXZlKHN0YXRlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBtYXJrQWN0aXZlKHN0YXRlLCBtYXJrVHlwZSk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlbmFibGU6IHRydWUsXHJcbiAgICB9O1xyXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmZvcmluXHJcbiAgICBmb3IgKGNvbnN0IHByb3AgaW4gb3B0aW9ucykge1xyXG4gICAgICAgIHBhc3NlZE9wdGlvbnNbcHJvcF0gPSBvcHRpb25zW3Byb3BdO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGNtZEl0ZW0odG9nZ2xlTWFyayhtYXJrVHlwZSksIHBhc3NlZE9wdGlvbnMpO1xyXG59XHJcblxyXG5mdW5jdGlvbiB3cmFwTGlzdEl0ZW0obm9kZVR5cGUsIG9wdGlvbnMpIHtcclxuICAgIHJldHVybiBjbWRJdGVtKHdyYXBJbkxpc3Qobm9kZVR5cGUsIG9wdGlvbnMuYXR0cnMpLCBvcHRpb25zKTtcclxufVxyXG5cclxuLy8gOjogKFNjaGVtYSkg4oaSIE9iamVjdFxyXG4vLyBHaXZlbiBhIHNjaGVtYSwgbG9vayBmb3IgZGVmYXVsdCBtYXJrIGFuZCBub2RlIHR5cGVzIGluIGl0IGFuZFxyXG4vLyByZXR1cm4gYW4gb2JqZWN0IHdpdGggcmVsZXZhbnQgbWVudSBpdGVtcyByZWxhdGluZyB0byB0aG9zZSBtYXJrczpcclxuLy9cclxuLy8gKipgdG9nZ2xlU3Ryb25nYCoqYDogTWVudUl0ZW1gXHJcbi8vICAgOiBBIG1lbnUgaXRlbSB0byB0b2dnbGUgdGhlIFtzdHJvbmcgbWFya10oI3NjaGVtYS1iYXNpYy5TdHJvbmdNYXJrKS5cclxuLy9cclxuLy8gKipgdG9nZ2xlRW1gKipgOiBNZW51SXRlbWBcclxuLy8gICA6IEEgbWVudSBpdGVtIHRvIHRvZ2dsZSB0aGUgW2VtcGhhc2lzIG1hcmtdKCNzY2hlbWEtYmFzaWMuRW1NYXJrKS5cclxuLy9cclxuLy8gKipgdG9nZ2xlQ29kZWAqKmA6IE1lbnVJdGVtYFxyXG4vLyAgIDogQSBtZW51IGl0ZW0gdG8gdG9nZ2xlIHRoZSBbY29kZSBmb250IG1hcmtdKCNzY2hlbWEtYmFzaWMuQ29kZU1hcmspLlxyXG4vL1xyXG4vLyAqKmB0b2dnbGVMaW5rYCoqYDogTWVudUl0ZW1gXHJcbi8vICAgOiBBIG1lbnUgaXRlbSB0byB0b2dnbGUgdGhlIFtsaW5rIG1hcmtdKCNzY2hlbWEtYmFzaWMuTGlua01hcmspLlxyXG4vL1xyXG4vLyAqKmBpbnNlcnRJbWFnZWAqKmA6IE1lbnVJdGVtYFxyXG4vLyAgIDogQSBtZW51IGl0ZW0gdG8gaW5zZXJ0IGFuIFtpbWFnZV0oI3NjaGVtYS1iYXNpYy5JbWFnZSkuXHJcbi8vXHJcbi8vICoqYHdyYXBCdWxsZXRMaXN0YCoqYDogTWVudUl0ZW1gXHJcbi8vICAgOiBBIG1lbnUgaXRlbSB0byB3cmFwIHRoZSBzZWxlY3Rpb24gaW4gYSBbYnVsbGV0IGxpc3RdKCNzY2hlbWEtbGlzdC5CdWxsZXRMaXN0KS5cclxuLy9cclxuLy8gKipgd3JhcE9yZGVyZWRMaXN0YCoqYDogTWVudUl0ZW1gXHJcbi8vICAgOiBBIG1lbnUgaXRlbSB0byB3cmFwIHRoZSBzZWxlY3Rpb24gaW4gYW4gW29yZGVyZWQgbGlzdF0oI3NjaGVtYS1saXN0Lk9yZGVyZWRMaXN0KS5cclxuLy9cclxuLy8gKipgd3JhcEJsb2NrUXVvdGVgKipgOiBNZW51SXRlbWBcclxuLy8gICA6IEEgbWVudSBpdGVtIHRvIHdyYXAgdGhlIHNlbGVjdGlvbiBpbiBhIFtibG9jayBxdW90ZV0oI3NjaGVtYS1iYXNpYy5CbG9ja1F1b3RlKS5cclxuLy9cclxuLy8gKipgbWFrZVBhcmFncmFwaGAqKmA6IE1lbnVJdGVtYFxyXG4vLyAgIDogQSBtZW51IGl0ZW0gdG8gc2V0IHRoZSBjdXJyZW50IHRleHRibG9jayB0byBiZSBhIG5vcm1hbFxyXG4vLyAgICAgW3BhcmFncmFwaF0oI3NjaGVtYS1iYXNpYy5QYXJhZ3JhcGgpLlxyXG4vL1xyXG4vLyAqKmBtYWtlQ29kZUJsb2NrYCoqYDogTWVudUl0ZW1gXHJcbi8vICAgOiBBIG1lbnUgaXRlbSB0byBzZXQgdGhlIGN1cnJlbnQgdGV4dGJsb2NrIHRvIGJlIGFcclxuLy8gICAgIFtjb2RlIGJsb2NrXSgjc2NoZW1hLWJhc2ljLkNvZGVCbG9jaykuXHJcbi8vXHJcbi8vICoqYG1ha2VIZWFkW05dYCoqYDogTWVudUl0ZW1gXHJcbi8vICAgOiBXaGVyZSBfTl8gaXMgMSB0byA2LiBNZW51IGl0ZW1zIHRvIHNldCB0aGUgY3VycmVudCB0ZXh0YmxvY2sgdG9cclxuLy8gICAgIGJlIGEgW2hlYWRpbmddKCNzY2hlbWEtYmFzaWMuSGVhZGluZykgb2YgbGV2ZWwgX05fLlxyXG4vL1xyXG4vLyAqKmBpbnNlcnRIb3Jpem9udGFsUnVsZWAqKmA6IE1lbnVJdGVtYFxyXG4vLyAgIDogQSBtZW51IGl0ZW0gdG8gaW5zZXJ0IGEgaG9yaXpvbnRhbCBydWxlLlxyXG4vL1xyXG4vLyBUaGUgcmV0dXJuIHZhbHVlIGFsc28gY29udGFpbnMgc29tZSBwcmVmYWJyaWNhdGVkIG1lbnUgZWxlbWVudHMgYW5kXHJcbi8vIG1lbnVzLCB0aGF0IHlvdSBjYW4gdXNlIGluc3RlYWQgb2YgY29tcG9zaW5nIHlvdXIgb3duIG1lbnUgZnJvbVxyXG4vLyBzY3JhdGNoOlxyXG4vL1xyXG4vLyAqKmBpbnNlcnRNZW51YCoqYDogRHJvcGRvd25gXHJcbi8vICAgOiBBIGRyb3Bkb3duIGNvbnRhaW5pbmcgdGhlIGBpbnNlcnRJbWFnZWAgYW5kXHJcbi8vICAgICBgaW5zZXJ0SG9yaXpvbnRhbFJ1bGVgIGl0ZW1zLlxyXG4vL1xyXG4vLyAqKmB0eXBlTWVudWAqKmA6IERyb3Bkb3duYFxyXG4vLyAgIDogQSBkcm9wZG93biBjb250YWluaW5nIHRoZSBpdGVtcyBmb3IgbWFraW5nIHRoZSBjdXJyZW50XHJcbi8vICAgICB0ZXh0YmxvY2sgYSBwYXJhZ3JhcGgsIGNvZGUgYmxvY2ssIG9yIGhlYWRpbmcuXHJcbi8vXHJcbi8vICoqYGZ1bGxNZW51YCoqYDogW1tNZW51RWxlbWVudF1dYFxyXG4vLyAgIDogQW4gYXJyYXkgb2YgYXJyYXlzIG9mIG1lbnUgZWxlbWVudHMgZm9yIHVzZSBhcyB0aGUgZnVsbCBtZW51XHJcbi8vICAgICBmb3IsIGZvciBleGFtcGxlIHRoZSBbbWVudSBiYXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9wcm9zZW1pcnJvci9wcm9zZW1pcnJvci1tZW51I3VzZXItY29udGVudC1tZW51YmFyKS5cclxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkTWVudUl0ZW1zKHNjaGVtYTogU2NoZW1hLCBtb2RhbFNlcnZpY2U6IE1vZGFsU2VydmljZSkge1xyXG4gICAgY29uc3QgcjogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xyXG4gICAgbGV0IHR5cGU6IE1hcmtUeXBlIHwgTm9kZVR5cGU7XHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZTpuby1jb25kaXRpb25hbC1hc3NpZ25tZW50XHJcbiAgICBpZiAoKHR5cGUgPSBzY2hlbWEubWFya3Muc3Ryb25nKSkge1xyXG4gICAgICAgIHIudG9nZ2xlU3Ryb25nID0gbWFya0l0ZW0odHlwZSwgeyB0aXRsZTogJ1RvZ2dsZSBzdHJvbmcgc3R5bGUnLCBpY29uOiBpY29ucy5zdHJvbmcgfSk7XHJcbiAgICB9XHJcbiAgICBpZiAoKHR5cGUgPSBzY2hlbWEubWFya3MuZW0pKSB7XHJcbiAgICAgICAgci50b2dnbGVFbSA9IG1hcmtJdGVtKHR5cGUsIHsgdGl0bGU6ICdUb2dnbGUgZW1waGFzaXMnLCBpY29uOiBpY29ucy5lbSB9KTtcclxuICAgIH1cclxuICAgIGlmICgodHlwZSA9IHNjaGVtYS5tYXJrcy5jb2RlKSkge1xyXG4gICAgICAgIHIudG9nZ2xlQ29kZSA9IG1hcmtJdGVtKHR5cGUsIHsgdGl0bGU6ICdUb2dnbGUgY29kZSBmb250JywgaWNvbjogaWNvbnMuY29kZSB9KTtcclxuICAgIH1cclxuICAgIGlmICgodHlwZSA9IHNjaGVtYS5tYXJrcy5saW5rKSkge1xyXG4gICAgICAgIHIudG9nZ2xlTGluayA9IGxpbmtJdGVtKHR5cGUsIG1vZGFsU2VydmljZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCh0eXBlID0gc2NoZW1hLm5vZGVzLmltYWdlKSkge1xyXG4gICAgICAgIHIuaW5zZXJ0SW1hZ2UgPSBpbnNlcnRJbWFnZUl0ZW0odHlwZSwgbW9kYWxTZXJ2aWNlKTtcclxuICAgIH1cclxuICAgIGlmICgodHlwZSA9IHNjaGVtYS5ub2Rlcy5idWxsZXRfbGlzdCkpIHtcclxuICAgICAgICByLndyYXBCdWxsZXRMaXN0ID0gd3JhcExpc3RJdGVtKHR5cGUsIHtcclxuICAgICAgICAgICAgdGl0bGU6ICdXcmFwIGluIGJ1bGxldCBsaXN0JyxcclxuICAgICAgICAgICAgaWNvbjogaWNvbnMuYnVsbGV0TGlzdCxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIGlmICgodHlwZSA9IHNjaGVtYS5ub2Rlcy5vcmRlcmVkX2xpc3QpKSB7XHJcbiAgICAgICAgci53cmFwT3JkZXJlZExpc3QgPSB3cmFwTGlzdEl0ZW0odHlwZSwge1xyXG4gICAgICAgICAgICB0aXRsZTogJ1dyYXAgaW4gb3JkZXJlZCBsaXN0JyxcclxuICAgICAgICAgICAgaWNvbjogaWNvbnMub3JkZXJlZExpc3QsXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBpZiAoKHR5cGUgPSBzY2hlbWEubm9kZXMuYmxvY2txdW90ZSkpIHtcclxuICAgICAgICByLndyYXBCbG9ja1F1b3RlID0gd3JhcEl0ZW0odHlwZSwge1xyXG4gICAgICAgICAgICB0aXRsZTogJ1dyYXAgaW4gYmxvY2sgcXVvdGUnLFxyXG4gICAgICAgICAgICBpY29uOiBpY29ucy5ibG9ja3F1b3RlLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgaWYgKCh0eXBlID0gc2NoZW1hLm5vZGVzLnBhcmFncmFwaCkpIHtcclxuICAgICAgICByLm1ha2VQYXJhZ3JhcGggPSBibG9ja1R5cGVJdGVtKHR5cGUsIHtcclxuICAgICAgICAgICAgdGl0bGU6ICdDaGFuZ2UgdG8gcGFyYWdyYXBoJyxcclxuICAgICAgICAgICAgbGFiZWw6ICdQbGFpbicsXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBpZiAoKHR5cGUgPSBzY2hlbWEubm9kZXMuY29kZV9ibG9jaykpIHtcclxuICAgICAgICByLm1ha2VDb2RlQmxvY2sgPSBibG9ja1R5cGVJdGVtKHR5cGUsIHtcclxuICAgICAgICAgICAgdGl0bGU6ICdDaGFuZ2UgdG8gY29kZSBibG9jaycsXHJcbiAgICAgICAgICAgIGxhYmVsOiAnQ29kZScsXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBpZiAoKHR5cGUgPSBzY2hlbWEubm9kZXMuaGVhZGluZykpIHtcclxuICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8PSAxMDsgaSsrKSB7XHJcbiAgICAgICAgICAgIHJbJ21ha2VIZWFkJyArIGldID0gYmxvY2tUeXBlSXRlbSh0eXBlLCB7XHJcbiAgICAgICAgICAgICAgICB0aXRsZTogJ0NoYW5nZSB0byBoZWFkaW5nICcgKyBpLFxyXG4gICAgICAgICAgICAgICAgbGFiZWw6ICdMZXZlbCAnICsgaSxcclxuICAgICAgICAgICAgICAgIGF0dHJzOiB7IGxldmVsOiBpIH0sXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICgodHlwZSA9IHNjaGVtYS5ub2Rlcy5ob3Jpem9udGFsX3J1bGUpKSB7XHJcbiAgICAgICAgY29uc3QgaHIgPSB0eXBlO1xyXG4gICAgICAgIHIuaW5zZXJ0SG9yaXpvbnRhbFJ1bGUgPSBuZXcgTWVudUl0ZW0oe1xyXG4gICAgICAgICAgICB0aXRsZTogJ0luc2VydCBob3Jpem9udGFsIHJ1bGUnLFxyXG4gICAgICAgICAgICBsYWJlbDogJ0hvcml6b250YWwgcnVsZScsXHJcbiAgICAgICAgICAgIGNsYXNzOiAnJyxcclxuICAgICAgICAgICAgY3NzOiAnJyxcclxuICAgICAgICAgICAgZW5hYmxlKHN0YXRlKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY2FuSW5zZXJ0KHN0YXRlLCBocik7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHJ1bihzdGF0ZTogRWRpdG9yU3RhdGUsIGRpc3BhdGNoKSB7XHJcbiAgICAgICAgICAgICAgICBkaXNwYXRjaChzdGF0ZS50ci5yZXBsYWNlU2VsZWN0aW9uV2l0aChoci5jcmVhdGUoKSkpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGN1dCA9IDxUPihhcnI6IFRbXSk6IFRbXSA9PiBhcnIuZmlsdGVyKHggPT4geCk7XHJcbiAgICByLmluc2VydE1lbnUgPSBuZXcgRHJvcGRvd24oY3V0KFtyLmluc2VydEltYWdlLCByLmluc2VydEhvcml6b250YWxSdWxlXSksIHsgbGFiZWw6ICdJbnNlcnQnIH0pO1xyXG4gICAgci50eXBlTWVudSA9IG5ldyBEcm9wZG93bihcclxuICAgICAgICBjdXQoW1xyXG4gICAgICAgICAgICByLm1ha2VQYXJhZ3JhcGgsXHJcbiAgICAgICAgICAgIHIubWFrZUNvZGVCbG9jayxcclxuICAgICAgICAgICAgci5tYWtlSGVhZDEgJiZcclxuICAgICAgICAgICAgICAgIG5ldyBEcm9wZG93blN1Ym1lbnUoXHJcbiAgICAgICAgICAgICAgICAgICAgY3V0KFtyLm1ha2VIZWFkMSwgci5tYWtlSGVhZDIsIHIubWFrZUhlYWQzLCByLm1ha2VIZWFkNCwgci5tYWtlSGVhZDUsIHIubWFrZUhlYWQ2XSksXHJcbiAgICAgICAgICAgICAgICAgICAgeyBsYWJlbDogJ0hlYWRpbmcnIH0sXHJcbiAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgIF0pLFxyXG4gICAgICAgIHsgbGFiZWw6ICdUeXBlLi4uJyB9LFxyXG4gICAgKTtcclxuXHJcbiAgICBjb25zdCBpbmxpbmVNZW51ID0gY3V0KFtyLnRvZ2dsZVN0cm9uZywgci50b2dnbGVFbSwgci50b2dnbGVMaW5rXSk7XHJcbiAgICByLmlubGluZU1lbnUgPSBbaW5saW5lTWVudV07XHJcbiAgICByLmJsb2NrTWVudSA9IFtcclxuICAgICAgICBjdXQoW1xyXG4gICAgICAgICAgICByLndyYXBCdWxsZXRMaXN0LFxyXG4gICAgICAgICAgICByLndyYXBPcmRlcmVkTGlzdCxcclxuICAgICAgICAgICAgci53cmFwQmxvY2tRdW90ZSxcclxuICAgICAgICAgICAgam9pblVwSXRlbSxcclxuICAgICAgICAgICAgbGlmdEl0ZW0sXHJcbiAgICAgICAgICAgIHNlbGVjdFBhcmVudE5vZGVJdGVtLFxyXG4gICAgICAgIF0pLFxyXG4gICAgXTtcclxuICAgIHIuZnVsbE1lbnUgPSBbaW5saW5lTWVudV0uY29uY2F0KFtbci5pbnNlcnRNZW51LCByLnR5cGVNZW51XV0sIFtbdW5kb0l0ZW0sIHJlZG9JdGVtXV0sIHIuYmxvY2tNZW51KTtcclxuXHJcbiAgICByZXR1cm4gcjtcclxufVxyXG4iXX0=
|
|
247
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvc2hhcmVkL2NvbXBvbmVudHMvcmljaC10ZXh0LWVkaXRvci9wcm9zZW1pcnJvci9tZW51L21lbnUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakQsT0FBTyxFQUNILGFBQWEsRUFDYixRQUFRLEVBQ1IsS0FBSyxFQUNMLFVBQVUsRUFDVixRQUFRLEVBQ1IsUUFBUSxFQUNSLG9CQUFvQixFQUNwQixRQUFRLEdBQ1gsTUFBTSxrQkFBa0IsQ0FBQztBQUUxQixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFJckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzFELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVwRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ25DLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFNdkQsU0FBUyxPQUFPLENBQUMsR0FBNkIsRUFBRSxPQUF1QjtJQUNuRSxNQUFNLGFBQWEsR0FBRztRQUNsQixLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUs7UUFDcEIsR0FBRyxFQUFFLEdBQUc7UUFDUixNQUFNLEVBQUUsT0FBTyxDQUFDLFNBQVM7WUFDckIsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxTQUFTLEVBQUUsSUFB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QUUsSUFBSTtZQUNULE1BQU0sQ0FBQyxLQUFLO2dCQUNSLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZCLENBQUM7WUFDRCxNQUFNLEVBQUUsaUJBQWlCLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDckUsQ0FBQztLQUNMLENBQUM7SUFDRixDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRXhGLE9BQU8sQ0FBQyxDQUFDO0FBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHRvZ2dsZU1hcmsgfSBmcm9tICdwcm9zZW1pcnJvci1jb21tYW5kcyc7XHJcbmltcG9ydCB7IHJlZG8sIHVuZG8gfSBmcm9tICdwcm9zZW1pcnJvci1oaXN0b3J5JztcclxuaW1wb3J0IHtcclxuICAgIGJsb2NrVHlwZUl0ZW0sXHJcbiAgICBEcm9wZG93bixcclxuICAgIGljb25zLFxyXG4gICAgam9pblVwSXRlbSxcclxuICAgIGxpZnRJdGVtLFxyXG4gICAgTWVudUl0ZW0sXHJcbiAgICBzZWxlY3RQYXJlbnROb2RlSXRlbSxcclxuICAgIHdyYXBJdGVtLFxyXG59IGZyb20gJ3Byb3NlbWlycm9yLW1lbnUnO1xyXG5pbXBvcnQgeyBNYXJrVHlwZSwgTm9kZVR5cGUsIFNjaGVtYSB9IGZyb20gJ3Byb3NlbWlycm9yLW1vZGVsJztcclxuaW1wb3J0IHsgd3JhcEluTGlzdCB9IGZyb20gJ3Byb3NlbWlycm9yLXNjaGVtYS1saXN0JztcclxuaW1wb3J0IHsgRWRpdG9yU3RhdGUgfSBmcm9tICdwcm9zZW1pcnJvci1zdGF0ZSc7XHJcblxyXG5pbXBvcnQgeyBNb2RhbFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9wcm92aWRlcnMvbW9kYWwvbW9kYWwuc2VydmljZSc7XHJcbmltcG9ydCB7IGluc2VydEltYWdlSXRlbSB9IGZyb20gJy4uL3BsdWdpbnMvaW1hZ2UtcGx1Z2luJztcclxuaW1wb3J0IHsgYWRkVGFibGUgfSBmcm9tICcuLi9wbHVnaW5zL3RhYmxlcy1wbHVnaW4nO1xyXG5cclxuaW1wb3J0IHsgbGlua0l0ZW0gfSBmcm9tICcuL2xpbmtzJztcclxuaW1wb3J0IHsgY2FuSW5zZXJ0LCBJY29uU2l6ZSwgbWFya0FjdGl2ZSwgcmVuZGVyQ2xhcml0eUljb24sIHdyYXBJbk1lbnVJdGVtV2l0aEljb24gfSBmcm9tICcuL21lbnUtY29tbW9uJztcclxuaW1wb3J0IHsgU3ViTWVudVdpdGhJY29uIH0gZnJvbSAnLi9zdWItbWVudS13aXRoLWljb24nO1xyXG5cclxuLy8gSGVscGVycyB0byBjcmVhdGUgc3BlY2lmaWMgdHlwZXMgb2YgaXRlbXNcclxuXHJcbnR5cGUgQ21kSXRlbU9wdGlvbnMgPSBSZWNvcmQ8c3RyaW5nLCBhbnk+ICYgeyBpY29uU2hhcGU/OiBzdHJpbmcgfTtcclxuXHJcbmZ1bmN0aW9uIGNtZEl0ZW0oY21kOiAoLi4uYXJnczogYW55W10pID0+IHZvaWQsIG9wdGlvbnM6IENtZEl0ZW1PcHRpb25zKSB7XHJcbiAgICBjb25zdCBwYXNzZWRPcHRpb25zID0ge1xyXG4gICAgICAgIGxhYmVsOiBvcHRpb25zLnRpdGxlLFxyXG4gICAgICAgIHJ1bjogY21kLFxyXG4gICAgICAgIHJlbmRlcjogb3B0aW9ucy5pY29uU2hhcGVcclxuICAgICAgICAgICAgPyByZW5kZXJDbGFyaXR5SWNvbih7IHNoYXBlOiBvcHRpb25zLmljb25TaGFwZSwgc2l6ZTogSWNvblNpemUuTGFyZ2UgfSlcclxuICAgICAgICAgICAgOiB1bmRlZmluZWQsXHJcbiAgICB9O1xyXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmZvcmluXHJcbiAgICBmb3IgKGNvbnN0IHByb3AgaW4gb3B0aW9ucykge1xyXG4gICAgICAgIHBhc3NlZE9wdGlvbnNbcHJvcF0gPSBvcHRpb25zW3Byb3BdO1xyXG4gICAgfVxyXG4gICAgaWYgKCghb3B0aW9ucy5lbmFibGUgfHwgb3B0aW9ucy5lbmFibGUgPT09IHRydWUpICYmICFvcHRpb25zLnNlbGVjdCkge1xyXG4gICAgICAgIHBhc3NlZE9wdGlvbnNbb3B0aW9ucy5lbmFibGUgPyAnZW5hYmxlJyA6ICdzZWxlY3QnXSA9IHN0YXRlID0+IGNtZChzdGF0ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG5ldyBNZW51SXRlbShwYXNzZWRPcHRpb25zIGFzIGFueSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIG1hcmtJdGVtKG1hcmtUeXBlLCBvcHRpb25zOiBDbWRJdGVtT3B0aW9ucykge1xyXG4gICAgY29uc3QgcGFzc2VkT3B0aW9ucyA9IHtcclxuICAgICAgICBhY3RpdmUoc3RhdGUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG1hcmtBY3RpdmUoc3RhdGUsIG1hcmtUeXBlKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVuYWJsZTogdHJ1ZSxcclxuICAgIH07XHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6Zm9yaW5cclxuICAgIGZvciAoY29uc3QgcHJvcCBpbiBvcHRpb25zKSB7XHJcbiAgICAgICAgcGFzc2VkT3B0aW9uc1twcm9wXSA9IG9wdGlvbnNbcHJvcF07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY21kSXRlbSh0b2dnbGVNYXJrKG1hcmtUeXBlKSwgcGFzc2VkT3B0aW9ucyk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHdyYXBMaXN0SXRlbShub2RlVHlwZSwgb3B0aW9uczogQ21kSXRlbU9wdGlvbnMpIHtcclxuICAgIHJldHVybiBjbWRJdGVtKHdyYXBJbkxpc3Qobm9kZVR5cGUsIG9wdGlvbnMuYXR0cnMpLCBvcHRpb25zKTtcclxufVxyXG5cclxuLy8gOjogKFNjaGVtYSkg4oaSIE9iamVjdFxyXG4vLyBHaXZlbiBhIHNjaGVtYSwgbG9vayBmb3IgZGVmYXVsdCBtYXJrIGFuZCBub2RlIHR5cGVzIGluIGl0IGFuZFxyXG4vLyByZXR1cm4gYW4gb2JqZWN0IHdpdGggcmVsZXZhbnQgbWVudSBpdGVtcyByZWxhdGluZyB0byB0aG9zZSBtYXJrczpcclxuLy9cclxuLy8gKipgdG9nZ2xlU3Ryb25nYCoqYDogTWVudUl0ZW1gXHJcbi8vICAgOiBBIG1lbnUgaXRlbSB0byB0b2dnbGUgdGhlIFtzdHJvbmcgbWFya10oI3NjaGVtYS1iYXNpYy5TdHJvbmdNYXJrKS5cclxuLy9cclxuLy8gKipgdG9nZ2xlRW1gKipgOiBNZW51SXRlbWBcclxuLy8gICA6IEEgbWVudSBpdGVtIHRvIHRvZ2dsZSB0aGUgW2VtcGhhc2lzIG1hcmtdKCNzY2hlbWEtYmFzaWMuRW1NYXJrKS5cclxuLy9cclxuLy8gKipgdG9nZ2xlQ29kZWAqKmA6IE1lbnVJdGVtYFxyXG4vLyAgIDogQSBtZW51IGl0ZW0gdG8gdG9nZ2xlIHRoZSBbY29kZSBmb250IG1hcmtdKCNzY2hlbWEtYmFzaWMuQ29kZU1hcmspLlxyXG4vL1xyXG4vLyAqKmB0b2dnbGVMaW5rYCoqYDogTWVudUl0ZW1gXHJcbi8vICAgOiBBIG1lbnUgaXRlbSB0byB0b2dnbGUgdGhlIFtsaW5rIG1hcmtdKCNzY2hlbWEtYmFzaWMuTGlua01hcmspLlxyXG4vL1xyXG4vLyAqKmBpbnNlcnRJbWFnZWAqKmA6IE1lbnVJdGVtYFxyXG4vLyAgIDogQSBtZW51IGl0ZW0gdG8gaW5zZXJ0IGFuIFtpbWFnZV0oI3NjaGVtYS1iYXNpYy5JbWFnZSkuXHJcbi8vXHJcbi8vICoqYHdyYXBCdWxsZXRMaXN0YCoqYDogTWVudUl0ZW1gXHJcbi8vICAgOiBBIG1lbnUgaXRlbSB0byB3cmFwIHRoZSBzZWxlY3Rpb24gaW4gYSBbYnVsbGV0IGxpc3RdKCNzY2hlbWEtbGlzdC5CdWxsZXRMaXN0KS5cclxuLy9cclxuLy8gKipgd3JhcE9yZGVyZWRMaXN0YCoqYDogTWVudUl0ZW1gXHJcbi8vICAgOiBBIG1lbnUgaXRlbSB0byB3cmFwIHRoZSBzZWxlY3Rpb24gaW4gYW4gW29yZGVyZWQgbGlzdF0oI3NjaGVtYS1saXN0Lk9yZGVyZWRMaXN0KS5cclxuLy9cclxuLy8gKipgd3JhcEJsb2NrUXVvdGVgKipgOiBNZW51SXRlbWBcclxuLy8gICA6IEEgbWVudSBpdGVtIHRvIHdyYXAgdGhlIHNlbGVjdGlvbiBpbiBhIFtibG9jayBxdW90ZV0oI3NjaGVtYS1iYXNpYy5CbG9ja1F1b3RlKS5cclxuLy9cclxuLy8gKipgbWFrZVBhcmFncmFwaGAqKmA6IE1lbnVJdGVtYFxyXG4vLyAgIDogQSBtZW51IGl0ZW0gdG8gc2V0IHRoZSBjdXJyZW50IHRleHRibG9jayB0byBiZSBhIG5vcm1hbFxyXG4vLyAgICAgW3BhcmFncmFwaF0oI3NjaGVtYS1iYXNpYy5QYXJhZ3JhcGgpLlxyXG4vL1xyXG4vLyAqKmBtYWtlQ29kZUJsb2NrYCoqYDogTWVudUl0ZW1gXHJcbi8vICAgOiBBIG1lbnUgaXRlbSB0byBzZXQgdGhlIGN1cnJlbnQgdGV4dGJsb2NrIHRvIGJlIGFcclxuLy8gICAgIFtjb2RlIGJsb2NrXSgjc2NoZW1hLWJhc2ljLkNvZGVCbG9jaykuXHJcbi8vXHJcbi8vICoqYG1ha2VIZWFkW05dYCoqYDogTWVudUl0ZW1gXHJcbi8vICAgOiBXaGVyZSBfTl8gaXMgMSB0byA2LiBNZW51IGl0ZW1zIHRvIHNldCB0aGUgY3VycmVudCB0ZXh0YmxvY2sgdG9cclxuLy8gICAgIGJlIGEgW2hlYWRpbmddKCNzY2hlbWEtYmFzaWMuSGVhZGluZykgb2YgbGV2ZWwgX05fLlxyXG4vL1xyXG4vLyAqKmBpbnNlcnRIb3Jpem9udGFsUnVsZWAqKmA6IE1lbnVJdGVtYFxyXG4vLyAgIDogQSBtZW51IGl0ZW0gdG8gaW5zZXJ0IGEgaG9yaXpvbnRhbCBydWxlLlxyXG4vL1xyXG4vLyBUaGUgcmV0dXJuIHZhbHVlIGFsc28gY29udGFpbnMgc29tZSBwcmVmYWJyaWNhdGVkIG1lbnUgZWxlbWVudHMgYW5kXHJcbi8vIG1lbnVzLCB0aGF0IHlvdSBjYW4gdXNlIGluc3RlYWQgb2YgY29tcG9zaW5nIHlvdXIgb3duIG1lbnUgZnJvbVxyXG4vLyBzY3JhdGNoOlxyXG4vL1xyXG4vLyAqKmBpbnNlcnRNZW51YCoqYDogRHJvcGRvd25gXHJcbi8vICAgOiBBIGRyb3Bkb3duIGNvbnRhaW5pbmcgdGhlIGBpbnNlcnRJbWFnZWAgYW5kXHJcbi8vICAgICBgaW5zZXJ0SG9yaXpvbnRhbFJ1bGVgIGl0ZW1zLlxyXG4vL1xyXG4vLyAqKmB0eXBlTWVudWAqKmA6IERyb3Bkb3duYFxyXG4vLyAgIDogQSBkcm9wZG93biBjb250YWluaW5nIHRoZSBpdGVtcyBmb3IgbWFraW5nIHRoZSBjdXJyZW50XHJcbi8vICAgICB0ZXh0YmxvY2sgYSBwYXJhZ3JhcGgsIGNvZGUgYmxvY2ssIG9yIGhlYWRpbmcuXHJcbi8vXHJcbi8vICoqYGZ1bGxNZW51YCoqYDogW1tNZW51RWxlbWVudF1dYFxyXG4vLyAgIDogQW4gYXJyYXkgb2YgYXJyYXlzIG9mIG1lbnUgZWxlbWVudHMgZm9yIHVzZSBhcyB0aGUgZnVsbCBtZW51XHJcbi8vICAgICBmb3IsIGZvciBleGFtcGxlIHRoZSBbbWVudSBiYXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9wcm9zZW1pcnJvci9wcm9zZW1pcnJvci1tZW51I3VzZXItY29udGVudC1tZW51YmFyKS5cclxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkTWVudUl0ZW1zKHNjaGVtYTogU2NoZW1hLCBtb2RhbFNlcnZpY2U6IE1vZGFsU2VydmljZSkge1xyXG4gICAgY29uc3QgcjogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xyXG4gICAgbGV0IHR5cGU6IE1hcmtUeXBlIHwgTm9kZVR5cGU7XHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZTpuby1jb25kaXRpb25hbC1hc3NpZ25tZW50XHJcbiAgICBpZiAoKHR5cGUgPSBzY2hlbWEubWFya3Muc3Ryb25nKSkge1xyXG4gICAgICAgIHIudG9nZ2xlU3Ryb25nID0gbWFya0l0ZW0odHlwZSwge1xyXG4gICAgICAgICAgICB0aXRsZTogJ1RvZ2dsZSBzdHJvbmcgc3R5bGUnLFxyXG4gICAgICAgICAgICBpY29uU2hhcGU6ICdib2xkJyxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIGlmICgodHlwZSA9IHNjaGVtYS5tYXJrcy5lbSkpIHtcclxuICAgICAgICByLnRvZ2dsZUVtID0gbWFya0l0ZW0odHlwZSwge1xyXG4gICAgICAgICAgICB0aXRsZTogJ1RvZ2dsZSBlbXBoYXNpcycsXHJcbiAgICAgICAgICAgIGljb25TaGFwZTogJ2l0YWxpYycsXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBpZiAoKHR5cGUgPSBzY2hlbWEubWFya3MuY29kZSkpIHtcclxuICAgICAgICByLnRvZ2dsZUNvZGUgPSBtYXJrSXRlbSh0eXBlLCB7IHRpdGxlOiAnVG9nZ2xlIGNvZGUgZm9udCcsIGljb246IGljb25zLmNvZGUgfSk7XHJcbiAgICB9XHJcbiAgICBpZiAoKHR5cGUgPSBzY2hlbWEubWFya3MubGluaykpIHtcclxuICAgICAgICByLnRvZ2dsZUxpbmsgPSBsaW5rSXRlbSh0eXBlLCBtb2RhbFNlcnZpY2UpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICgodHlwZSA9IHNjaGVtYS5ub2Rlcy5pbWFnZSkpIHtcclxuICAgICAgICByLmluc2VydEltYWdlID0gaW5zZXJ0SW1hZ2VJdGVtKHR5cGUsIG1vZGFsU2VydmljZSk7XHJcbiAgICB9XHJcbiAgICBpZiAoKHR5cGUgPSBzY2hlbWEubm9kZXMuYnVsbGV0X2xpc3QpKSB7XHJcbiAgICAgICAgci53cmFwQnVsbGV0TGlzdCA9IHdyYXBMaXN0SXRlbSh0eXBlLCB7XHJcbiAgICAgICAgICAgIHRpdGxlOiAnV3JhcCBpbiBidWxsZXQgbGlzdCcsXHJcbiAgICAgICAgICAgIGljb25TaGFwZTogJ2J1bGxldC1saXN0JyxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIGlmICgodHlwZSA9IHNjaGVtYS5ub2Rlcy5vcmRlcmVkX2xpc3QpKSB7XHJcbiAgICAgICAgci53cmFwT3JkZXJlZExpc3QgPSB3cmFwTGlzdEl0ZW0odHlwZSwge1xyXG4gICAgICAgICAgICB0aXRsZTogJ1dyYXAgaW4gb3JkZXJlZCBsaXN0JyxcclxuICAgICAgICAgICAgaWNvblNoYXBlOiAnbnVtYmVyLWxpc3QnLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgaWYgKCh0eXBlID0gc2NoZW1hLm5vZGVzLmJsb2NrcXVvdGUpKSB7XHJcbiAgICAgICAgci53cmFwQmxvY2tRdW90ZSA9IHdyYXBJdGVtKHR5cGUsIHtcclxuICAgICAgICAgICAgdGl0bGU6ICdXcmFwIGluIGJsb2NrIHF1b3RlJyxcclxuICAgICAgICAgICAgcmVuZGVyOiByZW5kZXJDbGFyaXR5SWNvbih7IHNoYXBlOiAnYmxvY2stcXVvdGUnLCBzaXplOiBJY29uU2l6ZS5MYXJnZSB9KSxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIGlmICgodHlwZSA9IHNjaGVtYS5ub2Rlcy5wYXJhZ3JhcGgpKSB7XHJcbiAgICAgICAgci5tYWtlUGFyYWdyYXBoID0gYmxvY2tUeXBlSXRlbSh0eXBlLCB7XHJcbiAgICAgICAgICAgIHRpdGxlOiAnQ2hhbmdlIHRvIHBhcmFncmFwaCcsXHJcbiAgICAgICAgICAgIHJlbmRlcjogcmVuZGVyQ2xhcml0eUljb24oeyBzaGFwZTogJ3RleHQnLCBsYWJlbDogJ1BsYWluJyB9KSxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIGlmICgodHlwZSA9IHNjaGVtYS5ub2Rlcy5jb2RlX2Jsb2NrKSkge1xyXG4gICAgICAgIHIubWFrZUNvZGVCbG9jayA9IGJsb2NrVHlwZUl0ZW0odHlwZSwge1xyXG4gICAgICAgICAgICB0aXRsZTogJ0NoYW5nZSB0byBjb2RlIGJsb2NrJyxcclxuICAgICAgICAgICAgcmVuZGVyOiByZW5kZXJDbGFyaXR5SWNvbih7IHNoYXBlOiAnY29kZScsIGxhYmVsOiAnQ29kZScgfSksXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBpZiAoKHR5cGUgPSBzY2hlbWEubm9kZXMuaGVhZGluZykpIHtcclxuICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8PSAxMDsgaSsrKSB7XHJcbiAgICAgICAgICAgIHJbJ21ha2VIZWFkJyArIGldID0gYmxvY2tUeXBlSXRlbSh0eXBlLCB7XHJcbiAgICAgICAgICAgICAgICB0aXRsZTogJ0NoYW5nZSB0byBoZWFkaW5nICcgKyBpLFxyXG4gICAgICAgICAgICAgICAgbGFiZWw6ICdMZXZlbCAnICsgaSxcclxuICAgICAgICAgICAgICAgIGF0dHJzOiB7IGxldmVsOiBpIH0sXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICgodHlwZSA9IHNjaGVtYS5ub2Rlcy5ob3Jpem9udGFsX3J1bGUpKSB7XHJcbiAgICAgICAgY29uc3QgaHIgPSB0eXBlO1xyXG4gICAgICAgIHIuaW5zZXJ0SG9yaXpvbnRhbFJ1bGUgPSBuZXcgTWVudUl0ZW0oe1xyXG4gICAgICAgICAgICB0aXRsZTogJ0luc2VydCBob3Jpem9udGFsIHJ1bGUnLFxyXG4gICAgICAgICAgICByZW5kZXI6IHZpZXcgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgaWNvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgICAgICAgICAgICAgaWNvbi5jbGFzc0xpc3QuYWRkKCdjdXN0b20taWNvbicsICdoci1pY29uJyk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBsYWJlbEVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xyXG4gICAgICAgICAgICAgICAgbGFiZWxFbC50ZXh0Q29udGVudCA9ICdIb3Jpem9udGFsIHJ1bGUnO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHdyYXBJbk1lbnVJdGVtV2l0aEljb24oaWNvbiwgbGFiZWxFbCk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGVuYWJsZShzdGF0ZSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNhbkluc2VydChzdGF0ZSwgaHIpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBydW4oc3RhdGU6IEVkaXRvclN0YXRlLCBkaXNwYXRjaCkge1xyXG4gICAgICAgICAgICAgICAgZGlzcGF0Y2goc3RhdGUudHIucmVwbGFjZVNlbGVjdGlvbldpdGgoaHIuY3JlYXRlKCkpKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBjdXQgPSA8VD4oYXJyOiBUW10pOiBUW10gPT4gYXJyLmZpbHRlcih4ID0+IHgpO1xyXG4gICAgci5pbnNlcnRNZW51ID0gbmV3IERyb3Bkb3duKFxyXG4gICAgICAgIGN1dChbXHJcbiAgICAgICAgICAgIHIuaW5zZXJ0SW1hZ2UsXHJcbiAgICAgICAgICAgIHIuaW5zZXJ0SG9yaXpvbnRhbFJ1bGUsXHJcbiAgICAgICAgICAgIG5ldyBNZW51SXRlbSh7XHJcbiAgICAgICAgICAgICAgICBydW46IChzdGF0ZSwgZGlzcGF0Y2gpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBhZGRUYWJsZShzdGF0ZSwgZGlzcGF0Y2gsIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcm93c0NvdW50OiAyLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xzQ291bnQ6IDIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhIZWFkZXJSb3c6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGxDb250ZW50OiAnJyxcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICByZW5kZXI6IHJlbmRlckNsYXJpdHlJY29uKHsgc2hhcGU6ICd0YWJsZScsIGxhYmVsOiAnVGFibGUnIH0pLFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICBdKSxcclxuICAgICAgICB7IGxhYmVsOiAnSW5zZXJ0JyB9LFxyXG4gICAgKTtcclxuICAgIHIudHlwZU1lbnUgPSBuZXcgRHJvcGRvd24oXHJcbiAgICAgICAgY3V0KFtcclxuICAgICAgICAgICAgci5tYWtlUGFyYWdyYXBoLFxyXG4gICAgICAgICAgICByLm1ha2VDb2RlQmxvY2ssXHJcbiAgICAgICAgICAgIHIubWFrZUhlYWQxICYmXHJcbiAgICAgICAgICAgICAgICBuZXcgU3ViTWVudVdpdGhJY29uKFxyXG4gICAgICAgICAgICAgICAgICAgIGN1dChbci5tYWtlSGVhZDEsIHIubWFrZUhlYWQyLCByLm1ha2VIZWFkMywgci5tYWtlSGVhZDQsIHIubWFrZUhlYWQ1LCByLm1ha2VIZWFkNl0pLFxyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdIZWFkaW5nJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaWNvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbi50ZXh0Q29udGVudCA9ICdIJztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb24uY2xhc3NMaXN0LmFkZCgnY3VzdG9tLWljb24nLCAnaC1pY29uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaWNvbjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgKSxcclxuICAgICAgICBdKSxcclxuICAgICAgICB7IGxhYmVsOiAnVHlwZS4uLicgfSxcclxuICAgICk7XHJcblxyXG4gICAgY29uc3QgaW5saW5lTWVudSA9IGN1dChbci50b2dnbGVTdHJvbmcsIHIudG9nZ2xlRW0sIHIudG9nZ2xlTGlua10pO1xyXG4gICAgci5pbmxpbmVNZW51ID0gW2lubGluZU1lbnVdO1xyXG4gICAgci5ibG9ja01lbnUgPSBbXHJcbiAgICAgICAgY3V0KFtcclxuICAgICAgICAgICAgci53cmFwQnVsbGV0TGlzdCxcclxuICAgICAgICAgICAgci53cmFwT3JkZXJlZExpc3QsXHJcbiAgICAgICAgICAgIHIud3JhcEJsb2NrUXVvdGUsXHJcbiAgICAgICAgICAgIGpvaW5VcEl0ZW0sXHJcbiAgICAgICAgICAgIGxpZnRJdGVtLFxyXG4gICAgICAgICAgICBzZWxlY3RQYXJlbnROb2RlSXRlbSxcclxuICAgICAgICBdKSxcclxuICAgIF07XHJcbiAgICBjb25zdCB1bmRvUmVkbyA9IFtcclxuICAgICAgICBuZXcgTWVudUl0ZW0oe1xyXG4gICAgICAgICAgICB0aXRsZTogJ1VuZG8gbGFzdCBjaGFuZ2UnLFxyXG4gICAgICAgICAgICBydW46IHVuZG8sXHJcbiAgICAgICAgICAgIGVuYWJsZShzdGF0ZSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHVuZG8oc3RhdGUpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICByZW5kZXI6IHJlbmRlckNsYXJpdHlJY29uKHsgc2hhcGU6ICd1bmRvJywgc2l6ZTogSWNvblNpemUuTGFyZ2UgfSksXHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgbmV3IE1lbnVJdGVtKHtcclxuICAgICAgICAgICAgdGl0bGU6ICdSZWRvIGxhc3QgdW5kb25lIGNoYW5nZScsXHJcbiAgICAgICAgICAgIHJ1bjogcmVkbyxcclxuICAgICAgICAgICAgZW5hYmxlKHN0YXRlKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVkbyhzdGF0ZSk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHJlbmRlcjogcmVuZGVyQ2xhcml0eUljb24oeyBzaGFwZTogJ3JlZG8nLCBzaXplOiBJY29uU2l6ZS5MYXJnZSB9KSxcclxuICAgICAgICB9KSxcclxuICAgIF07XHJcbiAgICByLmZ1bGxNZW51ID0gW2lubGluZU1lbnVdLmNvbmNhdChbW3IuaW5zZXJ0TWVudSwgci50eXBlTWVudV1dLCBbdW5kb1JlZG9dLCByLmJsb2NrTWVudSk7XHJcblxyXG4gICAgcmV0dXJuIHI7XHJcbn1cclxuIl19
|
package/esm2020/core/shared/components/rich-text-editor/prosemirror/menu/sub-menu-with-icon.mjs
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { DropdownSubmenu } from 'prosemirror-menu';
|
|
2
|
+
import { wrapInMenuItemWithIcon } from './menu-common';
|
|
3
|
+
export class SubMenuWithIcon extends DropdownSubmenu {
|
|
4
|
+
constructor(content, options) {
|
|
5
|
+
super(content, options);
|
|
6
|
+
this.icon = options.icon();
|
|
7
|
+
}
|
|
8
|
+
render(view) {
|
|
9
|
+
const { dom, update } = super.render(view);
|
|
10
|
+
return {
|
|
11
|
+
dom: wrapInMenuItemWithIcon(this.icon, dom),
|
|
12
|
+
update,
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ViLW1lbnUtd2l0aC1pY29uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9zaGFyZWQvY29tcG9uZW50cy9yaWNoLXRleHQtZWRpdG9yL3Byb3NlbWlycm9yL21lbnUvc3ViLW1lbnUtd2l0aC1pY29uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQWUsTUFBTSxrQkFBa0IsQ0FBQztBQUloRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkQsTUFBTSxPQUFPLGVBQWdCLFNBQVEsZUFBZTtJQUVoRCxZQUNJLE9BQTZDLEVBQzdDLE9BR0M7UUFFRCxLQUFLLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFDRCxNQUFNLENBQUMsSUFBZ0I7UUFJbkIsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNDLE9BQU87WUFDSCxHQUFHLEVBQUUsc0JBQXNCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUM7WUFDM0MsTUFBTTtTQUNULENBQUM7SUFDTixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEcm9wZG93blN1Ym1lbnUsIE1lbnVFbGVtZW50IH0gZnJvbSAncHJvc2VtaXJyb3ItbWVudSc7XHJcbmltcG9ydCB7IEVkaXRvclN0YXRlIH0gZnJvbSAncHJvc2VtaXJyb3Itc3RhdGUnO1xyXG5pbXBvcnQgeyBFZGl0b3JWaWV3IH0gZnJvbSAncHJvc2VtaXJyb3Itdmlldyc7XHJcblxyXG5pbXBvcnQgeyB3cmFwSW5NZW51SXRlbVdpdGhJY29uIH0gZnJvbSAnLi9tZW51LWNvbW1vbic7XHJcblxyXG5leHBvcnQgY2xhc3MgU3ViTWVudVdpdGhJY29uIGV4dGVuZHMgRHJvcGRvd25TdWJtZW51IHtcclxuICAgIHByaXZhdGUgaWNvbjogSFRNTEVsZW1lbnQ7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBjb250ZW50OiByZWFkb25seSBNZW51RWxlbWVudFtdIHwgTWVudUVsZW1lbnQsXHJcbiAgICAgICAgb3B0aW9uczoge1xyXG4gICAgICAgICAgICBsYWJlbD86IHN0cmluZztcclxuICAgICAgICAgICAgaWNvbjogKCkgPT4gSFRNTEVsZW1lbnQ7XHJcbiAgICAgICAgfSxcclxuICAgICkge1xyXG4gICAgICAgIHN1cGVyKGNvbnRlbnQsIG9wdGlvbnMpO1xyXG4gICAgICAgIHRoaXMuaWNvbiA9IG9wdGlvbnMuaWNvbigpO1xyXG4gICAgfVxyXG4gICAgcmVuZGVyKHZpZXc6IEVkaXRvclZpZXcpOiB7XHJcbiAgICAgICAgZG9tOiBIVE1MRWxlbWVudDtcclxuICAgICAgICB1cGRhdGU6IChzdGF0ZTogRWRpdG9yU3RhdGUpID0+IGJvb2xlYW47XHJcbiAgICB9IHtcclxuICAgICAgICBjb25zdCB7IGRvbSwgdXBkYXRlIH0gPSBzdXBlci5yZW5kZXIodmlldyk7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgZG9tOiB3cmFwSW5NZW51SXRlbVdpdGhJY29uKHRoaXMuaWNvbiwgZG9tKSxcclxuICAgICAgICAgICAgdXBkYXRlLFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { MenuItem } from 'prosemirror-menu';
|
|
2
|
+
import { NodeSelection, Plugin } from 'prosemirror-state';
|
|
3
|
+
import { ExternalImageDialogComponent, } from '../../external-image-dialog/external-image-dialog.component';
|
|
4
|
+
import { canInsert, renderClarityIcon } from '../menu/menu-common';
|
|
5
|
+
export function insertImageItem(nodeType, modalService) {
|
|
6
|
+
return new MenuItem({
|
|
7
|
+
title: 'Insert image',
|
|
8
|
+
label: 'Image',
|
|
9
|
+
render: renderClarityIcon({ shape: 'image', label: 'Image' }),
|
|
10
|
+
class: '',
|
|
11
|
+
css: '',
|
|
12
|
+
enable(state) {
|
|
13
|
+
return canInsert(state, nodeType);
|
|
14
|
+
},
|
|
15
|
+
run(state, _, view) {
|
|
16
|
+
let attrs;
|
|
17
|
+
if (state.selection instanceof NodeSelection && state.selection.node.type === nodeType) {
|
|
18
|
+
attrs = state.selection.node.attrs;
|
|
19
|
+
}
|
|
20
|
+
modalService
|
|
21
|
+
.fromComponent(ExternalImageDialogComponent, {
|
|
22
|
+
closable: true,
|
|
23
|
+
locals: {
|
|
24
|
+
existing: attrs,
|
|
25
|
+
},
|
|
26
|
+
})
|
|
27
|
+
.subscribe(result => {
|
|
28
|
+
if (result) {
|
|
29
|
+
// tslint:disable-next-line:no-non-null-assertion
|
|
30
|
+
view.dispatch(view.state.tr.replaceSelectionWith(nodeType.createAndFill(result)));
|
|
31
|
+
}
|
|
32
|
+
view.focus();
|
|
33
|
+
});
|
|
34
|
+
},
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
export const imageContextMenuPlugin = (contextMenuService, modalService) => new Plugin({
|
|
38
|
+
view: () => {
|
|
39
|
+
return {
|
|
40
|
+
update: view => {
|
|
41
|
+
if (!view.hasFocus()) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
const { doc, selection } = view.state;
|
|
45
|
+
let imageNode;
|
|
46
|
+
let imageNodePos = 0;
|
|
47
|
+
doc.nodesBetween(selection.from, selection.to, (n, pos, parent) => {
|
|
48
|
+
if (n.type.name === 'image') {
|
|
49
|
+
imageNode = n;
|
|
50
|
+
imageNodePos = pos;
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
if (imageNode) {
|
|
55
|
+
const node = view.nodeDOM(imageNodePos);
|
|
56
|
+
if (node instanceof HTMLImageElement) {
|
|
57
|
+
contextMenuService.setContextMenu({
|
|
58
|
+
ref: selection,
|
|
59
|
+
title: 'Image',
|
|
60
|
+
iconShape: 'image',
|
|
61
|
+
element: node,
|
|
62
|
+
coords: view.coordsAtPos(imageNodePos),
|
|
63
|
+
items: [
|
|
64
|
+
{
|
|
65
|
+
enabled: true,
|
|
66
|
+
iconShape: 'image',
|
|
67
|
+
label: 'Image properties',
|
|
68
|
+
onClick: () => {
|
|
69
|
+
contextMenuService.clearContextMenu();
|
|
70
|
+
modalService
|
|
71
|
+
.fromComponent(ExternalImageDialogComponent, {
|
|
72
|
+
closable: true,
|
|
73
|
+
locals: {
|
|
74
|
+
// tslint:disable-next-line:no-non-null-assertion
|
|
75
|
+
existing: imageNode.attrs,
|
|
76
|
+
},
|
|
77
|
+
})
|
|
78
|
+
.subscribe(result => {
|
|
79
|
+
if (result) {
|
|
80
|
+
// tslint:disable-next-line:no-non-null-assertion
|
|
81
|
+
view.dispatch(view.state.tr.replaceSelectionWith(
|
|
82
|
+
// tslint:disable-next-line:no-non-null-assertion
|
|
83
|
+
imageNode.type.createAndFill(result)));
|
|
84
|
+
}
|
|
85
|
+
view.focus();
|
|
86
|
+
});
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
],
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
contextMenuService.clearContextMenu();
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
};
|
|
98
|
+
},
|
|
99
|
+
});
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtcGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9zaGFyZWQvY29tcG9uZW50cy9yaWNoLXRleHQtZWRpdG9yL3Byb3NlbWlycm9yL3BsdWdpbnMvaW1hZ2UtcGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUU1QyxPQUFPLEVBQWUsYUFBYSxFQUFFLE1BQU0sRUFBZSxNQUFNLG1CQUFtQixDQUFDO0FBaUJwRixPQUFPLEVBRUgsNEJBQTRCLEdBQy9CLE1BQU0sNkRBQTZELENBQUM7QUFHckUsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRW5FLE1BQU0sVUFBVSxlQUFlLENBQUMsUUFBa0IsRUFBRSxZQUEwQjtJQUMxRSxPQUFPLElBQUksUUFBUSxDQUFDO1FBQ2hCLEtBQUssRUFBRSxjQUFjO1FBQ3JCLEtBQUssRUFBRSxPQUFPO1FBQ2QsTUFBTSxFQUFFLGlCQUFpQixDQUFDLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDN0QsS0FBSyxFQUFFLEVBQUU7UUFDVCxHQUFHLEVBQUUsRUFBRTtRQUNQLE1BQU0sQ0FBQyxLQUFrQjtZQUNyQixPQUFPLFNBQVMsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDdEMsQ0FBQztRQUNELEdBQUcsQ0FBQyxLQUFrQixFQUFFLENBQUMsRUFBRSxJQUFnQjtZQUN2QyxJQUFJLEtBQXFDLENBQUM7WUFDMUMsSUFBSSxLQUFLLENBQUMsU0FBUyxZQUFZLGFBQWEsSUFBSSxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFO2dCQUNwRixLQUFLLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJ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LEVBQUUsQ0FBQzt3Q0FDakIsQ0FBQyxDQUFDLENBQUM7b0NBQ1gsQ0FBQztpQ0FDSjs2QkFDSjt5QkFDSixDQUFDLENBQUM7cUJBQ047aUJBQ0o7cUJBQU07b0JBQ0gsa0JBQWtCLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztpQkFDekM7WUFDTCxDQUFDO1NBQ0osQ0FBQztJQUNOLENBQUM7Q0FDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNZW51SXRlbSB9IGZyb20gJ3Byb3NlbWlycm9yLW1lbnUnO1xyXG5pbXBvcnQgeyBOb2RlLCBOb2RlVHlwZSB9IGZyb20gJ3Byb3NlbWlycm9yLW1vZGVsJztcclxuaW1wb3J0IHsgRWRpdG9yU3RhdGUsIE5vZGVTZWxlY3Rpb24sIFBsdWdpbiwgVHJhbnNhY3Rpb24gfSBmcm9tICdwcm9zZW1pcnJvci1zdGF0ZSc7XHJcbmltcG9ydCB7XHJcbiAgICBhZGRDb2x1bW5BZnRlcixcclxuICAgIGFkZENvbHVtbkJlZm9yZSxcclxuICAgIGFkZFJvd0FmdGVyLFxyXG4gICAgYWRkUm93QmVmb3JlLFxyXG4gICAgZGVsZXRlQ29sdW1uLFxyXG4gICAgZGVsZXRlUm93LFxyXG4gICAgZGVsZXRlVGFibGUsXHJcbiAgICBtZXJnZUNlbGxzLFxyXG4gICAgc3BsaXRDZWxsLFxyXG4gICAgdG9nZ2xlSGVhZGVyQ29sdW1uLFxyXG4gICAgdG9nZ2xlSGVhZGVyUm93LFxyXG59IGZyb20gJ3Byb3NlbWlycm9yLXRhYmxlcyc7XHJcbmltcG9ydCB7IEVkaXRvclZpZXcgfSBmcm9tICdwcm9zZW1pcnJvci12aWV3JztcclxuXHJcbmltcG9ydCB7IE1vZGFsU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3Byb3ZpZGVycy9tb2RhbC9tb2RhbC5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICAgIEV4dGVybmFsSW1hZ2VBdHRycyxcclxuICAgIEV4dGVybmFsSW1hZ2VEaWFsb2dDb21wb25lbnQsXHJcbn0gZnJvbSAnLi4vLi4vZXh0ZXJuYWwtaW1hZ2UtZGlhbG9nL2V4dGVybmFsLWltYWdlLWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBSYXdIdG1sRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vcmF3LWh0bWwtZGlhbG9nL3Jhdy1odG1sLWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb250ZXh0TWVudUl0ZW0sIENvbnRleHRNZW51U2VydmljZSB9IGZyb20gJy4uL2NvbnRleHQtbWVudS9jb250ZXh0LW1lbnUuc2VydmljZSc7XHJcbmltcG9ydCB7IGNhbkluc2VydCwgcmVuZGVyQ2xhcml0eUljb24gfSBmcm9tICcuLi9tZW51L21lbnUtY29tbW9uJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBpbnNlcnRJbWFnZUl0ZW0obm9kZVR5cGU6IE5vZGVUeXBlLCBtb2RhbFNlcnZpY2U6IE1vZGFsU2VydmljZSkge1xyXG4gICAgcmV0dXJuIG5ldyBNZW51SXRlbSh7XHJcbiAgICAgICAgdGl0bGU6ICdJbnNlcnQgaW1hZ2UnLFxyXG4gICAgICAgIGxhYmVsOiAnSW1hZ2UnLFxyXG4gICAgICAgIHJlbmRlcjogcmVuZGVyQ2xhcml0eUljb24oeyBzaGFwZTogJ2ltYWdlJywgbGFiZWw6ICdJbWFnZScgfSksXHJcbiAgICAgICAgY2xhc3M6ICcnLFxyXG4gICAgICAgIGNzczogJycsXHJcbiAgICAgICAgZW5hYmxlKHN0YXRlOiBFZGl0b3JTdGF0ZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gY2FuSW5zZXJ0KHN0YXRlLCBub2RlVHlwZSk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBydW4oc3RhdGU6IEVkaXRvclN0YXRlLCBfLCB2aWV3OiBFZGl0b3JWaWV3KSB7XHJcbiAgICAgICAgICAgIGxldCBhdHRyczogRXh0ZXJuYWxJbWFnZUF0dHJzIHwgdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICBpZiAoc3RhdGUuc2VsZWN0aW9uIGluc3RhbmNlb2YgTm9kZVNlbGVjdGlvbiAmJiBzdGF0ZS5zZWxlY3Rpb24ubm9kZS50eXBlID09PSBub2RlVHlwZSkge1xyXG4gICAgICAgICAgICAgICAgYXR0cnMgPSBzdGF0ZS5zZWxlY3Rpb24ubm9kZS5hdHRycyBhcyBFeHRlcm5hbEltYWdlQXR0cnM7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbW9kYWxTZXJ2aWNlXHJcbiAgICAgICAgICAgICAgICAuZnJvbUNvbXBvbmVudChFeHRlcm5hbEltYWdlRGlhbG9nQ29tcG9uZW50LCB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2xvc2FibGU6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgbG9jYWxzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4aXN0aW5nOiBhdHRycyxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzdWx0ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1ub24tbnVsbC1hc3NlcnRpb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgdmlldy5kaXNwYXRjaCh2aWV3LnN0YXRlLnRyLnJlcGxhY2VTZWxlY3Rpb25XaXRoKG5vZGVUeXBlLmNyZWF0ZUFuZEZpbGwocmVzdWx0KSEpKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgdmlldy5mb2N1cygpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSxcclxuICAgIH0pO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgaW1hZ2VDb250ZXh0TWVudVBsdWdpbiA9IChjb250ZXh0TWVudVNlcnZpY2U6IENvbnRleHRNZW51U2VydmljZSwgbW9kYWxTZXJ2aWNlOiBNb2RhbFNlcnZpY2UpID0+XHJcbiAgICBuZXcgUGx1Z2luKHtcclxuICAgICAgICB2aWV3OiAoKSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICB1cGRhdGU6IHZpZXcgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghdmlldy5oYXNGb2N1cygpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBkb2MsIHNlbGVjdGlvbiB9ID0gdmlldy5zdGF0ZTtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgaW1hZ2VOb2RlOiBOb2RlIHwgdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBpbWFnZU5vZGVQb3MgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGRvYy5ub2Rlc0JldHdlZW4oc2VsZWN0aW9uLmZyb20sIHNlbGVjdGlvbi50bywgKG4sIHBvcywgcGFyZW50KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuLnR5cGUubmFtZSA9PT0gJ2ltYWdlJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2VOb2RlID0gbjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlTm9kZVBvcyA9IHBvcztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChpbWFnZU5vZGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgbm9kZSA9IHZpZXcubm9kZURPTShpbWFnZU5vZGVQb3MpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobm9kZSBpbnN0YW5jZW9mIEhUTUxJbWFnZUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHRNZW51U2VydmljZS5zZXRDb250ZXh0TWVudSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmOiBzZWxlY3Rpb24sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICdJbWFnZScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvblNoYXBlOiAnaW1hZ2UnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQ6IG5vZGUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29vcmRzOiB2aWV3LmNvb3Jkc0F0UG9zKGltYWdlTm9kZVBvcyksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXM6IFtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5hYmxlZDogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb25TaGFwZTogJ2ltYWdlJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnSW1hZ2UgcHJvcGVydGllcycsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dE1lbnVTZXJ2aWNlLmNsZWFyQ29udGV4dE1lbnUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RhbFNlcnZpY2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmZyb21Db21wb25lbnQoRXh0ZXJuYWxJbWFnZURpYWxvZ0NvbXBvbmVudCwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2FibGU6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhbHM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tbm9uLW51bGwtYXNzZXJ0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhpc3Rpbmc6IGltYWdlTm9kZSEuYXR0cnMgYXMgRXh0ZXJuYWxJbWFnZUF0dHJzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZShyZXN1bHQgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1ub24tbnVsbC1hc3NlcnRpb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3LmRpc3BhdGNoKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3LnN0YXRlLnRyLnJlcGxhY2VTZWxlY3Rpb25XaXRoKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLW5vbi1udWxsLWFzc2VydGlvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2VOb2RlIS50eXBlLmNyZWF0ZUFuZEZpbGwocmVzdWx0KSEsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXcuZm9jdXMoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHRNZW51U2VydmljZS5jbGVhckNvbnRleHRNZW51KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9LFxyXG4gICAgfSk7XHJcbiJdfQ==
|
package/esm2020/core/shared/components/rich-text-editor/prosemirror/plugins/raw-editor-plugin.mjs
ADDED
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { DOMParser, DOMSerializer } from 'prosemirror-model';
|
|
2
|
+
import { Plugin } from 'prosemirror-state';
|
|
3
|
+
import { RawHtmlDialogComponent } from '../../raw-html-dialog/raw-html-dialog.component';
|
|
4
|
+
/**
|
|
5
|
+
* Implements editing of raw HTML for the selected node in the editor.
|
|
6
|
+
*/
|
|
7
|
+
export const rawEditorPlugin = (contextMenuService, modalService) => new Plugin({
|
|
8
|
+
view: _view => {
|
|
9
|
+
const domParser = DOMParser.fromSchema(_view.state.schema);
|
|
10
|
+
const domSerializer = DOMSerializer.fromSchema(_view.state.schema);
|
|
11
|
+
return {
|
|
12
|
+
update: view => {
|
|
13
|
+
if (!view.hasFocus()) {
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
let topLevelNode;
|
|
17
|
+
const { doc, selection } = view.state;
|
|
18
|
+
let topLevelNodePos = 0;
|
|
19
|
+
doc.nodesBetween(selection.from, selection.to, (n, pos, parent) => {
|
|
20
|
+
if (parent === doc) {
|
|
21
|
+
topLevelNode = n;
|
|
22
|
+
topLevelNodePos = pos;
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
if (topLevelNode) {
|
|
27
|
+
const node = view.nodeDOM(topLevelNodePos);
|
|
28
|
+
if (node instanceof HTMLElement) {
|
|
29
|
+
contextMenuService.setContextMenu({
|
|
30
|
+
ref: selection,
|
|
31
|
+
title: '',
|
|
32
|
+
// iconShape: 'ellipsis-vertical',
|
|
33
|
+
element: node,
|
|
34
|
+
coords: view.coordsAtPos(topLevelNodePos),
|
|
35
|
+
items: [
|
|
36
|
+
{
|
|
37
|
+
enabled: true,
|
|
38
|
+
iconShape: 'code',
|
|
39
|
+
label: 'Edit HTML',
|
|
40
|
+
onClick: () => {
|
|
41
|
+
contextMenuService.clearContextMenu();
|
|
42
|
+
const element = domSerializer.serializeNode(
|
|
43
|
+
// tslint:disable-next-line:no-non-null-assertion
|
|
44
|
+
topLevelNode);
|
|
45
|
+
modalService
|
|
46
|
+
.fromComponent(RawHtmlDialogComponent, {
|
|
47
|
+
size: 'xl',
|
|
48
|
+
locals: {
|
|
49
|
+
html: element.outerHTML,
|
|
50
|
+
},
|
|
51
|
+
})
|
|
52
|
+
.subscribe(result => {
|
|
53
|
+
if (result) {
|
|
54
|
+
const domNode = htmlToDomNode(result, topLevelNode?.isLeaf ? undefined : node);
|
|
55
|
+
if (domNode) {
|
|
56
|
+
let tr = view.state.tr;
|
|
57
|
+
const parsedNodeSlice = domParser.parse(domNode);
|
|
58
|
+
try {
|
|
59
|
+
tr = tr.replaceRangeWith(topLevelNodePos, topLevelNodePos +
|
|
60
|
+
(topLevelNode?.nodeSize ?? 0), parsedNodeSlice);
|
|
61
|
+
}
|
|
62
|
+
catch (err) {
|
|
63
|
+
// tslint:disable-next-line:no-console
|
|
64
|
+
console.error(err);
|
|
65
|
+
}
|
|
66
|
+
view.dispatch(tr);
|
|
67
|
+
view.focus();
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
},
|
|
72
|
+
},
|
|
73
|
+
],
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
};
|
|
79
|
+
},
|
|
80
|
+
});
|
|
81
|
+
function htmlToDomNode(html, wrapInParent) {
|
|
82
|
+
html = `${html.trim()}`;
|
|
83
|
+
const template = document.createElement('template');
|
|
84
|
+
if (wrapInParent) {
|
|
85
|
+
const parentClone = wrapInParent.cloneNode(false);
|
|
86
|
+
parentClone.innerHTML = html;
|
|
87
|
+
template.content.appendChild(parentClone);
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
const parent = document.createElement('p');
|
|
91
|
+
parent.innerHTML = html;
|
|
92
|
+
template.content.appendChild(parent);
|
|
93
|
+
}
|
|
94
|
+
return template.content.firstChild;
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF3LWVkaXRvci1wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL3JpY2gtdGV4dC1lZGl0b3IvcHJvc2VtaXJyb3IvcGx1Z2lucy9yYXctZWRpdG9yLXBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBUSxNQUFNLG1CQUFtQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUkzQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUd6Rjs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFDLGtCQUFzQyxFQUFFLFlBQTBCLEVBQUUsRUFBRSxDQUNsRyxJQUFJLE1BQU0sQ0FBQztJQUNQLElBQUksRUFBRSxLQUFLLENBQUMsRUFBRTtRQUNWLE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMzRCxNQUFNLGFBQWEsR0FBRyxhQUFhLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkUsT0FBTztZQUNILE1BQU0sRUFBRSxJQUFJLENBQUMsRUFBRTtnQkFDWCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFO29CQUNsQixPQUFPO2lCQUNWO2dCQUNELElBQUksWUFBOEIsQ0FBQztnQkFDbkMsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO2dCQUN0QyxJQUFJLGVBQWUsR0FBRyxDQUFDLENBQUM7Z0JBQ3hCLEdBQUcsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxTQUFTLENB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QUMsV0FBVyxDQUFDLENBQUM7S0FDN0M7U0FBTTtRQUNILE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDM0MsTUFBTSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDeEIsUUFBUSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7S0FDeEM7SUFDRCxPQUFPLFFBQVEsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO0FBQ3ZDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET01QYXJzZXIsIERPTVNlcmlhbGl6ZXIsIE5vZGUgfSBmcm9tICdwcm9zZW1pcnJvci1tb2RlbCc7XHJcbmltcG9ydCB7IFBsdWdpbiB9IGZyb20gJ3Byb3NlbWlycm9yLXN0YXRlJztcclxuaW1wb3J0IHsgUHJvdG9jb2wgfSBmcm9tICdwdXBwZXRlZXInO1xyXG5cclxuaW1wb3J0IHsgTW9kYWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vcHJvdmlkZXJzL21vZGFsL21vZGFsLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBSYXdIdG1sRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vcmF3LWh0bWwtZGlhbG9nL3Jhdy1odG1sLWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb250ZXh0TWVudVNlcnZpY2UgfSBmcm9tICcuLi9jb250ZXh0LW1lbnUvY29udGV4dC1tZW51LnNlcnZpY2UnO1xyXG5cclxuLyoqXHJcbiAqIEltcGxlbWVudHMgZWRpdGluZyBvZiByYXcgSFRNTCBmb3IgdGhlIHNlbGVjdGVkIG5vZGUgaW4gdGhlIGVkaXRvci5cclxuICovXHJcbmV4cG9ydCBjb25zdCByYXdFZGl0b3JQbHVnaW4gPSAoY29udGV4dE1lbnVTZXJ2aWNlOiBDb250ZXh0TWVudVNlcnZpY2UsIG1vZGFsU2VydmljZTogTW9kYWxTZXJ2aWNlKSA9PlxyXG4gICAgbmV3IFBsdWdpbih7XHJcbiAgICAgICAgdmlldzogX3ZpZXcgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBkb21QYXJzZXIgPSBET01QYXJzZXIuZnJvbVNjaGVtYShfdmlldy5zdGF0ZS5zY2hlbWEpO1xyXG4gICAgICAgICAgICBjb25zdCBkb21TZXJpYWxpemVyID0gRE9NU2VyaWFsaXplci5mcm9tU2NoZW1hKF92aWV3LnN0YXRlLnNjaGVtYSk7XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICB1cGRhdGU6IHZpZXcgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghdmlldy5oYXNGb2N1cygpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHRvcExldmVsTm9kZTogTm9kZSB8IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IGRvYywgc2VsZWN0aW9uIH0gPSB2aWV3LnN0YXRlO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCB0b3BMZXZlbE5vZGVQb3MgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGRvYy5ub2Rlc0JldHdlZW4oc2VsZWN0aW9uLmZyb20sIHNlbGVjdGlvbi50bywgKG4sIHBvcywgcGFyZW50KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXJlbnQgPT09IGRvYykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wTGV2ZWxOb2RlID0gbjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcExldmVsTm9kZVBvcyA9IHBvcztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0b3BMZXZlbE5vZGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgbm9kZSA9IHZpZXcubm9kZURPTSh0b3BMZXZlbE5vZGVQb3MpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobm9kZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0TWVudVNlcnZpY2Uuc2V0Q29udGV4dE1lbnUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZjogc2VsZWN0aW9uLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAnJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpY29uU2hhcGU6ICdlbGxpcHNpcy12ZXJ0aWNhbCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudDogbm9kZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb29yZHM6IHZpZXcuY29vcmRzQXRQb3ModG9wTGV2ZWxOb2RlUG9zKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtczogW1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmFibGVkOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvblNoYXBlOiAnY29kZScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ0VkaXQgSFRNTCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dE1lbnVTZXJ2aWNlLmNsZWFyQ29udGV4dE1lbnUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9tU2VyaWFsaXplci5zZXJpYWxpemVOb2RlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tbm9uLW51bGwtYXNzZXJ0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcExldmVsTm9kZSEsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSBhcyBIVE1MRWxlbWVudDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RhbFNlcnZpY2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmZyb21Db21wb25lbnQoUmF3SHRtbERpYWxvZ0NvbXBvbmVudCwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZTogJ3hsJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2Fsczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0bWw6IGVsZW1lbnQub3V0ZXJIVE1MLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZShyZXN1bHQgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRvbU5vZGUgPSBodG1sVG9Eb21Ob2RlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcExldmVsTm9kZT8uaXNMZWFmID8gdW5kZWZpbmVkIDogbm9kZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkb21Ob2RlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ciA9IHZpZXcuc3RhdGUudHI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhcnNlZE5vZGVTbGljZSA9IGRvbVBhcnNlci5wYXJzZShkb21Ob2RlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyID0gdHIucmVwbGFjZVJhbmdlV2l0aChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3BMZXZlbE5vZGVQb3MsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wTGV2ZWxOb2RlUG9zICtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRvcExldmVsTm9kZT8ubm9kZVNpemUgPz8gMCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VkTm9kZVNsaWNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyOiBhbnkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1jb25zb2xlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlldy5kaXNwYXRjaCh0cik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXcuZm9jdXMoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH0sXHJcbiAgICB9KTtcclxuXHJcbmZ1bmN0aW9uIGh0bWxUb0RvbU5vZGUoaHRtbDogc3RyaW5nLCB3cmFwSW5QYXJlbnQ/OiBIVE1MRWxlbWVudCkge1xyXG4gICAgaHRtbCA9IGAke2h0bWwudHJpbSgpfWA7XHJcbiAgICBjb25zdCB0ZW1wbGF0ZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RlbXBsYXRlJyk7XHJcbiAgICBpZiAod3JhcEluUGFyZW50KSB7XHJcbiAgICAgICAgY29uc3QgcGFyZW50Q2xvbmUgPSB3cmFwSW5QYXJlbnQuY2xvbmVOb2RlKGZhbHNlKSBhcyBIVE1MRWxlbWVudDtcclxuICAgICAgICBwYXJlbnRDbG9uZS5pbm5lckhUTUwgPSBodG1sO1xyXG4gICAgICAgIHRlbXBsYXRlLmNvbnRlbnQuYXBwZW5kQ2hpbGQocGFyZW50Q2xvbmUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCBwYXJlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdwJyk7XHJcbiAgICAgICAgcGFyZW50LmlubmVySFRNTCA9IGh0bWw7XHJcbiAgICAgICAgdGVtcGxhdGUuY29udGVudC5hcHBlbmRDaGlsZChwYXJlbnQpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRlbXBsYXRlLmNvbnRlbnQuZmlyc3RDaGlsZDtcclxufVxyXG4iXX0=
|