@cuby-ui/core 0.0.227 → 0.0.230
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/components/button/button.component.d.ts +1 -1
- package/components/content-wrapper/content-wrapper.component.d.ts +11 -0
- package/components/content-wrapper/index.d.ts +1 -0
- package/components/empty-state/empty-state.component.d.ts +7 -0
- package/components/empty-state/index.d.ts +1 -0
- package/components/ghost-input/ghost-input.component.d.ts +6 -0
- package/components/ghost-input/index.d.ts +1 -0
- package/components/index.d.ts +3 -0
- package/components/sidebar/sidebar-header/sidebar-header.component.d.ts +1 -1
- package/components/sidebar/sidebar-navigation-item/sidebar-navigation-item.component.d.ts +1 -1
- package/directives/tooltip/tooltip.component.d.ts +1 -1
- package/editor/components/editor-attaches-tool/editor-attaches-tool.component.d.ts +44 -0
- package/editor/components/editor-attaches-tool/editor-attaches-tool.options.d.ts +17 -0
- package/editor/components/editor-attaches-tool/index.d.ts +2 -0
- package/editor/components/editor-image-tool/editor-image-tool.component.d.ts +14 -0
- package/editor/components/editor-image-tool/editor-image-tool.options.d.ts +26 -0
- package/editor/components/editor-image-tool/index.d.ts +2 -0
- package/editor/components/editor-tool/editor-tool.component.d.ts +22 -0
- package/editor/components/editor-tool-modal/editor-tool-modal.component.d.ts +24 -0
- package/editor/components/editor-tool-modal/editor-tool-modal.options.d.ts +8 -0
- package/editor/components/editor-tool-modal/index.d.ts +2 -0
- package/editor/components/editor-tooltip/editor-tooltip.component.d.ts +16 -0
- package/editor/components/editor-tooltip/editor-tooltip.options.d.ts +9 -0
- package/editor/components/editor-tooltip/index.d.ts +2 -0
- package/editor/components/editor-video-tool/editor-video-tool.component.d.ts +12 -0
- package/editor/components/editor-video-tool/editor-video-tool.options.d.ts +26 -0
- package/editor/components/editor-video-tool/index.d.ts +2 -0
- package/editor/components/index.d.ts +7 -0
- package/editor/components/marker-modal/index.d.ts +3 -0
- package/editor/components/marker-modal/marker-modal.component.d.ts +62 -0
- package/editor/components/marker-modal/marker-modal.interfaces.d.ts +7 -0
- package/editor/components/marker-modal/marker-modal.options.d.ts +1 -0
- package/editor/components/marker-select/component/select-item/select-option.component.d.ts +7 -0
- package/editor/components/marker-select/index.d.ts +2 -0
- package/editor/components/marker-select/marker-select.component.d.ts +40 -0
- package/editor/components/marker-select/marker-select.options.d.ts +1 -0
- package/editor/config/custom-elements.d.ts +2 -0
- package/editor/config/editor.config.d.ts +3 -0
- package/editor/config/editor.provider.d.ts +2 -0
- package/editor/config/index.d.ts +2 -0
- package/editor/constants/editor.constants.d.ts +15 -0
- package/editor/constants/index.d.ts +1 -0
- package/editor/editor.component.d.ts +71 -0
- package/editor/events/editor-drag.event.d.ts +2 -0
- package/editor/events/editor-keyboard.event.d.ts +2 -0
- package/editor/events/editor-modal.event.d.ts +3 -0
- package/editor/events/editor-tooltip.event.d.ts +2 -0
- package/editor/events/set-editor-events.d.ts +1 -0
- package/editor/index.d.ts +9 -0
- package/editor/interfaces/angular-element.d.ts +2 -0
- package/editor/interfaces/blocks-request-data.d.ts +6 -0
- package/editor/interfaces/combined-block-adding-event.d.ts +7 -0
- package/editor/interfaces/combined-block-data.d.ts +5 -0
- package/editor/interfaces/combined-part-block-data.d.ts +7 -0
- package/editor/interfaces/custom-element.d.ts +5 -0
- package/editor/interfaces/event-action-data.d.ts +5 -0
- package/editor/interfaces/file-response-data.d.ts +10 -0
- package/editor/interfaces/full-block-data.d.ts +8 -0
- package/editor/interfaces/index.d.ts +14 -0
- package/editor/interfaces/main-editor-config.d.ts +15 -0
- package/editor/interfaces/mutation-actions.d.ts +5 -0
- package/editor/interfaces/parent.d.ts +4 -0
- package/editor/interfaces/tools.d.ts +4 -0
- package/editor/interfaces/tune.d.ts +6 -0
- package/editor/pipes/file-size.pipe.d.ts +9 -0
- package/editor/services/editor-service.options.d.ts +8 -0
- package/editor/services/editor.service.d.ts +23 -0
- package/editor/services/index.d.ts +6 -0
- package/editor/services/jtext-api.options.d.ts +20 -0
- package/editor/services/jtext-api.service.d.ts +23 -0
- package/editor/services/markers-service.options.d.ts +4 -0
- package/editor/services/markers.service.d.ts +11 -0
- package/editor/tools/attaches.tool.d.ts +28 -0
- package/editor/tools/bold.tool.d.ts +11 -0
- package/editor/tools/combined-text-block.tool.d.ts +49 -0
- package/editor/tools/custom-marker.tool.d.ts +16 -0
- package/editor/tools/header.tool.d.ts +8 -0
- package/editor/tools/image.tool.d.ts +37 -0
- package/editor/tools/index.d.ts +11 -0
- package/editor/tools/italic.tool.d.ts +12 -0
- package/editor/tools/link-marker.tool.d.ts +15 -0
- package/editor/tools/list.tool.d.ts +5 -0
- package/editor/tools/marker.tool.d.ts +36 -0
- package/editor/tools/role-marker.tool.d.ts +7 -0
- package/editor/tools/selection-base.tool.d.ts +24 -0
- package/editor/tools/tool-marker.tool.d.ts +7 -0
- package/editor/tools/video.tool.d.ts +32 -0
- package/editor/utils/create-link-modal.d.ts +3 -0
- package/editor/utils/create-tool-modal.d.ts +4 -0
- package/editor/utils/create-tooltip.d.ts +8 -0
- package/editor/utils/file-uploader.d.ts +26 -0
- package/editor/utils/generate-id.d.ts +1 -0
- package/editor/utils/index.d.ts +9 -0
- package/editor/utils/recalculate-indexes.d.ts +2 -0
- package/editor/utils/remove-element-tag-wrapper.d.ts +1 -0
- package/editor/utils/split-html.d.ts +1 -0
- package/editor/utils/url.validator.d.ts +2 -0
- package/editor/widgets/editor-block/editor-block.component.d.ts +22 -0
- package/editor/widgets/editor-block/index.d.ts +1 -0
- package/editor/widgets/editor-modal/editor-modal.component.d.ts +19 -0
- package/editor/widgets/editor-modal/index.d.ts +1 -0
- package/editor/widgets/editor-readonly/editor-readonly.component.d.ts +28 -0
- package/editor/widgets/editor-readonly/editor-readonly.options.d.ts +5 -0
- package/editor/widgets/editor-readonly/index.d.ts +2 -0
- package/editor/widgets/index.d.ts +3 -0
- package/esm2022/components/breadcrumbs/breadcrumbs.component.mjs +2 -2
- package/esm2022/components/content-wrapper/content-wrapper.component.mjs +29 -0
- package/esm2022/components/content-wrapper/index.mjs +2 -0
- package/esm2022/components/empty-state/empty-state.component.mjs +17 -0
- package/esm2022/components/empty-state/index.mjs +2 -0
- package/esm2022/components/ghost-input/ghost-input.component.mjs +16 -0
- package/esm2022/components/ghost-input/index.mjs +2 -0
- package/esm2022/components/index.mjs +4 -1
- package/esm2022/directives/tooltip/tooltip-describe.directive.mjs +5 -3
- package/esm2022/directives/tooltip/tooltip-position.directive.mjs +6 -3
- package/esm2022/directives/tooltip/tooltip.component.mjs +6 -3
- package/esm2022/editor/components/editor-attaches-tool/editor-attaches-tool.component.mjs +76 -0
- package/esm2022/editor/components/editor-attaches-tool/editor-attaches-tool.options.mjs +2 -0
- package/esm2022/editor/components/editor-attaches-tool/index.mjs +3 -0
- package/esm2022/editor/components/editor-image-tool/editor-image-tool.component.mjs +43 -0
- package/esm2022/editor/components/editor-image-tool/editor-image-tool.options.mjs +2 -0
- package/esm2022/editor/components/editor-image-tool/index.mjs +3 -0
- package/esm2022/editor/components/editor-tool/editor-tool.component.mjs +74 -0
- package/esm2022/editor/components/editor-tool-modal/editor-tool-modal.component.mjs +69 -0
- package/esm2022/editor/components/editor-tool-modal/editor-tool-modal.options.mjs +2 -0
- package/esm2022/editor/components/editor-tool-modal/index.mjs +3 -0
- package/esm2022/editor/components/editor-tooltip/editor-tooltip.component.mjs +45 -0
- package/esm2022/editor/components/editor-tooltip/editor-tooltip.options.mjs +2 -0
- package/esm2022/editor/components/editor-tooltip/index.mjs +3 -0
- package/esm2022/editor/components/editor-video-tool/editor-video-tool.component.mjs +41 -0
- package/esm2022/editor/components/editor-video-tool/editor-video-tool.options.mjs +2 -0
- package/esm2022/editor/components/editor-video-tool/index.mjs +3 -0
- package/esm2022/editor/components/index.mjs +8 -0
- package/esm2022/editor/components/marker-modal/index.mjs +3 -0
- package/esm2022/editor/components/marker-modal/marker-modal.component.mjs +261 -0
- package/esm2022/editor/components/marker-modal/marker-modal.interfaces.mjs +2 -0
- package/esm2022/editor/components/marker-modal/marker-modal.options.mjs +2 -0
- package/esm2022/editor/components/marker-select/component/select-item/select-option.component.mjs +15 -0
- package/esm2022/editor/components/marker-select/index.mjs +3 -0
- package/esm2022/editor/components/marker-select/marker-select.component.mjs +155 -0
- package/esm2022/editor/components/marker-select/marker-select.options.mjs +2 -0
- package/esm2022/editor/config/custom-elements.mjs +32 -0
- package/esm2022/editor/config/editor.config.mjs +30 -0
- package/esm2022/editor/config/editor.provider.mjs +19 -0
- package/esm2022/editor/config/index.mjs +3 -0
- package/esm2022/editor/constants/editor.constants.mjs +20 -0
- package/esm2022/editor/constants/index.mjs +2 -0
- package/esm2022/editor/editor.component.mjs +380 -0
- package/esm2022/editor/events/editor-drag.event.mjs +7 -0
- package/esm2022/editor/events/editor-keyboard.event.mjs +33 -0
- package/esm2022/editor/events/editor-modal.event.mjs +31 -0
- package/esm2022/editor/events/editor-tooltip.event.mjs +63 -0
- package/esm2022/editor/events/set-editor-events.mjs +11 -0
- package/esm2022/editor/i18n/en.json +14 -0
- package/esm2022/editor/index.mjs +8 -0
- package/esm2022/editor/interfaces/angular-element.mjs +2 -0
- package/esm2022/editor/interfaces/blocks-request-data.mjs +2 -0
- package/esm2022/editor/interfaces/combined-block-adding-event.mjs +2 -0
- package/esm2022/editor/interfaces/combined-block-data.mjs +2 -0
- package/esm2022/editor/interfaces/combined-part-block-data.mjs +2 -0
- package/esm2022/editor/interfaces/custom-element.mjs +2 -0
- package/esm2022/editor/interfaces/event-action-data.mjs +2 -0
- package/esm2022/editor/interfaces/file-response-data.mjs +2 -0
- package/esm2022/editor/interfaces/full-block-data.mjs +2 -0
- package/esm2022/editor/interfaces/index.mjs +14 -0
- package/esm2022/editor/interfaces/main-editor-config.mjs +2 -0
- package/esm2022/editor/interfaces/mutation-actions.mjs +2 -0
- package/esm2022/editor/interfaces/parent.mjs +2 -0
- package/esm2022/editor/interfaces/tools.mjs +2 -0
- package/esm2022/editor/interfaces/tune.mjs +2 -0
- package/esm2022/editor/pipes/file-size.pipe.mjs +25 -0
- package/esm2022/editor/services/editor-service.options.mjs +4 -0
- package/esm2022/editor/services/editor.service.mjs +138 -0
- package/esm2022/editor/services/index.mjs +7 -0
- package/esm2022/editor/services/jtext-api.options.mjs +2 -0
- package/esm2022/editor/services/jtext-api.service.mjs +50 -0
- package/esm2022/editor/services/markers-service.options.mjs +2 -0
- package/esm2022/editor/services/markers.service.mjs +79 -0
- package/esm2022/editor/tools/attaches.tool.mjs +96 -0
- package/esm2022/editor/tools/bold.tool.mjs +33 -0
- package/esm2022/editor/tools/combined-text-block.tool.mjs +380 -0
- package/esm2022/editor/tools/custom-marker.tool.mjs +88 -0
- package/esm2022/editor/tools/header.tool.mjs +16 -0
- package/esm2022/editor/tools/image.tool.mjs +157 -0
- package/esm2022/editor/tools/index.mjs +12 -0
- package/esm2022/editor/tools/italic.tool.mjs +35 -0
- package/esm2022/editor/tools/link-marker.tool.mjs +80 -0
- package/esm2022/editor/tools/list.tool.mjs +10 -0
- package/esm2022/editor/tools/marker.tool.mjs +144 -0
- package/esm2022/editor/tools/role-marker.tool.mjs +17 -0
- package/esm2022/editor/tools/selection-base.tool.mjs +92 -0
- package/esm2022/editor/tools/tool-marker.tool.mjs +14 -0
- package/esm2022/editor/tools/video.tool.mjs +132 -0
- package/esm2022/editor/utils/create-link-modal.mjs +22 -0
- package/esm2022/editor/utils/create-tool-modal.mjs +45 -0
- package/esm2022/editor/utils/create-tooltip.mjs +44 -0
- package/esm2022/editor/utils/file-uploader.mjs +57 -0
- package/esm2022/editor/utils/generate-id.mjs +4 -0
- package/esm2022/editor/utils/index.mjs +10 -0
- package/esm2022/editor/utils/recalculate-indexes.mjs +32 -0
- package/esm2022/editor/utils/remove-element-tag-wrapper.mjs +11 -0
- package/esm2022/editor/utils/split-html.mjs +128 -0
- package/esm2022/editor/utils/url.validator.mjs +12 -0
- package/esm2022/editor/widgets/editor-block/editor-block.component.mjs +63 -0
- package/esm2022/editor/widgets/editor-block/index.mjs +2 -0
- package/esm2022/editor/widgets/editor-modal/editor-modal.component.mjs +47 -0
- package/esm2022/editor/widgets/editor-modal/index.mjs +2 -0
- package/esm2022/editor/widgets/editor-readonly/editor-readonly.component.mjs +40 -0
- package/esm2022/editor/widgets/editor-readonly/editor-readonly.options.mjs +2 -0
- package/esm2022/editor/widgets/editor-readonly/index.mjs +2 -0
- package/esm2022/editor/widgets/index.mjs +4 -0
- package/esm2022/index.mjs +3 -1
- package/esm2022/interceptors/loader.interceptor.mjs +3 -3
- package/esm2022/services/loader.options.mjs +2 -2
- package/esm2022/services/loader.service.mjs +11 -11
- package/esm2022/utils/default-validators/create-default-validators.mjs +12 -0
- package/esm2022/utils/default-validators/extra-spaces.options.mjs +11 -0
- package/esm2022/utils/default-validators/extra-spaces.validators.mjs +16 -0
- package/esm2022/utils/default-validators/index.mjs +2 -0
- package/esm2022/utils/index.mjs +2 -1
- package/esm2022/widgets/categories/categories.component.mjs +75 -0
- package/esm2022/widgets/categories/components/categories-list/categories-list.component.mjs +16 -0
- package/esm2022/widgets/categories/components/categories-list/index.mjs +2 -0
- package/esm2022/widgets/categories/components/category-form/category-form.component.mjs +79 -0
- package/esm2022/widgets/categories/components/category-form/index.mjs +2 -0
- package/esm2022/widgets/categories/components/category-item/category-item.component.mjs +123 -0
- package/esm2022/widgets/categories/components/category-item/index.mjs +2 -0
- package/esm2022/widgets/categories/components/create-category-item/create-category-item.component.mjs +25 -0
- package/esm2022/widgets/categories/components/create-category-item/index.mjs +2 -0
- package/esm2022/widgets/categories/components/index.mjs +3 -0
- package/esm2022/widgets/categories/index.mjs +2 -0
- package/esm2022/widgets/categories/services/index.mjs +2 -0
- package/esm2022/widgets/categories/services/selected-category.service.mjs +38 -0
- package/esm2022/widgets/general-control-error-hint/general-control-error-hint.component.mjs +21 -0
- package/esm2022/widgets/general-control-error-hint/index.mjs +2 -0
- package/esm2022/widgets/index.mjs +3 -0
- package/esm2022/widgets/utility-info/index.mjs +2 -0
- package/esm2022/widgets/utility-info/utility-info.component.mjs +224 -0
- package/fesm2022/cuby-ui-core-en-D3DnyYmu.mjs +29 -0
- package/fesm2022/cuby-ui-core-en-D3DnyYmu.mjs.map +1 -0
- package/fesm2022/cuby-ui-core.mjs +4047 -67
- package/fesm2022/cuby-ui-core.mjs.map +1 -1
- package/index.d.ts +2 -0
- package/package.json +3 -3
- package/services/loader.options.d.ts +2 -2
- package/services/loader.service.d.ts +7 -7
- package/utils/default-validators/create-default-validators.d.ts +5 -0
- package/utils/default-validators/extra-spaces.options.d.ts +2 -0
- package/utils/default-validators/extra-spaces.validators.d.ts +3 -0
- package/utils/default-validators/index.d.ts +1 -0
- package/utils/index.d.ts +1 -0
- package/widgets/categories/categories.component.d.ts +24 -0
- package/widgets/categories/components/categories-list/categories-list.component.d.ts +7 -0
- package/widgets/categories/components/categories-list/index.d.ts +1 -0
- package/widgets/categories/components/category-form/category-form.component.d.ts +28 -0
- package/widgets/categories/components/category-form/index.d.ts +1 -0
- package/widgets/categories/components/category-item/category-item.component.d.ts +40 -0
- package/widgets/categories/components/category-item/index.d.ts +1 -0
- package/widgets/categories/components/create-category-item/create-category-item.component.d.ts +10 -0
- package/widgets/categories/components/create-category-item/index.d.ts +1 -0
- package/widgets/categories/components/index.d.ts +2 -0
- package/widgets/categories/index.d.ts +1 -0
- package/widgets/categories/services/index.d.ts +1 -0
- package/widgets/categories/services/selected-category.service.d.ts +18 -0
- package/widgets/general-control-error-hint/general-control-error-hint.component.d.ts +9 -0
- package/widgets/general-control-error-hint/index.d.ts +1 -0
- package/widgets/index.d.ts +2 -0
- package/widgets/utility-info/index.d.ts +1 -0
- package/widgets/utility-info/utility-info.component.d.ts +45 -0
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { EDITOR_ATTACHES_TOOL_SELECTOR, EDITOR_IMAGE_TOOL_SELECTOR, EDITOR_TOOL_MODAL_SELECTOR, EDITOR_TOOLTIP_SELECTOR, EDITOR_VIDEO_TOOL_SELECTOR, EditorAttachesToolComponent, EditorImageToolComponent, EditorToolModalComponent, EditorTooltipComponent, EditorVideoToolComponent, MARKER_MODAL_SELECTOR, MARKER_SELECT_SELECTOR, MarkerModalComponent, MarkerSelectComponent } from "../components";
|
|
2
|
+
export const EDITOR_CUSTOM_ELEMENTS = [
|
|
3
|
+
{
|
|
4
|
+
selector: EDITOR_TOOLTIP_SELECTOR,
|
|
5
|
+
component: EditorTooltipComponent
|
|
6
|
+
},
|
|
7
|
+
{
|
|
8
|
+
selector: MARKER_SELECT_SELECTOR,
|
|
9
|
+
component: MarkerSelectComponent
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
selector: EDITOR_TOOL_MODAL_SELECTOR,
|
|
13
|
+
component: EditorToolModalComponent
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
selector: MARKER_MODAL_SELECTOR,
|
|
17
|
+
component: MarkerModalComponent
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
selector: EDITOR_VIDEO_TOOL_SELECTOR,
|
|
21
|
+
component: EditorVideoToolComponent
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
selector: EDITOR_IMAGE_TOOL_SELECTOR,
|
|
25
|
+
component: EditorImageToolComponent
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
selector: EDITOR_ATTACHES_TOOL_SELECTOR,
|
|
29
|
+
component: EditorAttachesToolComponent
|
|
30
|
+
}
|
|
31
|
+
];
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWVsZW1lbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9lZGl0b3IvY29uZmlnL2N1c3RvbS1lbGVtZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsMEJBQTBCLEVBQUUsMEJBQTBCLEVBQUUsdUJBQXVCLEVBQUUsMEJBQTBCLEVBQUUsMkJBQTJCLEVBQUUsd0JBQXdCLEVBQUUsd0JBQXdCLEVBQUUsc0JBQXNCLEVBQUUsd0JBQXdCLEVBQUUscUJBQXFCLEVBQUUsc0JBQXNCLEVBQUUsb0JBQW9CLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHMVksTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQWdDO0lBQy9EO1FBQ0ksUUFBUSxFQUFFLHVCQUF1QjtRQUNqQyxTQUFTLEVBQUUsc0JBQXNCO0tBQ3BDO0lBQ0Q7UUFDSSxRQUFRLEVBQUUsc0JBQXNCO1FBQ2hDLFNBQVMsRUFBRSxxQkFBcUI7S0FDbkM7SUFDRDtRQUNJLFFBQVEsRUFBRSwwQkFBMEI7UUFDcEMsU0FBUyxFQUFFLHdCQUF3QjtLQUN0QztJQUNEO1FBQ0ksUUFBUSxFQUFFLHFCQUFxQjtRQUMvQixTQUFTLEVBQUUsb0JBQW9CO0tBQ2xDO0lBQ0Q7UUFDSSxRQUFRLEVBQUUsMEJBQTBCO1FBQ3BDLFNBQVMsRUFBRSx3QkFBd0I7S0FDdEM7SUFDRDtRQUNJLFFBQVEsRUFBRSwwQkFBMEI7UUFDcEMsU0FBUyxFQUFFLHdCQUF3QjtLQUN0QztJQUNEO1FBQ0ksUUFBUSxFQUFFLDZCQUE2QjtRQUN2QyxTQUFTLEVBQUUsMkJBQTJCO0tBQ3pDO0NBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVESVRPUl9BVFRBQ0hFU19UT09MX1NFTEVDVE9SLCBFRElUT1JfSU1BR0VfVE9PTF9TRUxFQ1RPUiwgRURJVE9SX1RPT0xfTU9EQUxfU0VMRUNUT1IsIEVESVRPUl9UT09MVElQX1NFTEVDVE9SLCBFRElUT1JfVklERU9fVE9PTF9TRUxFQ1RPUiwgRWRpdG9yQXR0YWNoZXNUb29sQ29tcG9uZW50LCBFZGl0b3JJbWFnZVRvb2xDb21wb25lbnQsIEVkaXRvclRvb2xNb2RhbENvbXBvbmVudCwgRWRpdG9yVG9vbHRpcENvbXBvbmVudCwgRWRpdG9yVmlkZW9Ub29sQ29tcG9uZW50LCBNQVJLRVJfTU9EQUxfU0VMRUNUT1IsIE1BUktFUl9TRUxFQ1RfU0VMRUNUT1IsIE1hcmtlck1vZGFsQ29tcG9uZW50LCBNYXJrZXJTZWxlY3RDb21wb25lbnQgfSBmcm9tIFwiLi4vY29tcG9uZW50c1wiO1xyXG5pbXBvcnQgeyBDdWlDdXN0b21FbGVtZW50IH0gZnJvbSBcIi4uL2ludGVyZmFjZXNcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBFRElUT1JfQ1VTVE9NX0VMRU1FTlRTOiByZWFkb25seSBDdWlDdXN0b21FbGVtZW50W10gPSBbXHJcbiAgICB7XHJcbiAgICAgICAgc2VsZWN0b3I6IEVESVRPUl9UT09MVElQX1NFTEVDVE9SLFxyXG4gICAgICAgIGNvbXBvbmVudDogRWRpdG9yVG9vbHRpcENvbXBvbmVudFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBzZWxlY3RvcjogTUFSS0VSX1NFTEVDVF9TRUxFQ1RPUixcclxuICAgICAgICBjb21wb25lbnQ6IE1hcmtlclNlbGVjdENvbXBvbmVudFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBzZWxlY3RvcjogRURJVE9SX1RPT0xfTU9EQUxfU0VMRUNUT1IsXHJcbiAgICAgICAgY29tcG9uZW50OiBFZGl0b3JUb29sTW9kYWxDb21wb25lbnRcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgc2VsZWN0b3I6IE1BUktFUl9NT0RBTF9TRUxFQ1RPUixcclxuICAgICAgICBjb21wb25lbnQ6IE1hcmtlck1vZGFsQ29tcG9uZW50XHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIHNlbGVjdG9yOiBFRElUT1JfVklERU9fVE9PTF9TRUxFQ1RPUixcclxuICAgICAgICBjb21wb25lbnQ6IEVkaXRvclZpZGVvVG9vbENvbXBvbmVudFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBzZWxlY3RvcjogRURJVE9SX0lNQUdFX1RPT0xfU0VMRUNUT1IsXHJcbiAgICAgICAgY29tcG9uZW50OiBFZGl0b3JJbWFnZVRvb2xDb21wb25lbnRcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgc2VsZWN0b3I6IEVESVRPUl9BVFRBQ0hFU19UT09MX1NFTEVDVE9SLFxyXG4gICAgICAgIGNvbXBvbmVudDogRWRpdG9yQXR0YWNoZXNUb29sQ29tcG9uZW50XHJcbiAgICB9XHJcbl07XHJcbiJdfQ==
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { COMBINED_TEXT_BLOCK_NAME, DEFAULT_CONFIG } from '../constants';
|
|
2
|
+
import { CuiCombinedTextBlockTool, CuiBoldInlineTool, CuiItalicInlineTool, CuiLinkMarker } from '../tools';
|
|
3
|
+
export const getEditorConfig = (id, config = DEFAULT_CONFIG) => ({
|
|
4
|
+
holder: id,
|
|
5
|
+
logLevel: 'ERROR',
|
|
6
|
+
readOnly: config.readOnly,
|
|
7
|
+
autofocus: config.autofocus,
|
|
8
|
+
tools: {
|
|
9
|
+
paragraph: {
|
|
10
|
+
class: CuiCombinedTextBlockTool,
|
|
11
|
+
inlineToolbar: true,
|
|
12
|
+
config: {
|
|
13
|
+
placeholder: config.placeholder,
|
|
14
|
+
readonlyPlaceholder: config.readonlyPlaceholder
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
link: {
|
|
18
|
+
class: CuiLinkMarker
|
|
19
|
+
},
|
|
20
|
+
bold: {
|
|
21
|
+
class: CuiBoldInlineTool
|
|
22
|
+
},
|
|
23
|
+
italic: {
|
|
24
|
+
class: CuiItalicInlineTool
|
|
25
|
+
},
|
|
26
|
+
...config.tools
|
|
27
|
+
},
|
|
28
|
+
defaultBlock: COMBINED_TEXT_BLOCK_NAME
|
|
29
|
+
});
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvZWRpdG9yL2NvbmZpZy9lZGl0b3IuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFeEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLGFBQWEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUUzRyxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsQ0FBQyxFQUFVLEVBQUUsU0FBMEIsY0FBYyxFQUFnQixFQUFFLENBQUMsQ0FBQztJQUNwRyxNQUFNLEVBQUUsRUFBRTtJQUNWLFFBQVEsRUFBRSxPQUFvQjtJQUM5QixRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVE7SUFDekIsU0FBUyxFQUFFLE1BQU0sQ0FBQyxTQUFTO0lBQzNCLEtBQUssRUFBRTtRQUNILFNBQVMsRUFBRTtZQUNQLEtBQUssRUFBRSx3QkFBd0I7WUFDL0IsYUFBYSxFQUFFLElBQUk7WUFDbkIsTUFBTSxFQUFFO2dCQUNKLFdBQVcsRUFBRSxNQUFNLENBQUMsV0FBVztnQkFDL0IsbUJBQW1CLEVBQUUsTUFBTSxDQUFDLG1CQUFtQjthQUNsRDtTQUNKO1FBQ0QsSUFBSSxFQUFFO1lBQ0YsS0FBSyxFQUFFLGFBQWE7U0FDdkI7UUFDRCxJQUFJLEVBQUU7WUFDRixLQUFLLEVBQUUsaUJBQWlCO1NBQzNCO1FBQ0QsTUFBTSxFQUFFO1lBQ0osS0FBSyxFQUFFLG1CQUFtQjtTQUM3QjtRQUNELEdBQUcsTUFBTSxDQUFDLEtBQUs7S0FDbEI7SUFDRCxZQUFZLEVBQUUsd0JBQXdCO0NBQ3pDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRWRpdG9yQ29uZmlnLCBMb2dMZXZlbHMgfSBmcm9tICdAZWRpdG9yanMvZWRpdG9yanMnO1xyXG5cclxuaW1wb3J0IHsgQ09NQklORURfVEVYVF9CTE9DS19OQU1FLCBERUZBVUxUX0NPTkZJRyB9IGZyb20gJy4uL2NvbnN0YW50cyc7XHJcbmltcG9ydCB0eXBlIHsgQ3VpRWRpdG9yQ29uZmlnIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IEN1aUNvbWJpbmVkVGV4dEJsb2NrVG9vbCwgQ3VpQm9sZElubGluZVRvb2wsIEN1aUl0YWxpY0lubGluZVRvb2wsIEN1aUxpbmtNYXJrZXIgfSBmcm9tICcuLi90b29scyc7XHJcblxyXG5leHBvcnQgY29uc3QgZ2V0RWRpdG9yQ29uZmlnID0gKGlkOiBzdHJpbmcsIGNvbmZpZzogQ3VpRWRpdG9yQ29uZmlnID0gREVGQVVMVF9DT05GSUcpOiBFZGl0b3JDb25maWcgPT4gKHtcclxuICAgIGhvbGRlcjogaWQsXHJcbiAgICBsb2dMZXZlbDogJ0VSUk9SJyBhcyBMb2dMZXZlbHMsXHJcbiAgICByZWFkT25seTogY29uZmlnLnJlYWRPbmx5LFxyXG4gICAgYXV0b2ZvY3VzOiBjb25maWcuYXV0b2ZvY3VzLFxyXG4gICAgdG9vbHM6IHtcclxuICAgICAgICBwYXJhZ3JhcGg6IHtcclxuICAgICAgICAgICAgY2xhc3M6IEN1aUNvbWJpbmVkVGV4dEJsb2NrVG9vbCxcclxuICAgICAgICAgICAgaW5saW5lVG9vbGJhcjogdHJ1ZSxcclxuICAgICAgICAgICAgY29uZmlnOiB7XHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogY29uZmlnLnBsYWNlaG9sZGVyLFxyXG4gICAgICAgICAgICAgICAgcmVhZG9ubHlQbGFjZWhvbGRlcjogY29uZmlnLnJlYWRvbmx5UGxhY2Vob2xkZXJcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbGluazoge1xyXG4gICAgICAgICAgICBjbGFzczogQ3VpTGlua01hcmtlclxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgYm9sZDoge1xyXG4gICAgICAgICAgICBjbGFzczogQ3VpQm9sZElubGluZVRvb2xcclxuICAgICAgICB9LFxyXG4gICAgICAgIGl0YWxpYzoge1xyXG4gICAgICAgICAgICBjbGFzczogQ3VpSXRhbGljSW5saW5lVG9vbFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLi4uY29uZmlnLnRvb2xzXHJcbiAgICB9LFxyXG4gICAgZGVmYXVsdEJsb2NrOiBDT01CSU5FRF9URVhUX0JMT0NLX05BTUVcclxufSk7XHJcbiJdfQ==
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { APP_INITIALIZER, Injector } from '@angular/core';
|
|
2
|
+
import { createCustomElement } from '@angular/elements';
|
|
3
|
+
import { EDITOR_CUSTOM_ELEMENTS } from './custom-elements';
|
|
4
|
+
export function cuiProvideEditor() {
|
|
5
|
+
return [
|
|
6
|
+
{
|
|
7
|
+
provide: APP_INITIALIZER,
|
|
8
|
+
useFactory: (injector) => () => {
|
|
9
|
+
EDITOR_CUSTOM_ELEMENTS.forEach(({ component, selector }) => {
|
|
10
|
+
const element = createCustomElement(component, { injector });
|
|
11
|
+
window.customElements.define(selector, element);
|
|
12
|
+
});
|
|
13
|
+
},
|
|
14
|
+
deps: [Injector],
|
|
15
|
+
multi: true,
|
|
16
|
+
},
|
|
17
|
+
];
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9lZGl0b3IvY29uZmlnL2VkaXRvci5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUV4RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUUzRCxNQUFNLFVBQVUsZ0JBQWdCO0lBQzVCLE9BQU87UUFDSDtZQUNJLE9BQU8sRUFBRSxlQUFlO1lBQ3hCLFVBQVUsRUFBRSxDQUFDLFFBQWtCLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRTtnQkFDckMsc0JBQXNCLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRTtvQkFDdkQsTUFBTSxPQUFPLEdBQUcsbUJBQW1CLENBQUMsU0FBUyxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztvQkFFN0QsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO2dCQUNwRCxDQUFDLENBQUMsQ0FBQztZQUNQLENBQUM7WUFDRCxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUM7WUFDaEIsS0FBSyxFQUFFLElBQUk7U0FDZDtLQUNKLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSLCBJbmplY3RvciwgUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgY3JlYXRlQ3VzdG9tRWxlbWVudCB9IGZyb20gJ0Bhbmd1bGFyL2VsZW1lbnRzJztcclxuXHJcbmltcG9ydCB7IEVESVRPUl9DVVNUT01fRUxFTUVOVFMgfSBmcm9tICcuL2N1c3RvbS1lbGVtZW50cyc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3VpUHJvdmlkZUVkaXRvcigpOiBQcm92aWRlciB7XHJcbiAgICByZXR1cm4gW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxyXG4gICAgICAgICAgICB1c2VGYWN0b3J5OiAoaW5qZWN0b3I6IEluamVjdG9yKSA9PiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBFRElUT1JfQ1VTVE9NX0VMRU1FTlRTLmZvckVhY2goKHsgY29tcG9uZW50LCBzZWxlY3RvciB9KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudCA9IGNyZWF0ZUN1c3RvbUVsZW1lbnQoY29tcG9uZW50LCB7IGluamVjdG9yIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB3aW5kb3cuY3VzdG9tRWxlbWVudHMuZGVmaW5lKHNlbGVjdG9yLCBlbGVtZW50KTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBkZXBzOiBbSW5qZWN0b3JdLFxyXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgICB9LFxyXG4gICAgXTtcclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { getEditorConfig } from './editor.config';
|
|
2
|
+
export { cuiProvideEditor } from './editor.provider';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2VkaXRvci9jb25maWcvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgZ2V0RWRpdG9yQ29uZmlnIH0gZnJvbSAnLi9lZGl0b3IuY29uZmlnJztcclxuZXhwb3J0IHsgY3VpUHJvdmlkZUVkaXRvciB9IGZyb20gJy4vZWRpdG9yLnByb3ZpZGVyJztcclxuIl19
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export const COMBINED_TEXT_BLOCK_PART = 'combined-text-block-part';
|
|
2
|
+
export const COMBINED_TEXT_BLOCK = 'combined-text-block';
|
|
3
|
+
export const COMBINED_TEXT_BLOCK_NAME = 'paragraph';
|
|
4
|
+
export const COMBINED_TEXT_BLOCK_ADDED = 'combinedTextBlockAdded';
|
|
5
|
+
export const COMBINED_TEXT_BLOCK_UPDATED = 'combinedTextBlockUpdated';
|
|
6
|
+
export const COMBINED_TEXT_BLOCK_REMOVED = 'combinedTextBlockRemoved';
|
|
7
|
+
export const SPLIT_MAX_LENGTH = 1000;
|
|
8
|
+
export const SPLIT_LENGTH = 500;
|
|
9
|
+
export const EDITOR_SELECTOR = '[data-editor]';
|
|
10
|
+
export const DEFAULT_PLACEHOLDER = "Type text or '/' for commands...";
|
|
11
|
+
export const DEFAULT_READONLY_PLACEHOLDER = "No 'Description' was provided";
|
|
12
|
+
export const DEFAULT_CONFIG = {
|
|
13
|
+
tools: {},
|
|
14
|
+
readOnly: false,
|
|
15
|
+
autofocus: false
|
|
16
|
+
};
|
|
17
|
+
export const CuiEditorTranslations = {
|
|
18
|
+
en: import('../i18n/en.json'),
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmNvbnN0YW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvZWRpdG9yL2NvbnN0YW50cy9lZGl0b3IuY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLDBCQUEwQixDQUFDO0FBQ25FLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLHFCQUFxQixDQUFDO0FBQ3pELE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLFdBQVcsQ0FBQztBQUNwRCxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyx3QkFBd0IsQ0FBQztBQUNsRSxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRywwQkFBMEIsQ0FBQztBQUN0RSxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRywwQkFBMEIsQ0FBQztBQUV0RSxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7QUFDckMsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLEdBQUcsQ0FBQztBQUVoQyxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsZUFBZSxDQUFDO0FBQy9DLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLGtDQUFrQyxDQUFDO0FBQ3RFLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLCtCQUErQixDQUFDO0FBQzVFLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBb0I7SUFDM0MsS0FBSyxFQUFFLEVBQUU7SUFDVCxRQUFRLEVBQUUsS0FBSztJQUNmLFNBQVMsRUFBRSxLQUFLO0NBQ25CLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBeUM7SUFDdkUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQztDQUN2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhbnNsYXRpb24gfSBmcm9tICdAanN2ZXJzZS90cmFuc2xvY28nO1xyXG5cclxuaW1wb3J0IHR5cGUgeyBDdWlFZGl0b3JDb25maWcgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcclxuXHJcbmV4cG9ydCBjb25zdCBDT01CSU5FRF9URVhUX0JMT0NLX1BBUlQgPSAnY29tYmluZWQtdGV4dC1ibG9jay1wYXJ0JztcclxuZXhwb3J0IGNvbnN0IENPTUJJTkVEX1RFWFRfQkxPQ0sgPSAnY29tYmluZWQtdGV4dC1ibG9jayc7XHJcbmV4cG9ydCBjb25zdCBDT01CSU5FRF9URVhUX0JMT0NLX05BTUUgPSAncGFyYWdyYXBoJztcclxuZXhwb3J0IGNvbnN0IENPTUJJTkVEX1RFWFRfQkxPQ0tfQURERUQgPSAnY29tYmluZWRUZXh0QmxvY2tBZGRlZCc7XHJcbmV4cG9ydCBjb25zdCBDT01CSU5FRF9URVhUX0JMT0NLX1VQREFURUQgPSAnY29tYmluZWRUZXh0QmxvY2tVcGRhdGVkJztcclxuZXhwb3J0IGNvbnN0IENPTUJJTkVEX1RFWFRfQkxPQ0tfUkVNT1ZFRCA9ICdjb21iaW5lZFRleHRCbG9ja1JlbW92ZWQnO1xyXG5cclxuZXhwb3J0IGNvbnN0IFNQTElUX01BWF9MRU5HVEggPSAxMDAwO1xyXG5leHBvcnQgY29uc3QgU1BMSVRfTEVOR1RIID0gNTAwO1xyXG5cclxuZXhwb3J0IGNvbnN0IEVESVRPUl9TRUxFQ1RPUiA9ICdbZGF0YS1lZGl0b3JdJztcclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfUExBQ0VIT0xERVIgPSBcIlR5cGUgdGV4dCBvciAnLycgZm9yIGNvbW1hbmRzLi4uXCI7XHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX1JFQURPTkxZX1BMQUNFSE9MREVSID0gXCJObyAnRGVzY3JpcHRpb24nIHdhcyBwcm92aWRlZFwiO1xyXG5leHBvcnQgY29uc3QgREVGQVVMVF9DT05GSUc6IEN1aUVkaXRvckNvbmZpZyA9IHtcclxuICAgIHRvb2xzOiB7fSxcclxuICAgIHJlYWRPbmx5OiBmYWxzZSxcclxuICAgIGF1dG9mb2N1czogZmFsc2VcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBDdWlFZGl0b3JUcmFuc2xhdGlvbnM6IFJlY29yZDxzdHJpbmcsIFByb21pc2U8VHJhbnNsYXRpb24+PiA9IHtcclxuICAgIGVuOiBpbXBvcnQoJy4uL2kxOG4vZW4uanNvbicpLFxyXG59IGFzIGNvbnN0O1xyXG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './editor.constants';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2VkaXRvci9jb25zdGFudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZWRpdG9yLmNvbnN0YW50cyc7XHJcbiJdfQ==
|
|
@@ -0,0 +1,380 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, computed, DestroyRef, EventEmitter, inject, Input, Output, ViewChild } from '@angular/core';
|
|
2
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
3
|
+
import EditorJS from '@editorjs/editorjs';
|
|
4
|
+
import { concatMap, delay, finalize, fromEvent, map, Subject, takeWhile, tap, throttleTime, timer, toArray } from 'rxjs';
|
|
5
|
+
import { getEditorConfig } from './config';
|
|
6
|
+
import { COMBINED_TEXT_BLOCK_NAME, COMBINED_TEXT_BLOCK_PART, DEFAULT_CONFIG } from './constants/editor.constants';
|
|
7
|
+
import { setEditorEvents } from './events/set-editor-events';
|
|
8
|
+
import { CuiEditorService, CuiJTextApiService } from './services';
|
|
9
|
+
import { recalculateIndexes } from './utils/recalculate-indexes';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
export class CuiEditorComponent {
|
|
12
|
+
constructor() {
|
|
13
|
+
this.destroy = inject(DestroyRef);
|
|
14
|
+
this.editorService = inject(CuiEditorService);
|
|
15
|
+
this.jTextService = inject(CuiJTextApiService);
|
|
16
|
+
this.POOLING_DELAY = 100;
|
|
17
|
+
this.ELEMENT_SPACE_TO_BOTTOM = 150;
|
|
18
|
+
this.SCROLL_THROTTLE_TIME = 200;
|
|
19
|
+
this.isReadonly = computed(() => this.config?.readOnly);
|
|
20
|
+
this.emptyQueue = new Subject();
|
|
21
|
+
this.editorEmpty = new EventEmitter();
|
|
22
|
+
this.config = DEFAULT_CONFIG;
|
|
23
|
+
this.requestSize = 40;
|
|
24
|
+
this.isSkipCombinedBlockOnChange = [];
|
|
25
|
+
this.isFirst = true;
|
|
26
|
+
this.isChanging = false;
|
|
27
|
+
this.isSkip = false;
|
|
28
|
+
this.isRequested = false;
|
|
29
|
+
this.isDestroyed = false;
|
|
30
|
+
this.blockIdsMap = new Map();
|
|
31
|
+
this.combinedBlocks = new Map();
|
|
32
|
+
this.index = 0;
|
|
33
|
+
this.page = 0;
|
|
34
|
+
this.addedBlocks = [];
|
|
35
|
+
this.updatedBlocks = [];
|
|
36
|
+
this.removedBlocksIds = [];
|
|
37
|
+
this.changesQueue = [];
|
|
38
|
+
this.abortController = new AbortController();
|
|
39
|
+
}
|
|
40
|
+
ngOnChanges(changes) {
|
|
41
|
+
if (changes['editorID'] || changes['config']) {
|
|
42
|
+
this.initEditorChanges();
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
ngOnDestroy() {
|
|
46
|
+
this.isDestroyed = true;
|
|
47
|
+
this.destroyEditor();
|
|
48
|
+
}
|
|
49
|
+
onScrollEvent(element) {
|
|
50
|
+
const overallHeight = element.scrollHeight - this.ELEMENT_SPACE_TO_BOTTOM;
|
|
51
|
+
const currentHeight = element.scrollTop + element.clientHeight;
|
|
52
|
+
if (currentHeight < overallHeight || this.isRequested) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
this.isRequested = true;
|
|
56
|
+
const size = this.requestSize;
|
|
57
|
+
let blocksCount = 0;
|
|
58
|
+
this.getBlocks(this.page, size)
|
|
59
|
+
.pipe(tap((blocks) => (blocksCount = blocks.length)), finalize(() => {
|
|
60
|
+
this.isRequested = false;
|
|
61
|
+
if (blocksCount >= size) {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
this.scrollSubscription.unsubscribe();
|
|
65
|
+
}))
|
|
66
|
+
.subscribe();
|
|
67
|
+
this.page++;
|
|
68
|
+
}
|
|
69
|
+
async onEditorChange(_, event) {
|
|
70
|
+
if (this.isReadonly()) {
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
if (!Array.isArray(event)) {
|
|
74
|
+
event = [event];
|
|
75
|
+
}
|
|
76
|
+
recalculateIndexes(this.editor.blocks);
|
|
77
|
+
if (this.isChanging) {
|
|
78
|
+
this.changesQueue.unshift(event);
|
|
79
|
+
}
|
|
80
|
+
this.startChanges(event);
|
|
81
|
+
this.editorEmpty.emit(this.checkIsEmpty());
|
|
82
|
+
}
|
|
83
|
+
onAddedCombinedBlock(data) {
|
|
84
|
+
if (this.isSkipCombinedBlockOnChange.length) {
|
|
85
|
+
this.isSkipCombinedBlockOnChange.pop();
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
const blocksWithoutId = data.blocks.map((block) => ({
|
|
89
|
+
block: { ...block, id: undefined },
|
|
90
|
+
id: block.id
|
|
91
|
+
}));
|
|
92
|
+
this.addedBlocks.push(...blocksWithoutId);
|
|
93
|
+
}
|
|
94
|
+
onUpdatedCombinedBlock(updatedBlocks) {
|
|
95
|
+
if (!updatedBlocks.length) {
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
this.updatedBlocks.push(...updatedBlocks);
|
|
99
|
+
}
|
|
100
|
+
onRemovedCombinedBlock(blockIds) {
|
|
101
|
+
if (!blockIds.length) {
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
this.removedBlocksIds.push(...blockIds);
|
|
105
|
+
}
|
|
106
|
+
initEditorChanges() {
|
|
107
|
+
this.jTextService.addOptions(this.config.requestOptions);
|
|
108
|
+
this.editor = this.initEditor(this.editorID);
|
|
109
|
+
this.editor.isReady.then(() => {
|
|
110
|
+
this.editorElement = this.editorRef.nativeElement;
|
|
111
|
+
this.initEditorEvents(this.editorElement);
|
|
112
|
+
this.initScrollObserver();
|
|
113
|
+
this.startPooling(this.requestSize);
|
|
114
|
+
this.setListenersOnCustomBlockChanges();
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
initEditor(id) {
|
|
118
|
+
const config = this.config;
|
|
119
|
+
this.destroyEditor();
|
|
120
|
+
this.editor = new EditorJS({
|
|
121
|
+
...getEditorConfig(id, config),
|
|
122
|
+
onChange: this.onEditorChange.bind(this)
|
|
123
|
+
});
|
|
124
|
+
return this.editor;
|
|
125
|
+
}
|
|
126
|
+
initScrollObserver() {
|
|
127
|
+
const element = this.config?.element ?? this.editorElement;
|
|
128
|
+
const scrollObserver = fromEvent(element, 'scroll');
|
|
129
|
+
this.scrollSubscription = scrollObserver
|
|
130
|
+
.pipe(takeUntilDestroyed(this.destroy), throttleTime(this.SCROLL_THROTTLE_TIME, undefined, {
|
|
131
|
+
leading: true,
|
|
132
|
+
trailing: true
|
|
133
|
+
}), map(() => this.onScrollEvent(element)))
|
|
134
|
+
.subscribe();
|
|
135
|
+
}
|
|
136
|
+
initEditorEvents(element) {
|
|
137
|
+
const readOnly = this.isReadonly();
|
|
138
|
+
if (readOnly) {
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
setEditorEvents(element, this.abortController.signal);
|
|
142
|
+
}
|
|
143
|
+
startPooling(size) {
|
|
144
|
+
const scrollElement = this.config?.element ?? this.editorElement;
|
|
145
|
+
const withoutPreload = this.config?.withoutPreload;
|
|
146
|
+
this.poolingSubscription = timer(0, this.POOLING_DELAY)
|
|
147
|
+
.pipe(concatMap(() => this.getBlocks(this.page, size).pipe(delay(this.POOLING_DELAY))), tap(() => this.page++), takeWhile((blocks) => !withoutPreload &&
|
|
148
|
+
scrollElement.scrollHeight <= scrollElement.clientHeight &&
|
|
149
|
+
blocks.length >= size), finalize(() => {
|
|
150
|
+
if (this.isDestroyed) {
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
this.setStartBlock();
|
|
154
|
+
}))
|
|
155
|
+
.subscribe();
|
|
156
|
+
}
|
|
157
|
+
destroyEditor() {
|
|
158
|
+
this.abortController.abort();
|
|
159
|
+
this.resetData();
|
|
160
|
+
// TODO: в рандом кейсах падает ошибка если убрать проверку на вызов destroy
|
|
161
|
+
this.editor?.destroy?.();
|
|
162
|
+
}
|
|
163
|
+
setListenersOnCustomBlockChanges() {
|
|
164
|
+
this.editorService.setListenersOnCustomBlockChanges(this.editor, {
|
|
165
|
+
removedCallback: this.onRemovedCombinedBlock.bind(this),
|
|
166
|
+
updatedCallback: this.onUpdatedCombinedBlock.bind(this),
|
|
167
|
+
addedCallback: this.onAddedCombinedBlock.bind(this)
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
async startChanges(event) {
|
|
171
|
+
if (this.isSkip || this.isChanging || !this.editor) {
|
|
172
|
+
this.isSkip = false;
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
175
|
+
this.isChanging = true;
|
|
176
|
+
const editorOutput = await this.editor.save();
|
|
177
|
+
const events = event.filter((data) => data.detail.target.name !== COMBINED_TEXT_BLOCK_NAME);
|
|
178
|
+
const blocks = this.editorService.sortEventsByTypes(events);
|
|
179
|
+
const { addBlocks$, addedBlocks } = this.collectAddedBlocksRequest(blocks, editorOutput);
|
|
180
|
+
this.addedBlocks = [];
|
|
181
|
+
addBlocks$
|
|
182
|
+
.pipe(tap((blockIds) => this.setBlockIdsToMap(blockIds, addedBlocks)), concatMap(() => this.collectUpdatedBlocksRequest(blocks, editorOutput)), concatMap(() => this.collectRemovedBlocksRequest(blocks)))
|
|
183
|
+
.subscribe({
|
|
184
|
+
complete: () => this.startNextChange(),
|
|
185
|
+
error: () => this.startNextChange()
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
startNextChange() {
|
|
189
|
+
this.isChanging = false;
|
|
190
|
+
const nextEvents = this.changesQueue.pop();
|
|
191
|
+
if (nextEvents) {
|
|
192
|
+
this.startChanges(nextEvents);
|
|
193
|
+
}
|
|
194
|
+
this.emptyQueue.next(null);
|
|
195
|
+
}
|
|
196
|
+
collectAddedBlocksRequest(blocks, editorOutput) {
|
|
197
|
+
const defaultBlocksWithIndex = blocks["block-added" /* EventActions.add */].map((addedBlock) => this.editorService.getFullBlockData(addedBlock, editorOutput));
|
|
198
|
+
const combinedBlocksWithIndex = this.addedBlocks.map((block) => {
|
|
199
|
+
const element = this.editorElement.querySelector(`[data-id="${block.id}"]`);
|
|
200
|
+
const index = Number(element?.dataset['index']);
|
|
201
|
+
return { ...block, index };
|
|
202
|
+
});
|
|
203
|
+
const addedBlocks = [...defaultBlocksWithIndex, ...combinedBlocksWithIndex].sort((first, second) => first.index - second.index);
|
|
204
|
+
const addBlocks$ = this.editorService.collectAddedBlocksRequest(this.editorID, addedBlocks);
|
|
205
|
+
return {
|
|
206
|
+
addedBlocks,
|
|
207
|
+
addBlocks$
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
collectUpdatedBlocksRequest(blocks, editorOutput) {
|
|
211
|
+
blocks["block-changed" /* EventActions.update */].forEach((updateBlock) => {
|
|
212
|
+
const { id, block } = this.editorService.getFullBlockData(updateBlock, editorOutput);
|
|
213
|
+
block.id = id;
|
|
214
|
+
this.updatedBlocks.push(block);
|
|
215
|
+
});
|
|
216
|
+
const updateBlocks$ = this.editorService.collectUpdatedBlocksRequest(this.updatedBlocks, this.blockIdsMap);
|
|
217
|
+
this.updatedBlocks = [];
|
|
218
|
+
return updateBlocks$;
|
|
219
|
+
}
|
|
220
|
+
collectRemovedBlocksRequest(blocks) {
|
|
221
|
+
blocks["block-removed" /* EventActions.remove */].forEach((block) => {
|
|
222
|
+
const id = block.detail.target.id;
|
|
223
|
+
this.removedBlocksIds.push(id);
|
|
224
|
+
});
|
|
225
|
+
const removeBlocks$ = this.editorService.collectRemovedBlocksRequest(this.editorID, this.removedBlocksIds, this.blockIdsMap);
|
|
226
|
+
this.removedBlocksIds = [];
|
|
227
|
+
return removeBlocks$;
|
|
228
|
+
}
|
|
229
|
+
getBlocks(page = 0, size = 40) {
|
|
230
|
+
let combinedBlock;
|
|
231
|
+
return this.jTextService.getBlocks(this.editorID, page, size).pipe(takeUntilDestroyed(this.destroy), finalize(() => {
|
|
232
|
+
if (combinedBlock) {
|
|
233
|
+
this.addCombinedBlock(combinedBlock);
|
|
234
|
+
combinedBlock = null;
|
|
235
|
+
}
|
|
236
|
+
recalculateIndexes(this.editor.blocks);
|
|
237
|
+
}), map((block) => {
|
|
238
|
+
if (block.type === COMBINED_TEXT_BLOCK_PART) {
|
|
239
|
+
const blockData = block.data;
|
|
240
|
+
if (combinedBlock && blockData.parentId !== combinedBlock?.id) {
|
|
241
|
+
this.addCombinedBlock(combinedBlock);
|
|
242
|
+
combinedBlock = null;
|
|
243
|
+
}
|
|
244
|
+
combinedBlock = this.setCombinedBlock(block);
|
|
245
|
+
return;
|
|
246
|
+
}
|
|
247
|
+
if (combinedBlock) {
|
|
248
|
+
this.addCombinedBlock(combinedBlock);
|
|
249
|
+
combinedBlock = null;
|
|
250
|
+
}
|
|
251
|
+
this.addBlock(block);
|
|
252
|
+
}), toArray());
|
|
253
|
+
}
|
|
254
|
+
addBlock(block) {
|
|
255
|
+
if (typeof block.type !== 'string') {
|
|
256
|
+
return;
|
|
257
|
+
}
|
|
258
|
+
this.blockIdsMap.set(block.id, block.id);
|
|
259
|
+
this.insert(block);
|
|
260
|
+
}
|
|
261
|
+
addCombinedBlock(combinedBlock) {
|
|
262
|
+
this.isSkipCombinedBlockOnChange.push(true);
|
|
263
|
+
const block = this.editor.blocks.getById(combinedBlock.id || '');
|
|
264
|
+
if (block) {
|
|
265
|
+
this.editor.blocks.update(block.id, combinedBlock.data);
|
|
266
|
+
return;
|
|
267
|
+
}
|
|
268
|
+
this.insert(combinedBlock);
|
|
269
|
+
}
|
|
270
|
+
insert(block) {
|
|
271
|
+
this.checkFirst(block);
|
|
272
|
+
this.index++;
|
|
273
|
+
}
|
|
274
|
+
checkFirst(block) {
|
|
275
|
+
if (!this.isFirst) {
|
|
276
|
+
this.isSkip = true;
|
|
277
|
+
this.editor.blocks.insert(block.type, block.data, {}, this.index, false, false, block.id);
|
|
278
|
+
return;
|
|
279
|
+
}
|
|
280
|
+
// TODO: есть варик что что то пойдет не так
|
|
281
|
+
this.editor.blocks.render({ blocks: [block] }).then(() => this.isSkip = false);
|
|
282
|
+
this.isFirst = false;
|
|
283
|
+
}
|
|
284
|
+
setCombinedBlock(block) {
|
|
285
|
+
const combinedBlockData = block.data;
|
|
286
|
+
const parent = this.combinedBlocks.get(combinedBlockData.parentId);
|
|
287
|
+
this.blockIdsMap.set(block.id, block.id);
|
|
288
|
+
if (parent) {
|
|
289
|
+
const parentData = parent.data;
|
|
290
|
+
parentData.textBlocks.push(block);
|
|
291
|
+
return parent;
|
|
292
|
+
}
|
|
293
|
+
const parentObject = {
|
|
294
|
+
id: combinedBlockData.parentId,
|
|
295
|
+
type: COMBINED_TEXT_BLOCK_NAME,
|
|
296
|
+
data: {
|
|
297
|
+
id: combinedBlockData.parentId,
|
|
298
|
+
textBlocks: [block]
|
|
299
|
+
}
|
|
300
|
+
};
|
|
301
|
+
this.combinedBlocks.set(combinedBlockData.parentId, parentObject);
|
|
302
|
+
return parentObject;
|
|
303
|
+
}
|
|
304
|
+
setBlockIdsToMap(blockIds, addedBlocks) {
|
|
305
|
+
if (!blockIds.length) {
|
|
306
|
+
return;
|
|
307
|
+
}
|
|
308
|
+
addedBlocks.forEach((blockData, index) => {
|
|
309
|
+
this.blockIdsMap.set(blockData.id, blockIds[index]);
|
|
310
|
+
});
|
|
311
|
+
}
|
|
312
|
+
setStartBlock() {
|
|
313
|
+
if (this.blockIdsMap.size) {
|
|
314
|
+
this.setFocus();
|
|
315
|
+
this.editorEmpty.emit(this.checkIsEmpty());
|
|
316
|
+
return;
|
|
317
|
+
}
|
|
318
|
+
if (this.isReadonly()) {
|
|
319
|
+
this.editor.render({ blocks: [] });
|
|
320
|
+
return;
|
|
321
|
+
}
|
|
322
|
+
this.editorService.setStartBlock(this.editorID, async (block, id) => {
|
|
323
|
+
this.blockIdsMap.set(id, id);
|
|
324
|
+
this.isSkipCombinedBlockOnChange.push(true);
|
|
325
|
+
await this.editor.render({ blocks: [block] });
|
|
326
|
+
this.setFocus();
|
|
327
|
+
recalculateIndexes(this.editor.blocks);
|
|
328
|
+
});
|
|
329
|
+
}
|
|
330
|
+
setFocus() {
|
|
331
|
+
if (!this.config?.autofocus) {
|
|
332
|
+
return;
|
|
333
|
+
}
|
|
334
|
+
this.editor.caret.focus();
|
|
335
|
+
}
|
|
336
|
+
checkIsEmpty() {
|
|
337
|
+
const MIN_BLOCKS_COUNT = 1;
|
|
338
|
+
const REDACTOR_SELECTOR = '.codex-editor__redactor';
|
|
339
|
+
const redactor = this.editorElement.querySelector(REDACTOR_SELECTOR);
|
|
340
|
+
const blocksCount = redactor?.childElementCount ?? 0;
|
|
341
|
+
return blocksCount <= MIN_BLOCKS_COUNT && !redactor?.textContent;
|
|
342
|
+
}
|
|
343
|
+
resetData() {
|
|
344
|
+
this.scrollSubscription?.unsubscribe();
|
|
345
|
+
this.poolingSubscription?.unsubscribe();
|
|
346
|
+
this.isSkipCombinedBlockOnChange = [];
|
|
347
|
+
this.isFirst = true;
|
|
348
|
+
this.isChanging = false;
|
|
349
|
+
this.isSkip = false;
|
|
350
|
+
this.isRequested = false;
|
|
351
|
+
this.blockIdsMap = new Map();
|
|
352
|
+
this.combinedBlocks = new Map();
|
|
353
|
+
this.index = 0;
|
|
354
|
+
this.page = 0;
|
|
355
|
+
this.addedBlocks = [];
|
|
356
|
+
this.updatedBlocks = [];
|
|
357
|
+
this.removedBlocksIds = [];
|
|
358
|
+
this.changesQueue = [];
|
|
359
|
+
this.abortController = new AbortController();
|
|
360
|
+
}
|
|
361
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
362
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CuiEditorComponent, isStandalone: true, selector: "cui-editor", inputs: { editorID: "editorID", config: "config", requestSize: "requestSize" }, outputs: { editorEmpty: "editorEmpty" }, providers: [CuiEditorService, CuiJTextApiService], viewQueries: [{ propertyName: "editorRef", first: true, predicate: ["editor"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\r\n #editor\r\n [id]=\"editorID\"\r\n [class._readonly]=\"config.readOnly\"\r\n data-editor\r\n></div>\r\n", styles: [":host{--textColor: var(--cui-base-900);--menuBackground: var(--cui-base-0);--menuBorder: var(--cui-base-200);--menuItemHover: var(--cui-base-10);--menuItemBackground: var(cui-base-900);--menuIconBackground: var(--cui-base-50);--menuIconHover: var(--cui-base-10);font-weight:400;font-size:14px;line-height:20px;font-family:var(--cui-main-font)}:host ::ng-deep .ce-popover{--color-background: var(--menuBackground);--color-text-primary: var(--textColor);--color-border: var(--menuBorder);--color-border-icon: var(--menuBorder);--color-background-item: var(--menuItemBackground);--color-background-item-hover: var(--menuItemHover)}:host ::ng-deep .ce-popover__search{background:var(--menuIconBackground)}:host ::ng-deep .ce-popover .ce-popover-item__icon{background:var(--menuIconBackground)}:host ::ng-deep .ce-conversion-toolbar{background-color:var(--menuBackground);border-color:var(--menuBorder)}:host ::ng-deep .ce-conversion-toolbar__tools{padding:0 6px 6px}:host ::ng-deep .ce-conversion-tool{padding:3px;border-radius:6px}:host ::ng-deep .ce-conversion-tool__icon{border:1px solid var(--menuBorder);background-color:var(--menuIconBackground);box-shadow:none}:host ::ng-deep .ce-conversion-tool:hover{background-color:var(--menuItemHover)}:host ::ng-deep .ce-conversion-tool:hover .ce-conversion-tool__icon{border-color:var(--menuIconHover)}:host ::ng-deep .combined-text-block{padding:.4em 0;line-height:1.6em;outline:none}:host ::ng-deep .combined-text-block .combined-text-block-part{outline:none}:host ::ng-deep .combined-text-block .combined-text-block-part:only-child,:host ::ng-deep .combined-text-block .combined-text-block-part._selected{display:list-item}:host ::ng-deep .combined-text-block .combined-text-block-part:only-child::marker,:host ::ng-deep .combined-text-block .combined-text-block-part._selected::marker{content:\"\"}:host ::ng-deep .image-tool__image{border:1px solid var(--cui-base-200);background-color:var(--cui-base-0)}:host ::ng-deep .image-tool__image-preloader{background-color:var(--cui-base-200)}:host ::ng-deep .image-tool__image-preloader:after{border:1px solid var(--cui-base-200);border-top:1px solid var(--cui-blue-600)}:host ::ng-deep .cdx-button{border:1px solid var(--cui-base-200);color:var(--textColor);background-color:var(--cui-base-0);box-shadow:none}:host ::ng-deep .ce-inline-toolbar{border-color:var(--cui-base-100);color:var(--textColor);background-color:var(--cui-base-0)}:host ::ng-deep .ce-inline-toolbar__dropdown:hover{background-color:var(--cui-base-100)}:host ::ng-deep .ce-inline-tool:hover{background-color:var(--cui-base-100)}:host ::ng-deep .ce-toolbar__plus,:host ::ng-deep .ce-toolbar__settings-btn{color:var(--cui-base-500)}:host ::ng-deep .ce-toolbar__plus:hover,:host ::ng-deep .ce-toolbar__settings-btn:hover{background-color:var(--cui-base-100)}:host ::ng-deep .ce-toolbar__actions{right:100%}:host ::ng-deep .ce-toolbar__content{max-width:none}:host ::ng-deep .ce-block--selected .ce-block__content{background-color:var(--cui-base-200)}:host ::ng-deep .ce-block__content{max-width:100%}:host ::ng-deep .ce-block:only-of-type .combined-text-block[data-placeholder-active][data-empty=true]:before{content:attr(data-placeholder-active);position:absolute;color:var(--cui-base-400)}:host ::ng-deep [data-editor]{padding-right:4px;width:100%;height:100%;min-height:200px;overflow:hidden auto;scrollbar-gutter:stable}:host ::ng-deep [data-editor] .codex-editor{margin-left:60px}:host ::ng-deep [data-editor] .codex-editor--narrow .ce-popover{right:auto}:host ::ng-deep [data-editor] .codex-editor__redactor{margin-right:auto;padding-bottom:260px!important}:host ::ng-deep [data-editor]._readonly{min-height:auto}:host ::ng-deep [data-editor]._readonly .codex-editor{margin:auto}:host ::ng-deep [data-editor]._readonly .codex-editor__redactor{padding-bottom:0!important}:host ::ng-deep [data-editor]._readonly .combined-text-block{padding:0}:host ::ng-deep [data-editor] [data-item-name=move-up],:host ::ng-deep [data-editor] [data-item-name=move-down],:host ::ng-deep [data-editor] [data-tool=paragraph]{display:none}:host ::ng-deep [data-editor] *::selection{background:var(--cui-base-200)}:host ::ng-deep [data-editor] a{color:var(--cui-light-blue-600)}:host ::ng-deep .marker{cursor:pointer;text-decoration:underline;color:var(--cui-light-blue-600);background-color:transparent}:host ::ng-deep .tool-marker,:host ::ng-deep .role-marker{margin:0 5px}:host ::ng-deep .tool-marker{color:#e97c00}:host ::ng-deep .role-marker{color:#8803f1}.form{height:100%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
363
|
+
}
|
|
364
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiEditorComponent, decorators: [{
|
|
365
|
+
type: Component,
|
|
366
|
+
args: [{ selector: 'cui-editor', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, providers: [CuiEditorService, CuiJTextApiService], template: "<div\r\n #editor\r\n [id]=\"editorID\"\r\n [class._readonly]=\"config.readOnly\"\r\n data-editor\r\n></div>\r\n", styles: [":host{--textColor: var(--cui-base-900);--menuBackground: var(--cui-base-0);--menuBorder: var(--cui-base-200);--menuItemHover: var(--cui-base-10);--menuItemBackground: var(cui-base-900);--menuIconBackground: var(--cui-base-50);--menuIconHover: var(--cui-base-10);font-weight:400;font-size:14px;line-height:20px;font-family:var(--cui-main-font)}:host ::ng-deep .ce-popover{--color-background: var(--menuBackground);--color-text-primary: var(--textColor);--color-border: var(--menuBorder);--color-border-icon: var(--menuBorder);--color-background-item: var(--menuItemBackground);--color-background-item-hover: var(--menuItemHover)}:host ::ng-deep .ce-popover__search{background:var(--menuIconBackground)}:host ::ng-deep .ce-popover .ce-popover-item__icon{background:var(--menuIconBackground)}:host ::ng-deep .ce-conversion-toolbar{background-color:var(--menuBackground);border-color:var(--menuBorder)}:host ::ng-deep .ce-conversion-toolbar__tools{padding:0 6px 6px}:host ::ng-deep .ce-conversion-tool{padding:3px;border-radius:6px}:host ::ng-deep .ce-conversion-tool__icon{border:1px solid var(--menuBorder);background-color:var(--menuIconBackground);box-shadow:none}:host ::ng-deep .ce-conversion-tool:hover{background-color:var(--menuItemHover)}:host ::ng-deep .ce-conversion-tool:hover .ce-conversion-tool__icon{border-color:var(--menuIconHover)}:host ::ng-deep .combined-text-block{padding:.4em 0;line-height:1.6em;outline:none}:host ::ng-deep .combined-text-block .combined-text-block-part{outline:none}:host ::ng-deep .combined-text-block .combined-text-block-part:only-child,:host ::ng-deep .combined-text-block .combined-text-block-part._selected{display:list-item}:host ::ng-deep .combined-text-block .combined-text-block-part:only-child::marker,:host ::ng-deep .combined-text-block .combined-text-block-part._selected::marker{content:\"\"}:host ::ng-deep .image-tool__image{border:1px solid var(--cui-base-200);background-color:var(--cui-base-0)}:host ::ng-deep .image-tool__image-preloader{background-color:var(--cui-base-200)}:host ::ng-deep .image-tool__image-preloader:after{border:1px solid var(--cui-base-200);border-top:1px solid var(--cui-blue-600)}:host ::ng-deep .cdx-button{border:1px solid var(--cui-base-200);color:var(--textColor);background-color:var(--cui-base-0);box-shadow:none}:host ::ng-deep .ce-inline-toolbar{border-color:var(--cui-base-100);color:var(--textColor);background-color:var(--cui-base-0)}:host ::ng-deep .ce-inline-toolbar__dropdown:hover{background-color:var(--cui-base-100)}:host ::ng-deep .ce-inline-tool:hover{background-color:var(--cui-base-100)}:host ::ng-deep .ce-toolbar__plus,:host ::ng-deep .ce-toolbar__settings-btn{color:var(--cui-base-500)}:host ::ng-deep .ce-toolbar__plus:hover,:host ::ng-deep .ce-toolbar__settings-btn:hover{background-color:var(--cui-base-100)}:host ::ng-deep .ce-toolbar__actions{right:100%}:host ::ng-deep .ce-toolbar__content{max-width:none}:host ::ng-deep .ce-block--selected .ce-block__content{background-color:var(--cui-base-200)}:host ::ng-deep .ce-block__content{max-width:100%}:host ::ng-deep .ce-block:only-of-type .combined-text-block[data-placeholder-active][data-empty=true]:before{content:attr(data-placeholder-active);position:absolute;color:var(--cui-base-400)}:host ::ng-deep [data-editor]{padding-right:4px;width:100%;height:100%;min-height:200px;overflow:hidden auto;scrollbar-gutter:stable}:host ::ng-deep [data-editor] .codex-editor{margin-left:60px}:host ::ng-deep [data-editor] .codex-editor--narrow .ce-popover{right:auto}:host ::ng-deep [data-editor] .codex-editor__redactor{margin-right:auto;padding-bottom:260px!important}:host ::ng-deep [data-editor]._readonly{min-height:auto}:host ::ng-deep [data-editor]._readonly .codex-editor{margin:auto}:host ::ng-deep [data-editor]._readonly .codex-editor__redactor{padding-bottom:0!important}:host ::ng-deep [data-editor]._readonly .combined-text-block{padding:0}:host ::ng-deep [data-editor] [data-item-name=move-up],:host ::ng-deep [data-editor] [data-item-name=move-down],:host ::ng-deep [data-editor] [data-tool=paragraph]{display:none}:host ::ng-deep [data-editor] *::selection{background:var(--cui-base-200)}:host ::ng-deep [data-editor] a{color:var(--cui-light-blue-600)}:host ::ng-deep .marker{cursor:pointer;text-decoration:underline;color:var(--cui-light-blue-600);background-color:transparent}:host ::ng-deep .tool-marker,:host ::ng-deep .role-marker{margin:0 5px}:host ::ng-deep .tool-marker{color:#e97c00}:host ::ng-deep .role-marker{color:#8803f1}.form{height:100%}\n"] }]
|
|
367
|
+
}], propDecorators: { editorRef: [{
|
|
368
|
+
type: ViewChild,
|
|
369
|
+
args: ['editor']
|
|
370
|
+
}], editorEmpty: [{
|
|
371
|
+
type: Output
|
|
372
|
+
}], editorID: [{
|
|
373
|
+
type: Input,
|
|
374
|
+
args: [{ required: true }]
|
|
375
|
+
}], config: [{
|
|
376
|
+
type: Input
|
|
377
|
+
}], requestSize: [{
|
|
378
|
+
type: Input
|
|
379
|
+
}] } });
|
|
380
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvZWRpdG9yL2VkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2VkaXRvci9lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBR2hFLE9BQU8sUUFBUSxNQUFNLG9CQUFvQixDQUFDO0FBRTFDLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLFFBQVEsRUFDUixTQUFTLEVBQ1QsR0FBRyxFQUNILE9BQU8sRUFDUCxTQUFTLEVBQ1QsR0FBRyxFQUNILFlBQVksRUFDWixLQUFLLEVBQ0wsT0FBTyxFQUNSLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUMzQyxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLHdCQUF3QixFQUN4QixjQUFjLEVBQ2YsTUFBTSw4QkFBOEIsQ0FBQztBQUN0QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFXN0QsT0FBTyxFQUFTLGdCQUFnQixFQUFFLGtCQUFrQixFQUFnQixNQUFNLFlBQVksQ0FBQztBQUN2RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7QUFVakUsTUFBTSxPQUFPLGtCQUFrQjtJQVIvQjtRQVNtQixZQUFPLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzdCLGtCQUFhLEdBQUcsTUFBTSxDQUFDLGdC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O1FBQ3hCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7UUFDN0MsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztJQUMvQyxDQUFDOytHQWxmVSxrQkFBa0I7bUdBQWxCLGtCQUFrQixrTEFGbEIsQ0FBQyxnQkFBZ0IsRUFBRSxrQkFBa0IsQ0FBQyxvSkN6RG5ELDZIQU1BOzs0RkRxRGEsa0JBQWtCO2tCQVI5QixTQUFTOytCQUNFLFlBQVksY0FDVixJQUFJLG1CQUdDLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxnQkFBZ0IsRUFBRSxrQkFBa0IsQ0FBQzs4QkFlOUIsU0FBUztzQkFEM0IsU0FBUzt1QkFBQyxRQUFRO2dCQUlILFdBQVc7c0JBRDFCLE1BQU07Z0JBSUEsUUFBUTtzQkFEZCxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFJbEIsTUFBTTtzQkFEWixLQUFLO2dCQUlDLFdBQVc7c0JBRGpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEVsZW1lbnRSZWYsIE9uRGVzdHJveSwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENvbXBvbmVudCxcclxuICBjb21wdXRlZCxcclxuICBEZXN0cm95UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBpbmplY3QsXHJcbiAgSW5wdXQsXHJcbiAgT3V0cHV0LFxyXG4gIFZpZXdDaGlsZFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XHJcbmltcG9ydCB0eXBlIHsgQ3VpTnVsbGFibGUgfSBmcm9tICdAY3VieS11aS9jZGsnO1xyXG5pbXBvcnQgdHlwZSB7IEFQSSwgQmxvY2tNdXRhdGlvbkV2ZW50LCBPdXRwdXREYXRhIH0gZnJvbSAnQGVkaXRvcmpzL2VkaXRvcmpzJztcclxuaW1wb3J0IEVkaXRvckpTIGZyb20gJ0BlZGl0b3Jqcy9lZGl0b3Jqcyc7XHJcbmltcG9ydCB0eXBlIHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7XHJcbiAgY29uY2F0TWFwLFxyXG4gIGRlbGF5LFxyXG4gIGZpbmFsaXplLFxyXG4gIGZyb21FdmVudCxcclxuICBtYXAsXHJcbiAgU3ViamVjdCxcclxuICB0YWtlV2hpbGUsXHJcbiAgdGFwLFxyXG4gIHRocm90dGxlVGltZSxcclxuICB0aW1lcixcclxuICB0b0FycmF5XHJcbn0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBnZXRFZGl0b3JDb25maWcgfSBmcm9tICcuL2NvbmZpZyc7XHJcbmltcG9ydCB7XHJcbiAgQ09NQklORURfVEVYVF9CTE9DS19OQU1FLFxyXG4gIENPTUJJTkVEX1RFWFRfQkxPQ0tfUEFSVCxcclxuICBERUZBVUxUX0NPTkZJR1xyXG59IGZyb20gJy4vY29uc3RhbnRzL2VkaXRvci5jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBzZXRFZGl0b3JFdmVudHMgfSBmcm9tICcuL2V2ZW50cy9zZXQtZWRpdG9yLWV2ZW50cyc7XHJcbmltcG9ydCB0eXBlIHtcclxuICBDdWlCbG9ja0RhdGEsXHJcbiAgQ3VpQmxvY2tzUmVxdWVzdERhdGEsXHJcbiAgQ3VpQ29tYmluZWRCbG9ja0FkZGluZ0V2ZW50LFxyXG4gIEN1aUNvbWJpbmVkQmxvY2tUb29sRGF0YSxcclxuICBDdWlDb21iaW5lZFBhcnRCbG9jayxcclxuICBDdWlFZGl0b3JDb25maWcsXHJcbiAgQ3VpRXZlbnRBY3Rpb25EYXRhLFxyXG4gIEN1aUZ1bGxCbG9ja0RhdGFcclxufSBmcm9tICcuL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBCbG9jaywgQ3VpRWRpdG9yU2VydmljZSwgQ3VpSlRleHRBcGlTZXJ2aWNlLCBFdmVudEFjdGlvbnMgfSBmcm9tICcuL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgcmVjYWxjdWxhdGVJbmRleGVzIH0gZnJvbSAnLi91dGlscy9yZWNhbGN1bGF0ZS1pbmRleGVzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY3VpLWVkaXRvcicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICB0ZW1wbGF0ZVVybDogJy4vZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9lZGl0b3IuY29tcG9uZW50LnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBwcm92aWRlcnM6IFtDdWlFZGl0b3JTZXJ2aWNlLCBDdWlKVGV4dEFwaVNlcnZpY2VdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDdWlFZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSA9IGluamVjdChEZXN0cm95UmVmKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IGVkaXRvclNlcnZpY2UgPSBpbmplY3QoQ3VpRWRpdG9yU2VydmljZSk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBqVGV4dFNlcnZpY2UgPSBpbmplY3QoQ3VpSlRleHRBcGlTZXJ2aWNlKTtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBQT09MSU5HX0RFTEFZID0gMTAwO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgRUxFTUVOVF9TUEFDRV9UT19CT1RUT00gPSAxNTA7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBTQ1JPTExfVEhST1RUTEVfVElNRSA9IDIwMDtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBpc1JlYWRvbmx5ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5jb25maWc/LnJlYWRPbmx5KTtcclxuICBwcml2YXRlIHJlYWRvbmx5IGVtcHR5UXVldWUgPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICBAVmlld0NoaWxkKCdlZGl0b3InKVxyXG4gIHByb3RlY3RlZCByZWFkb25seSBlZGl0b3JSZWYhOiBFbGVtZW50UmVmO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgcmVhZG9ubHkgZWRpdG9yRW1wdHkgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcblxyXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXHJcbiAgcHVibGljIGVkaXRvcklEITogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBjb25maWc6IEN1aUVkaXRvckNvbmZpZyA9IERFRkFVTFRfQ09ORklHO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyByZXF1ZXN0U2l6ZSA9IDQwO1xyXG5cclxuICBwcml2YXRlIHBvb2xpbmdTdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XHJcbiAgcHJpdmF0ZSBzY3JvbGxTdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XHJcbiAgcHJpdmF0ZSBpc1NraXBDb21iaW5lZEJsb2NrT25DaGFuZ2U6IGJvb2xlYW5bXSA9IFtdO1xyXG4gIHByaXZhdGUgaXNGaXJzdCA9IHRydWU7XHJcbiAgcHJpdmF0ZSBpc0NoYW5naW5nID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBpc1NraXAgPSBmYWxzZTtcclxuICBwcml2YXRlIGlzUmVxdWVzdGVkID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBpc0Rlc3Ryb3llZCA9IGZhbHNlO1xyXG4gIHByaXZhdGUgYmxvY2tJZHNNYXAgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xyXG4gIHByaXZhdGUgY29tYmluZWRCbG9ja3MgPSBuZXcgTWFwKCk7XHJcbiAgcHJpdmF0ZSBpbmRleCA9IDA7XHJcbiAgcHJpdmF0ZSBwYWdlID0gMDtcclxuICBwcml2YXRlIGFkZGVkQmxvY2tzOiBDdWlCbG9ja0RhdGFbXSA9IFtdO1xyXG4gIHByaXZhdGUgdXBkYXRlZEJsb2NrczogQmxvY2tbXSA9IFtdO1xyXG4gIHByaXZhdGUgcmVtb3ZlZEJsb2Nrc0lkczogc3RyaW5nW10gPSBbXTtcclxuICBwcml2YXRlIGNoYW5nZXNRdWV1ZTogQmxvY2tNdXRhdGlvbkV2ZW50W11bXSA9IFtdO1xyXG4gIHByaXZhdGUgYWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xyXG5cclxuICBwdWJsaWMgZWRpdG9yITogRWRpdG9ySlM7XHJcbiAgcHVibGljIGVkaXRvckVsZW1lbnQhOiBIVE1MRWxlbWVudDtcclxuXHJcbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWydlZGl0b3JJRCddIHx8IGNoYW5nZXNbJ2NvbmZpZyddKSB7XHJcbiAgICAgIHRoaXMuaW5pdEVkaXRvckNoYW5nZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuaXNEZXN0cm95ZWQgPSB0cnVlO1xyXG4gICAgdGhpcy5kZXN0cm95RWRpdG9yKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9uU2Nyb2xsRXZlbnQoZWxlbWVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcclxuICAgIGNvbnN0IG92ZXJhbGxIZWlnaHQgPSBlbGVtZW50LnNjcm9sbEhlaWdodCAtIHRoaXMuRUxFTUVOVF9TUEFDRV9UT19CT1RUT007XHJcbiAgICBjb25zdCBjdXJyZW50SGVpZ2h0ID0gZWxlbWVudC5zY3JvbGxUb3AgKyBlbGVtZW50LmNsaWVudEhlaWdodDtcclxuXHJcbiAgICBpZiAoY3VycmVudEhlaWdodCA8IG92ZXJhbGxIZWlnaHQgfHwgdGhpcy5pc1JlcXVlc3RlZCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5pc1JlcXVlc3RlZCA9IHRydWU7XHJcblxyXG4gICAgY29uc3Qgc2l6ZSA9IHRoaXMucmVxdWVzdFNpemU7XHJcbiAgICBsZXQgYmxvY2tzQ291bnQgPSAwO1xyXG5cclxuICAgIHRoaXMuZ2V0QmxvY2tzKHRoaXMucGFnZSwgc2l6ZSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgdGFwKChibG9ja3MpID0+IChibG9ja3NDb3VudCA9IGJsb2Nrcy5sZW5ndGgpKSxcclxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmlzUmVxdWVzdGVkID0gZmFsc2U7XHJcblxyXG4gICAgICAgICAgaWYgKGJsb2Nrc0NvdW50ID49IHNpemUpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHRoaXMuc2Nyb2xsU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKCk7XHJcblxyXG4gICAgdGhpcy5wYWdlKys7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIG9uRWRpdG9yQ2hhbmdlKF86IEFQSSwgZXZlbnQ6IEJsb2NrTXV0YXRpb25FdmVudCB8IEJsb2NrTXV0YXRpb25FdmVudFtdKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAodGhpcy5pc1JlYWRvbmx5KCkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghQXJyYXkuaXNBcnJheShldmVudCkpIHtcclxuICAgICAgZXZlbnQgPSBbZXZlbnRdO1xyXG4gICAgfVxyXG5cclxuICAgIHJlY2FsY3VsYXRlSW5kZXhlcyh0aGlzLmVkaXRvci5ibG9ja3MpO1xyXG5cclxuICAgIGlmICh0aGlzLmlzQ2hhbmdpbmcpIHtcclxuICAgICAgdGhpcy5jaGFuZ2VzUXVldWUudW5zaGlmdChldmVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zdGFydENoYW5nZXMoZXZlbnQpO1xyXG4gICAgdGhpcy5lZGl0b3JFbXB0eS5lbWl0KHRoaXMuY2hlY2tJc0VtcHR5KCkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvbkFkZGVkQ29tYmluZWRCbG9jayhkYXRhOiBDdWlDb21iaW5lZEJsb2NrQWRkaW5nRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmlzU2tpcENvbWJpbmVkQmxvY2tPbkNoYW5nZS5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5pc1NraXBDb21iaW5lZEJsb2NrT25DaGFuZ2UucG9wKCk7XHJcblxyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgYmxvY2tzV2l0aG91dElkID0gZGF0YS5ibG9ja3MubWFwKChibG9jaykgPT4gKHtcclxuICAgICAgYmxvY2s6IHsgLi4uYmxvY2ssIGlkOiB1bmRlZmluZWQgfSxcclxuICAgICAgaWQ6IGJsb2NrLmlkIVxyXG4gICAgfSkpO1xyXG5cclxuICAgIHRoaXMuYWRkZWRCbG9ja3MucHVzaCguLi5ibG9ja3NXaXRob3V0SWQpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvblVwZGF0ZWRDb21iaW5lZEJsb2NrKHVwZGF0ZWRCbG9ja3M6IEJsb2NrW10pOiB2b2lkIHtcclxuICAgIGlmICghdXBkYXRlZEJsb2Nrcy5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMudXBkYXRlZEJsb2Nrcy5wdXNoKC4uLnVwZGF0ZWRCbG9ja3MpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvblJlbW92ZWRDb21iaW5lZEJsb2NrKGJsb2NrSWRzOiBzdHJpbmdbXSk6IHZvaWQge1xyXG4gICAgaWYgKCFibG9ja0lkcy5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMucmVtb3ZlZEJsb2Nrc0lkcy5wdXNoKC4uLmJsb2NrSWRzKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5pdEVkaXRvckNoYW5nZXMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmpUZXh0U2VydmljZS5hZGRPcHRpb25zKHRoaXMuY29uZmlnLnJlcXVlc3RPcHRpb25zKTtcclxuXHJcbiAgICB0aGlzLmVkaXRvciA9IHRoaXMuaW5pdEVkaXRvcih0aGlzLmVkaXRvcklEKTtcclxuICAgIHRoaXMuZWRpdG9yLmlzUmVhZHkudGhlbigoKSA9PiB7XHJcbiAgICAgIHRoaXMuZWRpdG9yRWxlbWVudCA9IHRoaXMuZWRpdG9yUmVmLm5hdGl2ZUVsZW1lbnQ7XHJcblxyXG4gICAgICB0aGlzLmluaXRFZGl0b3JFdmVudHModGhpcy5lZGl0b3JFbGVtZW50KTtcclxuICAgICAgdGhpcy5pbml0U2Nyb2xsT2JzZXJ2ZXIoKTtcclxuICAgICAgdGhpcy5zdGFydFBvb2xpbmcodGhpcy5yZXF1ZXN0U2l6ZSk7XHJcbiAgICAgIHRoaXMuc2V0TGlzdGVuZXJzT25DdXN0b21CbG9ja0NoYW5nZXMoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0RWRpdG9yKGlkOiBzdHJpbmcpOiBFZGl0b3JKUyB7XHJcbiAgICBjb25zdCBjb25maWcgPSB0aGlzLmNvbmZpZztcclxuXHJcbiAgICB0aGlzLmRlc3Ryb3lFZGl0b3IoKTtcclxuICAgIHRoaXMuZWRpdG9yID0gbmV3IEVkaXRvckpTKHtcclxuICAgICAgLi4uZ2V0RWRpdG9yQ29uZmlnKGlkLCBjb25maWcpLFxyXG4gICAgICBvbkNoYW5nZTogdGhpcy5vbkVkaXRvckNoYW5nZS5iaW5kKHRoaXMpXHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5lZGl0b3I7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluaXRTY3JvbGxPYnNlcnZlcigpOiB2b2lkIHtcclxuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmNvbmZpZz8uZWxlbWVudCA/PyB0aGlzLmVkaXRvckVsZW1lbnQ7XHJcbiAgICBjb25zdCBzY3JvbGxPYnNlcnZlciA9IGZyb21FdmVudChlbGVtZW50LCAnc2Nyb2xsJyk7XHJcblxyXG4gICAgdGhpcy5zY3JvbGxTdWJzY3JpcHRpb24gPSBzY3JvbGxPYnNlcnZlclxyXG4gICAgICAucGlwZShcclxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95KSxcclxuICAgICAgICB0aHJvdHRsZVRpbWUodGhpcy5TQ1JPTExfVEhST1RUTEVfVElNRSwgdW5kZWZpbmVkLCB7XHJcbiAgICAgICAgICBsZWFkaW5nOiB0cnVlLFxyXG4gICAgICAgICAgdHJhaWxpbmc6IHRydWVcclxuICAgICAgICB9KSxcclxuICAgICAgICBtYXAoKCkgPT4gdGhpcy5vblNjcm9sbEV2ZW50KGVsZW1lbnQpKVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5pdEVkaXRvckV2ZW50cyhlbGVtZW50OiBIVE1MRWxlbWVudCk6IHZvaWQge1xyXG4gICAgY29uc3QgcmVhZE9ubHkgPSB0aGlzLmlzUmVhZG9ubHkoKTtcclxuXHJcbiAgICBpZiAocmVhZE9ubHkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHNldEVkaXRvckV2ZW50cyhlbGVtZW50LCB0aGlzLmFib3J0Q29udHJvbGxlci5zaWduYWwpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdGFydFBvb2xpbmcoc2l6ZTogbnVtYmVyKTogdm9pZCB7XHJcbiAgICBjb25zdCBzY3JvbGxFbGVtZW50ID0gdGhpcy5jb25maWc/LmVsZW1lbnQgPz8gdGhpcy5lZGl0b3JFbGVtZW50O1xyXG4gICAgY29uc3Qgd2l0aG91dFByZWxvYWQgPSB0aGlzLmNvbmZpZz8ud2l0aG91dFByZWxvYWQ7XHJcblxyXG4gICAgdGhpcy5wb29saW5nU3Vic2NyaXB0aW9uID0gdGltZXIoMCwgdGhpcy5QT09MSU5HX0RFTEFZKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBjb25jYXRNYXAoKCkgPT4gdGhpcy5nZXRCbG9ja3ModGhpcy5wYWdlLCBzaXplKS5waXBlKGRlbGF5KHRoaXMuUE9PTElOR19ERUxBWSkpKSxcclxuICAgICAgICB0YXAoKCkgPT4gdGhpcy5wYWdlKyspLFxyXG4gICAgICAgIHRha2VXaGlsZShcclxuICAgICAgICAgIChibG9ja3MpID0+XHJcbiAgICAgICAgICAgICF3aXRob3V0UHJlbG9hZCAmJlxyXG4gICAgICAgICAgICBzY3JvbGxFbGVtZW50LnNjcm9sbEhlaWdodCA8PSBzY3JvbGxFbGVtZW50LmNsaWVudEhlaWdodCAmJlxyXG4gICAgICAgICAgICBibG9ja3MubGVuZ3RoID49IHNpemVcclxuICAgICAgICApLFxyXG4gICAgICAgIGZpbmFsaXplKCgpID0+IHtcclxuICAgICAgICAgIGlmICh0aGlzLmlzRGVzdHJveWVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICB0aGlzLnNldFN0YXJ0QmxvY2soKTtcclxuICAgICAgICB9KVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZGVzdHJveUVkaXRvcigpOiB2b2lkIHtcclxuICAgIHRoaXMuYWJvcnRDb250cm9sbGVyLmFib3J0KCk7XHJcbiAgICB0aGlzLnJlc2V0RGF0YSgpO1xyXG4gICAgLy8gVE9ETzog0LIg0YDQsNC90LTQvtC8INC60LXQudGB0LDRhSDQv9Cw0LTQsNC10YIg0L7RiNC40LHQutCwINC10YHQu9C4INGD0LHRgNCw0YLRjCDQv9GA0L7QstC10YDQutGDINC90LAg0LLRi9C30L7QsiBkZXN0cm95XHJcbiAgICB0aGlzLmVkaXRvcj8uZGVzdHJveT8uKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldExpc3RlbmVyc09uQ3VzdG9tQmxvY2tDaGFuZ2VzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5lZGl0b3JTZXJ2aWNlLnNldExpc3RlbmVyc09uQ3VzdG9tQmxvY2tDaGFuZ2VzKHRoaXMuZWRpdG9yLCB7XHJcbiAgICAgIHJlbW92ZWRDYWxsYmFjazogdGhpcy5vblJlbW92ZWRDb21iaW5lZEJsb2NrLmJpbmQodGhpcyksXHJcbiAgICAgIHVwZGF0ZWRDYWxsYmFjazogdGhpcy5vblVwZGF0ZWRDb21iaW5lZEJsb2NrLmJpbmQodGhpcyksXHJcbiAgICAgIGFkZGVkQ2FsbGJhY2s6IHRoaXMub25BZGRlZENvbWJpbmVkQmxvY2suYmluZCh0aGlzKVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIHN0YXJ0Q2hhbmdlcyhldmVudDogQmxvY2tNdXRhdGlvbkV2ZW50W10pOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmICh0aGlzLmlzU2tpcCB8fCB0aGlzLmlzQ2hhbmdpbmcgfHwgIXRoaXMuZWRpdG9yKSB7XHJcbiAgICAgIHRoaXMuaXNTa2lwID0gZmFsc2U7XHJcblxyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5pc0NoYW5naW5nID0gdHJ1ZTtcclxuXHJcbiAgICBjb25zdCBlZGl0b3JPdXRwdXQgPSBhd2FpdCB0aGlzLmVkaXRvci5zYXZlKCk7XHJcbiAgICBjb25zdCBldmVudHMgPSBldmVudC5maWx0ZXIoKGRhdGEpID0+IGRhdGEuZGV0YWlsLnRhcmdldC5uYW1lICE9PSBDT01CSU5FRF9URVhUX0JMT0NLX05BTUUpO1xyXG4gICAgY29uc3QgYmxvY2tzID0gdGhpcy5lZGl0b3JTZXJ2aWNlLnNvcnRFdmVudHNCeVR5cGVzKGV2ZW50cyk7XHJcbiAgICBjb25zdCB7IGFkZEJsb2NrcyQsIGFkZGVkQmxvY2tzIH0gPSB0aGlzLmNvbGxlY3RBZGRlZEJsb2Nrc1JlcXVlc3QoYmxvY2tzLCBlZGl0b3JPdXRwdXQpO1xyXG5cclxuICAgIHRoaXMuYWRkZWRCbG9ja3MgPSBbXTtcclxuXHJcbiAgICBhZGRCbG9ja3MkXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHRhcCgoYmxvY2tJZHMpID0+IHRoaXMuc2V0QmxvY2tJZHNUb01hcChibG9ja0lkcywgYWRkZWRCbG9ja3MpKSxcclxuICAgICAgICBjb25jYXRNYXAoKCkgPT4gdGhpcy5jb2xsZWN0VXBkYXRlZEJsb2Nrc1JlcXVlc3QoYmxvY2tzLCBlZGl0b3JPdXRwdXQpKSxcclxuICAgICAgICBjb25jYXRNYXAoKCkgPT4gdGhpcy5jb2xsZWN0UmVtb3ZlZEJsb2Nrc1JlcXVlc3QoYmxvY2tzKSlcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBjb21wbGV0ZTogKCkgPT4gdGhpcy5zdGFydE5leHRDaGFuZ2UoKSxcclxuICAgICAgICBlcnJvcjogKCkgPT4gdGhpcy5zdGFydE5leHRDaGFuZ2UoKVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3RhcnROZXh0Q2hhbmdlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5pc0NoYW5naW5nID0gZmFsc2U7XHJcblxyXG4gICAgY29uc3QgbmV4dEV2ZW50cyA9IHRoaXMuY2hhbmdlc1F1ZXVlLnBvcCgpO1xyXG5cclxuICAgIGlmIChuZXh0RXZlbnRzKSB7XHJcbiAgICAgIHRoaXMuc3RhcnRDaGFuZ2VzKG5leHRFdmVudHMpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZW1wdHlRdWV1ZS5uZXh0KG51bGwpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjb2xsZWN0QWRkZWRCbG9ja3NSZXF1ZXN0KGJsb2NrczogQ3VpRXZlbnRBY3Rpb25EYXRhLCBlZGl0b3JPdXRwdXQ6IE91dHB1dERhdGEpOiBDdWlCbG9ja3NSZXF1ZXN0RGF0YSB7XHJcbiAgICBjb25zdCBkZWZhdWx0QmxvY2tzV2l0aEluZGV4ID0gYmxvY2tzW0V2ZW50QWN0aW9ucy5hZGRdLm1hcCgoYWRkZWRCbG9jaykgPT5cclxuICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmdldEZ1bGxCbG9ja0RhdGEoYWRkZWRCbG9jaywgZWRpdG9yT3V0cHV0KVxyXG4gICAgKTtcclxuICAgIGNvbnN0IGNvbWJpbmVkQmxvY2tzV2l0aEluZGV4ID0gdGhpcy5hZGRlZEJsb2Nrcy5tYXAoKGJsb2NrKSA9PiB7XHJcbiAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmVkaXRvckVsZW1lbnQucXVlcnlTZWxlY3RvcihgW2RhdGEtaWQ9XCIke2Jsb2NrLmlkfVwiXWApIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICBjb25zdCBpbmRleCA9IE51bWJlcihlbGVtZW50Py5kYXRhc2V0WydpbmRleCddKTtcclxuXHJcbiAgICAgIHJldHVybiB7IC4uLmJsb2NrLCBpbmRleCB9O1xyXG4gICAgfSk7XHJcblxyXG4gICAgY29uc3QgYWRkZWRCbG9ja3MgPSBbLi4uZGVmYXVsdEJsb2Nrc1dpdGhJbmRleCwgLi4uY29tYmluZWRCbG9ja3NXaXRoSW5kZXhdLnNvcnQoKGZpcnN0LCBzZWNvbmQpID0+IGZpcnN0LmluZGV4IC0gc2Vjb25kLmluZGV4KTtcclxuICAgIGNvbnN0IGFkZEJsb2NrcyQgPSB0aGlzLmVkaXRvclNlcnZpY2UuY29sbGVjdEFkZGVkQmxvY2tzUmVxdWVzdCh0aGlzLmVkaXRvcklELCBhZGRlZEJsb2Nrcyk7XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgYWRkZWRCbG9ja3MsXHJcbiAgICAgIGFkZEJsb2NrcyRcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNvbGxlY3RVcGRhdGVkQmxvY2tzUmVxdWVzdChibG9ja3M6IEN1aUV2ZW50QWN0aW9uRGF0YSwgZWRpdG9yT3V0cHV0OiBPdXRwdXREYXRhKTogT2JzZXJ2YWJsZTxCbG9ja1tdPiB7XHJcbiAgICBibG9ja3NbRXZlbnRBY3Rpb25zLnVwZGF0ZV0uZm9yRWFjaCgodXBkYXRlQmxvY2spID0+IHtcclxuICAgICAgY29uc3QgeyBpZCwgYmxvY2sgfSA9IHRoaXMuZWRpdG9yU2VydmljZS5nZXRGdWxsQmxvY2tEYXRhKHVwZGF0ZUJsb2NrLCBlZGl0b3JPdXRwdXQpO1xyXG4gICAgICBibG9jay5pZCA9IGlkO1xyXG5cclxuICAgICAgdGhpcy51cGRhdGVkQmxvY2tzLnB1c2goYmxvY2spO1xyXG4gICAgfSk7XHJcblxyXG4gICAgY29uc3QgdXBkYXRlQmxvY2tzJCA9IHRoaXMuZWRpdG9yU2VydmljZS5jb2xsZWN0VXBkYXRlZEJsb2Nrc1JlcXVlc3QodGhpcy51cGRhdGVkQmxvY2tzLCB0aGlzLmJsb2NrSWRzTWFwKTtcclxuXHJcbiAgICB0aGlzLnVwZGF0ZWRCbG9ja3MgPSBbXTtcclxuXHJcbiAgICByZXR1cm4gdXBkYXRlQmxvY2tzJDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY29sbGVjdFJlbW92ZWRCbG9ja3NSZXF1ZXN0KGJsb2NrczogQ3VpRXZlbnRBY3Rpb25EYXRhKTogT2JzZXJ2YWJsZTx2b2lkPiB7XHJcbiAgICBibG9ja3NbRXZlbnRBY3Rpb25zLnJlbW92ZV0uZm9yRWFjaCgoYmxvY2spID0+IHtcclxuICAgICAgY29uc3QgaWQgPSBibG9jay5kZXRhaWwudGFyZ2V0LmlkO1xyXG5cclxuICAgICAgdGhpcy5yZW1vdmVkQmxvY2tzSWRzLnB1c2goaWQpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgY29uc3QgcmVtb3ZlQmxvY2tzJCA9IHRoaXMuZWRpdG9yU2VydmljZS5jb2xsZWN0UmVtb3ZlZEJsb2Nrc1JlcXVlc3QoXHJcbiAgICAgIHRoaXMuZWRpdG9ySUQsXHJcbiAgICAgIHRoaXMucmVtb3ZlZEJsb2Nrc0lkcyxcclxuICAgICAgdGhpcy5ibG9ja0lkc01hcFxyXG4gICAgKTtcclxuICAgIHRoaXMucmVtb3ZlZEJsb2Nrc0lkcyA9IFtdO1xyXG5cclxuICAgIHJldHVybiByZW1vdmVCbG9ja3MkO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRCbG9ja3MocGFnZSA9IDAsIHNpemUgPSA0MCk6IE9ic2VydmFibGU8QmxvY2tbXT4ge1xyXG4gICAgbGV0IGNvbWJpbmVkQmxvY2s6IEN1aU51bGxhYmxlPEJsb2NrPjtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5qVGV4dFNlcnZpY2UuZ2V0QmxvY2tzKHRoaXMuZWRpdG9ySUQsIHBhZ2UsIHNpemUpLnBpcGUoXHJcbiAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3kpLFxyXG4gICAgICBmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgaWYgKGNvbWJpbmVkQmxvY2spIHtcclxuICAgICAgICAgIHRoaXMuYWRkQ29tYmluZWRCbG9jayhjb21iaW5lZEJsb2NrKTtcclxuICAgICAgICAgIGNvbWJpbmVkQmxvY2sgPSBudWxsO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmVjYWxjdWxhdGVJbmRleGVzKHRoaXMuZWRpdG9yLmJsb2Nrcyk7XHJcbiAgICAgIH0pLFxyXG4gICAgICBtYXAoKGJsb2NrKSA9PiB7XHJcbiAgICAgICAgaWYgKGJsb2NrLnR5cGUgPT09IENPTUJJTkVEX1RFWFRfQkxPQ0tfUEFSVCkge1xyXG4gICAgICAgICAgY29uc3QgYmxvY2tEYXRhID0gYmxvY2suZGF0YSBhcyB7IHBhcmVudElkOiBzdHJpbmcgfTtcclxuXHJcbiAgICAgICAgICBpZiAoY29tYmluZWRCbG9jayAmJiBibG9ja0RhdGEucGFyZW50SWQhICE9PSBjb21iaW5lZEJsb2NrPy5pZCkge1xyXG4gICAgICAgICAgICB0aGlzLmFkZENvbWJpbmVkQmxvY2soY29tYmluZWRCbG9jayk7XHJcbiAgICAgICAgICAgIGNvbWJpbmVkQmxvY2sgPSBudWxsO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGNvbWJpbmVkQmxvY2sgPSB0aGlzLnNldENvbWJpbmVkQmxvY2soYmxvY2spO1xyXG5cclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChjb21iaW5lZEJsb2NrKSB7XHJcbiAgICAgICAgICB0aGlzLmFkZENvbWJpbmVkQmxvY2soY29tYmluZWRCbG9jayk7XHJcbiAgICAgICAgICBjb21iaW5lZEJsb2NrID0gbnVsbDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuYWRkQmxvY2soYmxvY2spO1xyXG4gICAgICB9KSxcclxuICAgICAgdG9BcnJheSgpXHJcbiAgICApIGFzIHVua25vd24gYXMgT2JzZXJ2YWJsZTxCbG9ja1tdPjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWRkQmxvY2soYmxvY2s6IEJsb2NrKTogdm9pZCB7XHJcbiAgICBpZiAodHlwZW9mIGJsb2NrLnR5cGUgIT09ICdzdHJpbmcnKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmJsb2NrSWRzTWFwLnNldChibG9jay5pZCEsIGJsb2NrLmlkISk7XHJcbiAgICB0aGlzLmluc2VydChibG9jayk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFkZENvbWJpbmVkQmxvY2soY29tYmluZWRCbG9jazogQmxvY2spOiB2b2lkIHtcclxuICAgIHRoaXMuaXNTa2lwQ29tYmluZWRCbG9ja09uQ2hhbmdlLnB1c2godHJ1ZSk7XHJcbiAgICBjb25zdCBibG9jayA9IHRoaXMuZWRpdG9yLmJsb2Nrcy5nZXRCeUlkKGNvbWJpbmVkQmxvY2suaWQgfHwgJycpO1xyXG5cclxuICAgIGlmIChibG9jaykge1xyXG4gICAgICB0aGlzLmVkaXRvci5ibG9ja3MudXBkYXRlKGJsb2NrLmlkLCBjb21iaW5lZEJsb2NrLmRhdGEgYXMgQ3VpQ29tYmluZWRQYXJ0QmxvY2spO1xyXG5cclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuaW5zZXJ0KGNvbWJpbmVkQmxvY2spO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbnNlcnQoYmxvY2s6IEJsb2NrKTogdm9pZCB7XHJcbiAgICB0aGlzLmNoZWNrRmlyc3QoYmxvY2spO1xyXG4gICAgdGhpcy5pbmRleCsrO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjaGVja0ZpcnN0KGJsb2NrOiBCbG9jayk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmlzRmlyc3QpIHtcclxuICAgICAgdGhpcy5pc1NraXAgPSB0cnVlO1xyXG4gICAgICB0aGlzLmVkaXRvci5ibG9ja3MuaW5zZXJ0KGJsb2NrLnR5cGUsIGJsb2NrLmRhdGEsIHt9LCB0aGlzLmluZGV4LCBmYWxzZSwgZmFsc2UsIGJsb2NrLmlkKTtcclxuXHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBUT0RPOiDQtdGB0YLRjCDQstCw0YDQuNC6INGH0YLQviDRh9GC0L4g0YLQviDQv9C+0LnQtNC10YIg0L3QtSDRgtCw0LpcclxuICAgIHRoaXMuZWRpdG9yLmJsb2Nrcy5yZW5kZXIoeyBibG9ja3M6IFtibG9ja10gfSkudGhlbigoKSA9PiB0aGlzLmlzU2tpcCA9IGZhbHNlKTtcclxuICAgIHRoaXMuaXNGaXJzdCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRDb21iaW5lZEJsb2NrKGJsb2NrOiBCbG9jayk6IEJsb2NrIHtcclxuICAgIGNvbnN0IGNvbWJpbmVkQmxvY2tEYXRhID0gYmxvY2suZGF0YSBhcyB7IHBhcmVudElkOiBzdHJpbmcgfTtcclxuICAgIGNvbnN0IHBhcmVudCA9IHRoaXMuY29tYmluZWRCbG9ja3MuZ2V0KGNvbWJpbmVkQmxvY2tEYXRhLnBhcmVudElkKTtcclxuXHJcbiAgICB0aGlzLmJsb2NrSWRzTWFwLnNldChibG9jay5pZCEsIGJsb2NrLmlkISk7XHJcblxyXG4gICAgaWYgKHBhcmVudCkge1xyXG4gICAgICBjb25zdCBwYXJlbnREYXRhID0gcGFyZW50LmRhdGEgYXMgeyB0ZXh0QmxvY2tzOiBCbG9ja1tdIH07XHJcbiAgICAgIHBhcmVudERhdGEudGV4dEJsb2Nrcy5wdXNoKGJsb2NrKTtcclxuXHJcbiAgICAgIHJldHVybiBwYXJlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgcGFyZW50T2JqZWN0OiBCbG9jayA9IHtcclxuICAgICAgaWQ6IGNvbWJpbmVkQmxvY2tEYXRhLnBhcmVudElkLFxyXG4gICAgICB0eXBlOiBDT01CSU5FRF9URVhUX0JMT0NLX05BTUUsXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICBpZDogY29tYmluZWRCbG9ja0RhdGEucGFyZW50SWQsXHJcbiAgICAgICAgdGV4dEJsb2NrczogW2Jsb2NrXVxyXG4gICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMuY29tYmluZWRCbG9ja3Muc2V0KGNvbWJpbmVkQmxvY2tEYXRhLnBhcmVudElkLCBwYXJlbnRPYmplY3QpO1xyXG5cclxuICAgIHJldHVybiBwYXJlbnRPYmplY3Q7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldEJsb2NrSWRzVG9NYXAoYmxvY2tJZHM6IHN0cmluZ1tdLCBhZGRlZEJsb2NrczogQ3VpRnVsbEJsb2NrRGF0YVtdKTogdm9pZCB7XHJcbiAgICBpZiAoIWJsb2NrSWRzLmxlbmd0aCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgYWRkZWRCbG9ja3MuZm9yRWFjaCgoYmxvY2tEYXRhLCBpbmRleCkgPT4ge1xyXG4gICAgICB0aGlzLmJsb2NrSWRzTWFwLnNldChibG9ja0RhdGEuaWQsIGJsb2NrSWRzW2luZGV4XSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0U3RhcnRCbG9jaygpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmJsb2NrSWRzTWFwLnNpemUpIHtcclxuICAgICAgdGhpcy5zZXRGb2N1cygpO1xyXG4gICAgICB0aGlzLmVkaXRvckVtcHR5LmVtaXQodGhpcy5jaGVja0lzRW1wdHkoKSk7XHJcblxyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuaXNSZWFkb25seSgpKSB7XHJcbiAgICAgIHRoaXMuZWRpdG9yLnJlbmRlcih7IGJsb2NrczogW10gfSk7XHJcblxyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5lZGl0b3JTZXJ2aWNlLnNldFN0YXJ0QmxvY2sodGhpcy5lZGl0b3JJRCwgYXN5bmMgKGJsb2NrOiBCbG9jazxDdWlDb21iaW5lZEJsb2NrVG9vbERhdGE+LCBpZDogc3RyaW5nKSA9PiB7XHJcbiAgICAgIHRoaXMuYmxvY2tJZHNNYXAuc2V0KGlkLCBpZCk7XHJcbiAgICAgIHRoaXMuaXNTa2lwQ29tYmluZWRCbG9ja09uQ2hhbmdlLnB1c2godHJ1ZSk7XHJcblxyXG4gICAgICBhd2FpdCB0aGlzLmVkaXRvci5yZW5kZXIoeyBibG9ja3M6IFtibG9ja10gfSk7XHJcblxyXG4gICAgICB0aGlzLnNldEZvY3VzKCk7XHJcbiAgICAgIHJlY2FsY3VsYXRlSW5kZXhlcyh0aGlzLmVkaXRvci5ibG9ja3MpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldEZvY3VzKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmNvbmZpZz8uYXV0b2ZvY3VzKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmVkaXRvci5jYXJldC5mb2N1cygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjaGVja0lzRW1wdHkoKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBNSU5fQkxPQ0tTX0NPVU5UID0gMTtcclxuICAgIGNvbnN0IFJFREFDVE9SX1NFTEVDVE9SID0gJy5jb2RleC1lZGl0b3JfX3JlZGFjdG9yJztcclxuICAgIGNvbnN0IHJlZGFjdG9yID0gdGhpcy5lZGl0b3JFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoUkVEQUNUT1JfU0VMRUNUT1IpO1xyXG4gICAgY29uc3QgYmxvY2tzQ291bnQgPSByZWRhY3Rvcj8uY2hpbGRFbGVtZW50Q291bnQgPz8gMDtcclxuXHJcbiAgICByZXR1cm4gYmxvY2tzQ291bnQgPD0gTUlOX0JMT0NLU19DT1VOVCAmJiAhcmVkYWN0b3I/LnRleHRDb250ZW50O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZXNldERhdGEoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNjcm9sbFN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMucG9vbGluZ1N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMuaXNTa2lwQ29tYmluZWRCbG9ja09uQ2hhbmdlID0gW107XHJcbiAgICB0aGlzLmlzRmlyc3QgPSB0cnVlO1xyXG4gICAgdGhpcy5pc0NoYW5naW5nID0gZmFsc2U7XHJcbiAgICB0aGlzLmlzU2tpcCA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc1JlcXVlc3RlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5ibG9ja0lkc01hcCA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCk7XHJcbiAgICB0aGlzLmNvbWJpbmVkQmxvY2tzID0gbmV3IE1hcCgpO1xyXG4gICAgdGhpcy5pbmRleCA9IDA7XHJcbiAgICB0aGlzLnBhZ2UgPSAwO1xyXG4gICAgdGhpcy5hZGRlZEJsb2NrcyA9IFtdO1xyXG4gICAgdGhpcy51cGRhdGVkQmxvY2tzID0gW107XHJcbiAgICB0aGlzLnJlbW92ZWRCbG9ja3NJZHMgPSBbXTtcclxuICAgIHRoaXMuY2hhbmdlc1F1ZXVlID0gW107XHJcbiAgICB0aGlzLmFib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gICAgI2VkaXRvclxyXG4gICAgW2lkXT1cImVkaXRvcklEXCJcclxuICAgIFtjbGFzcy5fcmVhZG9ubHldPVwiY29uZmlnLnJlYWRPbmx5XCJcclxuICAgIGRhdGEtZWRpdG9yXHJcbj48L2Rpdj5cclxuIl19
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export function setEditorDragEvents(editorElement, signal) {
|
|
2
|
+
editorElement.addEventListener('dragstart', dragstartListener, { signal });
|
|
3
|
+
}
|
|
4
|
+
export function dragstartListener(event) {
|
|
5
|
+
event.preventDefault();
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLWRyYWcuZXZlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2VkaXRvci9ldmVudHMvZWRpdG9yLWRyYWcuZXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLG1CQUFtQixDQUFDLGFBQTBCLEVBQUUsTUFBbUI7SUFDL0UsYUFBYSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7QUFDL0UsQ0FBQztBQUVELE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxLQUFnQjtJQUM5QyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7QUFDM0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBzZXRFZGl0b3JEcmFnRXZlbnRzKGVkaXRvckVsZW1lbnQ6IEhUTUxFbGVtZW50LCBzaWduYWw6IEFib3J0U2lnbmFsKTogdm9pZCB7XHJcbiAgICBlZGl0b3JFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2RyYWdzdGFydCcsIGRyYWdzdGFydExpc3RlbmVyLCB7IHNpZ25hbCB9KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGRyYWdzdGFydExpc3RlbmVyKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbn1cclxuIl19
|